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

下載本文檔

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

文檔簡介

1、摘 要電力計量管理是供電企業(yè)營銷管理的核心,計量是桿稱,計量對企業(yè)效益起著重要作用,計量與創(chuàng)建和諧社會息息相關(guān),現(xiàn)代電能計量管理體系的應(yīng)用,加強了對轄區(qū)內(nèi)計量裝置器具的全過程監(jiān)督力度,保證了計量裝置的準(zhǔn)確可靠,減輕了計量人員的勞動強度,提高了電能計量管理現(xiàn)代化水平。關(guān)鍵詞配電網(wǎng);質(zhì)量管理體系;電能計量裝置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ù)字溫度計總體方案設(shè)計21.1 數(shù)字溫度計的設(shè)計要求 21.2 數(shù)字溫度計設(shè)計方案論證21.2.1 方案一21.2.2 方案二42 數(shù)字溫度計系統(tǒng)器件選擇62.1 單片機的選擇62.1.1 at89c51簡介62.1.2 at89c51的主要特性72.1.3 at89c51的管腳說明72.1.4 at89c51的擦除102.2 溫度傳感器的選擇122.2.1 溫度傳感器ds18b20簡介122.2.2 溫度傳感器ds18b20的性能特點142.2.3 溫度傳感器ds18b20的工作原理152.2.4 溫度

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

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

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

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

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

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

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

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

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

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

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

15、口,可接收輸出4個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(記時器0外部輸入) p3.5 t1(記時器1外部輸入) p3.6 /wr(外部數(shù)據(jù)存儲器寫選通) p3.7 /rd(外部數(shù)據(jù)存儲器讀選通) p3口同時為閃爍編程和編程校驗接收一些控制信號。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位

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

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

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

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

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

21、各個位的具體定義如下: sm0 sm1 sm2 ren tb8 rb8 ti ri sm0、sm1為串行口工作模式設(shè)置位,這樣兩位可以對應(yīng)進行四種模式的設(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中為多處理機通信使能位。在模式0中要求該位為0。 rem為允許接收位,rem置1時串口允許接收,置0時禁止接收。rem是由軟件置位或清零。如果在一個電路中接收和發(fā)送引腳p3.0,p3.1 都和上位機相連,在軟件

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

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

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

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

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

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

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

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

30、溫原理圖由表1可見,ds18b20溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此在實際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。高速暫存ram的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1,第9字節(jié)讀出前面所有8字節(jié)的crc碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)ds18b20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先高位在后,數(shù)據(jù)格式以0.0625lsb形式表示。當(dāng)符號位s=0時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;

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

32、入ds18b20的crc值作比較,以判斷主機收到的rom數(shù)據(jù)是否正確。表3一部分溫度對應(yīng)值表溫度/二進制表示十六進制表示+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.062511

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

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

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

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

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

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

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

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

41、物的制作過程中張老師一直給予我耐心的指導(dǎo)和細(xì)心的關(guān)懷,在此我瑾向張老師致以誠摯的謝意。本設(shè)計是對數(shù)字溫度計的基本設(shè)計,在此基礎(chǔ)上還可以加以研發(fā)處理。但是,由于筆者水平有限,在設(shè)計上難免存在缺陷、不當(dāng)之處,在此懇請各位老師批評指正。最后,感謝大學(xué)五年生活讓我擁有了一段美好的回憶,同時也在我的人生旅途中留下了一段深深的腳印,感謝我的大學(xué)。 參考文獻1 郭庭吉.8051單片機實踐與應(yīng)用.清華大學(xué)出版社,2002.32 樓然苗、李光飛.51系列單片機設(shè)計實例.北京航空航天大學(xué)出版社,2003.53 諸昌鈴.led顯示屏系統(tǒng)原理及工程技術(shù).電子科技大學(xué)出版社,2000.94 王為青、邱文勛.51單片機應(yīng)

42、用開發(fā)案例精選.人民郵電出版社,2007.75 王守中.單片機的開發(fā)入門與典型實例.人民郵電出版社,2007.8 6 張國秀.單片機c言程序設(shè)計教程與實訓(xùn).北京大學(xué)出版社,2008.67 王守中.51單片機開發(fā)入門與典型實例.人民郵電出版社,2007.88 李玉梅.基于mcs51系列單片機原理的應(yīng)用設(shè)計.國防工業(yè)出版社,2006.5 附錄:程序#include<reg51.h> /頭文件/#define uchar unsigned char#define uint unsigned int#define ulint unsigned long int #define hi 400#define low 200uchar dat=0;uchar data dis_buf4=10,10,10,10,;/顯示的數(shù)值 "10"-默認(rèn)不顯示uchar sign17=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,;/七段顯示碼sbit dq=p30; /定義通信端口sbit hiout=p34;/溫度過高輸出控制sbit lowout=p35;/溫度過低輸出控制/*延時

溫馨提示

  • 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

提交評論