<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設計應用 > 基于LabVIEW的單片機溫度自動測試系統(tǒng)

          基于LabVIEW的單片機溫度自動測試系統(tǒng)

          作者: 時間:2012-07-30 來源:網(wǎng)絡 收藏

          1 引 言

          本文引用地址:http://www.ex-cimer.com/article/193497.htm

          是美國國家儀器公司(National Instru-ment)開發(fā)的一種虛擬儀器平臺,他是一種用圖標代碼來代替文本式編程語言創(chuàng)建應用程序的開發(fā)工具。Lab-VIEW功能強大,提供了豐富的數(shù)據(jù)采集、分析和存儲庫函數(shù)以及包括DAQ,GPIB,PXI,VXI,RS 232/485在內的各種儀器通信總線標準的所有功能函數(shù)。利用設計的數(shù)據(jù)采集系統(tǒng),可模擬采集各種信號,但是配備NI公司的數(shù)據(jù)采集板卡比較貴,在實際開發(fā)中可選用小系統(tǒng)對數(shù)據(jù)進行采集。

          冷庫是發(fā)展冷藏業(yè)的基礎設施,也是在低溫條件下貯藏貨物的建筑群。食品保鮮主要以食品冷藏鏈為主,將易腐畜禽、水產、果蔬、速凍食品通過預冷、加工、貯存和冷藏運輸,有效地保持食品的外觀、色澤、營養(yǎng)成分及風味物質,達到食品保質保鮮,延長食品保存期的目的,起到調劑淡、旺季市場的需求并減少生產與銷售過程中經(jīng)濟損耗的作用。在這些實際應用中,是冷庫的一個很重要的指標,因此,本文設計了一種基于,并對其系統(tǒng)的組成、實現(xiàn)給出了詳細描述。

          2 系統(tǒng)的組成結構及工作原理

          本系統(tǒng)的數(shù)據(jù)采集系統(tǒng)由傳感器和AT89C51以及MAX232組成。由單片機組成的小系統(tǒng)對溫度信號進行采

          集、調理和轉換,然后通過RS 232串口通訊將數(shù)據(jù)送給計算機,在LabVIEW開發(fā)平臺下,對數(shù)據(jù)進行各種處理、分析,并對信號進行存儲、顯示和打印,最后由PC機顯示實時測量的冷庫的8個冷凍室的溫度,從而實現(xiàn)了一種在Lab-VIEW環(huán)境下的單片機溫度

          2.1 硬件電路設計

          系統(tǒng)的硬件電路如圖1所示,采用AT89C51作為主芯片,溫度傳感器選用由美國AD公司生產的集成電路溫度傳感器AD590,該溫度傳感器具有體積小、測溫精度高、穩(wěn)定性好、反應速度快、線性度好、能進行遠距離傳送和價格低廉等優(yōu)點。這種溫度傳感器特別容易和微電腦配合,組成自動測溫系統(tǒng)。放大電路選用AD627,將被測溫度轉換并放大到0~5 V范圍,然后送到A/D轉換器的輸入端。由于溫度的變化比較緩慢,因此在系統(tǒng)中可以不用采樣/保持器。模數(shù)轉換電路選用內部帶有鎖存器和8路模擬開關的ADC0809,他的分辨率為1/256,完全能滿足分辨率為±1℃的要求。

          11.jpg

          啟動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位數(shù)據(jù)讀人到CPU中。

          2.2 軟件設計

          系統(tǒng)軟件設計主要包括主程序、中斷服務子程序等。軟件流程圖如圖2所示。

          22.jpg

          主程序的功能:負責整個系統(tǒng)的管理工作,如對89C51外部中斷方式進行設置,建立數(shù)據(jù)指針,置通道初值,啟動A/D轉換和上位機進行通訊等。

          中斷服務程序的功能:讀取A/D轉換后的數(shù)據(jù),更改通道號及數(shù)據(jù)存儲器地址指針并判斷8個通道是否采集完畢,未完則繼續(xù)啟動下一個通道;若8個通道已轉換完畢,則重新設置通道號初值,再次啟動IN0通道。

          3 LabVIEW下的串行通訊設計

          3.1 VISA介紹

          由于使用計算機控制的儀器逐步增多,出現(xiàn)了許多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ū)寫入數(shù)據(jù)的子VI;

          (3)VISA Read:VI從串行口設備中讀取數(shù)據(jù)的子VI;

          (4)VISA Close:VI關閉串行口的子VI;

          (5)VISA Bytes at Serial Port:VI返回指定串行口中輸入緩沖區(qū)內的字節(jié)數(shù)子VI;

          (6)VISA Serial Break:VI串行口中斷子VI。

          LabVIEW是基于圖形化的程序設計語言,程序的核心代碼是類似于流程圖的方框圖和線條的連接。每個方框圖代表一個功能模塊即子VI,程序執(zhí)行的過程是條件滿足方式,當一個功能模塊的所有輸入都齊備后,此功能模塊產生輸出,傳送給下

          一個模塊。程序的動態(tài)流程可以通過點亮Block Diagram工具欄上的Highlight Execution小燈泡看到。

          3.2 串行通訊程序設計

          首先是對串口的初始化設置:波特率為默認值9 600,8位數(shù)據(jù)位,1位停止位,無校驗位,串口號為1。當系統(tǒng)開啟時,通過VISA Write.vi向單片機發(fā)送“發(fā)送請求命令1”由于LabVIEW的串行通信子VI只允許對字符串的讀寫,因此在數(shù)據(jù)處理時,必須進行字符串與數(shù)字之間的正確轉換,在這里我們通過調用一個“組串”子VI來實現(xiàn)此轉換。在收到上位機的發(fā)送請求命令后,單片機則回應應答信號3,上位機通過VISA Read.vi節(jié)點讀取單片機的應答信號,并且判斷是否收到3來控制順序結構中的While循環(huán)。若上位機沒收到單片機的應答信號則重發(fā)“發(fā)送請求命令”,若收到應答信號則執(zhí)行順序結構的第二步。在順序結構第二步中,我們將通過VISA Read.vi讀取數(shù)據(jù),用實時趨勢圖控件Waveform Chart顯示。圖3給出了上位機對PIC單片機進行讀操作的框圖程序。

          33.jpg

          4 前面板設計

          LabVIEW中的前面板就是圖形化用戶界面,用于設置輸入數(shù)值和觀察輸出量。本系統(tǒng)的前面板中設置波特率、串口號、數(shù)據(jù)位和停止位為控件,用實時趨勢圖控件Waveform Chart來顯示下位機實時采集到的數(shù)據(jù)。如圖4所示,給出本系統(tǒng)的前面板設計。

          44.jpg

          5 結 語

          在實際開發(fā)中,LabVIEW表現(xiàn)了很好的靈活性。尤其是利用其提供的外部接口,結合以單片機為核心組成的小系統(tǒng),可以很方便地完成數(shù)據(jù)采集及處理等功能,具有很強的工程實用性,可廣泛應用于測試控制領域。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();