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