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