基于AT89S51单片机的超声波测距系统设计

2013-01-29 03:47林二妹
陕西科技大学学报 2013年4期
关键词:数码管测距超声波

林二妹

(闽南理工学院, 福建 石狮 362700)

0 引言

超声波是指频率高于20Hz的机械波,是由机械振动产生的,可在不同介质中以不同的速度传播.由于超声波指向性强,能量消耗缓慢,而且在介质中传播的距离较远,反射能力较强,另外,测量时与被测物体无直接的接触,还能清晰稳定的显示出测量结果,所以超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现.超声测距是一种非接触式的检测方式.对于被测物处于黑暗、有灰尘、烟雾、电磁干扰、有毒等恶劣的环境下有一定的适应能力.因此在液位测量、车辆自动导航等方面有着广泛的应用.特别是应用于空气测距,由于空气中波速较慢,其回波信号中包含的沿传播方向上的结构信息很容易检测出来,具有很高的分辨力,因而其准确度也较其它方法为高.

1 超声波测距原理

超声波测距的原理是利用超声波的发射和接收,根据超声波传播的时间来计算出传播距离.实现超声波测距的方法有多种,如相位检测法、声波幅值检测法和渡越时间检测法等.

本测距系统采用超声波渡越时间检测法,其原理为: 检测从超声波发射器发出的超声波,经气体介质的传播到接收器的时间,即渡越时间.渡越时间与气体中的声速相乘,就是声波传输的距离.超声波发射器向某一方向发射超声波,在发射时刻的同时单片机开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时.再由单机计算出距离,送LED数码管显示测量结果.

超声波在空气中的传播速度随温度变化,其对应值如表1,根据计时器记录的时间t(见图1),就可以计算出发射点距障碍物的距离(s) ,即s=v*t/2.

表1 声速与温度的关系

图1 超声波测距时序图

2 单片机超声波测距系统设计框图

单片机超声测距系统框图如图2.该系统由单片机控制模块、超声波发射电路和接收电路、显示电路、供电电源及报警电路组成[1].

图2 系统设计框图

3 单片机超声波测距系统硬件电路设计

本设计主要包括单片机控制系统、超声波发射电路和接收电路、显示电路、供电电源、报警输出电路等几部分[2].

3.1 单片机控制系统

超声波测距单片机控制系统采用AT89S51为核心芯片,系统晶振采用12 MHz的晶振.各端口定义为:P2.7为输出超声波换能器所需的40 kHz的方波信号,P3.5为监测超声波接收电路输出的返回信号.显示电路采用三位一体LED数码管,P2口为段码输出, P3.2、P3.3、P3.4为位码输出端,P3.1、P0.2为报警控制端口,P3.6为数值调整键,P3.7为功能键[3].该系统如图3所示.

图3 超声波测距单片机控制系统

3.2 超声波发射电路和接收电路

3.2.1 超声波发射电路

超声波发射电路如图4所示,超声波发射电路由电阻R1、三极管BG1、超声波脉冲变压器B及超声波发送头T40构成,超声波脉冲变压器的作用是提高加载到超声波发送头两端的电压,以提高超声波的发射功率,从而提高测量距离.

由AT89S51单片机的P2.7输出40 kHz的方波,经三极管BG1推动超声波脉冲变压器,在脉冲变压器次级形成60 VP-P的电压,加载到超声波发送头上,驱动超声波发射头发射超声波.

图4 超声波发射电路

3.2.2 超声波接收电路

超声波接收电路如图5所示,接收电路由BG2、BG3组成的两级放大电路构成.超声波的检波电路、比较整形电路由C8、D5、D6及BG4组成.发送出的超声波,遇到障碍物后,产生回波,反射回来的回波由超声波接收头接收到.由于反射回来的超声波信号非常微弱,所以接收到的信号加到BG2、BG3组成的两级放大器上进行放大.每级放大器的放大倍数为70倍.放大的信号通过I N 4148检波二极管检波得到解调后的信号,最后输出一负跳变,输入单片机的P3.5脚.

图5 超声波接收电路

3.3 显示电路

显示电路采用三位一体LED 数码管显示所测距离值,如图6.数码管采用动态扫描显示,段码输出端口为单片机的P2口,位码输出端口分别为单片机的P3.4、P3.2、P3.3口,数码管位驱运用PNP三极管要S8550驱动.

图6 显示部分电路结构

3.4 供电电源电路

供电电源电路采用LM7805集成稳压器作为稳压器件,220 V电源经降压、整流、滤波后送入LM7805稳压,输出端接一个470 uF和0.1 uF电容滤除纹波,得到+5 V稳压电源,电路如图7所示.同时为调试系统方便,供电方式另采用由电脑USB接口供电.

图7 供电电源电路

3.5 报警输出电路

为提高测距系统的实用性,本测距系统的报警输出提供开关量信号及声响信号两种方式.

方式一:报警信号由单片机P3.1端口输出,继电器控制,可驱动较大的负载,电路由电阻R6、三极管BG9、继电器JDQ组成,当测量值低于事先设定的报警值时,继电器吸合,测量值高于设定的报警值时,继电器断开.

方式二:报警信号由单片机P0.2口输出,提供声响报警信号,电路由电阻R7、三极管BG8、蜂鸣器BY组成,当测量值低于事先设定的报警值时,蜂鸣器发出“滴、滴、滴…..”报警声响信号,测量值高于设定的报警值时,停止发出报警声响.报警输出电路如图8.

图8 报警输出电路

4 单片机超声波测距系统软件设计

单片机超声波测距系统的软件设计采用C语言编程.设计主要由主程序、超声波发生子程序、超声波接收程序及显示子程序几部分组成[4].超声波测距程序流程图如图9.

图9 超声波测距程序流程图

本设计主程序首先是对系统初始化,设定时器0为计数,1为定时.置位总中断允许位EA.进行程序主程序后,进行定时测距判断,当测距标志位EC=1时,测量一次,程序设计超声波测距频度是4~5次/秒.测距间隔中,整个程序主要进行循环扫描显示测量结果.当调用超声波测距子程序后,首先由单片机产生4个频率为38.46 kHz超声波脉冲,加载到超声波发头上.超声波头发送完超声波后,计时器T0开始计时,为了避免超声波从发射头直接传送到接收头引起的直射波触发,这时,单片机延时约1.5~2 ms后,才启动对单片机P3.5脚的电平判断程序.当检测到P3.5脚的电平由高转为低时,T0停止计时[5].由于单片机采用的是12 MHz的晶振,计时器每计一个数就是1μs,当超声波测距子程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按公式计算,即可得被测物体与测距仪之间的距离.

5 系统安装与调试

编写程序与调试,用编程器将KEIL软件对应源程序编译生成.HEX文件烧写到AT89S51单片机中.按图焊接硬件电路,焊接完后单独测试确保整个系统能正常工作,最后将写好的单片机插入到测距板上,通电后将测距板的超声波头对着墙面往复移动,看数码管的显示结果会不会变化,在测量范围内能否正常显示.如果一直显示“---”,则需将下限值增大.本测距板1 s测量4~5次,超声波发送功率较大时,测量距离远,则相应的下限值(盲区)应设置为高值.试验板中的声速没有进行温度补偿,声速值为340 m/s,该值为15℃时的超声波值.

经测试表明,本系统实现了预期的控制要求.

6 结束语

本系统利用单片机AT89S51实现超声波测距功能,该系统设计合理、工作稳定、性能良好、检测速度快、易于做到实时控制,并且在测量精度方面能达到工业的要求.可应用于汽车的倒车雷达、机器人自动避障行走、建筑施工工地以及一些工业现场,如:液位、井深、管道长度等场合.该设计具有很大的现实意义.

[1] 沈红卫.基于单片机智能系统设计与实现[M].北京:电子工业出版社,2005.

[2] 赵建领,薛园园.51单片机开发与应用技术详解[M].北京:电子工业出版社,2009.

[3] 楼然苗,李光飞.51系列单片机设计实例[M]. 北京:北京航空航天大学出版社,2003.

[4] 杨国田,白 焰,董 玲.51单片机实用C语言程序设计[M].北京:中国电力出版社,2009.

[5] 李鸣华,余水宝.单片机在超声波料位测量中的应用[J].电子技术应用,1998,24(9):14-16.

猜你喜欢
数码管测距超声波
微课教学设计之“数码管动态显示”
类星体的精准测距
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
蝙蝠的超声波
基于Niosll高精度超声波流量计的研究
浅谈超声波测距
蝙蝠的超声波
超声波流量计的研究