賈海云
摘要:溫度測量在生產(chǎn)生活和工業(yè)控制等領(lǐng)域的應(yīng)用十分廣泛,傳統(tǒng)溫度計有性能單一、使用壽命短、可靠性低等問題。本設(shè)計采用數(shù)字溫度傳感器DS18B20,結(jié)合單片機AT89S52控制技術(shù),實現(xiàn)智能測量溫度的控制系統(tǒng)。該系統(tǒng)可設(shè)置報警溫度的閾值,當測量溫度超過設(shè)定的警戒溫度上下限時,蜂鳴器發(fā)出蜂鳴聲且指示燈閃爍顯示,產(chǎn)生報警信號,同時具有精度高、抗干擾能力強和硬件開銷低的特點。
關(guān)鍵詞:溫度測量;溫度傳感器DS18B20;單片機AT89S52;報警溫度;蜂鳴器;指示燈
中圖分類號:TP391? ?文獻標識碼:A
文章編號:1009-3044(2021)09-0251-02
開放科學(xué)(資源服務(wù))標識碼(OSID):
1概述
溫度是衡量儀器儀表、電子設(shè)備等器件能否正常工作的一個重要指標,是實現(xiàn)生產(chǎn)自動化需要重點監(jiān)測的一個參數(shù)。常見的溫度測量方法是直接用溫度計讀取,如水銀溫度計,酒精溫度計等,人們可以觀察其刻度值知道當前的溫度。但是這些常見的溫度計存在測溫精度差,讀數(shù)不方便等問題。因此,本設(shè)計選用智能數(shù)字溫度傳感器DS18B20和單片機實現(xiàn)溫度的監(jiān)測。具有單總線接口的數(shù)字溫度傳感器DS18B20,溫度的轉(zhuǎn)換精度可以有4種,測量溫度范圍比較廣,可編程實現(xiàn)測溫轉(zhuǎn)換精度等優(yōu)點,被廣泛應(yīng)用于恒溫控制器、溫度報警系統(tǒng)。
隨著電子技術(shù)和微型計算機的快速發(fā)展,單片機在各行各業(yè)發(fā)揮的作用與日俱增。單片機實際上是把一個微型計算機系統(tǒng)集成在單一芯片上,其具有體積小、質(zhì)量輕、價格便宜、控制能力強等優(yōu)勢。本設(shè)計采用單片機AT89S52作為控制核心,對環(huán)境溫度進行實時監(jiān)測;采用溫度傳感器DS18B20作為溫度采集的核心器件;溫度的顯示采用4個共陽極數(shù)碼管顯示;通過按鍵設(shè)置上下限報警溫度;若溫度超過限制,啟動蜂鳴器和指示燈實現(xiàn)聲光報警。
2硬件電路的設(shè)計
基于單片機AT89S52的智能溫度監(jiān)測系統(tǒng)的硬件電路在單片機最小系統(tǒng)基礎(chǔ)上,還有溫度傳感器DS18B20構(gòu)成的檢測電路、4個共陽極數(shù)碼管構(gòu)成的溫度數(shù)值顯示電路、蜂鳴器和發(fā)光二極管構(gòu)成的聲光報警電路、電源電路、數(shù)據(jù)下載接口等電路,如圖1所示。
2.1單片機最小系統(tǒng)
單片機的最小系統(tǒng)是保證單片機能正常工作的所必需的最少硬件電路,由復(fù)位電路、時鐘電路、存儲器電路和電源電路組成。復(fù)位電路的作用是為單片機產(chǎn)生復(fù)位信號,保證單片機上電后從一個確定的狀態(tài)開始工作。時鐘電路用來產(chǎn)生時鐘脈沖信號,它就像人類的心臟,缺少了時鐘信號單片機就無法正常運轉(zhuǎn)。存儲器電路讓系統(tǒng)從片內(nèi)程序存儲器中開始執(zhí)行程序。電源電路驅(qū)動單片機,給其提供電能保障。
2.2智能溫度傳感器DS18B20系統(tǒng)
溫度傳感器DS18B20的VDD引腳接+5V的外部電源,GND引腳接地,DQ引腳接單片機的P1.0引腳,為了保證總線空閑時為高電平狀態(tài),需要接一個大小為10k的上拉電阻,這樣就可以用單總線的方式實現(xiàn)數(shù)據(jù)的傳輸。
2.3數(shù)碼管顯示電路
4個共陽極數(shù)碼管構(gòu)成的溫度數(shù)值顯示電路中,位選端選取單片機P3.4、P3.5、P3.6、P3.7引腳,與數(shù)碼管的公共端相接。PNP三極管為驅(qū)動管,其導(dǎo)通時將小電流放大為大電流,驅(qū)動數(shù)碼管工作,使其有足夠的顯示亮度。選取單片機P1口作為控制數(shù)碼管顯示字符的段選端,在某個位選端為高電平時,只要段選端P1口送出需要顯示字符的代碼,數(shù)碼管就能顯示該字符。
2.4聲光報警系統(tǒng)和電源電路
聲光報警系統(tǒng)中蜂鳴器與單片機P2.3引腳相連,用PNP三極管驅(qū)動它。當溫度超過范圍設(shè)定范圍時,蜂鳴器發(fā)出蜂鳴聲,同時二極管閃爍顯示,即可起到聲光報警的作用。電源電路用LM7805穩(wěn)壓器來產(chǎn)生穩(wěn)定的5v電壓。
3系統(tǒng)的程序設(shè)計
本控制系統(tǒng)的設(shè)計以單片機和溫度傳感器DS18B20為核心,DS18B20檢測到的數(shù)據(jù)通過4個數(shù)碼管實時顯示。如果檢測到的溫度超過設(shè)定的警戒值,則聲光報警器開啟工作。因此,程序設(shè)計的模塊涉及主程序、讀取測量溫度子程序、轉(zhuǎn)換溫度值子程序、數(shù)碼管顯示溫度值子程序、聲光報警控制子程序等。
3.1主程序
主程序的作用是先對溫度傳感器DS18B20進行初始化,使其能夠正常檢測溫度;后讀取并處理DS18B20的測量的溫度值,根據(jù)預(yù)先設(shè)置的溫度的上限或下限判斷是否要進行聲光報警,并通過數(shù)碼管顯示當前測量到的溫度。系統(tǒng)一通電,溫度傳感器就開始工作,對環(huán)境溫度進行測量,并計算溫度的大小,通過DQ端將數(shù)據(jù)傳送給單片機P2.4引腳進行處理,處理后的數(shù)據(jù)再通過單片機P1口傳送給數(shù)碼管,數(shù)碼管按動態(tài)顯示的原理顯示數(shù)值。接在單片機P2口的按鍵可以設(shè)置產(chǎn)生溫度報警信號的閾值,當超過閾值時,單片機的P2.3引腳由低電平變?yōu)楦唠娖絾勇暪鈭缶3绦蛑忻扛?秒就對溫度測量一次,可以起到實時監(jiān)測的作用,保證整個環(huán)境溫度處于可控范圍內(nèi)。
3.2讀取測量溫度子程序
溫度傳感器DS18B20的訪問操作涉及初始化操作、讀數(shù)操作和寫數(shù)操作。初始化的作用是確定系統(tǒng)中是否存在DS18B20。如果存在,則初始化成功,可以進行讀寫操作;否則,數(shù)碼管顯示4個“-”以提示錯誤。單片機從DS18B20中讀數(shù)時,DS18B20是以字節(jié)為單位向單總線發(fā)送數(shù)據(jù),先發(fā)送低位,后發(fā)送高位。讀取測量溫度子程序的主要作用是讀出存放在數(shù)據(jù)存儲器中的9字節(jié)。
3.3 溫度轉(zhuǎn)換命令子程序
溫度傳感器DS18B20進行溫度轉(zhuǎn)換時需要一定時間,啟動溫度轉(zhuǎn)換命令后需要延長一段時間后,才能讀取溫度轉(zhuǎn)換值;否則,所讀的數(shù)據(jù)是錯誤。溫度轉(zhuǎn)換命令子程序主要作用是發(fā)送開始進行溫度轉(zhuǎn)換的命令,由于DS18B20的溫度轉(zhuǎn)換時間大約需要750毫秒,特采用延時1秒的子函數(shù),等待轉(zhuǎn)換的完成。首先發(fā)復(fù)位命令使溫度傳感器DS18B20恢復(fù)到一個確定的初始狀態(tài),然后發(fā)跳過程序存儲器的命令,最后發(fā)送開始進行溫度轉(zhuǎn)換命令,這樣就可以順利地完成溫度轉(zhuǎn)換。
3.4數(shù)碼管顯示子程序
4位數(shù)碼管采用動態(tài)掃描的方式顯示相應(yīng)位的數(shù)值,先控制需要顯示的數(shù)碼管,讓其位選端為高電平,其他3個數(shù)碼管位選端為低電平處于無效狀態(tài),再給這個發(fā)光的數(shù)碼管送相應(yīng)的字型碼;按照相同的顯示原理,依次點亮其余的數(shù)碼管,由于人眼的視覺停留,感覺這4個數(shù)字是同時被點亮的。計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,取出個位、十位、小數(shù)點后面的1位,并進行溫度值正負的判定,通過調(diào)用數(shù)碼管顯示函數(shù),就可以顯示相應(yīng)的字符。
3.5 聲光報警控制子程序設(shè)計
聲光報警控制程序設(shè)置低溫報警和高溫報警,先讀出檢測到的溫度,再和設(shè)定閾值進行比較,當預(yù)先設(shè)定的報警溫度值中的最大值或最小值超出初始設(shè)置的閾值,轉(zhuǎn)去執(zhí)行定時器T0編寫中斷服務(wù)函數(shù),從而控制蜂鳴器和發(fā)光二極管的狀態(tài),發(fā)揮聲光報警作用。
4測試與結(jié)果分析
本設(shè)計系統(tǒng)的硬件電路原理圖是在 Proteus仿真平臺上繪制完成,用C語言在Keil軟件中編寫控制程序,編寫程序時要注意按模塊設(shè)計,程序編寫完畢后要進行調(diào)試,直至顯示沒有錯誤并生成.hex文件。然后,用Proteus仿真平臺測試,看程序設(shè)計是否符合設(shè)計要求。單片機是整個控制系統(tǒng)的核心,為其添加.hex文件,點擊運行按鈕開始仿真,可以觀察到單片機一上電時數(shù)碼管顯示的是四個一,代表系統(tǒng)能正常工作。
單片機上電后對程序進行初始化,檢測溫度傳感器DS18B20狀態(tài),調(diào)節(jié)溫度傳感器DS18B20的數(shù)值,數(shù)碼管顯示模塊顯示對應(yīng)的數(shù)值。如果調(diào)節(jié) DS18B20芯片上表示溫度變化的箭頭,DS18B20芯片上顯示的溫度與數(shù)碼管顯示的溫度相同,說明溫度測量的設(shè)計是符合要求的。
當溫度超過設(shè)置的閾值的上限或下限時,系統(tǒng)會啟動聲光報警電路,蜂鳴器會發(fā)出“唧……唧……唧”蜂鳴聲,同時LED燈會閃爍。當系統(tǒng)未成功檢測到溫度傳感器DS18B20,或出現(xiàn)其他異常時,數(shù)碼管所有管段全部發(fā)光以提示錯誤。
5結(jié)論
生產(chǎn)生活中,對糧倉、儲罐、電訊機房、電力機房等易發(fā)生火災(zāi)的地方進行溫度測量十分重要。人們根據(jù)監(jiān)測到的溫度可以采取相對應(yīng)的措施,起到保護人身安全和財產(chǎn)安全的作用。DS18B20是一個能輸出數(shù)字信號的數(shù)字溫度傳感器,具有體積小、功耗低、測量精度高、抗干擾能力強等優(yōu)勢,被廣泛應(yīng)用于工業(yè)控制和自動化生產(chǎn)領(lǐng)域中。因此,本文設(shè)計了一種基于DS18B20的智能溫度測量系統(tǒng),按照設(shè)計要求搭建的仿真系統(tǒng)可以正常運行,仿真結(jié)果達到預(yù)期。本設(shè)計依托單片機最小系統(tǒng),以溫度傳感器DS18B20為溫度檢測核心,利用Proteus仿真平臺和Keil編程軟件實現(xiàn)了實時監(jiān)測環(huán)境溫度的功能,符合設(shè)計要求。
參考文獻:
[1] 林立,張俊亮.單片機原理及應(yīng)用: 基于Proteus和Keil C [M]. 4版.北京:電子工業(yè)出版社, 2018.
[2] 周福恩 .DS18B20 溫度傳感器在溫室大棚中的應(yīng)用研究[J]. 農(nóng)村經(jīng)濟與科技,2017,28(19):53-54.
[3] 劉如意,常馳,李剛.基于51單片機的溫度數(shù)據(jù)采集系統(tǒng)[J].電子制作,2018(21):8-10.
[4] 胡翔,劉翰諾.報警器在化工生產(chǎn)中的應(yīng)用[J].化學(xué)工程與裝備,2015(4):190-191.
[5] 王建勛,周青云.基于DS18B20和LabVIEW的溫度監(jiān)測系統(tǒng)[J].實驗室研究與探索,2012,31(3):47-50.
[6] 張仲明,郭東偉,呂巍,等.基于DS18B20溫度傳感器的溫度測量系統(tǒng)設(shè)計[J].實驗技術(shù)與管理,2018,35(5):76-79,88.
【通聯(lián)編輯:梁書】