freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

15-單片機(jī)原理及接口技術(shù)課程設(shè)計(co氣體濃度監(jiān)測儀設(shè)計)(編輯修改稿)

2025-07-03 19:02 本頁面
 

【文章內(nèi)容簡介】 使 得 各 數(shù) 碼 管 輪 流 導(dǎo) 通 , 在 選 通 相應(yīng) 的 LED 后 , 即 在 顯 示 字 段 上 得 到 顯 示 字 形 碼 。 這 種 方 式 不 但 能 提 高 數(shù) 碼 管的 發(fā) 光 效 率 , 并 且 由 于 各 個 數(shù) 碼 管 的 字 段 線 是 并 聯(lián) 使 用 的 , 從 而 大 大 簡 化 了 硬件 線 路 。 本 設(shè) 計 中 處 理 結(jié) 果 采 用 4 位 LED 顯 示 , 首 次 顯 示 氣 體 類 別 , 后 3位 顯 示 氣 體 濃 度 。 逐 位 輪 流 點 亮 各 個 LED, 每 一 位 保 持 1ms, 在 1020ms 之內(nèi) 再 一 次 點 亮 , 重 復(fù) 不 止 。 這 樣 利 用 人 的 視 覺 停 留 , 好 像 4 位 LED 同 時 點亮 一 樣 。圖 35 顯示電路原理圖本科生課程設(shè)計(論文)13本科生課程設(shè)計(論文)14第 4 章 軟件設(shè)計 流程圖設(shè)計圖41 軟件流程圖本科生課程設(shè)計(論文)15 程序編寫 主程序整個程序一共使用了兩個中斷,一個外部中斷即 INT0 中斷,一個定時/ 計數(shù)器中斷即 IT0 中斷 .這兩個中斷各有其作用 ,INT0 中斷是用來判斷 A/D 轉(zhuǎn)換器ADC0809 對模擬信號的轉(zhuǎn)換是否完成,當(dāng) A/D 轉(zhuǎn)換結(jié)束后,ADC0809 發(fā)出結(jié)束EOC(高電平 )信號,該信號可供單片機(jī)查詢,也可反相后作為向單片機(jī)發(fā)出中斷信號,而本設(shè)計正是用的這個方法, IT0中斷,是為產(chǎn)生一個周期為 2S 的方波而設(shè)計的,其作用是為看門狗產(chǎn)生喂狗子信號.具體程序如下: ORG 00H JMP START 。主程序入口地址 ORG 03H JMP INTO 。外中斷 INTO 入口 ORG 0BH JMP ITOP 。 定時器 0 中斷入口 ORG 0100HSTART: MOV IE,10000001B 。INT0 中斷使能 MOV IP,00000001B 。INT0 中斷優(yōu)先 MOV TCON,00000000B 。設(shè)置 INT0 為電平觸發(fā) MOV SCON,00000000B 。串行口發(fā)送,接收標(biāo)志位請 0 MOV SP,60H 。設(shè)堆棧指針 MOV TMOD,01H 。設(shè)置 T0 為方式 1 CALL PT0M0HERE: AJMP HERE 。自身跳轉(zhuǎn)PT0M0: MOV TL0,0CH 。T0 中斷服務(wù)程序,T0 重新置初值 MOV TH0,0FEH SETB TR0 。啟動 T0 SETB ET0 。允許 T0 中斷 SETB EA 。CPU 開中斷 RETITOP: MOV TL0,0CH 。T0 中斷服務(wù)程序,T0 置初值 MOV TH0,0FEH本科生課程設(shè)計(論文)16 CPL 。 狀態(tài)取反 RETI ACALL LED 。調(diào)用 LED 自檢子程序 MOV 33H,00H 。設(shè)置中斷完成標(biāo)志為 0 MOV DPTR,0FEFFH 。ADC0809 的端口地址 MOVX @DPTR,A 。使 BUS 為高阻抗,令A(yù)DC0809 開始轉(zhuǎn)換WAIT:MOV A,33H 。等待 A/D 轉(zhuǎn)換完成信號 JNZ INTOK JMP WAIT 。未完成則跳回等待INTOK: MOV A,32H 。將最新的濃度值存入累加器中,(若 A/D 未工作 ,則 A=0) JNZ L1 MOV A,30H JMP L2L1: MOV 30H,31H MOV A,31H 。將新濃度載入累加器L2: CALL BCD 。調(diào)用 BCD 碼調(diào)整程序 CALL DISP 。顯示當(dāng)前濃度 CALL ADZERO 。調(diào)用零點調(diào)整子程序 CALL ALARM 。調(diào)用判斷報警程序 CALL BCD CALL DISP 。調(diào)用顯示子程序 CLR A 。清除累加器值 JMP START 。返回在主程序通過對 33H 中數(shù)值的判斷斷定 A/D 是否轉(zhuǎn)換完成,當(dāng) 33H 中為 1時,轉(zhuǎn)換完成,程序調(diào)用調(diào)零、報警、顯示模塊對輸入數(shù)據(jù)進(jìn)行處理。 調(diào)零子程序由于未知問題,可能造成送入單片機(jī)中顯示的模擬電壓量與真實電壓存在區(qū)別,這種誤差可以通過在中斷處理中對 A/D 轉(zhuǎn)換的數(shù)值加上一個調(diào)整值來解決。這樣,我們就能根據(jù)實際情況來對報警器輸出的數(shù)值進(jìn)行控制,使其記數(shù)更加精確,使用更方便。我們可以利用對端口的電平高低來判斷是否需要進(jìn)行調(diào)零處理,本科生課程設(shè)計(論文)17故可將按鍵開關(guān)接于端口 ,則說明有調(diào)零需要,于是進(jìn)入調(diào)零處理程序。若開關(guān)沒有按下,則說明沒有調(diào)零需要,系統(tǒng)進(jìn)入下一步 .通過設(shè)置一個按鍵,既可保證程序順利進(jìn)行,:ADZERO: CALL DELAYJB ,JMP1 。判斷調(diào)零按鈕是否按下,沒按則跳 JMP1………..JMP1: RET通過對 位的判斷來分辨是否有調(diào)零請求,若有則跳入調(diào)零模式,調(diào)零模式中程序如下:LOOP1: CALL DELAY JNB ,$ 。消除抖動延時 MOV A,40H 。將調(diào)零預(yù)設(shè)值 40H 送入 CLR C 。清除進(jìn)位標(biāo)志 SUBB A,01H 。調(diào)零值減 1 JNC LOOP2 。未借位則跳 LOOP2 MOV A,05H 。有借位則重設(shè)調(diào)零值為 5LOOP2: MOV 40H,A 。將調(diào)零值送回 40H 保存 MOV A,R3 。將當(dāng)前濃度值送入 A JZ XEND DEC A 。當(dāng)前濃度值減 1(響應(yīng)調(diào)整變化)XEND1 :MOV 30H,A 。送回 30H 保存 MOV 31H,A 。送回 31H 保存 CALL BCD 。調(diào)用 BCD 碼調(diào)整 CALL DISP 。調(diào)用顯示子程序JMP LOOPXEND: MOV A,63H JMP XEND1進(jìn)入調(diào)零模式后,若有按鍵則,LED 數(shù)碼管示數(shù)響應(yīng)按鍵變化。若 3 秒無任何按鍵,則退出調(diào)零模式返回主程序。 顯示子程序因為通過 A/D 轉(zhuǎn)換進(jìn)入單片機(jī) 8051 的濃度值以十六進(jìn)制存在,為了讓 LED顯示需要轉(zhuǎn)換為 BCD 碼,其 BCD 碼轉(zhuǎn)換程序如下:BCD: MOV 55H,00H 。存放 BCD 轉(zhuǎn)換中的百位數(shù)本科生課程設(shè)計(論文)18MOV 56H,00H 。存放 BCD 轉(zhuǎn)換中的十位數(shù)CLR C 。清除進(jìn)位標(biāo)志為下面的 SUBB 準(zhǔn)備 MOV R2,00H 。清除 R2CHAN: SUBB A,64H 。減 100JC CHAN1 。不能減,轉(zhuǎn)INC R1 。百位值JMP CHAN 。循環(huán)判斷百位CHAN1: ADD A,64H 。還原百位數(shù) CLR C 。清除進(jìn)位標(biāo)志為下面的 SUBB 準(zhǔn)備CHAN2: SUBB A,0AH 。減 10JC CHAN3 。不夠減,跳INC R2 。夠減十位加 1JMP CHAN2 。重復(fù)減 10CHAN3: ADD A,0AH 。還原十位數(shù)MOV 60H,R2 。把十位數(shù)放 60H 中MOV 61H,A 。把個位數(shù)放 61H 中RET這樣把轉(zhuǎn)換成的 BCD 碼,個位存于 61H 中,十位存入 60H 中,再編寫顯示模塊如下:DISP: MOV R7,03H MOV R0,60HLED1: MOV A,@R0 MOV DPTR,TABLELED2: MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI INC R0 DJNZ R7,LED1 RET將數(shù)值送入到 LED 顯示74LS164 驅(qū)動數(shù)碼管的過程:在單片機(jī)應(yīng)用系統(tǒng)中,顯示器顯示常用兩種方法:靜態(tài)顯示和動態(tài)掃描顯示。本科生課程設(shè)計(論文)19所謂靜態(tài)顯示,就是每一個顯示器都要占用單獨的具有鎖存功能的 I/O 接口用于筆劃段字形代碼。這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,因此,使用這種方法單片機(jī)中 CPU 的開銷小??梢蕴峁﹩为氭i存的 I/O 接口電路很多,這里以常用的串并轉(zhuǎn)換電路 74LS164 為例,介紹一種常用靜態(tài)顯示電路,以使大家對靜態(tài)顯示有一定的了解。 MCS51 單片機(jī)串行口方式 0 為移位寄存器方式,外接 3 片 74LS164 作為 3 位LED 顯示器的靜態(tài)顯示接口,把 8031 的 RXD 作為數(shù)據(jù)輸出線,TXD 作為移位時鐘脈沖。74LS164 為 TTL 單向 8 位移位寄存器,可實現(xiàn)串行輸入,并行輸出。其中 A、B(第 2 腳)為串行數(shù)據(jù)輸入端,2 個引腳按邏輯與運算規(guī)律輸入信號,共一個輸入信號時可并接。T(第 8 腳)為時鐘輸入端,可連接到串行口的TXD 端。每一個時鐘信號的上升沿加到 T 端時,移位寄存器移一位,8 個時鐘脈沖過后,8 位二進(jìn)制數(shù)全部移入 74LS164 中。R(第 9 腳)為復(fù)位端,當(dāng) R=0 時,移位寄存器各位復(fù) 0,只有當(dāng) R=1 時,時鐘脈沖才起作用。Q1…Q8(第 36 和1013 引腳)并行輸出端分別接 LED 顯示器的 hga 各段對應(yīng)的引腳上。在給出了 8 個脈沖后,最先進(jìn)入 74LS164 的第一個數(shù)據(jù)到達(dá)了最高位,然后再來一個脈沖會有什么發(fā)生呢?再來一個脈沖,第一個脈沖就會從最高位移出,搞清了這一點,下面讓我們來看電路,3 片 7LS164 首尾相串,而時鐘端則接在一起,這樣,當(dāng)輸入 8 個脈沖時,從單片機(jī) RXD 端輸出的數(shù)據(jù)就進(jìn)入到了第一片 74LS164 中了,而當(dāng)?shù)诙€ 8 個脈沖到來后,這個數(shù)據(jù)就進(jìn)入了第二片 74LS164,而新的數(shù)據(jù)則進(jìn)入了第一片 74LS164,這樣,當(dāng)?shù)诹鶄€ 8 個脈沖完成后,首次送出的數(shù)據(jù)被送到了最左面的 164 中,其他數(shù)據(jù)依次出現(xiàn)在第一、二、三片 74LS164 中。由于本設(shè)計采用的是機(jī)械按鍵,與地線想連,按鍵按下,輸入為低電平,釋放按鍵則輸入為高電平。實際上,機(jī)械式按鍵的落片存在著輕微的彈跳現(xiàn)象其時間由操作員按鍵的動作所確定,為了確保 CPU 對按鍵的一次閉合僅做一次處理,必須去除抖動,一般通過調(diào)用子程序延時來解決,在鍵的穩(wěn)定閉合或釋放時才讀出鍵的狀態(tài),具體程序如下:DELAY: MOVR 5,60 設(shè)定 30 毫秒D1: MOV R6,248 。設(shè)定 毫秒DJNZ R6,$ DJNZ R5,D1 RET因為石英晶體為 12MHZ,一個機(jī)器周期為 1 微秒,這樣如上程序可達(dá)到延時本科生課程設(shè)計(論文)2030 毫秒的目的。 報警子程序本設(shè)計采用了聲光報警,當(dāng)探測器探測的濃度超過報警設(shè)定值時就會同時產(chǎn)
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1