數(shù)字式溫度計設(shè)計說明書_第1頁
數(shù)字式溫度計設(shè)計說明書_第2頁
數(shù)字式溫度計設(shè)計說明書_第3頁
數(shù)字式溫度計設(shè)計說明書_第4頁
數(shù)字式溫度計設(shè)計說明書_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué)習(xí)情境三數(shù)字式溫度計制作與調(diào)試說明書電子1034班組別:第四組 組員:XXXXXX 2012年3月8日目錄一、工作任務(wù)- 3 -二、總體設(shè)計思路- 3 -2.1整體功能說明- 3 -2.2總體框圖- 3 -三、硬件設(shè)計- 3 -3.1硬件模塊組成- 3 -3.2各模塊說明- 3 -1)主控制器- 3 -2)顯示驅(qū)動與顯示電路- 4 -3)測溫模塊- 4 -4)報警電路- 4 -5)復(fù)位電路- 5 -四、軟件設(shè)計- 5 -4.1程序結(jié)構(gòu)- 5 -4.2各模塊說明及流程圖- 6 -1)主程序流程圖- 6 -2)讀出溫度子程序流程圖- 6 -3)顯示數(shù)據(jù)刷新子程序流程圖- 7 -4)計算溫度子程序

2、流程- 7 -5)溫度轉(zhuǎn)換命令子程序流程圖- 8 -4.3程序清單- 8 -五、調(diào)試過程- 13 -5.1調(diào)試方法與步驟- 13 -5.2調(diào)試結(jié)果- 13 -六、附件- 14 -一、 工作任務(wù)開發(fā)完成一個簡易的數(shù)字式溫度計。二、 總體設(shè)計思路2.1整體功能說明開發(fā)完成一個簡易的數(shù)字式溫度計。測溫范圍在55125,誤差在0.5以內(nèi)。溫度測量間隔時間選擇12s。通過鍵盤擴展(行列式或獨立式按鍵),有溫度上下限值及溫度報警功能。在數(shù)字式溫度計的制作中主要以51單片機(AT89C51)來控制,用溫度傳感器檢測外界的溫度,軟件的顯示子程序用四位一體數(shù)碼管顯示出來,精確到1位小數(shù)點,在超出測溫范圍時,進行

3、報警功能。2.2總體框圖三、硬件設(shè)計3.1硬件模塊組成本電路由單片機,測溫電路,復(fù)位電路,報警電路,顯示驅(qū)動與顯示電路等組成了數(shù)字式溫度計。3.2各模塊說明1) 主控制器:單片機AT89C51具有低電壓和小體積等特點,兩個端口剛好滿足系統(tǒng)的設(shè)計需要痕適合便攜手持式產(chǎn)品的設(shè)計使用。2)顯示驅(qū)動與顯示電路:采用共陽四位LED數(shù)碼管,用三極管做驅(qū)動3)測溫模塊:DS18B20溫度傳感器是智能溫度傳感器,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式。4)報警電路:運用直流的蜂鳴器,發(fā)光二極管組成,用于電路在超限的情況下發(fā)出光報警,也可通過取反來實現(xiàn)電路的閃爍報警。

4、5)復(fù)位電路:采用按鍵手動復(fù)位電路,外接電容電阻與點動開關(guān)。四、軟件設(shè)計4.1程序結(jié)構(gòu)軟件設(shè)計分為主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計算溫度子程序和顯示數(shù)據(jù)刷新子程序 4.2各模塊說明及流程圖1)主程序流程圖說明:主程序的主要 功能是負(fù)責(zé)溫度的實時顯示、讀出并處理 DS18B20 的測量溫度值溫度測量每1s進行一次。 這樣可以在1s之內(nèi)測量一次被測溫度。2)讀出溫度子程序流程圖讀出溫度子程序的主要功能是讀出 RAM 中的 9 字節(jié)。在讀出時須進行 CRC 校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。 發(fā)出DS18B20復(fù)位命令發(fā)出讀取溫度命令移入溫度暫存器發(fā)出跳過ROM命令讀取操作,CRC

5、校驗9字節(jié)完?CR3校驗正確結(jié)束YYNN3)顯示數(shù)據(jù)刷新子程序流程圖顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進行刷新操作,當(dāng)最高數(shù)據(jù)顯示位為0時,將符號顯示位移入下一位。4)計算溫度子程序流程計算溫度子程序?qū)?RAM 中讀取值進行 BCD 碼的轉(zhuǎn)換運算,并進行溫度值正負(fù)的判定。5)溫度轉(zhuǎn)換命令子程序流程圖溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令。當(dāng)采用 12 位分辨率時,轉(zhuǎn)換時間約為 750 ms 。在本程序設(shè)計中,采用 1s顯示程序延時法等待轉(zhuǎn)換的完成。4.3程序清單;*; 常數(shù)定義;* TIMEL EQU 0E0H ;20MS,定時器 0 時間常數(shù) TIMEH EQU 0B1H

6、; TEMPHEAD EQU 36H ;*; 工作內(nèi)存定義;* BITST DATA 20H TIME1SOK BIT BITST.1 TEMPONEOK BIT BITST.2 TEMPL DATA 26H TEMPH DATA 27H TEMPHC DATA 28H TEMPLC DATA 29H;*; 引腳定義;* TEMPDIN BIT P3.4;* ORG 0000H AJMP MAIN ORG 0003H AJMP INT_0 ORG 000BH DJNZ R6, $ ; MOV R6,#3CHLOOP1820: MOV C, TEMPDIN ; JC INITDS1820OUT

7、; DJNZ R6,LOOP1820 MOV R6, #064H ; DELAY 200us DJNZ R6, $ ; SJMP INITDS1820 ; RET ;INITDS1820OUT: SETB TEMPDIN ; RET ;讀DS18B20的程序, 從DS18B20中讀出一個字節(jié)的數(shù)據(jù)READDS1820: MOV R7, #08H ; SETB TEMPDIN ; NOP ; NOP ;READDS1820LOOP: CLR TEMPDIN ; NOP ; NOP ; NOP ; SETB TEMPDIN ; MOV R6, #07H ; DELAY 15us DJNZ R6,

8、$ ; MOV C, TEMPDIN ; MOV R6, #3CH ; DELAY 120us DJNZ R6, $ ; RRC A ; SETB TEMPDIN ; DJNZ R7, READDS1820LOOP MOV R6, #3CH ; DELAY 120us DJNZ R6, $ ; RET ; 寫DS18B20的程序, 從DS18B20中寫一個字節(jié)的數(shù)據(jù)WRITEDS1820: MOV R7, #08H ; SETB TEMPDIN ; NOP ; NOP ;WRITEDS1820LOP: CLR TEMPDIN ; MOV R6, #07H ; DELAY 15us DJNZ R

9、6, $ ; RRC A AJMP T_B ORG 0013H AJMP INT_1 ORG 0030H MAIN:MOV TMOD,#00H MOV TH0,#63H MOV TL0,#18H MOV R5,#100 SETB 07H SETB IT0 SETB IT1 SETB EX0 SETB EX1 SETB ET0 SETB EA SETB TR0 LCALL READTEMP LOOP:LCALL CF LCALL DIS AJMP LOOP T_B: MOV TH0,#63H MOV TL0,#18H DJNZ R5,LOOP8 MOV R5,#100 LCALL READTEM

10、P LCALL READTEMP1 CALL CONVTEMP LOOP8:RETI INT_0: CLR 05H INT_1: JB 05H,;*; 子程序區(qū);*; RESET DS18B20;*INITDS1820: SETB TEMPDIN ; NOP ; NOP ; CLR TEMPDIN ; MOV R6, #0A0H ; DELAY 480us DJNZ R6, $ MOV R6, #0A0H DJNZ R6, $ ; SETB TEMPDIN ; MOV R6, #32H ; DELAY 70usCRC8CAL: PUSH ACC ; MOV R7, #08H ; Number

11、Bits In ByteCRC8LOOP1: XRL A, B ; Calculate CRC RRC A ; Move To Carry MOV A, B ; Get The Last CRC Value JNC CRC8LOOP2 ; Skip If Data = 0 XRL A, #18H ; Update The CRC ValueCRC8LOOP2: RRC A ; Position The New CRC MOV B, A ; Store The New CRC POP ACC ; Get The Remaining Bits RR A ; Position The Next Bi

12、t PUSH ACC ; Save The Remaining Bits DJNZ R7, CRC8LOOP1 ; Repeat For 8 Bits POP ACC RET;處理溫度 BCD 碼子程序CONVTEMP: MOV A, TEMPH ; ANL A, #80H ; JZ TEMPC1 ; CLR C ; MOV A, TEMPL ; CPL A ; ADD A, #01H ; MOV TEMPL, A ; MOV A, TEMPH ; - CPL A ; ADDC A, #00H ; MOV TEMPH, A ; TEMPHC HI = 符號位 MOV TEMPHC, #0BH

13、; SJMP TEMPC11 ;TEMPC1: MOV TEMPHC, #0AH ; +TEMPC11: MOV A,TEMPHC SWAP A MOV TEMPHC,A MOV A, TEMPL ; ANL A, #0FH ; 乘 0.0625 MOV DPTR, #TEMPDOTTAB ; MOVC A, A + DPTR ; MOV TEMPLC, A ; TEMPLC LOW = 小數(shù)部分 BCD MOV A, TEMPL ; 整數(shù)部分 AN A, #0F0H ; SWAP A ; MOV TEMPL, A ; MOV A, TEMPH ; ; MOV TEMPDIN, C ; MOV

14、 R6, #34H ; DELAY 104us DJNZ R6, $ ; SETB TEMPDIN ; DJNZ R7, WRITEDS1820LOP RET ;*; READ TEMP;*READTEMP: LCALL INITDS1820 ; MOV A, #0CCH ; LCALL WRITEDS1820 ; SKIP ROM MOV R6, #34H ; DELAY 104us DJNZ R6, $ ; MOV A, #44H ; LCALL WRITEDS1820 ; START CONVERSION MOV R6, #34H ; DELAY 104us DJNZ R6, $ ; R

15、ET ;READTEMP1:LCALL INITDS1820 ; MOV A, #0CCH ; LCALL WRITEDS1820 ; SKIP ROM MOV R6, #34H ; DELAY 104us DJNZ R6, $ ; MOV A, #0BEH ; LCALL WRITEDS1820 ; SCRATCHPAD MOV R6, #34H ; DELAY 104us DJNZ R6, $ ; MOV R5, #09H ; MOV R0, #TEMPHEAD ; MOV B,#00HREADTEMP2: LCALL READDS1820 ; MOV R0, A ; INC R0 ;RE

16、ADTEMP21: LCALL CRC8CAL; DJNZ R5, READTEMP2 ; MOV A, B ; JNZ READTEMPOUT ; MOV A, TEMPHEAD + 0 ; MOV TEMPL, A ; MOV A, TEMPHEAD + 1 ; MOV TEMPH, A ;READTEMPOUT: RET ;Calculate CRC-8 Values. Uses The CCITT-8 Polynomial, Expressed As; X8 + X5 + X4 + 1 ANL A, #0FH ; SWAP A ; ORL A, TEMPL ; LCALL HEX2BC

17、D1 ; MOV TEMPL, A ; ANL A, #0F0H ; SWAP A ; ORL A, TEMPHC ; TEMPHC LOW = 十位數(shù) BCD MOV TEMPHC, A ; MOV A, TEMPL ; ANL A, #0FH ; SWAP A ; TEMPLC HI = 個位數(shù) BCD ORL A, TEMPLC ; MOV TEMPLC, A ; MOV A, R7 ; JZ TEMPC12 ; ANL A, #0FH ; SWAP A ; MOV R7, A ; MOV A, TEMPHC ; TEMPHC HI = 百位數(shù) BCD ANL A, #0FH ; ORL

18、 A, R7 ; MOV TEMPHC, A ;TEMPC12: RET ;*; 小數(shù)部分碼表;*TEMPDOTTAB: DB 00H, 01H, 01H, 02H, 03H, 03H,04H, 04H, 05H, 06H DB 06H, 07H, 08H, 08H, 09H, 09H;*; 單字節(jié) 16 進制轉(zhuǎn) BCD;*HEX2BCD1: MOV B, #064H ; 16 進制 - BCD DIV AB ; B = A % 100 MOV R7, A ; R7 = 百位數(shù) MOV A, #0AH ; XCH A, B ; DIV AB ; B = A % B SWAP A ; ORL A

19、, B ; RET ;DIS:MOV R1,#70H MOV R2,#11111110BLD0:MOV P0,#00H MOV A,R1 MOV DPTR,#TABLE DB 0FFH DB 0BFH ;DB 36H ;DB 0A1H ;DB 86H ;DB 8eH DELAY:MOV R3,#030H LOOP0:MOV R4,#00FH DJNZ R4,$ DJNZ R3,LOOP0 RET CF: MOV A,29H ANL A,#0FH MOV 73H,A MOV A,29H ANL A,#0F0H SWAP A MOV 72H,A MOV A,28H ANL A,#0FH MOV 7

20、1H,A MOV A,28H ANL A,#0F0H SWAP A MOV 70H,A RET END MOVC A,A+DPTR MOV P0,A MOV A,R2 JNB ACC.2,NB SETB P0.7 AJMP BN NB:CLR P0.7 BN:MOV P2,A LCALL DELAY INC R1 MOV A,R2 JNB ACC.3,LD1 RL A MOV R2,A AJMP LD0LD1:RET ORG 0A00HTABLE:DB 0c0H DB 0f9H DB 0a4H DB 0b0H DB 99H DB 92H DB 82H DB 0f8H DB 80H DB 90H 五、調(diào)試過程5.1調(diào)試方法與步驟1、程序調(diào)試 數(shù)字式溫度計的源程序編寫完之后,我們使用軟件和Protel共同來調(diào)試源程序的爭取與否。2、仿真硬件設(shè)計的內(nèi)容使用Protel軟件,來畫出主控模塊,采集模塊,顯示模

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論