微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于STC89C52单片机的超声波测距系统

基于STC89C52单片机的超声波测距系统

时间:10-15 来源:互联网 点击:

超声波有以下特点:速度小,传播时间容易检测;频率高,反射性强,绕射性弱;传播距离较远;对光线和电磁场不敏感等。利用超声波的这些优点,结合微电子技术,超声波测距技术应运而生。与激光测距、红外线测距等相比,超声波测距更适于电磁干扰强,烟雾等恶劣环境中。而且,超声波测距技术设计方便、精度较高。超声波测距技术的优势,使它有着广泛的应用,比如:建筑施工工地,液位测量,车辆导航等。传统的超声波测距系统采用的电路结构比较复杂,且当回波信号过于微弱时,测量误差会加大。在系统接收电路中采用的增益控制部分能有效地解决这一难题。

超声波测距的方法很多,有相位检测法,幅值检测法和渡越时间法等。系统采用的是渡越时间法TOF(Time of Flight)。原理如下:发射换能器在一端向某一方向发射超声波,同时计时器开始计时。超声波在传播过程中遇到障碍物被反射回来,接收换能器接收到反射回来的超声波,此时结束计时。假设计时时间为t,超声波的传播速度为n,则从换能器到障碍物之间的距离d为超声波往返距离的一半。其中超声波传播速度n与环境温度T有关。系统使用单片机的定时器对超声波的往返时间进行准确计时。采用温度传感器测量温度,并将所得温度经A/D转换,变为数字量后,送入控制器,由软件对超声波速度进行温度补偿处理。

1 系统硬件设计

系统由单片机主控部分和超声波测距部分组成,结构如图1所示。主控部分包括单片机控制模块、液晶显示模块、温度补偿模块和串口通信模块。超声波测距部分包括超声波发射模块和接收模块。

单片机控制模块通过控制发射换能器发射超声波到固定端面,同时启动定时器开始计时。超声波经反射后由接收换能器接收,当单片机控制模块接收到第一个反射波信号即停止计时。单片机根据计时器值计算出时间间隔t。温度补偿模块采集数字温度,根据公式(1)计算出超声波速度v。

其中T是空气介质的温度(℃)。在测量精度要求较高的场合,需要采用温度补偿的方式对超声波的速度校正。

最后利用公式(2)计算出换能器到障碍物之间的距离d。

液晶显示模块显示当前的温度值T和计算所得的距离d。串口通信模块可以通过串口在线下载单片机程序。

1.1 主控部分

1.1.1 单片机控制模块

单片机控制模块为系统的核心控制单元。单片机STC89C52的INT1/P3.3端口用于输出发射器所需的40 kHz方波信号,INT0/P3.2端口用于检测接收器输出的返回信号。液晶显示电路采用LCD1602,使用单片机的P0口和P2口完成显示功能。RXD/P3.0和TXD/P3.1端口用于串口数据的接收与发送。P1.2和P1.3分别为超声波的接收与发送使能端口。P3.4端口用于接收从温度传感器DS18B20获取的温度信息。

1.1.2 温度补偿模块

由(1)式可知,温度对声速的影响较大。为了提高系统的测量精度,增加了温度补偿模块。其中的温度传感器采用的是DALLAS公司生产的数字式温度传感器DS18B20。硬件接口简单,性能稳定,仅需一根接口线与单片机连接;测量温度范围为-55~+125 ℃;温度数字量转换时间为200 ms(典型值);适合于恶劣环境的现场温度测量。

DS18B20的管脚2与单片机P3.4接口相连,单片机通过此管脚以串行传送方式读取测温结果。依靠上拉电阻提供电源,以达到DS18B20工作电流为1 mA的要求。根据所测温度值,利用公式(1)对超声波的速度进行校正。

1.1.3 液晶显示模块

液晶显示模块用于显示当前的环境温度和测得的距离值。显示器件LCD1602的优点是微功耗、体积小、显示内容丰富。它识别的是ASCII码,可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值。

单片机的P0口和P2口与液晶模块相连,其中P0.0~P0.7端口用于LCD1602的数据输出,P2.0~P2.2端口分别用于显示模块的数据命令选择,读写选择和使能控制。R6和R7分别用于调节LCD1602的亮度和对比度。

1.2 超声波测距部分

超声波测距单元的框图如图2所示。系统中采用的换能器是中心频率为40.0 kHz±0.1Hz的发射器255-400ST16和接收器255-400SR16。该换能器具有很高的灵敏度和较强的抗干扰能力。安装时应保持2个换能器中心轴线平行并相距4~8 cm,若能将超声波接收电路用金属壳屏蔽起来,可提高抗干扰能力。

1.2.1 超声波发射电路

只要使用40 kHz的方波激励换能器就可以产生超声波。超声波发射电路如图3所示。电路中使用MOSFET管ZXM61P03F进行电源管理,当单片机的P1.3端口为低电平时,电路通电。MAX864为电压转换芯片,它将输入的5 V电源进行加倍,转换为正电源+10 V和负电源-10 V两路输出,提供给其后的LM8261使用。FC1和FC0为

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top