李天鷹+張壯
摘要:介紹了以STC12C5A為處理器的水位監(jiān)控系統(tǒng)設(shè)計(jì)。首先將變送器WRT~136的水位壓力信號轉(zhuǎn)變?yōu)?~20mA的電流信號,其次經(jīng)電流/電壓轉(zhuǎn)換電路轉(zhuǎn)換為0~5V模擬電壓信號,0~5V的模擬電壓信號再次通過模/數(shù)電路AD0805將模擬信號轉(zhuǎn)換為單片機(jī)可以識別的數(shù)字信號。主控芯片STC12C5A對數(shù)字量讀取和處理后,將水位信息傳送給數(shù)碼管進(jìn)行顯示。
關(guān)鍵詞:單片機(jī);水位監(jiān)控系統(tǒng);電流信號;水位變送器
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A
文章編號:16727800(2017)004014203
0引言
在我國社會經(jīng)濟(jì)飛速發(fā)展的過程中,水在人們生活實(shí)踐中具有極其重要的作用,隨著人們對水的需求量越來越大,水資源也相對越來越少,我國水資源的人均占有量遠(yuǎn)遠(yuǎn)少于世界水資源人均占有量。據(jù)統(tǒng)計(jì),我國目前大約有80%以上的大中城市,甚至許多鄉(xiāng)鎮(zhèn)都面臨缺水或嚴(yán)重缺水,這嚴(yán)重制約了我國工農(nóng)業(yè)的發(fā)展。因此,節(jié)約用水勢在必行。 目前我國的水供給方式多種多樣,但水塔供水系統(tǒng)是最基本的供水方式。該供水方式應(yīng)用廣、耗能大、水資源集約化使用程度不高,且水資源浪費(fèi)嚴(yán)重,這與我國提倡建立環(huán)境友好型與資源集約型社會相悖。因此,基于自動控制原理的水位控制系統(tǒng)會根據(jù)水塔供水的水位變化,不斷自動調(diào)節(jié)供水量,既滿足了用戶的日常用水需求,又能提高用水質(zhì)量。水位控制系統(tǒng)優(yōu)點(diǎn)很多,如結(jié)構(gòu)簡單、造價低、安裝簡便,可以遠(yuǎn)距離監(jiān)控水位,既方便工作人員遠(yuǎn)程監(jiān)控,又能節(jié)約資源。水位控制系統(tǒng)是一種實(shí)用性很強(qiáng)的自動控制設(shè)備,它使用STC12C5A單片機(jī)作為控制器,非常方便地實(shí)現(xiàn)了水位自動控制[1]。以往是由工作人員于低水箱進(jìn)行操作,無法對水位進(jìn)行時時監(jiān)控與自動控制。水位控制系統(tǒng)可以對水位進(jìn)行本地監(jiān)控和遠(yuǎn)程監(jiān)控,工作人員可以足不出戶地實(shí)時監(jiān)控遠(yuǎn)處的供水情況,不僅大大降低了工作人員工作強(qiáng)度,也最大限度地避免了意外發(fā)生,提高了生產(chǎn)效率,極大地減少了資源浪費(fèi)。
1水位監(jiān)控系統(tǒng)硬件電路設(shè)計(jì)
基于單片機(jī)的水位監(jiān)控系統(tǒng)必須滿足水位控制精度高、工作安全可靠,并能實(shí)時顯示當(dāng)前水位的要求。因此,基于單片機(jī)的水位監(jiān)控系統(tǒng)的硬件電路主要包括信號采集處理電路模塊、主電路模塊、顯示模塊與電源供電模塊等[2]。
1.1信號采集電路設(shè)計(jì)
信號采集是水位控制系統(tǒng)的重要組成部分,信息必須進(jìn)行及時準(zhǔn)確的采集,因此水位傳感器的選擇非常關(guān)鍵。在水位監(jiān)控過程中,首先水位傳感器將需測量的水位壓力信號轉(zhuǎn)換為4~20mA的電流信號,電流信號通過電流/電壓變送器轉(zhuǎn)換成為0~5V的模擬電壓信號。水位監(jiān)控系統(tǒng)設(shè)計(jì)利用液位傳感器WRT~136進(jìn)行信號采集工作,WRT~136將水位壓力信息通過傳感器自身的轉(zhuǎn)換電路轉(zhuǎn)換成4~20mA的標(biāo)準(zhǔn)電流信號并輸出。電流/電壓轉(zhuǎn)換電路中采用ISO EMS4-P3-04轉(zhuǎn)換模塊芯片,這種轉(zhuǎn)換芯片是磁、電隔離形式的集成混合電路,該隔離形式的混合電路在芯片上集成了多個DC/DC電源和信號隔離磁電耦合放大器。其電路優(yōu)點(diǎn)是抗干擾能力強(qiáng),且供電電源為常用的5V電源,可以和單片機(jī)共用一組電源,而無需另設(shè)電源。由于單片機(jī)STC12C5A只能讀取0~5V的電壓數(shù)字信號,故經(jīng)過電流/電壓轉(zhuǎn)換電路的0~5V模擬信號不能被單片機(jī)識別,還必須經(jīng)過模/數(shù)轉(zhuǎn)換電路將模擬信號轉(zhuǎn)換成單片機(jī)可以識別和處理的數(shù)字信號。此水位監(jiān)控系統(tǒng)設(shè)計(jì)使用的A/D轉(zhuǎn)換電路采用8位的ADC0805芯片[3]。
ADC0805是一種常用的逐次逼近的模擬量/數(shù)字量轉(zhuǎn)換電路,它可以和STC12C5A單片機(jī)直接相接。ADC0805對模擬量輸入有一定要求,首先要求輸入的模擬量在轉(zhuǎn)換過程中保持恒定不變,若模擬量變化過快,則必須在信號輸入之前增加采樣保持電路;其次,要求信號具有單極性,電壓范圍為0~5V,若信號太小,則必須加裝信號放大電路對信號進(jìn)行放大。ADC0805和STC12C5A單片機(jī)接口時,輸入通道的選擇有兩種方法,通過數(shù)據(jù)總線選擇或通過地址總線選擇[4]。具體信號采集電路設(shè)計(jì)及硬件之間的接線如圖1所示。
1.2主電路設(shè)計(jì)
水位監(jiān)控系統(tǒng)主電路采用性能較好的單片機(jī)STC12C5A為電路控制核心,選用11.059 2MHz內(nèi)部晶振,并采用上電復(fù)位和手動復(fù)位兩種復(fù)位方式,通過4位的撥碼開關(guān)設(shè)置來控制水位本地控制的地址。主電路設(shè)計(jì)電路如圖2所示。
1.3水位監(jiān)控系統(tǒng)顯示電路
監(jiān)控系統(tǒng)要求實(shí)時顯示當(dāng)前水位信息,信息顯示可以采用本地顯示或遠(yuǎn)程水位信息顯示。其中,水位信息的本地顯示采用常用的驅(qū)動電路MAX7221來驅(qū)動8位數(shù)碼管,并進(jìn)行動態(tài)顯示,如圖3所示。
2水位監(jiān)控系統(tǒng)程序設(shè)計(jì)流程
程序設(shè)計(jì)是水位監(jiān)控系統(tǒng)能否實(shí)現(xiàn)其功能的關(guān)鍵部分,水位監(jiān)控系統(tǒng)的程序設(shè)計(jì)采用C程序的模塊化設(shè)計(jì)思想,包含:主程序模塊設(shè)計(jì)、模/數(shù)轉(zhuǎn)換程序模塊設(shè)計(jì)、初始化程序模塊設(shè)計(jì)、數(shù)據(jù)處理程序模塊設(shè)計(jì),以及顯示、通信和定時程序等模塊化設(shè)計(jì)。模塊化設(shè)計(jì)可簡化程序流程,并增強(qiáng)程序的可讀性。
采用定時發(fā)送的方式是水位監(jiān)控系統(tǒng)數(shù)據(jù)處理的主要方式之一,通過單片機(jī)P1口的撥碼開關(guān)設(shè)定地址字節(jié),發(fā)送格式如表1所示。通過選擇撥碼開關(guān)的位置,即可選擇遠(yuǎn)端或近端的水位顯示[5]。
圖4為發(fā)送數(shù)據(jù)程序流程圖,程序按開始字節(jié)、地址數(shù)據(jù)、壓力數(shù)據(jù)、結(jié)束字節(jié)等順序依次從單片機(jī)STC12C5A的串行通信接口進(jìn)行發(fā)送。通過標(biāo)志位TI來識別數(shù)據(jù)發(fā)送,若未發(fā)送則TI=1,每次重新發(fā)送時,需將TI清零[6]。 定時器T0的中斷服務(wù)程序流程如下:程序開始時要重新給定時器T0賦初值,并判斷是否到1s,未到1s則退出,否則繼續(xù)調(diào)用程序發(fā)送相應(yīng)數(shù)據(jù),并恢復(fù)T-n的值[7]。 水位監(jiān)控系統(tǒng)主程序流程如圖5所示。上電后首先對定時器、單片機(jī)的串行通信接口和顯示驅(qū)動電路初始化,然后進(jìn)入循環(huán)程序讀取A/D轉(zhuǎn)換電壓值,經(jīng)過數(shù)據(jù)處理后,將水位信息通過顯示電路進(jìn)行實(shí)時顯示[8]。
3結(jié)語
基于單片機(jī)的水位監(jiān)控系統(tǒng)設(shè)計(jì)的信號采集采用了WRT-136,它是一種靜壓液位變送器傳感器,通過檢測液位靜壓力來確定液位高度。測量原理的公式為P=Po+ρgh,其中Po是液面處的大氣壓,ρ為待測液體密度,H為待測液體深度,g為常量,表示重力加速度值。當(dāng)液面處的大氣壓力為定值時,則壓力值P由液體密度ρ和液位高度H決定。當(dāng)密度ρ固定時,液位H與壓力P成比例關(guān)系。液位傳感器WRT-136自身的轉(zhuǎn)換電路可以將水位信號放大并轉(zhuǎn)換成相應(yīng)的4~20mA。如果水面以上的大氣壓Po有變化,WRT-136將感受到與水位變化相同效果的影響。水位傳感器WRT-136采用通心透氣電纜的方式設(shè)計(jì),當(dāng)外部大氣壓進(jìn)入傳感器感壓面一側(cè)時,WRT~136將水壓力值轉(zhuǎn)換為4~20mA的電流信號,并通過電流/電壓變換器將4~20mA的電流信號轉(zhuǎn)換為0~5V的模擬電壓信號,模擬電壓信號再經(jīng)模/數(shù)轉(zhuǎn)換電路ADC0805轉(zhuǎn)換為單片機(jī)能接受的數(shù)字電壓信號,利用單片機(jī)STC12C5A讀取水位值,并顯示在數(shù)碼管上。在設(shè)計(jì)中AD0805輸出0~5V數(shù)字電壓信號與水壓力之間是近似線性關(guān)系,單片機(jī)STC12C5A處理過程中需要考慮這種對應(yīng)關(guān)系和相應(yīng)運(yùn)算關(guān)系。
基于單片機(jī)STC12C5A的水位監(jiān)控系統(tǒng)設(shè)計(jì)與制作還需要更細(xì)化的設(shè)計(jì)。例如在程序的優(yōu)化設(shè)計(jì)上還需做更多工作,液位測量的算法需要更加完善,以及在如何消減噪聲和干擾、使工作更穩(wěn)定可靠方面也需要有更多創(chuàng)新。
參考文獻(xiàn):[1]明光,張欣.傳感器電路基本應(yīng)用[M].北京:電子工業(yè)出版社,2005:125126.
[2]郭天祥.51單片機(jī)C語言教程[M].北京:電子工業(yè)出版社,2008:210300.
[3]薛定宇.反饋控制系統(tǒng)設(shè)計(jì)與分析[M].北京:清華大學(xué)出版社,2000.
[4]李樹榮.一類非線性系統(tǒng)的全局反饋鎮(zhèn)定[J].石油大學(xué)學(xué)報(bào),1997,21(4):7477.
[5]盧強(qiáng),孫元章.計(jì)算機(jī)程序算法導(dǎo)論[M].北京:科學(xué)出版社,1993.
[6]ANALOG DEVICE.ADuC841_2_3_a data sheet[M].Analog Device,2011:5051.
[7]Oversampling techniques using the TMS320C24x family[M].Literature Number:SPRA461 Texas Instruments Europe,2010:8091.
[8]WILLIAM A ROSS.The impact of next generation test technology on aviation maintenance[C].AUTOCON,2003:202214.
(責(zé)任編輯:黃?。?