硬件集成電路設計熱門培訓內容之基于單片機AT89C52的溫度實時監控系統設計

時間:2018-03-23 10:14:00

本文介紹了一種溫度實時監控系統的設計。該系統通過單片機實現實時控制,并通過串口連接單片機與上位計算機,在計算機中實現實時監控、大容量的數據存儲及數據分析等功能,解決了常規溫度測量方法在溫度測量實時性差、不能儲存數據及缺乏數據分析功能等方面的缺陷。

    溫度監控系統在農業、工業和生活中有著廣泛的應用,但隨著監控的面積擴大,監控點的增加及控制處理趨于智能化等新的應用要求出現,傳統的溫度控制系統已經逐漸不適用,首先是不便于觀察而且不能及時地對異常溫度變化做出迅速反應,其次是傳統的溫度控制系統不能儲存大量數據,不能對監控的數據進行分析,不便于對溫度情況進行長期的監測和科學的分析,為了解決以上問題,本文設計了一個能實時響應溫度并進行控制的溫度實時控制系統,并且采用與計算機串口通信結合的方式通過計算機增大了系統儲存量,而且在計算機系統中收集和處理溫度控制系統的數據,大幅度的增強了該系統的功能,并具備較強的擴展性。
    隨著計算機技術特別是單片機技術的發展,串口通信在諸多領域上得到了廣泛的應用,計算機可以通過串口來獲取單片機的各種數據,然后利用計算機強大的功能進行處理,再根據處理的結果發送數據到單片機,實現遠程控制設備。本設計采用上位機和下位機的互聯工作,而計算機的分析處理能力較強,有很好的人機界面和大容量的多種存儲方式,所以上位機一般采用計算機,單片機具有價格低,功能強,較好的抗干擾能力和面向控制等特點,所以下位機采用單片機來構成互聯工作模式。由于串行通信具有高效可靠、價格便宜,遵循統一的標準等特點,適用于本設計的通信要求。

1 硬件設計
1.1 電路設計
    溫度實時控制系統的下位機由7個部分組成(詳見圖1),其中測量環境溫度使用DS18B20數字溫度傳感器,它將溫度傳感器、A/D傳感器、寄存器、接口電路集成在一個芯片中,采用1-Wire總線協議,可實現直接數字化輸出。DS18B20數字溫度傳感器溫度測量范圍為-55~+125℃,測溫分辨率可達0.062 5℃,被測溫度用符號擴展的16位數字量進行串行輸出,適配各種單片機或系統機。使用這種傳感器不需要A/D轉換電路,可以大大簡化電路,溫度測量精度和速度都大幅提高。


    本設計利用MAX232進行電平轉換,實現計算機和單片機的互聯通信。MAX232是低功耗、單電源雙RS 232發送/接收器,適用于各種EIA-232 E和V.28/V.24的通信接口。MAX232芯片內部有一個電源電壓變換器,可以把輸入的+5 V電源變換成RS 232C輸出電平所需±10 V電壓,所以采用此芯片接口的串行通信系統只要單一的+5 V電源就可以。在MAX232芯片上,選用其中一路發送/接收,R2OUT接89C52的RXD(P3.0),T2IN接89C52的TXD(P3.1),T2OUT接PC機的RD,R2IN接PC機的TD,這樣就能通過P3.0和P3.1I/O口就實現單片機與計算機互聯通信。本設計的信號燈部分一共使用6只LED燈,其中Start燈亮表示單片機上電工作,RX2(P3.0)燈亮表示接受從PC機傳來的數據,TX2(P3.1)燈亮表示向PC機發送數據。m1,m2,m3三顆燈分別對應的接口為P2.5,P2.6,P2.7,當3個溫度傳感器探測的溫度大于設定值則變亮。
    總體電路設計是以單片機為中心,整合和控制各部分。本設計的單片機是STC89C52,它通過XTAL1,XTAL2引腳外接晶振和電容實現11.0 59 2 MHz的時鐘周期,這能產生準確的波特率,有利于串行通信。它的RESET引腳外接電路實現上電自動復位和按鍵電平復位,P1.4~P1.7引腳接有4個按鍵,實現時間和溫度的設定。單片機通過P1.0,P1.1,P1.2引腳讀出3個溫度傳感器的溫度值,然后通過P0端口和P2.0,P2.1,P2.2控制液晶板,在液晶上顯示時間和溫度值。同時經過單片機內部程序,控制信號燈的亮滅,發送和接受計算機的數據。
    1.2 單片機程序設計
    基于上節所述的硬件設計,編寫程序以實現期望的功能,其中主程序不斷刷新LCD顯示的內容,定時器T0中斷程序用于時鐘的功能,定時器T1作為波特率發生器,串口中斷實現與PC機的通信。

    單片機剛啟動,首先進行數據的初始化,初始化結束后,開始進入工作狀態,若沒有到結束時間,就進行溫度測量并在液晶板上顯示當前溫度值,同時按鍵掃描程序不斷監測是否有按鍵啟動,若S1被按,則進入設定狀態,定時器T0中斷關閉,當前時間停止,液晶板上顯示溫度設定值和當前時間,可以通過S2,S3按鍵做修改(如圖2)。


    在工作的過程中,當單片機接收一個數據會全部儲存在BUF變量里面,同時產生一個串口中斷,需要軟件去清除中斷標志。然后取出BUF的值,儲存到對應的數組中。由于傳送的數據簡單,采用了無校驗的8位數據直接傳送模式(如圖3所示)。

2上位機的程序設計
    在串口的幾種編程方式中,利用MICroSOFt公司提供了MSComm控件,可以使開發串口通信程序變得十分簡單。VisualBasic是近年來發展最快的一種計算機語言,其簡潔和實用性已經受到了眾多計算機用戶和程序員的歡迎,尤其是6.0版本,功能強大且易于掌握,是一種優秀的可視化開發環境,在VB應用程序中調用MSComm控件也十分容易。采用VB標準控件MSComm來實現通信功能,實際上是調用了API函數,而API函數是由Commdry解釋并傳給設備驅動程序執行的,對于VB程序開發者只需知道MSComm控件的屬性和事件的用法即可以實現串口的操作。本溫度實時控制系統的上位機操作界面正是基于VB的MSComm控件為核心,完成接收和保存數據,以及修改單片機上的參數。

    系統操作界面啟動后,在串口端口和波特率選擇2個參數設置正確后,打開串口,這時計算機會接收從單片機發送過來的數據,這些數據是一連串的字符,所以對接收過來的數據的處理,關鍵是字符串的處理。通過設定參數的位數,準確分離開出每一個參數的值,然后存入對應的數組中,并實時地顯示在屏幕上,還可以按需把數據保存到記事本。同時在操作界面上修改的數據也能通過串口傳送到單片機,遠程控制單片機。在發送的數據也要嚴格按照一定的格式進行發送,這樣單片機才能正確接收,操作界面程序流程如圖4所示。
    本設計定義的接收和發送數據格式如表1所示。

 


    3 系統實際運行
    打開設計好的上位機軟件后,首先選擇正確的串口,實現與單片機通信,然后通過圖5所示的操作界面可以實時觀測到這個溫度實時控制系統所測量的溫度值和對應的時間點,如有需要可以設置時間的起始點和結束點,通過軟件繪畫出溫度值的變化曲線,也可以通過實時曲線觀查溫度的變化情況,這個設置方便于長時間地觀察溫度的變化,還可以將數據全部保存到軟件里,在需要的時候進行必要的數據分析;而在操作界面上可以很方便對溫度實時控制系統中的監控時間段和溫度限制值作修改,當測量的溫度值超過溫度限制值,設置好的報警燈會閃爍,提醒我們注意。

4 結語
    本文設計了基于單片機AT89C52的溫度實時監控系統并通過串口通信實現了單片機與計算機互聯,實現了多點溫度實時遠程控制,計算機的實時數據分析,長期數據的圖表式保存,該系統已經在硬件平臺和軟件平臺上成功運行。整個設計具有成本低,測量范圍廣,實時操作方便快捷,顯示和儲存的信息量大,可擴展功能強等優點,可以應用在倉庫、溫室大棚、機房等進行溫度實時控制。另外設計方案可以擴展為網絡連接,可以突破串口傳送的距離限制,廣泛用于溫度在DS18B20測溫范圍之內的場合,實現隨時隨地通過網絡進行實時控制,將具有更大的應用價值。

? 江苏快3号码表