基于單片機與計算機串口的溫度實時監(jiān)控系統(tǒng)設(shè)計
摘要:設(shè)計了一種溫度實時監(jiān)控系統(tǒng)。該系統(tǒng)通過單片機實現(xiàn)實時控制,并通過串口連接單片機與上位計算機,在計算機中實現(xiàn)實時監(jiān)控、大容量的數(shù)據(jù)存儲及數(shù)據(jù)分析等功能,解決了常規(guī)溫度測量方法在溫度測量實時性差、不能儲存數(shù)據(jù)及缺乏數(shù)據(jù)分析功能等方面的缺陷。
關(guān)鍵詞:串口通信;實時溫度監(jiān)控;MSComm控件;DS18B20
溫度監(jiān)控系統(tǒng)在農(nóng)業(yè)、工業(yè)和生活中有著廣泛的應(yīng)用,但隨著監(jiān)控的面積擴大,監(jiān)控點的增加及控制處理趨于智能化等新的應(yīng)用要求出現(xiàn),傳統(tǒng)的溫度控制系統(tǒng)已經(jīng)逐漸不適用,首先是不便于觀察而且不能及時地對異常溫度變化做出迅速反應(yīng),其次是傳統(tǒng)的溫度控制系統(tǒng)不能儲存大量數(shù)據(jù),不能對監(jiān)控的數(shù)據(jù)進行分析,不便于對溫度情況進行長期的監(jiān)測和科學(xué)的分析,為了解決以上問題,本文設(shè)計了一個能實時響應(yīng)溫度并進行控制的溫度實時控制系統(tǒng),并且采用與計算機串口通信結(jié)合的方式通過計算機增大了系統(tǒng)儲存量,而且在計算機系統(tǒng)中收集和處理溫度控制系統(tǒng)的數(shù)據(jù),大幅度的增強了該系統(tǒng)的功能,并具備較強的擴展性。
隨著計算機技術(shù)特別是單片機技術(shù)的發(fā)展,串口通信在諸多領(lǐng)域上得到了廣泛的應(yīng)用,計算機可以通過串口來獲取單片機的各種數(shù)據(jù),然后利用計算機強大的功能進行處理,再根據(jù)處理的結(jié)果發(fā)送數(shù)據(jù)到單片機,實現(xiàn)遠程控制設(shè)備。本設(shè)計采用上位機和下位機的互聯(lián)工作,而計算機的分析處理能力較強,有很好的人機界面和大容量的多種存儲方式,所以上位機一般采用計算機,單片機具有價格低,功能強,較好的抗干擾能力和面向控制等特點,所以下位機采用單片機來構(gòu)成互聯(lián)工作模式。由于串行通信具有高效可靠、價格便宜,遵循統(tǒng)一的標準等特點,適用于本設(shè)計的通信要求。
1 硬件設(shè)計
1.1 電路設(shè)計
溫度實時控制系統(tǒng)的下位機由7個部分組成(詳見圖1),其中測量環(huán)境溫度使用DS18B20數(shù)字溫度傳感器,它將溫度傳感器、A/D傳感器、寄存器、接口電路集成在一個芯片中,采用1-Wire總線協(xié)議,可實現(xiàn)直接數(shù)字化輸出。DS18B20數(shù)字溫度傳感器溫度測量范圍為-55~+125℃,測溫分辨率可達0.062 5℃,被測溫度用符號擴展的16位數(shù)字量進行串行輸出,適配各種單片機或系統(tǒng)機。使用這種傳感器不需要A/D轉(zhuǎn)換電路,可以大大簡化電路,溫度測量精度和速度都大幅提高。
本設(shè)計利用MAX232進行電平轉(zhuǎn)換,實現(xiàn)計算機和單片機的互聯(lián)通信。MAX232是低功耗、單電源雙RS 232發(fā)送/接收器,適用于各種EIA-232 E和V.28/V.24的通信接口。MAX232芯片內(nèi)部有一個電源電壓變換器,可以把輸入的+5 V電源變換成RS 232C輸出電平所需±10 V電壓,所以采用此芯片接口的串行通信系統(tǒng)只要單一的+5 V電源就可以。在MAX232芯片上,選用其中一路發(fā)送/接收,R2OUT接89C52的RXD(P3.0),T2IN接89C52的TXD(P3.1),T2OUT接PC機的RD,R2IN接PC機的TD,這樣就能通過P3.0和P3.1I/O口就實現(xiàn)單片機與計算機互聯(lián)通
信。本設(shè)計的信號燈部分一共使用6只LED燈,其中Start燈亮表示單片機上電工作,RX2(P3.0)燈亮表示接受從PC機傳來的數(shù)據(jù),TX2(P3.1)燈亮表示向PC機發(fā)送數(shù)據(jù)。m1,m2,m3三顆燈分別對應(yīng)的接口為P2.5,P2.6,P2.7,當(dāng)3個溫度傳感器探測的溫度大于設(shè)定值則變亮。
總體電路設(shè)計是以單片機為中心,整合和控制各部分。本設(shè)計的單片機是STC89C52,它通過XTAL1,XTAL2引腳外接晶振和電容實現(xiàn)11.0 59 2 MHz的時鐘周期,這能產(chǎn)生準確的波特率,有利于串行通信。它的RESET引腳外接電路實現(xiàn)上電自動復(fù)位和按鍵電平復(fù)位,P1.4~P1.7引腳接有4個按鍵,實現(xiàn)時間和溫度的設(shè)定。單片機通過P1.0,P1.1,P1.2引腳讀出3個溫度傳感器的溫度值,然后通過P0端口和P2.0,P2.1,P2.2控制液晶板,在液晶上顯示時間和溫度值。同時經(jīng)過單片機內(nèi)部程序,控制信號燈的亮滅,發(fā)送和接受計算機的數(shù)據(jù)。
1.2 單片機程序設(shè)計
基于上節(jié)所述的硬件設(shè)計,編寫程序以實現(xiàn)期望的功能,其中主程序不斷刷新LCD顯示的內(nèi)容,定時器T0中斷程序用于時鐘的功能,定時器T1作為波特率發(fā)生器,串口中斷實現(xiàn)與PC機的通信。
單片機剛啟動,首先進行數(shù)據(jù)的初始化,初始化結(jié)束后,開始進入工作狀態(tài),若沒有到結(jié)束時間,就進行溫度測量并在液晶板上顯示當(dāng)前溫度值,同時按鍵掃描程序不斷監(jiān)測是否有按鍵啟動,若S1被按,則進入設(shè)定狀態(tài),定時器T0中斷關(guān)閉,當(dāng)前時間停止,液晶板上顯示溫度設(shè)定值和當(dāng)前時間,可以通過S2,S3按鍵做修改(如圖2)。
在工作的過程中,當(dāng)單片機接收一個數(shù)據(jù)會全部儲存在BUF變量里面,同時產(chǎn)生一個串口中斷,需要軟件去清除中斷標志。然后取出BUF的值,儲存到對應(yīng)的數(shù)組中。由于傳送的數(shù)據(jù)簡單,采用了無校驗的8位數(shù)據(jù)直接傳送模式(如圖3所示)。
2上位機的程序設(shè)計
在串口的幾種編程方式中,利用Microsoft公司提供了MSComm控件,可以使開發(fā)串口通信程序變得十分簡單。VisualBasic是近年來發(fā)展最快的一種計算機語言,其簡潔和實用性已經(jīng)受到了眾多計算機用戶和程序員的歡迎,尤其是6.0版本,功能強大且易于掌握,是一種優(yōu)秀的可視化開發(fā)環(huán)境,在VB應(yīng)用程序中調(diào)用MSComm控件也十分容易。采用VB標準控件MSComm來實現(xiàn)通信功能,實際上是調(diào)用了API函數(shù),而API函數(shù)是由Commdry解釋并傳給設(shè)備驅(qū)動程序執(zhí)行的,對于VB程序開發(fā)者只需知道MSComm控件的屬性和事件的用法即可以實現(xiàn)串口的操作。本溫度實時控制系統(tǒng)的上位機操作界面正是基于VB的MSComm控件為核心,完成接收和保存數(shù)據(jù),以及修改單片機上的參數(shù)。
系統(tǒng)操作界面啟動后,在串口端口和波特率選擇2個參數(shù)設(shè)置正確后,打開串口,這時計算機會接收從單片機發(fā)送過來的數(shù)據(jù),這些數(shù)據(jù)是一連串的字符,所以對接收過來的數(shù)據(jù)的處理,關(guān)鍵是字符串的處理。通過設(shè)定參數(shù)的位數(shù),準確分離開出每一個參數(shù)的值,然后存入對應(yīng)的數(shù)組中,并實時地顯示在屏幕上,還可以按需把數(shù)據(jù)保存到記事本。同時在操作界面上修改的數(shù)據(jù)也能通過串口傳送到單片機,遠程控制單片機。在發(fā)送的數(shù)據(jù)也要嚴格按照一定的格式進行發(fā)送,這樣單片機才能正確接收,操作界面程序流程如圖4所示。
本設(shè)計定義的接收和發(fā)送數(shù)據(jù)格式如表1所示。
3 系統(tǒng)實際運行
打開設(shè)計好的上位機軟件后,首先選擇正確的串口,實現(xiàn)與單片機通信,然后通過圖5所示的操作界面可以實時觀測到這個溫度實時控制系統(tǒng)所測量的溫度值和對應(yīng)的時間點,如有需要可以設(shè)置時間的起始點和結(jié)束點,通過軟件繪畫出溫度值的變化曲線,也可以通過實時曲線觀查溫度的變化情況,這個設(shè)置方便于長時間地觀察溫度的變化,還可以將數(shù)據(jù)全部保存到軟件里,在需要的時候進行必要的數(shù)據(jù)分析;而在操作界面上可以很方便對溫度實時控制系統(tǒng)中的監(jiān)控時間段和溫度限制值作修改,當(dāng)測量的溫度值超過溫度限制值,設(shè)置好的報警燈會閃爍,提醒我們注意。
4 結(jié)語
本文設(shè)計了基于單片機AT89C52的溫度實時監(jiān)控系統(tǒng)并通過串口通信實現(xiàn)了單片機與計算機互聯(lián),實現(xiàn)了多點溫度實時遠程控制,計算機的實時數(shù)據(jù)分析,長期數(shù)據(jù)的圖表式保存,該系統(tǒng)已經(jīng)在硬件平臺和軟件平臺上成功運行。整個設(shè)計具有成本低,測量范圍廣,實時操作方便快捷,顯示和儲存的信息量大,可擴展功能強等優(yōu)點,可以應(yīng)用在倉庫、溫室大棚、機房等進行溫度實時控制。另外設(shè)計方案可以擴展為網(wǎng)絡(luò)連接,可以突破串口傳送的距離限制,廣泛用于溫度在DS18B20測溫范圍之內(nèi)的場合,實現(xiàn)隨時隨地通過網(wǎng)絡(luò)進行實時控制,將具有更大的應(yīng)用價值。