基于單片機(jī)的溫度檢測系統(tǒng)設(shè)計說明_第1頁
基于單片機(jī)的溫度檢測系統(tǒng)設(shè)計說明_第2頁
基于單片機(jī)的溫度檢測系統(tǒng)設(shè)計說明_第3頁
基于單片機(jī)的溫度檢測系統(tǒng)設(shè)計說明_第4頁
基于單片機(jī)的溫度檢測系統(tǒng)設(shè)計說明_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、2009級信息系統(tǒng)綜合設(shè)計信息系統(tǒng)綜合設(shè)計報告書課題名稱基于單片機(jī)的溫度檢測系統(tǒng)設(shè)計姓 名學(xué) 號院、系、部電氣工程系專 業(yè)電子信息工程指導(dǎo)教師2013年1月7日14 / 17基于單片機(jī)的溫度檢測系統(tǒng)設(shè)計一、設(shè)計目的1、了解測溫系統(tǒng)中工作元件的工作原理; 2、掌握數(shù)碼管顯示程序、鍵盤掃描與按鍵處理程序、溫度信號處理程序、超溫報警程序的編寫。 二、 設(shè)計要求1. 測量通道:2路可循環(huán)顯示,并有通道標(biāo)志2. 溫度傳感器選用DS18B203. 具有溫度等信息的顯示,具有溫度上下限設(shè)置功能,越限時可以進(jìn)行報警給出電路原理圖設(shè)計,protel印刷電路圖設(shè)計三、 硬件電路設(shè)計3.1系統(tǒng)結(jié)構(gòu)框圖 AT89S5

2、18BIT CPU鍵盤電路DS18B20 溫度芯片數(shù)據(jù)傳輸數(shù)據(jù)顯示超溫報警輸入電源PC機(jī)繼電器1 N繼電器2壓縮制冷器加熱器圖1 系統(tǒng)結(jié)構(gòu)框圖3.2 單片機(jī)介紹圖2 單片機(jī)引腳圖P0口作為I/O口使用時為準(zhǔn)雙向口。P1口是自帶上拉電阻的I/O口,是一個準(zhǔn)雙向口。在輸入操作時需要先置 1。P1口特點(diǎn)是輸出鎖存器,輸出時沒有條件。輸入緩沖,輸入時有條件,即需要先將該口設(shè)為輸入狀態(tài),先輸出1。 P3口為準(zhǔn)雙向口??梢宰止?jié)訪問,也可以位訪問。P3.0-RXD,串行輸入口。P3.1-TXD,串行輸出口。P3.2-INT0,外部中斷0的請求。P3.3-INT1,外部中斷1的請求。P3.4-T0,定時器/計

3、數(shù)器0外部計數(shù)脈沖。P3.5-T1,定時器/計數(shù)器,1外部計數(shù)脈沖。P3.6-WR,外部數(shù)據(jù)存儲器寫選通。P3.7-RD,外部數(shù)據(jù)存儲器讀選通。3.3數(shù)碼管顯示電路 圖3 數(shù)碼管顯示電路3.4 LED顯示電路圖4 LED顯示電路3.5串口顯示電路圖5 通訊接口電路3.6系統(tǒng)電路原理圖圖6 電路原理圖1、所需元器件 單片機(jī)AT89S521芯片(1個)、A/D轉(zhuǎn)換機(jī)(1個)、溫度傳感器DS18B20(1個)、電阻:10K(2個)、電容:1000F(1個)、1uF(4個)、25uF(1個)數(shù)碼管(3個)、按鈕(4個)、晶振(6MHZ)2、實現(xiàn)的功能 該電路要實現(xiàn)的功能為,實時檢測外界溫度,將該溫度值

4、轉(zhuǎn)換為數(shù)字量,然后通過四位的數(shù)碼管顯示。其中外界溫度用溫度傳感器 DS18B20感應(yīng),然后通過ADC0809轉(zhuǎn)換為數(shù)字量后,通過單片機(jī)的P1口送到單片機(jī)部存儲單元。之后將該溫度值轉(zhuǎn)換為十進(jìn)制后,將個十百位分別通過P1口送出,然后經(jīng)74HC573的鎖存,輸出段碼,之后通過P1口送出位碼,經(jīng)另一片74HC573鎖存后驅(qū)動相應(yīng)的數(shù)碼管顯示。四、 程序流程圖設(shè)計開始初始化調(diào)用溫度采集模塊調(diào)用溫度整數(shù)小數(shù)分離處理模塊調(diào)用溫度計算成BCD碼模塊調(diào)用溫度轉(zhuǎn)換輸出類型模塊調(diào)用鍵盤掃描模塊調(diào)用報警模塊調(diào)用溫度輸出數(shù)碼管模塊圖7 程序流程圖五、程序設(shè)計ORG 0000HAJMP MAINORG 0030HMAIN

5、:MOV SP,#60H SETB P2.4 MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 MAIN1:LCALL GET_TEMP ;采集溫度 LCALL SEPERATE ;對采集后的溫度數(shù)據(jù)進(jìn)行處理 LCALL ZHUANHUAN ;二進(jìn)制數(shù)轉(zhuǎn)換為BCD的形式 LCALL QINGLING ;轉(zhuǎn)換為滿足輸出的類型 LCALL JIANTIAO ;掃描鍵盤模塊 LCALL BAOJING ;報警設(shè)置模塊 LCALL SHUCHU ;顯示數(shù)據(jù)到數(shù)碼管 SJMP MAIN1;*GET_TEMP: CLR EA ;使用DS18B20一定要禁止任何中斷產(chǎn)生 LCALL INT

6、;調(diào)用初使化子程序 MOV A,#0CCH ; LCALL WRITE ;送入跳過ROM命令 MOV A,#44H LCALL WRITE ;送入溫度轉(zhuǎn)換命令 LCALL INT ;溫度轉(zhuǎn)換完全,再次初使化DS18B20 MOV A,#0CCH LCALL WRITE ;送入跳過ROM命令 MOV A,#0BEH LCALL WRITE ;送入讀溫度暫存器命令 LCALL READ MOV R7,A ;讀出溫度值低字節(jié)存入R7 LCALL READ MOV R6,A ;讀出溫度值高字節(jié)存入R6 SETB EA RET;*INT: ;初始化DS18B20子程序 CLR EAL0:CLR P2.1

7、 ;復(fù)位 MOV R2,#149L1:DJNZ R2,L1 ;596US SETB P2.1 ;釋放DS18B20總線 MOV R2,#15 ;4USL2:DJNZ R2,L2 ;60US CLR C ;2US,清DS18B20存在信號 MOV C,P2.1 ;取DS18B20存在信號 JC L0 ;判斷DS18B20存在嗎?不存在則重新來 MOV R2,#125 ;存在則拉高 SETB P2.1L3:DJNZ R2,L3 ;共500US RET;*WRITE: MOV R1,#08H ;設(shè)置寫位個數(shù) WLOP:RRC A ;把寫的位放到C ACALL WRBIT ;調(diào)寫1位子程序 DJNZ

8、R1,WLOP ;8位全寫完? RET WRBIT: MOV R2,#14 ;設(shè)置時間常數(shù) CLR P2.1 ;寫開始 NOP ;2US MOV P2.1,C ;C容存到總線 WDLT:DJNZ R2,WDLT ;56US SETB P2.1 ;釋放總線 RET;*READ: MOV R1,#8H ;設(shè)置讀位數(shù) RLOP:ACALL RDBIT ;調(diào)讀1位子程序 RRC A ;把讀到的位在C中的依次送給A DJNZ R1,RLOP ;8位讀完? RET RDBIT: MOV R2,#13 ;設(shè)置時間常數(shù) CLR P2.1 NOP ;2US SETB P2.1 ;釋放總線 NOP ;2USMOV

9、 C,P2.1 ;把總線上的容讀到CRDDLT: DJNZ R2,RDDLT ;等待52US SETB P2.1 RET;*;程序名稱:SEPERATE;功能:處理采集后的的數(shù)據(jù),把小數(shù)部分分開,R6放整數(shù)R7放小數(shù),F(xiàn)0放符號位;入口參數(shù): R6,R7;出口參數(shù): R6 R7 F0;*SEPERATE: MOV A,R6 MOV C,ACC.7 MOV F0,C ;符號位 JC SEPERATE1 SJMP SEPERATE2SEPERATE1:MOV A,R6 CPL A MOV R6,A MOV A,R7 CPL A CLR C INC A MOV R7,A MOV A,R6 ADDC

10、A,#00H MOV R6,A SEPERATE2:MOV 40H,R7 ANL 40H,#0FH ;小數(shù)部分 MOV R0,#12 ;移12次 SEPERATE3:MOV A,R6 RRC A MOV R6,A MOV A,R7 RRC A MOV R7,A MOV A,41H RRC A MOV 41H,A ;整數(shù)部分 DJNZ R0,SEPERATE3 MOV R6,41H ;存整數(shù)部分 MOV R7,40H ;存小數(shù)部分 RET;*;程序名稱:ZHUANHUAN;功能:將R6R7中的二進(jìn)制數(shù)轉(zhuǎn)換為BCD的形式;入口參數(shù):R6R7;出口參數(shù):R4R5R6R7;*ZHUANHUAN: MO

11、V A,R6 ;開始處理整數(shù)部分 MOV B,#100 DIV AB MOV R4,A ;存百位 MOV A,BMOV B,#10 DIV AB MOV R5,A ;存十位 MOV R6,B ;存?zhèn)€位 MOV A,R7 ;開始處理小數(shù)部分地 MOV B,#5 MUL AB MOV B,#10 DIV AB MOV 40H,A ;存進(jìn)位 MOV A,R7 MOV B,#2 MUL AB ADD A,40H MOV B,#10 DIV AB MOV 40H,A ;存進(jìn)位 MOV A,R7 MOV B,#6 MUL AB ADD A,40H MOV B,#10 DIV AB MOV R7,A ;暫存

12、小數(shù)最高位 MOV A,B CLR C SUBB A,#5 JC ZHUANHUAN1 INC R7 ZHUANHUAN1:RET;*;程序名稱:JIANTIAO;功能:掃描鍵盤;入口參數(shù):R5R6R7;出口參數(shù):30H,31H,32H;*JIANTIAO: P1.7,QUIT ; 如果有Enter鍵入,則開始鍵盤輸入 LCALL DELAY P1.7,QUIT CLR 21H.1 ; 每次進(jìn)來都賦值輸入標(biāo)志,設(shè)置為0 MOV 30H, R5 ;以當(dāng)前所測溫度為基準(zhǔn),進(jìn)行加減 MOV 31H, R6 MOV 32H, R7LOOP: 21H.1,QUIT ;如果輸入完成,20H.1則為1,退出

13、鍵盤程序 P1.7,JIA LCALL DIFINEJIA: P1.5,JIAN LCALL JIAYIJIAN: P1.6,XIANSHI LCALL JIANYIXIANSHI:LCALL QINGLING LCALL SHUCHU SJMP LOOPQUIT:RET;*;程序名稱:DIFINE;功能:確認(rèn)鍵盤輸入和退出鍵盤輸入;入口參數(shù):ENTER_FLAG;出口參數(shù):ENTER_FLAG;*DIFINE: LCALL DELAY P1.7,LOOP ;按鍵抖動處理 SETB 21H.1 LCALL DELAY RET;*;程序名稱:JIAYI;功能:數(shù)值上調(diào)處理;入口參數(shù): 30H,3

14、1H,32H;出口參數(shù):R5R6R7;*JIAYI: LCALL DELAY P1.5,LOOP INC 32H ;小數(shù)位加1 MOV A,32H CJNE A,#0AH,JIANEXT ;小數(shù)位增加到10,回0 MOV 32H,#00H INC 31H ;個位進(jìn)1 MOV A,31H CJNE A,#0AH,JIANEXT MOV 31H,#00H INC 30H ;十位進(jìn)1 MOV A,30H CJNE A,#0AH,JIANEXT ;十位超過99.9,溢出了 MOV R0,#200CUOWU1:LCALL CUOWU ;出錯,顯示8888DJNZ R0,CUOWU1 DEC 30H ;退

15、回99.9 MOV 31H,#09H MOV 32H,#09HJIANEXT: MOV R5,30H MOV R6,31H MOV R7,32H LCALL DELAY RET;*;程序名稱:JIANYI;功能:數(shù)值下調(diào)處理;入口參數(shù): 30H,31H,32H;出口參數(shù):R5R6R7;*JIANYI: LCALL DELAY P1.6,LOOP ;按鍵抖動處理 DEC 32H ;小數(shù)位減一 MOV A,32H CJNE A,#0FFH,JIANNEXT ;小數(shù)位減到0,回到9 MOV 32H,#09H DEC 31H ;個位減一 MOV A,31H CJNE A,#0FFH,JIANNEXT

16、;個位減到0,回到9 MOV 31H,#09H DEC 30H ;十位減一 MOV A,30H CJNE A,#0FFH,JIANNEXT ;十位低于0,溢出了 MOV R0,#200CUOWU2:LCALL CUOWU ;出錯,顯示8888 DJNZ R0,CUOWU2 INC 30H MOV 31H,#00H ;退回00.0MOV 32H,#00HJIANNEXT: MOV R5,30H MOV R6,31H MOV R7,32H LCALL DELAY RETDELAY: MOV R0,#250 ;延時程序LOOP1: MOV R1,#100 DJNZ R1,$ DJNZ R0,LOOP

17、1 RET;*;程序名稱:BAOJING;功能:報警控制;入口參數(shù):;出口參數(shù):;*BAOJING: MOV A,30H ;三個Buffer都是0的話,說明還沒有輸入數(shù)值,直接退出 JNZ BIJIAO MOV A,31H JNZ BIJIAO MOV A,32H JZ SQUIT BIJIAO: MOV A,30H CLR C ;置C為0 SUBB A,R5 JNZ GUODU ;十位不等轉(zhuǎn)移 MOV A,31H SUBB A,R6 JNZ GUODU ;個位不等轉(zhuǎn)移 MOV A,32H SUBB A,R7 JNZ GUODU ;小數(shù)位不等轉(zhuǎn)移 RETGUODU:CLR P2.4 JC MI

18、NGJIAO ;當(dāng)前所測溫度大于設(shè)置的溫度,則鳴叫 RET MINGJIAO:LCALL CUOWU LJMP JIANTIAOSQUIT:RET;*;程序名稱:CUOWU;功能:程序出錯處理,顯示四個8,即8888;入口參數(shù):無;出口參數(shù):R4R5R6R7;*CUOWU: SETB P2.4 MOV R4,#08H MOV R5,#08H MOV R6,#08H MOV R7,#08H LCALL QINGLING LCALL SHUCHU RET;*;程序名稱:QINGLING;功能:將R4R5R6R7轉(zhuǎn)換為滿足輸出的類型;輸入?yún)?shù):R4R5R6R7;輸出參數(shù):R4R5R6R7;*QING

19、LING: MOV DPTR,#TABLE ;指向表首 MOV A,R4 ;轉(zhuǎn)換為表格中的數(shù)據(jù) MOVC A,A+DPTR MOV 35H,A MOV A,R5 MOVC A,A+DPTR MOV 36H,A MOV A,R6 MOVC A,A+DPTR MOV 37H,A MOV A,R7 MOVC A,A+DPTR MOV 38H,A INC 37H ;小數(shù)點(diǎn) MOV A,35H CJNE A,#0FCH,ANDY2 ;高位清零 MOV 35H,#00H MOV A,36H CJNE A,#0FCH,ANDY2 MOV 36H,#00H ANDY2: F0,ANDY3 ;判斷是否為負(fù)數(shù)加符號 SJMP ANDY ;如果為正數(shù)則不加符號 ANDY3: MOV A,35HCJNE A,#00H,ANDY ;最高位是否為零MOV A,36H CJNE A,#00H,IVERSON ;中位是否為零 MOV 36H,#02H ;R5用來顯示符號 SJM

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論