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

正文內(nèi)容

基于單片機(jī)溫度控制系統(tǒng)的設(shè)計(jì)畢業(yè)論文-資料下載頁

2025-02-26 11:55本頁面

【導(dǎo)讀】系統(tǒng)的研發(fā)與應(yīng)用在很大程度上提高了生產(chǎn)生活中對溫度的控制水平。本設(shè)計(jì)論述了一種。以STC89C52單片機(jī)為主控制單元,以DS18B20為溫度傳感器的溫度控制系統(tǒng)。統(tǒng)可以實(shí)時(shí)存儲相關(guān)的溫度數(shù)據(jù)并記錄當(dāng)前的時(shí)間。硬件電路主要包括STC89C52單片機(jī)最小系統(tǒng),測溫電路、實(shí)時(shí)時(shí)鐘電路、LCD液。晶顯示電路以及通訊模塊電路等。系統(tǒng)程序主要包括主程序,讀出溫度子程序,計(jì)算溫度。子程序、按鍵處理程序、LCD顯示程序以及數(shù)據(jù)存儲程序等。

  

【正文】 進(jìn)制數(shù)求補(bǔ)(雙字節(jié)) CPL A 。取反加 1 ADD A,01H MOV TEMPERATURE_L,A MOV A,TEMPERATURE_H CPL A ADDC A,00H MOV TEMPERATURE_H,A 。寫回 TEMPERATURE_H MOV TEMPERATURE_HC,0BH SJMP TEMPC11 TEMPC1: MOV TEMPERATURE_HC,0AH TEMPC11: MOV A,TEMPERATURE_HC SWAP A MOV TEMPERATURE_HC,A MOV A,TEMPERATURE_L ANL A,0FH MOV DPTR,TEMPDOTTAB MOVC A,@A+DPTR 。查表 MOV TEMPERATURE_LC,A 。TEMPERATURE_LC LOW=小數(shù)部分 BCD MOV DIS_BUF_X,A 。小數(shù)位的 BCD 碼 送入顯示 buffer 中 MOV A,TEMPERATURE_L 。整數(shù)部分 ANL A,0F0H 。得到個(gè)位 ‘單個(gè)數(shù)值 SWAP A 。SWAP 后就得到個(gè)位真正的個(gè)位 MOV TEMPERATURE_L,A MOV A,TEMPERATURE_H ANL A,0FH SWAP A ORL A,TEMPERATURE_L MOV TEMPERATURE_ZH,A 。組合后的值存入 TEMPERATURE_ZH LCALL HtoB 。轉(zhuǎn)換 HEx值成為 BCD 碼 MOV TEMPERATURE_L,A ANL A,0F0H SWAP A ORL A,TEMPERATURE_HC 。TEMPERATURE_HC LOW 位 = 十位數(shù) MOV TEMPERATURE_HC,A MOV A,TEMPERATURE_L 第 40 頁 共 48 頁 ANL A,0FH SWAP A MOV R7,A MOV A,TEMPERATURE_HC 。TEMPERATURE_HC HI = 百位數(shù) BCD ANL A,0FH ORL A,R7 MOV TEMPERATURE_HC,A TEMPC12: RET 。小數(shù)部分碼表 TEMPDOTTAB: DB 00H,01H,01H,02H,03H,03H,04H,04H,05H,06H,06H,07H,08H,08H,09H,09H 。00H 。*2 = 01H 。*3 = 01H 。*4 = 02H 。*5 = 03H 。以此類推 .......... 。程序名稱 :HtoB 。功能 :十六進(jìn)制轉(zhuǎn) BCD 。入口參數(shù) :A 。出口參數(shù) :R7 HtoB: MOV B,064H 。100 DIV AB 。a/100 MOV R7,A 。 MOV A,0AH XCH A,B DIV AB SWAP A ORL A,B RET 。程序名稱 :INIT_TEMP 。功能 :初始化 DS18B20,確定 DS18B20 是否是存在的 。入口參數(shù) :無 。出口參數(shù) :FLAG INIT_TEMP: SETB P_DS18B20 NOP CLR P_DS18B20 。主機(jī)發(fā)出延時(shí) 537 微秒的復(fù)位低脈沖 MOV R0,6BH MOV R1,04H TSR1: DJNZ R0,$ MOV 40,6BH DJNZ R1,TSR1 SETB P_DS18B20 。然后拉高數(shù)據(jù)線,釋放總線進(jìn)入接受狀態(tài) 第 41 頁 共 48 頁 NOP NOP NOP MOV R0,32H TSR2: JNB P_DS18B20,TSR3 。等待 DS18B20 回應(yīng) DJNZ R0,TSR2 LJMP TSR4 。延時(shí) TSR3: SETB FLAG 。置標(biāo)志位 ,表示 DS1820 存在 LJMP TSR5 TSR4: CLR FLAG 。清標(biāo)志位 ,表示 DS1820 不存在 LJMP TSR7 TSR5: MOV R0,06BH TSR6: DJNZ R0,TSR6 。時(shí)序要求 延時(shí)一段時(shí)間 TSR7: SETB P_DS18B20 RET 。程序名稱 :READ_TEMP 。功能 :讀取 DS18B20 的數(shù)據(jù) 。入口參數(shù) :TEMPERATURE_L, TEMPERATURE_H 。出口參數(shù) :無 READ_TEMP: SETB P_DS18B20 LCALL INIT_TEMP 。先復(fù)位 DS18B20 JB FLAG,TSS2 RET 。判斷 DS1820 是否存在 ?若 DS18B20 不存在則返回 TSS2: MOV A,0CCH 。跳過 ROM 匹配 LCALL WRITE_18B20 MOV A,44H 。發(fā)出溫度轉(zhuǎn)換命令 LCALL WRITE_18B20 LCALL DISPLAY 。等待 AD 轉(zhuǎn)換結(jié)束 ,12 位的話 750 微秒 LCALL INIT_TEMP 。準(zhǔn)備讀溫度前先復(fù)位 MOV A,0CCH 。跳過 ROM 匹配 LCALL WRITE_18B20 MOV A,0BEH 。發(fā)出讀溫度命令 LCALL WRITE_18B20 LCALL READ_18B20 。將讀出的溫度數(shù)據(jù)保存到 35H/36H RET 程序名稱 :WRITE_18B20 。功能 :將 A保存的數(shù)值寫入 DS1820 中, 。入口參數(shù) :A 寄存器 。出口參數(shù) :無 WRITE_18B20: MOV R2,8 。一共 8 位數(shù)據(jù),串行通信 CLR C WR1: CLR P_DS18B20 MOV R3,07 第 42 頁 共 48 頁 DJNZ R3,$ RRC A 。循環(huán)右移 MOV P_DS18B20,C MOV R3,3CH DJNZ R3,$ 。23*2 = 46 微妙 SETB P_DS18B20 NOP DJNZ R2,WR1 。A里面一共是 8 位,所以要送 8 次 SETB P_DS18B20 。釋放總線 RET 。程序名稱 :READ_18B20 。功能 :讀取 18B20 中的數(shù)據(jù),由于是串行通信,每次讀取一個(gè),循環(huán) 8 次讀取 。入口參數(shù) :TEMPRATURE_L 。出口參數(shù) :無 READ_18B20: MOV R4,4 。將溫度高位和低位從 DS18B20 中讀出 MOV R1,TEMPERATURE_L RE00: MOV R2,8 。數(shù)據(jù)一共有 8 位 RE01: CLR C SETB P_DS18B20 NOP NOP CLR P_DS18B20 NOP NOP NOP SETB P_DS18B20 MOV R3,09 RE10: DJNZ R3,RE10 MOV C,P_DS18B20 MOV R3,3CH RE20: DJNZ R3,RE20 RRC A DJNZ R2,RE01 MOV @R1,A DEC R1 DJNZ R4,RE00 RET 。程序名稱 :SCAN_KEY 。功能 :掃描鍵盤 。入口參數(shù) :DIS_BUF_G,DIS_BUF_S,DIS_BUF_B 。出口參數(shù) :KEY_BUF_G,KEY_BUF_S,kEY_BUF_B SCAN_KEY: JB K_ENTER,QUIT 。如果又 Enter 鍵入,則開始鍵盤輸入 LCALL K_DELAY JB K_ENTER,QUIT 第 43 頁 共 48 頁 CLR ENTER_FLAG 。每次進(jìn)來都賦值輸入標(biāo)志,設(shè)置為 0 MOV KEY_BUF_G,DIS_BUF_G 。將當(dāng)前的溫度賦值給 KEY_BUF MOV KEY_BUF_S,DIS_BUF_S MOV KEY_BUF_B,DIS_BUF_B K_LOOP: JB ENTER_FLAG,QUIT 。如果輸入完成, ENTER_FLAG 則為 1,退出鍵盤程 。序 JB K_ENTER,KUP CALL PRO_ENTER KUP: JB K_UP,KDOWN CALL PRO_UP KDOWN: JB K_DOWN,LOOPA CALL PRO_DOWN LOOPA: LCALL DISPLAY SJMP K_LOOP QUIT: RET 。程序名稱 :PRO_ENTER 。功能 :確認(rèn)鍵盤輸入和退出鍵盤輸入 。入口參數(shù) :ENTER_FLAG 。出口參數(shù) :ENTER_FLAG PRO_ENTER: CALL K_DELAY JB K_ENTER,K_LOOP 。按鈕抖動處理 SETB E NTER_FLAG CALL K_DELAY RET 。程序名稱 :PRO_UP 。功能 :數(shù)值上調(diào)處理 。入口參數(shù) :KEY_BUF_G,KEY_BUF_S,KEY_BUF_B 。出口參數(shù) :DIS_BUF_G,DIS_BUF_S,DIS_BUF_B PRO_UP: CALL K_DELAY JB K_UP,K_LOOP 。按鈕抖動處理 INC KEY_BUF_G 。個(gè)位增一 MOV A,KEY_BUF_G CJNE A,0AH,UPNEXT 。個(gè)位增加到 10,回 0 MOV KEY_BUF_G,00H INC KEY_BUF_S 。十位加一 MOV A,KEY_BUF_S CJNE A,0AH,UPNEXT 。十位超過 99,溢出了 MOV R0,200 ERROR1: LCALL ERR 。出錯(cuò),顯示 8888 DJNZ R0,ERROR1 DEC KEY_BUF_S 。退回 99 第 44 頁 共 48 頁 MOV KEY_BUF_G,09H UPNEXT: MOV DIS_BUF_G,KEY_BUF_G MOV DIS_BUF_S,KEY_BUF_S MOV DIS_BUF_B,KEY_BUF_B CALL K_DELAY RET 。程序名稱 :PRO_DOWN 。功能 :數(shù)值下調(diào)處理 。入口參數(shù) :KEY_BUF_G,KEY_BUF_S,KEY_BUF_B 。出口參數(shù) :DIS_BUF_G,DIS_BUF_S,DIS_BUF_B PRO_DOWN: CALL K_DELAY JB K_DOWN,K_LOOP 。按鈕抖動處理 DEC KEY_BUF_G 。個(gè)位減一 MOV A,KEY_BUF_G CJNE A,0FFH,DOWNNEXT 。個(gè)位減到 0,回到 9 MOV KEY_BUF_G,09H DEC KEY_BUF_S 。十位減一 MOV A,KEY_BUF_S CJNE A,0FFH,DOWNNEXT。十位低于 0,溢出了 MOV R0,200 ERROR2: LCALL ERR 。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1