欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    基于单片机的测距系统设计.doc

    • 资源ID:5094915       资源大小:461.67KB        全文页数:47页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的测距系统设计.doc

    电子信息工程学院毕业设计(论文)第1章 课题及功能分析本系统是基于单片机的测距系统设计。在本系统的设计当中,主要是应用单片机AT89C52控制超声波发射与接收,运用压电式超声波技术来实现基本测距的功能。1.1 题目来源本次毕业设计的题目是基于单片机的测距系统设计。 在日常生产生活中,很多场合如汽车倒车、机器人避障、工业测井、水库液位测量等需要自动进行非接触测距。测距电路在人们的日常生活及工作中都有广泛的应用,可谓是源于生活,贴近生活,是和生活密不可分的。而在本测距系统的设计中主要应用超声波技术来实现测距的功能,我们知道,超声波是指频率大于20kHz的在弹性介质中产生的机械振荡波,其具有指向性强、能量消耗缓慢、传播距离相对较远等特点,因此常被用于非接触测距,如测距仪和物位测量仪等都可以通过超声波来实现。超声波测距是一种非接触式的检测方式。与其它方法相比,如电磁的或光学的方法,它不受光线、被测对象颜色等影响。对于被测物处于黑暗、有灰尘、烟雾、电磁干扰、有毒等恶劣的环境下有一定的适应能力。因此在液位测量、机械手控制、车辆自动导航、物体识别等方面有广泛应用。特别是应用于空气测距,由于空气中波速较慢,其回波信号中包含的沿传播方向上的结构信息很容易检测出来,具有很高的分辨力,因而其准确度也较其它方法高;而且超声波传感器具有结构简单、体积小、信号处理可靠等特点。由于超声波对光线、色彩和电磁场不敏感,因此超声波测距对环境有较好的适应能力,利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,所以将此技术应用到生活中可以节省很多人力、物力等资源,而且利用超声波检测距离,设计比较方便,计算处理也较简单,在测量精度方面能达到日常使用的要求,大大提高了产品的性能及质量。此外超声波测量在实时、精度、价格也能得到很好的折衷。1.2 主要任务本次毕业设计的任务比较明确,主要是测量超声波到反射物的距离,此设计中最关键的是计算从超声波发出到途中遇到障碍物反射回来的往返时间,然后利用有关参数根据距离计算公式算出所测距离,要求测距的范围是0.5到10米,所测到距离要能够实时显示,如果距离小于0.5米,将采用声光报警来提示用户。1.3 功能分析本次毕业设计的基于单片机的测距系统设计主要是应用超声波技术,以单片机系统为设计核心的控制系统,该系统要实现以下功能:1测距范围为0.5到10米;2数码管实时显示所测到的距离;3距离小于0.5米发生声光报警。第2章 方案论证2.1 系统设计要求本设计要求设计一测距系统,测距的范围是0.5到10米,所测到距离要能够实时显示,如果距离小于0. 5米,将采用声光报警来提示用户。在设计当中以单片机为核心器件,形成相应的测距电路,信号处理电路及报警电路,自行编制单片机控制程序,并进行硬件调试、软件调试,最后进行软硬件联调,达到性能要求。系统性能要求如下: 1收发传感器均选用超声波传感器; 2距离要求显示; 3探测距离0.5m10m; 4工作温度-2045。2.2 系统方案论证超声波测距原理是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差T,然后求出距离SCT2,式中的C为超声波波速。限制该系统的最大可测距离存在4个因素:超声波的幅度、反射的质地、反射和入射声波之间的夹角以及接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将决定最小的可测距离。为了增加所测量的覆盖范围、减小测量误差,可采用多个超声波换能器分别作为多路超声波发射或接收的设计方法。2.2.1方案1 本系统主要是基于单片机的测距系统,在系统的设计当中要以单片机为核心器件,分为超声波发射电路和超声波检测接收电路、显示及报警四部分。超声波测距电路的设计框图如图2.1所示:74LS04反相器CX20106A集成电路超声波发射器超声波接收器MCS-52 单片机显示报警图2.1 超声波测距电路的设计框图本方案采用单片机作为控制系统,用单片机产生8个40kHz的超声波,脉冲持续时间为0.2ms左右,时隔59.8ms反复进行。此脉冲信号作为计时的起始脉冲,由单片机输出的端口的高频脉冲经过74LS04六反相器功率放大、升压后与超声波探头产生共振,使超声波探头工作,则超声波由超声波发射头发射出去。接收电路由超声波接收器、CX20106A集成电路组成。使用CX20106A集成电路对接收探头收到的信号进行放大、滤波。当CX20106A接收到反射40kHz的信号时,会在第7脚产生一个低电平下降脉冲,这个信号可以接到单片机的外部中断引脚作为中断信号输入,停止计数器T0计数,并读取T0计数值存储。显示用4位共阳极LED数码管,声光报警是用发光二极管和蜂鸣器组成的,单片机输出一定频率的脉冲驱动蜂鸣器发出报警声,同时点亮发光二极管。系统中采用的是压电式超声波发生器,这个发生器实际上是利用压电晶体的谐振来工作的。超声波传感器由两个压电晶片和一个共振板组成。发射超声波时,压电传感器中的压电晶片受发射电脉冲激励后产生共振,并带动共振板振动,便产生超声波。接收超声波时,两电极间未外加电,共振板接收到超声波,将压迫压电晶片作振动将机械能转换为电信号。2.2.2方案2原理框图如图2.2所示。MCS-51单片机超声波发射器显示报 警超声波接收器FPS4091接收组件 图2.2 方案原理框图本方案主要是对方案1的发射和接收电路做了改动,在本方案中的发射电路是由单片机I/O口编程输出40kHz的方波,持续时间为0.2ms,每隔59.8ms左右再发一次,常温下超声波在空气中的传播速度为340米/秒,这样决定了仪器的最大探测距离为。直接由单片机产生40kHz的超声波,在发射电路中,由于单片机的P1口作为I/O口使用时吸电流能力小,所以外接一个三极管来提高其输出电流的能力,保证40kHz的脉冲有一定的功率。在接收端方案二采用FPS4091接收组件,需要将红外接收管PH302换为超声波接收头。因为在距离较远时,回波信号很弱,使用此接收组件,可以在有效的测距范围内保证接收到的信号其输出达到TTL电平避免了为达到几十万倍的放大量而采用多级运放组成的调试困难的高增益放大电路,十分便于制作,且电路无需调试。2.2.3方案比较通过分析上述两个方案,可以发现他们的主要区别在超声波的接收和发射部分,方案一的发射电路采用74LS04六反相器来驱动40kHz的超声波,而方案二采用直接通过对单片机的编程由I/O口直接产生40kHz的超声波,方案一虽然增加了六反相器,但这能保证超声波一定能发射出去,提高驱动能力。在接收部分方案一采用CX20106A集成电路,使用CX20106A集成电路对接收探头受到的信号进行放大、滤波。当CX20106A接收到反射40kHz的信号时,会在第7脚产生一个低电平下降脉冲,这个信号可以接到单片机的外部中断引脚作为中断信号输入,停止计数器T0计数,并读取T0计数值存储。而方案二采用FPS4091接收组件,结构虽然简单且不用调试,容易实现,但是大大的增加了投入费用,这与我们的实际情况不符,同时FPS4091接收组件在市场上不是很容易买到,尤其是小批量的购买很难。2.2.4结论 通过方案比较,方案一更加节省资金,容易实现,与我们的实际情况相符,因此确定选择方案一为最终实施方案。2.3 元器件的选择在整个的系统设计当中,元器件的选择是否适合本设计的需求,对于系统设计的成功与否起着相当重要的作用,所以在系统的设计过程中,一定要慎重地选择所要用的元器件。在本系统中,单片机采用AT89C52,具有较高的数据存储空间;晶体振荡器采用12MHz高精度的晶振,以获得较稳定的时钟频率,减小测量误差;超声波传感器选择T/R40-16(T发射/R接收);LED七段数码管选用简单实用的四位LED共阳数码管,位码采用PNP三极管8550驱动;超声波发射电路采用六反相器74LS04构成的推挽形式将方波信号加到超声波传感器两端,以提高超声波的发射强度;超声波检测接收电路主要采用CX20106A集成电路。第3章 系统硬件电路的设计本系统是利用超声波技术来实现其测距的功能,它不仅包含硬件电路的设计,也包含了软件程序的编程。下面就先以硬件电路的设计加以说明。3.1 系统硬件电路的设计思想本系统主要是用单片机来实现的测距电路的设计,按照设计的要求,主要是根据超声波测距原理,以AT89C52单片机控制系统为核心来设计本系统。以下是对超声波测距系统的各部分电路的说明:1、AT89C52单片机最小系统是本系统设计的核心部分。它的主要作用是: 发射40kHz的方波信号用来驱动超声波传感器发生超声波信号; 利用计数器T0对超声波从发射到返回所用的时间进行计数; 利用外部中断0口来检测超声波回波信号; 根据所测出的时间及有关参数来计算距离; 控制有关参数的输入与显示。2、显示电路的作用是采用动态扫描法使4位LED共阳数码管实时显示。3、超声波发射电路的作用主要是将单片机发射过来的40kHz的方波信号放大加到超声波发射传感器两极,用以驱动超声波传感器发生超声波信号。4、超声波检测接收电路的作用主要是对接收到的超声波回波进行放大和整形,将其转换成单片机中断信号。5、声光报警电路的作用主要是根据有关参数及设计要求使系统按要求发出相应的报警信号。3.2 系统硬件电路的设计本系统的硬件电路主要分为单片机最小系统、显示电路、超声波发射电路、超声波检测接收电路及声光报警电路五部分。3.2.1 单片机最小系统电路单片机最小系统电路是整个硬件电路中非常重要的一部分。单片机系统主要起控制电路中的各部分能够按照设计要求正常工作的作用,在本电路中单片机采用AT89C52,采用了12MHz高精度的晶振,以获得较稳定的时钟频率,减小测量误差。单片机AT89C52最小系统电路如图3.1所示: 图3.1单片机AT89C52最小系统电路1、单片机AT89C52AT89C52是一种低功耗、高性能的含有8K字节快闪可编程/擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的8位CMOS微控制器,使用高密度、非易失存储技术制造。芯片上的FPEROM允许在线或采用通用的非易失存储编程器对程序存储器重复编程。AT89C52的内部有256个字节的RAM,地址范围是00H-FFH,但实际提供给用户使用的只有128个字节(00H-7FH),另128个字节(80H-FFH)是特殊寄存器区。除ROM和RAM外,芯片内部还有三个16位的定时器/计数器,在本系统中定时器T0用来测量超声波的传输时间。51系列单片机引脚与封装如图3.2所示:图3.2 51单片机引脚与封装图AT89C52的主要性能如下: 与MCS-52微控制器产品系列兼容; 片内有8K字节的可在线重复编程快闪擦写存储芯器(Flash Memory); 编程所需的所有时序和电压,均不需外部电路供给; 存储器可循环写入/擦除1000次; 存储数据保存时间为10年; 宽工作电压范围:Vcc可由2.7V到6V; 全静态工作:可由0Hz到16MHz; 程序存储器具有3级锁存保护; 128×8位内部RAM; 32条可编程I/O线; 三个16位定时器/计时器; 中断结构具有5个中断源和2个优先级; 可编程全双工串行通道; 空闲状态维持低功耗和掉电状态保护存储内容。2、时钟电路 常用的时钟电路设计有两种方式,一种是内部时钟方式,另一种为外部时钟方式,本系统采用的是内部时钟方式。51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2.。这两个引脚跨接石英晶体振荡器和微调电容。这里晶振的振荡频率为12MHz,电路中的电容C6、C7选为30pF。3、复位电路本系统设计是的上电自动复位电路,上电自动复位是通过外部复位电路的电容充电来实现的,当电源接通时只要Vcc 的上升时间不超过1ms,就可以实现自动上电复位。3.2.2显示电路在本系统的显示电路的设计中主要采用的是4位共阳LED数码管,根据LED数码管内部发光二极管的连接方式,数码管结构可以分为共阳极型和共阴极型两种,共阳极型的内部发光二极管是由阳极连在一起接高电平。由于P0口输出电压很低,无法驱动数码管点亮,所以要加上拉电阻,一般选择10k上拉电阻。同时数码管额定工作电压范围为1.21.5V,工作电流为10mA,要加限流电阻,根据公式: 所以此处限流电阻选择380。显示电路如图3.3所示:图3.3 显示电路3.2.3超声波发射电路超声波发射电路主要由六反相器74LS04组成的推挽电路和超声波发射传感器构成。超声波发射电路如图3.4所示。单片机P1.0端口向外输出超声波脉冲信号,该信号一路经一级反相器后送到超声波换能器的一个电极,另一路经两极反相器后送到超声波换能器的另一个电极。用这种推挽形式将方波信号加到超声波换能器两端,可以提高超声波的发射强度。输出端采用两个反相器并联,用以提高驱动能力。其中的上拉电阻R1、R2一方面可以提高反相器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡的时间。图3.4 超声波发射电路1、反相器在本系统的超声波发射电路中采用的反相器是六反相器74LS04芯片,其引脚结构如图3.5所示:图3.5 芯片74LS04引脚结构 由其引脚结构可知, 7脚接地,14脚接电源,剩下12个管脚可分为六个反相器,其中A为输入端,Y为输出端,例如:1A输入,1Y输出。2、超声波传感器超声波传感器是利用晶体的压电效应和电致伸缩效应,将机械能与电能相互转换,并利用波的特性,实现对各种参量的测量。人们能听到声音是由于物体振动产生的,它的频率通常在20Hz-20kHz范围内,超过20kHz称为超声波,低于20Hz的称为次声波。常用的超声波频率为几十kHz-几十MHz。超声波是一种在弹性介质中的机械振荡,它的波形有纵波、横波、表面波三种。质点的振动与波的传播方向一致的波称为纵波;质点的振动与波的传播方向垂直的波称为横波;质点的振动介于纵波与之间,沿着表面传播,振幅随着深度的增加而迅速衰减的波称为表面波。横波、表面波只能在固体中传播,纵波可在固体、液体及气体中传播。2.1 传播速度超声波的传播速度与介质的密度和弹性特性有关,与环境条件也有关。在液体中传播速度为 C= 式中p为介质的密度;为绝对压缩系数。对于固体,其传播速度为 C= 式中,E为固体的弹性模量;u为介质的泊松比。在气体中,超声波的传播速度与气体种类、压力及温度有关,在空气中传播速度为C=331.5+0.607t (m/s) 式中,t为环境温度,单位为0C。2.2 反射和折射超声波在通过两种不同介质时,会产生反射和折射现象,有如下的关系:=C1/C2 式中C1、C2为超声波在两种介质中的速度;为入射角,b为折射角。2.3 传播中的衰减随着超声波在介质中传播距离的增加,介质吸收能量使超声波强度有所衰减。若超声波进入介质的强度为I0,通过介质后的强度为I,则他们之间的关系为: I= I0e-Ad 式中,d为介质的厚度,A为介质对超声波能量的吸收系数。介质的密度越小,衰减越快,频率高时则衰减更快。因此,在空气中常采用频率较低的超声波,而在固体、液体中则采用频率较高的超声波。利用超声波的特性,可做成各种传感器(包括超声波的发射和接收),配上不同的电路,可制成各种超声波仪器及装置,应用于工业生产、医疗、家电等行业中。在本系统的设计中就是利用压电式超声波传感器,该超声波传感器是利用压电晶体的谐振来工作的。超声波传感器的内部结构如图3.6所示。超声波传感器由两个压电晶片和一个共振板组成。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器了。同时要注意的是超声波发射换能器与接收换能器在其结构上稍有不同,在使用中一定要分清楚器件上的符号标志。图3.6超声波传感器的内部结构本系统所采用的是T/R40-16型超声波传感器。下面就对T/R40超声波传感器进行一些简单介绍:1 超声波传感器型号代码例如T/R40-16型超声波传感器的型号代码如图3.7所示。图3.7 T/R40-16型超声波传感器型号代码 超声波传感器外部结构如图3.8所示。图3.8 超声波传感器的外形结构示意图 超声波传感器内部结构如图3.9 所示。图3.9 超声波传感器的内部结构示意图 超声波传感器的性能指标如表3.1所示。要想很好地运用超声波传感器,还要了解它的各项性能指标,超声波传感器的性能指标如表3.1所示:表3.1 超声波传感器性能指标超声波型号T/R40-10T/R40-12T/R40-16中心频率40士1kHz40士1kHz40士1kHz发射声压大于107dB大于112dB大于115dB接收灵敏度>-74dB/v/ubar>-67dB/v/ubar>-64dB/v/ubar-6dB指向100deg80deg50deg电容1100士25%pF2500士25%pF2400士25%pF 超声波传感器特性曲线 声压电平特性曲线如图3.10所示。图3.10 声压电平特性曲线 灵敏度特性曲线如图3.11所示。图3.11 灵敏度特性曲线由这些特性曲线图可知,T/R40超声波传感器在输入频率为40kHz时,各种特性都呈现出最佳状态,因此为了得到最佳效果必须使单片机输出方波的频率为40kHz。3.2.4超声波检测接收电路超声波检测接收电路主要是由红外线检波接收的专用芯片CX20106A以及超声波接收传感器R构成的,其电路图如图3.12所示。考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,而且CX20106A的载波频率可以通过其5脚与电源所接的电阻大小调整到40kHz,所以可以利用它制作超声波检测接收电路。用CX20106A接收超声波(无信号时输出高电平),具有很高的灵敏度和较强的抗干扰能力。以集成片CX20106A的7脚做为指今输出端,利用单片机外中断0口监测超声波接收电路输出的返回信号;CX20106A的5脚与电源之间所接电阻R7的大小决定着它本身的带通滤波器的中心频率的大小,在本系统中选择R7的阻值为200k,此时的中心频率=40kHz;超声波接收传感器R接在CX20106A的1脚与地所接电容C5的两端,根据测量范围要求不同,可适当更改接于超声波接收传感器R电极两端的电容C5的大小,以改变接收电路的接收灵敏度和抗干扰能力。图3.12 超声波检测接收电路红外线检波的专用芯片CX20106A是8脚单列直插式塑封结构,其各引脚功能如表3.2所示,它的主要功能是对接收到的超声波信号进行放大、滤波。它主要是由前置放大器、限幅放大器、带通滤波器(BPF)、峰值检波器和波形整形器等组成。其主要特点如下:(1)低电压供电(Vcc=5V),低功耗(Vcc=5V时,典型功耗为9mV)。(2)带通滤波器在集成电路内部,滤波特性由5脚和电源之间外接电阻的阻值来决定,可不必进行调整,带通滤波器的频率范围为3060kHz,由于没有使用电感,可免受磁场的影响。(3)能和PIN光电二极管直接相连。(4)集电极开路输出,能直接与TTL或CMOS电路相连。表3.2 CX20106A的各引脚功能引脚符号功能电压(V)1IN信号输入端,输入阻抗为40±5 k2.52C2该脚和地之间接有RC串联网络,用来确定前置放大器的频率特性和增益.若电阻大、电容小,则增益低,反之则高。但电容不易过大,否则瞬间响应速度会降低2.53C3该脚和地之间连接检波电容,电容量大为平均值检波;若电容量小,则为峰值检波,瞬间响应灵敏度高,但检波输出脉冲的脉宽变动大,易造成遥控误动作1.54GND接地端05该脚为带通滤波器的中心频率设置端,其与电源所接的电阻用来设置带通滤波器的中心频率:当R=200 k时,=40kHz; 当R=220 k时,=38kHz1.46C4该脚为积分电容连接端,所接电容的标准值为330pF。若电容量大,则受外部噪波干扰增强,而且输出脉冲的低电平持续时间增加,遥控距离变短1.07OUT指令输出端,是集电极开路输出端,该脚与电源之间连接22 k电阻,输出脉冲的低电平标准为0.2V5.08Vcc供电电源端,电压为5±0.3V5.03.2.5声光报警电路本系统的电路设计要求测量距离小于0.5米时电路发生声光报警。在本系统的设计当中应用单片机程序控制电路发生报警,通过单片机输出低电平触发的,选择了发光二极管以及蜂鸣器作为该报警电路的主要元器件,声光报警电路如图3.13所示:图3.13 声光报警电路第4章 系统程序的设计本系统的软件设计主要由主程序、定时器T1中断服务子程序、外部中断INT0中断服务子程序、距离计算子程序、初始化子程序、显示子程序、延时子程序等组成。我们知道C语言程序有利于实现较复杂的算法,汇编语言程序容易精细计算程序运行的时间,而超声波测距的程序既有较复杂的计算(计算距离时),又要求精细计算程序运行时间(超声波测距时),所以为了有利于程序结构化和容易计算出距离,程序采用C语言编写。下面就对主要的程序加以说明。4.1系统的算法设计根据超声波测距的原理,即超声波发生器T在某一时刻发出超声波脉冲信号,超声波遇到被测物体后反射回来,被超声波接收器R接收到。这样只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。距离的计算公式为:S=CT/2其中的S为被测物体与测距器之间的距离,C为声速,T为声波来回所用的时间。设计时取超声波20时的声速为344m/s。所以,只要测出超声波往返的时间,即可求得距离。由于超声波也是一种声波,其声速C与温度有关,在使用时,如果温度变化不大,则可认为声速是基本不变的,在本系统的设计中取20时的的声速为344m/s。声速确定后,只要测得超声波往返的时间,即可求得距离。4.2系统软件的设计    系统软件编制时应考虑相关硬件的连线,同时还要进行存储空间、寄存器以及定时器和外部中断引脚的分配和使用。本设计中P1.0引脚连接到74LS04推挽放大电路再连接到超声波发射传感器,P1.0引脚输出的将是软件方式产生的超声波脉冲信号,而P3.2(INT0)则被用来接收回波。定时器T1,计数器T0均工作在工作方式1,为16位计数,T1定时器被用来开启一次测距过程以它的溢出为标志开始一个发射测量循环,T0计数器是用来计算脉冲往返时间,T0的初值设为0。4.2.1主程序的设计    系统初始化后就启动定时器T1从0开始计数,此时主程序进入等待,当到达60 ms时T1溢出进入T1中断服务子程序;在T1中断服务子程序中将启动一次新的超声波发射,此时将在P1.0引脚上开始产生超声波脉冲信号,同时开启计数器T0计数,为了避免直射波的绕射,需要延迟1 ms后再开INT0中断允许;INT0中断允许打开后,若P3.2(INT0)引脚出现低电平则代表收到回波信号,将提出中断请求进入INT0中断服务子程序,在INT0中断服务子程序中将停止计数器T0计数,读取计数器T0计数值到相应的存储区,同时设置接收成功标志;主程序一旦检测到接收成功标志,单片机再调用距离计算子程序进行计算,计算出传感器到目标物体之间的距离;此后主程序调用显示子程序进行显示;若超过设定的最小报警距离还将报警;如果没有检测到接收成功标志,则继续等待回波;当一次发射、接收、显示的过程完成后,系统将再次启动T1以溢出,进入下一次测距。主程序的流程图如图4.1所示:开始系统初始化启动定时器T1定时60ms,开T1中断调用距离计算显示距离清回波接收成功标志位回波接收成功标志位置1NY启动计数器T0,开始计数,开外部中断INT0 图4.1主程序流程图4.2.2定时器T1中断服务子程序的设计本设计中40 kHz方波的产生采用软件方式实现:控制P1.0口输出12.5s的高电平,再输出12.5s的低电平,这样得到一个周期为40 kHz的脉冲,再循环发送8次。超声波发生子程序用定时器T1中断程序产生超声波。定时器T1中断服务程序流程图如图4.2所示:计数器T0清零并启动计数器T0,开中断允许EA连续发射8个40kHz的超声波延时1ms以避免“虚假发射波”开外部中断INT0返 回定时器T1中断服务子程序入口图4.2 定时器T1中断服务程序流程图4.2.3外部中断INT0中断服务子程序的设计本设计利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(即INT0引脚出现低电平),立即进入中断程序。进入中断后就立即关闭计数器T0停止计数,并将接收成功标志字赋值1。外部中断INT0中断服务子程序流程图如图4.3所示:关总中断允许EA停止计数器T0计数,并读取T0计数值存储置回波接收成功标志位为1返 回外部中断INT0中断服务子程序入口 图4.3 INT0中断服务子程序流程图4.2.4延时子程序的设计在软件程序的设计当中,无论是在数码管动态扫描程序当中,或是在超声波的发射与接收中,延时程序都占有很重的份量,如果没有延时程序的工作,系统也不会稳定而且正常的工作。延时程序如下:void delay()/超声避开自己发出波的延时。int m;for(m=0;m<200;m+)_nop_();_nop_();_nop_();_nop_();void Delay(ui i)for(;i>0;-i); 此外,还有几点需要说明的是:    (1)定时器T1之所以是60 ms溢出是因为它是16位定时计数器(65535)。在使用12MHz的晶振时,由于周期T=1/f=1(12×)12=1s,则根据计算初值公式,求得X=159F,即定时器T1的初值为TH1=0x15,TL1=0x9F。    (2)在CPU停止发送脉冲群后,由于电阻尼,换能器不能立即停止发送超声波,在一段时间内仍然会发送,故这段时间内不可立即开启INT0接收回波,要等待一段后以避免发送端的部分直射波未经被测物就直接绕射到接收端,这段被称为“虚假反射波”。从发射开始一直到“虚假反射波”结束这段时间,不开放INT0中断申请,可有效躲避干扰,但也会造成测试的“盲区”。本次设为1 ms,假定温度为20,则测量盲区为S=1××3442172 cm。    (3)最大测试距离将取决于:两次脉冲群发送之间的最小时间间隔和脉冲的能量。一般来说,发射端脉冲个数越多,能量越大,所能测的距离也越远。如果要测试的最大距离是10m,则两次脉冲群之间的最小时间为T=2×S/C=2×1034460ms 。第5章 系统调试情况及其排故在单片机应用系统的开发过程中,硬件设计和软件设计都可以按照书上的原理设计,但是系统的调试过程对于整个系统的实现也是至关重要的,调试过程中会遇到很多实际的问题,要一个模块一个模块的调试。特别是软、硬件的联合调试过程,这个是最重要的一个环节,通过该过程能够检验一个系统是否能正常稳定地工作,同时还可以检测其是否达到系统设计的性能要求,能否实现所有功能等等。如果软、硬件联合调试能够成功,实现正确的结果,才能够证明这个系统的设计是成功的。下面就针对这次设计在调试中所出现的一些问题做些简要的说明。5.1 硬件调试在整个系统的设计当中,首先就是要进行硬件设计,硬件设计以及焊接完成后,就是硬件调试部分。总体来说,超声波测距系统的制作和调试都较为简单,其中超声波发射和接收选用的是16的超声波传感器T/R40-16(T发射/R接收),中心频率为40kHz,在焊接时应保持两传感器的中心轴线平行并相距48cm,其余元器件无特别要求。若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。下面就来说明一下本系统的硬件调试部分。首先,将焊接完成的硬件与设计的硬件电路图重新对照一下,检查是否有多焊、漏焊以及错焊等情况。在此项检查过程中,先从超声波的发射电路开始,刚检查就发现了很严重的错焊现象,焊接六反相器的管脚时误将导线丝与电路板相连,发现错误后及时修正,重新焊接后接着再继续检查,又发现在超声波接收电路中的超声波接收传感器R的管脚与集成片CX20106A接错了,重新焊接后并没有发现太大的焊接错误了。接着,用万用表检测硬件电路是否有断接、短接等情况,同时重点检查一下高、低电平的连接有没有错误。在此项检查中,由于14脚的IC底座的各管脚之间距离很近,当电阻或导线同时连接一点时,导致发射和接收电路中有的导线可能没有焊接上,一一改正后继续检测。在检测中又发现超声波接收电路中的超声波接收传感器的正极端接地了,改正后继续检测,没有发现其它的错误了。最后,用USB提供5V电压将整个电路通电后检查现象,在用万用表测量各个管脚的电压时,发现没有高电平,各个管脚与地线之间都没有电压,经过检测,后来发现是所用的排线接高电平的那根线与接头接触不好,经过重新焊好排线后,再测量管脚与地线之间有电压了。继续检测,再次通电后,用万用表测量超声波接收电路时,发现有的电容和电阻两端的电压很小,当把CX20106A芯片与IC座重新插一下后,再测量电压变大了,分析可能是IC座焊的不太牢固,芯片与其接触也不太好。重新焊好插好芯片再测量就没有发现其他的错误了。经过上面的硬件调试后,硬件基本检测完毕,等待软件程序的编程与调试后进行软、硬件联合调试。5.2 软件调试软件程序是在KEIL单片机仿真系统中完成的,软件程序的主程序以及各部分子程序都编完后,进行软件编译,编译不通过,提示说在发生脉冲程序中的_nop_()没有定义,原来是头文件中没有定义,加上#include <intrins.h>头文件后,继续编译。这时又提示有错误产生,提示说不可以调用延时程序,检查发现是在主程序中的显示部分用到的延时程序放在了主函数的后面,导致无法调用,把延时程序放在主函数前面后继续编译。这时又有错误产生了,提示报警处附近处有错误,发现有一语句忘写“;”号了,加上分号后再编译。这时又提示有一变量未定义,发现是输入错误,改正后再编译,终于编译成功通过了。所以本程序在设计中并没有太大的逻辑上的错误,只是有一些语法上的错误,比如重复定义等,经过调试修改后,没有了语法上的错误,软件调试结束。5.3 软、硬件联合调试在硬件、软件部分都分别进行调试后,接下来就是在整个系统设计中非常重要的部分软、硬件联合调试部分。下面就来谈谈在软、硬件联合调试中所遇到的问题与其解决的方法。首先,将已经编译成功的软件程序下载到单片机AT89C52中,把片子放到最小系统板上去,同时将系统板与电脑连接提供电源,观测现象。电源接通后,发现LED数码管显示全亮,并且蜂鸣器一直响。把电源断开以便检查电路,又重复了一次硬件调试的过程,即又检测了一下系统中有没有落焊、错焊、短接以及断接等问题,再次检查后并无发现此类问题。然后再试着调试显示程序中给共阳数码管赋值的值,改变后把程序再下载到单片机上,数码管显示数值了,现在可以证明显示部分的焊接没有错误了。接着,测试超声波发射电路是否有40kHz的超声波脉冲信号,当用实验室的示波器观看波形时,把地线接到板子上的接地端,观看P1.0口的波形。一开始什么波形也没有,调试示波器上的频率,因为40kHz的脉冲信号周期很小,不容易观察,所以会有很多干扰,慢慢调整示波器上的频率后有脉冲了,但是干扰很大,波形也不正确。再次断开电源调试程序,这回发生超声波程序中不使用delay()函数延时,而用8个_nop_()语句,然后脉冲电平翻转一次,高低电平近似13us,得到一个40kHz的脉冲信号,为了避免在传播过程中超声波信号会有丢失,所以一次连续发射8个40kHz的脉冲信号,调试完程序后再编译,没有错误。把编译后的程序下载到单片机上,通电后再次观看P1.0输出波形,重复调试示波器的频率和赋值,最后能看到连续8个40kHz的脉冲串了,8个脉冲串的时间是0.2ms。再看超声波发射器T它两端的波形是否和P1.0口输出的波形是否一致,把夹子夹到超声波发射器T的正极,观看波形,也能看到连续8个40kHz的脉冲串,但是波形不是很规整。这是由于经过六反相器74LS04功率放大后的结果,由此可以证明超声波发生电路是正确的,超声波发生子程序也是正确的。然后,测试超声波接收电路是否能接收到回波。检测的方法是在程序中的接收到回波成功标致后加上一个语句,让发光二极管亮。如果有回波,发光二极管亮,反之,如果没有回波,发光二极管不点亮。当把程序下载后,发光二极管没有点亮,则说明没有超声波接收器R没有接收到回波。经反复思考以及检查,应该是超声波传感器没有工作的缘故,因为没有找到可以检测超声波传感器好坏的方法,所以就把超声波接收器R拆了下来,与其他同学在毕设中也应用到超声波传感器的同学借用了一下,经调试发现确实是超声波传感器的问题,接着替换了原有的超声波传感器后继续调试,这时发现数码管显示有反应了。拿了一本书用来当被测物体,但是当把书远离时,虽然数码管显示的数值有变化,但是与估算的距离差距很大。第一位即千位的数码管的值总变化,而第四位即个位的数码管的值总为零,后来想是不是连显示的位选线与单片机的P2口没有对应上,重新交换位选端口后,数码管显示的值和所估算的值很接近了。最后,显示的数值动态扫描时间太长了,我把程序中的延时时间调的小些,下载到单片机后,数码管显示距离清晰可见,移动平面物体距离,数码管也跟着变化。经实验发现,系统可以实现测距的功能。本系统经过反复测试,系统对测量范围0.510米内的平面物体做了多次测试,测距系统的最大误差不超过1cm,重复一致性很好。第6章 社会经济效益分析及产品性能价格比分析本次毕业设计的题目是基于单片机的测距系统设计。随着社会的飞速发展,科学技术也不断地进步,电子技术更是日新月异,因此,测距技术也不甘落后,出现了各种测距方法,如超声波测距法、红外线测距法和激光测距法等,其中激光测距又可分为脉冲式激光测距法和相位式激光测距法。不论是用哪种测距方法,都有它们的优点与缺点。例如超声波测距的优点就在于超声波的指向

    注意事项

    本文(基于单片机的测距系统设计.doc)为本站会员(韩长文)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开