基于AT89C51单片机的超声波测距仪的设计 - 图文 下载本文

内容发布更新时间 : 2024/12/23 14:19:26星期一 下面是文章的全部内容请认真阅读。

3.2 电源设计

图2 最小系统

图3 总设计电路图

STC89C51、超声波传感器、按键、四位数码管、蜂鸣器等一些单片机外围应用电路。其 硬件电路总设计见图3,从以上的分析可知在本设计中要用到如下器件:

中D1为电源工作指示灯。电路中用到3个按键,一个是设定键, 一个加键,一个减键。

电源部分的设计采用3节5号干电池4.5V供电。

- 5 -

3.3 超声波测试模块

超声波模块采用现成的HC-SR04超声波模块,该模块可提供 2cm-400cm 的非接触式距离感测功能,测距精度可达高到 3mm。模块包括超声波发射器、接收器与控制电路。基本工作原理:采用 IO 口 TRIG 触发测距,给至少 10us 的高电平信号;模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。实物如下图4。其中VCC 供5V 电源,GND 为地线,TRIG 触发控制信号输入,ECHO 回响信号输出等四支线。

图4 超声波模块实物图

超声波探测模块HC-SR04的使用方法如下:IO口触发,给Trig口至少10us的高电平,启动测量;模块自动发送8个40Khz的方波并随时检测是否有信号返回,有信号返回,通过Echo输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间,测试距离=(高电平时间*340)/ 2,单位为m。程序中测试功能主要由两个函数完成。 实现中采用定时器0进行定时测量,8分频,TCNTT0预设值0XCE,当timer0溢出中断发生2500次时为125ms,计算公式为(单位:ms):

T = (定时器0溢出次数 * (0XFF - 0XCE))/ 1000

其中定时器0初值计算依据分频不同而有差异。

3.4 超声波传感器原理

市面上常见的超声波传感器多为开放型,其内部结构如图5所示,一个复合式振动

器被灵活地固定在底座上。该复合式振动器是由谐振器以及一个金属片和一个压电陶瓷片组成的双压电晶片元件振动器。谐振器呈喇叭形,目的是能有效地辐射由于振动而产生的超声波,并且可以有效地使超声波聚集在振动器的中央部位。

当电压作用于压电陶瓷时,就会随电压和频率的变化产生机械变形。另一方面,当振动压电陶瓷时,则会产生一个电荷。利用这一原理,当给由两片压电陶瓷或一片压电陶瓷和一个金属片构成的振动器,所谓叫双压电晶片元件,施加一个电信号时,就会因

- 6 -

弯曲振动发射出超声波。相反,当向双压电晶片元件施加超声振动时,就会产生一个电信号。基于以上作用,便可以将压电陶瓷用作超声波传感器。

图5 超声波内部结构

超声波是一种在弹性介质中的机械振荡,其频率超过20KHz,分横向振荡和纵向振荡两种,超声波可以在气体、液体及固体中传播,其传播速度不同。它有折射和反射现象,且在传播过程中有衰减。

3.5 测距分析

超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2

最常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,碰到障碍物的阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时并计算出距离。以超声波在空气中的传播速度为340m/s计算,根据定时器算出的时间t,就可以计算出发射点距障碍物面的距离s,即:s=340t/2。

由于超声波也是一种声波,其声速V与温度有关。在使用时,如果传播介质温度变化不大,则可近似认为超声波速度在传播的过程中是基本不变的。如果对测距精度要求很高,则应通过温度补偿的方法对测量结果加以数值校正。声速确定后,只要测得超声波往返的时间,即可求得距离。这就是超声波测距的基本原理。如图6所示:

t - 7 -

超声波发射 障碍物 S H θ

超声波接收 图6 超声波的测距原理

H?Scos? (3-1)

??arctg(L)H (3-2)

式中:L---两探头之间中心距离的一半. 又知道超声波传播的距离为:

2S?vt ( 3-3) 式中:v—超声波在介质中的传播速度;

t—超声波从发射到接收所需要的时间. 将(3—2)、(3—3)代入(3-1)中得:

1LH?vtcos[arctg]2H ( 3-4)

其中,超声波的传播速度v在一定的温度下是一个常数(例如在温度T=30度

时,V=349m/s);当需要测量的距离H远远大于L时,则(3—4)变为:

1H?vt2 ( 3-5)

所以,只要需要测量出超声波传播的时间t,就可以得出测量的距离H.

3.6 时钟电路的设计

AT89C51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。AT89C51单片机的时钟产生方法有两种。内部时钟方式和外部时钟方式。

本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHZ到12MHZ之间选择。

- 8 -