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

正文內(nèi)容

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

2025-06-30 20:57本頁(yè)面

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

  

【正文】 _S,00H MOV KEY_BUF_B,00H NEXT: LCALL READ_TEMP 。調(diào)用讀溫度子程序 JB FLAG,NORMAL 。判斷是否有 DS18B20 的存在 CALL ERR 。不存在時(shí)顯示錯(cuò)誤信息 AJMP NEXT NORMAL: LCALL DATA_DEA 。處理從 DS18B20 得到的數(shù)據(jù) LCALL SET_DIS_BUF 。賦值給 DIS_BUF_X,G,S,B 畢業(yè)論文設(shè)計(jì) 第 41 頁(yè) 共 49 頁(yè) LCALL DISPLAY 。調(diào)用數(shù)碼管顯示子程序 LCALL SCAN_KEY 。掃描鍵盤 LCALL SWITCH 。處理可控硅 AJMP NEXT 。程序名稱 :ERR 。功能 :程序出錯(cuò)處理,顯示四個(gè) 8,即 8888 。入口參數(shù) :無(wú) 。出口參數(shù) :DIS_BUF_X,DIS_BUF_G, DIS_BUF_S, DIS_BUF_B ERR: MOV DIS_BUF_X,08H 。如果沒有找到 DS18B20,那么就顯示錯(cuò)誤,錯(cuò)誤 。顯示為 888 MOV DIS_BUF_G,08H MOV DIS_BUF_S,08H MOV DIS_BUF_B,08H LCALL DISPLAY RET 。程序名稱 :DATA_DEAL 。功能 :處理采集后的的數(shù)據(jù) 。入口參數(shù) :TEMPERATURE_L 。出口參數(shù) :DIS_BUF_G, DIS_BUF_S, DIS_BUF_ DATA_DEAL: MOV A,TEMPERATURE_H 。判溫度是否零下 ANL A,80H JZ TEMPC1 。A 為 0,說(shuō)明是正數(shù) ,如果是負(fù)數(shù),則 。對(duì)低 8 為進(jìn)行補(bǔ)碼處理 CLR C MOV A,TEMPERATURE_L 。二進(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 中 畢業(yè)論文設(shè)計(jì) 第 42 頁(yè) 共 49 頁(yè) 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 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 畢業(yè)論文設(shè)計(jì) 第 43 頁(yè) 共 49 頁(yè) RET 。程序名稱 :INIT_TEMP 。功能 :初始化 DS18B20,確定 DS18B20 是否是存在的 。入口參數(shù) :無(wú) 。出口參數(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) 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ù) :無(wú) READ_TEMP: SETB P_DS18B20 LCALL INIT_TEMP 。先復(fù)位 DS18B20 JB FLAG,TSS2 RET 。判斷 DS1820 是否存在 ?若 DS18B20 不存在則返回 TSS2: MOV A,0CCH 。跳過(guò) ROM 匹配 LCALL WRITE_18B20 MOV A,44H 。發(fā)出溫度轉(zhuǎn)換命令 LCALL WRITE_18B20 LCALL DISPLAY 。等待 AD 轉(zhuǎn)換結(jié)束 ,12 位的話 750 微秒 畢業(yè)論文設(shè)計(jì) 第 44 頁(yè) 共 49 頁(yè) LCALL INIT_TEMP 。準(zhǔn)備讀溫度前先復(fù)位 MOV A,0CCH 。跳過(guò) 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ù) :無(wú) WRITE_18B20: MOV R2,8 。一共 8 位數(shù)據(jù),串行通信 CLR C WR1: CLR P_DS18B20 MOV R3,07 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ù) :無(wú) 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 畢業(yè)論文設(shè)計(jì) 第 45 頁(yè) 共 49 頁(yè) 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 CLR ENTER_FLAG 。每次進(jìn)來(lái)都賦值輸入標(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 。按鈕抖動(dòng)處理 SETB E NTER_FLAG CALL K_DELAY RET
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1