a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于STC89C52單片機的超聲波測距系統

基于STC89C52單片機的超聲波測距系統

作者: 時間:2016-10-15 來源:網絡 收藏

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

本文引用地址:http://www.j9360.com/article/201610/307350.htm

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

1 系統硬件設計

系統由單片機主控部分和超聲波測距部分組成,結構如圖1所示。主控部分包括單片機控制模塊、液晶顯示模塊、溫度補償模塊和串口通信模塊。超聲波測距部分包括超聲波發射模塊和接收模塊。

基于STC89C52單片機的超聲波測距系統

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

基于STC89C52單片機的超聲波測距系統

其中T是空氣介質的溫度(℃)。在測量精度要求較高的場合,需要采用溫度補償的方式對超聲波的速度校正。

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

基于STC89C52單片機的超聲波測距系統

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

1.1 主控部分

1.1.1 單片機控制模塊

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

1.1.2 溫度補償模塊

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

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

1.1.3 液晶顯示模塊

液晶顯示模塊用于顯示當前的環境溫度和測得的距離值。顯示器件LCD1602的優點是微功耗、體積小、顯示內容豐富。它識別的是ASCII碼,可以用ASCII碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值。

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

1.2 超聲波測距部分

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

基于STC89C52單片機的超聲波測距系統

1.2.1 超聲波發射電路

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

基于STC89C52單片機的超聲波測距系統

1.2.2 超聲波接收電路

接收電路主要負責將超聲波信號轉變為電信號。換能器在接收到超聲波信號時,由于壓電效應會在兩個接頭上產生微弱的電壓信號,一般為毫伏級。微弱的電壓信號需通過放大電路進行放大、整形,進一步設計比較器電路將模擬信號轉變成為數字信號。

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

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

2 系統軟件設計

程序設計部分的總體思路是:

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

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

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

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

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

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

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

Step7:重復步驟2~6,當有連續三次的預備顯示測距結果與當前的顯示結果不同時,將預備顯示測距結果顯示在液晶顯示屏上。這樣設計是為了避免顯示頻繁導致的液晶顯示抖動。

Step8:重復步驟2~7進行連續地測量。

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

基于STC89C52單片機的超聲波測距系統

3 實驗

3.1 調試過程中出現的問題及解決方法

1)回波信號的誤接收

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

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

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

3.2 測距結果及分析

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

基于STC89C52單片機的超聲波測距系統

誤差產生及測量范圍有限的原因主要有:

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

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

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

4 結論

設計的超聲波測距系統具有很好的穩定性,連續測量時有很好的響應速度。同時,系統具有結構簡單、功耗小、成本低的特點,有良好的人機界面,能方便地實時顯示測距數據。當然,要滿足更高的精度要求,還須進行適當改進,在某些特殊場合的應用中,還要考慮超聲波的入射角、反射角以及超聲波傳播介質的密度、表面光滑度等因素。



評論


相關推薦

技術專區

關閉