江漢大學(xué)物理與信息工程學(xué)院 艾紅朝 漆為民 段金杰
基于VB和MSP430FG4618的溫度智能監(jiān)測系統(tǒng)
江漢大學(xué)物理與信息工程學(xué)院 艾紅朝 漆為民 段金杰
本文以16位超低功耗MSP430系列單片機(jī)為下位機(jī)處理核心,研制一套溫度監(jiān)控系統(tǒng)。該系統(tǒng)采用具有16位分辨率的DS18B20作為溫度傳感器,能夠很精確的采集溫度信號。通過串口將采集到的數(shù)據(jù)在LCD上顯示出來,并且發(fā)送給上位機(jī),上位機(jī)利用VB6.0設(shè)計(jì)出一套監(jiān)測界面,能夠?qū)崟r(shí)的觀測到當(dāng)前溫度值以及歷史溫度值,最終實(shí)現(xiàn)人機(jī)交互。通過現(xiàn)場調(diào)試結(jié)果證明,該系統(tǒng)通訊可靠性高,且節(jié)約資源,在現(xiàn)實(shí)生活中有一定的利用價(jià)值。
DS18B20;MSP430FG4618;PC機(jī)
溫度是基本的物理量之一,不管是工農(nóng)業(yè)領(lǐng)域還是在日常生活中都是需要經(jīng)常測試的重要參數(shù)[1],常用的測溫方法有電阻式、熱電偶式、輻射式等等,但檢測電路復(fù)雜且結(jié)果精確度不高。而有些環(huán)境對溫度的要求則非常高[2]。比如化工過程控制領(lǐng)域、生物反應(yīng)領(lǐng)域等。傳統(tǒng)的測溫已經(jīng)不能滿足要求,而DS18B20溫度傳感器分辨率能夠達(dá)到0.0625,測溫范圍為-55--125oC,在溫度為-10--85oC時(shí)精度為±0.5oC[3]。以MSP430為下位機(jī)作為核心控制系統(tǒng),負(fù)責(zé)處理現(xiàn)場溫度值,上位機(jī)通過串口與MSP430進(jìn)行通信聯(lián)絡(luò)以及人機(jī)交互,從而對溫度做到實(shí)時(shí)的監(jiān)控。
該系統(tǒng)控制核心采用的是德州儀器公司的MSP430FG4618單片機(jī),該單片機(jī)內(nèi)部具有80個(gè)通用I/O 引腳、12位 A/D 轉(zhuǎn)換器、16位定時(shí)器、同步/ 異步通訊接口(USART)、DMA等。能夠滿足數(shù)據(jù)采集和處理要求[4]。該嵌入式系統(tǒng)總體設(shè)計(jì)如圖1所示。系統(tǒng)由LCD顯示部分、溫度采集部分、報(bào)警處理部分、MSP430核心部分、PC機(jī)等共同構(gòu)成。溫度傳感器DS18B20獲取溫度值。單片機(jī)對數(shù)據(jù)進(jìn)行處理,一方面與DS18B20內(nèi)部事先設(shè)定的最高和最低溫度比較,如果所測溫度高于或者低于設(shè)定值,則進(jìn)行報(bào)警處理,并把當(dāng)前溫度通過LCD顯示出來;另一方面通過MAX232將數(shù)據(jù)分高八位和低8位發(fā)送給PC機(jī),VB先對數(shù)據(jù)進(jìn)行計(jì)算,然后通過界面顯示,能夠非常清楚的觀測到溫度變化情況。
圖1 系統(tǒng)總體設(shè)計(jì)
下位機(jī)采用MSP430為主控制核心,MSP430是一種性價(jià)比非常高的單片機(jī),采用簡單易懂的C語言來編寫程序,大大縮短了開發(fā)時(shí)間。軟件設(shè)計(jì)過程中用模塊化設(shè)計(jì)方法,便于調(diào)試以及后期對系統(tǒng)做進(jìn)一步的擴(kuò)展。軟件編程由主程序、LCD顯示程序、溫度復(fù)位程序、報(bào)警程序、溫度讀取程序,串口通信等構(gòu)成,下位機(jī)軟件設(shè)計(jì)如圖2所示,下面簡要介紹溫度連接電路和溫度轉(zhuǎn)換部分程序。
圖2 下位機(jī)軟件設(shè)計(jì)
DS18B20只有三個(gè)引腳,其中VCC接地,VDD接3.3V電壓,通過單總線端口DQ進(jìn)行數(shù)據(jù)的傳輸,對時(shí)序的精確要求比較高,硬件連接十分簡潔,MSP430FG4618的P1.6端口與DS18B20的DQ口連接。溫度連接電路如圖3所示。
圖3 溫度連接電路
Reset_18B20(); //初始化
WriteSkip_18B20(0xcc); //發(fā)送跳過讀取產(chǎn)品ID號命令
WriteConvert_18B20(0x44); //發(fā)送溫度轉(zhuǎn)換命令
Delay();
Reset_18B20();
WriteSkip_18B20(0xcc);
WriteRead_18B20(0xbe); //發(fā)送溫度轉(zhuǎn)換命令
上位機(jī)采用VisualBasic6.0進(jìn)行界面設(shè)計(jì),用Frame將界面分塊處理,在工程中添加MSFlexGrid控件用來顯示歷史數(shù)據(jù)、兩個(gè)Text框顯示當(dāng)前溫度值和系統(tǒng)狀況、串口設(shè)置、MSComm控件實(shí)現(xiàn)與下位機(jī)之間的數(shù)據(jù)傳輸[5]等。
MSComm控件是微軟公司提供的一種通信控件,部分屬性如下:
(1)ComPort 通信端口的設(shè)置。本系統(tǒng)設(shè)其為5。
(2)Settings 串口相關(guān)設(shè)置,其格式為:“BBBB,P,D,S”其中,BBBB表示波特率;P表示奇偶位判斷方法;D表示數(shù)據(jù)位;S表示停止位。本系統(tǒng)設(shè)其為“9600,N,8,1”。
(3)Input 讀取接收緩沖區(qū)的數(shù)據(jù)。
(4)Potropen 通信串口的狀態(tài)。Potropen=True(打開):Potropen=Fasle(關(guān)閉)
(5)InputLen用于設(shè)置一次性從接收緩沖區(qū)讀取字節(jié)數(shù)。
(6)RThreshold為一閾值。控制接收緩沖區(qū)字符的多少,當(dāng)達(dá)到設(shè)定值時(shí)產(chǎn)生OnComm事件。
上位機(jī)程序設(shè)計(jì)主要負(fù)責(zé)與下位機(jī)進(jìn)行串口的通信設(shè)置以及對接收到的數(shù)據(jù)進(jìn)行處理。上位機(jī)程序設(shè)計(jì)如圖4所示。下面簡要介紹串口初始化程序和上位機(jī)通信程序。
圖4 上位機(jī)軟件設(shè)計(jì)
3.2.1 串口初始化程序
該程序主要用于串口部分的初始化,如通信端口的選擇、串口的設(shè)置、數(shù)據(jù)接收類型等等。部分程序的代碼如下:
With MSComm1
.CommPort = 5 ‘
.Settings = “9600,N,8,1” ‘
.InputMode = comInputModeBinary
.RThreshold =1 ‘接收一個(gè)字節(jié)后產(chǎn)生OnComm事件,處理相關(guān)事件
.SThreshold = 0
.PortOpen = True ’打開端口
End With
3.2.2 上位機(jī)通信程序
inbuf = MSComm1.Input
onbuf = MSComm1.Input
num = UBound(inbuf)
ReDim indata(0 To num) As Long
For i = 0 To num
indata(i) = inbuf(i) * 256 + onbuf(i) ‘合并高低8位
Next
系統(tǒng)上電后,點(diǎn)擊“運(yùn)行”按鈕即可出現(xiàn)溫度監(jiān)測系統(tǒng)界面,如圖5所示。顯示當(dāng)前日期,進(jìn)行相應(yīng)的端口設(shè)置后點(diǎn)擊“開始接收”按鈕,下位機(jī)通過串口將數(shù)據(jù)送給上位機(jī),通過監(jiān)測系統(tǒng)界面能夠及時(shí)了解溫度的情況,點(diǎn)擊“開始記錄”按鈕,則會保存歷史溫度值,記錄溫度值的時(shí)間間隔可通過VB6.0中的Timer控件來設(shè)置,也可以停止記錄,點(diǎn)擊“清空數(shù)據(jù)”按鈕,則會清空歷史溫度值。經(jīng)過調(diào)試,該系統(tǒng)能夠達(dá)到預(yù)期結(jié)果。
圖5 溫度監(jiān)測系統(tǒng)界面
VB是一種簡單易懂而高效地開發(fā)應(yīng)用軟件的工具,只需在設(shè)計(jì)工程中對不同的控件寫入少量的程序即可,廣泛地運(yùn)用在PC機(jī)和單片機(jī)之間的通信,MSP430系列單片機(jī)最顯著的特點(diǎn)就是其超低功耗,且功能十分強(qiáng)大,該系統(tǒng)根據(jù)不同的需要可以運(yùn)用到多種溫度監(jiān)測系統(tǒng)中。
[1]鄭惟輝.單片機(jī)智能溫度控制系統(tǒng)的設(shè)計(jì)[J].黃山學(xué)院學(xué)報(bào),2008,10(5):23-24.
[2]張軍,陳慧麗.基于MSP430單片機(jī)和DS18B20的數(shù)字溫度計(jì)[J].電子設(shè)計(jì)工程,2010,18(11):106-107.
[3]江太輝,鄧展威.DS18B20數(shù)字式溫度傳感器的特性與應(yīng)用[J].電子技術(shù),2003,(12):46-48.
[4]王曉銀,王彥瑜,蔣鋒.基于MSP430F149單片機(jī)的溫度監(jiān)測系統(tǒng)的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006,22(72):77-78
[5]郭武滔.基于VB和PLC溫度循環(huán)測試系統(tǒng)的研究與實(shí)現(xiàn)[D].上海:東華大學(xué)出版社,2014.25-30
[6]吳愛萍.基于VB與單片機(jī)的溫度測控系統(tǒng)的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010,8(319):207-209
江漢大學(xué)研究生科研創(chuàng)新基金項(xiàng)目(008-2015-03)。
艾紅朝(1990—),男,研究生,研究方向:化工過程檢測及自動化。
艾紅朝。