劉鵬娟,楊斌
(阿壩師范學(xué)院,四川汶川,623002)
在萬物互聯(lián)智能化科技時代,我國現(xiàn)有溫度測量系統(tǒng)的設(shè)計僅停留在單路溫度檢測、單一設(shè)備孤立運行階段,在多路同時監(jiān)測、多設(shè)備終端共同控制與監(jiān)測方面存在嚴(yán)重不足[1]。該課題基于現(xiàn)有情況、將利用基于單片機(jī)最小系統(tǒng)平臺,搭載多路溫度檢測模塊、對應(yīng)路聲音、光電報警、溫度閾值設(shè)置、以及在Labview軟件中編程實現(xiàn)對整套系統(tǒng)的實時監(jiān)測。此次研究利用硬件與軟件的實時通訊,打破傳統(tǒng)的單一監(jiān)測、控制,為未來智能化監(jiān)測、控制方向前進(jìn)。
以STC98C52RC單片機(jī)為數(shù)據(jù)處理和控制主單元,多個DS18B20溫度傳感器為溫度采集,6個按鍵為人機(jī)互動設(shè)置按鍵,若干個LED和1個蜂鳴器為報警裝置,NI-VISA為硬件系統(tǒng)與其他設(shè)備的橋梁,Labview對上機(jī)位編程,其各模塊相互配合共同實現(xiàn)對多路溫度檢測的智能化監(jiān)測與控制[2~3]。其設(shè)計總體圖如圖1所示。
此方案采用單片機(jī)最小系統(tǒng)為平臺,單片機(jī)上電進(jìn)行循環(huán)掃描[4],利用智能溫度傳感器BS18B20的單線總線程式工作特點以及按鍵、報警等模塊的相互配合和Keil軟件對單片機(jī)的編程、Protues的系統(tǒng)仿真、Altium Designer的電路設(shè)計共同實現(xiàn)了電路簡單、數(shù)據(jù)精確的多路溫度測量。
系統(tǒng)的主要功能設(shè)計[5];利用單片機(jī)的串口程序和NIVISA軟件的配合將接收到的溫度數(shù)據(jù)按照依次傳送規(guī)則將可用數(shù)據(jù)向外發(fā)送,通過對Labview的軟件編程,對接收到的數(shù)據(jù)進(jìn)行處理、顯示和其他輔助控制等功能設(shè)計,最后可實現(xiàn)多路溫度測量系統(tǒng)設(shè)計硬件與軟件的完美配合。
系統(tǒng)硬件部分設(shè)計采用模塊化設(shè)計,將整個系統(tǒng)分為單片機(jī)最小系統(tǒng)、電源指示模塊組、按鍵控制模塊組、LCD液晶顯示模塊組、聲光報警模塊組、多路(4路、可擴(kuò)展到無限路)DS18B20溫度檢測模塊、數(shù)據(jù)串口模塊。各個模塊正常工作后將其整體整合成一個完整的系統(tǒng)。
單片最小系統(tǒng)為控制、交互中心,可對各個模塊進(jìn)行控制以及對其他軟件進(jìn)行數(shù)據(jù)交互等功能[6];顯示電路由LCD1602液晶顯示模塊芯片,可進(jìn)行多行顯示實時單片機(jī)傳回通過程序轉(zhuǎn)化好的溫度值和其他系統(tǒng)操作信息;電源指示模塊由一個綠色LED發(fā)光二極管和USB供電裝置構(gòu)成;復(fù)位電路功能為當(dāng)按下復(fù)位按鍵后,整個系統(tǒng)重新啟動;按鍵電路設(shè)為4個按鍵,可對相應(yīng)功能進(jìn)行設(shè)置;LCD液晶顯示模塊可以顯示華氏溫度和其他系統(tǒng)設(shè)置提示信息;聲光報警模塊由4路對應(yīng)紅色LED發(fā)光二極管和一個蜂鳴器組成;4路DS18B20溫度檢測模組主要由4個DS18B20測溫器件構(gòu)成[7]。
在設(shè)計中按照使用先后順序,先用Protues軟件做出設(shè)計的仿真程序,在Keil對單片機(jī)編寫程序生成hex文件,配合仿真達(dá)到預(yù)期效果后,再在Altium Designer畫電路原理圖及PCB板。最后在Keil軟件中對單片機(jī)編寫數(shù)據(jù)依次傳送規(guī)則串口功能,將數(shù)據(jù)向外傳送、待使用。
本次系統(tǒng)軟件設(shè)計部分功能大致可分為兩個部分:核心部分整體的監(jiān)測與控制[8],二是完成各種功能的執(zhí)行。通過系統(tǒng)程序主程序?qū)σ韵赂鱾€子程序進(jìn)行統(tǒng)一部署、控制。包括溫度主程序、讀出溫度子程序、溫度轉(zhuǎn)換子程序、計算溫度子程序[9]、顯示數(shù)據(jù)刷新子程序、數(shù)據(jù)串口程序等。具體主程序設(shè)計流程框圖如圖2所示。
經(jīng)過對單片機(jī)hex文件的編寫,和Protues仿真的編寫,在Protues仿真如圖3所示。
3.2.1 Labview編程設(shè)計思路
Labview軟件是由美國NI公司研制開發(fā)的一個對測量和控制系統(tǒng)的開發(fā)環(huán)境,它基于BASIC和C語言之上,利用簡單明了的圖形來編程,圖形化編程是它最大的特點;配合串口功能的使用和美國NI公司開發(fā)的基于自底向上結(jié)構(gòu)模型統(tǒng)一數(shù)據(jù)集I/O控住軟件NI-VISA一同使用,通過NI-VISA的配置、打開,對數(shù)據(jù)的讀取,關(guān)閉為主線,對DS18B20溫度傳感器測量數(shù)據(jù)進(jìn)行處理。來實現(xiàn)對上位機(jī)的編程。
在單片機(jī)程序中寫入串口功能傳出溫度數(shù)據(jù)類型為A=+021.5······格式,再通過NI-VISA串口軟件設(shè)置好相應(yīng)COM端口,NI-VISA接收到數(shù)據(jù)后進(jìn)行處理,使傳入的數(shù)據(jù)具有規(guī)律性,在通過子程序溫度計算對接收到的數(shù)據(jù)進(jìn)行字符串的匹配、字符串截取等方式獲得最后數(shù)據(jù)為整數(shù),例如數(shù)字22,最后通過顯示控件將其各路溫度數(shù)據(jù)顯示在顯示面板上。在子程序溫度計算后在設(shè)置不同的功能,例如超過溫度最高上限和最低下限時布爾燈會亮、蜂鳴器會響等附加功能。設(shè)計思路程序框圖如圖4所示。
3.2.2 溫度計算子程序
在溫度計算子程序中,由于讀取到的數(shù)據(jù)集格式為“A=+022.6、B=+022.9”格式,在顯示面板上我只想顯示其溫度,如正值溫度“+22”或者是“-22”,所以要對讀取到的數(shù)據(jù)進(jìn)行匹配,如若要顯示A路溫度,其顯示格式為“A=+022.6”,其始終都有一個相同字符“A”,所以在匹配時只需要匹配字符A后就能獲取到其溫度值,但在字符串中還有“A=”是不需要的,所以要截取其字符,并且截取字符偏移量為2,剩余字符串則是需要的數(shù)據(jù)為“+22.6”,但是在顯示中只想看到數(shù)值,在正溫度時不想看到“+”,在負(fù)溫度時要看到“-”,所以又對截取到的字符進(jìn)行了數(shù)值轉(zhuǎn)換,最后顯示在面板上。其他路溫度計算原理和A路計算原理相似。其設(shè)計思路流程框圖如圖5所示。
在Labview上對其進(jìn)行編程,程序如圖6所示。
3.2.3 Labview輔助程序設(shè)計
輔助程序主要由溫度設(shè)定閾值、布爾報警燈、蜂鳴器和模塊顯示組成。溫度值通過溫度計算子程序后,進(jìn)入顯示模塊在其前面板顯示,同時由溫度閾值最高溫度上限和最低溫度上限進(jìn)行設(shè)定,通過判定范圍后,如果為真則布爾報警燈和蜂鳴器不會運行,如果為假(其判定為取非)布爾報警燈和蜂鳴器運行。設(shè)計思路流程圖如圖7所示。
在Labview上對其進(jìn)行編程,程序如圖8所示。
3.2.4 Labview軟件設(shè)計成果
再對Labview軟件其他基礎(chǔ)功能、選項卡事件結(jié)構(gòu)、選項卡等的編程完成后,最后對主界面進(jìn)行編程,其如圖9所示。在對NI-VISA端口進(jìn)行合理設(shè)置后,用串口線將其硬件系統(tǒng)與計算機(jī)相連接,在Labview主界面上點擊運行,得到數(shù)據(jù)如圖10所示。
該系統(tǒng)采用STC89C52RC單片機(jī)為主控中心,采用測量系統(tǒng)模塊化、總線單線程電路設(shè)計,和采用串口數(shù)據(jù)依次傳送規(guī)則,利用Labview對上機(jī)位的編程,實現(xiàn)了電路結(jié)構(gòu)簡單,硬件、軟件運行可靠,數(shù)據(jù)精度高,具有很好的可操作性和維護(hù)性。打破了傳統(tǒng)單設(shè)備溫度測量的局限,為未來智能化多路溫度測量系統(tǒng)打下了堅實基礎(chǔ)。