基于AT89C2051单片机超声波测距系统设计报告_第1页
基于AT89C2051单片机超声波测距系统设计报告_第2页
基于AT89C2051单片机超声波测距系统设计报告_第3页
基于AT89C2051单片机超声波测距系统设计报告_第4页
基于AT89C2051单片机超声波测距系统设计报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 . . . 1 / 233AT89C20513AT89C2051 单片机超声波测距系统单片机超声波测距系统设计题目:AT89C2051 单片机超声波测距系统: 缪庚完成日期:2012 年 4 月 25 日目目 录录 . . . 2 / 23一、设计任务和性能指标一、设计任务和性能指标 3 31.1 设计任务 31.2 性能指标 3二、超声波测距原理概述二、超声波测距原理概述 4 42.1 超声波传感器 52.1.1 超声波发生器 52.1.2 压电式超声波发生器原理 52.1.3 单片机超声波测距系统构成 5三、设计方案三、设计方案 6 63.1 AT89C2051 单片机 73.2 超声波

2、测距系统构成 83.2.1 超声波测距单片机系统 8图 3-2:超声波测距单片机系统 93.2.2 超声波发射、接收电路 9图 3-3:超声波测距发送接收单元 103.2.3 显示电路 10四四. .系统软件设计系统软件设计 11114.1 主程序设计 114.2 超声波测距子程序 124.3 超声波测距程序流程图 134.4 超声波测距程子序流程图 14五五. .调试与性能分析调试与性能分析 14145.1 调试步骤 145.2 性能分析 15参考文献参考文献 1515附录一:基于附录一:基于 AT89C2051AT89C2051 单片机超声波测距系统电原理图单片机超声波测距系统电原理图 1

3、616附录二基于附录二基于 AT89C2051AT89C2051 单片机超声波测距系统单片机超声波测距系统 PCBPCB 图图 1717附录三基于附录三基于 AT89C2051AT89C2051 单片机超声波测距系统焊接组装图单片机超声波测距系统焊接组装图 1818附录四基于附录四基于 AT89C2051AT89C2051 单片机超声波测距系统单片机超声波测距系统 C C 语言原程序语言原程序 1919附录五附录附录五附录: :元件清单元件清单 2424一、设计任务和性能指标一、设计任务和性能指标1.11.1 设计任务设计任务利用单片机与外围接口电路(键盘接口和显示接口电路)设计制作一个超声波

4、测距仪器,用 LED 数码管把测距仪距测出的距离显示出来。 . . . 3 / 23要求用 Protel 画出系统的电路原理图,印刷电路板,绘出程序流程图,并给出程序清单。1.21.2 性能指标性能指标距离显示:用三位 LED 数码管进行显示(单位是 CM) 。测距围:25CM 到 400CM 之间。误差:1%。二、超声波测距原理概述二、超声波测距原理概述超声波是由机械振动产生的,可在不同介质中以不同的速度传播。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。超声测距是一种非接触式的检测方式。与其它方法相比,

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

6、,但检测围有限; 声波幅值检测法易受反射波的影响。本仪器采用超声波渡越时间检测法。其原理为: 检测从超声波发射器发出的超声波,经气体介质的传播到接收器的时间,即渡越时间。渡越时间与气体中的声速相乘,就是声波传输的距离。超声波发射器向某一方向发射超声波,在发射时刻的同时单片机开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度随温度变化,其对应值如表 2-1,根据计时器记录的时间 t (见图 2-1),就可以计算出发射点距障碍物的距离( s ) ,即: s = v t / 2 。表 2-1 声速与温度的关系 . . . 4 /

7、23温度()3020100102030100声速(m/s)313319325323338344349386图 2-1 超声波测距时序图2.12.1 超声波传感器超声波传感器2.1.12.1.1 超声波发生器超声波发生器为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类: 一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等; 机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不一样,因而用途也各不一样。目前较为常用的是压电式超声波发生器。2.1.22.1.2 压电式超声波发生

8、器原理压电式超声波发生器原理压电型超声波传感器的工作原理:它是利用压电效应的原理,压电效应有逆效应和顺效应,超声波传感器是可逆元件,超声波发送器就是利用压电逆效应的原理。所谓压电逆效应如图 2-2 所示,是在压电元件上施加电压,元件就变形,即称应变。若在图 a 所示的已极化的压电瓷上施加如图 b 所示极性的电压,外部正电荷与压电瓷的极化正电荷相斥,同时,外部负电荷与极化负电荷相斥。由于相斥的作用,压电瓷在厚度方向上缩短,在长度方向上伸长。若外部施加的极性变反,如图 c 所示那样,压电瓷在厚度方向上伸长,在长度方向上缩短。 . . . 5 / 23图 2-2 压电逆效应图2.1.32.1.3 单

9、片机超声波测距系统构成单片机超声波测距系统构成单片机 AT89C2051 发出短暂的 40kHz 信号,经放大后通过超声波换能器输出;反射后的超声波经超声波换能器作为系统的输入,锁相环对此信号锁定,产生锁定信号启动单片机中断程序,读出时间 t,再由系统软件对其进行计算、判别后,相应的计算结果被送至 LED 数码管进行显示。限制超声波系统的最大可测距离存在四个因素:超声波的幅度、反射物的质地、反射和入射声波之间的夹角以与接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将决定最小可测距离。开始测量超声波信号开定时器关定时器数据运算显示器接收检测电声换能器电声换能器驱动电路图 2-3 超声波测

10、距系统框图三、设计方案三、设计方案按照系统设计的功能的要求,初步确定设计系统由单片机主控模块、显示模块、 . . . 6 / 23超声波发射模块、接收模块共四个模块组成。单片机主控芯片使用 51 系列 AT89C2051 单片机,该单片机工作性能稳定,同时也是在单片机课程设计中经常使用到的控制芯片。发射电路由单片机输出端直接驱动超声波发送。接收电路使用三极管组成的放大电路,该电路简单,调试工作小较小。图 3-1:系统设计框图硬件电路的设计主要包括单片机系统与显示电路、超声波发射电路和超声波接收电路三部分。单片机采用 AT89C2051。采用 12MHz 高精度的晶振,以获得较稳定时钟频率,减小

11、测量误差。单片机用 P3.5 端口输出超声波换能器所需的 40kHz 的方波信号,P3.6 端口监测超声波接收电路输出的返回信号。显示电路采用简单实用的 3 位共阳LED 数码管,段码输出端口为单片机的 P1 口,位码输出端口分别为单片机的P3.2、P3.1、P3.0 口,数码管位驱运用 PNP 三极管 S9012 三极管驱动。3.13.1 AT89C2051AT89C2051 单片机单片机AT89C2051 是美国 ATMEL 公司生产的低电压,高性能 CMOS 8 位单片机,片含 2k bytes 的可反复擦写的只读程序存储器(PEROM)和 128 bytes 的随机存取数据存储器(RA

12、M) ,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-5l 指令系统,片置通用 8 位 央处理器和 Flash 存储单元,功能强大。AT89C2051 单片机可为您提供许多高性价比的应用场合。 主要性能参数与 MCS-51 产品指令系统完全兼容 超声波接收模块超声波发射模块单片机控制系统(AT89C2051)显示模块键盘模块供电单元 . . . 7 / 232k 字节可重擦写闪速存储器 1000 次擦写周期 2.7V6V 的工作电压围 全静态操作:0Hz24MHz 两级加密程序存储器 1288 字节部 RAM 15 个可编程 IO 口线 2 个 l6 位定时计数器

13、 6 个 断源 可编程串行 UART 通道 可直接驱动 LED 的输出端口置一个模拟比较器 低功耗空闲和掉电模式 功能特性概述 AT89C2051 提供以下标准功能:2k 字节 Flash 闪速存储器,128 字节部 RAM,15个 IO 口线,两个 16 位定时计 数器,个 5 向量两级 断结构,一个全双工串行通信口,置个精密比较器,片振荡器与时钟电路。同时,AT89C2051 可降至 0HZ 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时计数器,串行通信口与 断系统继续工作。掉电方式保存 RAM 中的容,但振荡器停止工作并禁止其它所有部

14、件工作直到下一个硬件复位。3.23.2 超声波超声波测距系统构成测距系统构成本系统由单片机 A T 8 9 C 2 0 5 1 控制,包括单片机系统、发射电路与接收放大电路和显示电路几部分组成,如图 3-1 所示。硬件电路的设计主要包括单片机系统与显示电路、超声波发射电路和超声波接收电路三部分。单片机采用 AT89C2051。采用12MHz 高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用 P3.5 端口输出超声波换能器所需的 40kHz 的方波信号,P3.6 端口监测超声波接收电路输出的返回信号。显示电路采用简单实用的 3 位共阳 LED 数码管,段码输出端口为单片机的 P1 口,

15、位码输出端口分别为单片机的 P3.2、P3.1、P3.0 口,数码管位驱运用 PNP 三极管 S9012三极管驱动。 . . . 8 / 23超声波接收头接收到反射的回波后,经过接收电路处理后,向单片机 P3.7 输入一个低电平脉冲。单片机控制着超声波的发送,超声波发送完毕后,立即启动部计时器T0 计时,当检测到 P3.7 由高电平变为低电平后,立即停止部计时器计时。单片机将测得的时间与声速相乘再除以 2 即可得到测量值,最后经 3 位数码管将测得的结果显示出来。3.2.13.2.1 超声波测距单片机系统超声波测距单片机系统超声波测距单片机系统主要由:A T 8 9 C 2 0 5 1 单片机

16、、晶振、复位电路、电源滤波部份构成。如图3-2。图 3-2:超声波测距单片机系统3.2.23.2.2 超声波发射、接收电路超声波发射、接收电路超声波发射、接收电路如图 3-3。超声波发射部份由电阻 R2 与超声波发送头 T40板成;接收电路由 BG1、BG2X 组成的两组三级管放大电路组成;检波电路、比较整形电路由 C7、D1、D2 与 BG3 组成。40kHz 的方波由 A T 8 9 C 2 0 5 1 单片机的 P 3 .5 驱动超声波发射头发射超声波,经反射后由超声波接收头接收到 40kHz 的正弦波,由于声波在空气中传播时衰减,所以接收到的波形幅值较低,经接收电路放大,整形,最后输出

17、一负跳变,输入单片机的 P3 脚。 . . . 9 / 23该测距电路的 40kHz 方波信号由单片机 A T 8 9 C 2 0 5 1 的 P 3 .5 发出。方波的周期为 1/40ms,即 25s,半周期为 12.5s。每隔半周期时间,让方波输出脚的电平取反,便可产生 40kHz 方波。由于单片机系统的晶振为 12M 晶振,因而单片机的时间分辨率是 1s,所以只能产生半周期为 12s 或 13s 的方波信号,频率分别为41.67kHz 和 38.46kHz。本系统在编程时选用了后者,让单片机产生约 38.46kHz 的方波。图 3-3:超声波测距发送接收单元由于反射回来的超声波信号非常微

18、弱,所以接收电路需要将其进行放大。接收电路如图 3.3 所示。接收到的信号加到 BG1、BG2 组成的两级放大器上进行放大。每级放大器的放大倍数为 70 倍。放大的信号通过检波电路得到解调后的信号,即把多个脉冲波解调成多个大脉冲波。这里使用的是 I N 4148 检波二极管,输出的直流信号即两二极管之间电容电压。该接收电路结构简单,性能较好,制作难度小。3.2.33.2.3 显示电路显示电路本系统采用三位一体 L E D 数码管显示所测距离值,如图(见下页) 。码管采用动态扫描显示,段码输出端口为单片机的 P1 口,位码输出端口分别为单片机的P3.2、P3.1、P3.0 口,数码管位驱运用 P

19、NP 三极管 S9012 三极管驱动。 . . . 10 / 23图图3-43-4:显示单元图:显示单元图四四. .系统软件设计系统软件设计4.14.1 主程序设计主程序设计超声波测距的软件设计主要由主程序、超声波发生子程序、超声波接收程序与显示子程序组成。超声波测距的程序既有较复杂的计算(计算距离时) ,又要求精细计算程序运行时间(超声波测距时) ,所以控制程序可采用 C 语言编程。 主程序首先是对系统环境初始化,设定时器 0 为计数,设定时器 1 定时。置位总中断允许位 EA。进行程序主程序后,进行定时测距判断,当测距标志位 cl=1,即进行测量一次,程序设计中,超声波测距频度是 2 次/

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

21、接收成功的标志位后,将计数器 T0 中的数(即超声波来回所用的时间)按式(2)计算,即可得被 . . . 11 / 23测物体与测距仪之间的距离。设计时取 15时的声速为 340 m/s 则有: d=(ct)/2=172T0/10000cm 其中,T0 为计数器 T0 的计算值。 测出距离后结果将以十进制 BCD 码方式送往 LED 显示约0.5s,然后再发超声波脉冲重复测量过程。 4.24.2 超声波测距子程序超声波测距子程序 void csbcj() /超声波测距子程序if(cl=1) TR1=0;TH0=0 x00;TL0=0 x00;i=20;/超声波脉冲个数 10 个while(i-

22、)csbout=!csbout;TR0=1; i=150;while(i-)i=0;while(csbint)/判断接收回路是否收到超声波的回波i+;if(i=2450)/如果达到一定时间没有收到回波,则将 csbint 置零,退出接收回波处理程序csbint=0;TR0=0;TH1=0 x9E;TL1=0 x57;t=TH0;t=t*256+TL0;s=t*csbc/2;/计算测量结果TR1=1;cl=0; . . . 12 / 234.34.3 超声波测距程序流程图超声波测距程序流程图 YYN=N0=0=1开始初始化测量标志启动定时器超声波测距距离上限值距离盲区值=显示值= C C C显示

23、值= - - -测量段码转换显示设定段码转换距离=40) /1S 测量一次。 ”中的“40”增大或减小即可。超声波发送功率较大时,测量距离远,则相应的下限值(盲区)应设置为高值。试验板中的声速没有进行温度补偿,声速值为 340m/s。5.25.2 性能分析性能分析从实物测试的总体来说本测距板基本上达到了要求,理想上超声波测距能达到 5到 7 米左右,而我们所能实现的最大距离只有 4.00 米,测量结果受环境温度影响。分析原因如下:1.超声波发送部份为了简化电路,没加设置专门的超声波驱动电路,而是用单片机的 P3.5 输出端加了一个上拉电阻后就直接驱动超声波发送头。理论上,驱电电压只有5 伏。2

24、.本测距板没设计温度补偿电路,来对测量结果进行修正。参考文献参考文献1建领 薛园园 51单片机开发与应用技术详解 :电子工业,20092 红卫. 基于单片机智能系统设计与实现. :电子工业,20053 国田 白 焰 董 玲 51单片机实用C语言程序设计 中国电力 20094 群芳,黄建. 单片机微型计算机与接口技术. :电子工业,20015 楼然苗、光飞. 51系列单片机设计实例. :航空航天大学,20036 王守中 51单片机开发入门与典型实例. :人民邮电,2009 . . . 15 / 23附录一:基于附录一:基于 AT89C2051AT89C2051 单片机超声波测距系统电原理图单片机

25、超声波测距系统电原理图附附录二录二 基于基于 AT89C2051AT89C2051 单片机超声波测距系统单片机超声波测距系统 PCBPCB 图图 . . . 16 / 23 . . . 17 / 23附录三附录三 基于基于 AT89C2051AT89C2051 单片机超声波测距系统焊接组装图单片机超声波测距系统焊接组装图附录四附录四 基于基于 AT89C2051AT89C2051 单片机超声波测距系统单片机超声波测距系统 C C 语言原程序语言原程序/ AT89C2051超声波测距系统 / 贾 源 / 2004年8月 / :1211716 / . . . 18 / 23/ shop603282

26、66.taobao./ 晶振:12M / 系统盲区值:25厘米 / 测量上限:400厘米 /#include #define csbout P3_5/超声波发送#define csbint P3_7 /超声波接收#define csbc=0.034#define bg P3_4 unsigned char csbds,opto,digit,buffer3,xm1,xm2,xm0,key,jpjs,ki;/显示标识unsigned char convert10=0 x3F,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/09段码uns

27、igned int s,t,i,sj1,sj2,sj3,mqs,sx1,sjtz,sja,s;bit cl;void csbcj();void delay(i);/延时函数void scanLED();/显示函数void showOnce();/显示循环函数void timeToBuffer();/显示转换函数void offmsd();void main()/主函数EA=1; /开中断 TMOD=0 x11; /设定时器0为计数,设定时器1定时ET0=1; /定时器0中断允许 . . . 19 / 23ET1=1; /定时器1中断允许 TH0=0 x00;TL0=0 x00;TH1=0 x9

28、E;TL1=0 x57;csbds=0;csbint=1;csbout=1;cl=0;opto=0 xff;sj1=25;sj2=100;sj3=400;ki=0;TR1=1; /设定时值1为20ms while(1) csbcj();/调用超声波测距程序if(ssj3)/大于时显示CCCbuffer2=0 x39;buffer1=0 x39;buffer0=0 x39;else if(ssj1)/小于时显示- - -buffer2=0 x40;buffer1=0 x40;buffer0=0 x40; . . . 20 / 23else timeToBuffer();/调用转换段码功能模块of

29、fmsd();/调用判断百位数为零模块,百位为零时不显示 scanLED();/调用显示函数void scanLED() /显示功能模块 digit=0 x04; for( i=0; i=1; /循环右移1位 void timeToBuffer() /转换段码功能模块xm0=s/100;xm1=(s-100*xm0)/10;xm2=s-100*xm0-10*xm1;buffer2=convertxm2;buffer1=convertxm1;buffer0=convertxm0; . . . 21 / 23void delay(i)/延时子程序 while(-i);void timer1int (void) inter

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论