DS18B20數(shù)字溫度計(jì)的設(shè)計(jì)_第1頁(yè)
DS18B20數(shù)字溫度計(jì)的設(shè)計(jì)_第2頁(yè)
DS18B20數(shù)字溫度計(jì)的設(shè)計(jì)_第3頁(yè)
DS18B20數(shù)字溫度計(jì)的設(shè)計(jì)_第4頁(yè)
DS18B20數(shù)字溫度計(jì)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)課程設(shè)計(jì)報(bào)告設(shè)計(jì)課題:DS18B20數(shù)字溫度計(jì)的設(shè)計(jì)專業(yè)班級(jí): 09 通信工程 小組成員:金雙鳳066譚曉平153朱傳毅指導(dǎo)教師: 田茂 設(shè)計(jì)時(shí)間: 2011-11-202011-12-25DS18B20數(shù)字溫度計(jì)的設(shè)計(jì)1、 功能要求數(shù)字溫度計(jì)測(cè)溫范圍在-55+125,誤差在0.5以內(nèi),采用四位一體七段數(shù)碼顯示管直接顯示。2、 方案論證在日常生活及工農(nóng)業(yè)生產(chǎn)中,經(jīng)常要用到溫度的檢測(cè)及控制,傳統(tǒng)的測(cè)溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測(cè)出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比較多的外部硬件支持。其缺點(diǎn)如下:硬件電路復(fù)雜;軟件調(diào)試復(fù)雜;制作成本高。 本數(shù)字溫度計(jì)設(shè)計(jì)采用溫度傳感器DS

2、18B20作為檢測(cè)元件,測(cè)溫范圍55125,最高分辨率可達(dá)0.0625。DS18B20可以直接讀出被測(cè)溫度值,而且采用三線制與單片機(jī)相連,減少了外部的硬件電路,具有低成本和易使用的特點(diǎn)。 按照系統(tǒng)設(shè)計(jì)功能的要求,確定系統(tǒng)由3個(gè)模塊組成:主控制器、測(cè)溫電路和顯示電路。數(shù)字溫度計(jì)總體結(jié)構(gòu)框圖如圖1所示。圖1 數(shù)字溫度計(jì)總體結(jié)構(gòu)框圖三、系統(tǒng)硬件電路的設(shè)計(jì)溫度計(jì)電路的設(shè)計(jì)原理圖如圖2所示,控制器使用單片機(jī)AT89C2051,溫度傳感器使用DS18B20,用4位共陽(yáng)七段數(shù)碼顯示管以動(dòng)態(tài)掃描法實(shí)現(xiàn)溫度顯示。圖2 設(shè)計(jì)原理圖(1) 主控制器單片機(jī)AT89C2051具有低電壓供電和小體積等特點(diǎn),兩個(gè)端口剛好滿

3、足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用。系統(tǒng)可用兩節(jié)電池供電。(2) 顯示電路顯示電路采用4位共陽(yáng)七段數(shù)碼顯示管,從P1口輸出段碼,列掃描用P3.0P3.3口來(lái)實(shí)現(xiàn),列驅(qū)動(dòng)用9012三極管。(3) 溫度傳感器工作原理a.DS18B20的性能特點(diǎn)DS18B20溫度傳感器是一種改進(jìn)型智能溫度傳感器。與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際需要通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;不需要外部器件;可通過(guò)數(shù)據(jù)線供電,電壓范圍

4、為3.05.5V;零待機(jī)功耗;溫度以912位數(shù)字量讀出;用戶可定義的非易失性溫度報(bào)警設(shè)置;報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度的器件;負(fù)電壓特性,電源電壓接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,只是不能正常工作。b.DS18B20的內(nèi)部結(jié)構(gòu) DS18B20采用3腳PR35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如圖3所示。圖3 DS18B20內(nèi)部結(jié)構(gòu)框圖 64位ROM的位結(jié)構(gòu)如圖4所示。開(kāi)始8位是產(chǎn)品類型的編號(hào);接著是每個(gè)器件的唯一的序號(hào),共有48位;最后8位的前面56位的CRC檢驗(yàn)碼,這也是多個(gè)DS18B20可以采用單線進(jìn)行通信的原因。非易失性溫度報(bào)警觸發(fā)器TH和TL,可通過(guò)軟件寫入用戶報(bào)警上下限數(shù)

5、據(jù)。圖4 DS18B20的64位ROM的位結(jié)構(gòu) DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫緩RAM和一個(gè)非易失性的可電擦除的EEPROM。高速暫緩RAM的結(jié)構(gòu)為9字節(jié)的存儲(chǔ)器,其結(jié)構(gòu)如圖5所示。前2字節(jié)包含測(cè)得的溫度信息。第3和第4字節(jié)是TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5字節(jié)為配置寄存器,其內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率,DS18B20工作時(shí)按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。圖5 DS18B20高速暫緩RAM的結(jié)構(gòu)圖該字節(jié)各位的定義如圖6所示,其中,低5位一直為1;TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,在DS18B20

6、出廠時(shí),該位被設(shè)置成0,用戶不要去改動(dòng);R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),即用來(lái)設(shè)置分辨率,其定義方法見(jiàn)下表。圖6 高速暫緩RAM各位字節(jié)的定義由表可見(jiàn),DS18B20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間就越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存RAM是第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)是前面所以8字節(jié)的CRC碼,可用來(lái)檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)DS18B20接受到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式儲(chǔ)存在高速暫緩RAM的第1、2字節(jié)中。單片機(jī)可以通過(guò)單線接口讀出該

7、數(shù)據(jù),讀數(shù)據(jù)時(shí),低位在先,高位在后,數(shù)據(jù)格式以0.0625/LSB形式表示。溫度值格式如圖7所示。圖7 DS18B20溫度值格式圖中,S表示符號(hào)位。當(dāng)S=0時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。DS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較,若TTH或T0;t-);/*顯示掃描函數(shù)*/scan()char k; for(k=0;k0; i-) /DQ=1;_nop_();_nop_(); DQ = 0;_nop_();_nop_();_nop_();_nop_();

8、_nop_();/5usDQ = val&0x01; /最低位移出delay(6); /66usval=val/2; /右移一位DQ = 1;delay(1); /*18B20讀1個(gè)字節(jié)函數(shù)*/從總線上讀取一個(gè)字節(jié)uchar read_byte(void)uchar i;uchar value = 0;for (i=8;i0;i-)DQ=1;_nop_();_nop_();value=1;DQ = 0; /_nop_();_nop_();_nop_();_nop_(); /4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); /4us if(DQ)value|=

9、0x80;delay(6); /66usDQ=1;return(value);/*讀出溫度函數(shù)*/read_temp()ow_reset(); /總線復(fù)位write_byte(0xCC); / 發(fā)Skip ROM命令write_byte(0xBE); / 發(fā)讀命令temp_data0=read_byte(); /溫度低8位temp_data1=read_byte(); /溫度高8位ow_reset();write_byte(0xCC); / Skip ROMwrite_byte(0x44); / 發(fā)轉(zhuǎn)換命令/*溫度數(shù)據(jù)處理函數(shù)*/work_temp()uchar n=0; /if(temp_d

10、ata1127) temp_data1=(256-temp_data1);temp_data0=(256-temp_data0);n=1;/負(fù)溫度求補(bǔ)碼display4=temp_data0&0x0f;display0=ditabdisplay4;display4=(temp_data0&0xf0)4)|(temp_data1&0x0f)4);/display3=display4/100;display1=display4%100;display2=display1/10;display1=display1%10;if(!display3)display3=0x0A;if(!display2)

11、display2=0x0A;/最高位為0時(shí)都不顯示if(n)display3=0x0B;/負(fù)溫度時(shí)最高位顯示-/ /*主函數(shù)*/main()Disdata=0xff; /初始化端口discan=0xff;for(h=0;h4;h+)displayh=8;/開(kāi)機(jī)顯示8888ow_reset(); / 開(kāi)機(jī)先轉(zhuǎn)換一次write_byte(0xCC); / Skip ROMwrite_byte(0x44); / 發(fā)轉(zhuǎn)換命令for(h=0;h500;h+) scan(); /開(kāi)機(jī)顯示88882秒while(1) read_temp(); /讀出18B20溫度數(shù)據(jù) work_temp(); /處理溫度數(shù)

12、據(jù) for(h=0;h500;h+) scan(); /顯示溫度值2秒 六、調(diào)試及性能分析系統(tǒng)調(diào)試以程序調(diào)試為主。硬件檢查比較簡(jiǎn)單,首先檢測(cè)電路的焊接是否正確,然后可以用萬(wàn)用表檢測(cè)或通電檢測(cè)。軟件調(diào)試可以先編寫顯示程序并進(jìn)行硬件的正確性檢測(cè),然后分別進(jìn)行主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令主程序,計(jì)算溫度子程序還有顯示數(shù)據(jù)刷子程序等的編程和調(diào)試。由于DS18B20與單片機(jī)采用串口數(shù)據(jù)傳輸,因此,對(duì)DS18B20進(jìn)行讀/寫編程時(shí)必須嚴(yán)格的保證讀寫時(shí)序,否則將無(wú)法讀取測(cè)量結(jié)果。本程序采用c語(yǔ)言編寫,用Keil c51編譯器編譯測(cè)試。軟件測(cè)試到能顯示溫度值,而且是在用溫度變化時(shí)有(例如用手去接觸)顯

13、示溫度改變,就基本完成。性能測(cè)試可以制作的溫度計(jì)和已有的成品溫度計(jì)同時(shí)進(jìn)行檢測(cè)比較,由于DS18B20精度很高,所以誤差指標(biāo)可以限制在0.5以內(nèi)。另外-55+125的測(cè)溫范圍是的該溫度計(jì)完全適合一般的應(yīng)用場(chǎng)合,其低電壓供電的特性可做成用電池供電的手持式電子溫度計(jì)。DS18B20溫度計(jì)還可以在高低溫時(shí)報(bào)警、遠(yuǎn)距離多點(diǎn)測(cè)溫控制等方面進(jìn)行應(yīng)用開(kāi)發(fā),但是在實(shí)際應(yīng)用中應(yīng)注意一下幾個(gè)方面:l DS18B20工作是電流高達(dá)1.5mA,總線上掛接點(diǎn)數(shù)較多且同時(shí)進(jìn)行轉(zhuǎn)換時(shí)要考慮增加總線驅(qū)動(dòng),可以用單片機(jī)端口在溫度轉(zhuǎn)換時(shí)導(dǎo)通一個(gè)MOSFET供電。l 連接DS18B20的總線電纜是有長(zhǎng)度限制的,因此在用DS18B20進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配等問(wèn)題。l 在DS18B20測(cè)溫程序設(shè)計(jì)中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20的返回信號(hào)。一旦某個(gè)DS18B20接觸不好或斷線,當(dāng)程序讀該DS18B20時(shí),將沒(méi)有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS18B20硬件連接和軟件設(shè)計(jì)時(shí)要給予一定的重視。七、結(jié)束語(yǔ)學(xué)習(xí)了一個(gè)學(xué)期的單片機(jī),起初學(xué)習(xí)的時(shí)候,覺(jué)得單片機(jī)很難學(xué),好多的指令要掌握,什么定時(shí)器.計(jì)數(shù)器,什么中斷系統(tǒng),還有一些協(xié)議不

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論