超声波测距系统设计.docx

上传人:b****1 文档编号:14071393 上传时间:2023-06-20 格式:DOCX 页数:21 大小:96.58KB
下载 相关 举报
超声波测距系统设计.docx_第1页
第1页 / 共21页
超声波测距系统设计.docx_第2页
第2页 / 共21页
超声波测距系统设计.docx_第3页
第3页 / 共21页
超声波测距系统设计.docx_第4页
第4页 / 共21页
超声波测距系统设计.docx_第5页
第5页 / 共21页
超声波测距系统设计.docx_第6页
第6页 / 共21页
超声波测距系统设计.docx_第7页
第7页 / 共21页
超声波测距系统设计.docx_第8页
第8页 / 共21页
超声波测距系统设计.docx_第9页
第9页 / 共21页
超声波测距系统设计.docx_第10页
第10页 / 共21页
超声波测距系统设计.docx_第11页
第11页 / 共21页
超声波测距系统设计.docx_第12页
第12页 / 共21页
超声波测距系统设计.docx_第13页
第13页 / 共21页
超声波测距系统设计.docx_第14页
第14页 / 共21页
超声波测距系统设计.docx_第15页
第15页 / 共21页
超声波测距系统设计.docx_第16页
第16页 / 共21页
超声波测距系统设计.docx_第17页
第17页 / 共21页
超声波测距系统设计.docx_第18页
第18页 / 共21页
超声波测距系统设计.docx_第19页
第19页 / 共21页
超声波测距系统设计.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

超声波测距系统设计.docx

《超声波测距系统设计.docx》由会员分享,可在线阅读,更多相关《超声波测距系统设计.docx(21页珍藏版)》请在冰点文库上搜索。

超声波测距系统设计.docx

超声波测距系统设计

摘要

随着科技的发展,人们生活水平的提高,城市发展建设加快,城市给排水系统也有较大发展,其状况不断改善。

但是,由于历史原因合成时间住的许多不可预见因素,城市给排水系统,特别是排水系统往往落后于城市建设。

因此,经常出现开挖已经建设好的建筑设施来改造排水系统的现象。

城市污水给人们带来了困扰,因此箱涵的排污疏通对大城市给排水系统污水处理,人们生活舒适显得非常重要。

而设计研制箱涵排水疏通移动机器人的自动控制系统,保证机器人在箱涵中自由排污疏通,是箱涵排污疏通机器人的设计研制的核心部分。

控制系统核心部分就是超声波测距仪的研制。

因此,设计好的超声波测距仪就显得非常重要了。

介绍了一种以AT89C2051单片机为核心,利用超声波的特性设计出低成本、高精度测距仪的方法。

给出了这种测距仪的硬件原理电路和主要的软件设计思路,用Pspice对硬件的主要部分进行了模拟仿真。

根据理论分析和试验统计对设计进行改进,电路达到了预期的效果。

关键词:

AT89C2051;超声波;测距

Abstract

Withthedevelopmentofscienceandtechnology,theimprovementofpeople'standardofliving,speedingupthedevelopmentandconstructionofthecity.Urbanrainagesystemhavegreatlydevelopedtheirsituationisconstantlyimproving.However,duetohistoricalreasonsmanyunpredictablefactorsinthesynthesisofhertime,thecitydrainagesystem.Inparticulardrainagesystemoftenlagsbehindurbanconstruction.Therefore,thereareoftengoodbuildingexcavationhasbeenbuildingfacilitiestoupgradethedrainagesystemphenomenon.Itbroughttothecitysewage,anditiscleartothecitysewageanddrainageculvertinthesewagetreatmentsystem.comfortisveryimportanttopeople'slives.MobilerobotsdesignedtoclearthedrainageculvertandtheautomaticcontrolsystemFreesewageculvertclearguaranteerobot,therobotisdesignedtocleartheculvertsewagetothecore.ControlSystemisthecorecomponentofthedevelopmentofultrasonicrangefinder.Therefore,itisveryimportanttodesignagoodultrasonicrangefinder.

AkindofultrasonictelemeterbasedonAT89C205isintroduced.Thistelemeterisprovidedwithsomemeritssuchaslowcostandhigh2accuracybecauseoftheultrasonicwavecharacteristic.Thehardwareprincipleelectriccircuitandthemainsoftwaredesignideaareshowed.ThesimulationofthemainpartofthehardwarehasbeendonewithPspice.Atlast,accordingtothetheoreticalanalysisandtheexperiencesomeimprovementsofthedesignaremade.Thesystemhasachievedtheanticipatedeffect.

Keywords:

AT89C2051;SilentWave;MeasureDistance

一、设计任务和性能指标

1.1设计任务

利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个超声波测距仪器,用LED数码管把测距仪距测出的距离显示出来。

要求用Protel画出系统的电路原理图,印刷电路板,绘出程序流程图,并给出程序清单。

1.2性能指标

距离显示:

用三位LED数码管进行显示(单位是CM)。

测距范围:

25CM到400CM之间。

误差:

1%。

二、超声波测距原理概述

超声波是由机械振动产生的,可在不同介质中以不同的速度传播。

由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。

超声测距是一种非接触式的检测方式。

与其它方法相比,如电磁的或光学的方法,它不受光线、被测对象颜色等影响。

对于被测物处于黑暗、有灰尘、烟雾、电磁干扰、有毒等恶劣的环境下有一定的适应能力。

因此在液位测量、机械手控制、车辆自动导航、物体识别等方面有广泛应用。

特别是应用于空气测距,由于空气中波速较慢,其回波信号中包含的沿传播方向上的结构信息很容易检测出来,具有很高的分辨力,因而其准确度也较其它方法为高;而且超声波传感器具有结构简单、体积小、信号处理可靠等特点。

利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求。

超声波测距的方法有多种,如相位检测法、声波幅值检测法和渡越时间检测法等。

相位检测法虽然精度高,但检测范围有限;声波幅值检测法易受反射波的影响。

本仪器采用超声波渡越时间检测法。

其原理为:

检测从超声波发射器发出的超声波,经气体介质的传播到接收器的时间,即渡越时间。

渡越时间与气体中的声速相乘,就是声波传输的距离。

超声波发射器向某一方向发射超声波,在发射时刻的同时单片机开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。

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

s=vt/2。

表2-1声速与温度的关系

温度(℃)

-30

-20

-10

0

10

20

30

100

声速(m/s)

313

319

325

323

338

344

349

386

图2-1超声波测距时序图

2.1超声波传感器

2.1.1超声波发生器

为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。

总体上讲,超声波发生器可以分为两大类:

一类是用电气方式产生超声波,一类是用机械方式产生超声波。

电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。

它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。

目前较为常用的是压电式超声波发生器。

2.1.2压电式超声波发生器原理

压电型超声波传感器的工作原理:

它是利用压电效应的原理,压电效应有逆效应和顺效应,超声波传感器是可逆元件,超声波发送器就是利用压电逆效应的原理。

所谓压电逆效应如图2-2所示,是在压电元件上施加电压,元件就变形,即称应变。

若在图a所示的已极化的压电陶瓷上施加如图b所示极性的电压,外部正电荷与压电陶瓷的极化正电荷相斥,同时,外部负电荷与极化负电荷相斥。

由于相斥的作用,压电陶瓷在厚度方向上缩短,在长度方向上伸长。

若外部施加的极性变反,如图c所示那样,压电陶瓷在厚度方向上伸长,在长度方向上缩短。

图2-2压电逆效应图

2.1.3单片机超声波测距系统构成

单片机AT89C2051发出短暂的40kHz信号,经放大后通过超声波换能器输出;反射后的超声波经超声波换能器作为系统的输入,锁相环对此信号锁定,产生锁定信号启动单片机中断程序,读出时间t,再由系统软件对其进行计算、判别后,相应的计算结果被送至LED数码管进行显示。

限制超声波系统的最大可测距离存在四个因素:

超声波的幅度、反射物的质地、反射和入射声波之间的夹角以及接收换能器的灵敏度。

接收换能器对声波脉冲的直接接收能力将决定最小可测距离。

图2-3超声波测距系统框图

三、设计方案

按照系统设计的功能的要求,初步确定设计系统由单片机主控模块、显示模块、超声波发射模块、接收模块共四个模块组成。

单片机主控芯片使用51系列AT89C2051单片机,该单片机工作性能稳定,同时也是在单片机课程设计中经常使用到的控制芯片。

发射电路由单片机输出端直接驱动超声波发送。

接收电路使用三极管组成的放大电路,该电路简单,调试工作小较小。

图3-1:

系统设计框图

硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波接收电路三部分。

单片机采用AT89C2051。

采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。

单片机用P3.5端口输出超声波换能器所需的40kHz的方波信号,P3.6端口监测超声波接收电路输出的返回信号。

显示电路采用简单实用的3位共阳LED数码管,段码输出端口为单片机的P1口,位码输出端口分别为单片机的P3.2、P3.1、P3.0口,数码管位驱运用PNP三极管S9012三极管驱动。

3.1AT89C2051单片机

AT89C2051是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含2kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-5l指令系统,片内置通用8位央处理器和Flash存储单元,功能强大。

AT89C2051单片机可为您提供许多高性价比的应用场合。

1)性能参数:

与MCS-51产品指令系统完全兼容;2k字节可重擦写闪速存储器;1000次擦写周期;2.7V-6V的工作电压范围;全静态操作:

0Hz-24MHz;两级加密程序存储器;128×8字节内部RAM;15个可编程I/O口线;2个l6位定时/计数器;6个断源;可编程串行UART通道;可直接驱动LED的输出端口;内置一个模拟比较器;低功耗空闲和掉电模式。

2)特性概述:

AT89C2051提供以下标准功能:

2k字节Flash闪速存储器,128字节内部RAM,15个I/O口线,两个16位定时/计数器,—个5向量两级断结构,一个全双工串行通信口,内置—个精密比较器,片内振荡器及时钟电路。

同时,AT89C2051可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

3.2超声波测距系统构成

本系统由单片机AT89C2051控制,包括单片机系统、发射电路与接收放大电路和显示电路几部分组成,如图3-1所示。

硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波接收电路三部分。

单片机采用AT89C2051。

采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。

单片机用P3.5端口输出超声波换能器所需的40kHz的方波信号,P3.6端口监测超声波接收电路输出的返回信号。

显示电路采用简单实用的3位共阳LED数码管,段码输出端口为单片机的P1口,位码输出端口分别为单片机的P3.2、P3.1、P3.0口,数码管位驱运用PNP三极管S9012三极管驱动。

超声波接收头接收到反射的回波后,经过接收电路处理后,向单片机P3.7输入一个低电平脉冲。

单片机控制着超声波的发送,超声波发送完毕后,立即启动内部计时器T0计时,当检测到P3.7由高电平变为低电平后,立即停止内部计时器计时。

单片机将测得的时间与声速相乘再除以2即可得到测量值,最后经3位数码管将测得的结果显示出来。

3.2.1超声波测距单片机系统

超声波测距单片机系统主要由:

AT89C2051单片机、晶振、复位电路、电源滤波部份构成。

如图3-2。

图3-2:

超声波测距单片机系统

3.2.2超声波发射、接收电路

超声波发射、接收电路如图3-3。

超声波发射部份由电阻R2及超声波发送头T40板成;接收电路由BG1、BG2X组成的两组三级管放大电路组成;检波电路、比较整形电路由C7、D1、D2及BG3组成。

40kHz的方波由AT89C2051单片机的P3.5驱动超声波发射头发射超声波,经反射后由超声波接收头接收到40kHz的正弦波,由于声波在空气中传播时衰减,所以接收到的波形幅值较低,经接收电路放大,整形,最后输出一负跳变,输入单片机的P3脚。

该测距电路的40kHz方波信号由单片机AT89C2051的P3.5发出。

方波的周期为1/40ms,即25µs,半周期为12.5µs。

每隔半周期时间,让方波输出脚的电平取反,便可产生40kHz方波。

由于单片机系统的晶振为12M晶振,因而单片机的时间分辨率是1µs,所以只能产生半周期为12µs或13µs的方波信号,频率分别为41.67kHz和38.46kHz。

本系统在编程时选用了后者,让单片机产生约38.46kHz的方波。

 

图3-3:

超声波测距发送接收单元

由于反射回来的超声波信号非常微弱,所以接收电路需要将其进行放大。

接收电路如图3.3所示。

接收到的信号加到BG1、BG2组成的两级放大器上进行放大。

每级放大器的放大倍数为70倍。

放大的信号通过检波电路得到解调后的信号,即把多个脉冲波解调成多个大脉冲波。

这里使用的是IN4148检波二极管,输出的直流信号即两二极管之间电容电压。

该接收电路结构简单,性能较好,制作难度小。

3.2.3显示电路

本系统采用三位一体LED数码管显示所测距离值,如图(见下页)。

码管采用动态扫描显示,段码输出端口为单片机的P1口,位码输出端口分别为单片机的P3.2、P3.1、P3.0口,数码管位驱运用PNP三极管S9012三极管驱动。

图3-4:

显示单元图

四.系统软件设计

4.1主程序设计

超声波测距的软件设计主要由主程序、超声波发生子程序、超声波接收程序及显示子程序组成。

超声波测距的程序既有较复杂的计算(计算距离时),又要求精细计算程序运行时间(超声波测距时),所以控制程序可采用C语言编程。

 

主程序首先是对系统环境初始化,设定时器0为计数,设定时器1定时。

置位总中断允许位EA。

进行程序主程序后,进行定时测距判断,当测距标志位cl==1,即进行测量一次,程序设计中,超声波测距频度是2次/秒。

测距间隔中,整个程序主要进行循环显示测量结果。

当调用超声波测距子程序后,首先由单片机产生6-8个频率为38.46kHz超声波脉冲,加载的超声波发送头上。

超声波头发送完送超声波后,立即启动内部计时器T0进行计时,为了避免超声波从发射头直接传送到接收头引起的直射波触发,这时,单片机需要延时约1.5-2ms时间(这也就是超声波测距仪会有一个最小可测距离的原因,称之为盲区值)后,才启动对单片机P3.7脚的电平判断程序。

当检测到P3.7脚的电平由高转为低电平时,立即停止T0计时。

由于采用单片机采用的是12MHz的晶振,计时器每计一个数就是1μs,当超声波测距子程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式

(2)计算,即可得被测物体与测距仪之间的距离。

设计时取15℃时的声速为340m/s则有:

  d=(c×t)/2=172×T0/10000cm其中,T0为计数器T0的计算值。

 测出距离后结果将以十进制BCD码方式送往LED显示约0.5s,然后再发超声波脉冲重复测量过程。

     

4.2超声波测距子程序 

voidcsbcj()//超声波测距子程序

{

if(cl==1)

{

TR1=0;

TH0=0x00;

TL0=0x00;

i=20;//超声波脉冲个数10个

while(i--)

{

csbout=!

csbout;

}

TR0=1;

i=150;

while(i--)

{

}

i=0;

while(csbint)//判断接收回路是否收到超声波的回波

{

i++;

if(i>=2450)//如果达到一定时间没有收到回波,则将csbint置零,退出接收回波处理程序

csbint=0;

}

TR0=0;

TH1=0x9E;

TL1=0x57;

t=TH0;

t=t*256+TL0;

s=t*csbc/2;//计算测量结果

TR1=1;

cl=0;

}

}

4.3超声波测距程序流程图 

4.4超声波测距程子序流程图

超声波测距程子序流程图如图()所示。

Y

时间=1s?

发送超声波

延时避开盲区

收到回波否?

预设时间?

启动计时器T0

停止计时

计算测量值

超声波测距

结束

N

N

Y

Y

N

图()

五.调试及性能分析

5.1调试步骤

我们的步骤是先焊接各个模块,焊接完每个模块以后,再进行模块的单独测试,以确保在整个系统焊接完能正常的工作,原件安装完毕后,将写好程序的AT89C2051机装到测距板上,通电后将测距板的超声波头对着墙面往复移动,看数码管的显示结果会不会变化,在测量范围内能否正常显示。

如果一直显示“---”,则需将下限值增大。

本测距板1S钟测量两次,若要修改测量间隔,可将程序“if(csbds>=40)//1S测量一次。

”中的“40”增大或减小即可。

超声波发送功率较大时,测量距离远,则相应的下限值(盲区)应设置为高值。

试验板中的声速没有进行温度补偿,声速值为340m/s。

5.2性能分析

从实物测试的总体来说本测距板基本上达到了要求,理想上超声波测距能达到5到7米左右,而我们所能实现的最大距离只有4.00米,测量结果受环境温度影响。

分析原因如下:

1)超声波发送部份为了简化电路,没加设置专门的超声波驱动电路,而是用单片机的P3.5输出端加了一个上拉电阻后就直接驱动超声波发送头。

理论上,驱电电压只有5伏。

2)本测距板没设计温度补偿电路,来对测量结果进行修正。

参考文献

[1]赵建领薛园园51单片机开发与应用技术详解北京:

电子工业出版社,2009

[2]沈红卫.基于单片机智能系统设计与实现.北京:

电子工业出版社,2005

[3]杨国田白焰董玲51单片机实用C语言程序设计中国电力出版社2009

[4]李群芳,黄建.单片机微型计算机与接口技术.北京:

电子工业出版社,2001

[5]楼然苗、李光飞.51系列单片机设计实例.北京:

北京航空航天大学出版社,2003

[6]王守中51单片机开发入门与典型实例.北京:

人民邮电出版社,2009

附录一:

基于AT89C2051单片机超声波测距系统电原理图

附录二基于AT89C2051单片机超声波测距系统PCB图

附录三基于AT89C2051单片机超声波测距系统焊接组装图

附录四基于AT89C2051单片机超声波测距系统C语言原程序

////////////////////////////////////////////////////////////

//AT89C2051超声波测距系统//

//

////

////

//晶振:

12M//

//系统盲区值:

25厘米//

//测量上限:

400厘米//

////////////////////////////////////////////////////////////

#include

#definecsboutP3_5//超声波发送

#definecsbintP3_7//超声波接收

#definecsbc=0.034

#definebgP3_4

unsignedcharcsbds,opto,digit,buffer[3],xm1,xm2,xm0,key,jpjs,ki;//显示标识

unsignedcharconvert[10]={0x3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0~9段码

unsignedints,t,i,sj1,sj2,sj3,mqs,sx1,sjtz,sja,sjb;

bitcl;

voidcsbcj();

voiddelay(i);//延时函数

voidscanLED();//显示函数

voidshowOnce();//显示循环函数

voidtimeToBuffer();//显示转换函数

voidoffmsd();

 

voidmain()//主函数

{

EA=1;//开中断

TMOD=0x11;//设定时器0为计数,设定时器1定时

ET0=1;//定时器0中断允许

ET1=1;//定时器1中断允许

TH0=0x00;

TL0=0x00;

TH1=0x9E;

TL1=0x57;

csbds=0;

csbint=1;

csbout=1;

cl=0;

opto=0xff;

sj1=25;

sj2=100;

sj3=400;

ki=0;

TR1=1;//设定时值1为20ms

while

(1)

{

csbcj();//调用超声波测距程序

if(s>sj3)//大于时显示"CCC"

{

buffer[2]=0x39;

buffer[1]=0x39;

buffer[0]=0x39;

}

elseif(s

{

buffer[2]=0x40;

buffer[1]=0x40;

buffer[0]=0x40;

}

elsetimeToBuffer();//调用转换段码功能模块

offmsd();//调用判断百位数为零模块,百位为零时不显示

scanLED();

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2