超声波测距资料超声波测距模块连线:我们将超声波测距模块用红色,绿色两根导线引出,红色线(超声波测距模块电源脚)接5208K实验仪+5V,绿色线(超声波测距模块接地脚)接5208K实验仪GND.打开5208K实验仪电源, 超声波测距模块初始化显示27.将超声波发射接收头对准障碍物,数码管将显示超声波测距模块与障碍物之间的距离。
超声波测距学习板,可应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。
测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。
超声波学习板采用AT89S51单片机晶振为12M,单片机用P1.0口输出超声波换能器所需的40K方波信号,利用外中断监测超声波接收电路输出的返回信号,显示电路采用简单的4位共阳LED数码管,段码驱动用74LS244集成电路,位码用S8550三极管驱动。
超声波测距的算法原理: 超声波在空气中传播速度为每秒钟340米(15℃时)。
X2是声波返回的时刻,X1是声波发声的时刻,X2-X1得出的是一个时间差的绝对值,假定X2-X1=0.03S,则距离为340mx0.03S=10.2米。
这就是超声波探头到反射物体之间的距离。
产品性能特点:成品板上自带:超声波收发传感器、接收放大电路、四位LED数码显示、四位按键(四个按钮和蜂鸣器属于功能预留,程序中无定义),电源部分自带整流、滤波、稳压电路,允许交流7~15V或者直流9~16V输入,经过实际测试,测量范围可达27~250厘米,测量精度为1厘米。
下图是超声波测距学习板的元件布局图,以下是部分汇编源程序;/////////////////////////////////////////////////////// ; USE BY :超声波测距器; IC :AT89C51; TEL :; OSCCAL :XT (12M); display :共阳LED显示;/////////////////////////////////////////////////////// ;测距范围7CM-11M,堆栈在4FH以上,20H用于标志;显示缓冲单元在40H-43H,使用内存44H、45H、46H用于计算距离;VOUT EQU P1.0 ; 红外脉冲输出端口speak equ p1.1;********************************************;* 中断入口程序 *;********************************************;ORG 0000HLJMP STARTORG 0003HLJMP PINT0ORG 000BHretiORG 0013HRETIORG 001BHLJMP INTT1ORG 0023HRETIORG 002BHRETI;;********************************************;* 主程序 *;********************************************;START: MOV SP,#4FHMOV R0,#40H ;40H-43H为显示数据存放单元(40H为最高位)MOV R7,#0BHCLEARDISP: MOV @R0,#00HINC R0DJNZ R7,CLEARDISPMOV 20H,#00HMOV TMOD,#11H ;T1为 T0为16位定时器MOV TH0,#00H ;65毫秒初值MOV TL0,#00HMOV TH1,#00HMOV TL1,#00HMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R4,#04H ;超声波肪冲个数控制(为赋值的一半)SETB PX0SETB ET1SETB EASETB TR1 ;开启测距定时器start1: LCALL DISPLAYJNB 00H,START1 ;收到反射信号时标志位为1CLR EALCALL WORK ;计算距离子程序clr EAMOV R2,#32h;#64H ;测量间隔控制(约4*100=400MS)LOOP: LCALL DISPLAYDJNZ R2,LOOPCLR 00Hsetb et0mov th0,00hmov tl0,00hSETB TR1 ;重新开启测距定时器SETB EASJMP Start1;;**************************************************** ;* 中断程序* *;****************************************************;T1中断,发超声波用 ;T1中断,65毫秒中断一次INTT1: CLR EACLR TR0clr ex0MOV TH0,#00HMOV TL0,#00HMOV TH1,#00HMOV TL1,#00HSETB ET0SETB EASETB TR0 ;启动计数器T0,用以计intt11:CPL VOUT ;40KHZnopnopnopnopnopnopnopnopnopDJNZ R4,intt11;超声波发送完毕,MOV R4,#04Hlcall delay_250 ;延时,避开发射的直达声波信号SETB EX0 ;开启接收回波中断RETIOUT: RETI;外中断0,收到回波时进入PINT0: nopjb p3.2,pint0_exitCLR TR0 ;关计数器CLR EA ;CLR EX0 ;MOV 44H,TL0 ;将计数值移入处理单元MOV 45H,TH0 ;mov th0,#00hmov tl0,#00hjnb p3.2,$SETB 00H ;接收成功标志pint0_exit:RETI;;**************************************************** ;* 显示程序 *;**************************************************** ; 40H为最高位,43H为最低位,先扫描高位DISPLAY: MOV R1,#40H;GMOV R5,#7fH;GPLAY: MOV A,R5MOV P0,#0FFHMOV P2,AMOV A,@R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P0,ALCALL DL1MSINC R1MOV A,R5JNB ACC.4,ENDOUT;GRR AMOV R5,AAJMP PLAYENDOUT: MOV P2,#0FFHMOV P0,#0FFHRET;TAB: DB 18h, 7Bh, 2Ch, 29h, 4Bh, 89h, 88h, 3Bh, 08h, 09h,0ffh ;共阳段码表 "0" "1" "2" "3" "4" "5""6" "7" "8" "9" "不亮""A""-" ;;****************************************************;* 延时程序 *;****************************************************;DL1MS:push 06hpush 07hMOV R6,#14HDL1: MOV R7,#19HDL2: DJNZ R7,DL2DJNZ R6,DL1pop 07hpop 06hRET;;****************************************************;* 距离计算程序 (=计数值*17/1000cm) *;****************************************************;work: PUSH ACCPUSH PSWPUSH BMOV PSW, #18hMOV R3, 45HMOV R2, 44HMOV R1, #00DMOV R0, #17DLCALL MUL2BY2MOV R3, #03HMOV R2, #0E8HLCALL DIV4BY2LCALL DIV4BY2MOV 40H, R4MOV A,40HJNZ JJ0MOV 40H,#0AH ;最高位为零,不点亮JJ0: MOV A, R0MOV R4, AMOV A, R1MOV R5, AMOV R3, #00DMOV R2, #100DLCALL DIV4BY2MOV 41H, R4MOV A,41HJNZ JJ1MOV A,40H ;次高位为0,先看最高位是否为不亮SUBB A,#0AHJNZ JJ1MOV 41H,#0AH ;最高位不亮,次高位也不亮JJ1: MOV A, R0MOV R4, AMOV A, R1MOV R5, AMOV R3, #00DMOV R2, #10DLCALL DIV4BY2MOV 42H, R4MOV A,42HJNZ JJ2MOV A,41H ;次次高位为0,先看次高位是否为不亮SUBB A,#0AHJNZ JJ2MOV 42H,#0AH ;次高位不亮,次次高位也不亮JJ2: MOV 43H, R0POP BPOP PSWPOP ACCRET;;****************************************************;* 两字节无符号数乘法程序 *;****************************************************; R7R6R5R4 <= R3R2 * R1R0超声波专用发射接收头,有T字样的是发射头,标有R字样的是接收头。