邝爱华 李平
【摘要】 以STC89C52单片机作为核心控制电路,采用模块化的设计方案,以超声波传感器为检测功能部件,利用在空气中传播的超声波反射原理,结合单片机控制技术和超声波在空气中传播的时间差原理来测量距离。系统主要包括单片机控制模块、超声波测距模块以及距离显示模块。首先由超声波测距模块给单片机控制模块发送超声波并计时,然后由单片机控制模块统计数据并计算距离,最后由数码管显示模块显示出来测试的距离,完成测距。本设计测距精度可以达到3mm,并且能够提供2cm-400cm的非接触式距离感测功能。
【关键词】 超声波 传感器 距离测量
随着科学技术的飞速发展,在人们的日常生活当中,越来越多的科学技术成果得到了广泛的运用,也给人们的生活带来了诸多方便。超声波测距系统的研制,给很多领域带来了方便。比如可以应用于井深、液位和管道长度的测量等场合,也可用于建筑施工工地、汽车倒车系统以及一些工业现场的位置监控。展望未来,超声波测距系统作为一种非常重要的测量工具在各个领域都将有很大的发展空间,为了满足日益发展的社会需求,它将朝着测量精度更高的方向发展。
一、系统工作原理及总体方案设计
1.1 测距原理
通过超声波发射器向某一方向发射超声波,在发射的过程中计时,因为超声波在空气中传播,当在途中碰到障碍物时就会被立即立即反射回来,超声波接收器收到反射波后立即停止计时。由于在空氣中超声波的传播速度为340m/s,根据计时器记录的时间t,可以很容易地计算出从发射点到障碍物的距离S为:
在设计中按式S=170×N×T=170×N÷1000000计算距离。
1.2 系统的设计思路
本系统的设计主要分为系统硬件电路的设计和系统软件程序的设计两部分。系统硬件电路主要由单片机控制系统模块、超声波测距模块和数码管显示模块构成。系统主控芯片选取STC89C52单片机,测量器件选取超声波传感器。通过对单片机进行相应的编程,让其接收信号、处理信号和发送命令,最后通过数码管显示模块显示出测量得到的距离值。因此,完整的超声波测距系统主要包括单片机控制系统、超声波的发射与接收系统和距离显示系统。
在必要的时候,超声波测距系统能够通过单片机控制发射电路发射超声波,超声波在空气中向前传播。在传播的过程中,当超声波遇到障碍物时就会被会反射回来,由接收电路接收。接收电路会把信号传送到单片机中,由单片机进行相关的数据处理。所得到的结果会通过LED数码管显示出来。在此过程中,如果发射装置与障碍物之间有相对运动,那么 LED数码管会不断地显示两者之间最新的距离。而当超出超声波测距的范围时,单片机便会发出一个指令,让数码管显示不同的符号以便给出提示。
二、系统硬件设计
本设计主要由单片机控制系统模块、超声波测距模块和数码管显示模块三个模块组成,通过对三个模块的分析与设计,再结合单片机的引脚功能,从而得到系统整体电路图。
2.1 单片机控制系统
单片机控制系统主要由单片机最小系统构成。STC89C52最小应用系统电路。单片机最小系统有三个主要部分:
(1)时钟电路:STC89C52单片机外接晶振及电容的引脚是引脚18和引脚19,工作频率取决于晶振XT的频率,芯片的工作频率可在2~33MHz范围之间选。在本设计中,为了保证振荡器电路的稳定性及快速性,两个小电容C1和C2都取值30pF,频率选用11.0592MHz晶振。
(2)电源电路:单片机系统能正常工作时,芯片引脚VCC接+5V直流稳压电源,引脚GND接电源+5V的负极,电源电压范围在4~5.5V之间。为了确定单片机是否供上电,在VCC和地之间连接了一个发光二极管和1K的电阻。
(3)复位电路:单片机在引脚RST上保持24个工作主频周期的高电平,就可以完成复位。但复位电路应使引脚RST保持10ms以上的高电平,才能保证系统可靠的复位。
2.2 数码管显示电路设计
本设计采用四位七段数码管作为显示的器件,其中6、8、9、12引脚是数码管的位选信号端,1、2、3、4、5、7、10、11引脚控制数码管的位选,四位数码管分别用一个S9015三极管进行驱动。距离显示电路如图3所示。
2.3 超声波模块设计
超声波换能器是一种能量转换器件,它的功能是将输入的电功率转换成机械功率(即超声波)再传递出去,而自身消耗很少的一部分功率,电源输出到超声波发生器,再到超声波换能器,一般还要经过超声波导出装置就可以产生超声波了。本设计采用HC-SR04集成模块作为系统的超声波模块,其内部主要由超声波发射电路和接收电路和控制电路三部分组成,HC-SR04是利用超声波换能器来产生超声波的器件。
三、系统软件设计
本设计采用的是模块化的思路来进行设计和编写程序,程序主要由系统主程序和中断程序构成。主程序的功能是完成单片机的初始化,超声波信号的发射和接收、计算超声波发射点与障碍物之间的距离和数码管显示等。中断程序完成系统各种中断服务。系统程序设计的主要的功能是发射超声波、接受超声波、计算测量距离和数码管显示。
3.1主程序设计设计
主程序对整个测距系统初始化后,先将定时器T0启动,同时对超声波的回波接收标志位置位并且由单片机P1.1端口给发出一个低电平命令用来启动超声波发射电路,然后调用计算距离的子程序,再结合定时器T0记录的时间结果计算出被测距离,再将被测结果通过调用显示子程序,以十进制的形式在数码管上显示,最后主程序通过对回波信号的接收,完成后续的工作。在整个过程中,如果标志位清零则说明接收到了回波信号,那么主程序就返回到初始端重新将回波接收标志位置位并且在单片机的P1.1端口上发送低电平到超声波发射电路,如此往复,系统连续不断地运行,循环不断地工作来实现实时测距的功能。
3.2 数码管显示模块设计
本设计采用4位共阳极数码管来显示距離,进行动态扫描时是与单片机P0口相连接。因为所测的距离是不断变化的,所以数码管是在外部中断0发生后才进行显示的。
当主程序给超声波发生器发送了信号后,此时中断和定时器0便会被打开,并开始计时,当超声波接收电路接收到了回波信号的时,系统便会在单片机的P1.0端口产生一个低电平信号,在单片机检测到该信号后,定时器停止计时,同时定时器的计数的次数将被送至单片机进行数据的计算,最后得出以cm为单位的测量的距离。
四、系统调试结果
理论上来讲,本设计系统采用的超声波模块测距时存在的盲区大约为2cm左右,而且本设计理论上的测量距离范围为2cm~5m,测量的误差比较小,测量显示值稳定,可以精确到0.3cm,能满足设计要求。
经尺子测量一页打印纸的长度为25.6cm,然后利用超声波测距仪测量精确度。首先将纸分别平放在桌面,然后用一个表面平整的障碍物立起来放在纸张的边缘,让测距仪的超声波探头对准障碍物,经测量之后结果显示为25.5cm,误差0.1cm,测量较为准确;拿着超声波测距仪站在离墙面2米的地方,测量结果为199.8cm,误差0.2cm。
参 考 文 献
[1] 盛春明.超声波测距仪[J].电子制作,2010,(5):31-42
[2]陈正军,邬华,方爱华.基于凌阳61系列单片机的超声波测距系统[J].科技传播,2010,(6):126-127
[3]李长阳.超声波测距系统的电路设计[J].黑龙江科技信息,2010,(33):77,83
[4]张凯瑞,吴军,郑小军.超声波测距技术的研究[J].科技信息,2013,(10):172
[5]孙新.基于超声波的盲人避障眼镜的设计[J].电子技术与软件工程,2014,(12)
[6]曹月真.基于51单片机的超声波测距系统的设计[J].电子世界,2011,(10):55-56
[7]任艳斐等.基于嵌入式技术的汽车防撞报警系统的设计与应用[J].计算机测量与控制,2014,(2)
[8]荆红莉,王晶,王涛.超声波测距系统设计[J].数字技术与应用,2010,(8):92
[9]鄢晗菡,孙华.基于多普勒效应的汽车刹车预警系统研究[J].机械,2010(11):56-58