基于52單片機(jī)的短距離超聲波測(cè)距系統(tǒng)_第1頁(yè)
基于52單片機(jī)的短距離超聲波測(cè)距系統(tǒng)_第2頁(yè)
基于52單片機(jī)的短距離超聲波測(cè)距系統(tǒng)_第3頁(yè)
基于52單片機(jī)的短距離超聲波測(cè)距系統(tǒng)_第4頁(yè)
基于52單片機(jī)的短距離超聲波測(cè)距系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于52單片機(jī)的短距離超聲波測(cè)距系統(tǒng)一、工作原理超聲波的頻率高于聲波,這種機(jī)械波與聲波相比具有很強(qiáng)的指向性,并且由于其波長(zhǎng)較短,其繞射能力較差,反射能力較強(qiáng)。在遇到障礙物的情況下,超聲波會(huì)被反射回來(lái)。根據(jù)發(fā)射波和反射波的時(shí)間差,就可以計(jì)算出探頭與障礙物之間的距離。在實(shí)際的電路中,使用單片機(jī)控制傳感器發(fā)射和判斷反射波。從單片機(jī)的P37口產(chǎn)生一組40KHz 的超聲波,經(jīng)由發(fā)射模塊的發(fā)射探頭發(fā)出,緊接著超聲波接受模塊接收回波,經(jīng)由CX20106A產(chǎn)生一個(gè)負(fù)跳變引起單片機(jī)得外部中斷,通過(guò)計(jì)算發(fā)射到接收所經(jīng)歷的時(shí)間就可以很容易計(jì)算出超聲波與目標(biāo)之間的距離。 1. 測(cè)量距離:501000mm2. 載波頻率

2、:38KHz3. 工作電壓:DC5V4. 工作電流 :30mA 典型,50mA 最大5. 輸出信號(hào):5V方波6. 回波信號(hào) :負(fù)跳變產(chǎn)生的下降沿7. 下一次測(cè)量的延時(shí):200 uS圖3.1 系統(tǒng)工作流程圖超聲波測(cè)距系統(tǒng)是由硬件和軟件兩部分組成。硬件主要包括STC89C52RC單片機(jī)最小系統(tǒng),超聲波發(fā)射電路、超聲波接收電路、溫度檢測(cè)電路、顯示電路;軟件部分主要包括系統(tǒng)初始化模塊、超聲波驅(qū)動(dòng)及信號(hào)處理模塊、顯示模塊等,軟件采用模塊化設(shè)計(jì)思想,可使程序設(shè)計(jì)思路消晰,便于調(diào)試。啟動(dòng)超聲波測(cè)距系統(tǒng)進(jìn)行測(cè)距時(shí),首先由單片機(jī)發(fā)出38KHz的脈沖串,脈沖通過(guò)超聲波發(fā)射電路驅(qū)動(dòng)超聲波發(fā)射換能器發(fā)出超聲波。單片機(jī)

3、在發(fā)送脈沖的同時(shí)開(kāi)始計(jì)時(shí):超聲波遇到障礙物后的回波被超聲波接收換能器接收,其輸出的CX20106A處理后產(chǎn)生中斷信號(hào)中斷單片機(jī)的計(jì)時(shí),這樣就得到了超聲波的傳輸時(shí)間,然后在中斷服務(wù)程序中根據(jù)測(cè)出的時(shí)間計(jì)算出距離并將標(biāo)志位置1。中斷返回后再發(fā)送下一串脈沖,如此反復(fù)。二、 超聲波測(cè)距系統(tǒng)的硬件設(shè)計(jì)本設(shè)計(jì)所做的超聲液位測(cè)量系統(tǒng)以STC89C52RC型單片機(jī)為控制核心,其外圍硬件電路包括超聲波發(fā)射電路、超聲波接收電路、顯示電路、溫度補(bǔ)償電路等。它的各部分說(shuō)明如下:(1)STC89C52RC單片機(jī)最小系統(tǒng)是超聲波液位計(jì)的核心部分,其主要任務(wù)是:發(fā)出38KHz的脈沖串用來(lái)驅(qū)動(dòng)超聲波發(fā)射換能器發(fā)出超聲波;通過(guò)

4、定時(shí)器T0對(duì)超聲波的傳輸時(shí)間進(jìn)行計(jì)時(shí);根據(jù)測(cè)出的時(shí)間從而計(jì)算與障礙物的距離??刂茢?shù)據(jù)的顯示。(2)超聲波發(fā)送器包括超聲波產(chǎn)生電路和超聲波發(fā)射控制電路兩個(gè)部分,超聲波探頭選用CSB40T,可采用軟件發(fā)生法和硬件發(fā)生法產(chǎn)生超聲波。本設(shè)計(jì)利用單片機(jī)直接軟件產(chǎn)生38kHz的超聲波信號(hào),通過(guò)輸出引腳輸入至比較器,經(jīng)比較器推動(dòng)探頭產(chǎn)生超聲波。(3)超聲波接收電路的核心器件是紅外解碼芯片CX20106A。它是用來(lái)對(duì)接收到的回波進(jìn)行放大和整形,并產(chǎn)生一個(gè)負(fù)跳變作為單片機(jī)的中斷信號(hào)。(4)超聲波溫度補(bǔ)償電路主要是由溫度傳感器DS18B20測(cè)量當(dāng)前溫度,并將采集到的數(shù)字信號(hào)直接傳送到單片機(jī)中;然后單片機(jī)將該數(shù)值代

5、入公式算法中進(jìn)行相應(yīng)的計(jì)算,從而輸出經(jīng)過(guò)溫度補(bǔ)償?shù)妮^為準(zhǔn)確的數(shù)值。(5)顯示電路采用單片機(jī)直接驅(qū)動(dòng)LED的方式。單片機(jī)將其計(jì)算好的數(shù)據(jù),通過(guò)軟件轉(zhuǎn)換為BCD碼直接輸出到LED上,這樣做比較方便,而且可以減少制作成本。2.1發(fā)射電路的設(shè)計(jì)發(fā)射電路的主要目的是驅(qū)動(dòng)超聲波發(fā)射探頭內(nèi)的壓電晶片振動(dòng),使之發(fā)出超聲波,并且發(fā)射的超聲波具有一定的能量,可傳播較遠(yuǎn)的距離,實(shí)現(xiàn)測(cè)量的目的。驅(qū)動(dòng)超聲發(fā)射探頭工作的方式很多,只要在探頭上施加一串其頻率與探頭中心頻率一致且能量足夠大的脈沖即可。發(fā)射脈沖可以由單片機(jī)或振動(dòng)器來(lái)實(shí)現(xiàn)。本設(shè)計(jì)中采用的是由單片機(jī)發(fā)出38kHz的方波,單片機(jī)P37輸出的 38kHz方波信號(hào)一路經(jīng)

6、一級(jí)反向器后送到超聲波換能器的一個(gè)電極。另一路經(jīng)兩級(jí)反向器后送到超聲波換能器的另一個(gè)電極。用這種推挽形式將方波信號(hào)加到超聲波換能器兩端,可以提高超聲波的發(fā)射強(qiáng)度。輸出端采用兩個(gè)反向器并聯(lián)。用以提高驅(qū)動(dòng)能力。上拉電阻R5、R10一方面可以提高反向器74HC04AN輸出高電平的驅(qū)動(dòng)能力。另一方面可以增加超聲波換能器的阻尼效果 ,縮短其自由振蕩的時(shí)間。圖3.2 發(fā)射電路圖2.2 接收電路的設(shè)計(jì)圖3.3 接收電路圖超聲波接收器包括超聲波接收探頭、CX20106A處理兩部分。超聲波探頭必須采用與發(fā)射探頭對(duì)應(yīng)的型號(hào),關(guān)鍵是頻率要一致,否則將因無(wú)法產(chǎn)生共振而影響接收效果,甚至無(wú)法接收。由于經(jīng)探頭變換后的正弦

7、波電信號(hào)非常弱,經(jīng)過(guò)CX20106A處理后產(chǎn)生負(fù)跳變,引起單片機(jī)的外部中斷。23 顯示電路設(shè)計(jì)超聲波測(cè)距系統(tǒng)的顯示要求比較簡(jiǎn)單,測(cè)量結(jié)果采用十進(jìn)制數(shù)字顯示。只需能顯示0-9的數(shù)字,且顯示穩(wěn)定無(wú)閃爍即可。因此顯示部分采用七段半導(dǎo)體數(shù)碼管即LED。根據(jù)各管的極管接線形式,可分為共陰極型和共陽(yáng)極型。在共陰極接法中,LED數(shù)碼管的g-a七個(gè)發(fā)光二極管因加正電壓而發(fā)亮,因加零電壓而不發(fā)亮。而在共陽(yáng)極接法中,剛好與共陰極接法向反。LED數(shù)碼管具有亮度大,響應(yīng)速度快等優(yōu)點(diǎn)。LED顯示器有靜態(tài)顯示和動(dòng)態(tài)顯示兩種。本設(shè)計(jì)中采用動(dòng)態(tài)顯示方式,以實(shí)時(shí)顯示液位變化。本設(shè)計(jì)采用單片機(jī)直接驅(qū)動(dòng)LED的方法,通過(guò)軟件的編譯

8、來(lái)實(shí)現(xiàn)由二進(jìn)制到BCD碼的轉(zhuǎn)化,從 圖3.4 顯示電路圖(本設(shè)計(jì)中的數(shù)碼管外形不代表實(shí)際產(chǎn)品)而簡(jiǎn)化了顯示電路。但是,在制作超聲波測(cè)距系統(tǒng)的過(guò)程中,我發(fā)現(xiàn)由單片機(jī)直接驅(qū)動(dòng)LED顯示,電流較小,LED雖然有顯示但是比較暗,因此我用了三極管來(lái)對(duì)電流進(jìn)行放大,解決了這個(gè)問(wèn)題。2.4 串行通訊接口電路設(shè)計(jì)單片機(jī)執(zhí)行信息檢測(cè)任務(wù),然后把檢測(cè)結(jié)果傳送到計(jì)算機(jī)中去,這就需要在單片機(jī)和計(jì)算機(jī)之間建立一種通信結(jié)構(gòu)。這種通信結(jié)構(gòu)可以在單片機(jī)和計(jì)算機(jī)之間進(jìn)行有效而正確的信息傳輸。RS-232 是目前最常用的串行接口標(biāo)準(zhǔn),用來(lái)實(shí)現(xiàn)計(jì)算機(jī)和計(jì)算機(jī)之間、計(jì)算機(jī)和外設(shè)之間的數(shù)據(jù)傳輸。RS-232 串行接口總線適用于設(shè)備之間

9、通信距離在 15 米以內(nèi)而且速度不高于 20Kbps 的場(chǎng)合中。完整的 RS-232 接口需要 22 根線,采用標(biāo)準(zhǔn)的 25 芯插頭?,F(xiàn)在計(jì)算機(jī)最常用的是 9 芯的 D 型 RS-232 連接器。在本設(shè)計(jì)中選用了 9 針的 D 型連接器,實(shí)際使用中僅使用2、3、5三個(gè)引腳如圖3.5所示,并給出了 9個(gè)引腳的功能說(shuō)明:引腳 1:DCD,方向 I,載波檢引腳 2:RXD,方向 I, 數(shù)據(jù)輸入引腳 3:TXD,方向 O,數(shù)據(jù)輸出引腳 4:DTR , 方向 O,數(shù)據(jù)終端就緒引腳 5:GND , 地引腳 6:DSR, 方向 I,數(shù)據(jù)設(shè)備就緒引腳 7:KTS, 方向 O,請(qǐng)求發(fā)送引腳 8:CTS, 方向

10、I,清除發(fā)送引腳 9:RI , 方向 I, 振鈴指示圖3.5 9針D型連接器數(shù)據(jù)輸出,地線。由于單片機(jī)提供的電平是 TTL 的,而計(jì)算機(jī)提供的是 RS232 電平,要實(shí)現(xiàn)單片機(jī)與計(jì)算機(jī)的通信,必須對(duì)它們的電平進(jìn)行轉(zhuǎn)換,可用MAX232 芯片來(lái)實(shí)現(xiàn)。如上圖所示。三、 系統(tǒng)的軟件設(shè)計(jì)軟件設(shè)計(jì)運(yùn)用模塊化程序設(shè)計(jì)思想,對(duì)不同功能的程序進(jìn)行分別編程,這樣不但使得整個(gè)軟件的層次和結(jié)構(gòu)比較清晰,而且有利于軟件的調(diào)試和修改。3.1 單片機(jī)的設(shè)定超聲波測(cè)距系統(tǒng)的控制核心是單片機(jī),軟件主要完成測(cè)量過(guò)程控制、精確計(jì)時(shí)、數(shù)據(jù)計(jì)算及結(jié)果處理等功能。單片機(jī)具有開(kāi)發(fā)技術(shù)成熟、應(yīng)用廣泛等優(yōu)點(diǎn), 本設(shè)計(jì)中選用的STC89C52

11、RC型單片機(jī)是一種低功耗、高性能、采用CMOS工藝的8位微處理器,與工業(yè)標(biāo)準(zhǔn)型80C51單片機(jī)的指令系統(tǒng)和引腳完全兼容。片內(nèi)8K Flash存儲(chǔ)器可在線重新編程,或使用通用的非易失性存儲(chǔ)器編程器。由于一般的距離測(cè)量中,距離的變化速度并不太快,而且單片機(jī)的機(jī)器周期可達(dá)s級(jí),則其計(jì)時(shí)精度為s級(jí),完全可以滿足系統(tǒng)測(cè)量的要求,并且成本較低,所以本設(shè)計(jì)中選用STC89C52型號(hào)的單片機(jī)。系統(tǒng)采用單片機(jī)內(nèi)部自帶的定時(shí)器/計(jì)數(shù)器T0中斷功能,對(duì)發(fā)射到接收的時(shí)間進(jìn)行精確計(jì)時(shí)。而且為了節(jié)約硬件成本,系統(tǒng)采用單片機(jī)發(fā)出38kHz方波信號(hào),由方波輸出程序控制單片機(jī)管腳P37輸出方波信號(hào)。外部中斷請(qǐng)求有兩種信號(hào)方式電

12、平方式和脈沖方式。電平方式的中斷請(qǐng)求是低電平有效。只要在INTO或INT1引腳上出現(xiàn)有效低電平時(shí),就激活外部中斷標(biāo)志。脈沖方式的中斷請(qǐng)求則是脈沖的負(fù)跳變有效。在這種方式下,在兩個(gè)相鄰機(jī)器周期內(nèi),INT0或INT1引腳電平狀態(tài)發(fā)生變化,即在第一個(gè)機(jī)器周期內(nèi)為高電平,第二個(gè)機(jī)器周期內(nèi)為低電平,就激活外部中斷標(biāo)志。由此可見(jiàn),在脈沖方式下,中斷請(qǐng)求信號(hào)的高電平和低電平狀態(tài)都應(yīng)至少維持1個(gè)機(jī)器周期,以使采樣到電平狀態(tài)的變化。本設(shè)計(jì)中用單片機(jī)的定時(shí)器/計(jì)數(shù)器0來(lái)對(duì)發(fā)射到接收的時(shí)間進(jìn)行精確計(jì)時(shí)。因此需在程序中設(shè)定定時(shí)器/計(jì)數(shù)器的工作模式。定時(shí)器/計(jì)數(shù)器0、1的工作模式的設(shè)定和定時(shí)器的控制由工作模式寄存器TM

13、OD和控制寄存器TCON來(lái)完成。TMOD用于設(shè)置T0和T1的工作方式,低4位用于定時(shí)器/計(jì)數(shù)器0,高4位用于定時(shí)器/計(jì)數(shù)器1,其值由軟件設(shè)定。3.2超聲波測(cè)距系統(tǒng)的軟件流程圖3.6 軟件流程圖按照超聲波測(cè)距系統(tǒng)的需要,超聲波驅(qū)動(dòng)與數(shù)據(jù)處理模塊主要任務(wù)是用單片機(jī)產(chǎn)生 38kHz 的脈沖,以驅(qū)動(dòng)超聲波傳感器發(fā)射超聲波,同時(shí)采用計(jì)數(shù)器計(jì)時(shí);當(dāng)超聲波接收器接收到回波信號(hào)時(shí)停止計(jì)時(shí)。由此得出超聲波的傳輸時(shí)間T,利用公式(2-1)進(jìn)行溫度補(bǔ)償,即可求出在當(dāng)前溫度下的聲速;再利用公式(2-3),就可以計(jì)算出當(dāng)前的液位高度。發(fā)射模塊軟件程序如下:TMOD=0x12; /T0、模式1;T1、模式2EA=1;ET

14、0=1;TH0=0XF4;TL0=0XF4;for(i=1;i<60000;i+)/主循環(huán) TL0=0XF4; TR0=1; /開(kāi)始發(fā)射脈沖 TH1=0;TL1=0; TR1=1;/啟動(dòng)定時(shí)器開(kāi)始計(jì)時(shí) 可以看出,本設(shè)計(jì)的定時(shí)器和計(jì)數(shù)器分別工作在模式1和模式2下,通過(guò)定義定時(shí)器的初值來(lái)發(fā)射脈沖波,同時(shí)啟動(dòng)計(jì)時(shí)器開(kāi)始計(jì)時(shí)。 接收模塊程序如下:while(INPUT) ; /循環(huán)等待直到監(jiān)測(cè)到回波 TR1=0; /計(jì)時(shí)結(jié)束 TIME=TH1*256+TL1; TR0=0; TIME=0.1856*TIME-25; display(TIME); 顯示部分由單片機(jī)直接將二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為BCD碼,程

15、序如下: a0=0x82; a1=0xfa; a2=0xa4; a3=0xb0; a4=0xd8; a5=0x91; a6=0x81; a7=0xba; a8=0x80; a9=0x90;附錄:附件2:#include   <REG2051.H>  #define k1 P3_4#define csbout    P3_5/超聲波發(fā)送#define csbint    P3_7/超聲波接收#define wendu

16、 P2_5;/溫度控制通信端口#define csbc=0.034#define bg  P3_3 unsigned char csbds,opto,digit,buffer3,xm1,xm2,xm0,key,jpjs;/顯示標(biāo)識(shí)unsigned char convert10=0x3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/09段碼unsigned int s,t,i, xx,j,sj1,sj2,sj3,mqs,sx1;b

17、it cl;     void csbcj();void delay(j);/延時(shí)函數(shù)void scanLED();/顯示函數(shù)void timeToBuffer();/顯示轉(zhuǎn)換函數(shù)void keyscan();void k1cl();void k2cl();void k3cl();void k4cl();void offmsd();void main()/主函數(shù)     EA=

18、1;  /開(kāi)中斷 TMOD=0x11;/設(shè)定時(shí)器0為計(jì)數(shù),設(shè)定時(shí)器1定時(shí)     ET0=1;/定時(shí)器0中斷允許      ET1=1;/定時(shí)器1中斷允許      TH0=0x00;     TL0=0x00;     TH1=0x9E;     

19、TL1=0x57;     csbds=0;     csbint=1;     csbout=1;     cl=0;     opto=0xff;     jpjs=0;     sj1=45;    &#

20、160;sj2=200;     sj3=400;     k4cl();     TR1=1;     while(1)      keyscan();     if(jpjs  <1)      &#

21、160;   csbcj();     if(s>  sj3)          buffer2=0x76;     buffer1=0x76;     buffer0=0x76;         

22、60;else if(s  <sj1)          buffer2=0x40;     buffer1=0x40;     buffer0=0x40;          else timeToBuffer();   &

23、#160;      else timeToBuffer();/將值轉(zhuǎn)換成LED段碼     offmsd(); scanLED();/顯示函數(shù)     if(s  <sj2)     bg=0;     bg=1;     void dela

24、y(unsigned int j) while(j-);Init_DS18B20(void) /初始化函數(shù)unsigned char x=0;DQ=1;/DQ復(fù)位delay(8);/稍作延時(shí)DQ=0;/單片機(jī)將DQ拉低delay(80);/精確延時(shí) 大于 480 usDQ=1;delay(14);x=DQ;/稍作延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗delay(20);/P1=0x00;ReadOneChar(void) /讀一個(gè)字節(jié)unsigned char k=0;unsigned char dat=0;for(k=8;k>0;k-)DQ=0;/給脈沖信號(hào)dat>&

25、gt;=1;DQ=1;/給脈沖信號(hào)if(DQ)dat|=0x80;delay(4);return(dat);void scanLED()     /顯示功能模塊    digit=0x04;    for( i=0; i  <3; i+)  /3位數(shù)顯示      P3=digit&opto;  

26、;/依次顯示各位數(shù)  P1=buffer;  /顯示數(shù)據(jù)送P1口  delay(20);  /延時(shí)處理  P1=0xff; /P1口置高電平(關(guān)閉)  if(P3&0x10)=0)/判斷3位是否顯示完     key=0;  digit>  >  =1; /循環(huán)右移1位    void&#

27、160;timeToBuffer()    /轉(zhuǎn)換段碼功能模塊     xm0=s/100;     xm1=(s-100*xm0)/10;     xm2=s-100*xm0-10*xm1;     buffer2=convertxm2;     buffer1=convertxm1;  

28、;   buffer0=convertxm0;void delay(i)    while(-i);void timer1int (void)  interrupt 3  using 2      TH1=0x9E;     TL1=0x57;     csbds+; 

29、    if(csbds>  =40)          csbds=0;     cl=1;     void csbcj()     if(cl=1)        TR1=0; 

30、    TH0=0x00;     TL0=0x00;     i=10;     while(i-)          csbout=!csbout;          TR0=1;   i=mqs;/盲區(qū)     while(i-)            

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論