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