賀 靜,吳體輝
(運城學院物理與電子工程系,山西運城 044000)
隨著工農業(yè)科技的發(fā)展,溫度測量的需求越來越多,也越來越重要。通常測量溫度的方法是使用專用的儀表人為觀測、記錄處理數據并做出判斷。然而,專用儀表的電路往往比較復雜,測量精度受所選設備影響比較大,價格也比較昂貴。因此傳統的溫度檢測與控制已不能適應實際的要求[1]。如何將計算機與各種設施、設備結合,簡化人工操作并實現自動控制,成為迫切的問題。本文設計的實時溫度數據采集系統,通過將單片機與其他數據處理設備(如PC機)進行交換,解決了單片機處理數據的速度問題,提高了溫度數據采集的效率,并實現了對溫度數據的實時檢測和記錄。
單片機選擇AT89S52,它是一個低功耗、高性能CMOS 8位單片機,片內含8k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S52可為許多嵌入式控制應用系統提供高性價比的解決方案[2]。單片機的程序采用匯編語言,用查詢的方式采集溫度數據,并對采集的數據進行處理。
DS18B20是DALLAS公司生產的一線式數字溫度傳感器,測量溫度范圍為-55℃~+125℃,在-10℃~+85℃范圍內,精度為±0.5℃[3]。現場溫度直接以“一線總線”的數字方式傳輸,大大提高了系統的抗干擾性。適合于惡劣環(huán)境的現場溫度測量。它具有3引腳TO-92小體積封裝形式;溫度測量范圍為-55℃~+125℃,可編程為9位至12位A/D轉換精度,測溫分辨率可達0.0625℃,被測溫度16位數字量方式串行輸出;工作電源既可以在遠端引入,也可以采用寄生電源方式產生;多個DS18B20可以并聯到2根或3根線上,CPU只需一根端口線就能與諸多DS18B20進行通信,它占用微處理器的端口較少,可節(jié)省大量的邏輯電路和引線[4]。
MAX232是由德州儀器公司(TI)推出的一款兼容RS232標準的芯片。由于電腦串口RS232電平是-10v+10v,而一般的單片機應用系統的信號電壓是TTL電平0+5v,MAX232就是用來進行電平轉換的,該器件包含2驅動器、2接收器和一個電壓發(fā)生器電路提供TIA/EIA-232-F電平[5]。該器件符合TIA/EIA-232-F標準,每一個接收器將TIA/EIA-232-F電平轉換成5-V TTL/CMOS電平。每一個發(fā)送器將TTL/CMOS電平轉換成TIA/EIA-232-F電平。
系統分為兩部分:實時溫度數據采集終端(下位機硬件系統)和通信控制軟件(上位機軟件系統)。數據采集終端(下位機)主要由AT89S52、DS18B20、MAX232組成。溫度傳感器DS18B20將被測環(huán)境溫度轉化成帶符號的數字信號并傳送給單片機,同時將信號進行編碼傳送給上位機。
通信控制軟件(上位機)主要由微機、主控軟件等部分組成。上位機的控制界面采用Visual Basic6.0語言編寫,上位機通過串口與下位機通信。在VB6.0的控件工具箱中,提供了一個使用非常方便的串行通信控件MSComm,可以通過這個控件控制COM口進行通訊。
下位機檢測到現場溫度數據,傳送到上位機,上位機接收到數據,并對數據進行監(jiān)測。上位機可以接收下位機傳輸的不同的測量的值,并在監(jiān)控界面中顯示出來,使用戶能夠看到現場測量溫度的數值變化情況。
下位機部分主要由溫度傳感器、單片機等組成,在現場采集溫度信號,并將溫度信號轉換成數字信號,通過RS232接口標準傳送給上位機。溫度傳感器DS18B20的輸出線與單片機AT89S52的P3.3口相連。AT89S52的輸入端RXD和輸出端TXD分別從芯片的10口和11口引出,并與MAX232的輸出口12和輸入口11相連。MAX232的輸出口14和輸入口13分別與DB9的輸入口2和輸出口3相連。實現下位機AT89S52與上位機PC的連接。硬件電路見圖1所示。

圖1 溫度采集系統硬件原理圖

圖2 實物硬件電路板
通過這個電路,我們可以實現溫度的采集、傳輸,以及在上位機的顯示,使用戶能夠清晰地了解現場溫度的變化。實際電路板如圖2所示。
上位機的控制界面采用Visual Basic6.0語言編寫,通過COM口與下位機連接。將監(jiān)控到的溫度數據在監(jiān)控界面中顯示出來,使用戶能夠直觀地了解到現場溫度變化,并能夠保存采集到的溫度數據。而VB在程序界面設計、多媒體開發(fā)方面更是獨具優(yōu)勢。因此特別適合初學者和業(yè)余人員使用。
VB的設計界面包含5個Text文本框、 2個Frame、4個Label、3個Command、1個Mscomm控件和1個Time。Text1顯示的是當前接收數據的內容,Text2顯示的是所有接收到的數據,Text3顯示的是所有接收數據中的最高值,Text4顯示的是所有接收數據的最低值,Text5顯示的是所有接收數據的個數。Frame1的內容是接收溫度的最高、最低值,Frame2的內容是接收的溫度數據。Label1的內容是當前溫度,Label2的內容是溫度最高值,Label3的內容是溫度最低值,Label4的內容是數據個數。Command1的是接收按鈕,Command2的內容是清空按鈕,Command3是導出數據按鈕以EXCEL形式表示出來,其中VB的程序編寫比較簡單。程序主界面如圖3所示。

圖3 程序主界面

圖4 導出溫度數據列表
圖4顯示的是以EXCEL形式導出的數據圖,當我們點擊導出數據時程序便會以EXCEL形式將文本框中的內容表示出來,并保存到電腦中,為數據統計分析提供了方便。
本設計達到了預期效果,但是仍存在一些需要改進的地方,如:在設計中沒有實現多點數據同時采集,RS232接口訊距離小于15m,不能實現數據的遠距離傳輸等問題。數據傳輸距離較近的問題很大程度上限值了其應用范圍。為彌補RS-232之不足,EIA制訂RS-422串口標準,將傳輸距離延長到1000M,傳輸速率提高到10Mb/s,并允許在一條平衡的總線上最多連接10個接收器。這樣就能夠實現數據的遠距離傳輸,使該溫度數據采集系統應用的范圍更廣。
[1]朱望純,高海英.基于USB和單總線的溫度場測試[J].儀表技術與傳感器,2008(2):40-41.
[2]李鑒,黃大勇.基于CY7C68013的USB數據采集系統[J].微計算機信息,2009(25):97-98.
[3]張廣利,閻有運.基于AT89S52的USB數據采集系統的設計[J].儀器儀表用戶,2008(3):33-35.
[4]周沖,劉鎮(zhèn).基于AT89S52的USB數據采集系統的設計[J].科學技術與工程,2007,7(22):5935-5938.
[5]何東健,李書琴.Visual Basic程序設計教程[M].西安:西北大學出版社,2005.