?!∶?崔永進,王昊遠
(上海理工大學 光電信息與計算機工程學院,上?!?00093)
基于單片機的水位監(jiān)控系統(tǒng)仿真設(shè)計
常敏,崔永進,王昊遠
(上海理工大學 光電信息與計算機工程學院,上海200093)
摘要文中論述了以STC89C52單片機為核心的水位監(jiān)控系統(tǒng),水位信號由超聲波測距模塊DYP-ME007采集,通過單片機及LCD1602實時顯示水位。針對其特點設(shè)計電路接口,運用相關(guān)算法進行軟件編程,并在Proteus環(huán)境下進行實際仿真測試。仿真結(jié)果表明,該系統(tǒng)能實現(xiàn)對水位的實時顯示、處理和報警功能,且具有簡單可靠,抗干擾性及可移植性強等特點。
關(guān)鍵詞單片機;水位監(jiān)測控制;1602液晶顯示;Proteus仿真
Simulation Design of Water Level Monitoring System Based on MCU
CHANG Min,CUI Yongjin,WANG Haoyuan
(School of Optical-Electrical and Computer Engineering,University of Shanghai for
Science and Technology,Shanghai 200093,China)
AbstractThe water level monitoring system based on STC89C52 microcontroller is discussed in this paper.The water level signal is gathered by the ultrasonic ranging module DYP-ME007 and the level displayed continuously through the monolithic integrated circuit and LCD1602.The software programming of the interface circuit is performed using the related algorithm and simulated in Proteus.The result indicates that this system can realize real-time display,processing and alarm functions,and has the characteristics of simple structure,reliable operation,good anti-interference performance and portability.
KeywordsMCU;water level monitoring and control;LCD1602;Proteus simulation
水是生產(chǎn)、生活中必不可少的物質(zhì),而對水位的檢測與控制關(guān)系到生產(chǎn)、生活正常進行[1]。隨著新型電子技術(shù)和微型計算機的應用,單片機控制系統(tǒng)以其控制精度高、造價低等特點,被廣泛應用于水位系統(tǒng)控制中[2]。
1系統(tǒng)硬件設(shè)計
該系統(tǒng)由電源電路、超聲波測距模塊[3-4]、單片機系統(tǒng)、1602液晶顯示電路、光報警電路、繼電器控制水泵加水電路以及串口通訊電路等共同組成,實現(xiàn)對水位的實時顯示、處理和報警功能。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 水位監(jiān)控系統(tǒng)結(jié)構(gòu)框圖
系統(tǒng)正常工作時,單片機STC89C52[5]編程產(chǎn)生10 μs以上的高電平信號,由P1.0端口[6]輸送給超聲波測距模塊的Trig端口,觸發(fā)超聲波測距模塊發(fā)射超聲波,當超聲波遇到被測水面時,會被反射回到超聲波測距模塊的接收探頭;超聲波測距模塊的Echo端口與單片機P3.2端口連接,利用單片機記錄超聲波發(fā)射的時間和接收到回波的時間,進而計算得到水位高度。當水位處于下限時,單片機輸出一個低電平信號,驅(qū)動水泵加水并使紅燈變亮;當水位在設(shè)定的正常范圍內(nèi)時,綠燈變亮;當水位處于設(shè)定上限時,單片機停止驅(qū)動,黃燈亮。如此不斷地周期測量,便可達到實時顯示水位及處理報警功能。系統(tǒng)硬件電路如圖2所示。
圖2 水位監(jiān)控系統(tǒng)硬件電路圖
2系統(tǒng)軟件設(shè)計
系統(tǒng)的軟件設(shè)計[7]主要包括程序初始化、時間設(shè)定子程序、水位信號處理程序、液晶顯示程序、繼電器控制程序和光報警程序等。系統(tǒng)程序流程如圖3所示。
圖3 程序流程圖
水位監(jiān)控系統(tǒng)主要算法實現(xiàn):
在初始化以及調(diào)用激發(fā)超聲波模塊程序后,單片機T1開始計時,待接收信號完成后,激發(fā)外部中斷0,響應中斷子程序,T1計時停止,此時進行數(shù)據(jù)調(diào)控并實時顯示水位。其中,系統(tǒng)處于正常水位時有兩種情況:由下限水位到正常水位時,繼電器不會斷開,驅(qū)動水泵繼續(xù)加水;由上限水位變?yōu)檎K?繼電器斷開,水泵不工作。水位控制實現(xiàn)算法如圖4所示。
圖4 水位控制實現(xiàn)
3Protues系統(tǒng)仿真
由于Protues中沒有超聲波模塊:DYP-ME007,根據(jù)系統(tǒng)工作原理,在P1.0端口給DYP-ME007發(fā)射端加一個20 μs以上的高電平,然后在接收端P3.2端口開始計時等待高電平輸出,當此端口變低電平讀出定時器的值即為測距時間,因此可用不同頻率脈沖代替超聲波測距模塊所發(fā)出信號輸送給單片機的P3.2端口,實現(xiàn)對水位各狀態(tài)的仿真。
將Keil軟件編譯生成的hex文件加載到單片機芯片中,設(shè)定單片機時鐘工作頻率為12 MHz,在Proteus軟件環(huán)境下進行實際仿真測試[8-10]。待機狀態(tài)下,P1.0和P3.2端口均顯示低電平,LCD顯示W(wǎng)L:CM,符合設(shè)計要求。待機狀態(tài)仿真結(jié)果如圖5所示。
圖5 待機狀態(tài)仿真結(jié)果
系統(tǒng)處于下限水位時,紅燈亮,LCD實時顯示水位并標記狀態(tài)“L”,光電耦合器工作,繼電器閉合,水泵處于運行狀態(tài)。下限水位狀態(tài)仿真結(jié)果如圖6所示。
圖6 下限水位狀態(tài)仿真結(jié)果
正常水位分兩種情況:由上限水位變?yōu)檎K粫r,綠燈亮,LCD實時顯示水位并標記狀態(tài)“M”,繼電器斷開,水泵不工作;由下限水位變?yōu)檎K粫r,繼電器依舊處于閉合狀態(tài),水泵處于運行狀態(tài),水塔水位會繼續(xù)增高。正常水位狀態(tài)仿真結(jié)果如圖7所示。
圖7 正常水位狀態(tài)仿真結(jié)果
系統(tǒng)處于上限水位時,黃燈亮,LCD實時顯示水位并標記狀態(tài)“H”,光電耦合器未導通,繼電器處于斷開狀態(tài),水泵不工作。上限水位狀態(tài)仿真結(jié)果如圖8所示。
圖8 上限水位狀態(tài)仿真結(jié)果
4結(jié)束語
該系統(tǒng)能成功實現(xiàn)水位的實時顯示、處理和報警功能,控制水位高度始終處于較理想的范圍內(nèi),且具有結(jié)構(gòu)簡單、制造成本低、靈敏度高、可移植性強等優(yōu)點,對實現(xiàn)水位自動檢測和控制具有實際的應用價值。該系統(tǒng)不僅可用于水位監(jiān)控,在其他液位檢測控制系統(tǒng)中同樣適用。
參考文獻
[1]唐靈軍,唐杰,諶超,等.基于單片機的水位控制系統(tǒng)設(shè)計[J].電子設(shè)計工程,2012,20(8):62-64.
[2]馬俊,陳靖.基于單片機的水塔水位檢測控制系統(tǒng)仿真設(shè)計[J].電子設(shè)計工程,2009,17(4):85-89.
[3]郁友文,常建.傳感器原理及工程應用[M].西安:西安電子科技大學出版社,2008.
[4]王俊杰.傳感器與檢測技術(shù)[M].北京:清華大學出版社,2011.
[5]汪桂平,李登峰.新編單片機原理及應用[M].北京:機械工業(yè)出版社,2009.
[6]李朝青.單片機原理及接口技術(shù)[M].3版.北京:北京航空航天大學出版社,2005.
[7]周雅靜.C語言程序設(shè)計實用教程[M].北京:清華大學出版社,2011.
[8]周潤景.Proteus入門實用教程[M].北京:機械工業(yè)出版社,2007.
[9]周潤景.基于Proteus的電路及單片機系統(tǒng)設(shè)計與仿真[M].北京:北京航空航天大學出版社,2006.
[10]陳朝元,魯五一.Proteus軟件在自動控制系統(tǒng)仿真中的應用[J].系統(tǒng)仿真學報,2008,20(2):318-320.
作者簡介:崔永進(1983—),男,碩士研究生。研究方向:光電檢測與光電信息處理。
收稿日期:2015- 06- 05
中圖分類號TP277
文獻標識碼A
文章編號1007-7820(2016)01-111-04
doi:10.16180/j.cnki.issn1007-7820.2016.01.030