超聲波具有定向性好、能量集中、在傳輸過程中衰減較小、反射能力較強等優(yōu)點,超聲波傳感器可廣泛應用于非接觸式檢測方法,因而采用仿真技術(shù)進行超聲波測距。
目前國內(nèi)的超聲波測距專用集成電路都是只有厘米級的測量準確度。通過分析超聲波測距誤差產(chǎn)生的原因,提高測量時間差到微秒級,以及用LM92 溫度傳感器進行聲波傳播速度的補償后,設計的高準確度超聲波測距儀能達到毫米級的測量準確度。
1 超聲波測距報警系統(tǒng)基本原理
如圖1 所示,使單片機可接收超聲波模塊輸出的距離信號,并對其進行合理的處理后,在顯示模塊上實時顯示超聲波模塊與障礙物的距離。
圖1 系統(tǒng)連接示意
單片機發(fā)出40 kHz 的方波信號,經(jīng)放大后通過超聲波發(fā)射器輸出;超聲波接收器將接收到的超聲波信號經(jīng)放大器放大,用鎖相環(huán)電路進行檢波處理后,啟動單片機中斷程序,測得時間為t.
再通過軟件編程進行判別、計算,得出所測距離值并由LED 數(shù)碼管顯示,其原理框圖如圖2。
圖2 超聲波測距儀原理框圖
發(fā)射器發(fā)出的超聲波以速度v 在空氣中傳播,在到達被測物體時被反射返回,由接收器接收,其往返時間為t.由公式:測出的距離 L (m) = 常溫下的聲速340 (m/s)× 感應時間t (s) / 2,算出被測物體的距離。由于超聲波也是一種聲波,其聲速v 與溫度有關(guān),如果溫度變化不大,則可認為聲速是基本不變的。如果測距準確度要求很高,則應通過溫度補償?shù)姆椒右孕拚?/p>
2 系統(tǒng)硬件設計
2.1 超聲波測距原理
單片機在 T0 時刻發(fā)射方波,同時啟動定時器開始計時,當收到回波后,產(chǎn)生一個負跳變到單片機中端口,單片機響應中斷程序,定時器停止計數(shù)。計算時間差,即可得到超聲波在介質(zhì)中傳播的時間t ,由此便可計算出距離。其時序圖如圖3 所示。
圖3 超聲波時序圖
2.2 硬件電路
硬件電路的設計主要包括單片機系統(tǒng)及顯示電路、超聲波發(fā)射電路和超聲波檢測接收電路三部分。單片機采用STC89C51 或其兼容系列。采用12 MHz 高準確度的晶振,以獲得較穩(wěn)定時鐘頻率,減小測量誤差。單片機用P2.4 端口輸出超聲波換能器所需的40 kHz 的方波信號,利用外中斷0 口監(jiān)測超聲波接收電路輸出的返回信號。顯示電路采用簡單實用的4 位共陽LED 數(shù)碼管,段碼用程序驅(qū)動,位碼用PNP 三極管驅(qū)動。
2.3 各主要模塊的硬件
STC89C51 芯片引腳與封裝如圖4 所示。
圖4 STC89C51 引腳
引腳功能說明:
(1)VCC:電源電壓。
(2)GND:接地。
(3)RST:復位輸入。當振蕩器復位器件時,要保持RST 腳兩個機器周期的高電平時間。
(4)/EA/VPP:當/EA 保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。
(5)XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。
(6)XTAL2:來自反向振蕩器的輸出。
(7)P0 口:P0 口為一個8 位漏級開路雙向I/O 口,也即地址/ 數(shù)據(jù)總線復用口。作為輸出口用時,每腳可吸收8TTL 門電流。
(8)P1 口:P1 口是一個內(nèi)部提供上拉電阻的8 位雙向I/O 口,P1 口緩沖器能吸收或輸出4TTL門電流。
(9)P2 口:P2 口為一個內(nèi)部上拉電阻的8 位雙向I/O 口,P2 口緩沖器可吸收或輸出4 個TTL門電流,當P2 口被寫"1"時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。
(10)P3 口:P3 口管腳是8 個帶內(nèi)部上拉電阻的雙向I/O 口,可吸收或輸出4 個TTL 門電流。
P3 口也可作為AT89C52 的一些特殊功能口,如表1 所示。
表1 P3 特殊功能口
P3 口同時為閃爍編程和編程校驗接收一些控制信號。
(11)ALE//PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。
(12)/PSEN:外部程序存儲器的選通信號。
在由外部程序存儲器取指期間,每個機器周期兩次/PSEN 有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN 信號將不出現(xiàn)。
2.4 超聲波發(fā)射電路
超聲波發(fā)射電路原理如圖5 所示。輸出端采用兩個反向器并聯(lián),用以提高驅(qū)動能力。上位電阻R10、R11 一方面可以提高反向器74LS04 輸出高電平的驅(qū)動能力,另一方面可以增加超聲波換能器的阻尼效果,縮短其自由振蕩時間。
圖5 超聲波發(fā)射電路原理圖
2.5 超聲波檢測接收電路
集成電路CX20106A 是一款紅外線檢波接收的專用芯片。考慮到紅外遙控常用的載波頻率38 kHz 與測距的超聲波頻率40 kHz 較為接近,可以利用它制作超聲波檢測接收電路( 如圖6)。實驗證明用CX20106A 接收超聲波( 無信號時輸出高電平),具有很好的靈敏度和較強的抗干擾能力。
圖6 超聲波檢測接收電路
2.6 顯示電路
顯示電路采用簡單實用的4 位共陽LED 數(shù)碼管,段碼用74LS244 驅(qū)動,位碼用PNP 三級管驅(qū)動。接P2.1 引腳的為個位顯示數(shù)碼管,其小數(shù)點在P2.1 有效時顯示,此功能由軟件來完成。
2.7 復位功能
系統(tǒng)應具備測距啟動功能,可以復位系統(tǒng),使其開始重新測距。
綜上所述,本系統(tǒng)的特點是利用單片機控制超聲波的發(fā)射和對超聲波自發(fā)射至接收往返時間的計時,單片機選用STC89C52,經(jīng)濟易用,且片內(nèi)有8K 的ROM,便于編程。電路原理如圖7 所示。
3 軟件方案
系統(tǒng)軟件設計采用模塊化設計,主要包括主程序設計、T0 中斷服務子程序、外部中斷服務子程序、距離計算子程序、LED 顯示子程序設計等。
主程序首先是對系統(tǒng)環(huán)境初始化,設置定時器T0工作模式為16 位定時計數(shù)器模式。置位總中斷允許位EA 并給顯示端口P0 和P2 清0.
圖7 電路原理
然后調(diào)用超聲波發(fā)生子程序送出一個超聲波脈沖,為了避免超聲波從發(fā)射器直接傳送到接收器引起的直射波觸發(fā),需要延時約0.1 ms,然后才打開外中斷0 接收返回的超聲波信號。
測出距離后結(jié)果將以十進制BCD 碼方式送往LED 顯示約0.5 s,然后再發(fā)超聲波脈沖重復測量過程。為了有利于程序結(jié)構(gòu)化和容易計算出距離,主程序采用C 語言編寫。
3.1 主程序
· 系統(tǒng)控制初始化LED、初始化計數(shù)控制部分,清除計數(shù)值。
· 單片機超聲波脈沖信號。
· 立刻置INT0 為1,打開計時器,等待回波信號。
· 回波信號到達,關(guān)閉計時器,P3.3 為0,清INT0 為0.
· 單片機讀出計數(shù)值。
· 單片機將計數(shù)值進行計算后得出的距離值,顯示在LED 上。
· 當測量距離< 10.0 cm 或> 50.0 cm 時,報警系統(tǒng)燈亮。
· 當按下復位鍵時,啟動復位功能。
主程序流程圖如圖8 所示。
圖8 主程序流程
3.2 定時中斷服務子程序
超聲波發(fā)生子程序的作用是通過P3.3 端口發(fā)送2 個左右頻率約40 kHz 的方波的超聲波脈沖信號,同時把計數(shù)器T0 打開進行計時。定時中斷子程序如圖9 所示。
圖9 定時中斷服務子程序
3.3 功能顯示
如圖10 所示,通過數(shù)碼管顯示測出距離為14.3 cm,屬于10.0 ~ 50.0 cm 正常范圍。
圖10 超聲波測距正常范圍
如圖11 所示,超聲波測出的距離為9.4 cm,< 10.0 cm,報警系統(tǒng)啟動,LED 燈亮。
圖11 超聲波測距< 10.0 cm
如圖12 所示,超聲波測出的距離為50.3 cm,> 50.0 cm,報警系統(tǒng)啟動,LED 燈亮。
圖12 超聲波測距大于50.0 cm
如圖13 所示,按下鍵盤模塊中的按鍵,復位系統(tǒng),數(shù)碼管顯示距離數(shù)歸零。
圖13 啟動復位功能
評論
查看更多