摘 要:多點(diǎn)測(cè)溫系統(tǒng)在工業(yè)領(lǐng)域及養(yǎng)殖業(yè)領(lǐng)域均有廣泛的用途。以往的測(cè)溫系統(tǒng)多采用熱敏電阻,精度低、易損壞, 且模擬信號(hào)遠(yuǎn)距離溫度測(cè)量在技術(shù)上實(shí)現(xiàn)比較復(fù)雜,因此提出了采用新型數(shù)字溫度傳感器DS18B20。它具有體積更小、精度更高、采用一線總線、可組網(wǎng)等優(yōu)點(diǎn)。設(shè)計(jì)以單片機(jī)AT89C51為控制核心,結(jié)合RS485芯片完成多點(diǎn)測(cè)溫并傳送數(shù)據(jù)到主機(jī)顯示,便于主機(jī)監(jiān)控現(xiàn)場(chǎng),并對(duì)現(xiàn)場(chǎng)情況采取及時(shí)處理。采用Keilc軟件編譯后通過(guò)Proteus7.5仿真,達(dá)到預(yù)期效果。
關(guān)鍵詞:單總線; DS18B20; 多點(diǎn)測(cè)溫; AT89C51
中圖分類(lèi)號(hào):TP212 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2010)12-0023-03
Design of Multi-point Temperature Measurement System Based on Mono-bus Temperature Sensor
JI Yong-gang1, YANG He-tian2
(1. School of Information Engineering, Dalian Jiaotong University, Dalian 116052, China;2. School of Software Institute, Dalian Jiaotong University, Dalian 116052, China)
Abstract: The multi-point temperature measurement system has wide application in the fields of industry and aquaculture. The previous temperature measurement system usually used thermal resistance, and had low precision, easy to damage, the analog signals remote temperature measurement was more complicated in technical. Therefore, a new type digital temperature sensor DS18B20 is proposed. It has smaller size, higher precision, uses first-line bus and has the advantages of networking. The design takes AT89C51 microcontroller as control kernal, the multi-point temperature measurement is completed combining with RS485 and the data is sent to the host display, it is easy to monitor the host site and dispose the situation timely. The design achieves the desired results by using the keilc software compilation and proteus7.5 simulation.
Keywords: mono-bus; DS18B20; multi-point temperature measurement; AT89C51
0 引 言
多點(diǎn)測(cè)溫系統(tǒng)在工業(yè)領(lǐng)域及其國(guó)民生產(chǎn)中有廣泛的用途[1]。如在化工領(lǐng)域中,經(jīng)常需要檢測(cè)和控制反應(yīng)釜中的液體的溫度,使之能夠穩(wěn)定在一定的溫度范圍之內(nèi)[2];在糧食儲(chǔ)存以及加工過(guò)程中,會(huì)儲(chǔ)存高水分的糧食,高水分的糧食極易升溫發(fā)霉,因此糧食儲(chǔ)存的測(cè)溫顯得尤為重要[3]。以往的測(cè)溫系統(tǒng)多采用熱敏電阻,精度低、易損壞,且模擬信號(hào)遠(yuǎn)距離溫度測(cè)量系統(tǒng)中,需要很好地解決引線誤差補(bǔ)償問(wèn)題、多點(diǎn)測(cè)量切換誤差問(wèn)題和放大電路零點(diǎn)漂移誤差問(wèn)題等技術(shù)問(wèn)題[4-5],才能夠達(dá)到較高的測(cè)量精度。
因此,在溫度測(cè)量系統(tǒng)中,具有足夠的精度和實(shí)時(shí)性,控制足夠的精度,并且盡可能具有較低的成本,這樣的產(chǎn)品才具有實(shí)用價(jià)值。本文采用新型數(shù)字溫度傳感器DS18B20,它具有體積更小、精度更高、適用電壓更寬、采用一線總線、可組網(wǎng)等優(yōu)點(diǎn),以單片機(jī)AT89C51為控制核心完成多點(diǎn)測(cè)溫的可行性設(shè)計(jì)方案。
1 DS18B20芯片特性及管腳介紹
1.1 DS18B20芯片特性
DS18B20單線數(shù)字溫度傳感器是新一代溫度傳感器,它具有微型化、低功耗,與其他溫度傳感器相比,具有以下特性:供電電源為3.0~5.5 V;獨(dú)特的單線接口方式,支持多點(diǎn)組網(wǎng)功能;溫范圍為-55~+125 ℃,在-10~+85 ℃時(shí)精度為±0.5 ℃;可編程的分辨率為9~12位,對(duì)應(yīng)的可分辨溫度分別為0.5 ℃,0.25 ℃,0.125 ℃和0.062 5 ℃,可實(shí)現(xiàn)高精度測(cè)溫[6];轉(zhuǎn)換速度快;具有極強(qiáng)的抗干擾糾錯(cuò)能力;電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。
1.2 DS18B20引腳功能
DS18B20有2種封裝形式:3腳TO-92直插式(用的最多、最普遍的封裝)和8腳SOIC貼片式,封裝引腳如圖1所示。
圖1 DS18B20芯片管腳圖
DS18B20各引腳的功能如表1所示。
2 DS18B20的控制時(shí)序
硬件結(jié)構(gòu)的簡(jiǎn)單是以相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS18B20與單片機(jī)間采用串行數(shù)據(jù)傳送,因此,它們之間有嚴(yán)格的時(shí)隙概念。單線信號(hào)包括復(fù)位脈沖、響應(yīng)脈沖、寫(xiě)“0”、寫(xiě)“1”、讀“1”、讀“0”[7]。
(1) 初始化。時(shí)序見(jiàn)圖2(a),主機(jī)總線t0時(shí)刻發(fā)送一復(fù)位脈沖(最短為480 μs的低電平信號(hào))接著在t1時(shí)刻釋放總線并進(jìn)入接收狀態(tài)DSl820在檢測(cè)到總線的上升沿之后等待15~60 μs,接著DS1820在t2時(shí)刻發(fā)出存在脈沖(低電平持續(xù)60~240 μs),如圖中虛線所示。
表1 DS18B20引腳定義
引腳定義
GND電源負(fù)極接地
DQ信號(hào)輸入輸出總線
VDD電源正極
NC空
初始化時(shí)序、讀/寫(xiě)時(shí)序分別如圖2(a)、圖2(b)、圖2(c)所示。
(2) 寫(xiě)時(shí)間隙。當(dāng)主機(jī)總線t0時(shí)刻從高拉至低電平時(shí),產(chǎn)生寫(xiě)時(shí)間隙,見(jiàn)圖2(b)。從t0時(shí)刻開(kāi)始15 μs之內(nèi)應(yīng)將所需寫(xiě)的位送到總線上,DSl820在t后15~60 μs間對(duì)總線采樣,若低電平寫(xiě)入的位是0,若高電平寫(xiě)入的位是14;連續(xù)寫(xiě)2位間的間隙應(yīng)大于1 μs(見(jiàn)圖2(c))。主機(jī)總線t0時(shí)刻從高拉至低電平時(shí),總線只需保持低電平15 μs之后,在t1時(shí)刻將總線拉高產(chǎn)生讀時(shí)間隙,讀時(shí)間隙在t1時(shí)刻后到t2時(shí)刻前(約15 μs)產(chǎn)生讀時(shí)隙,t3時(shí)刻前主機(jī)必須完成讀位,然后將總線釋放。
3 硬件電路設(shè)計(jì)
3.1 系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)的硬件結(jié)構(gòu)如圖3所示。 該系統(tǒng)以單片機(jī)AT89C51為核心,由溫度傳感器DS18B20、開(kāi)關(guān)和LCD顯示電路等構(gòu)成。其中第一個(gè)單片機(jī)作為從機(jī),進(jìn)行8個(gè)溫度傳感器的采集,從機(jī)通過(guò)485接口與主機(jī)可以遠(yuǎn)距離相連,主機(jī)接開(kāi)關(guān),同時(shí)接液晶顯示,如果主機(jī)想知道某點(diǎn)的溫度可以通過(guò)合上某個(gè)開(kāi)關(guān)檢測(cè)到相應(yīng)點(diǎn)的溫度,以做到實(shí)時(shí)監(jiān)控[8]。
圖2 初始化時(shí)序和讀/寫(xiě)時(shí)充
3.2 數(shù)據(jù)采集
Atmel的AT89C51單片機(jī),內(nèi)有4 kB閃爍可編程可擦除只讀存儲(chǔ)器,128 B的數(shù)據(jù)存儲(chǔ)器空間,可直接推動(dòng)LCD。由溫度傳感器DS18B20采集被控對(duì)象的實(shí)時(shí)溫度,提供給從機(jī)AT89C51的P1.1口,作為數(shù)據(jù)輸入[9-10]。
3.3 接口電路
主機(jī)的P2口接8個(gè)開(kāi)關(guān),P0與LCD相連,每條行線接10 kΩ的電阻到電源,作為上拉電阻。P2口的P0.1~P0.2作為液晶控制讀/寫(xiě)使能端,P0.4~P0.7為L(zhǎng)CD數(shù)據(jù)端口。
圖3 單片機(jī)AT89S52與AD9850連接電路圖
4 軟件部分設(shè)計(jì)
通過(guò)以上分析計(jì)算,在加上軟件編程如圖4所示,即可得到多點(diǎn)測(cè)溫。ROM的匹配先要另外寫(xiě)一個(gè)程序讀取每個(gè)DS18B20的64位序列號(hào),匹配時(shí)只需按照像往DS18B20里寫(xiě)命令操作一樣即可。
5 結(jié) 語(yǔ)
本文在介紹數(shù)字溫度傳感器DS18B20的基礎(chǔ)上,采用AT89C51單片機(jī)設(shè)計(jì)多點(diǎn)采集溫度系統(tǒng)的方案,并給出了重要電路圖和初始化DS18B20程序。該方案采用從機(jī)采集多點(diǎn)溫度,主機(jī)顯示溫度,主、從機(jī)之間通過(guò)RS 485通信,且具有廣闊的應(yīng)用前景。
參考文獻(xiàn)
[1]聶學(xué)方.溫度傳感器DS18B20及實(shí)時(shí)時(shí)鐘DS12C887在煙葉烘烤自動(dòng)控制系統(tǒng)中的應(yīng)用和設(shè)計(jì)[J].計(jì)算機(jī)與現(xiàn)代化,2007(3):139-140.
[2]李吉志.基于DS18B20與DS1302的公交車(chē)報(bào)站系統(tǒng)[J].電子與封裝,2009(9):9-11.
[3]王俊杰.DS18B20在糧倉(cāng)測(cè)溫系統(tǒng)上的應(yīng)用[J].鄭州輕工業(yè)學(xué)院學(xué)報(bào),2007(10):5-7.
[4]趙永杰.基于DS18B20的溫度測(cè)量系統(tǒng)[J].現(xiàn)代電子技術(shù),2008,31(10):273-274.
[5]易麗華.基于AT89C51單片機(jī)與DS18B20的溫度測(cè)量系統(tǒng)[J].電子與封裝,2009(5):5-8.
[6]王東峰.單片機(jī)C語(yǔ)言應(yīng)用100例[M].北京:電子工業(yè)出版社,2009.
[7]郭天祥.51單片機(jī)C語(yǔ)言教程[M].北京:電子工業(yè)出版社,2009.
[8]張迎春.單片微型計(jì)算機(jī)原理、應(yīng)用及接口技術(shù)[M].北京:國(guó)防工業(yè)出版社,2004.
[9]馮文旭.單片機(jī)原理及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2008.
[10]陳小忠.單片機(jī)接口技術(shù)實(shí)用子程序[M].北京:人民郵電出版社,2005.