基于LabVIEW的單片機溫度自動測試系統(tǒng)
1 引 言
本文引用地址:http://m.butianyuan.cn/article/193497.htmLabVIEW是美國國家儀器公司(National Instru-ment)開發(fā)的一種虛擬儀器平臺,他是一種用圖標代碼來代替文本式編程語言創(chuàng)建應用程序的開發(fā)工具。Lab-VIEW功能強大,提供了豐富的數據采集、分析和存儲庫函數以及包括DAQ,GPIB,PXI,VXI,RS 232/485在內的各種儀器通信總線標準的所有功能函數。利用LabVIEW設計的數據采集系統(tǒng),可模擬采集各種信號,但是配備NI公司的數據采集板卡比較貴,在實際開發(fā)中可選用單片機小系統(tǒng)對數據進行采集。
冷庫是發(fā)展冷藏業(yè)的基礎設施,也是在低溫條件下貯藏貨物的建筑群。食品保鮮主要以食品冷藏鏈為主,將易腐畜禽、水產、果蔬、速凍食品通過預冷、加工、貯存和冷藏運輸,有效地保持食品的外觀、色澤、營養(yǎng)成分及風味物質,達到食品保質保鮮,延長食品保存期的目的,起到調劑淡、旺季市場的需求并減少生產與銷售過程中經濟損耗的作用。在這些實際應用中,溫度是冷庫的一個很重要的指標,因此,本文設計了一種基于LabVIEW的單片機溫度自動測試系統(tǒng),并對其系統(tǒng)的組成、實現給出了詳細描述。
2 系統(tǒng)的組成結構及工作原理
本系統(tǒng)的數據采集系統(tǒng)由溫度傳感器和AT89C51單片機以及MAX232組成。由單片機組成的小系統(tǒng)對溫度信號進行采
集、調理和轉換,然后通過RS 232串口通訊將數據送給計算機,在LabVIEW開發(fā)平臺下,對數據進行各種處理、分析,并對信號進行存儲、顯示和打印,最后由PC機顯示實時測量的冷庫的8個冷凍室的溫度,從而實現了一種在Lab-VIEW環(huán)境下的單片機溫度自動測試系統(tǒng)。
2.1 硬件電路設計
系統(tǒng)的硬件電路如圖1所示,采用AT89C51作為主芯片,溫度傳感器選用由美國AD公司生產的集成電路溫度傳感器AD590,該溫度傳感器具有體積小、測溫精度高、穩(wěn)定性好、反應速度快、線性度好、能進行遠距離傳送和價格低廉等優(yōu)點。這種溫度傳感器特別容易和微電腦配合,組成自動測溫系統(tǒng)。放大電路選用AD627,將被測溫度轉換并放大到0~5 V范圍,然后送到A/D轉換器的輸入端。由于溫度的變化比較緩慢,因此在系統(tǒng)中可以不用采樣/保持器。模數轉換電路選用內部帶有鎖存器和8路模擬開關的ADC0809,他的分辨率為1/256,完全能滿足分辨率為±1℃的要求。
啟動ADC0809的工作過程是:先送通道號地址到ADDA,ADDB,ADDC,由ALE信號鎖存通道號地址,后讓START有效,啟動A/D轉換,即執(zhí)行一條“MOVX@DPTR,A”指令產生WR信號,使ALE,START有效,鎖存通道號并啟動A/D轉換。A/D轉換完畢,EOC端發(fā)出一正脈沖,申請中斷。在中斷服務程序中,“MOVX A,@DPTR”產生RD信號,使OE端有效,打開輸出鎖存器三態(tài)門,使用“MOVX A,@DPTR“指令就可將8位數據讀人到CPU中。
2.2 軟件設計
系統(tǒng)軟件設計主要包括主程序、中斷服務子程序等。軟件流程圖如圖2所示。
主程序的功能:負責整個系統(tǒng)的管理工作,如對89C51外部中斷方式進行設置,建立數據指針,置通道初值,啟動A/D轉換和上位機進行通訊等。
中斷服務程序的功能:讀取A/D轉換后的數據,更改通道號及數據存儲器地址指針并判斷8個通道是否采集完畢,未完則繼續(xù)啟動下一個通道;若8個通道已轉換完畢,則重新設置通道號初值,再次啟動IN0通道。
3 LabVIEW下的串行通訊設計
3.1 VISA介紹
由于使用計算機控制的儀器逐步增多,出現了許多I/O控制軟件,一些是用戶自己開發(fā)的,一些是硬件接口廠家為其開發(fā)的硬件接口設備設計的,但他們都不具有通用性,這就給用戶帶來了許多麻煩,VISA(Virtual Instru-ment Software Architecture,虛擬儀器軟件體系結構)這種通用的儀器驅動軟件結構就是為解決這些問題而產生的。作為通用I/O標準,VISA具有與儀器硬件接口和具體計算機無關的特性,即VISA是面向器件功能,而不是面向接口總線的。使用他控制VXI,GPIB,RS 232等儀器時,不必考慮接口總線類型。針對計算機標準的串行口,Lab-VIEW提供了串行端口子模板。串行端口子模板中還包含許多的子模板(也稱子VI),其中主要包括以下6個子VI:
(1)VISA Configure Setial Port:VI串行口初始化子VI;
(2)VISA Write:VI向串行口緩沖區(qū)寫入數據的子VI;
(3)VISA Read:VI從串行口設備中讀取數據的子VI;
(4)VISA Close:VI關閉串行口的子VI;
(5)VISA Bytes at Serial Port:VI返回指定串行口中輸入緩沖區(qū)內的字節(jié)數子VI;
(6)VISA Serial Break:VI串行口中斷子VI。
LabVIEW是基于圖形化的程序設計語言,程序的核心代碼是類似于流程圖的方框圖和線條的連接。每個方框圖代表一個功能模塊即子VI,程序執(zhí)行的過程是條件滿足方式,當一個功能模塊的所有輸入都齊備后,此功能模塊產生輸出,傳送給下
一個模塊。程序的動態(tài)流程可以通過點亮Block Diagram工具欄上的Highlight Execution小燈泡看到。
3.2 串行通訊程序設計
首先是對串口的初始化設置:波特率為默認值9 600,8位數據位,1位停止位,無校驗位,串口號為1。當系統(tǒng)開啟時,通過VISA Write.vi向單片機發(fā)送“發(fā)送請求命令1”由于LabVIEW的串行通信子VI只允許對字符串的讀寫,因此在數據處理時,必須進行字符串與數字之間的正確轉換,在這里我們通過調用一個“組串”子VI來實現此轉換。在收到上位機的發(fā)送請求命令后,單片機則回應應答信號3,上位機通過VISA Read.vi節(jié)點讀取單片機的應答信號,并且判斷是否收到3來控制順序結構中的While循環(huán)。若上位機沒收到單片機的應答信號則重發(fā)“發(fā)送請求命令”,若收到應答信號則執(zhí)行順序結構的第二步。在順序結構第二步中,我們將通過VISA Read.vi讀取數據,用實時趨勢圖控件Waveform Chart顯示。圖3給出了上位機對PIC單片機進行讀操作的框圖程序。
4 前面板設計
LabVIEW中的前面板就是圖形化用戶界面,用于設置輸入數值和觀察輸出量。本系統(tǒng)的前面板中設置波特率、串口號、數據位和停止位為控件,用實時趨勢圖控件Waveform Chart來顯示下位機實時采集到的數據。如圖4所示,給出本系統(tǒng)的前面板設計。
5 結 語
在實際開發(fā)中,LabVIEW表現了很好的靈活性。尤其是利用其提供的外部接口,結合以單片機為核心組成的小系統(tǒng),可以很方便地完成數據采集及處理等功能,具有很強的工程實用性,可廣泛應用于測試控制領域。
評論