邵陽學院信息工程系 徐江維 李 菲
基于單片機的的超聲波測距儀
邵陽學院信息工程系 徐江維 李 菲
本文設計了一款基于ST89C52RC單片機的超聲波測距儀器,ST89C52RC單片機作為控制核心,片外結合T/R-40-12小型超聲波傳感器模塊、LCD1602液晶顯示器模塊、晶振電路模塊以及復位電路等模塊而構成超聲波測距的硬件系統。通過系統上的超聲波模塊來采集使用者距離障礙物的距離,然后通過ST89C52RC單片機對采集數據進行處理,經過大量的實驗測試,本測距儀器性能穩定,攜帶便捷,能夠做到隨時隨地地測量距離,不僅如此,它對單片機以及超聲波技術的推廣也具有一定的積極作用。
ST89C52RC單片機;LCD1602液晶顯示器;距離
本文以基于超聲波測距為研究基礎,結合其他必要模塊設計一款簡單實用并且價格低廉的手持超聲波測距系統。根據文獻顯示,超聲波最早是由斯帕拉捷發現的,他根據蝙蝠能在黑夜中自由快速飛行,經過大量實驗后,得出了蝙蝠能夠發出一種人耳聽不見的聲波,通過這種超聲波的指引,蝙蝠才得以自由飛翔,由于這種聲波的頻率大于20khz,超過了人耳聽覺的上限,因此被稱為超聲波,經過后來相關儀器的測量,發現超聲波具有很強的能量集中性,不容易發散,因此非常適合測距、測速。
圖1為基于ST89C52RC單片機的超聲波測距儀器總體硬件框圖設計,共分為四大模塊,即ST89C52RC單片機最小系統、超聲波模塊、顯示模塊以及電源模塊。51單片機最小系統有ST89C52RC單片機、晶振電路以及復位電路組成,主要負責整個系統的信號處理、超聲波模塊的驅動、液晶屏的驅動的驅動,是這個系統的控制核心;超聲波模塊主要用于向測量物發送超聲波信號,并將被反射回來的超聲波進行接收,該模塊是實現測距功能的核心元件;LCD1602是本系統的顯示模塊,用于顯示測量物距離以及系統的其他參數;電源模塊用于給整個系統提供能源。

圖1 整體系統框圖
對于ST89C52RC單片機最小系統的構建,主要表現在兩個方面:一是晶振電路的設計,二是復位電路的構建;將這兩個電路和ST89C52RC單片機進行組合后,ST89C52RC最小系統就完成了。
基于ST89C52RC單片機的超聲波測距儀系統的軟件流程圖設計,上電后系統首先進入初始化階段,在該階段ST89C52RC單片機、超聲波模塊以及液晶屏內部的寄存器被清零,為接下來的正常工作做準備。初始化完成后,系統就進入了正式的工作狀態,ST89C52RC單片機首先驅動HC—SR04超聲波模塊發射超聲波時,其發射中斷管腳會同時輸出一個高電平給ST89C52RC單片機的P3.2中斷管腳INT0,在INT0中斷時計時器T0被立即啟動,開始計時;當超聲波返回并被HC—SR04接收到時,其接收中斷管腳會同時輸出一個脈沖給ST89C52RC單片機的P3.3中斷管腳INT1,在INT1中斷時立即停止計時器T0的工作,這樣ST89C52RC單片機就得到了超聲波發射和接收過程所用的時間,由于超聲波在空氣中的傳輸速度是340m/s,這樣將兩者相乘并除以2,這樣就得到了距離被測物的距離大小。與此同時ST89C52RC單片機驅動液晶屏將距離大小顯示出來,供用戶查看。HC-SR04超聲波測距流程設計,當系統上電后HC-SR04超聲波模塊經過初始化過程后測距過程進入正常工作階段。 測距過程開始時,ST89C52RC單片機通過內部的精準定時電路產生一串頻率穩定的脈沖信號并經過P3.2管腳傳送給HC-SR04的Trig管腳,與此同時單片機的定時器開始計時。HC-SR04內部的晶振在感受到Trig管腳的脈沖信號后出現共振向外發送超聲波,當超聲波在傳送途中遇到障礙物時會被返回,并最終會被HC-SR04的接受器接收到,與此同時單片機的定時器立即停止計時并將計時值換算成和障礙物的距離,這就是超聲波測距的一個流程。本系統的LCD1602液晶顯示子程序流程設計,使用者在給系統供電后,LCD1602的液晶背光燈被打開,然后LCD1602內部存儲芯片和RAM會自動進行清零等初始化工作,接著主控核心51單片機會通過P0管口發出指令代碼并傳送到LCD1602的DB0~DB7八個管腳,LCD1602液晶顯示器接收到指令代碼后內部會處于一段暫時忙碌的狀態,此時單片機是不能對LCD1602進行任何操作的,只有忙碌階段結束后LCD1602才能重新接受單片機發來的指令或者數據,然而單片機卻不能自己判斷LCD1602是否處于忙碌狀態,必須發送一個判忙代碼后才能清楚的知道LCD1602當前是否處于忙碌,另外有經驗的程序員通常不對LCD1602進行判忙,只要在寫命令后加一個適當的延時程序讓單片機在這段時間內處于等待狀態即可,這樣就省略了“判忙”過程,這樣帶來的好處是單片機就不用對LCD1602進行讀取了,也就為單片機省去了一個寶貴IO口的消耗。在單片機發送完指令后就開始發送要顯示的內容了,內容的數據也是通過P0口的八個管腳發送出來,然后直接傳送給LCD1602的DB0~DB7八個管腳,這樣就完成了一個字符的顯示流程,而要在LCD1602上顯示字符串,那么將進行多個這種過程后才能實現我們想要的結果。
利用超聲波進行測距有許多優點比如不受光強度、色彩和電磁場等外界因素的影響,而且超聲波傳感器的價位較低、結構也較為簡單,超聲波以聲速傳播,方便收發與計算。在汽車倒車雷達、移動機器人的避障、特別是測量距離等許多方面都已有了非常普遍的應用。 本次設計的超聲波測距儀是在STC89C52RC單片機的基礎上設計的,在分析和了解了超聲波的一些優點和特性后,又查看了利用超聲波測距的基本原理。最后決定使用STC89C52RC單片機系統和超聲波傳感器共同組成。設計的超聲波測距儀的硬件部分主要包括電源及復位模塊、單片機與超聲波模塊組成的超聲波發射模塊、超聲波接收模塊、LCD1602顯示模塊。軟件部分主要包括單片機主程序、根據超聲波發射與接收計算距離程序、LCD1062距離顯示程序、按鍵控制程序,這樣安排使得系統具有模塊化的特點。系統容易進行控制,具有可靠地的性能,具有較高的測量精度,最重要的是能對距離進行實時測量。
[1]沈燕,高曉蓉,孫增友,李金龍.基于單片機的超聲波測距儀設計[J].現代電子技術,2012(07):34.
[2]張可兒.基于單片機的超聲波測距儀設計[J].自動化與儀器儀表,2017(01).
[3]孫世菊.單片機控制的超聲波測距儀汽車倒車系統研究[J].時代汽車,2016(05):137
[4]付雪健,孟俊煥.基于51單片機超聲波測距儀倒車雷達報警裝置設計[J].內蒙古科技與經濟,2016(21):178.