溫度傳感器實驗設計_第1頁
溫度傳感器實驗設計_第2頁
溫度傳感器實驗設計_第3頁
溫度傳感器實驗設計_第4頁
溫度傳感器實驗設計_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、成都理工大學工程技術學院本科課程設計報告成都理工大學工程技術學院單片機課程設計報告數(shù)字溫度計設計 摘要在這個信息化高速發(fā)展的時代,單片機作為一種最經(jīng)典的微控制器,單片機技術已經(jīng)普及到我們生活,工作,科研,各個領域,已經(jīng)成為一種比較成熟的技術,作為自動化專業(yè)的學生,我們學習了單片機,就應該把它熟練應用到生活之中來。本文將介紹一種基于單片機控制的數(shù)字溫度計,本溫度計屬于多功能溫度計,可以設置上下報警溫度,當溫度不在設置范圍內(nèi)時,可以報警。本文設計的數(shù)字溫度計具有讀數(shù)方便,測溫范圍廣,測溫精確,數(shù)字顯示,適用范圍寬等特點。關鍵詞:單片機,數(shù)字控制,數(shù)碼管顯示,溫度計,DS18B20,AT89S52。

2、 目錄1概述41.1設計目的41.2設計原理41.3設計難點42 系統(tǒng)總體方案及硬件設計42.1數(shù)字溫度計設計方案論證52.2.1 主控制器52.4 系統(tǒng)整體硬件電路設計73系統(tǒng)軟件設計83.1初始化程序83.2讀出溫度子程序93.3讀、寫時序子程序103.4 溫度處理子程序113.5 顯示程序124 Proteus軟件仿真135硬件實物146課程設計體會.15附錄1:16附錄2:.211概述1.1設計目的 隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提

3、供更好的更方便的設施就需要從數(shù)單片機技術入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。本設計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準確的場所,或科研實驗室使用,可廣泛用于食品庫、冷庫、糧庫、溫室大棚等需要控制溫度的地方。目前,該產(chǎn)品已在溫控系統(tǒng)中得到廣泛的應用。1.2設計原理 本系統(tǒng)是一個基于單片機AT89S52的數(shù)字溫度計的設計,用來測量環(huán)境溫度,測量范圍為-50110度。整個設計系統(tǒng)分為4部分:單片機控制、溫度傳感器、數(shù)碼顯示以及鍵盤控制電路。整個設計是以AT89S52為核心,通過數(shù)字溫度傳感器DS18B20來實

4、現(xiàn)環(huán)境溫度的采集和A/D轉(zhuǎn)換,同時因其輸出為數(shù)字形式,且為串行輸出,這就方便了單片機進行數(shù)據(jù)處理,但同時也對編程提出了更高的要求。單片機把采集到的溫度進行相應的轉(zhuǎn)換后,使之能夠方便地在數(shù)碼管上輸出。LED采用三位一體共陽的數(shù)碼管。1.3設計難點 此設計的重點在于編程,程序要實現(xiàn)溫度的采集、轉(zhuǎn)換、顯示和上下限溫度報警,其外圍電路所用器件較少,相對簡單,實現(xiàn)容易。2 系統(tǒng)總體方案及硬件設計2.1數(shù)字溫度計設計方案論證由于本設計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應,在將隨被測溫度變化的電壓或電流采集過來,進行A/D轉(zhuǎn)換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯

5、示出來,這種設計需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。進而考慮到用溫度傳感器,在單片機電路設計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進行轉(zhuǎn)換,就可以滿足設計要求。2.2總體設計框圖溫度計電路設計總體設計方框圖如圖1所示,控制器采用單片機AT89S52,溫度傳感器采用DS18B20,用3位共陰LED數(shù)碼管以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。晶振電路AT89S52 單 片 機 主 控 電 路三位LED顯示電路溫度檢測電路DS18B20 復 位 電 路圖1 總體設計框圖2.2.1 主控制器單片機AT89S52具有

6、低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設計需要,適合便攜手持式產(chǎn)品的設計使用。AT89S52單片機芯片具有以下特性:1)指令集合芯片引腳與Intel公司的8052兼容;2)4KB片內(nèi)在系統(tǒng)可編程FLASH程序存儲器;3)時鐘頻率為033MHZ;4)128字節(jié)片內(nèi)隨機讀寫存儲器(RAM);5)6個中斷源,2級優(yōu)先級;6)2個16位定時/記數(shù)器;7)全雙工串行通信接口;8)監(jiān)視定時器;9)兩個數(shù)據(jù)指針;2.2.2 顯示電路 2.2.3溫度傳感器DS18B20溫度傳感器是美國DALLAS半導體公司推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被

7、測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9-12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:1.全數(shù)字溫度轉(zhuǎn)換及輸出。2.先進的單總線數(shù)據(jù)通信。3.最高12為位分辨率,精度可達±0.5攝氏度。4.12位分辨率時的最大工作周期為750毫秒。5.可選擇寄生工作方式。6.檢測溫度范圍為+55+125(-67+257)。7.內(nèi)置EEPROM,限溫報警功能。8.64位光刻ROM,內(nèi)置產(chǎn)品序列號,方便多機鏈接。9.多樣封裝形式,便于不同硬件系統(tǒng)。若要讀出當前的溫度數(shù)據(jù)我們需要執(zhí)行兩次工作周期,第一個周期為復位、跳過 ROM 指令、執(zhí)行溫度轉(zhuǎn)換存儲器操作指令、等待 500uS 溫度轉(zhuǎn)換時

8、間。緊接著執(zhí)行第二個周期為復位、跳過 ROM指令、執(zhí)行讀 RAM 的存儲器操作指令、讀數(shù)據(jù)2.3 DS18B20溫度傳感器與單片機的接口電路2.4 系統(tǒng)整體硬件電路設計2.4.1 主板電路 系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,上下限報警調(diào)整電路,單片機主板電路等,單片機主板電路如圖5 所示: 圖5 單片機主板電路2.4.2 顯示電路 圖6 溫度顯示電路3 系統(tǒng)軟件設計系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。3.1初始化程序復位:首先我們必須對 DS18B20 芯片進行復位,復位就是由控制器(單片機)給 DS18B20

9、單總線至少 480uS 的低電平信號。當 18B20 接到此復位信號后則會在 1560uS 后回發(fā)一個芯片的存在脈沖。結(jié)束釋放總線發(fā)出存在脈沖,低電平持續(xù)120 us釋放總線延遲發(fā)出復位脈沖保持500us等待100us釋放總線釋放總線并進入接收狀態(tài)DSl820在檢測到總線的上升沿之后等待30us 圖7 初始化程序流程圖3.2讀出溫度子程序讀時間隙時控制時的采樣時間應該更加的精確才行,讀時間隙時也是必須先由主機產(chǎn)生至少1us的低電平,表示讀時間的起始。隨后在總線被釋放后的15us 中 DS18B20會發(fā)送內(nèi)部數(shù)據(jù)位,這時控制如果發(fā)現(xiàn)總線為高電平表示讀出“1”,如果總線為低電平則表示讀出數(shù)據(jù)“0”

10、。每一位的讀取之前都由控制器加一個起始信號。讀出溫度子程序的主要功能是讀出RAM中的2字節(jié),讀出溫度的低八位和高八位,在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖8示 發(fā)出18B20復位命令發(fā)跳過ROM命令發(fā)讀取溫度命令2字節(jié)是否讀完?YN移入溫度暫存器圖8 讀溫度程序流程圖3.3讀、寫時序子程序讀寫的程序是本次設計中的重點和難點,通過我們對其時序的分析,從而寫出高效的程序。等待設置讀位數(shù)R5NR5-1=0?C清零,把A環(huán)移給C設置寫位數(shù)R5C=1?釋放總線延遲寫0復位Y寫1N釋放總線總線上的數(shù)給CY延遲結(jié)束NR5-1=0?寫時序子程序流程圖Y 結(jié)束 讀時序子程序

11、流程圖 3.4 溫度處理子程序計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負的判定,其程序流程圖如圖11所示取30H的高4位位溫度低4位取31H的低4位位溫度高4位高低4位組合成溫度溫度除以10余數(shù)為溫度個位放42H商再除以10余數(shù)為溫度十位放43H結(jié)束取30H的低4位為溫度小數(shù)經(jīng)查表得,放于41H圖11 溫度處理程序流程圖 3.5 顯示程序此函數(shù)實現(xiàn)的對數(shù)碼管顯示的處理,其亮點在于可以直接對數(shù)碼管進行操作,其本身是個兩變量函數(shù),第一個變量是要開通的位選,第二個變量是要顯示的數(shù)據(jù),這樣我們可以直接方便而又簡單直觀的對數(shù)碼管進行操作。程序流程圖如圖12。 22H取反21H

12、取反21H=1?22H=1?開始選中各位小數(shù)點點亮選中小數(shù)位小數(shù)點不亮選中十位小數(shù)點不亮YNYN結(jié)束 4 Proteus軟件仿真   6 課程設計體會 通過為時2周的單片機課程設計,在老師的知道和幫助下我我和我的搭檔共同完成數(shù)值溫度級的設計學習。其中包擴了程序的學習與修改,程序的仿真,電路的仿真以及實體電路的搭建,使之可以初略的讀出溫度值。通過這次課程設計我學到了許多的知識,了解了DS18B20的使用和接線的方法,了解了數(shù)碼管的顯示原理。學會了單片機程序?qū)懭氲姆椒?,更加熟悉了單片機的一些常用管腳的功能。 同時,在課程設計的過程中,我也發(fā)現(xiàn)了自己很多的不足之處,一些

13、單片機用到的匯編指令不熟悉。也暴露了在單片機理論課上學到的知識掌握的不好。還有一點就是理論與實際的聯(lián)系對我們學習和掌握單片機是非常有幫助的。 參考文獻1DS18b20數(shù)據(jù)手冊。2 求是科技編著8051系列單片機C程序設計完全手冊北京: 人民郵電出版社, 20063 余發(fā)山,王福忠.單片機原理及應用技術.徐州:中國礦業(yè)大學出版社,2003附錄1:程序 DQ BIT P3.7 ; 1 wire line DP BIT P2.0 swpH equ 0d2H swpL equ 0ffH WDLSB DATA 30H ; WDMSB DATA 31H ;* ORG 0000H LJMP MAIN ORG

14、 000BH LJMP TMR0 ; Timer0 isr;*; Timer0 Interrupt Service RoutineTMR0: MOV TH0,#swpH ;輪流送溫度值的高低兩位到數(shù)碼管.swph為0d2H MOV TL0,#swpL JB 21H,DSL JB 22H,DSL1 MOV P0,43H ORL P0,#01000000B ; 十位位選 SETB P2.0;小數(shù)點不亮 SJMP EXITDSL: MOV P0,42H ORL P0,#00100000B ; 個位位選 CPL P2.0;個位后面小數(shù)位亮 SJMP EXIT1DSL1:MOV P0,41H ORL P

15、0,#00010000B ;小數(shù)位位選SETB P2.0;小數(shù)點不亮SJMP EXIT2;DSL2: ; MOV P0,40H;ORL P0,#10000000B;SETB P2.0;SJMP EXIT3EXIT: CPL 21H; 21h取反,即21h=1 RETI EXIT1: CPL 22H; 22h=1 CPL 21H ;21h=0 RETI EXIT2: ; CPL 23H; CPL 22H ;22h=0 RETI ; Main programMAIN: TOINIT: CLR EA MOV TMOD,#01H MOV TH0,#swpH MOV TL0,#swpL SETB EA

16、SETB ET0 SETB TR0 ;* ;41H-43H清零 MOV R2,#3 MOV R0,#41H OVER: MOV R0,#00H INC R0 DJNZ R2,OVER ;OVER執(zhí)行完 LOOP: LCALL DSWD SJMP LOOP;*; Read a temperature from the DS18B20DSWD: LCALL RSTSNR ; Init of the DS18B20 JNB F0,KEND MOV R0,#0CCH ;要寫的數(shù)給R0 LCALL SEND_BYTE ;調(diào)用寫程序 MOV R0,#44H LCALL SEND_BYTE ; Send a

17、 Convert Command (送一個溫度轉(zhuǎn)換指令) SETB EA;延遲 MOV 48H,#1 ;1us SS2: MOV 49H,#255 ;1usSS1: MOV 4AH,#255 ;1usSS0: DJNZ 4AH,SS0 ;2us/次,255*2 DJNZ 49H,SS1 ;2us/次,255次 DJNZ 48H,SS2 ;2us 總時間 1+1+(1+255*2+2)*255+2 CLR EA ;進入讀時序禁用任何中斷 LCALL RSTSNR JNB F0,KEND MOV R0,#0CCH LCALL SEND_BYTE MOV R0,#0BEH LCALL SEND_BY

18、TE ; Send Read Scratchpad command LCALL READ_BYTE ; Read the low byte from scratchpad MOV WDLSB,A ; Save the temperature (low byte) LCALL READ_BYTE ; Read the high byte from scratchpad MOV WDMSB,A ; Save the temperature (high byte) LCALL TRANS12KEND: SETB EA RET;*;TRANS12: MOV A,30H ;30H存從1820取的溫度值

19、ANL A,#0F0H ;取WDLSB高4為(低位置0) MOV 3AH,A MOV A,31H ANL A,#0FH ;取WDMSB的低4位(高位置0) ORL A,3AH ;將WDLSB的高4為與WDMSB的低4位組合 SWAP A ;高低位互換 A溫度 MOV B,#10 ;轉(zhuǎn)換為10進制 DIV AB ;A/B A為商 B為余數(shù) MOV 42H,B ;B為個位 42H中放個位 MOV b,#10 DIV ab MOV 43H,B ;43十位 MOV A,30H ANL A,#0FH MOV DPTR,#tab1 MOVC A,a+DPTR MOV 41H,A RET;*; Send a

20、 byte to the 1 wire line 寫SEND_BYTE: ; MOV A,R0 MOV R5,#8 ;設置寫位個數(shù)SEN3: CLR C RRC A ;把一個字節(jié)data(A)分成8個bit環(huán)移給 C JC SEN1 LCALL WRITE_0 ;等待60us SJMP SEN2SEN1: LCALL WRITE_1SEN2: DJNZ R5,SEN3 ;寫下一位 RET;*; Read a byte from the 1 wire line 讀READ_BYTE: MOV R5,#8READ1: LCALL READ RRC A DJNZ R5,READ1 MOV R0,A RET;*; Reset 1 wire line 初始化RSTSNR: SETB DQ NOP NOP CLR DQ ;發(fā)送一復位脈沖 MOV R6,#250 DJNZ R6,$ ;保持低電平500us MOV R6,#50 DJNZ R6,$ SETB DQ ;釋放總線 MOV R6,#15 DJNZ R6,$ ;釋放總線并進入接收狀態(tài)DSl820在檢測到總線的上升沿之后等待30us CALL CHCK

溫馨提示

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

評論

0/150

提交評論