基于AT89S52的超声波测距系统设计
AN Yu-lEi
Key words: MCU; temperature compensation; ultrasonic 本文介绍一种以AT89S52单片机为核心的低成本、高精度、LCD数字显示超声波测距仪的硬件电路和软件设计方法。实际使用证明该仪器工作稳定,性能良好。1 超声波测距的基本原理
本设计采用超声波渡越时间检测法。其原理为:检测从超声波发射器发出的超声波,经气体介质的传播到接收器的时间,即渡越时间。渡越时间与气体中的声速相乘,就是声波传输的距离。考虑实际情况,采用异地脉冲反射式来测距,即需测距离是声波传输距离的一半:测出发射和接收回波的时间差△t,然后求出距离。在速度v已知的情况下,距离的计算公式如公式1:S=v·△t/2 (1)
超❤声波属于声波范围,而声速与温度有密切的关系[4],因此测量环境温度可以提高测量精度。声速和温度的关系为: 其中T为环境温度。2 超声波测距系统的总体结构设计
2.1 设计方案超声波测距仪的设计要求如下:
1) 测量范围小于等于5米;2) 测量误差小于0.3cm;
3) 进行温度补偿;4) 以LCD显示,显示温度和距离;
根据以上要求,测距仪的设计方案如下,共四个模块。①以AT89S52单片机为主控制器。该器件是INTEL公司生产的MCS-51系列单片机中的基础产品,采用了可靠的CMOS工艺制造技术,具有较高性能的8位单片机。利用其定时器计数器0实现超声波往返时间的测量; ③采用超声波发射接收一体化器件HC-SR04,以降低调试的复杂性,提高系统的稳定性; 3 硬件设计
3.1 控制模块设计 3.2 超声波模块设计集成电路HC-SR04是一款集发射,接收和控制一体的超声波测距专用模块。超声波模块时序图如图2所示。
其上共有4跟引脚,电源引脚VCC,地引脚GND,触发引脚Trig,和反射波检测Ech¿o。时序图表明只要❣通过IO口给Trig一个大于10微秒的TTL高电平既可以触发模块发送8个40KHz的方波,并自动检测是否有超声波返回。若有信号返回,通过IO口Echo输出一个高电平,且高电平的持续时间就是超声波从发射到接收的时间 。因此只要测得Echo脉冲宽带,结合声速就可以计算出所测距离。3.3 测温模块 通过单线总线端口访问DS18B20的协议主要有:①初始化,也就是主机检测DS18B20的存在;②ROM操作,包括主机对DS18B20的读写等;③存储器操作命令;④执行测温,读取温度和温度转换等。
通过现场测温,计算出当前温度下的波速,可较精确的计算测量距离。3.4 显示模块
4 软件设计 4.1 超声波往返时间计算子程序
void test { StartModual;//启动超声波模块_nop_;//延时以防止接收端
_nop_;//接到发射波_nop_;
_nop_;_nop_;
while;//当Echo为零时等待TR0=1; //开启计数
while; //当Echo为1//计数并等待
TR0=0; //关闭计数}
4.2 距离计算子程序 void calculater{
float v; //声速float tp; //温度
time=TH0*256+TL0;TH0=0;
TL0=0;if //温度为正直
tp=temp*0.0625;else//温度为负值
tp=temp*;c=331.4+0.61*tp; //温度补偿
distance=)/100;}
5 实验结果与结论利用游标卡尺对测距仪标定,测量数据如表1。
利用AT89S52单片机设计的超声波测距仪¡易于操作,读数直观,功耗较低,体积小,便于嵌入其他系统。经实际使用,该测距仪性能稳定,成本低。采用了温度补偿单✞元,提高了测量精度,测量精度可达0.3cm,最小测量距离为3cm,最大测量距离达400cm,达到了很好的效果。中国wWw.LWlm.com
参考文献: [2] 姜道连,宁延一,袁世良.用AT89C2051设计超声波测距仪[J].国外电子元器件,2000.
[3] 钟志万.基于AT89S52和K9F6408U0A的数字语音系统设计[J].电子设计工程,2010,18:180-184.[4] 沈红卫.基于单片机的智能系统设计与实现[M].北京:电子工业出版社,2005:305-306.