劉典文 徐志堅(jiān) 李志強(qiáng) 胡 銳 毛順京
(衡陽(yáng)師范學(xué)院南岳學(xué)院,湖南 衡陽(yáng) 421008)
如今在工業(yè),醫(yī)學(xué)等許多方面都對(duì)超聲波應(yīng)用的要求越來(lái)越高,由于超聲波測(cè)距與被測(cè)物體無(wú)直接接觸,能夠清晰穩(wěn)定地顯示測(cè)量結(jié)果,廣泛應(yīng)用于液位和物位的非接觸式測(cè)量以及汽車倒車時(shí)的報(bào)警。因此,設(shè)計(jì)好的超聲波測(cè)距儀就顯得非常重要了。
本設(shè)計(jì)采用以STC89C51單片機(jī)為核心的低成本、高精度、微型化數(shù)字顯示超聲波測(cè)距儀的硬件電路和軟件設(shè)計(jì)方法。整個(gè)電路采用模塊化設(shè)計(jì),由主程序、預(yù)置子程序、發(fā)射子程序、接收子程序、顯示子程序等模塊組成。各探頭的信號(hào)經(jīng)單片機(jī)綜合分析處理,實(shí)現(xiàn)超聲波測(cè)距儀的各種功能。
超聲波是高于聽(tīng)覺(jué)頻率閾值的機(jī)械波,超聲波具有直線傳播特性,它的頻率越高,反射能力越強(qiáng),而繞射能力越弱,表現(xiàn)出更強(qiáng)的方向性,利用超聲波的這種特性采用時(shí)間差值檢測(cè)法進(jìn)行距離的測(cè)量,發(fā)射器發(fā)出的超聲波以速度v在空氣中傳播,在到達(dá)被測(cè)物體時(shí)被反射返回,由接收器接收,其往返時(shí)間為t,由s=vt/2即可算出被測(cè)物體的距離。由于超聲波也是一種聲波,其聲速v與溫度有關(guān),下表列出了幾種不同溫度下的聲速。在使用時(shí),如果溫度變化不大,則可認(rèn)為聲速是基本不變的。如果測(cè)距精度要求很高,則應(yīng)通過(guò)溫度補(bǔ)償?shù)姆椒右孕U?/p>
單片機(jī)控制超聲波發(fā)射器發(fā)出40kHZ的超聲波信號(hào);超聲波接收器將接收到的超聲波信號(hào),用接收電路進(jìn)行檢波處理后,啟動(dòng)單片機(jī)中斷程序,測(cè)得時(shí)間為t,再由軟件進(jìn)行判別、計(jì)算,并將數(shù)據(jù)送至LCD顯示。
本系統(tǒng)主要由單片機(jī)及其顯示電路、溫度補(bǔ)償電路、超聲波發(fā)射電路和接收電路等組成。當(dāng)?shù)谝粋€(gè)超聲波脈沖發(fā)射后,計(jì)數(shù)器開(kāi)始計(jì)數(shù),在檢測(cè)到第一個(gè)回波脈沖的瞬間,計(jì)數(shù)器停止計(jì)數(shù),利用溫度檢測(cè)電路實(shí)時(shí)地測(cè)量環(huán)境溫度T,再根據(jù)公式計(jì)算超聲波的速度c,從而計(jì)算出距離,將數(shù)據(jù)送到LCD顯示。其中單片機(jī)是整個(gè)系統(tǒng)的核心部件,協(xié)調(diào)各部分的工作。
為檢測(cè)被測(cè)物體之間的距離,我們通過(guò)單片機(jī)發(fā)出超聲波測(cè)量其來(lái)回之間的時(shí)間,由單片機(jī)計(jì)算其距離并把測(cè)量結(jié)果顯示在LCD上。本系統(tǒng)的特點(diǎn)是利用單片機(jī)控制超聲波的發(fā)射和對(duì)超聲波自發(fā)射至接收往返時(shí)間的測(cè)量,從而計(jì)算出物體之間的距離并顯示出來(lái)。在硬件設(shè)計(jì)方面,單片機(jī)選用STC89C51,經(jīng)濟(jì)易用,且片內(nèi)有4K的ROM,便于編程。并置有超聲波模塊,通過(guò)單片機(jī)控制能實(shí)現(xiàn)精確的計(jì)時(shí)。
控制及顯示系統(tǒng)部分為整個(gè)系統(tǒng)的關(guān)鍵,單片機(jī)為系統(tǒng)的控制核心部件,通過(guò)對(duì)其編程,來(lái)控制超聲波發(fā)射和接收的信號(hào)。顯示及操作界面為人機(jī)交互的通道,我們利用LCD來(lái)顯示被測(cè)距離,從而實(shí)現(xiàn)人機(jī)的交流。
2.2.1 單片機(jī)控制系統(tǒng)
采集到反射回來(lái)的信號(hào)后,可精確測(cè)試從開(kāi)始至結(jié)束全過(guò)程所花的時(shí)間,同時(shí)利用單片機(jī)來(lái)判斷整個(gè)測(cè)試過(guò)程的時(shí)序,即被測(cè)物體之間的距離是由發(fā)射信號(hào)經(jīng)過(guò)障礙物反射回來(lái)之間的距離,而并不是由發(fā)射出來(lái)的信號(hào)直接被接收器接收之間的距離,從而正確顯示出來(lái)。
2.2.2 顯示及操作界面
顯示面板電路采用LCD液晶顯示測(cè)量的時(shí)間和距離,最大顯示距離為5.00M左右,使用3個(gè)鍵來(lái)控制,一個(gè)電源按鍵,一個(gè)復(fù)位按鍵,還有一個(gè)啟動(dòng)按鍵。面板還包括儀器的電源指示LED以及蜂鳴器。
超聲波測(cè)距儀的軟件設(shè)計(jì)主要由主程序、超聲波發(fā)生子程序、超聲波接收中斷程序及顯示子程序組成。我們知道C語(yǔ)言程序有利于實(shí)現(xiàn)較復(fù)雜的算法,匯編語(yǔ)言程序則具有較高的效率且容易精細(xì)計(jì)算程序運(yùn)行的時(shí)間,而超聲波測(cè)距儀的程序既有較復(fù)雜的計(jì)算(計(jì)算距離時(shí)),又要求精細(xì)計(jì)算程序運(yùn)行時(shí)間(超聲波測(cè)距時(shí)),所以控制程序可采用C語(yǔ)言和匯編語(yǔ)言混合編程。
超聲波測(cè)距儀的算法設(shè)計(jì)。超聲波測(cè)距的原理為超聲發(fā)生器T在某一時(shí)刻發(fā)出一個(gè)超聲波信號(hào),當(dāng)這個(gè)超聲波遇到被測(cè)物體后反射回來(lái),就被超聲波接收器R所接收到。這樣只要計(jì)算出從發(fā)出超聲波信號(hào)到接收到返回信號(hào)所用的時(shí)間,就可算出超聲波發(fā)生器與反射物體的距離。距離的計(jì)算公式為:
d=s/2=(c×t)/2
其中,d為被測(cè)物體與測(cè)距儀的距離,s為聲波的來(lái)回的距離,c為聲速,t為聲波來(lái)回所用的時(shí)間。在啟動(dòng)發(fā)射電路的同時(shí)啟動(dòng)單片機(jī)內(nèi)部定時(shí)器T0,利用定時(shí)器的計(jì)數(shù)功能記錄超聲波發(fā)射至收到反射波的時(shí)間。當(dāng)收到超聲波反射波時(shí),接收電路輸出端產(chǎn)生一個(gè)負(fù)跳變,在INT0或INT1端產(chǎn)生一個(gè)中斷請(qǐng)求信號(hào),單片機(jī)響應(yīng)外部中斷請(qǐng)求,執(zhí)行外部中斷服務(wù)子程序,讀取時(shí)間差,計(jì)算距離。
本文介紹了以STC89C51單片機(jī)控制制作的超聲波模塊測(cè)距儀,并講述了單片機(jī)傳感器控制的原理及本系統(tǒng)采用的方式。該儀器的提升空間還很大,若能將超聲波接收電路用金屬殼屏蔽起來(lái),則可提高抗干擾能力。
圖3 主程序流程圖
[1]龔軍,羅杰.帶有溫度補(bǔ)償和LCD顯示的超聲波測(cè)距儀的設(shè)計(jì)[J].2008(10):50-53.
[2]高川,談?wù)穹?基于AT89C2051的超聲波測(cè)距系統(tǒng)[J].哈爾濱工程大學(xué),2006(33):11-14.
[3]李娣娜,劉麗麗,薛寧?kù)o等.一種新超聲波測(cè)距系統(tǒng)的設(shè)計(jì)[J].延安大學(xué),2008(26):34-36.
[4]張紅蓮.基于單片機(jī)的超聲波測(cè)距系統(tǒng)的設(shè)計(jì)[J].華北電力大學(xué),2008,9:89-91.
[5]樊高妮,何永強(qiáng).單片機(jī)AT89C2051在超聲波測(cè)距系統(tǒng)中的應(yīng)用[J].湖南文理學(xué)院學(xué)報(bào)(自然科學(xué)版)2006(18):67-70.