新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于STC89C52單片機(jī)的超聲波測距系統(tǒng)

基于STC89C52單片機(jī)的超聲波測距系統(tǒng)

作者: 時間:2016-10-15 來源:網(wǎng)絡(luò) 收藏

超聲波有以下特點(diǎn):速度小,傳播時間容易檢測;頻率高,反射性強(qiáng),繞射性弱;傳播距離較遠(yuǎn);對光線和電磁場不敏感等。利用超聲波的這些優(yōu)點(diǎn),結(jié)合微電子技術(shù),超聲波測距技術(shù)應(yīng)運(yùn)而生。與激光測距、紅外線測距等相比,超聲波測距更適于電磁干擾強(qiáng),煙霧等惡劣環(huán)境中。而且,超聲波測距技術(shù)設(shè)計方便、精度較高。超聲波測距技術(shù)的優(yōu)勢,使它有著廣泛的應(yīng)用,比如:建筑施工工地,液位測量,車輛導(dǎo)航等。傳統(tǒng)的超聲波測距系統(tǒng)采用的電路結(jié)構(gòu)比較復(fù)雜,且當(dāng)回波信號過于微弱時,測量誤差會加大。在系統(tǒng)接收電路中采用的部分能有效地解決這一難題。

本文引用地址:http://www.butianyuan.cn/article/201610/307350.htm

超聲波測距的方法很多,有相位檢測法,幅值檢測法和等。系統(tǒng)采用的是TOF(Time of Flight)。原理如下:發(fā)射換能器在一端向某一方向發(fā)射超聲波,同時計時器開始計時。超聲波在傳播過程中遇到障礙物被反射回來,接收換能器接收到反射回來的超聲波,此時結(jié)束計時。假設(shè)計時時間為t,超聲波的傳播速度為n,則從換能器到障礙物之間的距離d為超聲波往返距離的一半。其中超聲波傳播速度n與環(huán)境溫度T有關(guān)。系統(tǒng)使用單片機(jī)的定時器對超聲波的往返時間進(jìn)行準(zhǔn)確計時。采用溫度傳感器測量溫度,并將所得溫度經(jīng)A/D轉(zhuǎn)換,變?yōu)閿?shù)字量后,送入控制器,由軟件對超聲波速度進(jìn)行溫度補(bǔ)償處理。

1 系統(tǒng)硬件設(shè)計

系統(tǒng)由單片機(jī)主控部分和超聲波測距部分組成,結(jié)構(gòu)如圖1所示。主控部分包括單片機(jī)控制模塊、液晶顯示模塊、溫度補(bǔ)償模塊和串口通信模塊。超聲波測距部分包括超聲波發(fā)射模塊和接收模塊。

基于STC89C52單片機(jī)的超聲波測距系統(tǒng)

單片機(jī)控制模塊通過控制發(fā)射換能器發(fā)射超聲波到固定端面,同時啟動定時器開始計時。超聲波經(jīng)反射后由接收換能器接收,當(dāng)單片機(jī)控制模塊接收到第一個反射波信號即停止計時。單片機(jī)根據(jù)計時器值計算出時間間隔t。溫度補(bǔ)償模塊采集數(shù)字溫度,根據(jù)公式(1)計算出超聲波速度v。

基于STC89C52單片機(jī)的超聲波測距系統(tǒng)

其中T是空氣介質(zhì)的溫度(℃)。在測量精度要求較高的場合,需要采用溫度補(bǔ)償?shù)姆绞綄Τ暡ǖ乃俣刃U?/p>

最后利用公式(2)計算出換能器到障礙物之間的距離d。

基于STC89C52單片機(jī)的超聲波測距系統(tǒng)

液晶顯示模塊顯示當(dāng)前的溫度值T和計算所得的距離d。串口通信模塊可以通過串口在線下載單片機(jī)程序。

1.1 主控部分

1.1.1 單片機(jī)控制模塊

單片機(jī)控制模塊為系統(tǒng)的核心控制單元。單片機(jī)的INT1/P3.3端口用于輸出發(fā)射器所需的40 kHz方波信號,INT0/P3.2端口用于檢測接收器輸出的返回信號。液晶顯示電路采用LCD1602,使用單片機(jī)的P0口和P2口完成顯示功能。RXD/P3.0和TXD/P3.1端口用于串口數(shù)據(jù)的接收與發(fā)送。P1.2和P1.3分別為超聲波的接收與發(fā)送使能端口。P3.4端口用于接收從溫度傳感器DS18B20獲取的溫度信息。

1.1.2 溫度補(bǔ)償模塊

由(1)式可知,溫度對聲速的影響較大。為了提高系統(tǒng)的測量精度,增加了溫度補(bǔ)償模塊。其中的溫度傳感器采用的是DALLAS公司生產(chǎn)的數(shù)字式溫度傳感器DS18B20。硬件接口簡單,性能穩(wěn)定,僅需一根接口線與單片機(jī)連接;測量溫度范圍為-55~+125 ℃;溫度數(shù)字量轉(zhuǎn)換時間為200 ms(典型值);適合于惡劣環(huán)境的現(xiàn)場溫度測量。

DS18B20的管腳2與單片機(jī)P3.4接口相連,單片機(jī)通過此管腳以串行傳送方式讀取測溫結(jié)果。依靠上拉電阻提供電源,以達(dá)到DS18B20工作電流為1 mA的要求。根據(jù)所測溫度值,利用公式(1)對超聲波的速度進(jìn)行校正。

1.1.3 液晶顯示模塊

液晶顯示模塊用于顯示當(dāng)前的環(huán)境溫度和測得的距離值。顯示器件LCD1602的優(yōu)點(diǎn)是微功耗、體積小、顯示內(nèi)容豐富。它識別的是ASCII碼,可以用ASCII碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量賦值。

單片機(jī)的P0口和P2口與液晶模塊相連,其中P0.0~P0.7端口用于LCD1602的數(shù)據(jù)輸出,P2.0~P2.2端口分別用于顯示模塊的數(shù)據(jù)命令選擇,讀寫選擇和使能控制。R6和R7分別用于調(diào)節(jié)LCD1602的亮度和對比度。

1.2 超聲波測距部分

超聲波測距單元的框圖如圖2所示。系統(tǒng)中采用的換能器是中心頻率為40.0 kHz±0.1Hz的發(fā)射器255-400ST16和接收器255-400SR16。該換能器具有很高的靈敏度和較強(qiáng)的抗干擾能力。安裝時應(yīng)保持2個換能器中心軸線平行并相距4~8 cm,若能將超聲波接收電路用金屬殼屏蔽起來,可提高抗干擾能力。

基于STC89C52單片機(jī)的超聲波測距系統(tǒng)

1.2.1 超聲波發(fā)射電路

只要使用40 kHz的方波激勵換能器就可以產(chǎn)生超聲波。超聲波發(fā)射電路如圖3所示。電路中使用MOSFET管ZXM61P03F進(jìn)行電源管理,當(dāng)單片機(jī)的P1.3端口為低電平時,電路通電。為電壓轉(zhuǎn)換芯片,它將輸入的5 V電源進(jìn)行加倍,轉(zhuǎn)換為正電源+10 V和負(fù)電源-10 V兩路輸出,提供給其后的LM8261使用。FC1和FC0為內(nèi)部晶振頻率選擇位,當(dāng)FC1和FC0均為高電平時,晶振頻率為最大值,高頻率可以保證不會對其它電路造成干擾,此時所需的外圍電容值(C9,C11.C12,C13)為1μF。LM8261是一個具有高輸出電流的運(yùn)算放大器,較高的輸出電流可以使產(chǎn)生的超聲波有足夠的能量傳播較遠(yuǎn)的距離。LM8261的同相輸入端與單片機(jī)的INT1/P3.3端口相連,在這個端口連續(xù)發(fā)出高低電平時,LM8261的輸出端就會產(chǎn)生方波。當(dāng)方波的頻率為40 kHz時,就會激勵超聲波發(fā)射器發(fā)出超聲波。

基于STC89C52單片機(jī)的超聲波測距系統(tǒng)

1.2.2 超聲波接收電路

接收電路主要負(fù)責(zé)將超聲波信號轉(zhuǎn)變?yōu)殡娦盘?。換能器在接收到超聲波信號時,由于壓電效應(yīng)會在兩個接頭上產(chǎn)生微弱的電壓信號,一般為毫伏級。微弱的電壓信號需通過放大電路進(jìn)行放大、整形,進(jìn)一步設(shè)計比較器電路將模擬信號轉(zhuǎn)變成為數(shù)字信號。

因此,接收電路包括接收換能器,放大電路以及比較整形電路3部分。電路如圖4所示。回波放大電路使用的是具有兩級放大功能的LMV82 2MM,R15和R16組成分壓電路,為同相輸入端提供基準(zhǔn)電壓。其中可以通過調(diào)節(jié)第二級中的電位器R22來改變放大器的增益,從而調(diào)節(jié)放大電路的電壓放大倍數(shù),以適應(yīng)接收信號變化范圍大的需要。

回波放大電路和穩(wěn)壓電路輸出的是模擬信號,電路中利用運(yùn)算放大器LMC7215組成的比較器將模擬信號轉(zhuǎn)變?yōu)閿?shù)宇信號,以便單片機(jī)進(jìn)行處理。R20和R21為比較器提供基準(zhǔn)電壓。當(dāng)反向輸入端電壓超過基準(zhǔn)電壓時,輸出低電平,否則輸出為高電平。這樣,若有超聲波信號被接收,比較器電路輸出端會有由高到低的電平跳變。單片機(jī)的INT0/P3.2端口連接到比較器的輸出,以捕捉電平的跳變,從而判斷超聲波是否被接收。同時,比較器還解決了發(fā)射換能器發(fā)出的超聲波脈沖沒有經(jīng)過反射物直接被接收器所接收的問題。

2 系統(tǒng)軟件設(shè)計

程序設(shè)計部分的總體思路是:

Step1:系統(tǒng)的初始化工作。主要包括在液晶顯示屏LCD1602上顯示兩行預(yù)設(shè)字符,“Temp:”和“Dist:”,分別為環(huán)境溫度和測量距離的提示字符;設(shè)置定時器、外部中斷的觸發(fā)方式;打開發(fā)送使能端P1.3和接收使能端P1.2;清零測量成功標(biāo)志succeedFlag。

Step2:利用溫度傳感器DS18B20測量環(huán)境溫度,并將溫度值顯示在液晶顯示屏第一行“Temp:”的后面;根據(jù)公式(2)

計算出超聲波的傳播速度。

Step3:啟動定時器T1開始計時,同時連續(xù)發(fā)送8個頻率為40 kHz的超聲波信號(對P3.3口的高、低電平分別進(jìn)行12μs、13μs的延時,實現(xiàn)從P3.3口輸出頻率為40 kHz的方波信號);延時10μs后,打開外部中斷EX0和總中斷EA,等待IT0/P3.2處電平的跳變。10μs的延時也可以有效地避免發(fā)射換能器發(fā)出的超聲波脈沖沒有經(jīng)過反射物直接被接收器所接收的問題。

Step4:超聲波在傳播過程中,遇障礙物后反射回波。當(dāng)接收探頭接收到回波時,外部中斷0被觸發(fā),此時執(zhí)行中斷服務(wù)程序。即取出定時器的高低位TH1和TL1,置位測量成功標(biāo)志succeedFlag,并關(guān)閉中斷。定時器所計的數(shù)據(jù)即為超聲波所經(jīng)歷的時間t。

Step5:由以上步驟中所得定時器的值和超聲波速度,根據(jù)式(1)計算測量距離。

Step6:重復(fù)步驟2~5五次后,獲得5次測距值。去除其中的最大值和最小值,取中間3值的平均值為當(dāng)前的測距結(jié)果,并將測距結(jié)果顯示在液晶顯示屏第二行“Dist:”之后。

Step7:重復(fù)步驟2~6,當(dāng)有連續(xù)三次的預(yù)備顯示測距結(jié)果與當(dāng)前的顯示結(jié)果不同時,將預(yù)備顯示測距結(jié)果顯示在液晶顯示屏上。這樣設(shè)計是為了避免顯示頻繁導(dǎo)致的液晶顯示抖動。

Step8:重復(fù)步驟2~7進(jìn)行連續(xù)地測量。

程序中顯示一次測距結(jié)果的流程圖如圖5所示。

基于STC89C52單片機(jī)的超聲波測距系統(tǒng)

3 實驗

3.1 調(diào)試過程中出現(xiàn)的問題及解決方法

1)回波信號的誤接收

由于超聲波發(fā)射探頭和接收探頭距離較近,當(dāng)發(fā)射探頭發(fā)射超聲波后,有部分超聲波沒經(jīng)過障礙物反射就直接繞射到接收探頭上,這部分信號影響了系統(tǒng)的測量結(jié)果。設(shè)計中采用了兩個方法來解決這個問題,一是略微增大發(fā)射探頭和接收探頭之間的距離,使影響降低;二是在發(fā)射完超聲波之后,開外部中斷之前增加10μs的延時,接收電路對此期間接收到的任何信號不予理睬,延時之后接收到的信號才是有效的回波信號。

2)外部中斷0的觸發(fā)方式

沒有接收到超聲波信號時,INT0/P3.2引腳為高電平;接收到超聲波信號之后,該引腳變?yōu)榈碗娖?。因此理論上外部中?的觸發(fā)方式采用下降沿觸發(fā)和低電平觸發(fā)均可。而在實際電路中,當(dāng)采用下降沿觸發(fā)方式時,由于噪聲的影響,在沒有回波被接收的情況下,P3.2引腳的高電平經(jīng)常會出現(xiàn)向下的毛刺信號,該信號引起外部中斷,造成了接收到回波信號的誤判。解決方法是采用低電平觸發(fā),同時在進(jìn)入外部中斷之后判斷低電平的持續(xù)時間是否大于20μs,只有當(dāng)滿足持續(xù)時間要求時,才判定接收到的信號為回波信號,而非噪聲。

3.2 測距結(jié)果及分析

為了驗證系統(tǒng)的性能.在實驗室進(jìn)行了實地測量。將超聲波探頭正對平整的墻壁進(jìn)行測量,根據(jù)距離不同記錄了12次實驗結(jié)果,測距結(jié)果如表1所示。表中的實際距離是用塑料軟尺測量得到的,測量距離為測量5次結(jié)果之后的平均值。

基于STC89C52單片機(jī)的超聲波測距系統(tǒng)

誤差產(chǎn)生及測量范圍有限的原因主要有:

1)超聲波能量的衰減。由于超聲波在傳播途中回波幅度隨傳播距離成指數(shù)規(guī)律衰減,使得遠(yuǎn)距離回波很難檢測,即使系統(tǒng)已采用相關(guān)措施來避免誤差,但是超聲波能量的衰減是不可能避免的;

2)測量盲區(qū)。超聲波測距系統(tǒng)測量盲區(qū)的計算方法為啟動定時器與打開外部中斷之間的時間間隔的一半與超聲波速度的乘積;

3)接收整形電路造成的時延,信號傳輸和發(fā)射中的失真。

4 結(jié)論

設(shè)計的超聲波測距系統(tǒng)具有很好的穩(wěn)定性,連續(xù)測量時有很好的響應(yīng)速度。同時,系統(tǒng)具有結(jié)構(gòu)簡單、功耗小、成本低的特點(diǎn),有良好的人機(jī)界面,能方便地實時顯示測距數(shù)據(jù)。當(dāng)然,要滿足更高的精度要求,還須進(jìn)行適當(dāng)改進(jìn),在某些特殊場合的應(yīng)用中,還要考慮超聲波的入射角、反射角以及超聲波傳播介質(zhì)的密度、表面光滑度等因素。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉