摘 要:提出了一種以AT89C51單片機和DS18B20溫度傳感器為主要元器件的多點溫度檢測系統(tǒng)。首先給出系統(tǒng)的工作原理和軟件流程圖,并對系統(tǒng)主要電路,如溫度測試電路、鍵盤及顯示電路、電源電路等進行了設(shè)計。與傳統(tǒng)的模擬測溫系統(tǒng)相比,該系統(tǒng)硬件組成更加簡捷、高效,抗干擾能力更加突出。
關(guān)鍵詞:AT89C51; DS18B20; 多點溫度檢測系統(tǒng); 溫度檢測
中圖分類號:TP273 文獻標(biāo)識碼:A
文章編號:1004-373X(2010)09-0126-03
Design of Multi-point Temperature Detecting System Based on AT89C51
WANG Hong-ling, BAI Zheng-min
(School of Electrical and Information Engineering, Xuchang University, Xuchang 461002, China)
Abstract: A multi-point temperature detecting system taking AT89C51 single chip microcomputer and the digital temperature sensor DS18B20 as main components is introduced. The working principle and software flow chart of the system are presented. Its main circuits, including temperature detecting circuit, keyboard circuit, display circuit and power supply circuit, are designed. Comparing with the traditional analog temperature detecting system, the hardware composition of the system is more concise and efficient ,and its anti-interference capability is stronger.
Keywords: AT89C51; DS18B20; multi-point temperature detecting system; temperature detection
0 引 言
在工業(yè)生產(chǎn)及日常生活中,多點溫度檢測系統(tǒng)的應(yīng)用十分廣泛,例如消防電氣的非破壞性溫度檢測,電力設(shè)備的過熱故障預(yù)知檢測,空調(diào)系統(tǒng)的溫度檢測,各類運輸工具組件的過熱檢測,醫(yī)療與診斷設(shè)備的溫度測試等[1]。針對這一情況,本文設(shè)計了一種基于AT89C51、數(shù)字溫度傳感器DS18B20的多點溫度檢測系統(tǒng),該系統(tǒng)利用DS18B20單總線的特點,可以方便地組建傳感器網(wǎng)絡(luò),從而實現(xiàn)多點溫度的測量。該系統(tǒng)設(shè)計靈活、抗干擾性好,可以在惡劣的工作環(huán)境中進行溫度測量。
1 總體結(jié)構(gòu)[2-3]
設(shè)計的多點溫度檢測系統(tǒng)如圖1所示。該系統(tǒng)主要由AT89C51單片微型計算機、鍵盤顯示電路、溫度顯示電路、看門狗電路、溫度測試電路、串口通信電路等組成。
2 硬件電路[4-6]
2.1 溫度測試電路[7-8]
溫度測試電路主要采用溫度芯片DS18B20,它是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,測溫范圍為-55~+125 ℃,測溫分辨率可達0.062 5 ℃,它具有微型化、低功耗、高性能、抗干擾能力強、易配微處理器等特點,特別適合于構(gòu)成多點溫度測控系統(tǒng)。其內(nèi)部結(jié)構(gòu)如圖2所示。
圖1 多點溫度檢測系統(tǒng)硬件框圖
圖2 DS18B20內(nèi)部結(jié)構(gòu)圖
DS18B20有4個主要的數(shù)據(jù)部件:
(1) 64位激光ROM。64位激光ROM從高位到低位依次為8位CRC、48位序列號和8位家族代碼(28H)組成;
(2) 溫度靈敏元件;
(3) 非易失性溫度報警觸發(fā)器TH和TL,可通過軟件寫入用戶報警上下限值;
(4) 配置寄存器。配置寄存器為高速暫存存儲器中的第五個字節(jié)。DS18B20在0工作時按此寄存器中的分辨率將溫度轉(zhuǎn)換成相應(yīng)精度的數(shù)值,其各位定義如圖3所示。
TMR1R011111
MSBDS18B20配置寄存器結(jié)構(gòu)表LSB
圖3 DS18B20配置寄存器結(jié)構(gòu)
圖3中:TM為測試模式標(biāo)志位,出廠時被寫入0,不能改變;R0,R1為溫度計分辨率設(shè)置位,其對應(yīng)4種分辨率如表1所列,出廠時R0,R1置為缺省值:R0=1,R1=1(即12位分辨率),用戶可根據(jù)需要改寫配置寄存器以獲得合適的分辨率。
表1 配置寄存器與分辨率關(guān)系表
R0R1溫度計分辨率 /b最大轉(zhuǎn)換時間 /μs
00993.75
0110187.5
1011375
1112750
高速暫存存儲器由9個字節(jié)組成,其分配如圖4所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補碼形式存放在高速暫存存儲器的第0和第1個字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后,數(shù)據(jù)格式如圖4所示。對應(yīng)的溫度計算:當(dāng)符號位S=0時,直接將二進制位轉(zhuǎn)換為十進制;當(dāng)S=1時,先將補碼變?yōu)樵a,再計算十進制值。
溫度低位
溫度高位
TH
TL
配置
保留
保留
保留
8位CRC
LSB MSB
圖4 DS18B20存儲器映像圖
由于DS18B20是單線數(shù)字溫度傳感器,因此它基本不需要外圍電路就可以與單片機直接以1根線相連,圖5為多個DS18B20通過單總線與單片機相連的原理圖,圖中,DS18B20采用外部電源供電方式。
2.2 鍵盤及顯示電路
該系統(tǒng)采用的是矩陣式鍵盤,共組成20個按鍵,主要包括10個數(shù)字鍵以及“上限”、“下限”、“確定”等功能鍵。當(dāng)有鍵按下時,8279產(chǎn)生中斷信號送入單片機,然后轉(zhuǎn)向相應(yīng)的功能程序。
圖5 DS18B20測溫電路
顯示部分采用1片75451與5個LED數(shù)碼管相連來實現(xiàn)動態(tài)顯示,工作狀況下,從左向右依次顯示為通道號、溫度的正負(fù)號、溫度值的十位、溫度值的個位以及溫度值的小數(shù)點后一位。
2.3 電源電路
因為單片機工作電源為+5 V,且底層電路功耗很小,采用7805三端穩(wěn)壓片即可滿足要求。具體電路如圖6所示。
圖6 電源電路圖
2.4 看門狗電路
考慮到底層電路板的工作環(huán)境相對惡劣,單片機會受到周圍環(huán)境的干擾,因而出現(xiàn)程序跑飛、死機等一些不可預(yù)知的不正常工作現(xiàn)象,工作人員也不可能到現(xiàn)場對單片機重起,本設(shè)計為單片機電路添加一個外部看門狗電路,定時查詢單片機的工作狀態(tài),一但發(fā)現(xiàn)異常即對單片機延時重起,以保證系統(tǒng)安全可靠的運行。其電路如圖7所示。
圖7 看門狗電路
3 軟件設(shè)計[9-10]
系統(tǒng)的軟件采用模塊化方法進行編程,主要由主程序、數(shù)碼管顯示程序、鍵盤掃描以及按鍵處理程序、溫度測試程序、中斷控制程序等組成。其中主程序完成系統(tǒng)初始化和對采集到的溫度進行計算等;鍵盤掃描電路及按鍵處理程序?qū)崿F(xiàn)鍵盤的輸入按鍵的識別及相關(guān)處理;溫度測試程序主要完成由溫度芯片傳送數(shù)據(jù)的處理,并進行判斷和顯示;數(shù)碼管顯示程序完成向數(shù)碼的顯示送數(shù),控制系統(tǒng)的顯示部分;中斷控制程序則實現(xiàn)循環(huán)顯示功能。
系統(tǒng)程序流程圖如圖8所示。
圖8 系統(tǒng)程序流程圖
4 結(jié) 語
利用AT89C51單片機和DS18B20數(shù)字溫度傳感器可以實現(xiàn)多點溫度的檢測與控制。系統(tǒng)具有信號數(shù)字化、
硬件簡單化和抗干擾能力強等特點,如果與相應(yīng)
的可擴展接口芯片相連,則可實現(xiàn)更多路溫度的測量與控制,以適應(yīng)工業(yè)生產(chǎn)的需要。
參考文獻
[1]黃章華,陸華忠,李灌輝.基于CAN總線和PID算法的多點水溫控制系統(tǒng)[J].儀表技術(shù)與傳感器,2007(10):44-45.
[2]袁新娣,楊漢祥.單總線溫度傳感器在多點溫度測量系統(tǒng)中的應(yīng)用[J].科技廣場,2009(1):189-191.
[3]曹海平.基于單片機和DS18B20的分布式多點溫度檢測系統(tǒng)的設(shè)計[J].自動化技術(shù)與應(yīng)用,2008,27(11):90-92.
[4]呂昌江,段晨旭,羅婷.基于CAN總線的糧庫多點溫度檢測系統(tǒng)的設(shè)計[J].信息技術(shù)與信息化,2008(11):63-64.
[5]李冉琦,陸二慶,楊祥.智能化家庭多點溫度檢測的設(shè)計方法[J].桂林工學(xué)院學(xué)報,2008,28(2):265-269.
[6]朱奕丹,倪浩如.基于單片機控制的高精度多點溫度檢測顯示系統(tǒng)[J].自動化儀表,2008,29(8):58-61.
[7]周月霞,孫傳友.DS18B20傳感器及其測溫方法的改進[J].石油儀器,2002,16(1):36-38.
[8]DALLAS公司.DS18B20數(shù)據(jù)手冊[M].美國:DALLAS公司,2001.
[9]胡漢才.單片機原理及系統(tǒng)設(shè)計[M].北京:清華大學(xué)出版社,2002.
[10]忠梅.單片機的C語言應(yīng)用程序設(shè)計[M].北京:北京航空航天大學(xué)出版社,1997.