目前国内超声波测距器的设计大多采用汇编语言设计。由于单片机应用系统的日趋复杂,要求所写
的代码规范化,模块化,并便于多人以软件工程的形式进行协同开发,汇编语言作为传统的单片机应用系
统的编程语言,已经不能满足这样的实际需要了,而C语言以其结构化和能产生高效代码满足了这样的需
求,成为电子工程师进行单片机系统编程时的首先编程语言。在本设计中,由于C语言程序有利于实现较
复杂的算法,汇编语言程序具有较高的效率并且容易精确计算程序运行的时间,而超声波测距器的程序既
有较复杂的距离计算又要求精确计算超声波测距时程序运行的时间,所以本设计采用C语言和汇编语言
混合编程来实现。本文论述的是一种基于AT89C52单片机的超声波测距器,可用于汽车倒车等场合⋯。
1设计要求
设计一个超声波测距器,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用
于如液位、井深、管道长度的测量等场合。要求测量范围在0.10—5.00 m,测量精度lem,测量时与被测物
体无直接接触,能够清晰稳定地显示测量结果。
2设计思路
2.1超声波及其测距原理
超声波是指频率高于20KHz的机械波。为了以超声波作为检测手段,必须产生超声波和接收超声波。
完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送
器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应
的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换为超声波,发射超声波;而在收到回
波的时候,则将超声振动转换成电信号。
超声波测距的原理一般采用渡越时间法TOt(time of fliight)。首先测出超声波从发射到遇到障碍物返
回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离。测量距离的方法有很多
种,短距离的可以用尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量。因为超声波
收稿日期:2008-04-08
作者简介:周功明(1963一),男,副教授,主要研究方向:电子信息科学技术。
·50· 绵阳师范学院学报(自然科学版) 第27卷
在标准空气中的传播速度为331.45粑秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统的测
量精度理论上可以达到毫米级。由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,因而超声波
可以用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也
能达到要求。
超声波发生器可以分为两类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。本课题
属于近距离测量,可以采用常用的压电式超声波换能器来实现【7】。
2.2超声波测距器的系统框图
根据设计要求并综合各方面因素,可以采用AT89C52单片机作为主控制器,用动态扫描法实现LED
数字显示,超声波驱动信号用单片机的定时器完成,超声波测距器的系统框图如下图l所示¨2|:
3系统组成
3.1硬件部分
主要由单片机系统及显示电路、超声波发射电路
和超声波检测接收电路三部分组成。采用AT89C52来
实现对CX20106A红外接收芯片和TCT40—10系列超
声波转换模块的控制。单片机通过P1.0引脚经反相
\
超声波接收E :, LED显示单片机r
/\
Z ∑
超声波发送高控制器
:> 扫描驱动
图1 超声波测距器系统设计框图
Fig.1 Ultrasonic eLangi.g system design diagram
器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INTO引脚的电平由高电平变为低电平时就
认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍
物之间的距离¨≈J。
3.2软件部分
主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程序等部分。
4系统硬件电路设计
4.1单片机系统及显示电路
单片机采用AT89C52或其兼容系列。采用12MHz高精度的晶振,以获得较稳定的时钟频率,减小测
量误差。单片机用P1.0端口输出超声波转化器所需的40KHz方波信号,利用外中断0口检测超声波接收
电路输出的返回信号。显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP
三极管驱动。单片机系统及显示电路如下图2所示‘1。31。
图2单片机及显示电路原理图
Fig.2 MCU and display circuit schematics
第8期周功明等:基于AT89C52单片机的超声波测距器设计·51.
4.2超声波发射电路原理图
压电超声波转换器的功能:利用压电晶体谐振工作。内部结构如图3‘3Ⅲ1所示,它有两个压电晶片和
一个共振板。当它的两极外加脉冲信号,其频
率等于压电晶片的固有振荡频率时,压电晶片PI.O
将会发生共振,并带动共振板振动产生超声波,
这时它就是一超声波发生器;如没加电压,当共
振板接收到超声波时,将压迫压电振荡器作振
动,将机械能转换为电信号,这时它就成为超声
波接收转换器。超声波发射转换器与接收转换
器其结构稍有不同。
4.3超声波检测接收电路图3发射电路原理图
参考红外转化接收电路,本设计采用集成
F‘g·3 U1‘ms。nie劬啪mi‘妇c‘咖1‘∞hem蚯c
电路CX20106A,这是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控
常用的载波频率38KHz与测距超声波频率
40KHz较为接近,可以利用它作为超声波检测
电路。如图4【3 J[71超声波检测接收电路原理图
所示,适当改变C4的大小,可改变接收电路的
灵敏度和抗干扰能力。⋯. J。j-二
5系统程序设计
超声波测距软件设计主要由主程序,超声
波发射子程序,超声波接收中断程序及显示子
程序组成。下面对超声波测距器的算法,主程
序,超声波发射子程序和超声波接收中断程序
逐一介绍。
5.1超声波测距器的算法设计
GND
图4超声波检测接收电路原理图
Fig.4 Ultrasonic receiver and detection circuit schematic
图5【_列示意了超声波测距的原理,即超声
波发生器T在某一时刻发出的一个超声波信号,当超声波遇到被测物
体后反射回来,就被超声波接收器R所接受。这样只要计算出发生信
号到接收返回信号所用的时问,就可算出超声波发生器与反射物体的
距离。
距离计算公式:d=s/2=(c木t)/2,其中d为被测物与测距器的距
离,s为声波的来回路程,c为声速,t为声波来回所用的时间。
图5超声波测距原理图
Fig.5 Ultrasonic Ranging schematic
声速c与温度有关(见表1),如温度变化不大,则可认为声速是基
本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往
返时间,即可求得距离。在系统加入温度传感器来监测环境温度,可进行温度补偿。这里可以用DSl8820
测量环境温度,根据不同的环境温度确定一声速提高测距的稳定性。为了增强系统的可靠性,可在软硬件
上采用抗干扰措施。
表1不同温度下的超声波速表
Table I Under different temperatures ultrasonic velocity Table
·52· 绵阳师范学院学报(自然科学版) 第27卷
5.2主程序
主程序首先对系统环境初始化,设置定时器1D工作模式为16位的定时计数器模式,置位总中断允许
位EA并给显示端Po和P2清0。然后调用超声波发生子程序送出一个超声波脉冲,为避免超声波从发射
器直接传送到接收器引起的直接波触发,需延迟0.1ms(这也就是测距器会有一个最小可测距离的原因)
后,才打开外中断0接收返回的超声波信号。由于采用12MHz的晶振,机器周期为lus,当主程序检测到接
收成功的标志位后,将计数器哟中的数(即超声波来回所用的时
间)按下式计算即可测得被测物体与测距仪之间的距离,设计时取
20℃时的声速为344 m/s则有:d=(C木TO)/2=172T0/10000cm
(其中,ID为计数器,ID的计数值)。
测出距离后结果将以十进制BCD码方式LED,然后再发超声
波脉冲重复测量过程。主程序框图如图6所示。
5.3超声波发生子程序和超声波接收中断程序
超声波发生子程序的作用是通过PI.0端口发送2个左右的
超声波信号频率约40KHz的方波,脉冲宽度为12 US左右,同时把
计数器,ID打开进行计时。超声波测距器主程序利用外中断0检
测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现
低电平),立即进入中断程序。进入该中断后就立即关闭计时器
,ID停止计时,并将测距成功标志字赋值l。如果当计时器溢出时
还未检测到超声波返回信号,则定时器rID溢出中断将外中断0关
闭,并将测距成功标志字赋值2以表示此次测距不成功H旬J。
5.4超声波测距器的部分程序清单
/宰超声波测距器弹片机c程序使用Keil C51 ver 7.09
。
木/
#include
#define uchar unsigned int
#define uint unsigned int
#define ulong unsigned long
Extem void ca_t(void);
Extem void delay(uint);
Extem void display(unchar);
Data unehar testtok;
/木超声波测距器主程序术/
Void main(void)
{data unchar dispram[5];
data uint i;
data ulong time;
p0=0xff;
pl=0xff;
TMOD=0X11:
IE=0x80;
While(1)
{.“}
开始
系统初始化
发送超声波脉冲
等待发射超声波
计算距离
显示结果0.5s
图6主程序框图
diagram of the main program
第8期周功明等:基于AT89C52单片机的超声波测距器设计·53·
6软硬件调试
超声波测距仪的制作和调试,其中超声波发射和接收采用中15的超声波换能器TCT40一IOFl(T发
射)和TCT40—10S1(R接收),中心频率为40kHz,安装时应保持两换能器中心轴线平行并相距4—8 cm,
其余元件无特殊要求。若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。根据测量范围
要求不同,可适当调整与接收换能器并接的滤波电容C4的大小,以获得合适的接收灵敏度和抗干扰能力。
硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。根据实际情况可以修改超
声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要∞】【71。
7 结束语
本文设计的是基于AT89C52单片机的超声波测距器,可应用于汽车倒车等场合,提醒驾驶员倒车时有
效的避开可能对倒车造成危害的障碍物和行人,从而有效避免由于倒车造成的汽车碰撞或擦伤经济损失
和人身安全问题。具有较强的实用性。
参考文献:
[1] 周功明.基于AT89C2051弹片机的防盗自动报警电子密码锁系统设计[J].绵阳师范学院学报,2007,26(5):112—
116.
[14]
张齐.单片机应用系统设计技术一基于c语言编程[M].北京:电子工业出版社,2006.
李光飞.单片机c程序设计实例指导[M].北京:航空航天大学业出版社,2005.
楼燃苗,李光飞.51系列单片机设计实例[M].北京:航空航天大学业出版社,2003.
Zhongbo Li.Electronic Technique[M].Beijing:Mechannic Industrical Prees,2003.
赖麒文.8051单片机c语言彻底应用[M].北京:科学业出版社,2002.
何希才.传感器及其应用电路[M].北京:电子工业出版社,2001.
丁元杰.单片微机原理及应用[M].北京:机械工业出版社,2001.
孙串友,孙晓斌.感测技术基础[M].北京:电子工业出版社,2001.
马忠梅.单片机的c语言应用程序设计[M].北京:航空航天大学业出版社,1999.
刘喜昂,周志宇.基予多超声传感器的机器人安全避障技术[J].测控技术,2003,23(2):71—73.
翟国富,刘茂恺.一种实时高精度的机器人用超声波测距处理方法[J].应用声学,1990,15(1):17—24.
Cray C,Swinhoe C F,Myinl.Target controlled infusion of ketamine曲analgessia for TIV A with propof01.Can.J Anesth,1999,
40:957.
R J Higgens.Electronics and Analog Integrated Circuits[M].N.J:Prentice—Hall Inc,2001.
摘 要 I
ABSTRACT(英文摘要) II
目 录 IV
第一章 引 言 1
1.1 课题的提出 1
1.2 超声波测距发展概况 2
1.3 本课题研究内容及科学意义 3
第二章 超声波测距技术综述 4
2.1 超声及超声传感器简介 4
2.1.1 超声概述 4
2.1.2 超声传感器结构 6
2.1.3 超声传感器的主要参数及选择 9
2.2 超声测距原理与方法 10
2.3 测量盲区的影响 12
2.4 本章小结 13
第三章 硬件系统设计 15
3.1 方案论证 15
3.2 凌阳61板简介 16
3.2.1 功能区分与工作原理 16
3.2.2 系统各模块工作原理 16
3.3 超声波测距模组简介 20
3.3.1 超声波谐振频率发生电路、调理电路 20
3.3.2 超声波回波接受处理电路 21
3.3.3 超声波模组电源设置 22
3.4 LED键盘模组简介 23
3.5 硬件系统设计说明 23
3.5.1 系统设计 23
3.5.2 硬件原理图 24
3.5.3 系统连接 24
3.6本章小结 26
第四章 软件系统设计 27
4.1 主程序设计 27
4.2 超声波测距程序设计 29
4.3 本章小结 31
第五章 试验结果与改进 32
5.1 系统调试 32
5.2 试验结果分析 34
5.2.1 试验结果 34
5.2.2 误差分析 37
5.2.3 系统改进方法 37
5.3 本章小结 38
结论 39
参考文献 41
致谢 44
附录一 45
附录二 46
附录三 47
我来帮你设计设计!