文档视界 最新最全的文档下载
当前位置:文档视界 › 基于51单片机的超声波测距系统

基于51单片机的超声波测距系统

基于51单片机的超声波测距系统
基于51单片机的超声波测距系统

基于51单片机的超声波测距系统

贾源

完成日期:2011年2月22日

目录

一、设计任务和性能指标 (3)

1.1设计任务 (3)

1.2性能指标 (3)

二、超声波测距原理概述 (4)

2.1超声波传感器 (5)

2.1.1超声波发生器 (5)

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

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

三、设计方案 (6)

3.1AT89C2051单片机 (7)

3.2超声波测距系统构成 (8)

3.2.1超声波测距单片机系统 (9)

图3-1:超声波测距单片机系统 (9)

3.2.2超声波发射、接收电路 (9)

图3-1:超声波测距发送接收单元 (10)

3.2.3显示电路 (10)

四.系统软件设计 (11)

4.1主程序设计 (11)

4.2超声波测距子程序 (12)

4.3超声波测距程序流程图 (13)

4.4超声波测距程子序流程图 (14)

五.调试及性能分析 (14)

5.1调试步骤 (14)

5.2性能分析 (15)

六.心得体会 (15)

参考文献 (16)

附录一超声波测系统原理图 (18)

附录二超声波测系统原理图安装图 (19)

附录三超声波测系统原理图PCB图 (20)

附录四超声波测系统原理图C语言原程序 (21)

参考文献 (26)

一、设计任务和性能指标

1.1设计任务

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

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

1.2性能指标

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

测距范围:25CM到 250CM之间。误差:1%。

二、超声波测距原理概述

超声波是由机械振动产生的,可在不同介质中以不同的速度传播。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。超声测距是一种非接触式的检测方式。与其它方法相比,如电磁的或光学的方法,它不受光线、被测对象颜色等影响。对于被测物处于黑暗、有灰尘、烟雾、电磁干扰、有毒等恶劣的环境下有一定的适应能力。因此在液位测量、机械手控制、车辆自动导航、物体识别等方面有广泛应用。特别是应用于空气测距,由于空气中波速较慢,其回波信号中包含的沿传播方向上的结构信息很容易检测出来,具有很高的分辨力,因而其准确度也较其它方法为高;而且超声波传感器具有结构简单、体积小、信号处理可靠等特点。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求。

超声波测距的方法有多种,本超声波测中系统的原理为: 检测出从超声波发射器发出的超声波,经气体介质的传播到接收器的时间,将这个时间与气体中的声速相乘,就是声波传输的距离。超声波发射器向某一方向发射超声波,在发射时刻的同时单片机开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度随温度变化,其对应值如表2-1 ,根据计时器记录的时间t (见图2-1),就可以计算出发射点距障碍物的距离( s ) ,即: s = v t / 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单片机超声波测距系统构成

单片机AT89C51发出短暂的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.1 AT89C2051单片机

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

主要性能参数

·与MCS-51 产品指令系统完全兼容

·2k字节可重擦写闪速存储器

·1000次擦写周期

·2.7V-6V 的工作电压范围

·全静态操作:0Hz-24MHz

·两级加密程序存储器

·128×8字节内部RAM

·15个可编程I/O 口线

·2个l6位定时/计数器

·6个断源

·可编程串行UART 通道

·可直接驱动LED 的输出端口

·内置一个模拟比较器

·低功耗空闲和掉电模式

功能特性概述

AT89C2051提供以下标准功能:2k字节Flash 闪速存储器,128字节内部RAM,15个I/O 口线,两个16位定时/计数器,—个5 向量两级断结构,一个全双工串行通信口,内置—个精密比较器,片内振荡器及时钟电路。同时,AT89C2051可降至0HZ 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU 的工作,但允许RAM,定时/计数器,串行通信口及断系统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

3.2 超声波测距系统构成

本系统由A T 8 9 C 2 0 5 1单片机控制,包括单片机系统、发射电路与接收放大电路和显示电路几部分组成,如图3-1 所示。硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波接收电路三部分。单片机的晶振采用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 超声波测距单片机系统

超声波测距单片机系统主要由:A T 8 9 C 2 0 5 1单片机、晶振、复位电路、电源滤波

部份构成。如图3-1。

图3-1:超声波测距单片机系统

3.2.2 超声波发射、接收电路

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

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

该测距电路的40kHz方波信号由单片机A T 8 9 C 2 0 5 1 的P 3 .5发出。方波的周期为1/40ms,即25μs,半周期为12.5μs。每隔半周期时间,让方波输出脚的电平取反,便可产生40kHz方波。由于单片机系统的晶振为12M晶振,因而单片机的时间分

辨率是1μs,所以只能产生半周期为12μs或13μs的方波信号,频率分别为41.67kHz 和38.46kHz。本系统在编程时选用了后者,让单片机产生约38.46kHz的方波。

图3-1:超声波测距发送接收单元

由于反射回来的超声波信号非常微弱,所以接收电路需要将其进行放大。接收电路如图4 所示。接收到的信号加到BG1、BG2组成的两级放大器上进行放大。每级放大器的放大倍数为70倍。放大的信号通过检波电路得到解调后的信号,即把多个脉冲波解调成多个大脉冲波。这里使用的是I N 4148检波二极管,输出的直流信号即两二极管之间电容电压。该接收电路结构简单,性能较好,制作难度小。

3.2.3显示电路

本系统采用三位一体L E D 数码管显示所测距离值,如图8(见下页) 。码管采用动态扫描显示,段码输出端口为单片机的P1口,位码输出端口分别为单片机的P3.2、P3.1、P3.0口,数码管位驱运用PNP三极管S9012三极管驱动。

四.系统软件设计

4.1 主程序设计

超声波测距的软件设计主要由主程序、超声波发生子程序、超声波接收程序及显示子程序组成。超声波测距的程序既有较复杂的计算(计算距离时),又要求精细计算程序运行时间(超声波测距时),所以控制程序可采用C语言编程。

主程序首先是对系统环境初始化,设定时器0为计数,设定时器1定时。置位总中断允许位EA。进行程序主程序后,进行定时测距判断,当测距标志位cl==1,即进行测量一次,程序设计中,超声波测距频度是1次/秒。测距间隔中,整个程序主要进行循环显示测量结果。当调用超声波测距子程序后,首先由单片机产生6-8个频率为38.46kHz超声波脉冲,加载的超声波发送头上。超声波头发送完送超声波后,立即启动内部计时器T0进行计时,为了避免超声波从发射头直接传送到接收头引起的直射波触发,这时,单片机需要延时约1.5 -2ms时间(这也就是超声波测距仪会有一个最小可测距离的原因,称之为盲区值)后,才启动对单片机P3.7脚的电平判断程序。当检测到P3.7脚的电平由高转为低电平时,立即停止T0计时。由于采用单片机采用的是12 MHz的晶振,计时器每计一个数就是1μs,当超声波测距子程序检测到接收成功的

标志位后,将计数器T0中的数(即超声波来回所用的时间)按式(2)计算,即可得被测物体与测距仪之间的距离。

设计时取15℃时的声速为340 m/s则有:d=(c×t)/2=172×T0/10000cm其中,T0为计数器T0的计算值。测出距离后结果将以十进制BCD码方式送往LED显示约0.5s,然后再发超声波脉冲重复测量过程。

4.2 超声波测距子程序

void csbcj() //超声波测距子程序

{

if(cl==1)

{

TR1=0;

TH0=0x00;

TL0=0x00;

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

while(i--)

{

csbout=!csbout;

}

TR0=1;

i=450;

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 超声波测距程子序流程图

五.调试及性能分析

5.1调试步骤

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

的显示结果会不会变化,在测量范围内能否正常显示。如果一直显示“- - -”,则需将下限值增大。本测距板1S钟测量一次,若要修改测量间隔,可将程序“if(csbds>=40) //1S测量一次。”中的“40”增大或减小即可。超声波发送功率较大时,测量距离远,则相应的下限值(盲区)应设置为高值。试验板中的声速没有进行温度补偿,声速值为340m/s。

5.2 性能分析

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

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

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

六.心得体会

俗话说“好的开始是成功的一半”。通过这次实习,我们学到了很多东西。在进行课程设计时,我们应该做到以下三点:首先,我认为最重要的就是认真的研究老师给的题目。其次,在老师讲解的基础上认真研究硬件电路的设计,和软件流程的设计。最后,重点实现软硬结合的综合调试。

这次的实习算起来一共进行了两周,在这两周的时间里我们进行了硬件电路图设计,PCB板的设计,以及软件的编程实现,软硬件的综合调试。最终一个完整的课程设计成果出来了,很高兴它能按着设计的思想与要求运作起来。当然,这其中也有很多问题,比如在PCB制作过程中没有建立网络报表导致了部分连线没有倒入PCB板中,还有部分封装出现了错误。就实现功能来说,设计结果能够符合题意,成功完成了此次实习要求,我们不只在乎这一结果,更加在乎的,是这个过程。这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。在已度过的大学时间里,我们大多数接触的是理论课。我们

在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似实习就为我们提供了良好的实践平台。

同时这次实习给我们带来前所未有的的启发:

首先,查阅资料的必要性。在做本次实习的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。

其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:模拟和数字电路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。

再次,在实习之前,我们要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在实习过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力提高都会受益于我在以后的学习、工作和生活中

最后,我们在这次实习中我们使用了分模块焊接,分模块测试的方法进行硬件电路的焊接和测试,这是我们最宝贵的收获,这样做可以避免走很多弯路。使得调试也条理分明。

总体上说,这次实习中收获很多,感触也很多。

参考文献

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

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

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

[4] 李群芳,黄建. 单片机微型计算机与接口技术. 北京:电子工业出版社,2001

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

[6] 王守中 51单片机开发入门与典型实例. 北京:人民邮电出版社,2009

附录一超声波测系统原理图

附录二超声波测系统原理图安装图

附录三超声波测系统原理图PCB图

相关文档