用51單片機(jī)設(shè)計(jì)超聲波測(cè)距系統(tǒng)的設(shè)計(jì)原理和電路(附源程序)_第1頁
用51單片機(jī)設(shè)計(jì)超聲波測(cè)距系統(tǒng)的設(shè)計(jì)原理和電路(附源程序)_第2頁
用51單片機(jī)設(shè)計(jì)超聲波測(cè)距系統(tǒng)的設(shè)計(jì)原理和電路(附源程序)_第3頁
用51單片機(jī)設(shè)計(jì)超聲波測(cè)距系統(tǒng)的設(shè)計(jì)原理和電路(附源程序)_第4頁
用51單片機(jī)設(shè)計(jì)超聲波測(cè)距系統(tǒng)的設(shè)計(jì)原理和電路(附源程序)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、. 基于51單片機(jī)的超聲波測(cè)距儀說明書引言超聲波測(cè)距儀,可使用于汽車倒車、建筑施工工地以及一些工業(yè)現(xiàn)場(chǎng)的位置監(jiān)控,也可用于如液位、井深、管道長(zhǎng)度的測(cè)量等場(chǎng)合。利用超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測(cè)量。利用超聲波檢測(cè)往往比較迅速、方便、計(jì)算簡(jiǎn)單、易于做到實(shí)時(shí)控制。一、性能要求 該超聲波測(cè)距儀,要求測(cè)量范圍在0.08-3.00m,測(cè)量精度1cm,測(cè)量時(shí)和被測(cè)物體無直接接觸,能夠清晰穩(wěn)定地顯示測(cè)量結(jié)果。二、工作原理及方案論證 超聲波傳感器及其測(cè)距原理 超聲波是指頻率高于20KHz的機(jī)械波。用超聲波傳感器產(chǎn)生超聲波和接收超聲波,習(xí)慣上稱為超聲波換能器或超聲

2、波探頭。超聲波傳感器有發(fā)送器和接收器.超聲波傳感器是利用壓電效應(yīng)的原理將電能和超聲波相互轉(zhuǎn)化,即在發(fā)射超聲波的時(shí)候,將電能轉(zhuǎn)換,發(fā)射超聲波;而在收到回波的時(shí)候,則將超聲振動(dòng)轉(zhuǎn)換成電信號(hào)。超聲波測(cè)距的原理一般采用渡越時(shí)間法TOF(timeofflight)。首先測(cè)出超聲波從發(fā)射到遇到障礙物返回所經(jīng)歷的時(shí)間,再乘以超聲波的速度就得到二倍的聲源和障礙物之間的距離。 根據(jù)要求并綜合各方面因素,采用AT89C52單片機(jī)作為主控制器,用動(dòng)態(tài)掃描法實(shí)現(xiàn)LED數(shù)字顯示,超聲波驅(qū)動(dòng)信號(hào)用單片機(jī)的定時(shí)器完成,超聲波測(cè)距儀的系統(tǒng)框圖如下圖所示: 圖1 超聲波測(cè)距儀系統(tǒng)設(shè)計(jì)框圖三、系統(tǒng)硬件部分硬件部分主要由單片機(jī)系統(tǒng)

3、及顯示電路、超聲波發(fā)射電路和超聲波檢測(cè)接收電路三部分組成。1. 單片機(jī)系統(tǒng)及顯示電路 單片機(jī)采用AT89C52來實(shí)現(xiàn)對(duì)CX20106A紅外接收芯片和TCT40-10系列超聲波轉(zhuǎn)換模塊的控制。單片機(jī)通過P1.1引腳發(fā)射脈沖控制超聲波的發(fā)送,然后單片機(jī)不停的檢測(cè)外中斷0口INT0引腳,當(dāng)INT0引腳的電平由高電平變?yōu)榈碗娖綍r(shí)就認(rèn)為超聲波已經(jīng)返回。計(jì)數(shù)器所計(jì)的數(shù)據(jù)就是超聲波所經(jīng)歷的時(shí)間,通過換算就可以得到傳感器和障礙物之間的距離。顯示電路采用簡(jiǎn)單實(shí)用的4位共陽LED數(shù)碼管,段碼用74LS244驅(qū)動(dòng),位碼用PNP三極管驅(qū)動(dòng)。 單片機(jī)系統(tǒng)及顯示電路如下圖所示: 圖2 單片機(jī)系統(tǒng)及顯示電路2.超聲波發(fā)射電

4、路 利用555時(shí)基電路振蕩產(chǎn)生40kHz的超聲波信號(hào),使之和換能器的40kHz固有頻率一致。12V電源保證555時(shí)基具有足夠驅(qū)動(dòng)能力。P1.1為超聲波發(fā)射控制信號(hào),由單片機(jī)控制。發(fā)射電路如圖3所示: 圖3 超聲波發(fā)射電路原理圖3.超聲波檢測(cè)接收電路 超聲波接收電路采用集成電路CX20106A,這是一款紅外線檢波接收的專用芯片,常用于電視機(jī)紅外遙控接收器??紤]到紅外遙控常用的載波頻率38KHz和測(cè)距超聲波頻率40KHz較為接近,可以利用它作為超聲波檢測(cè)電路。實(shí)驗(yàn)證明其具有很高的靈敏度和較強(qiáng)的抗干擾能力。適當(dāng)改變C4的大小,可改變接受電路的靈敏度和抗干擾能力。接收電路如圖4所示: 圖4 超聲波接收

5、電路圖四系統(tǒng)軟件部分 超聲波測(cè)距程序設(shè)計(jì)軟件部分主要由主程序,超聲波發(fā)射子程序,超聲波接受中斷程序及顯示子程序組成。下面對(duì)超聲波測(cè)距儀的算法,主程序,超聲波發(fā)射子程序和超聲波接受中斷程序逐一介紹。1超聲波測(cè)距儀的算法設(shè)計(jì) 下圖示意了超聲波測(cè)距的原理,即超聲波發(fā)生器T在某一時(shí)刻發(fā)出的一個(gè)超聲波信號(hào),當(dāng)超聲波遇到被測(cè)物體后反射回來,就被超聲波接收器R所接受。這樣只要計(jì)算出發(fā)生信號(hào)到接受返回信號(hào)所用的時(shí)間,就可算出超聲波發(fā)生器和反射物體的距離。距離計(jì)算公式:d=s/2=(c*t)/2*d為被測(cè)物和測(cè)距器的距離,s為聲波的來回路程,c為聲速,t為聲波來回所用的時(shí)間 2.主程序 主程序框圖如右圖所示:主

6、程序首先對(duì)系統(tǒng)環(huán)境初始化,設(shè)置定時(shí)器T0工作模式為16位的定時(shí)計(jì)數(shù)器模式,置位總中斷允許位EA并給顯示端口P0和P2清0。然后調(diào)用超聲波發(fā)生子程序送出一個(gè)超聲波脈沖,為避免超聲波從發(fā)射器直接傳送到接收器引起的直接波觸發(fā),需延遲0.1ms(這也就是測(cè)距器會(huì)有一個(gè)最小可測(cè)距離的原因)后,才打開外中斷0接收返回的超聲波信號(hào)。由于采用12MHz的晶振,機(jī)器周期為1us,當(dāng)主程序檢測(cè)到接收成功的標(biāo)志位后,將計(jì)數(shù)器T0中的數(shù)(即超聲波來回所用的時(shí)間)按下式計(jì)算即可測(cè)得被測(cè)物體和測(cè)距儀之間的距離,設(shè)計(jì)時(shí)取20時(shí)的聲速為344m/s則有:d=(C*T0)/2=172T0/10000cm(其中T0為計(jì)數(shù)器T0的

7、計(jì)數(shù)值) 測(cè)出距離后結(jié)果將以十進(jìn)制BCD碼方式LED,然后再發(fā)超聲波脈沖重復(fù)測(cè)量過程。3.超聲波發(fā)生子程序和超聲波接收中斷程序 超聲波發(fā)生子程序的作用是通過P1.1端口發(fā)送超聲波發(fā)射控制脈沖信號(hào),同時(shí)把計(jì)數(shù)器T0打開進(jìn)行計(jì)時(shí)。超聲波測(cè)距器主程序利用外中斷0檢測(cè)返回超聲波信號(hào),一旦接收到返回超聲波信號(hào)(INT0引腳出現(xiàn)低電平),立即進(jìn)入中斷程序。進(jìn)入該中斷后就立即關(guān)閉計(jì)時(shí)器T0停止計(jì)時(shí),并將測(cè)距成功標(biāo)志字賦值1。如果當(dāng)計(jì)時(shí)器溢出時(shí)還未檢測(cè)到超聲波返回信號(hào),則定時(shí)器T0溢出中斷將外中斷0關(guān)閉,并將測(cè)距成功標(biāo)志字賦值2以表示此次測(cè)距不成功。五軟硬件調(diào)試及性能 超聲波發(fā)射和接收采用15的超聲波換能器T

8、CT40-10F1(T發(fā)射)和TCT40-10S1(R接收),中心頻率為40kHz,保持兩換能器中心軸線平行并相距48cm。 主要性能指標(biāo):測(cè)距儀能測(cè)的范圍為0.083.00m,測(cè)距儀精度1cm。程序清單以下是用匯編語言編寫的超聲波測(cè)距控制源程序:采用AT89S52 12z晶振顯示緩沖單元在,使用內(nèi)存44H、45H、46H用于計(jì)算距離20H用于標(biāo)志VOUT EQU P1.0 ;脈沖輸出端口*中斷入口程序*ORG 0000H LJMP STARTORG 0003H LJMP PINT0ORG 000BH LJMP INTT0ORG 0013H RETIORG 001BH LJMP INTT1OR

9、G 0023HRETIORG 002BH RETI*主程序*START: MOV SP, #4FH MOV R0, #40H ;4043H為顯示數(shù)據(jù)存放單元(40為最高位) MOV R7,#0BHCLEARDISP:MOV R0, #00H INC R0 DJNZ R7, CLEARDISP MOV 20H, #00H MOV TMOD, #21H ;T1為8位自動(dòng)重裝模式,T0為16位定時(shí)器 MOV TH0, #00H ;65ms初值 MOV TL0, #00H ;40KHz初值 MOV TH1, #0F2H MOV TL1, #0F2H MOV P0, #0FFHMOV P1, #0FFH

10、 MOV P2, #0FFH MOV P3, #0FFHMOV R4, #04H ;超聲波脈沖個(gè)數(shù)控制(為賦值的一半)SETB PX0SETB ET0STEB EACLR 00HSETB TR0 ;開啟測(cè)距定時(shí)器START1: LCALL DISPLAY JNB 00H, START1 ;收到反射信號(hào)時(shí)標(biāo)志位為1 CLR EA LCALL WORK ;計(jì)算距離子程序 SETB EA CLR 00H SETB TR0 ;重新開啟測(cè)距定時(shí)器 MOV R2, #64H ; 測(cè)量間隔控制(約4*100=400ms)LOOP: LCALL DISPLAY DJNZ R2, LOOP SJMP START

11、 1*中斷程序*;T0中斷,65ms中斷一次INTT0: CLR EA CLR TR0 MOV TH0, #00H MOV TL0, #00H SETB ET1 SETB EA SETB TR0 ;啟動(dòng)計(jì)時(shí)器T0,用以計(jì)算超聲波來回時(shí)間 SETB TR1 ;開啟發(fā)超聲波用定時(shí)器T1OUT: RETI;T1中斷,發(fā)超聲波用INTT1: CPL VOUT DJNZ R4,RETIOUT CLR TR1 ;超聲波發(fā)送完畢,關(guān)T1 CLR ET1 MOV R4,#04H SETB EX0 ;開啟接收回波中斷RETIOUT: RETI;外中斷0,收到回波時(shí)進(jìn)入PINT0: CLR TR0 ;關(guān)計(jì)數(shù)器 C

12、LR TR1 CLR ET1 CLR EA CLR EX0 MOV 44H, TL0 ;將計(jì)數(shù)值移入處理單元 MOV 45H, TH0 SETB 00H ;接收成功標(biāo)志 RETI*延時(shí)程序*DL1MS: MOV R6, #14HDL1: MOV R7, #19HDL2: DJNZ R6, DL2 DJNZ R6, DL1 RET*顯示程序*;40H為最高位,43H為最低位,先掃描高位DISPLAY:MOVR1, #40H;GMOVR5,#0F7H;GPLAY:MOVA, R5MOVP0, #0FFHMOVP2, AMOVA, R1MOVDPTR, #TABMOVCA, A+DPTRMOVP0,

13、 ALCALL DLIMSINCR1MOVA, R5JNBACC.0, ENDOUT;GRRAMOVR5, AAJMPPLAYENDOUT;MOVP2, #0FFHMOVP0, #0FFHRETTAB; DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH;共陽數(shù)碼管 0 ,1, 2,3,4,5,6,7,8,9,不亮,A, *距離計(jì)算程序(=計(jì)算值17/1000cm) 近似WORK:PUSHACCPUSHPSW PUSHBMOVPSW, #18HMOVR3, 45HMOVR2, 44HMOVR1, #00D MOVR0, #

14、17DLCALL MUL2BY2MOVR3, #03HMOVR2, #0E8H LCALLDIV4BY2LCALLDIV4BY2MOV40H, R4MOVA, 40HJNZJJ0MOV40H, #0AH ;最高位為0,不點(diǎn)亮JJ0:MOVAR0MOVR4, AMOVAR1MOVR5 AMOV R3, #00DMOVR2, #100DLCALLDIV4BY2MOV41H, R4MOVA, 41H JNZJJ1MOVA, 40H ;此高位為0,先看最高位是否為不亮 SUBBA, #0AHJNZJJ1MOV41H, #0AH ; 最高位不亮,次高位也不亮JJ1:MOVA, R0MOVR4, AMOV

15、A, R1MOVR5, AMOVR3, #00DMOVR2, #10DLCALL DIV4BY2MOV42H, R4MOVA42HJNZJJ2MOVA, 41H ;次高位為0,先看次高位是否為不亮SUBBA, #0AHJNZJJ2MOV42H, #0AH ;次高位不亮,次高位也不亮JJ2:MOV43H, R0POPBPOPPSWPOPACCRET *兩字節(jié)無符號(hào)數(shù)乘法程序 MUL2BY2:CLRAMOVR7, AMOVR6, AMOV R5, AMOVR4, AMOV46H, #10HMULLOOP1:CLRCMOVA, R4RLCAMOVR4, AMOVA,R5RLCAMOVR5, AMOV

16、A, R6RLCAMOVR6, AMOVA, R7RLCAMOV R7, AMOV A, R0RLC AMOVR0, AMOVA, R1RLCAMOVR1, AJNCMULLOOP2MOVA, R4ADDA, R2MOVR4, AMOVA, R5ADDCA, R3MOVR5, AMOVA, R6ADDCA, #00HMOVR6, AMOVA, R7ADDCA, #00HMOVR7, AMULLOOP2:DJNZ46H, MULLOOP1RET*四字節(jié)/兩字節(jié)無符號(hào)數(shù)除法程序*DIV4BY2:MOV46H, #20HMOVR0,#00HMOVR1, #00HDIVLOOP1: MOVA, R4

17、RLCAMOVR4, AMOVA, R5RLCAMOVR5, AMOVA, R6RLCAMOVR6, AMOVA, R7RLCAMOVR7, AMOVA, R0RLCAMOVR0, AMOVA, R1RLCAMOVR1, A CLRCMOVA, R0SUBBA, R2MOVB, AMOV A, R1SUBBA, R3JCDIVLOOP2MOVR0, BMOVR1, ADIVLOOP2:CPLCDJNZ46H, DIVLOOP1MOVA, R4RLCAMOVR4,AMOVA,R5RLCAMOVR5,AMOVA, R6 RLCAMOVR6, AMOVA, R7RLCAMOVR7, ARET;END

18、 附C51程序#INCLUDE #DEFINE UCHAR UNSIGNED CHAR#DEFINE UINT UNSIGNED INT#DEFINE ULONG UNSIGNED LONG EXTERN VOID CS_T(VOID);EXTERN VOID DELAY(UINT);EXTERN VOID DISPLAY(UCHAR*);/DATA UCHAR DISPLAY(UCHAR*);DATA UCHAR TESTOK;VOID MAIN (VOID)DATA UCHAR DISPRAM5;DATA UINT I;DATA ULONG TIME;P0=0XFF;P2=0XFF;TMO

19、D=0X11;IE=0X80;WHILE (1) CS_T(); DELAY(1);TESTOK=0;EX0=1;ET0=1;WHILE(! TESTOK) DISPLAY(DISPRAM);IF (1=TESTOK) TIME=TH0; TIME=(TIME8)| TL0; TIME*=172; TIME/=10000; DISPRAM0=(UCHAR) (TIME%10); TIME/=10; DISPRAM1=(UCHAR) (TIME%10); TIME/=10; DISPRAM2=(UCHAR) (TIME%10); DISPRAM3=(UCHAR) (TIME/10); IF (0

20、=DISPRAM3) DISPRAM3=17; ELSE DISPRAM 0=16; DISPRAM 1=16; DISPRAM 2=16; DISPRAM 3=16; FOR (I=0;I300;I+) DISPLAY(DISPRAM); VOID CS_R(VOID) INTERRUPT 0 TR0=0; ET0=0; EX0=0; TESTOK=1;VOID OVERTIME(VOID) INTERRUPT 1 EX0=0; TR0=0; ET0=0; TESTOK=2; NAME CS_T?PR?CS_T?CS_T SEGMENT CODE PUBLIC CS_T RSEG ?PR?C

21、S_T?CS_T CS_T: PUSH ACC MOV TH0, #00H MOV TL0, #00H MOV A, #4D SETB TR0CS_T1: CPL p1.0 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP DJNZ ACC,CS_T1 POP ACC RET ; END NAME DELAY?PR?_DELAY?DELAY SEGMENT CODEPUBLIC _DELAY RSEG ?PR?_DELAY?DELAY_DELAY: PUSH ACC MOV A,R7 JZ DELA1 INC R6DELA1: MOV R5,#50D DJNZ R5, $ DJNZ R7,DELA1 DJNZ R6,DELA1 POP ACC RETEND NAME DISPLAY?PR?_DISP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論