基于单片机的超声波测距论文内容摘要:

﹣ 20 ﹣ 10 0 10 20 30 100 声波 /( ) 313 319 325 323 338 344 349 386 超声波 5 序送出一个超声波脉冲。 为了避免超声波从发射器直接传到接收器引起的直射波,需要延时约 (这也就是超声波测距器会有一个最小可测距离的原因)后才可打开外中断 0 接收返回的超声波信号。 由于采用的是 12MHz 的晶振,计数器每计一个数就是 1us,所以当主程序检测到接收成功的标志位后,将计数器 T0中的数(即超声波来回 所用的时间)按式( 3— 2)计算,即可得被测物体与测距器之间的距离。 设计时取 20℃时的声速为 344m/s,则有 d=( v t) /2=( 172T/10000) cm ( 3— 2) 其中: T 为计数器 T0 的计数值。 测出距离后,结果将以十进制 BCD 码方式送往 LED 显示约为 ,然后再发超声波脉冲重复测量过程。 图 所示为主程序流程图。 图 主程序流程图 ※※※※※※主程序※※※※※※ START: MOV SP, 4FH MOV R0, 40H。 40H~ 43H为显示数据存放单元( 40H为最高位) MOV R7, 0BH CLEARDISP: MOV @R0, 00H INC R0 DJNZ R7, CLEARDISP MOV 20H, 00H MOV TMOD, 21H ; T1 为 8位自动重装模式, T0 为 16 位定时器 MOV TH0, 00H。 65ms 初值 MOV TL0, 00H MOV TH1, 0F2H。 40kHz 初值 MOV TL1, 0F2H MOV P0, 0FFH MOV P1, 0FFH MOV P2, 0FFH 开始 系统初始化 发送超声波脉冲 等待反射超声波 计算距离 显示结果 超声波 6 MOV P3, 0FFH MOV R4, 04H。 超声波脉冲个数控制(为赋值的一半) SETB PX0 SETB ET0 SETB EA SETB TR0 ;开启测试定时器 START1: LCALL DISPLAY JNB 00H, START1。 收到反射信号时标志位为 1 CLR EA LCALL WORK SETB EA CLR 00H SETB TR0。 重新开启测试定时器 MOV R2, 64H。 测量间隙控制(约 4ms 100=400ms) LOOP: LCALL DISPLAY DJNZ R2,LOOP SJMP START1 超声波发生子程序和超声波接收中断程序 超声波发生子程序的作用是通过 端口发送两个左右的超声波脉冲信号(频率 40KHz 的方波),脉冲宽度为 12us 左右,同时把计数器 T0 打开进行时。 超声波发生子程序较简单,但要求程序运行时间准确,所以采用汇编语言编程。 ORG 0000H LJMP START ORG 0003H LJMP PINT0 ORG 000BH LJMP INTT0 ORG 0013H RETI ORG 001BH LJMP INTT1 ORG 0023H RETI ORG 002BH RETI 超声波测距器主程序利用外中断 0 检测返回超声波信号,一旦接收到返回超声波信号(即 INT0 引脚出现低电平),立即进入超声波接收中断程序。 进入该中断后,就立即关闭计时器 T0,停止计时,并将测距成功标志字赋值 1. ※※※※※※中断程序※※※※※※ ; T0 中断, 65ms 中断一次 INTT0: CLR EA CLR TR0 超声波 7 MOV TH0,00H MOV TL0,00H SETB ET1 SETB EA SETB TR0。 启动计数器 T0,用以计算超声来回时间 SETB TR1 ;开启发超声波用定时器 T1 OUT: RETI ; T1 中断,发超声波用 INTT1: CPL VOUT DJNZ R4,RETOUT CLR TR1。 超声波发完毕,关 T1 CLR ET1 MOV R4,04H SETB EX0。 开启接收回波中断 RETIOUT: RETI。 外中断 0,收到回波时进入 PINT0: CLR TR0。 关计数器 CLR TR1 CLR ET1 CLR EA CLR EX0 MOV 44H,TL0。 将计数值移入处理单元 MOV 45H,TH0 SETB 00H。 接收成功标志 RETI 如果当计时 器溢出时还未检测到超声波返回信号,则定时器 T0溢出中断将外中断 0关闭,并将测距成功标志字赋值 2,以表示本次测距不成功。 调试 超声波测距器的制作和调试都较为简单,其中超声波发射和接收采用 248。 15 的超声波换能器 TCT40— 10F1( T发射)和 TCT40— 10S1( R 接收),中心频率为 40KHz,安装时应保持两换能器中心轴线平行并相距 4~8cm,其余元件无特殊要求。 若能将超声接收电路用金属壳屏蔽起来,则可提高抗干扰性能。 根据测量范围要求不同,可适当地调整与 接收换能器并接的滤波电容 C4的大小,以获得合适的接收灵敏度和抗干扰能力。 硬件电路制作完成并调整好后,便可将程序编译好下载到单片机试运行。 根据实际情况,可以修改超声波子程序每次发送的脉冲个数和两次测量的间隔时间,以适应不同距离的测量需要。 超声波 8 性能指示 根据文中电路参数和程序,测距器可测量的范围为 ~。 实验中,对测量范围为 ~ 的平面物体做了多次测试,测距器的最大误差不超过 1cm,重复性很好。 超声波 9 单片机汇编源程序 超声波测距器 采用 AT89C51 12MHz 晶振 采用共阳 LED显示器 测试范围为 ~ 4m,堆栈在 4FH 以上, 20H 用于标志 显示缓冲单元在 40H~ 43H,内存 44H~ 46H 用于计算距离 VOUT EQU。 脉冲输出端口 ※ ※ ※※※※ 中断入口程序 ※ ※※※※※ ORG 0000H LJMP START ORG 0003H LJMP PINT0 ORG 000BH LJMP INTT0 ORG 0013H RETI ORG 001BH LJMP INTT1 ORG 0023H RETI ORG 002BH RETI ※ ※※※※※ 主程序※ ※※※※※ START: MOV SP, 4FH MOV R0, 40H。 40H~ 43H为显示数据存放单元( 40H为最高位) MOV。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。