導航:首頁 > 編程語言 > 超聲波程序圖

超聲波程序圖

發布時間:2024-06-11 03:31:32

❶ 求C51單片機程序,關於超聲波測距儀

看下這個

原文http://www.elecfans.com/article/87/82/2009/20091219139294.html

基於單片機的倒車防撞預警系統設計和實現

0 引 言
汽車倒車防撞預警系統即是俗稱的倒車雷達,是汽車泊車輔助裝置。在汽車倒車時,倒車雷達採用超聲波測距原理探測汽車尾部離障礙物的距離,當汽車尾部離障礙物的距離達到探測范圍時,倒車雷達通過數碼管實時動態顯示距離。當汽車尾部離障礙物的距離達到設定的安全警告值時,倒車雷達發出報警聲,以警示駕駛員,輔助駕駛員安全倒車。現在生產的中高檔小轎車大多數都配置有倒車雷達,而出於節省成本等方面的考慮,經濟型小轎車、大客車等其他車輛都沒有配置倒車雷達。有市場需求的產品,必然會帶動產品的開發設計。倒車雷達電路種類較多,本文介紹基於單片機控制的倒車雷達系統,該系統採用通用型單片機作為控制電路,方便系統功能擴展。系統電路主要採用集成器件構成,外圍元件少,電路簡潔、調試方便、成本低,利於商品化生產。

1 系統組成及工作原理
倒車防撞預警系統由四路收發一體封閉(防水)型超聲波感測器及其超聲波發射與回波接收電路、超聲波電信號放大電路、單片機控制電路、LED數碼管顯示電路和蜂鳴器聲音報警電路組成。系統組成框圖如圖1所示。

當汽車倒車時由倒車換擋裝置自動接通系統電源,系統上電復位,進入工作狀態。單片機編程產生一串40 kHz的矩形脈沖電壓,經四選一模擬開關加到超聲波發射與回波接收電路,經放大驅動超聲波感測器發射出超聲波,同時單片機開始計時。發射出的超聲波碰到障礙物後形成反射波,部分反射波返回作用於超聲波感測器,經超聲波感測器的聲/電轉換,變成微弱的電信號,該微弱的電信號經放大、整形產生負跳變電壓,向單片機發出中斷申請。單片機收到中斷申請的信號後,立即響應中斷,執行外部中斷服務程序,停止計時,得到超聲波發送和返回的時間T,計算出發射點離障礙物的距離S,即:S=(C·T)/2。C是超聲波在空氣中的傳播速度,在常溫25℃時,C約為346 m/s。若發射出的超聲波在測距范圍內未遇到障礙物,直到單片機定時中斷產生,執行定時中斷服務程序,選擇下一路,依次按後左路、後左中路、後右中路、後右路的順序繼續發射和接收超聲波,並經過計算處理。四路探測處理完畢,選擇四路中測出的最小距離值通過LED數碼管顯示出來。當最小距離值小於預先設定的報警距離時,單片機接通蜂鳴器的電源,蜂鳴器發出報警聲。若四路探測無回波中斷申請,則顯示「-.--」,表明在安全距離內沒有障礙物,再繼續下一輪的循環探測處理。

2 系統硬體電路的設計
2.1 超聲波發射與回波接收電路
超聲波發射與回波接收電路的主要作用是提高驅動超聲波感測器的脈沖電壓幅值,有效地進行電/聲轉換,增大超聲波的發射距離,並通過收發一體的超聲波感測器將返回的超聲波轉變成微弱的電信號。超聲波發射與回波接收電路如圖2所示(畫出一路,其他三路與該路一樣)。

EFR40RS是收發一體封閉(防水)型超聲波感測器,其中心頻率f0=(40.0±1.0)kHz,-3 dB帶寬1 kHz。驅動電壓峰一峰值要求60~150 V。CD4052是雙路四選一模擬開關,單片機的P3.4和P3.5埠輸出選通信號,單片機的P3.3埠輸出一串40 kHz的脈沖電壓,通過CD4052的X路加到選通的開關三極體Q1基極,經脈沖變壓器T1升壓至100 VP-P左右,驅動超聲波感測器EFR40RS發射超聲波。發射時的脈沖電壓幅值大小直接影響測距的遠近,應採用超聲波專用的脈沖變壓器。反射回的超聲波經原收發一體封閉型超聲波感測器變成毫伏級的一串脈沖電信號。由於回波電信號的幅值小,VD3和VD4二極體截止,該信號不會通過T1變壓器副邊線圈形成短路。VD1和VD2二極體也截止,所以回波電信號經R1和C1,通過CD4052的Y路送到超聲波電信號放大與整形電路。R1和VD1,VD2組成雙向限幅電路,避免發射時的大信號造成超聲波放大與整形電路阻塞,甚至損壞電路。

2.2 超聲波電信號放大電路
超聲波電信號放大電路採用集成電路CX20106A構成。CX20106A是日本索尼公司生產的紅外遙控信號接收集成電路。通過外部所接電阻,將其內部帶通濾波電路的中心頻率f0設置為40 kHz,就可以接收放大超聲波電信號,並整形輸出負脈沖電壓。
應用電路如圖3所示。1腳是超聲波電信號輸入端,2腳與地之間連接RC串聯網路,是內部前置放大電路負反饋網路的組成部分。電阻R5的數值確定前置放大電路的增益。R5電阻值減小,負反饋減弱,放大倍數增大;反之,則放大倍數減小。3腳與地之間連接檢波電容C3,適當改變電容C3的大小,可以改變超聲波電信號放大和整形電路的靈敏度和抗干擾能力。C3電容量大,靈敏度低,抗干擾能力強;C3容量小,靈敏度高,抗干擾能力弱,易造成誤動作。5腳與電源間接入一個電阻,用以設置內部帶通濾波電路的中心頻率f0。

當R6=200 kΩ時,f0=40 kHz。6腳與地之間接一個積分電容,標准值為330 pF。如果該電容值取得太大,會使探測距離變短。7腳是電路集電極開路輸出端,R7是該引腳的上拉電阻。集成電路CX20106A無信號輸入時,7腳輸出高電平,當輸入的超聲波電信號經放大、整形後,7腳輸出一個負脈沖電壓。
2.3 單片機控制電路和顯示、報警電路
電路如圖4所示。由於系統用到單片機的輸入/輸出埠不多,在不考慮功能擴展時,從功能夠用和低成本的角度考慮,採用AT89C2051單片機作為控制電路的核心器件。AT89C2051單片機共有20個引腳,其中有15個I/O埠(P3.6無引出腳)。兩個16位定時器/計數器,其體積小、價格低。採用12 MHz高精度的晶振,以獲得較穩定的時鍾頻率,減小測量誤差。單片機的P3.3埠周期性的輸出一串40 kHz的矩形脈沖,通過雙路四選一模擬開關CD4052周期性地加到四路超聲波發射與回波接收電路。單片機的P3.4和P3.5埠輸出雙路四選一模擬開關CD4052的選通信號。單片機的P3.2埠為外部中斷0中斷申請信號輸入端。三位LED數碼管採用動態掃描顯示。U4的小數點常亮,U4的單位為m,U5的單位為dm,U6的單位為cm。採用有源蜂鳴器作為報警發音器件,一是器件成本低,二是便於動態掃描顯示的軟體編程。

3 系統軟體的設計
系統軟體採用模塊化設計,方便擴展移植。採用匯編語言編程。主要有主程序、T0中斷服務程序、外部中斷0服務程序、超聲波發生子程序。

3.1 主程序
本系統有四路測距通道,採用分時工作,按後左一後左中一後右中一後右順序循環測距。每一路發射超聲波後的等待外部中斷時間應大於超聲波在最大有效探測距離內往返時間。所以按最大有效探測距離可以估算出最短的循環間隔時間。因為超聲波在空氣中傳播能量會不斷衰減,所以超聲波測距存在最大有效探測距離。這最大有效探測距離與多種因數有關:
與超聲波感測器性能的好壞、與驅動超聲波感測器的脈沖電壓幅值(功率)的大小、障礙物大小和形狀、障礙物吸波特性以及反射波與入射波之間的夾角、與超聲波放大和整形電路的靈敏度等有關。設定最大有效探測距離為8 m(收發一體封閉型超聲波感測器比較難達到,實際上也沒有必要探測很遠的障礙物,只是設計留有裕量。由於顯示位數有限,也必須對最大探測距離做限制),則循環工作的間隔時間Tm=2S/C=2×8/346A46 ms,加上避免接收超聲波感測器余振的延時和程序執行時間,留足裕量,設定Tm△56 ms。
主程序流程圖如圖5所示。首先是對系統初始化。埠p1.0、P3.3置0;設置堆棧,中斷允許總控制位EA允許中斷(EA=1);允許外部中斷0中斷(EX0=1),採用邊沿觸發方式(IT0=1);設置定時器T0允許中斷(ET0=1),以16位工作方式定時約56 ms;設置定時器T1以16位工作方式定時/計數,計數初值0000H,然後啟動T0定時。設置顯示數據初值為三位BCD碼999(cm),對應字形段碼顯示「---」。四路探測處理完畢後,將四組數據中的最小值送入顯示緩沖區,通過LED數碼管顯示。同時該值與設定的100 cm值比較,若四組數據中的最小值小於100 cm,P3.7埠置0,Q2三極體導通,有源蜂鳴器得電發出報警聲。

由於單片機採用12 MHz的晶振,1個機器周期為1μs,所以計數器每計一個數就是1μs,定時器T1工作模式設置為16位定時/計數器模式,則其最大定時65.536 ms。由於定時器T0每56 ms產生中斷,執行T0中斷服務程序時停止T1計時,所以T1計時不會產生溢出中斷。一輪四路探測處理完畢所用時間大約是56 ms×4=224 ms,用時很短,而倒車速度又比較慢,所以可以做到實時動態顯示。
3.2 T0中斷服務程序
T0中斷服務程序流程圖如圖6所示。每隔56 ms分別按後左→後左中→後右中→後右順序選通下一路超聲波發射與回波接收電路,調用超聲波發生子程序,送出16個40 kHz的超聲波脈沖電壓,定時器T1開始計時,定時器T0開始定時56 ms,使每路工作56 ms。

為了避免接收到超聲波感測器余振的直射波產生的中斷申請,延時2.8 ms後,才允許外部中斷0中斷,等待接收返回的超聲波信號。所以,最小探測距離(盲區)Smin=Ct/2=346×0.002 8/2△0.48 m。四路探測處理完畢,將四路中最小值送入顯示緩沖區。若在四路探測中有些路在有效探測范圍內發射的超聲波未遇障礙物,無返回波,外部中斷0不產生中斷申請信號,或者是進入探測盲區,外部中斷0產生的中斷申請不被受理,則定時器T1計時到定時器T0產生中斷,在T0中斷服務程序中,用三位BCD碼999(三位十進制數最大值999 cm)置夠四組數據。若顯示緩沖區的四組數據都是999時,則對應字形段碼顯示「---」。倒車伊始,LED數碼顯示器就顯示「-.--」,表明在安全距離內沒有障礙物;若發出報警聲後,又顯示「-.--」,表明進入了探測盲區。
3.3 外部中斷0服務程序
外部中斷O服務程序流程圖如圖7所示。單片機一旦接收到返回超聲波信號(即INT0引腳由高電平跳變為低電平),立即進入外部中斷0服務程序。首先停止定時器T1計時,禁止外部中斷0中斷。然後將定時器T1中的數N,也即將超聲波往返所用的時間N(單位:μs),按式S=CT/2=(346 x N×10-6)/2=173×N÷10 000計算,即得被測物的距離(單位:cm),將計算結果以百位、十位、個位BCD碼方式送入比較大小的緩沖區,以備比較大小使用。然後等待定時器T0定時56 ms中斷的產生,繼續下一路的探測處理。

3.4 超聲波發生子程序
超聲波發生子程序通過P3.3埠發送16個周期是25μs(即頻率40 kHz,1個周期內高電平持續13μs、低電平持續12 μs)的矩形脈沖電壓。脈沖串個數在10~20個比較合適。脈沖個數太少,發射強度小,探測距離短;脈沖個數太多,發射持續時間長,在離障礙物距離近時,脈沖串尚未發射完畢,先發射出去的脈沖產生的回波就到達接收端,影響測距結果,造成測距盲區增大。

4 實現應用分析
本系統在實驗室條件下進行了可行性的研究設計,要實際應用中就必須考慮測量精度和工作穩定性的問題。因此,本系統可採取幾項措施來提高測量精度和工作穩定性。
(1)超聲波的傳播速度與溫度有關。為了適應不同環境溫度下的測距需要,提高測量精度,硬體電路上可增加檢測車外環境溫度的環節。單片機根據實測的溫度值,再計算確定超聲波的傳播速度,即C=331.4+0.6lt。t是環境溫度。或者在不增加硬體成本情況下,可考慮通過實驗數據分析,找到測量值與實際值偏差特點和規律,通過軟體編程對測量數據進行校正處理。
(2)軟體設計中採用數字濾波中的算術平均濾波程序對每個測距點進行連續多次測量,取平均值作為該測距點的測量數據,以提高數據采樣的可靠性。要盡量減小探測盲區,所設定的延時時間可根據實際所用超聲波感測器余振時間而定,可在實際調試中確定最小延時時間。
(3)倒車雷達安裝在車上,倒車雷達的工作環境非常惡劣,汽車倒車工作時,高壓點火產生很強的電磁輻射,會影響電路正常工作。所以在硬體及軟體方面要考慮採取抗干擾措施,提高系統工作的可靠性。如用金屬殼屏蔽電路,採用屏蔽線連接超聲波感測器;在滿足測量距離的情況下,可適當調大超聲波電信號放大和整形電路中檢波電容C3的容量。硬體上可增加「看門狗」電路,軟體設計添加指令冗餘、軟體陷阱、或設置軟體「看門狗」,防止程序「跑飛」或者進入死循環。對於駕駛員來說,倒車時主要關心的是車後方有無障礙物、以及障礙物離車大約有多遠等問題。由於車子制動時存在慣性,倒車遇到障礙物時,駕駛員總要提前制動。考慮性價比,倒車雷達測量精度不必很高。但從倒車安全考慮,此時的測量顯示值寧大勿小。

5 結 語
本系統充分利用了單片機的內部資源,用軟體編程產生超聲波矩形脈沖,代替硬體的超聲波發生電路,節省了硬體成本。採用一塊集成器件實現超聲波接收放大和整形,避免了採用多級集成運放組成高增益放大電路易產生自激等問題。實驗表明設計可行。在不增加硬體成本時,通過完善軟體設計,可提高系統測量精度和工作的可靠性,能夠滿足使用要求。在考慮功能擴展時,可以採用帶「看門狗」的AT89S52單片機,以增加擴展埠。在超聲波測距的基礎上,如可增加防盜報警功能、車載蓄電池電壓檢測功能等,若增加微型攝像頭和小型液晶顯示器,便成為可直接觀察車後方的可視倒車雷達。本系統實用性強,性價比高。

❷ 51單片機超聲波測距儀 流程圖 及 程序 急求50分

#include<at89x52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define nop _nop_()
uchar code WE0[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};//0x40-不帶點
//unsigned char code WE1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xf0,0xef,0x80}; //0-9 帶點
uchar code W[]={0xfe,0xfd,0xfb,0xf7} ;
unsigned char temp[3];
sbit RX=P3^4; //接受端,ECHO
sbit TX=P3^5; //控制端,TRIG
sbit wei=P2^7;
sbit an=P2^6;
bit flag=0;
uint time=0;
uint s=0;
void delay(int xms)//延時大概x毫秒
{
int i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void start() //給至少10us的高電平,啟動模塊
{
TX=1;
nop;
nop;
nop;
nop;
nop;
nop;
nop;
nop;
nop;
nop;
nop;
nop;
nop;
nop;
TX=0;
}
uchar count()
{
time=TH0*256+TL0;
TH0=0;
TL0=0; //清零
s=(time*1.7)/100;//厘米
return s;
}
void dispros()//數據分割
{
temp[0]=s/100%10;//百位
temp[1]=s/10%10; //十位
temp[2]=s%10; //個位
}
void display() //顯示函數
{
if(s>=500||s<=2) //進入盲區,溢?
{
uchar i;
s=0;
TH0=0;
TL0=0; //清零
P0=0x40;
an=1;
an=0;
for(i=0;i<3;i++)
{

P0=W[i];
wei=1;
wei=0;

}
}
else //正常顯示
{
wei=1;
P0=0xfe;
wei=0;
an=1;
P0= WE0[temp[0]];
delay(3);
an=0;
wei=1;
P0=0xfd;
wei=0;
an=1;
P0= WE0[temp[1]];
delay(2);
an=0;
wei=1;
P0=0xfb;
wei=0;
an=1;
P0= WE0[temp[2]];
delay(1);
}
}

void main()
{
TMOD=0X01; //定時器工作方式0
TH0=0;
TL0=0;
EA=1; //開總中斷
ET0=1;//開定時器中斷
while(1)
{
start();//啟動模塊
while(!RX); //當RX為零時等待
TR0=1; //啟動計數
while(RX); //當RX為1時計數並等待
TR0=0; //關閉計數器
count(); //計數
dispros(); //處理,分割數據
display(); //顯示
delay(1);
}
}

❸ 求基於AT89C52超聲波測距簡易設計的源程序,要求用3個LED管顯示其測距,精確到小數點後2位如,X.XX米。

目前國內超聲波測距器的設計大多採用匯編語言設計。由於單片機應用系統的日趨復雜,要求所寫
代碼規范化,模塊化,並便於多人以軟體工程的形式進行協同開發,匯編語言作為傳統的單片機應用系
統的編程語言,已經不能滿足這樣的實際需要了,而C語言以其結構化和能產生高效代碼滿足了這樣的需
求,成為電子工程師進行單片機系統編程時的首先編程語言。在本設計中,由於C語言程序有利於實現較
復雜的演算法,匯編語言程序具有較高的效率並且容易精確計算程序運行的時間,而超聲波測距器的程序既
有較復雜的距離計算又要求精確計算超聲波測距時程序運行的時間,所以本設計採用C語言和匯編語言
混合編程來實現。本文論述的是一種基於AT89C52單片機的超聲波測距器,可用於汽車倒車等場合⋯。
1設計要求
設計一個超聲波測距器,可以應用於汽車倒車、建築施工工地以及一些工業現場的位置監控,也可用
於如液位、井深、管道長度的測量等場合。要求測量范圍在0.10—5.00 m,測量精度lem,測量時與被測物
體無直接接觸,能夠清晰穩定地顯示測量結果。
2設計思路
2.1超聲波及其測距原理
超聲波是指頻率高於20KHz的機械波。為了以超聲波作為檢測手段,必須產生超聲波和接收超聲波。
完成這種功能的裝置就是超聲波感測器,習慣上稱為超聲波換能器或超聲波探頭。超聲波感測器有發送
器和接收器,但一個超聲波感測器也可具有發送和接收聲波的雙重作用。超聲波感測器是利用壓電效應
的原理將電能和超聲波相互轉化,即在發射超聲波的時候,將電能轉換為超聲波,發射超聲波;而在收到回
波的時候,則將超聲振動轉換成電信號。
超聲波測距的原理一般採用渡越時間法TOt(time of fliight)。首先測出超聲波從發射到遇到障礙物返
回所經歷的時間,再乘以超聲波的速度就得到二倍的聲源與障礙物之間的距離。測量距離的方法有很多
種,短距離的可以用尺,遠距離的有激光測距等,超聲波測距適用於高精度的中長距離測量。因為超聲波
收稿日期:2008-04-08
作者簡介:周功明(1963一),男,副教授,主要研究方向:電子信息科學技術。
·50· 綿陽師范學院學報(自然科學版) 第27卷
在標准空氣中的傳播速度為331.45粑秒,由單片機負責計時,單片機使用12.0M晶振,所以此系統的測
量精度理論上可以達到毫米級。由於超聲波指向性強,能量消耗緩慢,在介質中傳播距離遠,因而超聲波
可以用於距離的測量。利用超聲波檢測距離,設計比較方便,計算處理也較簡單,並且在測量精度方面也
能達到要求。
超聲波發生器可以分為兩類:一類是用電氣方式產生超聲波,一類是用機械方式產生超聲波。本課題
屬於近距離測量,可以採用常用的壓電式超聲波換能器來實現【7】。
2.2超聲波測距器的系統框圖
根據設計要求並綜合各方面因素,可以採用AT89C52單片機作為主控制器,用動態掃描法實現LED
數字顯示,超聲波驅動信號用單片機的定時器完成,超聲波測距器的系統框圖如下圖l所示¨2|:
3系統組成
3.1硬體部分
主要由單片機系統及顯示電路、超聲波發射電路
和超聲波檢測接收電路三部分組成。採用AT89C52來
實現對CX20106A紅外接收晶元和TCT40—10系列超
聲波轉換模塊的控制。單片機通過P1.0引腳經反相

超聲波接收E :, LED顯示單片機r
/\
Z ∑
超聲波發送高控制器
:> 掃描驅動
圖1 超聲波測距器系統設計框圖
Fig.1 Ultrasonic eLangi.g system design diagram
器來控制超聲波的發送,然後單片機不停的檢測INT0引腳,當INTO引腳的電平由高電平變為低電平時就
認為超聲波已經返回。計數器所計的數據就是超聲波所經歷的時間,通過換算就可以得到感測器與障礙
物之間的距離¨≈J。
3.2軟體部分
主要由主程序、超聲波發生子程序、超聲波接收中斷程序及顯示子程序等部分。
4系統硬體電路設計
4.1單片機系統及顯示電路
單片機採用AT89C52或其兼容系列。採用12MHz高精度的晶振,以獲得較穩定的時鍾頻率,減小測
量誤差。單片機用P1.0埠輸出超聲波轉化器所需的40KHz方波信號,利用外中斷0口檢測超聲波接收
電路輸出的返回信號。顯示電路採用簡單實用的4位共陽LED數碼管,段碼用74LS244驅動,位碼用PNP
三極體驅動。單片機系統及顯示電路如下圖2所示『1。31。
圖2單片機及顯示電路原理圖
Fig.2 MCU and display circuit schematics
第8期周功明等:基於AT89C52單片機的超聲波測距器設計·51.
4.2超聲波發射電路原理圖
壓電超聲波轉換器的功能:利用壓電晶體諧振工作。內部結構如圖3『3Ⅲ1所示,它有兩個壓電晶片和
一個共振板。當它的兩極外加脈沖信號,其頻
率等於壓電晶片的固有振盪頻率時,壓電晶片PI.O
將會發生共振,並帶動共振板振動產生超聲波,
這時它就是一超聲波發生器;如沒加電壓,當共
振板接收到超聲波時,將壓迫壓電振盪器作振
動,將機械能轉換為電信號,這時它就成為超聲
波接收轉換器。超聲波發射轉換器與接收轉換
器其結構稍有不同。
4.3超聲波檢測接收電路圖3發射電路原理圖
參考紅外轉化接收電路,本設計採用集成
F『g·3 U1『ms。nie劬啪mi『婦c『咖1『∞hem蚯c
電路CX20106A,這是一款紅外線檢波接收的專用晶元,常用於電視機紅外遙控接收器。考慮到紅外遙控
常用的載波頻率38KHz與測距超聲波頻率
40KHz較為接近,可以利用它作為超聲波檢測
電路。如圖4【3 J[71超聲波檢測接收電路原理圖
所示,適當改變C4的大小,可改變接收電路的
靈敏度和抗干擾能力。⋯. J。j-二
5系統程序設計
超聲波測距軟體設計主要由主程序,超聲
波發射子程序,超聲波接收中斷程序及顯示子
程序組成。下面對超聲波測距器的演算法,主程
序,超聲波發射子程序和超聲波接收中斷程序
逐一介紹。
5.1超聲波測距器的演算法設計
GND
圖4超聲波檢測接收電路原理圖
Fig.4 Ultrasonic receiver and detection circuit schematic
圖5【_列示意了超聲波測距的原理,即超聲
波發生器T在某一時刻發出的一個超聲波信號,當超聲波遇到被測物
體後反射回來,就被超聲波接收器R所接受。這樣只要計算出發生信
號到接收返回信號所用的時問,就可算出超聲波發生器與反射物體的
距離。
距離計算公式:d=s/2=(c木t)/2,其中d為被測物與測距器的距
離,s為聲波的來迴路程,c為聲速,t為聲波來回所用的時間。
圖5超聲波測距原理圖
Fig.5 Ultrasonic Ranging schematic
聲速c與溫度有關(見表1),如溫度變化不大,則可認為聲速是基
本不變的。如果測距精度要求很高,則應通過溫度補償的方法加以校正。聲速確定後,只要測得超聲波往
返時間,即可求得距離。在系統加入溫度感測器來監測環境溫度,可進行溫度補償。這里可以用DSl8820
測量環境溫度,根據不同的環境溫度確定一聲速提高測距的穩定性。為了增強系統的可靠性,可在軟硬體
上採用抗干擾措施。
表1不同溫度下的超聲波速表
Table I Under different temperatures ultrasonic velocity Table
·52· 綿陽師范學院學報(自然科學版) 第27卷
5.2主程序
主程序首先對系統環境初始化,設置定時器1D工作模式為16位的定時計數器模式,置位總中斷允許
位EA並給顯示端Po和P2清0。然後調用超聲波發生子程序送出一個超聲波脈沖,為避免超聲波從發射
器直接傳送到接收器引起的直接波觸發,需延遲0.1ms(這也就是測距器會有一個最小可測距離的原因)
後,才打開外中斷0接收返回的超聲波信號。由於採用12MHz的晶振,機器周期為lus,當主程序檢測到接
收成功的標志位後,將計數器喲中的數(即超聲波來回所用的時
間)按下式計算即可測得被測物體與測距儀之間的距離,設計時取
20℃時的聲速為344 m/s則有:d=(C木TO)/2=172T0/10000cm
(其中,ID為計數器,ID的計數值)。
測出距離後結果將以十進制BCD碼方式LED,然後再發超聲
波脈沖重復測量過程。主程序框圖如圖6所示。
5.3超聲波發生子程序和超聲波接收中斷程序
超聲波發生子程序的作用是通過PI.0埠發送2個左右的
超聲波信號頻率約40KHz的方波,脈沖寬度為12 US左右,同時把
計數器,ID打開進行計時。超聲波測距器主程序利用外中斷0檢
測返回超聲波信號,一旦接收到返回超聲波信號(INT0引腳出現
低電平),立即進入中斷程序。進入該中斷後就立即關閉計時器
,ID停止計時,並將測距成功標志字賦值l。如果當計時器溢出時
還未檢測到超聲波返回信號,則定時器rID溢出中斷將外中斷0關
閉,並將測距成功標志字賦值2以表示此次測距不成功H旬J。
5.4超聲波測距器的部分程序清單
/宰超聲波測距器彈片機c程序使用Keil C51 ver 7.09

木/
#include<re951.h>
#define uchar unsigned int
#define uint unsigned int
#define ulong unsigned long
Extem void ca_t(void);
Extem void delay(uint);
Extem void display(unchar);
Data unehar testtok;
/木超聲波測距器主程序術/
Void main(void)
{data unchar dispram[5];
data uint i;
data ulong time;
p0=0xff;
pl=0xff;
TMOD=0X11:
IE=0x80;
While(1)
{.「}
開始
系統初始化
發送超聲波脈沖
等待發射超聲波
計算距離
顯示結果0.5s
圖6主程序框圖
diagram of the main program
第8期周功明等:基於AT89C52單片機的超聲波測距器設計·53·
6軟硬體調試
超聲波測距儀的製作和調試,其中超聲波發射和接收採用中15的超聲波換能器TCT40一IOFl(T發
射)和TCT40—10S1(R接收),中心頻率為40kHz,安裝時應保持兩換能器中心軸線平行並相距4—8 cm,
其餘元件無特殊要求。若能將超聲波接收電路用金屬殼屏蔽起來,則可提高抗干擾能力。根據測量范圍
要求不同,可適當調整與接收換能器並接的濾波電容C4的大小,以獲得合適的接收靈敏度和抗干擾能力。
硬體電路製作完成並調試好後,便可將程序編譯好下載到單片機試運行。根據實際情況可以修改超
聲波發生子程序每次發送的脈沖寬度和兩次測量的間隔時間,以適應不同距離的測量需要∞】【71。
7 結束語
本文設計的是基於AT89C52單片機的超聲波測距器,可應用於汽車倒車等場合,提醒駕駛員倒車時有
效的避開可能對倒車造成危害的障礙物和行人,從而有效避免由於倒車造成的汽車碰撞或擦傷經濟損失
和人身安全問題。具有較強的實用性。
參考文獻:
[1] 周功明.基於AT89C2051彈片機的防盜自動報警電子密碼鎖系統設計[J].綿陽師范學院學報,2007,26(5):112—
116.
[14]
張齊.單片機應用系統設計技術一基於c語言編程[M].北京:電子工業出版社,2006.
李光飛.單片機c程序設計實例指導[M].北京:航空航天大學業出版社,2005.
樓燃苗,李光飛.51系列單片機設計實例[M].北京:航空航天大學業出版社,2003.
Zhongbo Li.Electronic Technique[M].Beijing:Mechannic Instrical Prees,2003.
賴麒文.8051單片機c語言徹底應用[M].北京:科學業出版社,2002.
何希才.感測器及其應用電路[M].北京:電子工業出版社,2001.
丁元傑.單片微機原理及應用[M].北京:機械工業出版社,2001.
孫串友,孫曉斌.感測技術基礎[M].北京:電子工業出版社,2001.
馬忠梅.單片機的c語言應用程序設計[M].北京:航空航天大學業出版社,1999.
劉喜昂,周志宇.基予多超聲感測器的機器人安全避障技術[J].測控技術,2003,23(2):71—73.
翟國富,劉茂愷.一種實時高精度的機器人用超聲波測距處理方法[J].應用聲學,1990,15(1):17—24.
Cray C,Swinhoe C F,Myinl.Target controlled infusion of ketamine曲analgessia for TIV A with propof01.Can.J Anesth,1999,
40:957.
R J Higgens.Electronics and Analog Integrated Circuits[M].N.J:Prentice—Hall Inc,2001.

閱讀全文

與超聲波程序圖相關的資料

熱點內容
學韓語用什麼app 瀏覽:478
110固態硬碟分區win10 瀏覽:317
怎麼恢復系統文件 瀏覽:358
數據線轉換器多少錢 瀏覽:274
美國隊長qq皮膚多少錢 瀏覽:630
win8word文檔在哪 瀏覽:180
甘肅省人事局文件在哪裡 瀏覽:689
spss安裝輸入代碼 瀏覽:546
網路語言知乎 瀏覽:596
iphoneicloud無法顯示 瀏覽:112
ict程序包 瀏覽:729
java有哪些條件語句 瀏覽:345
冒險島120級去哪裡升級 瀏覽:511
手機輸入法聲音文件 瀏覽:876
下劃線哪個app 瀏覽:48
win10h1z1切換桌面 瀏覽:911
js定義集合數組 瀏覽:153
win10企業關閉自動更新 瀏覽:920
js擴展對象 瀏覽:370
受控文件的章印內容怎麼寫 瀏覽:463

友情鏈接