引言
衡水湖國家級自然保護區坐落在河北省衡水、冀州、棗強之間的三角地帶,是華北平原唯一保持沼澤、水域、灘涂、草甸和森林等完整濕地生態系統的自然保護區,占地面積 283 km2.其生物多樣性十分豐富,以內陸淡水濕地生態系統和國家 I、II 級鳥類為主要保護對象.衡水湖濕地具有非常明顯的生態效益,具有涵養水源、調蓄洪水、保護生物多樣性、保護土壤的重要作用,并且也是重要的旅游資源.目前為止,衡水湖已承辦兩次國際馬拉松體育賽事,日漸成為衡水的一張重要名片.衡水湖的水位影響著衡水湖的水生植被、生態環境及衡水周邊地區及其下游地區的水產養殖、工業和農業生產用水等.所以,設計衡水湖的水位監測系統是非常必要的.
1 系統總體設計
水位監測系統的功能如下:
1\\) 采用 STC89C52 單片機作為主控芯片,實現超聲波測距儀主控功能;2\\) 采用液晶屏顯示當前距離等信息;3\\) 采用 US-100 高精度超聲波收發模塊,提供非接觸式距離測量功能,測距精度達到 3 mm;4\\) 當測量距離達到預警范圍時,進行蜂鳴器聲音和燈光報警.系統主要包括硬件設計和軟件設計兩大部分.2 系統硬件設計。。
本系統硬件部分由單片機 STC89C52 主控模塊、超聲波收發模塊、顯示模塊、報警模塊及其他單片機外圍電路組成,如圖 1 所示.單片機 STC89C52 是整個系統的核心部件,協調和控制各部分電路的工作.由于選用的US-100 超聲波收發模塊可以產生 40 KHz 的方波,故不再需要單片機編程產生 40 KHz 的方波,直接由超聲波發射探頭發射超聲波.單片機在超聲波信號發射的同時開始計時,超聲波信號在空氣中傳播遇到障礙物后發生反射,反射的回波信號經過超聲波接收模塊處理后輸入到單片機的 INT0 端產生中斷,計數器停止計時.通過計數器測得的脈沖數可得到超聲波信號往返所需要的時間,從而達到測距的目的.然后將測量結果通過 LCD 顯示電路顯示到液晶屏上,便可直觀地觀察到測量距離.如果測量距離不在安全水位范圍,這時便觸發報警電路工作,通過指示燈和蜂鳴器進行聲光報警,整個系統通過協調、配合共同實現了超聲波測距的功能.【圖1】
1 主控制模塊
主控制模塊采用的是宏晶公司生產的高性能單片機 STC89C52,該芯片是增強型 80C51 單片機.超聲波模塊與 STC89C52 單片機的接口原理圖分別如圖 2 所示.超聲波模塊引腳從上至下分別為 VCC、TRIG\\(控制端\\)、ECHO\\(接收端\\)、OUT\\(空腳\\)、GND,其中 TRIG 為單片機發送觸發信號的引腳,ECHO 引腳為 US-100 模塊送回回響信號的引腳,接至單片機外部中斷 P3.2 腳上,可以利用外部中斷測量回響信號寬度.當測量距離小于閾值時,單片機通過管腳 P3.6 發出燈光報警信號,觸發 LED 報警燈亮,同時通過管腳 P3.7 發出聲音報警信號 beep,該信號用以觸發蜂鳴器鳴響報警.【圖2】
2.2 US-100 超聲波收發模塊
超聲波測距的原理一般采用回波探測法.該超聲波收發模塊可產生 40 KHz 的方波,并經放大電路驅動超聲波發射探頭發射超聲波,發射出去的超聲波經障礙物反射后由超聲波接收探頭接收.經接收電路的檢波放大,積分整形,在 ECHO 引腳上產生方波脈沖,該脈沖寬度與被測距離成線性關系.只需要在 Trig/TX 管腳輸入一個 10 us 以上的高電平,系統便可發出 8 個 40 KHz 的超聲波脈沖,然后檢測回波信號,當檢測到回波信號后,模塊還要進行溫度值的測量,然后根據當前溫度對測距結果進行校正,將校正后的結果通過 ECHO/RX管腳輸出.在此模式下,模塊將距離值轉化為 340 m/s 時的時間值的 2 倍,通過 ECHO 端輸出一個高電平,可根據此高電平的持續時間來計算距離值.即距離值 = \\(高電平時間 × 340 m/s\\)/2.使用 US-100 超聲波收發模塊進行距離測量時,單片機只需要輸出觸發信號,并監視回響引腳,通過定時器計算回響信號寬度,并換算成距離即可.該模塊簡化了發送和接收的模擬電路,工作穩定可靠.需要注意是測量周期必須在 60 ms 以上,防止發射信號對回響信號的影響.模塊共有兩個接口,即模式選擇跳線和 5pin接口.模式選擇跳線接口設置為當安裝上短路帽時為 UART\\(串口\\)模式,拔掉時為電平觸發模式.
2.3 蜂鳴器報警模塊
單片機管腳的灌電流比拉電流容量大,所以電路設計為低電平輸出時蜂鳴器響,高電平關閉.當單片機P3.7 腳輸出低電平時,PNP 型三極管 8550 導通,有集電極電流通過,蜂鳴器鳴響.當 P3.7 腳輸出高電平時,三極管截止,蜂鳴器關閉.
2.4 顯示模塊
顯示模塊部分采用 LCD1602 液晶屏進行數據顯示,LCD 顯示器是利用液晶處理后,便能改變光線的傳輸方向特性來實現信息顯示的.LCD1602 液晶屏與單片機接口電路如圖 3 所示.【圖3】
3 系統軟件設計
3.1 主程序流程圖
圖 4 為主程序流程圖.開機后亮燈并發聲約 0.5 s 表示開始工作.T0 用于記錄發射至接收的時間間隔 t\\(單位是ms\\).初始化后,程序控制發射 40 KHZ 的超聲波信號,發射開始立即啟動定時器 0 開始計時.發射時間為1 ms.CPU 接收回波信號后,立即產生 INT0 中斷同時 T0 立即停止計數.定時器 T0 專門用于記錄 CPU 發射脈沖信號前沿至回波脈沖信號前沿之問的距離 t,由此時間可換算出水面的距離,并決定“嘟”聲間隙.可設定 T1 的定時值,用來控制“嘟”聲間隙時間和閃爍顯示時間.水位計算公式為d = \\(t × 34 cm/ms\\)/2 = t × 17 cm/ms.【圖4】
3.2 中斷服務程序流程圖
一旦 CPU 接收到回波信號,外部中斷服務程序立即啟動,進入外部中斷入口,首先讀取定時器的當前值,讀取完畢,便可以置測量成功標志,此程序便完成進行.具體流程如圖 5 所示.【圖5】
4 結束語
利用超聲波傳輸距離與時間的關系,并采用 STC89C52 單片機進行控制及數據處理,設計出了能精確測量兩點間距離的超聲波水位監測儀,可以省去人工測量的成本,具有一定的現實意義.
參考文獻:
[1] 韓伏彬,石寶軍.衡水湖濕地生態建設“四護”策略構想[J].濕地科學與管理,2012,8\\(2\\):57-59.
[2] 戴曰章,吳志勇.基于 AT89C51 單片機的超聲波測距系統設計[J].計量與測試技術,2005\\(2\\):17-18.
[3] 吳勉.超聲波駐車暨倒車雷達系統研制[J].現代電子技術,2007\\(17\\):182-183.
[4] 張春光.基于單片機的超聲波測距系統的設計[J].可編程控制器與工廠自動化,2008\\(9\\):16-19.