葉 軍, 郭 棟
(青海大學(xué) 機械工程學(xué)院, 青海 西寧 810016 )
基于Labview的溫度采集控制系統(tǒng)
葉 軍, 郭 棟
(青海大學(xué) 機械工程學(xué)院, 青海 西寧 810016 )
以高速低功耗的STC89S52單片機和 DS18B20為硬件核心,用Labview2012作為上位機程序開發(fā)平臺,設(shè)計出一個實時溫度監(jiān)控系統(tǒng)。這個系統(tǒng)由DS18B20采集周圍環(huán)境溫度,由單片機讀取、處理數(shù)據(jù)并使處理過的數(shù)據(jù)在共陰極數(shù)碼管上顯示,同時單片機把處理過的數(shù)據(jù)通過RS-232通訊接口線傳送給Labview進行分析處理,判斷報警狀態(tài),實現(xiàn)上位機和下位機同時報警。
Labview2012;DS18B20;STC89S52;溫度測控系統(tǒng)
虛擬儀器的出現(xiàn)使得計算機可以用程序?qū)崿F(xiàn)一部分硬件儀器的功能,且數(shù)據(jù)在計算機中進行處理,使得計算機的各項功能,如數(shù)據(jù)的處理和管理功能、圖形化功能等都可以得到充分利用。
溫度測控系統(tǒng)在溫室、家電、工業(yè)等眾多領(lǐng)域都有廣泛應(yīng)用,增加報警功能后更能預(yù)防和減少相關(guān)事故的發(fā)生。因此設(shè)計出結(jié)合虛擬儀器和溫度傳感器的溫度采集控制系統(tǒng)有很大的實用價值。
溫度采集控制系統(tǒng)組成如圖1所示, 安裝了labview程序的計算機和STC89S52單片機組成上下位機的關(guān)系。
圖1 溫度測控系統(tǒng)組成框圖
單片機把傳感器DS18B20采集的溫度數(shù)據(jù)通過USB轉(zhuǎn)至RS-232串口線,最后傳送給PC機,經(jīng)Labview程序處理,使被測的溫度值在各個顯示控件中顯示,如果溫度值超過設(shè)定的溫度上下限,則前面板和單片機電路會同時產(chǎn)生報警信號。
溫度采集控制系統(tǒng)中的單片機系統(tǒng)電路原理圖如圖2所示,單片機系統(tǒng)選用STC公司的STC89S52低功耗高性能CMOS 8位芯片作為主控;溫度傳感器DS18B20 是DALLAS 半導(dǎo)體公司生產(chǎn)的一線式智能數(shù)字溫度傳感器,該傳感器的使用資料豐富,在此不做詳細介紹[1];顯示數(shù)碼管為共陰極接法,采用動態(tài)掃描的方式驅(qū)動。
STC89S52單片機通過MAX232芯片進行電平轉(zhuǎn)換后,采用RS-232通訊方式和上位計算機連接,實現(xiàn)單片機和上位計算機的數(shù)據(jù)交換。
圖2 溫度采集控制系統(tǒng)單片機電路原理圖
3.1 主程序設(shè)計
溫度傳感器DS18B20內(nèi)部有64位ROM單元和9字節(jié)暫存器單元。64位ROM中含有DS18B20的唯一序列號,而9字節(jié)的暫存單元中,0~1字節(jié)為轉(zhuǎn)換后的溫度數(shù)據(jù),2~3字節(jié)為用戶設(shè)置的高低溫報警值,4字節(jié)用來配置轉(zhuǎn)換精度。因為是一線通信接口,所以必須先完成ROM的設(shè)置,具體流程為:DS18B20初始化→ROM指令→存儲器操作指令→數(shù)據(jù)傳輸[2]。由此得到如圖3所示的單片機系統(tǒng)程序流程圖。
3.2 判斷溫度正負的程序片段
DS18B20收集到的溫度數(shù)據(jù)是16位數(shù)字量,其中前11位表示溫度數(shù)值大小,高5位表示溫度正負位。在處理溫度數(shù)據(jù)時,單片機程序中把前11位的溫度數(shù)值轉(zhuǎn)換為10進制,通過查表在數(shù)碼管中顯示同時把其轉(zhuǎn)換為字符串后通過RS-232傳送給上位計算機,經(jīng)過計算機的Labview處理后顯示在Labview程序面板中,而高5位則可以通過控制程序中定義的一個字符型數(shù)據(jù)來判斷是否需要在溫度值前
圖3 單片機系統(tǒng)程序框圖
加負號,相應(yīng)程序如下:
k=T_H&0xf8; //T_H中為溫度數(shù)據(jù)高八位,其中的高5位為正負判斷位置,賦予k
if(k==0xf8) //如果溫度判斷位為11111,把數(shù)據(jù)0x01賦予T_sign,表示負
T_sign=0x01;
else
T_sign=0x00; //否則就把0x00賦予T_sign,表示正在賦予T_sign數(shù)據(jù)以后,在顯示子程序中有對應(yīng)程序段如下:
if(T_sign==1) //如果溫度值為負,數(shù)碼管符號位通過查表顯示負號
{PZX=tab[10];
PS2=0;
PS3=1;
delay(200);}
else if(T_sign==0) //否則數(shù)碼管的符號位不亮,表示為正
{PS2=0;}
4.1 軟件介紹
Labview 是基于圖形編譯G(Graphic) 語言的虛擬儀器開發(fā)平臺, 它具有數(shù)據(jù)采集、 數(shù)據(jù)分析、 信號生成、 信號處理和輸入輸出控制等功能。與傳統(tǒng)文本語言相比,Labview界面更加友好直觀, 是一種直覺式圖形程序語言[3]。
每一個Labview程序都有兩個基本窗口:前面板、框圖。
前面板是VI的交互式用戶界面,包含旋鈕、按鈕、圖形以及其他控件和指示器。用戶可以通過鍵盤和鼠標(biāo)輸入,然后在屏幕上觀察程序運行結(jié)果。
框圖是VI的源代碼,是可執(zhí)行的程序??驁D的構(gòu)成有低級VI、內(nèi)置函數(shù)、常量和程序執(zhí)行控制結(jié)構(gòu)。用連線將合適的對象連接起來定義它們之間的數(shù)據(jù)流。前面板上的對象對應(yīng)于框圖的終端,這樣數(shù)據(jù)可以從用戶傳輸?shù)匠绦蛟偌皶r傳回給用戶[4]。
4.2 設(shè)計方案
計算機的程序主要負責(zé)實時溫度的顯示,記錄以及報警狀態(tài)的判斷,前面板部分如圖4所示。
圖4 labview前面板設(shè)計
圖5為由VISA進行讀取和數(shù)值顯示并進行報警判斷的框圖。每次傳輸給計算機的數(shù)據(jù)為3個字節(jié)的字符串,把字符串轉(zhuǎn)化為數(shù)組后,每個字節(jié)會被保存在數(shù)組的一個空間,溫度數(shù)據(jù)占2個字節(jié),其中高位最先進入數(shù)組,占數(shù)組的0空間,低位后進入數(shù)組,分配在數(shù)組的1空間,數(shù)組的第三位為正負控制數(shù)據(jù),最后傳送進入計算機,所以存儲在數(shù)組的2空間。通過數(shù)組索引分別取出并組合后即可正常顯示實時溫度。
圖5 溫度顯示報警
圖6為把上位機判斷完成的報警狀態(tài)傳送給下位單片機使單片機完成報警狀態(tài)的更新。
首先分別調(diào)試單片機系統(tǒng)和上位計算面的labview系統(tǒng);單片機寫入程序后可讀取DS18B20中數(shù)據(jù)并在數(shù)碼管上正常顯示被測溫度值;Labview可以顯示用軟件虛擬產(chǎn)生的溫度值。
圖6 傳送報警狀態(tài)給下位機
然后將單片機系統(tǒng)和Labview系統(tǒng)用串口線連接,此時Labview2012的前面板波形圖表控件上應(yīng)顯示出和DS18B20數(shù)碼管上相同的溫度值,若顯示亂碼,則調(diào)低串口的波特率便可解決這個問題。圖7和圖8分別為系統(tǒng)正常工作時人工給DS18B20加熱過程中得到的實時溫度曲線以及不同報警狀態(tài)在前面板的截屏圖,報警上下限可以根據(jù)需要設(shè)置,Labview前面板顯示數(shù)值會比數(shù)碼管顯示數(shù)值稍有延遲,但是顯示數(shù)值相同。
圖7 波形圖標(biāo)面板
圖8 高低溫報警
本文介紹了基于Labview的溫度采集控制系統(tǒng),給出了詳細的單片機系統(tǒng)硬件電路的組成和下位單片機軟件和上位計算機Labview的編程要點,并制作了實際的電路系統(tǒng),通過實驗證明,該溫度控制系統(tǒng)具有性能穩(wěn)定,通用性強,成本低廉的特點,適合應(yīng)用于實驗教學(xué)、家庭、農(nóng)業(yè)溫室等領(lǐng)域。此外,該系統(tǒng)還可以添加多個傳感器成為多通道的溫度控制系統(tǒng),具有良好的擴展性。
(葉 軍等文)
[1] 湯鍇杰,栗燦,王迪,張琴 . 基于DS18B20的數(shù)字式溫度采集報警系統(tǒng)設(shè)計[J].哈爾濱:傳感器與微系統(tǒng),2014,33(3) : 100.[2] 王建勛,周青云 . 基于DS18B20和Labview的溫度監(jiān)測系統(tǒng)[J].北京:實驗室研究與探索,2012,31(3) :48.
[3] 張丙才,劉琳,高廣峰,趙朋 . 基于 LabVIEW 的數(shù)據(jù)采集與信號處理[J].沈陽:儀表技術(shù)與傳感器,2007(12) :74 - 75.
[4] [美]Jefferey Travis等著.Labveiw大學(xué)實用教程(第三版) [M].喬瑞萍等譯.北京:電子工業(yè)出版社,2008:3-4.
Labview-Based Temperature Acquisition and Control System
YE Jun, GUO Dong
(SchoolofMechanicalEngineering,QinghaiUniversity,Xining810016,China)
A temperature monitoring and control tystem is designed using the MCU STC89S52 and DS18B20 as the core of hardware and Labview2012 as the software platform.The system can acquire the signal of temperature in real-time on site by DS18B20 and use STC89C51 to read, analyse the sample signels and display them on the common cathode digital tube.Then the MCU will transmit the data to PC by RS-232 to process the sampling signels in software platform to control the perihperal equipment of STC89S52 to achieve real-time temperature control.
Labview2012;DS18B20;STC89S52;temperature monitoring and control system
2015-08-30;
2016-11-09
葉 軍(1970-),男 ,碩士,副教授,主要從事機電控制的教學(xué)和研究,E-mail:yejun1991@21cn.com
A
1008-0686(2016)03-0071-04
圖分類號:TP274.2