李世紅



摘要:以虛擬儀器LabVIEW為開發平臺,以單片機和單總線數字溫度傳感器DS18B20為核心,設計了一個溫度實時監測系統。該系統通過單片機與PC機的串口通信,同時在上位機界面實時顯示溫度值,并且進行曲線繪制。結果表明,系統設計簡單,成本低,測量精度高,顯示界面直觀、形象。
關鍵詞:LABVIEW;單片機;溫度監測
中圖分類號:TP274+.2 文獻標識碼:A 文章編號:0439-8114(2015)19-4836-04
DOI:10.14088/j.cnki.issn0439-8114.2015.19.047
Abstract: A real-time temperature monitoring system was designed using the virtual instrument development of LabVIEW as the platform and using SCM and a single-bus digital temperature sensor DS18B20 as the core. By serial communication of SCM and PC, the value of the real-time temperature was displayed in the PC interface and the temperature curve was drew. The results showed that the system was simple, low cost, high accuracy, and intuitive display.
Key words: LabVIEW; SCM; temperature monitoring
在日常生活和工農業生產中,溫度都是一個十分重要的物理量,如智能大棚的溫度控制、空調系統的溫度控制、糧倉的溫度控制等,因此對溫度的監測也十分重要。LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是NI公司開發的一種行業圖形化編程軟件,是一種利用圖標來代替文本行創建應用程序的圖形化編程語言,主要用于開發測試、測量與控制系統,是專門為工程師和科學家設計的直觀圖像化編程語言[1]。本文采用高性能、低功耗的單片機STC89C52和單總線數字溫度傳感器DS18B20設計了一個基于LabVIEW的溫度監測系統,工作人員可以在PC上實時監測溫度的變化情況,方便了生產中對溫度的監測,有效地提高生產質量。
1 系統總體方案設計
系統由LabVIEW上位機和單片機下位機系統兩部分組成,下位機主要以單片機為核心,由溫度傳感器模塊、報警模塊、繼電器控制模塊組成,上位機主要是在PC平臺上運用LabVIEW軟件開發的界面,主要由報警模塊、顯示模塊和數據存儲模塊組成。上位機不僅可以實時顯示溫度值,還可以觀察溫度變化曲線,根據需要還可以以Excel表格的形式保存監測的歷史數據,同時根據實時采集的溫度數據和設定值進行比較,提示溫度報警。下位機系統單片機將溫度傳感器監測到的溫度數據通過串口傳送給PC機,通過PC機上的LabVIEW編寫的上位機程序對數據進行實時顯示并且存儲。當溫度過高或是過低時,均由相應的繼電器進行控制,切斷或開啟相應的設備。系統的總體方案如圖1。
2 系統硬件設計
2.1 溫度傳感器模塊
溫度傳感器模塊采用美國Dallas公司生產的單總線數字溫度傳感器DS18B20,該溫度傳感器適應電壓范圍為3.0~5.5 V,在設計中與單片機共用5 V的電壓。其測溫范圍-55~125 ℃,在-10~85 ℃時精度為±0.5 ℃[2],此精度可以滿足本設計系統的要求。其獨特的單總線接口方式,在與單片機連接時僅需要一條口線即可實現單片機與DS18B20的雙向通訊。DS18B20在使用中原則上不需要任何外圍元件,在本設計中為了增加傳輸距離,在數據線和電源之間加入4.7 k的電阻,數據線與單片機的P1.0口連接。
2.2 單片機選型
本設計采用宏晶科技公司生產的STC89C52RC單片機。STC89C52是一種低功耗、高性能CMOS 8位微控制器,具有8 k在系統可編程Flash存儲器。在單芯片上,擁有靈巧的8位CPU和在系統可編程Flash,使得STC89C52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。具有以下標準功能:8 k字節Flash,512字節RAM,32位I/O口線,看門狗定時器,內置4 kB EEPROM,3個16位定時器/計數器,4個外部中斷,一個7向量4級中斷結構(兼容傳統51的5向量2級中斷結構),全雙工串行口,最高運作頻率35 MHz,6T/12T可選,該單片機的指令代碼完全兼容傳統的8051單片機[3]。
2.3 報警模塊
本設計采用壓電式蜂鳴器來設計報警電路,具體電路如圖2,蜂鳴器正極接VCC,負極接三極管的發射極,三極管基極經過限流電阻R1后由單片機的引腳P1.1控制,當單片機引腳輸出高電平時,三極管Q1截止,沒有電流流過線圈,蜂鳴器不工作;當單片機引腳輸出低電平時,三極管導通,電流流入蜂鳴器的電磁線圈,驅動振動膜發出聲音。由于單片機的管腳輸出電流比較小,不足以驅動蜂鳴器發聲,因此圖2中蜂鳴器與單片機之間連接了一個8550三極管,主要是用來放大單片機輸出的電流進而驅動蜂鳴器工作[4]。
2.4 繼電器模塊
在本設計中采用電磁式繼電器,具體電路圖如圖3。單片機的P1.2口經過一電阻與三極管8550的基極連接,經三極管的電流放大后,可以直接驅動繼電器工作。此時,繼電器的開和關則由三極管的基極電平來控制,如果單片機的P1.2口輸出低電平,三極管飽和導通,繼電器得電閉合,同時狀態指示的發光二極管D2也點亮。如果單片機的P1.2口輸出高電平,三極管截止,繼電器不工作,同時狀態指示的發光二極管D2也熄滅。圖3中的二極管D1主要是用于吸收繼電器斷電時候產生的感應電動勢,防止干擾,同時也保護三極管不被擊穿[5]。
3 系統軟件設計
3.1 下位機程序設計
下位機調試開發環境使用的是Keil uvision 4,使用C語言作為編程語言。同時為了提高軟件的運行效率,在下位機軟件設計時采用模塊化編程方法。下位機主要是接收上位機發過來的啟動指令,將溫度傳感器采集到的溫度值傳到上位機系統中,具體的流程圖如圖4。在下位機中讀取溫度的子程序流程圖如圖5,單片機對DS18B20的訪問流程是先對DS18B20復位,再進行ROM操作命令,之后對存儲器執行操作命令,最后進行數據操作。在程序設計中DS18B20每一步操作都要遵循嚴格的工作時序和通信協議。
3.2 串口通信
串口通信電路如圖6。本設計串口通信電路主要使用MAX232芯片來實現電平轉換。其中T1IN和R1OUT分別接單片機的發送引腳TXD和接收引腳RXD,MAX232外接5個1uf電容為經典電路的接法,與PC機接口電路使用RS232的DB9接頭,只需接其中3根線,即發送、接收和地線。串口通信程序主要包括串口的初始化、串口數據發送,其中串口的初始化主要用于設置波特率,在本設計通信中采用的串口通信波特率為9 600 bps。
3.3 上位機程序設計
本系統的上位機程序以LabVIEW為開發平臺,采用模塊化的編程方法,將各個功能模塊設置成不同的子VI,在主程序中通過調用子VI來實現。上位機通過串口接收下位機發送的溫度值,實現對溫度的顯示、存儲、報警等功能,整體程序設計流程圖如圖7所示。
3.4 LabVIEW串口程序設計
在LabVIEW串口程序設計中,主要由VISA配置串口、屬性節點、VISA讀取和簡單錯誤處理等幾部分組成[6](圖8)。在程序設計中使用條件結構來判斷是否執行報警程序,將采集到的溫度值與設定的溫度值進行比較,如果溫度值高于或者是低于設定的溫度值,則條件結構判斷為真,執行報警程序,否則不予執行。
4 數據的測量
在進行數據采集時只需將串口的相關參數設置好之后,再設置報警溫度上限為25 ℃,數據采集時間間隔為500 ms。然后運行上位機和下位機程序,并點擊上位機的開始運行按鈕,就可以實現數據的采集和顯示。上位機的實時數據采集界面如圖9,用手觸摸下位機中的溫度傳感器DS18B20,則實時曲線也會隨著溫度的改變而發生變化。
采集溫度數據時還需要對采集到的溫度數據進行存儲,點擊上位機中的數據存儲路徑可以選擇數據存儲的路徑,可將溫度數據以TXT或者XLS的格式存儲。
5 小結
本系統利用虛擬儀器LabVIEW的圖形化編程語言(G語言)編寫上位機程序,通過單片機與PC機的串口通信,可以實時監測環境的溫度值變化,并利用單片機的其他端口,多掛幾個DS18B20,實現溫度的多點監測,與其他測量系統相比,該系統設計簡單、成本低、測量精度高,顯示界面直觀。
參考文獻:
[1] 陳學軍,徐明銘.基于虛擬儀器的綜合實驗室平臺探索[J].實驗室研究與探索,2014,33(10):250-253.
[2] 劉 暐,李愛寧,孫士尉,等.冬棗恒溫庫無線監測系統設計[J].中國農機化學報,2014,35(4):203-207.
[3] 靳玉紅.基于STC89C52的防盜報警系統設計[J].數字技術與應用,2013(5):193-194.
[4] 陳 宇,王 璽.基于光電技術智能輸液監控系統設計[J].核電子學與探測技術,2009(5):1150-1154.
[5] 劉華昌.基于PIC16F87X的電磁繼電器控制設計[J].低壓電器, 2008(15):16-18.
[6] 徐華中,黃麗萍.基于LabVIEW和DSP串口的多通道電機參數采集系統[J].電子測量技術,2011(4):66-69.