AT89C52超声波测距倒车防撞报警系统
摘 要:利用AT89C52单片机作为主控制器,结合超声波测距原理,实现倒车防撞报警功能。进行系统硬件和软件的设计,检波接收电路和温度补偿电路分别采用了CX20106A和DS18B20两款集成芯片,减小了电路间的相互干扰,提高了精度。该系统的最大测距误差不超过1 cm,测距范围为10~300 cm。另外,系统还具有结构简单,体积小,使用方便等特点。
关键词:防撞系统;超声波;测距;单片机
中图分类号:TP29 文献标识码:A
文章编号:1004-373X(2010)02-205-02
Ultrasonic Ranging Back-draft Anti-collision Alarm System Based on AT89C52
ZHANG Heng,LIU Yajie
(Wuhan University of Engineering,Wuhan,430073,China)
Abstract:Using single-chip AT89C52 as the master combined with the principle of ultrasonic distance measurement to realize the back-draft anti-collision alarm function.The integrated chips of CX20106A and DS18B20 are separately used in the detection receiving circuit and the temperature compensation circuit,the mutual disturbance between circuit is reduced.The maximum distance measurement error is less than 1 cm,and the range of the system is 10~300 cm.This system has simple structure,small size,easy-to-use features and so on.
Keywords:CAS;ultrasonic;distance measurement;single-chip microcomputer
0 引 言
随着国民经济的高速发展,我国汽车的拥有量在大幅增加,造成道路拥堵,交通事故频发,给人们的生命和财产安全带来了巨大的损失。安全驾驶成为大家关注的焦点,其中汽车防撞系统(Collision Avoidance System,CAS)的设计和需求显得非常重要和迫切。针对这种情况,设计一种响应快、可靠性高且较为经济的汽车防撞报警系统势在必行。
超声波作为一种频率超过20 kHz的机械波,其指向性强,能量消耗缓慢,在介质中传播距离远,因此超声波测距法是最常见的一种距离测量方法。利用超声波检测距离,设计比较方便,计算处理也较简单,而且精度也较高[1]。本设计采用AT89C52单片机作为主控器,结合超声波测距原理,设计了汽车倒车防撞报警系统。该系统采用软、硬件结合的方法,具有模块化和多用化的特点。
1 超声波的测距原理
本系统选用的是压电式超声波传感器。超声波测距原理有两种方式:共振式和脉冲反射式。因为共振式的应用要求复杂,在此使用脉冲反射式[2,3]。超声波测距原理如图1所示。
图1 超声波测距原理图
图1中被测距离为H,两探头中心距离的一半用M表示,超声波单程所走过的距离用L表示,由图中关系可得:
H=Lcos θ
(1)
θ=arctan(M/H)
(2)
将式(2)代入式(1)可得:
H=Lcos[arctan(M/H)]
(3)
在整个传播过程中,超声波所走过的距离为:
2L=vt
(4)
式中:v为超声波的传播速度;t为传播时间,即为超声波从发射到接收的时间。
将式(4)代入式(3)可得:
H=12vtcos[arctan(M/H)]
(5)
当被测距离H远远大于M时,cos[arctan(M/H)]1,于是式(5)变为:
H=12vt
(6)
由此可见,要想测得距离H,只要测得超声波的传播时间t即可[4]。
2 系统的实现
根据设计要求并综合各个方面因素,可以采用AT89C52单片机作为主控制器,用动态扫描实现LCD数字显示,超声波驱动信号用单片机的定时器完成,其具体的系统框图如图2所示[5]。
图2 防撞报警系统设计框图
该系统主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路等部分组成。采用AT89C52来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。其中超声波接收电路使用集成电路CX20106A,可用来完成信号的放大、限幅、带通滤波、峰值检波和波形整形等功能。显示器件采用的是LCD12864显示器,并选用D18B20温度传感器进行温度检测,实行温度补偿[6]。主控器AT89C52单片机是一种低功耗、高性能CMOS 8位微控制器,具有8 KB的系统可编程FLASH存储器。与AT80C51引脚和指令完全兼容。拥有1个8位CPU,1个片内振荡器及时钟电路,3个16位定时/计数器,21个特殊功能寄存器,4个8位并行I/O口,共32条可编程I/O端线,1个可编程全双工串行口,8个中断源[7,8]。
本设计的实物如图3所示。
3 系统的软件设计
系统软件部分包括主程序、中断子程序和其他子程序[9,10]。主程序流程图如图4所示,其中中断子程序的核心代码如下:
void TT() interrupt 2
{
uint temp;
TR0=0;
ET1=0;
flag=1;
temp=TH0*256+TL0;
if((temp>0)&&(temp<30000))
{
high_time=TH0;
low_time=TL0;
}
else
{
high_time=0;
low_time=0;
}
}
void beep()
{
unsigned char i;
for (i=0;i<100;i++)
{
delay(4);
BEEP=!BEEP; //BEEP取反
}
BEEP=1; //关闭蜂鸣器
delay(250);//延时
4 结 语
此倒车防撞报警系统,可以应用于汽车倒车等场合,提醒驾驶员在倒车时能有效地避开可能对倒车造成危害的障碍物和行人。本系统针对普遍存在的抗干扰性问题加强了软硬件处理措施。硬件方面例如把超声波接收电路用金属壳屏蔽起来,提高了系统的抗干扰能力;软件方面系统结合使用DS18B20温度传感器实现温度补偿矫正,使系统可以正常工作在任何温度下,误差都不会超过指定范围。并用带字库功能的LCD12864液晶实时显示距离,当满足距离条件时,蜂鸣器蜂鸣工作提示驾驶员,具有较强的实用性,且硬件结构简单,体积小,使用方便。但该系统的测量距离有限,只有在10~300 cm距离内有效,需要进一步的改进和提高。
参考文献
[1]樊高妮,何永强.单片机AT89C2051在超声波测距系统中的应用[J].湖南文理学院学报,2006(18):17-18.
[2]戴曰章,吴志勇.基于AT89C51单片机的超声波测距系统设计[J].计量与测量技术,2005(32):17-19.
[3]赵广涛,程荫杭.基于超声波传感器的测距系统设计[J].传感器与仪器仪表,2006,22(1):129-131.
[4]石峰.高精度低成本车用超声波传感器的研制[J].传感器世界,2006(1):30-32.
[5]楼燃苗,李光飞.51系列单片机设计实例[M].北京:北京航空航天大学出版社,2003.
[6]何希才.传感器及其应用电路[M].北京:电子工业出版社,2001.
[7]李文娟,海霞,叶谌雯.一种基于超声波的检测防撞系统的设计[J].自动化博览,2007(6):80-81.
[8]王安敏,张凯.基于AT89C52单片机的超声波测距系统[J].仪表技术与传感器,2006(6):45-46.
[9]谢维成,杨加国.单片机原理与应用及C51程序设计[M].北京:清华大学出版社,2006.
[10]李光飞.单片机C程序设计实例指导[M].北京:北京航空航天大学出版社,2005.
作者简介 张 珩 女,1973年出生,讲师,硕士。研究方向为控制理论。