首页 > 范文大全 > 正文

基于AT89C52的超声波测距仪设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于AT89C52的超声波测距仪设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】超声波测距原理是通过测发射和接收超声波遇到障碍物反射回波的时间差t,再求出距离d。本文以AT89C52单片机为核心,设计出低成本、高精度测距仪,并给出了这种测距仪的硬件原理电路和主要的软件设计思路。

【关键词】超声波;单片机;测距

超声波具有能量消耗缓慢、指向性强、在介质中传播距离远等特性。由于各种介质对声波的传播都呈现一定的阻抗,当声波作用到两种介质的分界面时,如果这两种介质的声阻抗相差很大,就会从界面上反射回来,因而超声波经常用来测量距离[1]。超声波测距主要应用于井深、液位、管道长度、倒车雷达等场合。有的超声波测距仪采用专用集成电路来设计,但没有距离显示且成本高,使用也不方便。本文介绍的超声波测距仪以单片机AT89S52为核心的硬件电路和软件设计,具有高精度、低成本、数字显示、工作稳定、性能良好等优点的。

一、超声波测距仪原理与方案

超声波测距原理是通过测发射和接收超声波遇到障碍物反射回波的时间差t,再求出距离d。

若超声波发生器在t1时刻发出超过声波,经测物体后反射后,在t2时刻被超声波接收器所接收,则超声波发出信号到接收返回信号所用的时间t=t2-t1,故被测距离为:d=s/2=(ct)/2

式中,s为声波的来回路程,d为被测物与测距器的距离,c为声速。

本系统由分超声波发射模块、超声波接收模块、显示及信号处理模块组成。系统框图如图1所示。

二、系统硬件电路设计

1.超声波发射电路

考虑到成本问题,超声波信号的产生采用构成多谐振荡,电路结构如图2,振荡频率由图2中的RP电位器调节,由555多谐振荡电路产生约40kHz方波信号,再由超声换能器T40-16转换成超声波信号,并向外发射。由单片机AT89S52的P2.7输出控制电平至555时基集成电路的4脚实现超声波的发射的关闭,当P2.7为高电平时振荡器工作并输出40kHz的方波信号。

本电路供电电压为5V,工作电流可达40mA,超声波发射电路既经济又简单,所需元件很少,超声波信号的有效距离可达3m。

2.超声波接收电路

超声波接收器由超声波接收探头、信号放大电路及波形变换电路组成,如图3所示。考虑到超声波接收的效果,要求超声波探头的接收频率跟超声波发射器发射的频率一致,本设计采用跟发射端相同的R40-16作为接收探头。

经探头变换后微弱超声信号经C2耦合至由LM393构成同相比例放大电路对进行放大,为降低成本和适合于移动场合使用,本系统采用单电源供电,图中R6和R7组成分压电路,使同相端电位为1/2电源电压,实现单电源条件下交流信号的放大;R3、R1、C1构成负反馈网络,C1对接收的超声波信号可视为短路,但对直流信号和较低频率的信号可视为开路,故该放大电路对直流和低频率信号放大量小,几乎不放大,而对超声波信号的放大倍数大,对超声波信号的放大倍数为1+R3/R1,这样有利于抑制超声波接收探头感应的直流和低频干扰;放大电路输出端所接的电容C3可滤除超声波接收探头感应高频干扰。

经放大后的超声信号经74LS14施密特触发器对放大后的信号进行整形,同时也可以消除略高于超声信号频率的高频小信号干扰,得到跟发射的超声波频率相同的方波信号,再送到单片机中断输入口。

3.显示电路

本系统是基于单片机的控制模块。根据系统所需资源及其可伸缩规模的特点,本设计选用8位单片机AT89S52,该单片机具有8K字节的程序存储单元,可实现在系统编程,且易于调试。单片机硬件的连接主要包括按键、发射电路的控制端、接收电路的信号、显示电路以及温度信号等。LCD与单片机的显示接口电路如图4所示。

三、系统软件设计

本系统软件部分与硬件系统配合完成对超声波往返时间的测量,根据在一定温度下超声波的传播速度计算测量的距离,送数码管显示测量结果。为仪器的适应性强、软件系统的鲁棒性能好,编程语言用汇编。系统采用了去除最大、最小值后取平均的方法。为测量精度、速度,应适当选取测量次数。此仪器取4次测量。另外,在MCU计数器计数过程中遇到了数值溢出的问题。因为浮点数最大的优点就是数的表示范围大。但这就涉及定点数与浮点数的转换,对通用MCU来说运行代价太高:编程困难、占用更多机器时间。

整个软件可采用模块化设计,它由主程序、发射子程序、接收子程序、显示子程序等模块组成。主程序采用键控循环方式,当按下控制键后,系统将在一定周期内依次执行各个模块,并对测量结果进行分析处理,然后根据处理结果决定显示程序的内容[5]。

主程序首先对系统环境初始化,置位总中断允许位EA、外部中断允许位EX1,以及定时器T0中断允许位;接着设置定时器T0和T1工作于定时方式1,调用发射子程序并延时0.1ms后,打开外部中断,等待回波;当主程序检测到接收信号正确后,即对计数器中的数据按公式进行计算,进而得出被测距离。

发射子程序先置P27口为高,同时打开计数器T0、T1进行计数。由于采用的是12MHz晶振,因此,每计一个数就是1μs;当T0计数溢出后,即维持P27端口一段时间的高电平后关闭T0,并置P27为低电平,使发射探头发射N个脉冲信号。当接收子程序检测到外部中断信号后,即关闭T1,并保存T1中的数据到t0后清零并打开T1,当第二个负脉冲进来(即又检测到外部中断信号)时关闭T1。并保存T1中的数据到t1后清零并打开T1,第三个负脉冲进来后关闭T1并保存T1中的数据到t2;若t1和t2之差的绝对值几乎相等,即认为t0为超声波返回时间。其系统主程序和接收超声波外部中断子程序的流程图如图5所示[6]。

四、结束语

利用AT89S52单片机可以简化设计应用于无接触式距离测量,如测深、测高。对于静态、准静态及慢动态被测物进行精确测量,数字显示结果。尽管采取了多种方法以减小测距误差,但仍存在各种主客观的偏差:对t的计数误差;传感器的反应速度;对回波信号处理需要时间;声速误差,当前条件下的实传播速度与程序中设置间的差别;数据处理中整数与小数的相乘等等。对误差影响因素最大的是温度的变化,可采用温度传感器补偿声速等,从而使测量更精确,系统设计简单、成本低、体积小、性能可靠等特点。该系统经实际测试证明,可以满足大多数场合的测距要求。

参考文献

[1]何健民.浅谈超声波传感器非接触式距离检测系统[J].黑龙江科技信息,2010(2):27.

[2]滕志军.一种语音同步提示的倒车雷达的设计[J].电子科技,2007(6):48.

[3]苏平.智能车上CAN总线控制超声波测距仪设计[J].合肥工业大学学报,2007(2):57.

[4]鞠永胜.基于嵌入式系统汽车倒车雷达的设计与实现[J].山东大学学报,2010(2):29.

[5]苏胜.基于超声波检测的倒车雷达设计[J].电子科技,2007(3):59.

[6]李敏.传感器应用[J].山东大学学报,2012(3):69.

[7]路锦正.超声波测距仪的设计[J].传感器技术,2002 (4):57.

黄冈师范学院2011年实验教学示范中心大学生创新活动项目(ZX1106)。

作者简介:

何建新(1975—),男,湖北英山人,讲师,主要从事电子技术高职教育研究。

黄静(1990—),女,湖北黄冈人,大学本科,现就读于黄冈师范学院物理与电子信息系电子信息工程专业。