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