基于STC89C52單片機的超聲波測距系統
超聲波有以下特點(diǎn):速度小,傳播時(shí)間容易檢測;頻率高,反射性強,繞射性弱;傳播距離較遠;對光線(xiàn)和電磁場(chǎng)不敏感等。利用超聲波的這些優(yōu)點(diǎn),結合微電子技術(shù),超聲波測距技術(shù)應運而生。與激光測距、紅外線(xiàn)測距等相比,超聲波測距更適于電磁干擾強,煙霧等惡劣環(huán)境中。而且,超聲波測距技術(shù)設計方便、精度較高。超聲波測距技術(shù)的優(yōu)勢,使它有著(zhù)廣泛的應用,比如:建筑施工工地,液位測量,車(chē)輛導航等。傳統的超聲波測距系統采用的電路結構比較復雜,且當回波信號過(guò)于微弱時(shí),測量誤差會(huì )加大。在系統接收電路中采用的增益控制部分能有效地解決這一難題。
本文引用地址:http://dyxdggzs.com/article/201610/307350.htm超聲波測距的方法很多,有相位檢測法,幅值檢測法和渡越時(shí)間法等。系統采用的是渡越時(shí)間法TOF(Time of Flight)。原理如下:發(fā)射換能器在一端向某一方向發(fā)射超聲波,同時(shí)計時(shí)器開(kāi)始計時(shí)。超聲波在傳播過(guò)程中遇到障礙物被反射回來(lái),接收換能器接收到反射回來(lái)的超聲波,此時(shí)結束計時(shí)。假設計時(shí)時(shí)間為t,超聲波的傳播速度為n,則從換能器到障礙物之間的距離d為超聲波往返距離的一半。其中超聲波傳播速度n與環(huán)境溫度T有關(guān)。系統使用單片機的定時(shí)器對超聲波的往返時(shí)間進(jìn)行準確計時(shí)。采用溫度傳感器測量溫度,并將所得溫度經(jīng)A/D轉換,變?yōu)閿底至亢?,送入控制器,由軟件對超聲波速度進(jìn)行溫度補償處理。
1 系統硬件設計
系統由單片機主控部分和超聲波測距部分組成,結構如圖1所示。主控部分包括單片機控制模塊、液晶顯示模塊、溫度補償模塊和串口通信模塊。超聲波測距部分包括超聲波發(fā)射模塊和接收模塊。

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

其中T是空氣介質(zhì)的溫度(℃)。在測量精度要求較高的場(chǎng)合,需要采用溫度補償的方式對超聲波的速度校正。
最后利用公式(2)計算出換能器到障礙物之間的距離d。

液晶顯示模塊顯示當前的溫度值T和計算所得的距離d。串口通信模塊可以通過(guò)串口在線(xiàn)下載單片機程序。
1.1 主控部分
1.1.1 單片機控制模塊
單片機控制模塊為系統的核心控制單元。單片機STC89C52的INT1/P3.3端口用于輸出發(fā)射器所需的40 kHz方波信號,INT0/P3.2端口用于檢測接收器輸出的返回信號。液晶顯示電路采用LCD1602,使用單片機的P0口和P2口完成顯示功能。RXD/P3.0和TXD/P3.1端口用于串口數據的接收與發(fā)送。P1.2和P1.3分別為超聲波的接收與發(fā)送使能端口。P3.4端口用于接收從溫度傳感器DS18B20獲取的溫度信息。
1.1.2 溫度補償模塊
由(1)式可知,溫度對聲速的影響較大。為了提高系統的測量精度,增加了溫度補償模塊。其中的溫度傳感器采用的是DALLAS公司生產(chǎn)的數字式溫度傳感器DS18B20。硬件接口簡(jiǎn)單,性能穩定,僅需一根接口線(xiàn)與單片機連接;測量溫度范圍為-55~+125 ℃;溫度數字量轉換時(shí)間為200 ms(典型值);適合于惡劣環(huán)境的現場(chǎng)溫度測量。
DS18B20的管腳2與單片機P3.4接口相連,單片機通過(guò)此管腳以串行傳送方式讀取測溫結果。依靠上拉電阻提供電源,以達到DS18B20工作電流為1 mA的要求。根據所測溫度值,利用公式(1)對超聲波的速度進(jìn)行校正。
1.1.3 液晶顯示模塊
液晶顯示模塊用于顯示當前的環(huán)境溫度和測得的距離值。顯示器件LCD1602的優(yōu)點(diǎn)是微功耗、體積小、顯示內容豐富。它識別的是ASCII碼,可以用ASCII碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值。
單片機的P0口和P2口與液晶模塊相連,其中P0.0~P0.7端口用于LCD1602的數據輸出,P2.0~P2.2端口分別用于顯示模塊的數據命令選擇,讀寫(xiě)選擇和使能控制。R6和R7分別用于調節LCD1602的亮度和對比度。
1.2 超聲波測距部分
超聲波測距單元的框圖如圖2所示。系統中采用的換能器是中心頻率為40.0 kHz±0.1Hz的發(fā)射器255-400ST16和接收器255-400SR16。該換能器具有很高的靈敏度和較強的抗干擾能力。安裝時(shí)應保持2個(gè)換能器中心軸線(xiàn)平行并相距4~8 cm,若能將超聲波接收電路用金屬殼屏蔽起來(lái),可提高抗干擾能力。

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

1.2.2 超聲波接收電路
接收電路主要負責將超聲波信號轉變?yōu)殡娦盘?。換能器在接收到超聲波信號時(shí),由于壓電效應會(huì )在兩個(gè)接頭上產(chǎn)生微弱的電壓信號,一般為毫伏級。微弱的電壓信號需通過(guò)放大電路進(jìn)行放大、整形,進(jìn)一步設計比較器電路將模擬信號轉變成為數字信號。
因此,接收電路包括接收換能器,放大電路以及比較整形電路3部分。電路如圖4所示?;夭ǚ糯箅娐肥褂玫氖蔷哂袃杉壏糯蠊δ艿腖MV82 2MM,R15和R16組成分壓電路,為同相輸入端提供基準電壓。其中可以通過(guò)調節第二級中的電位器R22來(lái)改變放大器的增益,從而調節放大電路的電壓放大倍數,以適應接收信號變化范圍大的需要。
回波放大電路和穩壓電路輸出的是模擬信號,電路中利用運算放大器LMC7215組成的比較器將模擬信號轉變?yōu)閿涤钚盘?,以便單片機進(jìn)行處理。R20和R21為比較器提供基準電壓。當反向輸入端電壓超過(guò)基準電壓時(shí),輸出低電平,否則輸出為高電平。這樣,若有超聲波信號被接收,比較器電路輸出端會(huì )有由高到低的電平跳變。單片機的INT0/P3.2端口連接到比較器的輸出,以捕捉電平的跳變,從而判斷超聲波是否被接收。同時(shí),比較器還解決了發(fā)射換能器發(fā)出的超聲波脈沖沒(méi)有經(jīng)過(guò)反射物直接被接收器所接收的問(wèn)題。
2 系統軟件設計
程序設計部分的總體思路是:
Step1:系統的初始化工作。主要包括在液晶顯示屏LCD1602上顯示兩行預設字符,“Temp:”和“Dist:”,分別為環(huán)境溫度和測量距離的提示字符;設置定時(shí)器、外部中斷的觸發(fā)方式;打開(kāi)發(fā)送使能端P1.3和接收使能端P1.2;清零測量成功標志succeedFlag。
Step2:利用溫度傳感器DS18B20測量環(huán)境溫度,并將溫度值顯示在液晶顯示屏第一行“Temp:”的后面;根據公式(2)
計算出超聲波的傳播速度。
Step3:?jiǎn)?dòng)定時(shí)器T1開(kāi)始計時(shí),同時(shí)連續發(fā)送8個(gè)頻率為40 kHz的超聲波信號(對P3.3口的高、低電平分別進(jìn)行12μs、13μs的延時(shí),實(shí)現從P3.3口輸出頻率為40 kHz的方波信號);延時(shí)10μs后,打開(kāi)外部中斷EX0和總中斷EA,等待IT0/P3.2處電平的跳變。10μs的延時(shí)也可以有效地避免發(fā)射換能器發(fā)出的超聲波脈沖沒(méi)有經(jīng)過(guò)反射物直接被接收器所接收的問(wèn)題。
Step4:超聲波在傳播過(guò)程中,遇障礙物后反射回波。當接收探頭接收到回波時(shí),外部中斷0被觸發(fā),此時(shí)執行中斷服務(wù)程序。即取出定時(shí)器的高低位TH1和TL1,置位測量成功標志succeedFlag,并關(guān)閉中斷。定時(shí)器所計的數據即為超聲波所經(jīng)歷的時(shí)間t。
Step5:由以上步驟中所得定時(shí)器的值和超聲波速度,根據式(1)計算測量距離。
Step6:重復步驟2~5五次后,獲得5次測距值。去除其中的最大值和最小值,取中間3值的平均值為當前的測距結果,并將測距結果顯示在液晶顯示屏第二行“Dist:”之后。
Step7:重復步驟2~6,當有連續三次的預備顯示測距結果與當前的顯示結果不同時(shí),將預備顯示測距結果顯示在液晶顯示屏上。這樣設計是為了避免顯示頻繁導致的液晶顯示抖動(dòng)。
Step8:重復步驟2~7進(jìn)行連續地測量。
程序中顯示一次測距結果的流程圖如圖5所示。

3 實(shí)驗
3.1 調試過(guò)程中出現的問(wèn)題及解決方法
1)回波信號的誤接收
由于超聲波發(fā)射探頭和接收探頭距離較近,當發(fā)射探頭發(fā)射超聲波后,有部分超聲波沒(méi)經(jīng)過(guò)障礙物反射就直接繞射到接收探頭上,這部分信號影響了系統的測量結果。設計中采用了兩個(gè)方法來(lái)解決這個(gè)問(wèn)題,一是略微增大發(fā)射探頭和接收探頭之間的距離,使影響降低;二是在發(fā)射完超聲波之后,開(kāi)外部中斷之前增加10μs的延時(shí),接收電路對此期間接收到的任何信號不予理睬,延時(shí)之后接收到的信號才是有效的回波信號。
2)外部中斷0的觸發(fā)方式
沒(méi)有接收到超聲波信號時(shí),INT0/P3.2引腳為高電平;接收到超聲波信號之后,該引腳變?yōu)榈碗娖?。因此理論上外部中?的觸發(fā)方式采用下降沿觸發(fā)和低電平觸發(fā)均可。而在實(shí)際電路中,當采用下降沿觸發(fā)方式時(shí),由于噪聲的影響,在沒(méi)有回波被接收的情況下,P3.2引腳的高電平經(jīng)常會(huì )出現向下的毛刺信號,該信號引起外部中斷,造成了接收到回波信號的誤判。解決方法是采用低電平觸發(fā),同時(shí)在進(jìn)入外部中斷之后判斷低電平的持續時(shí)間是否大于20μs,只有當滿(mǎn)足持續時(shí)間要求時(shí),才判定接收到的信號為回波信號,而非噪聲。
3.2 測距結果及分析
為了驗證系統的性能.在實(shí)驗室進(jìn)行了實(shí)地測量。將超聲波探頭正對平整的墻壁進(jìn)行測量,根據距離不同記錄了12次實(shí)驗結果,測距結果如表1所示。表中的實(shí)際距離是用塑料軟尺測量得到的,測量距離為測量5次結果之后的平均值。

誤差產(chǎn)生及測量范圍有限的原因主要有:
1)超聲波能量的衰減。由于超聲波在傳播途中回波幅度隨傳播距離成指數規律衰減,使得遠距離回波很難檢測,即使系統已采用相關(guān)措施來(lái)避免誤差,但是超聲波能量的衰減是不可能避免的;
2)測量盲區。超聲波測距系統測量盲區的計算方法為啟動(dòng)定時(shí)器與打開(kāi)外部中斷之間的時(shí)間間隔的一半與超聲波速度的乘積;
3)接收整形電路造成的時(shí)延,信號傳輸和發(fā)射中的失真。
4 結論
設計的超聲波測距系統具有很好的穩定性,連續測量時(shí)有很好的響應速度。同時(shí),系統具有結構簡(jiǎn)單、功耗小、成本低的特點(diǎn),有良好的人機界面,能方便地實(shí)時(shí)顯示測距數據。當然,要滿(mǎn)足更高的精度要求,還須進(jìn)行適當改進(jìn),在某些特殊場(chǎng)合的應用中,還要考慮超聲波的入射角、反射角以及超聲波傳播介質(zhì)的密度、表面光滑度等因素。
評論