[收稿日期 ]2003207208[作者简介 ]李建法(1955 —) ,男 ,河南林州人 ,副教授 ,从事自动控制研究。超声波测距的电路设计与单片机编程李建法 ,李立新 ,李勇 ,牛洹波(安阳师范学院 物理系 ,河南 安阳 455000) [摘 要]介绍了基于单片机处理的超声波测距系统的组成 ,工作原理和程序设计方法。本系统可用于需要测量距离参数的各种应用场合。[关键词]超声波 ;单片机 ;测距电路[中图分类号 ]TP36811 [文献标识码 ]A [文章编号 ]167125330(2003) 0520047202 距离是在不同的场合和控制中需要检测的一个参数 ,所以 ,测距就成为数据采集中要解决的一个问题。尽管测距有多种方式 ,比如 ,激光测距 ,微波测距 ,红外线测距和超声波测距等。但是 ,超声波测距不失为一种简单可行的方法。虽然超声波测距电路多种多样 ,甚至已有专用超声波测距集成电路。但是 ,有的电路复杂 ,技术难度大 ,有的调试困难 ,有的元件不易购买。本文介绍的电路 ,成本低廉 ,性能可靠 ,所用元件易购 ,并且利用测距原理 ,结合单片机的数据处理 ,使测量精度提高 ,电路实现容易 ,无须调试 ,工作稳定可靠。超声波测距通常采用度越时间法 ,即利用 s = vt/ 2 计算被测物体的距离。式中 s 为收发头与被测物体之间的距离 , v 为 超 声 波 在 介 质 中 的 传 播 速 度 ( v = 331. 41 + T/ 273m/ s) ,t 为超声波的往返时间间隔。工作原理为 :发射头发出的超声波以速度 v 在空气中传播 ,在到达被测物体时被其表面反射返回 ,由接收头接收 ,其往返时间为 t ,由 s 算出被测物体的距离。T 为环境温度 ,在测量精度要求高的场合必须考虑此影响 ,但在一般情况下 ,可舍去此法 ,由软件进行调整补偿。1 电路设计电路框图如图 1 所示。图 1 整机电路框图111 超声波发送电路超声波发送电路如图 2 所示。555 电路产生 40KH 的振荡信号 ,门电路产生低频调制脉冲 ,脉冲持续时间为160μ s 左右 ,脉冲间隔为 30 —40ms(视需要调整) 。此脉冲信号一路作为振荡器的置位脉冲 ,另一路作为计时的起始脉冲。在置位期间 ,振荡器输出频率为 40KH 的脉冲信号(约 8 个脉冲) ,由超声波发射头 T40 —16 发射出去。图 2 超声波发送电路112 超声波接收电路图 3 超声波收电路超声波的接收电路如图 3 所示。它采用通用的 FPS —4091 红外接收组件 ,但是 ,需要将红外接收管 PH302 换为超声波接收头 R40 —16。因为在距离较远时 ,回波信号很弱 ,使用此接收组件 ,可以在有效的测距范围内保证接收到的信号其输出达到 TTL 电平 ,避免了为达到几十万倍的放大量而采用多级运放组成的调试困难的高增益放大电路 ,十分便于制作 ,且电路无需调试。图中 T 为进一步整形放大 ,可增大测量距离 ,反相器为满足单片机需要不同极性的信号而加入。2 软件设计本系统的程序主要包括启、停脉冲检测 ,计时 ,盲区延742003 年 安阳师范学院学报© 1994-2007 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net时 ,数据处理 ,修正 ,显示等。因为采用的是渡越时间法进行测距 ,所以要测出超声波收、发之间的时间 t ,则距离 s =图 4 发收端工作时序图vt/ 2。电路的工作时序如图 4 所示 ,其中 a 脉冲为发送端的置位脉冲 ,同时作为计时器的起始脉冲 ;b 脉冲为虚假脉冲 (由绕射产生 ,应避开) ;a、b 的时间间隔为盲区 ;c 脉冲为接受端接收到的有效回波脉冲 ,用于停止计时器的计时。程序的主要任务就是检测 a、c 脉冲 ,以启停计时器的计时 ,进而得出时间 ,再由数据处理、修正单元计算出实际距离 ,然后供显示。因为现在有多种不同的单片机 ,实际制作中根据习惯 ,采用不同系列的产品 ,所以 ,本文主要给出程序流图(见图 5) ,说明编程思路 ,以及采用 AT89C2051 处理器的计时部分程序。计时部分程序如下 :图 5 ⋯⋯M1 :JNB P1. 0 ,M11 ;起始脉冲LJMP M1M11 :;延时 6ms ,避开盲区 = = = = =DL3 : MOV R5 , # 6DL31 : M...