溫度傳感器實(shí)驗(yàn)設(shè)計(jì)_第1頁
溫度傳感器實(shí)驗(yàn)設(shè)計(jì)_第2頁
溫度傳感器實(shí)驗(yàn)設(shè)計(jì)_第3頁
溫度傳感器實(shí)驗(yàn)設(shè)計(jì)_第4頁
溫度傳感器實(shí)驗(yàn)設(shè)計(jì)_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

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

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

13、單片機(jī)用到的匯編指令不熟悉。也暴露了在單片機(jī)理論課上學(xué)到的知識(shí)掌握的不好。還有一點(diǎn)就是理論與實(shí)際的聯(lián)系對(duì)我們學(xué)習(xí)和掌握單片機(jī)是非常有幫助的。 參考文獻(xiàn)1DS18b20數(shù)據(jù)手冊(cè)。2 求是科技編著8051系列單片機(jī)C程序設(shè)計(jì)完全手冊(cè)北京: 人民郵電出版社, 20063 余發(fā)山,王福忠.單片機(jī)原理及應(yīng)用技術(shù).徐州:中國礦業(yè)大學(xué)出版社,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ù)點(diǎn)不亮 SJMP EXITDSL: MOV P0,42H ORL P0,#00100000B ; 個(gè)位位選 CPL P2.0;個(gè)位后面小數(shù)位亮 SJMP EXIT1DSL1:MOV P0,41H ORL P

15、0,#00010000B ;小數(shù)位位選SETB P2.0;小數(shù)點(diǎn)不亮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 (送一個(gè)溫度轉(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 總時(shí)間 1+1+(1+255*2+2)*255+2 CLR EA ;進(jìn)入讀時(shí)序禁用任何中斷 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進(jìn)制 DIV AB ;A/B A為商 B為余數(shù) MOV 42H,B ;B為個(gè)位 42H中放個(gè)位 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è)置寫位個(gè)數(shù)SEN3: CLR C RRC A ;把一個(gè)字節(jié)data(A)分成8個(gè)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ā)送一復(fù)位脈沖 MOV R6,#250 DJNZ R6,$ ;保持低電平500us MOV R6,#50 DJNZ R6,$ SETB DQ ;釋放總線 MOV R6,#15 DJNZ R6,$ ;釋放總線并進(jìn)入接收狀態(tài)DSl820在檢測(cè)到總線的上升沿之后等待30us CALL CHCK

溫馨提示

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

評(píng)論

0/150

提交評(píng)論