0 引言
超声波具有定向性好、能量集中、在传输过程中衰减较小、反射能力较强等优点,超声波传感器可广泛应用于非接触式检测方法,因而采用仿真技术进行超声波测距。
目前国内的超声波测距专用集成电路都是只有厘米级的测量准确度。通过分析超声波测距误差产生的原因,提高测量时间差到微秒级,以及用LM92 温度传感器进行声波传播速度的补偿后,设计的高准确度超声波测距仪能达到毫米级的测量准确度。
1 超声波测距报警系统基本原理
如图1 所示,使单片机可接收超声波模块输出的距离信号,并对其进行合理的处理后,在显示模块上实时显示超声波模块与障碍物的距离。
图1 系统连接示意
单片机发出40 kHz 的方波信号,经放大后通过超声波发射器输出;超声波接收器将接收到的超声波信号经放大器放大,用锁相环电路进行检波处理后,启动单片机中断程序,测得时间为t.
再通过软件编程进行判别、计算,得出所测距离值并由LED 数码管显示,其原理框图如图2。
图2 超声波测距仪原理框图
发射器发出的超声波以速度v 在空气中传播,在到达被测物体时被反射返回,由接收器接收,其往返时间为t.由公式:测出的距离 L (m) = 常温下的声速340 (m/s)× 感应时间t (s) / 2,算出被测物体的距离。由于超声波也是一种声波,其声速v 与温度有关,如果温度变化不大,则可认为声速是基本不变的。如果测距准确度要求很高,则应通过温度补偿的方法加以修正。
2 系统硬件设计
2.1 超声波测距原理
单片机在 T0 时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一个负跳变到单片机中端口,单片机响应中断程序,定时器停止计数。计算时间差,即可得到超声波在介质中传播的时间t ,由此便可计算出距离。其时序图如图3 所示。
图3 超声波时序图
2.2 硬件电路
硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。单片机采用STC89C51 或其兼容系列。采用12 MHz 高准确度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P2.4 端口输出超声波换能器所需的40 kHz 的方波信号,利用外中断0 口监测超声波接收电路输出的返回信号。显示电路采用简单实用的4 位共阳LED 数码管,段码用程序驱动,位码用PNP 三极管驱动。
STC89C51 芯片引脚与封装如图4 所示。
图4 STC89C51 引脚
引脚功能说明:
(1)VCC:电源电压。
(2)GND:接地。
(3)RST:复位输入。当振荡器复位器件时,要保持RST 脚两个机器周期的高电平时间。
(4)/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
(5)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
(6)XTAL2:来自反向振荡器的输出。
(7)P0 口:P0 口为一个8 位漏级开路双向I/O 口,也即地址/ 数据总线复用口。作为输出口用时,每脚可吸收8TTL 门电流。
(8)P1 口:P1 口是一个内部提供上拉电阻的8 位双向I/O 口,P1 口缓冲器能吸收或输出4TTL门电流。
(9)P2 口:P2 口为一个内部上拉电阻的8 位双向I/O 口,P2 口缓冲器可吸收或输出4 个TTL门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
(10)P3 口:P3 口管脚是8 个带内部上拉电阻的双向I/O 口,可吸收或输出4 个TTL 门电流。
P3 口也可作为AT89C52 的一些特殊功能口,如表1 所示。
表1 P3 特殊功能口
P3 口同时为闪烁编程和编程校验接收一些控制信号。
(11)ALE//PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
(12)/PSEN:外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。
2.4 超声波发射电路
超声波发射电路原理如图5 所示。输出端采用两个反向器并联,用以提高驱动能力。上位电阻R10、R11 一方面可以提高反向器74LS04 输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。
图5 超声波发射电路原理图
2.5 超声波检测接收电路
集成电路CX20106A 是一款红外线检波接收的专用芯片。考虑到红外遥控常用的载波频率38 kHz 与测距的超声波频率40 kHz 较为接近,可以利用它制作超声波检测接收电路( 如图6)。实验证明用CX20106A 接收超声波( 无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。
图6 超声波检测接收电路
2.6 显示电路
显示电路采用简单实用的4 位共阳LED 数码管,段码用74LS244 驱动,位码用PNP 三级管驱动。接P2.1 引脚的为个位显示数码管,其小数点在P2.1 有效时显示,此功能由软件来完成。
2.7 复位功能
系统应具备测距启动功能,可以复位系统,使其开始重新测距。
综上所述,本系统的特点是利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时,单片机选用STC89C52,经济易用,且片内有8K 的ROM,便于编程。电路原理如图7 所示。
3 软件方案
系统软件设计采用模块化设计,主要包括主程序设计、T0 中断服务子程序、外部中断服务子程序、距离计算子程序、LED 显示子程序设计等。
主程序首先是对系统环境初始化,设置定时器T0工作模式为16 位定时计数器模式。置位总中断允许位EA 并给显示端口P0 和P2 清0.
图7 电路原理
然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1 ms,然后才打开外中断0 接收返回的超声波信号。
测出距离后结果将以十进制BCD 码方式送往LED 显示约0.5 s,然后再发超声波脉冲重复测量过程。为了有利于程序结构化和容易计算出距离,主程序采用C 语言编写。
3.1 主程序
· 系统控制初始化LED、初始化计数控制部分,清除计数值。
· 单片机超声波脉冲信号。
· 立刻置INT0 为1,打开计时器,等待回波信号。
· 回波信号到达,关闭计时器,P3.3 为0,清INT0 为0.
· 单片机读出计数值。
· 单片机将计数值进行计算后得出的距离值,显示在LED 上。
· 当测量距离《 10.0 cm 或》 50.0 cm 时,报警系统灯亮。
· 当按下复位键时,启动复位功能。
主程序流程图如图8 所示。
图8 主程序流程
3.2 定时中断服务子程序
超声波发生子程序的作用是通过P3.3 端口发送2 个左右频率约40 kHz 的方波的超声波脉冲信号,同时把计数器T0 打开进行计时。定时中断子程序如图9 所示。
图9 定时中断服务子程序
3.3 功能显示
如图10 所示,通过数码管显示测出距离为14.3 cm,属于10.0 ~ 50.0 cm 正常范围。
图10 超声波测距正常范围
如图11 所示,超声波测出的距离为9.4 cm,《 10.0 cm,报警系统启动,LED 灯亮。
图11 超声波测距《 10.0 cm
如图12 所示,超声波测出的距离为50.3 cm,》 50.0 cm,报警系统启动,LED 灯亮。
图12 超声波测距大于50.0 cm
如图13 所示,按下键盘模块中的按键,复位系统,数码管显示距离数归零。
图13 启动复位功能
评论
查看更多