基于溫度傳感器DS18B20的數(shù)字溫度計(jì)畢業(yè)論文_第1頁
基于溫度傳感器DS18B20的數(shù)字溫度計(jì)畢業(yè)論文_第2頁
基于溫度傳感器DS18B20的數(shù)字溫度計(jì)畢業(yè)論文_第3頁
基于溫度傳感器DS18B20的數(shù)字溫度計(jì)畢業(yè)論文_第4頁
基于溫度傳感器DS18B20的數(shù)字溫度計(jì)畢業(yè)論文_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、摘 要電力計(jì)量管理是供電企業(yè)營(yíng)銷管理的核心,計(jì)量是桿稱,計(jì)量對(duì)企業(yè)效益起著重要作用,計(jì)量與創(chuàng)建和諧社會(huì)息息相關(guān),現(xiàn)代電能計(jì)量管理體系的應(yīng)用,加強(qiáng)了對(duì)轄區(qū)內(nèi)計(jì)量裝置器具的全過程監(jiān)督力度,保證了計(jì)量裝置的準(zhǔn)確可靠,減輕了計(jì)量人員的勞動(dòng)強(qiáng)度,提高了電能計(jì)量管理現(xiàn)代化水平。關(guān)鍵詞配電網(wǎng);質(zhì)量管理體系;電能計(jì)量裝置mis系統(tǒng);信息化管理; abstractthis design is focused on measuring the temperature accurately by the digital technology which is widely used in more and more

2、 field. based on the at89c51 microcontroller, the ds18b20 temperature sensor and the led display module, a digital thermometer is designed. it can measure the temperature accurately in real time. the design is simple, has a strong practical value.key words: single-chip digital temperature sensor tem

3、perature detection at89c51 ds18b20 目 錄 前 言11 數(shù)字溫度計(jì)總體方案設(shè)計(jì)21.1 數(shù)字溫度計(jì)的設(shè)計(jì)要求 21.2 數(shù)字溫度計(jì)設(shè)計(jì)方案論證21.2.1 方案一21.2.2 方案二42 數(shù)字溫度計(jì)系統(tǒng)器件選擇62.1 單片機(jī)的選擇62.1.1 at89c51簡(jiǎn)介62.1.2 at89c51的主要特性72.1.3 at89c51的管腳說明72.1.4 at89c51的擦除102.2 溫度傳感器的選擇122.2.1 溫度傳感器ds18b20簡(jiǎn)介122.2.2 溫度傳感器ds18b20的性能特點(diǎn)142.2.3 溫度傳感器ds18b20的工作原理152.2.4 溫度

4、傳感器ds18b20使用中的注意事項(xiàng)182.3顯示器的選擇183 硬件電路設(shè)計(jì)203.1 數(shù)字溫度計(jì)原理電路203.2 傳感器數(shù)據(jù)采集電路213.3 顯示電路214 軟件設(shè)計(jì)224.1 系統(tǒng)軟件算法分析224.2 主程序224.3 讀出溫度子程序234.4 溫度轉(zhuǎn)換命令子程序234.5 計(jì)算溫度子程序234.6 proteus仿真結(jié)果24總 結(jié)25致 謝25參考文獻(xiàn)26附錄:27程序27前 言隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),在單片機(jī)的應(yīng)用中,一個(gè)很重要的應(yīng)用就是對(duì)溫度進(jìn)行檢測(cè)。溫度是一種最基本的環(huán)境參數(shù),人民的生活與環(huán)境的溫

5、度息息相關(guān),在工業(yè)生產(chǎn)過程中要實(shí)時(shí)測(cè)量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測(cè)量,因此研究溫度的測(cè)量方法和裝置具有重要意義。測(cè)量溫度的關(guān)鍵是溫度傳感器,溫度傳感器的發(fā)展經(jīng)歷了三個(gè)發(fā)展階段,傳統(tǒng)的分立式溫度傳感器、模擬集成溫度傳感器、智能集成溫度傳感器。傳統(tǒng)的溫度檢測(cè)以熱敏電阻為溫度敏感元件,熱敏電阻的成本低,但需后續(xù)信號(hào)處理電路,而且可靠性相對(duì)較差,測(cè)溫準(zhǔn)確度低,檢測(cè)系統(tǒng)也有一定的誤差。目前的智能溫度傳感器(亦稱數(shù)字溫度傳感器)是在20世紀(jì)90年代中期問世的,它是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動(dòng)測(cè)試技術(shù)(ate)的結(jié)晶,特點(diǎn)是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(mcu)。社會(huì)的發(fā)展使人們

6、對(duì)傳感器的要求也越來越高,現(xiàn)在的溫度傳感器正在基于單片機(jī)的基礎(chǔ)上從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速發(fā)展,并朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測(cè)溫系統(tǒng)等高科技的方向迅速發(fā)展,與傳統(tǒng)的溫度計(jì)相比,其具有具有讀數(shù)方便,測(cè)溫精確,測(cè)溫范圍廣,數(shù)字顯示,抗干擾能力強(qiáng),適用范圍寬等特點(diǎn)。本設(shè)計(jì)的數(shù)字溫度計(jì)以單片機(jī)at89c51為核心,主要由軟件設(shè)計(jì)和硬件設(shè)計(jì)組成。軟件設(shè)計(jì)主要包括程序流程、主程序、讀取溫度子程序、數(shù)據(jù)轉(zhuǎn)換子程序、顯示數(shù)據(jù)子程序等。硬件設(shè)計(jì)主要包括單片機(jī)主板電路設(shè)計(jì)、傳感器數(shù)據(jù)采集電路,溫度顯示電路、proteus仿真電路

7、等。1 數(shù)字溫度計(jì)總體方案設(shè)計(jì)1.1 數(shù)字溫度計(jì)的設(shè)計(jì)要求(1)測(cè)溫范圍-50110(2)精度誤差小于0.5(3)led數(shù)碼直讀顯示1.2 數(shù)字溫度計(jì)設(shè)計(jì)方案論證1.2.1 方案一 采用熱電偶溫差電路測(cè)溫,溫度檢測(cè)部分可以使用低溫?zé)崤?,熱電偶由兩個(gè)焊接在一起的異金屬導(dǎo)線所組成(熱電偶的構(gòu)成如圖 1.1),熱電偶產(chǎn)生的熱電勢(shì)由兩種金屬的接觸電勢(shì)和單一導(dǎo)體的溫差電勢(shì)組成。通過將參考結(jié)點(diǎn)保持在已知溫度并測(cè)量該電壓,便可推斷出檢測(cè)結(jié)點(diǎn)的溫度。數(shù)據(jù)采集部分則使用帶有a/d通道的單片機(jī),在將隨被測(cè)溫度變化的電壓或電流采集過來,進(jìn)行a/d轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯

8、示出來。熱電偶的優(yōu)點(diǎn)是工作溫度范圍非常寬,且體積小,但是它們也存在著輸出電壓小、容易遭受外界的影響,并且這種設(shè)計(jì)需要用到a/d 轉(zhuǎn)換電路,感溫電路復(fù)雜。圖 1.1熱電偶電路圖系統(tǒng)主要包括對(duì)a/d0809 的數(shù)據(jù)采集,自動(dòng)手動(dòng)工作方式檢測(cè),溫度的顯示等,這幾項(xiàng)功能的信號(hào)通過輸入輸出電路經(jīng)單片機(jī)處理。此外還有復(fù)位電路,晶振電路,啟動(dòng)電路等。故現(xiàn)場(chǎng)輸入硬件有手動(dòng)復(fù)位鍵、a/d 轉(zhuǎn)換芯片,處理芯片為51單片機(jī)芯片,執(zhí)行機(jī)構(gòu)有4位數(shù)碼管等。系統(tǒng)框圖如圖 1.2所示:測(cè)溫電路adc0809復(fù)位電路 單 片 機(jī)led 數(shù) 碼 顯 示時(shí)鐘電路按鍵防抖動(dòng)圖 1.2熱電偶溫差電路測(cè)溫系統(tǒng)方框圖1.2.2 方案二采

9、用數(shù)字溫度芯片ds18b20測(cè)量溫度,輸出信號(hào)全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測(cè)溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測(cè)溫元件,此元件線形較好。在0-100攝氏度時(shí),最大線形偏差小于1攝氏度。ds18b20的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)ds18b20和微控制器at89c51構(gòu)成的溫度測(cè)量裝置,它直接輸出溫度的數(shù)字信號(hào),可直接與計(jì)算機(jī)連接。這樣,測(cè)溫系統(tǒng)的結(jié)構(gòu)就比較簡(jiǎn)單,體積也不大。采用51單片機(jī)控制,軟件編程的自由度大,可通過編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便。另外at89c51在工業(yè)控制上也有著廣泛的

10、應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。該系統(tǒng)利用at89c51芯片控制溫度傳感器ds18b20進(jìn)行實(shí)時(shí)溫度檢測(cè)并顯示,能夠?qū)崿F(xiàn)快速測(cè)量環(huán)境溫度。該系統(tǒng)擴(kuò)展性非常強(qiáng),它可以在設(shè)計(jì)中加入時(shí)鐘芯片ds1302以獲取時(shí)間數(shù)據(jù),在數(shù)據(jù)處理同時(shí)顯示時(shí)間,并可以利用at24c16芯片作為存儲(chǔ)器件,以此來對(duì)某些時(shí)間點(diǎn)的溫度數(shù)據(jù)進(jìn)行存儲(chǔ),利用鍵盤來進(jìn)行調(diào)時(shí)和溫度查詢,獲得的數(shù)據(jù)可以通過max232芯片與計(jì)算機(jī)的rs232接口進(jìn)行串口通信,方便的采集和整理時(shí)間溫度數(shù)據(jù),系統(tǒng)框圖如圖1.3所示。復(fù)位電路時(shí)鐘電路溫度傳感器單 片機(jī)led 數(shù) 碼 顯 示圖 1.3 ds18b20溫度測(cè)溫系統(tǒng)方框圖從以上兩種方

11、案,容易看出方案一的測(cè)溫裝置可測(cè)溫度范圍寬、體積小,但是線性誤差較大。方案二的測(cè)溫裝置電路簡(jiǎn)單、精確度較高、實(shí)現(xiàn)方便、軟件設(shè)計(jì)也比較簡(jiǎn)單,故本次設(shè)計(jì)采用了方案二。2 數(shù)字溫度計(jì)系統(tǒng)器件選擇2.1 單片機(jī)的選擇2.1.1 at89c51簡(jiǎn)介對(duì)于單片機(jī)的選擇,考慮到實(shí)用性、可操作性以及購買方便等問題的考慮,選擇由美國atmel公司生產(chǎn)的at89c51單片機(jī),at89c51是一種帶4k字節(jié)閃存可編程可擦只讀存儲(chǔ)器(fperomflash programmable and erasable read only memory)的低電壓,高性能cmos8位微處理器??伸`活應(yīng)用于各種控制領(lǐng)域,對(duì)于簡(jiǎn)單的測(cè)溫

12、系統(tǒng)已經(jīng)足夠。單片機(jī)at89c51具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用,系統(tǒng)可用二節(jié)電池供電,外形及引腳排列如圖2.1所示。圖2.1at89c51的外形及引腳排列2.1.2 at89c51的主要特性(1)與mcs-51 兼容(2)4k字節(jié)可編程閃爍存儲(chǔ)器(3)壽命:1000寫/擦循環(huán)(4)數(shù)據(jù)保留時(shí)間:10年(5)全靜態(tài)工作:0hz-24mhz(6)三級(jí)程序存儲(chǔ)器鎖定(7)1288位內(nèi)部ram(8)32可編程i/o線(9)兩個(gè)16位定時(shí)器/計(jì)數(shù)器(10)5個(gè)中斷源(11)可編程串行通道(12)低功耗的閑置和掉電模式(13)

13、片內(nèi)振蕩器和時(shí)鐘電路2.1.3 at89c51的管腳說明vcc:供電電壓。 gnd:接地。 p0口:p0口為一個(gè)8位漏級(jí)開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。 p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flas

14、h編程和校驗(yàn)時(shí),p1口作為第八位地址接收。 p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸

15、出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為at89c51的一些特殊功能口,如下所示: p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 /int0(外部中斷0) p3.3 /int1(外部中斷1) p3.4 t0(記時(shí)器0外部輸入) p3.5 t1(記時(shí)器1外部輸入) p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫選通) p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通) p3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保

16、持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ale/prog:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 /psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期

17、間,每個(gè)機(jī)器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen信號(hào)將不出現(xiàn)。 /ea/vpp:當(dāng)/ea保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-ffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。 振蕩器特性: xtal1和xtal2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如

18、采用外部時(shí)鐘源驅(qū)動(dòng)器件,xtal2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度2.1.4 at89c51的擦除整個(gè)perom陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合,并保持ale管腳處于低電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,at89c51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,cpu停止工作。但ram定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存ram的內(nèi)容并且凍結(jié)振

19、蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。串口通訊單片機(jī)的結(jié)構(gòu)和特殊寄存器,這是你編寫軟件的關(guān)鍵。至于串口通信需要用到那些特殊功能寄存器,sbuf 數(shù)據(jù)緩沖寄存器這是一個(gè)可以直接尋址的串行口專用寄存器。sbuf 包含了兩個(gè)獨(dú)立的寄存器,一個(gè)是發(fā)送寄存,另一個(gè)是接收寄存器,但它們都共同使用同一個(gè)尋址地址99h。cpu在讀sbuf時(shí)會(huì)指到接收寄存器,在寫時(shí)會(huì)指到發(fā)送寄存器,而且接收寄存器是雙緩沖寄存器,這樣可以避免接收中斷沒有及時(shí)的被響應(yīng),數(shù)據(jù)沒有被取走,下一幀數(shù)據(jù)已到來,而造成的數(shù)據(jù)重疊問題。發(fā)送器則不需要用到雙緩沖,一般情況下我們?cè)趯懓l(fā)送程序時(shí)也不必用到發(fā)送中斷去外理發(fā)送數(shù)據(jù)。操作s

20、buf寄存器的方法則很簡(jiǎn)單,只要把這個(gè)99h 地址用關(guān)鍵字sfr定義為一個(gè)變量就可以對(duì)其進(jìn)行讀寫操作了,如sfr sbuf = 0x99;當(dāng)然你也可以用其它的名稱。通常在標(biāo)準(zhǔn)的reg51.h或at89x51.h等頭文件中已對(duì)其做了定義,只要用#include引用就可以了。 scon串行口控制寄存器通常在芯片或設(shè)備中為了監(jiān)視或控制接口狀態(tài),都會(huì)引用到接口控制寄存器。scon就是51芯片的串行口控制寄存器。它的尋址地址是98h,是一個(gè)可以位尋址的寄存器,作用就是監(jiān)視和控制51芯片串行口的工作狀態(tài)。51芯片的串口可以工作在幾個(gè)不同的工作模式下,其工作模式的設(shè)置就是使用scon寄存器。它的各個(gè)位的具體

21、定義如下: sm0 sm1 sm2 ren tb8 rb8 ti ri sm0、sm1為串行口工作模式設(shè)置位,這樣兩位可以對(duì)應(yīng)進(jìn)行四種模式的設(shè)置。串行口工作模式設(shè)置。 sm0、sm1模式功能波特率 0 0 0 同步移位寄存器fosc/12 0 1 1 8位uart可變 1 0 2 9位uartfosc/32或fosc/64 1 1 3 9位uart可變 sm2在模式2、模式3中為多處理機(jī)通信使能位。在模式0中要求該位為0。 rem為允許接收位,rem置1時(shí)串口允許接收,置0時(shí)禁止接收。rem是由軟件置位或清零。如果在一個(gè)電路中接收和發(fā)送引腳p3.0,p3.1 都和上位機(jī)相連,在軟件上有串口中斷

22、處理程序,當(dāng)要求在處理某個(gè)子程序時(shí)不允許串口被上位機(jī)來的控制字符產(chǎn)生中斷,那么可以在這個(gè)子程序的開始處加入rem=0來禁止接收,在子程序結(jié)束處加入rem=1再次打開串口接收。大家也可以用上面的實(shí)際源碼加入rem=0來進(jìn)行實(shí)驗(yàn)。 tb8發(fā)送數(shù)據(jù)位8,在模式2和3是要發(fā)送的第9位。該位可以用軟件根據(jù)需要置位或清除,通常這位在通信協(xié)議中做奇偶位,在多處理機(jī)通信中這一位則用于表示是地址幀還是數(shù)據(jù)幀。 rb8接收數(shù)據(jù)位8,在模式2和3是已接收數(shù)據(jù)的第9位。該位可能是奇偶位,地址/數(shù)據(jù)標(biāo)識(shí)位。在模式0中,rb8為保留位沒有被使用。在模式1中,當(dāng)sm2=0,rb8是已接收數(shù)據(jù)的停止位。 ti發(fā)送中斷標(biāo)識(shí)位。

23、在模式0,發(fā)送完第8位數(shù)據(jù)時(shí),由硬件置位。其它模式中則是在發(fā)送停止位之初,由硬件置位。ti置位后,申請(qǐng)中斷,cpu響應(yīng)中斷后,發(fā)送下一幀數(shù)據(jù)。在任何模式下,ti都必須由軟件來清除,也就是說在數(shù)據(jù)寫入到sbuf后,硬件發(fā)送數(shù)據(jù),中斷響應(yīng)(如中斷打開),這時(shí)ti=1,表明發(fā)送已完成,ti不會(huì)由硬件清除,所以這時(shí)必須用軟件對(duì)其清零。 ri接收中斷標(biāo)識(shí)位。在模式0,接收第8 位結(jié)束時(shí),由硬件置位。其它模式中則是在接收停止位的半中間,由硬件置位。ri=1,申請(qǐng)中斷,要求cpu取走數(shù)據(jù)。但在模式1中,sm2=1時(shí),當(dāng)未收到有效的停止位,則不會(huì)對(duì)ri置位。同樣ri也必須要靠軟件清除。常用的串口模式1是傳輸1

24、0 個(gè)位的,1位起始位為0,8位數(shù)據(jù)位,低位在先,1位停止位為1。它的波特率是可變的,其速率是取決于定時(shí)器1或定時(shí)器2的定時(shí)值(溢出速率)。2.2 溫度傳感器的選擇由于傳統(tǒng)的熱敏電阻等測(cè)溫元件測(cè)出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比較多的外部元件支持,且硬件電路復(fù)雜,制作成本相對(duì)較高,處理電路復(fù)雜、可靠性相對(duì)較差,ds18b20是一線制數(shù)字溫度傳感器,它可將溫度信號(hào)直接轉(zhuǎn)換成串行數(shù)字信號(hào)送給微處理器,電路簡(jiǎn)單,成本低, 因此這里采用dallas公司的數(shù)字溫度傳感器ds18b20作為測(cè)溫元件。 2.2.1 溫度傳感器ds18b20簡(jiǎn)介dallas最新單線數(shù)字溫度傳感器ds18b20是一種新

25、型的“一線器件”,其體積更小、更適用于多種場(chǎng)合、且適用電壓更寬、更經(jīng)濟(jì)。dallas半導(dǎo)體公司的數(shù)字化溫度傳感器ds18b20是世界上第一片支持“一線總線”接口的溫度傳感器。溫度測(cè)量范圍為-55+125攝氏度,可編程為9位12位轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625攝氏度,分辨率設(shè)定參數(shù)以及用戶設(shè)定的報(bào)警溫度存儲(chǔ)在eeprom中,掉電后依然保存。被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源既可以在遠(yuǎn)端引入,也可以采用寄生電源方式產(chǎn)生;多個(gè)ds18b20可以并聯(lián)到3根或2根線上,cpu只需一根端口線就能與諸多ds18b20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用

26、它來組成一個(gè)測(cè)溫系統(tǒng),具有線路簡(jiǎn)單,在一根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。 外形圖如圖2.2所示。 圖2.2ds18b20外形圖ds18b20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻rom、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器th和tl、配置寄存器,內(nèi)部結(jié)構(gòu)如2.3所示。ds18b20的管腳排列、各種封裝形式如圖2.4所示,dq為數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源;gnd為地信號(hào);vdd為可選擇的vdd引腳,當(dāng)工作于寄生電源時(shí),此引腳必須接地,其電路圖2.5所示。圖2.3 ds18b20內(nèi)部結(jié)構(gòu)圖圖2.4 外部封裝形式 圖2.5 傳感器電

27、路圖2.2.2 溫度傳感器ds18b20的性能特點(diǎn)(1)獨(dú)特的單線接口方式,ds18b20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與ds18b20的雙向通訊(2)ds18b20支持多點(diǎn)組網(wǎng)功能,多個(gè)ds18b20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫(3)ds18b20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)(4)適應(yīng)電壓范圍更寬,電壓范圍:3.05.5v,在寄生電源方式下可由數(shù)據(jù)線供電(5)溫范圍55125,在-10+85時(shí)精度為0.5(6)零待機(jī)功耗(7)可編程的分辨率為912位,對(duì)應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0

28、625,可實(shí)現(xiàn)高精度測(cè)溫(8)在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快(9)測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以“一線總線”串行傳送給cpu,同時(shí)可傳送crc校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力(10)負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作2.2.3 溫度傳感器ds18b20的工作原理ds18b20測(cè)溫原理如圖2.6所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存

29、器被預(yù)置在55所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖2.6中的斜率累加器用于補(bǔ)償和修正測(cè)溫過程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。低溫度系數(shù)晶振高溫度系數(shù)晶振預(yù) 置斜 率 累 加 器比 較計(jì) 數(shù) 器 1溫 度 寄 存 器預(yù) 置計(jì) 數(shù) 器 2= 0= 0停 止加 1lsb置位/清除圖2.5 ds18b20測(cè)溫原理圖由表1可見,ds

30、18b20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且分辨率越高,所需要的溫度數(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碼,可用來檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)ds18b20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先高位在后,數(shù)據(jù)格式以0.0625lsb形式表示。當(dāng)符號(hào)位s=0時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位s=1時(shí),表示測(cè)

31、得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。表2是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。表1 bs18b20溫度轉(zhuǎn)換時(shí)間表r1r0分辨率溫度最大轉(zhuǎn)換時(shí)/mm009位93.750110位187.751011位375.001112位750.00ds18b20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與ram中的th、tl字節(jié)內(nèi)容作比較。若tth或ttl,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令作出響應(yīng)。因此,可用多只ds18b20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索。在64位rom的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼(crc)。主機(jī)rom的前56位來計(jì)算crc值,并和存入ds18b20的crc

32、值作比較,以判斷主機(jī)收到的rom數(shù)據(jù)是否正確。表3一部分溫度對(duì)應(yīng)值表溫度/二進(jìn)制表示十六進(jìn)制表示+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00000191h+10.1250000 0000 1010 000100a2h+0.50000 0000 0000 00100008h00000 0000 0000 10000000h-0.51111 1111 1111 0000fff8h-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110

33、 1111fe6fh-551111 1100 1001 0000fc90h2.2.4 溫度傳感器ds18b20使用中的注意事項(xiàng)ds18b20雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題:(1)ds18b20從測(cè)溫結(jié)束到將溫度值轉(zhuǎn)換成數(shù)字量需要一定的轉(zhuǎn)換時(shí)間,這是必須保證的,不然會(huì)出現(xiàn)轉(zhuǎn)換錯(cuò)誤的現(xiàn)象,使溫度輸出總是顯示85。(2)在實(shí)際使用中發(fā)現(xiàn),應(yīng)使電源電壓保持在5v左右,若電源電壓過低,會(huì)使所測(cè)得的溫度精度降低。(3)較小的硬件開銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于ds1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)ds1820進(jìn)行讀寫編

34、程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否則將無法讀取測(cè)溫結(jié)果。在使用pl/m、c等高級(jí)語言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì)ds1820操作部分最好采用匯編語言實(shí)現(xiàn)。(4)在ds18b20的有關(guān)資料中均未提及單總線上所掛ds18b20數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個(gè)ds18b20,在實(shí)際應(yīng)用中并非如此,當(dāng)單總線上所掛ds18b20超過8個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。(5)在ds18b20測(cè)溫程序設(shè)計(jì)中,向ds18b20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待ds18b20的返回信號(hào),一旦某個(gè)ds18b20接觸不好或斷線,當(dāng)程序讀該ds18b20時(shí),將沒有返回信號(hào),

35、程序進(jìn)入死循環(huán),這一點(diǎn)在進(jìn)行ds18b20硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。2.3 顯示器的選擇本設(shè)計(jì)采用led數(shù)碼管,也叫l(wèi)ed數(shù)碼顯示器,由于它具有很高的性能價(jià)格比、顯示清晰、亮度高、使用方便、電路簡(jiǎn)單、壽命長(zhǎng)等諸多優(yōu)點(diǎn),長(zhǎng)期以來一直在各類電子產(chǎn)品和工程控制中得到非常廣泛的應(yīng)用。在單片機(jī)控制系統(tǒng)中,因?yàn)閱纹瑱C(jī)的硬件簡(jiǎn)單、靈活等特點(diǎn),非常適合使用led數(shù)碼管作為其輸出設(shè)備,這樣既滿足了控制系統(tǒng)硬件簡(jiǎn)單,又能如實(shí)地顯示被控系統(tǒng)的溫度、壓力、流量、高度等一些單片機(jī)的處理結(jié)果。3硬件電路設(shè)計(jì)3.1 數(shù)字溫度計(jì)原理電路數(shù)字溫度計(jì)電路設(shè)計(jì)原理圖如圖3.1所示,控制器使用單片機(jī)at89c51,溫度

36、計(jì)傳感器使用ds18b20,用液晶實(shí)現(xiàn)溫度顯示。本設(shè)計(jì)大體分三個(gè)工作過程。首先由ds18b20溫度傳感器芯片測(cè)量當(dāng)前的溫度,并將結(jié)果送入單片機(jī)。然后通過at89c51單片機(jī)芯片對(duì)送來的測(cè)量溫度讀數(shù)進(jìn)行計(jì)算和轉(zhuǎn)換,井將此結(jié)果送入液晶顯示模塊。最后液晶顯示模塊芯片將送來的值顯示于顯示屏上。由圖可以看到,本電路主要由dsl8b20溫度傳感器芯片、液晶顯示模塊芯片和at89c51單片機(jī)芯片組成。其中dsi8b20溫度傳感器芯片采用“一線制”與單片機(jī)相連,它獨(dú)立地完成溫度測(cè)量以及將溫度測(cè)量結(jié)果送到單片機(jī)的工作。圖3.1數(shù)字溫度計(jì)電路設(shè)計(jì)原理圖3.2 傳感器數(shù)據(jù)采集電路溫度傳感器dsl8b20采用寄生電源

37、供電方式,為保證在有效的時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)mosfet管來完成對(duì)總線的上拉。其接口電路如圖3.2所示。at89c51vccd n gq dd d vds18b20vcc圖3.2 ds18b20與單片機(jī)的連接3.3 顯示電路顯示電路是使用的串口顯示,這種顯示最大的優(yōu)點(diǎn)就是使用口資源較少,只用p3口的rxd和txd串口的發(fā)送和接收,四只數(shù)碼管采用74ls164右移寄存器驅(qū)動(dòng),顯示較清晰。4 軟件設(shè)計(jì)4.1 系統(tǒng)軟件算法分析 系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序等。4.2 主程序主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理

38、ds18b20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見圖4.1所示。y發(fā)ds18b20復(fù)位命令發(fā)跳過rom命令發(fā)讀取溫度命令讀取操作,crc校驗(yàn)9字節(jié)完?crc校驗(yàn)正?確?移入溫度暫存器結(jié)束nny初始化調(diào)用顯示子程序1s到?初次上電讀出溫度值溫度計(jì)算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令nyny圖4.1 主程序流程圖圖4.2讀溫度流程圖 4.3 讀出溫度子程序讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時(shí)需進(jìn)行crc校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖4.2示。發(fā)ds18b20復(fù)位命令發(fā)跳過rom命令發(fā)溫度轉(zhuǎn)換開始命令

39、 結(jié)束圖4.3 溫度轉(zhuǎn)換流程圖4.4 溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖4.3所示。4.5 計(jì)算溫度子程序計(jì)算溫度子程序?qū)am中讀取值進(jìn)行bcd碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖4.4所示。 開始溫度零下?溫度值取補(bǔ)碼置“b”標(biāo)志計(jì)算小數(shù)位溫度bcd值 計(jì)算整數(shù)位溫度bcd值 結(jié)束置“a”標(biāo)志ny圖4.4計(jì)算溫度流程圖 4.6 proteus仿真結(jié)果總 結(jié)本設(shè)計(jì)是一種基于溫度傳感器ds18b20的數(shù)字溫度計(jì),并以單片

40、機(jī)at89c51為核心,使用4位led模塊顯示,該設(shè)計(jì)結(jié)構(gòu)簡(jiǎn)單性能穩(wěn)定,可對(duì)環(huán)境溫度進(jìn)行實(shí)時(shí)準(zhǔn)確的測(cè)量,具有很強(qiáng)的實(shí)用價(jià)值。本設(shè)計(jì)擴(kuò)展性能很強(qiáng)大,由于ds18b20支持單總線協(xié)議,我們可以將多個(gè)ds18b20可以并聯(lián)到3根或2根線上,cpu只需一根端口線就能與諸多ds18b20通信,占用較少的微處理器的端口就可以實(shí)現(xiàn)多點(diǎn)測(cè)溫監(jiān)控系統(tǒng)。致 謝首先,感謝我的母校,感謝各位老師在大學(xué)五年里對(duì)我的辛勤培養(yǎng),感謝我親愛的同學(xué)們和朋友們,在大學(xué)五年里讓我經(jīng)歷了很多,同時(shí)也讓我學(xué)會(huì)了很多,在此致以我深深的謝意。其次,要特別感謝在這次畢業(yè)設(shè)計(jì)中給我予很大幫助的張展老師,本設(shè)計(jì)從選題到實(shí)物的制作過程中張老師一直

41、給予我耐心的指導(dǎo)和細(xì)心的關(guān)懷,在此我瑾向張老師致以誠摯的謝意。本設(shè)計(jì)是對(duì)數(shù)字溫度計(jì)的基本設(shè)計(jì),在此基礎(chǔ)上還可以加以研發(fā)處理。但是,由于筆者水平有限,在設(shè)計(jì)上難免存在缺陷、不當(dāng)之處,在此懇請(qǐng)各位老師批評(píng)指正。最后,感謝大學(xué)五年生活讓我擁有了一段美好的回憶,同時(shí)也在我的人生旅途中留下了一段深深的腳印,感謝我的大學(xué)。 參考文獻(xiàn)1 郭庭吉.8051單片機(jī)實(shí)踐與應(yīng)用.清華大學(xué)出版社,2002.32 樓然苗、李光飛.51系列單片機(jī)設(shè)計(jì)實(shí)例.北京航空航天大學(xué)出版社,2003.53 諸昌鈴.led顯示屏系統(tǒng)原理及工程技術(shù).電子科技大學(xué)出版社,2000.94 王為青、邱文勛.51單片機(jī)應(yīng)用開發(fā)案例精選.人民郵電出版社,2007.75 王守中.單片機(jī)的開發(fā)入門與典型實(shí)例.人民郵電出版社,2007.8 6 張國秀.單片機(jī)c言程序設(shè)計(jì)教程與實(shí)訓(xùn).北京大學(xué)出版社,2008.67 王守中.51單片機(jī)開發(fā)入門與典型實(shí)例.人民郵電出版社,2007.88 李玉梅.基于mcs51系列單片機(jī)原理的應(yīng)用設(shè)計(jì).國防工業(yè)出版社,2006.5 附錄:程序#include /頭文件/#def

溫馨提示

  • 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)論