您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 用51单片机设计超声波测距系统的设计原理及电路(附源程序)
基于51单片机的超声波测距仪说明书引言超声波测距仪,可应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。利用超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制。一、性能要求该超声波测距仪,要求测量范围在0.08-3.00m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。二、工作原理及方案论证超声波传感器及其测距原理超声波是指频率高于20KHz的机械波。用超声波传感器产生超声波和接收超声波,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器.超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。超声波测距的原理一般采用渡越时间法TOF(timeofflight)。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离。根据要求并综合各方面因素,采用AT89C52单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,超声波测距仪的系统框图如下图所示:图1超声波测距仪系统设计框图三、系统硬件部分硬件部分主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。1.单片机系统及显示电路单片机采用AT89C52来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。单片机通过P1.1引脚发射脉冲控制超声波的发送,然后单片机不停的检测外中断0口INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP三极管驱动。单片机系统及显示电路如下图所示:XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52Q19012Q39012Q49012Q290121A021A141A261A382A0112A1132A2152A3171OE12OE191Y0181Y1161Y2141Y3122Y092Y172Y252Y33U274LS244R510510R14.7KR24.7KR34.7KR44.7KVccC13.3uXT112MS1C320pR810KC220pGND图2单片机系统及显示电路2.超声波发射电路利用555时基电路振荡产生40kHz的超声波信号,使之与换能器的40kHz固有频率一致。12V电源保证555时基具有足够驱动能力。P1.1为超声波发射控制信号,由单片机控制。发射电路如图3所示:TRIG2Q3R4p1.1p1.1CVolt5THR6DIS7VCC8GND1555p1.13300PC50.1C6TR51k+12V5kR6图3超声波发射电路原理图3.超声波检测接收电路超声波接收电路采用集成电路CX20106A,这是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38KHz与测距超声波频率40KHz较为接近,可以利用它作为超声波检测电路。实验证明其具有很高的灵敏度和较强的抗干扰能力。适当改变C4的大小,可改变接受电路的灵敏度和抗干扰能力。接收电路如图4所示:图4超声波接收电路图四.系统软件部分超声波测距程序设计软件部分主要由主程序,超声波发射子程序,超声波接受中断程序及显示子程序组成。下面对超声波测距仪的算法,主程序,超声波发射子程序和超声波接受中断程序逐一介绍。1.超声波测距仪的算法设计下图示意了超声波测距的原理,即超声波发生器T在某一时刻发出的一个超声波信号,当超声波遇到被测物体后反射回来,就被超声波接收器R所接受。这样只要计算出发生信号到接受返回信号所用的时间,就可算出超声波发生器与反射物体的距离。距离计算公式:d=s/2=(c*t)/2*d为被测物与测距器的距离,s为声波的来回路程,c为声速,t为声波来回所用的时间2.主程序主程序框图如右图所示:主程序首先对系统环境初始化,设置定时器T0工作模式为16位的定时计数器模式,置位总中断允许位EA并给显示端口P0和P2清0。然后调用超声波发生子程序送出一个超声波脉冲,为避免超声波从发射器直接传送到接收器引起的直接波触发,需延迟0.1ms(这也就是测距器会有一个最小可测距离的原因)后,才打开外中断0接收返回的超声波信号。由于采用12MHz的晶振,机器周期为1us,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按下式计算即可测得被测物体与测距仪之间的距离,设计时取20℃时的声速为344m/s则有:d=(C*T0)/2=172T0/10000cm(其中T0为计数器T0的计数值)测出距离后结果将以十进制BCD码方式LED,然后再发超声波脉冲重复测量过程。3.超声波发生子程序和超声波接收中断程序超声波发生子程序的作用是通过P1.1端口发送超声波发射控制脉冲信号,同时把计数器T0打开进行计时。超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序。进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功。五.软硬件调试及性能超声波发射和接收采用Φ15的超声波换能器TCT40-10F1(T发射)和TCT40-10S1(R接收),中心频率为40kHz,保持两换能器中心轴线平行并相距4~8cm。主要性能指标:测距仪能测的范围为0.08~3.00m,测距仪精度1cm。程序清单以下是用汇编语言编写的超声波测距控制源程序:采用AT89S5212MHz晶振显示缓冲单元在40H~43H,使用内存44H、45H、46H用于计算距离20H用于标志VOUTEQUP1.0;脉冲输出端口*中断入口程序*ORG0000HLJMPSTARTORG0003HLJMPPINT0ORG000BHLJMPINTT0ORG0013HRETIORG001BHLJMPINTT1ORG0023HRETIORG002BHRETI*主程序*START:MOVSP,#4FHMOVR0,#40H;40~43H为显示数据存放单元(40为最高位)MOVR7,#0BHCLEARDISP:MOV@R0,#00HINCR0DJNZR7,CLEARDISPMOV20H,#00HMOVTMOD,#21H;T1为8位自动重装模式,T0为16位定时器MOVTH0,#00H;65ms初值MOVTL0,#00H;40KHz初值MOVTH1,#0F2HMOVTL1,#0F2HMOVP0,#0FFHMOVP1,#0FFHMOVP2,#0FFHMOVP3,#0FFHMOVR4,#04H;超声波脉冲个数控制(为赋值的一半)SETBPX0SETBET0STEBEACLR00HSETBTR0;开启测距定时器START1:LCALLDISPLAYJNB00H,START1;收到反射信号时标志位为1CLREALCALLWORK;计算距离子程序SETBEACLR00HSETBTR0;重新开启测距定时器MOVR2,#64H;测量间隔控制(约4*100=400ms)LOOP:LCALLDISPLAYDJNZR2,LOOPSJMPSTART1*中断程序*;T0中断,65ms中断一次INTT0:CLREACLRTR0MOVTH0,#00HMOVTL0,#00HSETBET1SETBEASETBTR0;启动计时器T0,用以计算超声波来回时间SETBTR1;开启发超声波用定时器T1OUT:RETI;T1中断,发超声波用INTT1:CPLVOUTDJNZR4,RETIOUTCLRTR1;超声波发送完毕,关T1CLRET1MOVR4,#04HSETBEX0;开启接收回波中断RETIOUT:RETI;外中断0,收到回波时进入PINT0:CLRTR0;关计数器CLRTR1CLRET1CLREACLREX0MOV44H,TL0;将计数值移入处理单元MOV45H,TH0SETB00H;接收成功标志RETI*延时程序*DL1MS:MOVR6,#14HDL1:MOVR7,#19HDL2:DJNZR6,DL2DJNZR6,DL1RET*显示程序*;40H为最高位,43H为最低位,先扫描高位DISPLAY:MOVR1,#40H;GMOVR5,#0F7H;GPLAY:MOVA,R5MOVP0,#0FFHMOVP2,AMOVA,@R1MOVDPTR,#TABMOVCA,@A+DPTRMOVP0,ALCALLDLIMSINCR1MOVA,R5JNBACC.0,ENDOUT;GRRAMOVR5,AAJMPPLAYENDOUT;MOVP2,#0FFHMOVP0,#0FFHRETTAB;DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH;共阳数码管0,1,2,3,4,5,6,7,8,9,不亮,A,—*距离计算程序(=计算值×17/1000cm)近似WORK:PUSHACCPUSHPSWPUSHBMOVPSW,#18HMOVR3,45HMOVR2,44HMOVR1,#00DMOVR0,#17DLCALLMUL2BY2MOVR3,#03HMOVR2,#0E8HLCALLDIV4BY2LCALLDIV4BY2MOV40H,R4MOVA,40HJNZJJ0MOV40H,#0AH;最高位为0,不点亮JJ0:MOVAR0MOVR4,AMOVAR1MOVR5AMOVR3,#00DMOVR2,#100DLCALLDIV4BY2MOV41H,R4MOVA,41HJNZJJ1MOVA,40H;此高位为0,先看最高位是否为不亮SUBBA,#0AHJNZJJ1MOV41H,#0AH;最高位不亮,次高位也不亮JJ1:MOVA,R0MOVR4,AMOVA,R1MOVR5,AMOVR3,#00DMOVR2,#10DLCALLDIV4BY2MOV42H,R4MOVA42HJNZJJ2MOVA,41H;次高位为0,先看次高位是否为不亮SUBBA,#0AHJNZJJ2MOV42H,#0AH;次高位不亮,次高位也不亮JJ2:MOV43H,R0POPBPOPPSWPOPACCRET*两字节无符号数乘法程序MUL2BY2:CLRAMOVR7,AMOVR6,AMOVR5,AMOVR4,AMOV46H,#10HMULLOOP1:CLRCMOVA,R4RLCAMOVR4,AMOVA,R5RLCAMOVR5,AMOVA,R6RLCAMOVR6,AMOVA,R7RLCAMOVR7,AMOVA,R0RLCAMOVR0,AMOVA,R1RLCAMOVR1,AJNCMULLOOP2MOVA,R4ADDA,R2MOVR4,AMOVA,R5ADDCA,R3MOVR5,AMOVA,R6ADDCA,#00HMOVR6,AMOVA,R7ADDCA,#00HMOVR7,AMULLOOP2:DJNZ
本文标题:用51单片机设计超声波测距系统的设计原理及电路(附源程序)
链接地址:https://www.777doc.com/doc-5206177 .html