種基于DS18B20的溫度采集系統(tǒng)設(shè)計(jì)
近年來(lái),隨著自動(dòng)測(cè)試技術(shù)、計(jì)算機(jī)技術(shù)和微電子技術(shù)的迅猛發(fā)展,在溫度測(cè)量領(lǐng)域,開(kāi)發(fā)出一種新型的將數(shù)字電路和溫度傳感器集成在一起的數(shù)字式溫度傳感器。在數(shù)字式溫度傳感器的內(nèi)部一般包含有溫度傳感器、接口電路、存儲(chǔ)器(或寄存器)、信號(hào)處理器和A/D轉(zhuǎn)換器。與傳統(tǒng)的模擬溫度傳感器相比,數(shù)字式溫度傳感器在器件微小化、抗干擾能力、可靠性、分辨率以及精度方面都具有明顯的優(yōu)點(diǎn),此外,其輸出的溫度數(shù)據(jù)以及相關(guān)的溫度控制量能夠與各種微處理器相適配。
本文引用地址:http://www.ex-cimer.com/article/201610/308680.htm1 硬件設(shè)計(jì)
1.1 溫度傳感器
該系統(tǒng)的溫度采樣元件采用DALLAS半導(dǎo)體公司生產(chǎn)的一線式數(shù)字溫度傳感器DS18B20,微處理器僅需要1條端口線即可實(shí)現(xiàn)與DS18B20的雙向通信。DS18B20采用僅有3只引腳的小體積封裝形式T0~92,包括共用地線、外供電源線和單線數(shù)據(jù)傳輸總線端口。DS18B20可提供兩種不同的供電方式:一種是外部供電方式,外供電源線接+5 V,此種供電方式設(shè)計(jì)簡(jiǎn)單,在較短的時(shí)間內(nèi)就能完成溫度測(cè)量;另一種為數(shù)據(jù)線供電方式,要求外供電源線接地,數(shù)據(jù)線需用單片機(jī)的一個(gè)I/O口來(lái)實(shí)現(xiàn)上拉,空閑時(shí)通過(guò)內(nèi)部電容從數(shù)據(jù)線獲取能量,此種供電方式設(shè)計(jì)較復(fù)雜,完成溫度轉(zhuǎn)換的時(shí)間也相對(duì)較長(zhǎng)。選擇一線式數(shù)字溫度傳感器DS18B20的主要原因有以下幾個(gè)方面:
1)系統(tǒng)的特性方面,溫度測(cè)量范圍在-55~+125℃之間,且在-10~+85 ℃溫度范圍內(nèi)可滿足±0.5℃的最低精度,溫度A/D轉(zhuǎn)換精度可編程為9~12位,溫度轉(zhuǎn)換值能夠以16位二進(jìn)制碼的格式直接串行輸出,完成12位高精度轉(zhuǎn)換的最大時(shí)間需要750 ms,通過(guò)選擇數(shù)據(jù)線供電方式,可以超低功耗工作。
2)系統(tǒng)復(fù)雜程度方面,因?yàn)镈S18B20是采用單總線控制技術(shù)的器件,接口時(shí)僅需占用微處理器的其中一個(gè)I/O口,并且一條數(shù)據(jù)總線上可以同時(shí)連接幾十個(gè)相同器件,測(cè)溫時(shí)不需要其他任何外部元件,所以與傳統(tǒng)的模擬傳感器相比,接線的數(shù)量大大減少,系統(tǒng)的復(fù)雜程度大大降低,工程施工量也相應(yīng)減少。
3)系統(tǒng)的調(diào)試和維護(hù)方面,系統(tǒng)接口由于引線的減少而大大簡(jiǎn)化,系統(tǒng)調(diào)試更加便利,同時(shí)由于DS18B20屬于全數(shù)字元器件,其故障率非常低且抗干擾性很強(qiáng),因此系統(tǒng)的日常維護(hù)工作輕松許多。
4)系統(tǒng)成本方面,隨著微電子技術(shù)和計(jì)算機(jī)技術(shù)的迅猛發(fā)展,集成電路的功能不僅越來(lái)越強(qiáng)大,其體積也變得越來(lái)越小,且價(jià)格也越來(lái)越便宜。
1.2 電路原理
本系統(tǒng)采用AT89C51單片機(jī)作為控制核心,AT89C51是一種帶有4 K字節(jié)FLASH閃速存儲(chǔ)器的低電壓、高性能8位CMOS微處理器,帶有128字節(jié)的內(nèi)部RAM、2個(gè)16位定時(shí)/計(jì)數(shù)器、32個(gè)I/O口、1個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu)、片內(nèi)振蕩器及時(shí)鐘電路。此外,AT89C51能夠降至0 Hz的靜態(tài)邏輯操作,可以支持軟件可選的兩種節(jié)電工作模式。處于空閑工作模式時(shí),CPU停止工作,但允許RAM、定時(shí)/計(jì)數(shù)器和中斷系統(tǒng)繼續(xù)工作。
電路原理圖如圖1所示,DS18B20的供電方式采用外部電源,數(shù)據(jù)線通過(guò)一個(gè)4.7 kΩ的上拉電阻接在單片機(jī)AT89C51的P1.7口,其他2只管腳分別對(duì)應(yīng)接電源和地,此方式安全可靠且編程簡(jiǎn)單。
溫度顯示采用四位七段共陽(yáng)LED數(shù)碼管,間隔2 ms通過(guò)位選通信號(hào)P20、P21、P22、P23逐個(gè)點(diǎn)亮各個(gè)LED數(shù)碼管,實(shí)現(xiàn)溫度值的動(dòng)態(tài)顯示,可顯示-55~+125℃溫度測(cè)量范圍。
2 軟件開(kāi)發(fā)流程
2. 1 主程序
主程序主要負(fù)責(zé)通過(guò)DS18B20讀取到的當(dāng)前溫度測(cè)量值和溫度的實(shí)時(shí)顯示,由于DS18B20的12位精度的轉(zhuǎn)換時(shí)間約為750 ms,可以每隔1 s進(jìn)行一次溫度測(cè)量,其程序流程圖如圖2所示。
2. 2 讀溫度子程序
讀溫度子程序的功能主要是從RAM中讀取9字節(jié)數(shù)據(jù),同事還需進(jìn)行CRC校驗(yàn),當(dāng)校驗(yàn)出錯(cuò)時(shí)不再進(jìn)行溫度數(shù)據(jù)的讀寫,其子程序流程圖如圖3所示。
2.3 溫度轉(zhuǎn)換命令子程序
溫度轉(zhuǎn)換命令子程序的主要功能為發(fā)送溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)設(shè)置為12位采樣分辨率時(shí)完成轉(zhuǎn)換時(shí)間約為750ms,故本程序設(shè)計(jì)中使用顯示程序延時(shí)法來(lái)等待轉(zhuǎn)換完成,延時(shí)時(shí)間設(shè)為1 s,其子程序流程圖如圖4所示。
2.4 計(jì)算溫度子程序
計(jì)算溫度子程序的功能是從RAM中讀取值數(shù)據(jù)并進(jìn)行BCD碼轉(zhuǎn)換運(yùn)算,還需要判定溫度值的正負(fù),其子程序流程圖如圖5所示。
2.5 顯示數(shù)據(jù)刷新子程序
顯示數(shù)據(jù)刷新子程序的功能是刷新顯示緩沖器中的顯示數(shù)據(jù),當(dāng)顯示最高位為0時(shí)需將符號(hào)顯示位移到下一位,其子程序流程圖如圖6所示。
3 結(jié)論
此設(shè)計(jì)基于DS18B20的溫度采集系統(tǒng)具有測(cè)溫精度高、占用口線少、結(jié)構(gòu)簡(jiǎn)單、連接方便、成本低等優(yōu)點(diǎn),但是硬件電路的簡(jiǎn)潔是以犧牲軟件為代價(jià)的。由于DS18B20與單片
機(jī)AT89C51之間采用串行數(shù)據(jù)傳送,所以,在對(duì)DS18B20進(jìn)行讀寫操作時(shí),必須保證嚴(yán)格的讀寫時(shí)序,否則將無(wú)法正確讀取測(cè)溫結(jié)果。
評(píng)論