邵陽學(xué)院信息工程系 徐江維 李 菲
基于單片機的的超聲波測距儀
邵陽學(xué)院信息工程系 徐江維 李 菲
本文設(shè)計了一款基于ST89C52RC單片機的超聲波測距儀器,ST89C52RC單片機作為控制核心,片外結(jié)合T/R-40-12小型超聲波傳感器模塊、LCD1602液晶顯示器模塊、晶振電路模塊以及復(fù)位電路等模塊而構(gòu)成超聲波測距的硬件系統(tǒng)。通過系統(tǒng)上的超聲波模塊來采集使用者距離障礙物的距離,然后通過ST89C52RC單片機對采集數(shù)據(jù)進行處理,經(jīng)過大量的實驗測試,本測距儀器性能穩(wěn)定,攜帶便捷,能夠做到隨時隨地地測量距離,不僅如此,它對單片機以及超聲波技術(shù)的推廣也具有一定的積極作用。
ST89C52RC單片機;LCD1602液晶顯示器;距離
本文以基于超聲波測距為研究基礎(chǔ),結(jié)合其他必要模塊設(shè)計一款簡單實用并且價格低廉的手持超聲波測距系統(tǒng)。根據(jù)文獻顯示,超聲波最早是由斯帕拉捷發(fā)現(xiàn)的,他根據(jù)蝙蝠能在黑夜中自由快速飛行,經(jīng)過大量實驗后,得出了蝙蝠能夠發(fā)出一種人耳聽不見的聲波,通過這種超聲波的指引,蝙蝠才得以自由飛翔,由于這種聲波的頻率大于20khz,超過了人耳聽覺的上限,因此被稱為超聲波,經(jīng)過后來相關(guān)儀器的測量,發(fā)現(xiàn)超聲波具有很強的能量集中性,不容易發(fā)散,因此非常適合測距、測速。
圖1為基于ST89C52RC單片機的超聲波測距儀器總體硬件框圖設(shè)計,共分為四大模塊,即ST89C52RC單片機最小系統(tǒng)、超聲波模塊、顯示模塊以及電源模塊。51單片機最小系統(tǒng)有ST89C52RC單片機、晶振電路以及復(fù)位電路組成,主要負責(zé)整個系統(tǒng)的信號處理、超聲波模塊的驅(qū)動、液晶屏的驅(qū)動的驅(qū)動,是這個系統(tǒng)的控制核心;超聲波模塊主要用于向測量物發(fā)送超聲波信號,并將被反射回來的超聲波進行接收,該模塊是實現(xiàn)測距功能的核心元件;LCD1602是本系統(tǒng)的顯示模塊,用于顯示測量物距離以及系統(tǒng)的其他參數(shù);電源模塊用于給整個系統(tǒng)提供能源。
圖1 整體系統(tǒng)框圖
對于ST89C52RC單片機最小系統(tǒng)的構(gòu)建,主要表現(xiàn)在兩個方面:一是晶振電路的設(shè)計,二是復(fù)位電路的構(gòu)建;將這兩個電路和ST89C52RC單片機進行組合后,ST89C52RC最小系統(tǒng)就完成了。
基于ST89C52RC單片機的超聲波測距儀系統(tǒng)的軟件流程圖設(shè)計,上電后系統(tǒng)首先進入初始化階段,在該階段ST89C52RC單片機、超聲波模塊以及液晶屏內(nèi)部的寄存器被清零,為接下來的正常工作做準(zhǔn)備。初始化完成后,系統(tǒng)就進入了正式的工作狀態(tài),ST89C52RC單片機首先驅(qū)動HC—SR04超聲波模塊發(fā)射超聲波時,其發(fā)射中斷管腳會同時輸出一個高電平給ST89C52RC單片機的P3.2中斷管腳INT0,在INT0中斷時計時器T0被立即啟動,開始計時;當(dāng)超聲波返回并被HC—SR04接收到時,其接收中斷管腳會同時輸出一個脈沖給ST89C52RC單片機的P3.3中斷管腳INT1,在INT1中斷時立即停止計時器T0的工作,這樣ST89C52RC單片機就得到了超聲波發(fā)射和接收過程所用的時間,由于超聲波在空氣中的傳輸速度是340m/s,這樣將兩者相乘并除以2,這樣就得到了距離被測物的距離大小。與此同時ST89C52RC單片機驅(qū)動液晶屏將距離大小顯示出來,供用戶查看。HC-SR04超聲波測距流程設(shè)計,當(dāng)系統(tǒng)上電后HC-SR04超聲波模塊經(jīng)過初始化過程后測距過程進入正常工作階段。 測距過程開始時,ST89C52RC單片機通過內(nèi)部的精準(zhǔn)定時電路產(chǎn)生一串頻率穩(wěn)定的脈沖信號并經(jīng)過P3.2管腳傳送給HC-SR04的Trig管腳,與此同時單片機的定時器開始計時。HC-SR04內(nèi)部的晶振在感受到Trig管腳的脈沖信號后出現(xiàn)共振向外發(fā)送超聲波,當(dāng)超聲波在傳送途中遇到障礙物時會被返回,并最終會被HC-SR04的接受器接收到,與此同時單片機的定時器立即停止計時并將計時值換算成和障礙物的距離,這就是超聲波測距的一個流程。本系統(tǒng)的LCD1602液晶顯示子程序流程設(shè)計,使用者在給系統(tǒng)供電后,LCD1602的液晶背光燈被打開,然后LCD1602內(nèi)部存儲芯片和RAM會自動進行清零等初始化工作,接著主控核心51單片機會通過P0管口發(fā)出指令代碼并傳送到LCD1602的DB0~DB7八個管腳,LCD1602液晶顯示器接收到指令代碼后內(nèi)部會處于一段暫時忙碌的狀態(tài),此時單片機是不能對LCD1602進行任何操作的,只有忙碌階段結(jié)束后LCD1602才能重新接受單片機發(fā)來的指令或者數(shù)據(jù),然而單片機卻不能自己判斷LCD1602是否處于忙碌狀態(tài),必須發(fā)送一個判忙代碼后才能清楚的知道LCD1602當(dāng)前是否處于忙碌,另外有經(jīng)驗的程序員通常不對LCD1602進行判忙,只要在寫命令后加一個適當(dāng)?shù)难訒r程序讓單片機在這段時間內(nèi)處于等待狀態(tài)即可,這樣就省略了“判忙”過程,這樣帶來的好處是單片機就不用對LCD1602進行讀取了,也就為單片機省去了一個寶貴IO口的消耗。在單片機發(fā)送完指令后就開始發(fā)送要顯示的內(nèi)容了,內(nèi)容的數(shù)據(jù)也是通過P0口的八個管腳發(fā)送出來,然后直接傳送給LCD1602的DB0~DB7八個管腳,這樣就完成了一個字符的顯示流程,而要在LCD1602上顯示字符串,那么將進行多個這種過程后才能實現(xiàn)我們想要的結(jié)果。
利用超聲波進行測距有許多優(yōu)點比如不受光強度、色彩和電磁場等外界因素的影響,而且超聲波傳感器的價位較低、結(jié)構(gòu)也較為簡單,超聲波以聲速傳播,方便收發(fā)與計算。在汽車倒車?yán)走_、移動機器人的避障、特別是測量距離等許多方面都已有了非常普遍的應(yīng)用。 本次設(shè)計的超聲波測距儀是在STC89C52RC單片機的基礎(chǔ)上設(shè)計的,在分析和了解了超聲波的一些優(yōu)點和特性后,又查看了利用超聲波測距的基本原理。最后決定使用STC89C52RC單片機系統(tǒng)和超聲波傳感器共同組成。設(shè)計的超聲波測距儀的硬件部分主要包括電源及復(fù)位模塊、單片機與超聲波模塊組成的超聲波發(fā)射模塊、超聲波接收模塊、LCD1602顯示模塊。軟件部分主要包括單片機主程序、根據(jù)超聲波發(fā)射與接收計算距離程序、LCD1062距離顯示程序、按鍵控制程序,這樣安排使得系統(tǒng)具有模塊化的特點。系統(tǒng)容易進行控制,具有可靠地的性能,具有較高的測量精度,最重要的是能對距離進行實時測量。
[1]沈燕,高曉蓉,孫增友,李金龍.基于單片機的超聲波測距儀設(shè)計[J].現(xiàn)代電子技術(shù),2012(07):34.
[2]張可兒.基于單片機的超聲波測距儀設(shè)計[J].自動化與儀器儀表,2017(01).
[3]孫世菊.單片機控制的超聲波測距儀汽車倒車系統(tǒng)研究[J].時代汽車,2016(05):137
[4]付雪健,孟俊煥.基于51單片機超聲波測距儀倒車?yán)走_報警裝置設(shè)計[J].內(nèi)蒙古科技與經(jīng)濟,2016(21):178.