鄺愛華 李平
【摘要】 以STC89C52單片機作為核心控制電路,采用模塊化的設計方案,以超聲波傳感器為檢測功能部件,利用在空氣中傳播的超聲波反射原理,結合單片機控制技術和超聲波在空氣中傳播的時間差原理來測量距離。系統主要包括單片機控制模塊、超聲波測距模塊以及距離顯示模塊。首先由超聲波測距模塊給單片機控制模塊發送超聲波并計時,然后由單片機控制模塊統計數據并計算距離,最后由數碼管顯示模塊顯示出來測試的距離,完成測距。本設計測距精度可以達到3mm,并且能夠提供2cm-400cm的非接觸式距離感測功能。
【關鍵詞】 超聲波 傳感器 距離測量
隨著科學技術的飛速發展,在人們的日常生活當中,越來越多的科學技術成果得到了廣泛的運用,也給人們的生活帶來了諸多方便。超聲波測距系統的研制,給很多領域帶來了方便。比如可以應用于井深、液位和管道長度的測量等場合,也可用于建筑施工工地、汽車倒車系統以及一些工業現場的位置監控。展望未來,超聲波測距系統作為一種非常重要的測量工具在各個領域都將有很大的發展空間,為了滿足日益發展的社會需求,它將朝著測量精度更高的方向發展。
一、系統工作原理及總體方案設計
1.1 測距原理
通過超聲波發射器向某一方向發射超聲波,在發射的過程中計時,因為超聲波在空氣中傳播,當在途中碰到障礙物時就會被立即立即反射回來,超聲波接收器收到反射波后立即停止計時。由于在空氣中超聲波的傳播速度為340m/s,根據計時器記錄的時間t,可以很容易地計算出從發射點到障礙物的距離S為:

在設計中按式S=170×N×T=170×N÷1000000計算距離。
1.2 系統的設計思路
本系統的設計主要分為系統硬件電路的設計和系統軟件程序的設計兩部分。系統硬件電路主要由單片機控制系統模塊、超聲波測距模塊和數碼管顯示模塊構成。系統主控芯片選取STC89C52單片機,測量器件選取超聲波傳感器。通過對單片機進行相應的編程,讓其接收信號、處理信號和發送命令,最后通過數碼管顯示模塊顯示出測量得到的距離值。因此,完整的超聲波測距系統主要包括單片機控制系統、超聲波的發射與接收系統和距離顯示系統。
在必要的時候,超聲波測距系統能夠通過單片機控制發射電路發射超聲波,超聲波在空氣中向前傳播。在傳播的過程中,當超聲波遇到障礙物時就會被會反射回來,由接收電路接收。接收電路會把信號傳送到單片機中,由單片機進行相關的數據處理。所得到的結果會通過LED數碼管顯示出來。在此過程中,如果發射裝置與障礙物之間有相對運動,那么 LED數碼管會不斷地顯示兩者之間最新的距離。而當超出超聲波測距的范圍時,單片機便會發出一個指令,讓數碼管顯示不同的符號以便給出提示。
二、系統硬件設計
本設計主要由單片機控制系統模塊、超聲波測距模塊和數碼管顯示模塊三個模塊組成,通過對三個模塊的分析與設計,再結合單片機的引腳功能,從而得到系統整體電路圖。
2.1 單片機控制系統
單片機控制系統主要由單片機最小系統構成。STC89C52最小應用系統電路。單片機最小系統有三個主要部分:
(1)時鐘電路:STC89C52單片機外接晶振及電容的引腳是引腳18和引腳19,工作頻率取決于晶振XT的頻率,芯片的工作頻率可在2~33MHz范圍之間選。在本設計中,為了保證振蕩器電路的穩定性及快速性,兩個小電容C1和C2都取值30pF,頻率選用11.0592MHz晶振。
(2)電源電路:單片機系統能正常工作時,芯片引腳VCC接+5V直流穩壓電源,引腳GND接電源+5V的負極,電源電壓范圍在4~5.5V之間。為了確定單片機是否供上電,在VCC和地之間連接了一個發光二極管和1K的電阻。
(3)復位電路:單片機在引腳RST上保持24個工作主頻周期的高電平,就可以完成復位。但復位電路應使引腳RST保持10ms以上的高電平,才能保證系統可靠的復位。
2.2 數碼管顯示電路設計
本設計采用四位七段數碼管作為顯示的器件,其中6、8、9、12引腳是數碼管的位選信號端,1、2、3、4、5、7、10、11引腳控制數碼管的位選,四位數碼管分別用一個S9015三極管進行驅動。距離顯示電路如圖3所示。
2.3 超聲波模塊設計
超聲波換能器是一種能量轉換器件,它的功能是將輸入的電功率轉換成機械功率(即超聲波)再傳遞出去,而自身消耗很少的一部分功率,電源輸出到超聲波發生器,再到超聲波換能器,一般還要經過超聲波導出裝置就可以產生超聲波了。本設計采用HC-SR04集成模塊作為系統的超聲波模塊,其內部主要由超聲波發射電路和接收電路和控制電路三部分組成,HC-SR04是利用超聲波換能器來產生超聲波的器件。
三、系統軟件設計
本設計采用的是模塊化的思路來進行設計和編寫程序,程序主要由系統主程序和中斷程序構成。主程序的功能是完成單片機的初始化,超聲波信號的發射和接收、計算超聲波發射點與障礙物之間的距離和數碼管顯示等。中斷程序完成系統各種中斷服務。系統程序設計的主要的功能是發射超聲波、接受超聲波、計算測量距離和數碼管顯示。
3.1主程序設計設計
主程序對整個測距系統初始化后,先將定時器T0啟動,同時對超聲波的回波接收標志位置位并且由單片機P1.1端口給發出一個低電平命令用來啟動超聲波發射電路,然后調用計算距離的子程序,再結合定時器T0記錄的時間結果計算出被測距離,再將被測結果通過調用顯示子程序,以十進制的形式在數碼管上顯示,最后主程序通過對回波信號的接收,完成后續的工作。在整個過程中,如果標志位清零則說明接收到了回波信號,那么主程序就返回到初始端重新將回波接收標志位置位并且在單片機的P1.1端口上發送低電平到超聲波發射電路,如此往復,系統連續不斷地運行,循環不斷地工作來實現實時測距的功能。
3.2 數碼管顯示模塊設計
本設計采用4位共陽極數碼管來顯示距離,進行動態掃描時是與單片機P0口相連接。因為所測的距離是不斷變化的,所以數碼管是在外部中斷0發生后才進行顯示的。
當主程序給超聲波發生器發送了信號后,此時中斷和定時器0便會被打開,并開始計時,當超聲波接收電路接收到了回波信號的時,系統便會在單片機的P1.0端口產生一個低電平信號,在單片機檢測到該信號后,定時器停止計時,同時定時器的計數的次數將被送至單片機進行數據的計算,最后得出以cm為單位的測量的距離。
四、系統調試結果
理論上來講,本設計系統采用的超聲波模塊測距時存在的盲區大約為2cm左右,而且本設計理論上的測量距離范圍為2cm~5m,測量的誤差比較小,測量顯示值穩定,可以精確到0.3cm,能滿足設計要求。
經尺子測量一頁打印紙的長度為25.6cm,然后利用超聲波測距儀測量精確度。首先將紙分別平放在桌面,然后用一個表面平整的障礙物立起來放在紙張的邊緣,讓測距儀的超聲波探頭對準障礙物,經測量之后結果顯示為25.5cm,誤差0.1cm,測量較為準確;拿著超聲波測距儀站在離墻面2米的地方,測量結果為199.8cm,誤差0.2cm。
參 考 文 獻
[1] 盛春明.超聲波測距儀[J].電子制作,2010,(5):31-42
[2]陳正軍,鄔華,方愛華.基于凌陽61系列單片機的超聲波測距系統[J].科技傳播,2010,(6):126-127
[3]李長陽.超聲波測距系統的電路設計[J].黑龍江科技信息,2010,(33):77,83
[4]張凱瑞,吳軍,鄭小軍.超聲波測距技術的研究[J].科技信息,2013,(10):172
[5]孫新.基于超聲波的盲人避障眼鏡的設計[J].電子技術與軟件工程,2014,(12)
[6]曹月真.基于51單片機的超聲波測距系統的設計[J].電子世界,2011,(10):55-56
[7]任艷斐等.基于嵌入式技術的汽車防撞報警系統的設計與應用[J].計算機測量與控制,2014,(2)
[8]荊紅莉,王晶,王濤.超聲波測距系統設計[J].數字技術與應用,2010,(8):92
[9]鄢晗菡,孫華.基于多普勒效應的汽車剎車預警系統研究[J].機械,2010(11):56-58