葉 冉
(長安大學(xué)電子與控制工程學(xué)院,陜西西安710064)
水箱在現(xiàn)代生活中有著廣泛的用途,如作為城市、鄉(xiāng)村生活用水儲備,太陽能熱水器儲水設(shè)備等。傳統(tǒng)的水箱采用PLC為控制單元,實現(xiàn)供水自動控制,但PLC價格相對較高,所以采用價格低廉的51單片機(jī)來控制是一種既達(dá)標(biāo)又經(jīng)濟(jì)的方式。
高低位水箱供水的主要問題是箱內(nèi)水位應(yīng)始終保持在一定范圍,避免“空箱”“溢水”現(xiàn)象的發(fā)生。本設(shè)計采用單片機(jī)系統(tǒng)控制,使水箱內(nèi)水位保持恒定,以保證連續(xù)正常地供水,達(dá)到智能控制的目的。另外,本設(shè)計采用STC89C52單片機(jī)和實際硬件接線來模擬,較好地實現(xiàn)了實際生活中的供水要求。
系統(tǒng)設(shè)計要求如下:
(1)高低位水箱均設(shè)水位信號器。高位水箱水位達(dá)到低位,低位水箱水位達(dá)到高位時,水泵啟動;高位水箱水位達(dá)到高位或低位水箱水位達(dá)到低位時,水泵停止。
(2)系統(tǒng)具有手動、自動工作模式。
(3)兩臺水泵分工作泵和備用泵,可以互換,只有一臺水泵工作。當(dāng)工作泵出現(xiàn)故障時,備用泵自投。
(4)操作面板提供設(shè)備運(yùn)行狀態(tài)、水位及報警的各種指示。
(5)操作面板可以設(shè)定工作泵和備用泵。
(6)設(shè)備操作面板顯示當(dāng)前的溫度和時間,時間可設(shè)定。
(7)出現(xiàn)故障時,把故障信息上傳到監(jiān)視器,包括時間、故障點、故障類型等。
單片機(jī)最小系統(tǒng)原理圖如圖1所示。
高、低位水箱均設(shè)水位信號器,用來檢測水位,本設(shè)計中采用撥碼開關(guān)來模擬水位信號。實驗中的撥碼開關(guān)選擇四位撥碼開關(guān),其中1號開關(guān)撥向左側(cè)表示高位水箱水位達(dá)到低位,撥向右側(cè)表示高位水箱水位達(dá)到高位;2號開關(guān)撥向左側(cè)表示低位水箱水位達(dá)到高位,撥向右側(cè)表示低位水箱水位達(dá)到低位。將1號和2號開關(guān)通過端子排J1分別與單片機(jī)的P1.4、P1.5口連接,讀取P1.4、P1.5口的狀態(tài),即可模擬水位檢測。
模式切換由和單片機(jī)P1.6口相連的3號開關(guān)來控制。當(dāng)3號開關(guān)撥向右側(cè),此時P1.6為0,自動模式,水泵的啟停受水位信號器控制。當(dāng)3號開關(guān)撥向左側(cè),此時P1.6為1,手動模式,水泵的啟停不受水位信號器控制,而是由啟停按鈕控制,便于工作人員檢修時使用。若P1.7=0,則1號泵為工作泵,2號泵為備用泵,按下按鈕S1,1號泵啟動,按下S2,1號泵停止。若P1.7=1,則2號泵為工作泵,1號泵為備用泵,按下按鈕S1,2號泵啟動,按下S2,2號泵停止。通過不斷讀取P1.6口的狀態(tài),可以實現(xiàn)水泵的自動與手動模式切換。
本系統(tǒng)有兩臺水泵,正常情況下,1號泵為工作泵,2號泵為備用泵。當(dāng)需要進(jìn)行水泵切換時,將4號開關(guān)撥向左側(cè),并將4號開關(guān)通過端子排J1與P1.7口連接,若P1.7狀態(tài)為1,2號泵為工作泵,1號泵為備用泵,讀取P1.7口的狀態(tài),即可實現(xiàn)水泵切換。
本系統(tǒng)用51單片機(jī)兩個外部事件中斷INT0、INT1來模擬水泵發(fā)生故障,將P3.2、P3.3通過杜邦線引出。模擬1號泵發(fā)生故障時,將與P3.3相連的杜邦線接地,觸發(fā)中斷,則數(shù)碼管顯示“1”,表示1號泵故障,蜂鳴器報警,紅色LED點亮,同時2號泵自動投入運(yùn)行。模擬2號泵發(fā)生故障時,將與P3.2相連的杜邦線接地,觸發(fā)中斷,則數(shù)碼管顯示“2”,表示2號泵故障,蜂鳴器報警,紅色LED點亮,同時1號泵自動投入運(yùn)行。此外還需發(fā)送故障信息,本系統(tǒng)使用STC-ISP軟件上的串口助手來模擬監(jiān)視器。使用時,將波特率調(diào)到9 600,接收和發(fā)送緩沖區(qū)都選擇文本模式,當(dāng)故障發(fā)生時,即觸發(fā)兩個外部事件中斷,在計算機(jī)屏幕上就會顯示發(fā)生故障的時間和故障的水泵序號。
本系統(tǒng)設(shè)置了水泵運(yùn)行狀態(tài)、水位及報警指示。控制水泵運(yùn)行的信號從P3.5、P3.6口輸出,P3.5口控制水泵1,P3.6口控制水泵2。由于單片機(jī)輸出的高電平帶負(fù)載能力弱,故需要通過L298N來驅(qū)動電機(jī),該驅(qū)動剛好可以同時驅(qū)動兩個直流電機(jī)。具體做法是:從上述最小系統(tǒng)板上將+5 V和0 V通過杜邦線分別接到L298N的Vcc和GND端,給驅(qū)動L298N上電,再將單片機(jī)的P3.5、P3.6口接到L298N的輸入端。L298N的兩個輸出OUTA、OUTB分別接到兩個直流電機(jī)上,并將兩個LED燈分別并聯(lián)在兩個電機(jī)上。這樣,當(dāng)電機(jī)運(yùn)行時,相應(yīng)的LED指示燈點亮。
圖1 單片機(jī)最小系統(tǒng)原理圖
在撥碼開關(guān)處引出端子排,并將單片機(jī)P1.4、P1.5口的輸出信號引出,接到另外兩個LED燈的正極,兩個LED燈的負(fù)極接地。1號開關(guān)撥向左側(cè),P1.4為1,水位指示燈1點亮,1號開關(guān)撥向右側(cè),P1.4為0,水位指示燈1熄滅;2號開關(guān)撥向左側(cè),P1.5為1,水位指示燈2點亮,2號開關(guān)撥向右側(cè),P1.5為0,水位指示燈2熄滅。
當(dāng)發(fā)生故障時(以1號泵故障,2號泵自動投入運(yùn)行為例),給P1賦值#06H,則CBA=110,74LS245的B6輸出低電平,蜂鳴器發(fā)出聲音;給P1賦值#07H,則CBA=111,74LS245的B7輸出低電平,紅色LED點亮,完成報警,提醒維護(hù)人員前去檢修。
時間由6個數(shù)碼管來顯示,依次為時、分、秒,溫度由2個數(shù)碼管來顯示。單片機(jī)P1.2、P1.1、P1.0的輸出分別與74LS138的CBA相連,來選擇點亮對應(yīng)的數(shù)碼管,CBA值為000~111,依次選擇數(shù)碼管1~6(從左至右)。
單片機(jī)上電后,開始顯示時間。按下S3,進(jìn)入時間調(diào)整狀態(tài)。在此基礎(chǔ)上,按下S4,時加1,按下S5,分加1,按下S6,秒加1。時間調(diào)整結(jié)束后,再次按下S3,回到時間顯示模式。
本系統(tǒng)溫度傳感器為DS18B20,采集溫度后,從單片機(jī)的的P1.3口輸入。在時間顯示時,按下S7,調(diào)用溫度顯示程序,延時1 s,1 s后自動返回時間顯示。
本系統(tǒng)設(shè)計是基于51單片機(jī)嵌入式系統(tǒng),充分利用51單片機(jī)強(qiáng)大的控制功能和通信接口,經(jīng)濟(jì)可靠。該控制系統(tǒng)以實際的硬件模擬,并用匯編語言編寫了程序,所有程序都是無限循環(huán),將每一項要求模塊化,執(zhí)行時,直接調(diào)用相應(yīng)的子函數(shù)即可,實驗最終達(dá)到了預(yù)期效果,具有很強(qiáng)的實用性。因此,該控制系統(tǒng)在農(nóng)村水塔、水源檢測控制和城市生活儲備用水系統(tǒng)開發(fā)等領(lǐng)域有著廣闊的應(yīng)用前景。
[1]段晨東.單片機(jī)原理及接口技術(shù)[M].2版.北京:清華大學(xué)出版社,2013.
[2]馬小軍.建筑電氣控制技術(shù)[M].2版.北京:機(jī)械工業(yè)出版社,2012.