賀 靜,吳體輝
(運(yùn)城學(xué)院物理與電子工程系,山西運(yùn)城 044000)
隨著工農(nóng)業(yè)科技的發(fā)展,溫度測(cè)量的需求越來(lái)越多,也越來(lái)越重要。通常測(cè)量溫度的方法是使用專用的儀表人為觀測(cè)、記錄處理數(shù)據(jù)并做出判斷。然而,專用儀表的電路往往比較復(fù)雜,測(cè)量精度受所選設(shè)備影響比較大,價(jià)格也比較昂貴。因此傳統(tǒng)的溫度檢測(cè)與控制已不能適應(yīng)實(shí)際的要求[1]。如何將計(jì)算機(jī)與各種設(shè)施、設(shè)備結(jié)合,簡(jiǎn)化人工操作并實(shí)現(xiàn)自動(dòng)控制,成為迫切的問(wèn)題。本文設(shè)計(jì)的實(shí)時(shí)溫度數(shù)據(jù)采集系統(tǒng),通過(guò)將單片機(jī)與其他數(shù)據(jù)處理設(shè)備(如PC機(jī))進(jìn)行交換,解決了單片機(jī)處理數(shù)據(jù)的速度問(wèn)題,提高了溫度數(shù)據(jù)采集的效率,并實(shí)現(xiàn)了對(duì)溫度數(shù)據(jù)的實(shí)時(shí)檢測(cè)和記錄。
單片機(jī)選擇AT89S52,它是一個(gè)低功耗、高性能CMOS 8位單片機(jī),片內(nèi)含8k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S52可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案[2]。單片機(jī)的程序采用匯編語(yǔ)言,用查詢的方式采集溫度數(shù)據(jù),并對(duì)采集的數(shù)據(jù)進(jìn)行處理。
DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,測(cè)量溫度范圍為-55℃~+125℃,在-10℃~+85℃范圍內(nèi),精度為±0.5℃[3]?,F(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量。它具有3引腳TO-92小體積封裝形式;溫度測(cè)量范圍為-55℃~+125℃,可編程為9位至12位A/D轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625℃,被測(cè)溫度16位數(shù)字量方式串行輸出;工作電源既可以在遠(yuǎn)端引入,也可以采用寄生電源方式產(chǎn)生;多個(gè)DS18B20可以并聯(lián)到2根或3根線上,CPU只需一根端口線就能與諸多DS18B20進(jìn)行通信,它占用微處理器的端口較少,可節(jié)省大量的邏輯電路和引線[4]。
MAX232是由德州儀器公司(TI)推出的一款兼容RS232標(biāo)準(zhǔn)的芯片。由于電腦串口RS232電平是-10v+10v,而一般的單片機(jī)應(yīng)用系統(tǒng)的信號(hào)電壓是TTL電平0+5v,MAX232就是用來(lái)進(jìn)行電平轉(zhuǎn)換的,該器件包含2驅(qū)動(dòng)器、2接收器和一個(gè)電壓發(fā)生器電路提供TIA/EIA-232-F電平[5]。該器件符合TIA/EIA-232-F標(biāo)準(zhǔn),每一個(gè)接收器將TIA/EIA-232-F電平轉(zhuǎn)換成5-V TTL/CMOS電平。每一個(gè)發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。
系統(tǒng)分為兩部分:實(shí)時(shí)溫度數(shù)據(jù)采集終端(下位機(jī)硬件系統(tǒng))和通信控制軟件(上位機(jī)軟件系統(tǒng))。數(shù)據(jù)采集終端(下位機(jī))主要由AT89S52、DS18B20、MAX232組成。溫度傳感器DS18B20將被測(cè)環(huán)境溫度轉(zhuǎn)化成帶符號(hào)的數(shù)字信號(hào)并傳送給單片機(jī),同時(shí)將信號(hào)進(jìn)行編碼傳送給上位機(jī)。
通信控制軟件(上位機(jī))主要由微機(jī)、主控軟件等部分組成。上位機(jī)的控制界面采用Visual Basic6.0語(yǔ)言編寫,上位機(jī)通過(guò)串口與下位機(jī)通信。在VB6.0的控件工具箱中,提供了一個(gè)使用非常方便的串行通信控件MSComm,可以通過(guò)這個(gè)控件控制COM口進(jìn)行通訊。
下位機(jī)檢測(cè)到現(xiàn)場(chǎng)溫度數(shù)據(jù),傳送到上位機(jī),上位機(jī)接收到數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行監(jiān)測(cè)。上位機(jī)可以接收下位機(jī)傳輸?shù)牟煌臏y(cè)量的值,并在監(jiān)控界面中顯示出來(lái),使用戶能夠看到現(xiàn)場(chǎng)測(cè)量溫度的數(shù)值變化情況。
下位機(jī)部分主要由溫度傳感器、單片機(jī)等組成,在現(xiàn)場(chǎng)采集溫度信號(hào),并將溫度信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),通過(guò)RS232接口標(biāo)準(zhǔn)傳送給上位機(jī)。溫度傳感器DS18B20的輸出線與單片機(jī)AT89S52的P3.3口相連。AT89S52的輸入端RXD和輸出端TXD分別從芯片的10口和11口引出,并與MAX232的輸出口12和輸入口11相連。MAX232的輸出口14和輸入口13分別與DB9的輸入口2和輸出口3相連。實(shí)現(xiàn)下位機(jī)AT89S52與上位機(jī)PC的連接。硬件電路見圖1所示。
圖1 溫度采集系統(tǒng)硬件原理圖
圖2 實(shí)物硬件電路板
通過(guò)這個(gè)電路,我們可以實(shí)現(xiàn)溫度的采集、傳輸,以及在上位機(jī)的顯示,使用戶能夠清晰地了解現(xiàn)場(chǎng)溫度的變化。實(shí)際電路板如圖2所示。
上位機(jī)的控制界面采用Visual Basic6.0語(yǔ)言編寫,通過(guò)COM口與下位機(jī)連接。將監(jiān)控到的溫度數(shù)據(jù)在監(jiān)控界面中顯示出來(lái),使用戶能夠直觀地了解到現(xiàn)場(chǎng)溫度變化,并能夠保存采集到的溫度數(shù)據(jù)。而VB在程序界面設(shè)計(jì)、多媒體開發(fā)方面更是獨(dú)具優(yōu)勢(shì)。因此特別適合初學(xué)者和業(yè)余人員使用。
VB的設(shè)計(jì)界面包含5個(gè)Text文本框、 2個(gè)Frame、4個(gè)Label、3個(gè)Command、1個(gè)Mscomm控件和1個(gè)Time。Text1顯示的是當(dāng)前接收數(shù)據(jù)的內(nèi)容,Text2顯示的是所有接收到的數(shù)據(jù),Text3顯示的是所有接收數(shù)據(jù)中的最高值,Text4顯示的是所有接收數(shù)據(jù)的最低值,Text5顯示的是所有接收數(shù)據(jù)的個(gè)數(shù)。Frame1的內(nèi)容是接收溫度的最高、最低值,F(xiàn)rame2的內(nèi)容是接收的溫度數(shù)據(jù)。Label1的內(nèi)容是當(dāng)前溫度,Label2的內(nèi)容是溫度最高值,Label3的內(nèi)容是溫度最低值,Label4的內(nèi)容是數(shù)據(jù)個(gè)數(shù)。Command1的是接收按鈕,Command2的內(nèi)容是清空按鈕,Command3是導(dǎo)出數(shù)據(jù)按鈕以EXCEL形式表示出來(lái),其中VB的程序編寫比較簡(jiǎn)單。程序主界面如圖3所示。
圖3 程序主界面
圖4 導(dǎo)出溫度數(shù)據(jù)列表
圖4顯示的是以EXCEL形式導(dǎo)出的數(shù)據(jù)圖,當(dāng)我們點(diǎn)擊導(dǎo)出數(shù)據(jù)時(shí)程序便會(huì)以EXCEL形式將文本框中的內(nèi)容表示出來(lái),并保存到電腦中,為數(shù)據(jù)統(tǒng)計(jì)分析提供了方便。
本設(shè)計(jì)達(dá)到了預(yù)期效果,但是仍存在一些需要改進(jìn)的地方,如:在設(shè)計(jì)中沒有實(shí)現(xiàn)多點(diǎn)數(shù)據(jù)同時(shí)采集,RS232接口訊距離小于15m,不能實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)距離傳輸?shù)葐?wèn)題。數(shù)據(jù)傳輸距離較近的問(wèn)題很大程度上限值了其應(yīng)用范圍。為彌補(bǔ)RS-232之不足,EIA制訂RS-422串口標(biāo)準(zhǔn),將傳輸距離延長(zhǎng)到1000M,傳輸速率提高到10Mb/s,并允許在一條平衡的總線上最多連接10個(gè)接收器。這樣就能夠?qū)崿F(xiàn)數(shù)據(jù)的遠(yuǎn)距離傳輸,使該溫度數(shù)據(jù)采集系統(tǒng)應(yīng)用的范圍更廣。
[1]朱望純,高海英.基于USB和單總線的溫度場(chǎng)測(cè)試[J].儀表技術(shù)與傳感器,2008(2):40-41.
[2]李鑒,黃大勇.基于CY7C68013的USB數(shù)據(jù)采集系統(tǒng)[J].微計(jì)算機(jī)信息,2009(25):97-98.
[3]張廣利,閻有運(yùn).基于AT89S52的USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].儀器儀表用戶,2008(3):33-35.
[4]周沖,劉鎮(zhèn).基于AT89S52的USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2007,7(22):5935-5938.
[5]何東健,李書琴.Visual Basic程序設(shè)計(jì)教程[M].西安:西北大學(xué)出版社,2005.