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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、機系統(tǒng)及顯示電路如下圖所示: X, 51 31 2 殳 X P D p P / :T / WR X T p PP p 2ocy00T*A 8V 420L4/ EO2 EO1 002 62 52 32 Az 3 9 2 41 II5/-NL T4A6NL 3-CM 3丫 IY1 o丫 3rt2 2A2 1m2 Ort2 3rt1 2A1 11 Ort1 2U 20 7QA-OCL I0R 51 33 6CD4DOCL 31 40 53 5QADOCL 4QC-/-OCL 63 70 003 93 3QA0OCL 2L6IX 2CD/IOCL 1datup oqadocl 1L6IX 1U 001

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

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

7、,c為聲速,t為 精品文檔 聲波來回所用的時間 2.主程序 主程序框圖如右圖所示: 主程序首先對系統(tǒng)環(huán)境初始化,設置定時 器TO工作模式為16位的定時計數(shù)器模式, 置位總中斷允許位EA并給顯示端口 P0和 P2青0。然后調用超聲波發(fā)生子程序送出 一個超聲波脈沖,為避免超聲波從發(fā)射器 直接傳送到接收器引起的直接波觸發(fā),需 延遲0.1ms(這也就是測距器會有一個最 小可測距離的原因)后,才打開外中斷0接 收返回的超聲波信號。由于采用12MHZ勺 晶振,機器周期為1us,當主程序檢測到接收成功的標志位后,將計數(shù) 器T0中的數(shù)(即超聲波來回所用的時間)按下式計算即可測得被測 物體與測距儀之間的距離,設

8、計時取20C時的聲速為344m/s則有: d=(C*T0)/2=172T0/10000cm (其中T0為計數(shù)器T0的計數(shù)值) 測出距離后結果將以十進制 BCD碼方式LED,然后再發(fā)超聲波脈 沖重復測量過程。 3.超聲波發(fā)生子程序和超聲波接收中斷程序 超聲波發(fā)生子程序的作用是通過 P1.1端口發(fā)送超聲波發(fā)射控制脈沖 信號,同時把計數(shù)器T0打開進行計時。超聲波測距器主程序利用外 中斷0檢測返回超聲波信號,一旦接收到返回超聲波信號(INT 0引腳 出現(xiàn)低電平),立即進入中斷程序。進入該中斷后就立即關閉計時器 T0亭止計時,并將測距成功標志字賦值1。如果當計時器溢出時還未 檢測到超聲波返回信號,則定時

9、器 T0溢出中斷將外中斷0關閉,并將 測距成功標志字賦值2以表示此次測距不成功。 五. 軟硬件調試及性能 超聲波發(fā)射和接收采用 15的超聲波換能器TCT40-10F1( T發(fā) 射)和TCT40-10S1(R接收),中心頻率為40kHz,保持兩換能器中心 軸線平行并相距4 8cm。 主要性能指標:測距儀能測的范圍為0.083.00m,測距儀精度 1cm。 程序清單 以下是用匯編語言編寫的超聲波測距控制源程序: 采用AT89S52 12MHz晶振 顯示緩沖單元在4 0H43H,使用內存 44H、45H、46H用于計算距離 20H用于標志 VOUT EQU P1.0;脈沖輸出端口 *中斷入口程序*

10、ORG 0000H LJMP START ORG 0003H LJMP PINT0 ORG 000BH LJMP INTTO ORG 0013H RETI ORG 001BH LJMP INTT1 ORG 0023H RETI ORG 002BH RETI START: MOV SP, #4FH MOV R0, #40H MOV R7,#0BH *主程序* ;4043H為顯示數(shù)據(jù)存放單元 40為最咼位) CLEARDISP:MOV R0, #00H INC R0 DJNZ R7, CLEARDISP MOV 20H,#00H MOV TMOD, #21H ;T1為8位自動重裝模式,T0為16位

11、定 時器 MOV TH0, #00H ;65ms初值 MOV TL0, #00H ;40KHz初值 MOV TH1, #0F2H MOV TL1, #0F2H MOV P0, #0FFH MOV P1, #0FFH MOV P2, #0FFH MOV P3, #0FFH MOV R4, #04H ;超聲波脈沖個數(shù)控制(為賦值的一半) SETB PX0 SETB ET0 STEB EA CLR 00H SETB TR0 ;開啟測距定時器 START1: LCALL DISPLAY JNB 00H, START1 ;收到反射信號時標志位為1 CLR EA LCALL WORK ;計算距離子程序 S

12、ETB EA CLR 00H SETB TR0 ;重新開啟測距定時器 MOV R2, #64H ; 測量間隔控制(約4*100=400ms) LOOP: LCALL DISPLAY DJNZ R2, LOOP SJMP START 1 中斷程序 INTT0: CLR EA CLR TR0 MOV TH0, #00H MOV TL0, #00H SETB ET1 SETB EA SETB TR0 來回時間 SETB TR1 OUT: RETI ;T0中斷,65ms中斷一次 ;啟動計時器T0,用以計算超聲波 ;開啟發(fā)超聲波用定時器T1 ;T1中斷,發(fā)超聲波用 INTT1: CPL VOUT DJN

13、Z R4,RETIOUT CLR TR1 ;超聲波發(fā)送完畢,關T1 CLR ET1 MOV R4,#04H SETB EX0 ;開啟接收回波中斷 RETIOUT: RETI ;外中斷0, 收到回波時進入 PINT0: CLR TR0 ;關計數(shù)器 CLR TR1 CLR ET1 CLR EA CLR EX0 MOV 44H,TL0 ;將計數(shù)值移入處理單元 MOV 45H, TH0 SETB 00H ;接收成功標志 RETI *延時程序 DL1MS: MOV R6, #14H DL1: MOV R7, #19H DL2: DJNZ R6, DL2 DJNZ R6, DL1 RET *顯示程序 ;4

14、0H為最高位,43H為最低位,先掃描高位 DISPLAY : MOV R1, #40H;G MOV R5,#0F7H;G PLAY: MOV A, R5 MOV P0, #0FFH MOV P2, A MOV A, R1 MOV DPTR, #TAB MOVC A, A+DPTR MOV P0, A LCALL DLIMS INCR1 MOV A, R5 JNB ACC.0, ENDOUT;G RRA MOV R5, A AJMP PLAY ENDOUT; MOV P2, #0FFH MOV P0, #0FFH RET TAB; DB 0C0H,0F9H,0A4H,0B0H,99H,92H,8

15、2H,0F8H,80H,90H,0FFH,88H,0BFH ;共陽數(shù)碼管 0 ,1,2,3,4,5,6,7,8,9不亮,A, *距離計算程序(二計算值X 17/1000cn)近似 WORK: PUSH ACC PUSH PSW PUSH B MOV PSW, #18H MOV R3, 45H MOV R2, 44H MOV R1, #00D MOV R0, #17D LCALL MUL2BY2 MOV R3, #03H MOV R2, #0E8H LCALL DIV4BY2 LCALL DIV4BY2 MOV MOV JNZ MOV 40H, R4 A, 40H JJ0 40H, #0AH ;

16、取咼位為0,不點亮 JJ0: MOV A R0 MOV R4, A MOV A R1 MOV R5 A MOV R3, #00D MOV R2, #100D LCALL DIV4BY2 MOV 41H, R4 MOV A, 41H JNZ JJ1 MOV A, 40H ;此咼位為0,先看取咼位疋否為不亮 SUBB A, #0AH JNZ JJ1 MOV 41H, #0AH ; 最咼位不亮,次咼位也不亮 JJ1: MOV A, R0 MOV R4, A MOV A, R1 MOV R5, A MOV R3, #00D MOV R2, #10D LCALL DIV4BY2 MOV 42H, R4

17、MOV A 42H JNZ JJ2 MOV A, 41H ;次咼位為0,先看次咼位是否為不亮 SUBB A, #0AH JNZ JJ2 MOV 42H, #0AH ;次咼位不亮,次咼位也不亮 JJ2: MOV 43H, R0 POP B POP PSW POP ACC RET *兩字節(jié)無符號數(shù)乘法程序 MUL2BY2:CLR MOV A R7, A MOV R6, A MOV R5, A MOV R4, A MOV 46H, #10H MULLOOP1:CLR C MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC

18、 A MOV R6, A MOV A, R7 RLC A MOV R7, A MOV A, R0 RLC A MOV R0, A MOV A, R1 RLC A MOV R1, A JNC MULLOOP2 MOV A, R4 ADD A, R2 MOV R4, A MOV A, R5 ADDC A, R3 MOV R5, A MOV A, R6 ADDC A, #00H MOV R6, A MOV A, R7 ADDC A, #00H MOV R7, A MULLOOP2:DJNZ 46H, MULLOOP1 RET 四字節(jié)/兩字節(jié)無符號數(shù)除法程序 DIV4BY2: MOV 46H,#20H

19、 MOV R0, #00H MOV R1, #00H DIVL00P1: DIVL00P2: MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6, A MOV A, R7 RLC A MOV R7, A MOV A, R0 RLC A MOV R0, A MOV A, R1 RLC A MOV R1, A CLR C MOV A, R0 SUBB A, R2 MOV B, A MOV A, R1 SUBB A, R3 JC DIVLOOP2 MOV R0, B MOV R1, A CPL C DJ

20、NZ 46H, DIVLOOP1 MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6, A MOV A, R7 RLC A MOV R7, A RET END 附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(UCHA

21、R*); /DATA UCHAR DISPLAY(UCHAR*); DATA UCHAR TESTOK; VOID MAIN (VOID) DATA UCHAR DISPRAM5; DATA UINT I; DATA ULONG TIME; P0=0XFF; P2=0XFF; TMOD=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; T

22、IME/=10000; DISPRAMO=(UCHAR) (TIME%10); TIME/=10; DISPRAM1=(UCHAR) (TIME%10); TIME/=10; DISPRAM2=(UCHAR) (TIME%10); DISPRAM3=(UCHAR) (TIME/10); IF (0=DISPRAM3) DISPRAM3=17; ELSE DISPRAM 0=16; DISPRAM 1=16; DISPRAM 2=16; DISPRAM 3=16; FOR (l=0;l300;l+) DISPLAY(DISPRAM); VOID CS_R(VOID) INTERRUPT 0 TR

23、0=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?CS_T?CS_T CS_T: PUSH ACC MOV TH0, #00H MOV TL0, #00H MOV A, #4D SETB TR0 CS_T1: CPL p1.0 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP DJNZ POP RET ACC,CS_T1 ACC J END NAME DELAY ?PR?_DELAY?DELAYSEGMENT CODE PUBLIC _DELAY RSEG ?PR?_DELAY?DELAY _DELAY: PUSH ACC MOV A,R7 JZ DELA1 INC R6 DELA1: MOVR5,#50D

溫馨提示

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

評論

0/150

提交評論