《基于单片机超声波测距仪的设计毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机超声波测距仪的设计毕业论文.doc(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 扬 州 市 职 业 大 学毕 业 设 计论 文设计论文题目:基于单片机的超声波测距 仪的设计系 别:专 业:班 级:姓 名:学 号:指导教师:完成时间:目 录摘要41 绪论51.1 课题背景,目的和意义51.2现阶段本课题相关研究现状51.3 方案论证71.4本设计相关说明81.5基于单片机的超声波测距系统81.6硬件的设计91.7论文结构的设计101.8本章小结102 超声波测距仪的发射与接收系统112.1发射系统112.1.1超声波发射器122.1.2六位反向放大器74LS04122.1.3超声波发射电路设计122.2 接收系统132.2.1接收前置放大电路CX20216142.2.2
2、CX20216A的引脚注释142.2.3超声波接收电路设计152.3 发射与接收系统产品装配162.4本章小结163 信号的处理、控制与输出显示173.1 信号的处理与控制173.1.1 微处理器的介绍173.1.2微处理器AT89S52183.1.3 最小系统和复位电路193.2输出与显示203.2.1 LED数码管显示原理203.2.2 LED数码管驱动显示原理223.3信号的处理、控制与输出显示产品装配233.4本章小结244 系统软件的设计254.1超声波测距仪的算法设计254.2主程序254.3超声波发射子程序和超声波接收中断程序264.4.显示子程序274.5 本章小结285 电路
3、调试及误差分析285.1电路的调试285.2系统的误差分析295.2.1声速引起的误差295.2.2单片机时间分辨率的影响305.3 展望设计315.4本章小结31结 论32致 谢33附录35附录一 超声波测系统原理图35附录二 超声波测系统原理图安装图35附录三 超声波测系统原理图PCB图36附录四 超声波测距仪产品图36附录五 元器件清单37附录六 超声波测系统原理图C语言原程序37基于单片机的超声波测距仪摘要:超声波是指频率在20kHz以上的声波,它属于机械波的范畴。超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。正
4、是因为具有这些性质,使得超声波可以用于距离的测量中。随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。 本设计利用超声波在空气中的传播速度以及在发射器、障碍物和接收器之间传播的时间计算出障碍物的距离,通过一个四位的七段数码管显示出来。系统的设计主要包括两局部,即硬件电路和软件程序。硬件电路主要包括单片机电路、发射电路、接收电路、显示电路和复位电路等。硬件电路以AT89S52单片机为核心,并具有低本钱、微型化等特点。软件程序主要由主程序、预置子程序、发射子程序、接收子程序、显示子程序等模块组成。硬件电路和软件程序的有序配合,完善了整个超声波测距系统。关键词:AT89S52
5、,超声波,测距仪,硬件,软件1 绪论1.1 课题背景,目的和意义超声波测距是一种传统而实用的非接触测量方法,和激光、涡流和无线电测距方法相比,具有不受外界光及电磁场等因素的影响的优点,在比拟恶劣的环境中也具有一定的适应能力,且结构简单,本钱低,因此在工业控制、建筑测量、机器人定位方面得到了广泛的应用。但由于超声波传播声时难于精确捕捉,温度对声速的影响等原因,使得超声波测距的精度受到了很大的影响,限制了超声测距系统在测量精度要求更高的场合下的应用。距离是在不同的场合和控制中需要检测的一个参数,测距成为数据采集中要解决的一个问题。而由于超声波的速度相对光速小的多,其传播时间比拟容易检测,并且易于定
6、向发射,方向性好,强度好控制,因而人类采用仿真技能利用超声波测距。超声波测距是一种利用超声波特性、电子技术、光电开关相结合来实现非接触式距离测量的方法。因为它是非接触式的,所以它就能够在某些特定场合或环境比拟恶劣的情况下使用。比方要测量有毒或有腐蚀性化学物质的液面高度或高速公路上快速行驶汽车之间的距离。目前基于超声波测距的精度需求和盲区减小的需求也越来越大,如油库和水箱液面的精确测量和控制,物体内气孔大小的检测和机械内部损伤的检测等。本文结合超声波精确测距的需要,进行了系统的硬件和软件设计,分析了影响超声测距精确度的多种因素,来有效提高测距系统的精度。1.2现阶段本课题相关研究现状F.GALt
7、on在1876年进行了气哨实验,代表着人类第一次产生的高频声波。而我国于1956年开始超声的大规模研究。迄今,我国对超声已经广泛地在的各个领域得到开展和应用,特别要提出的是,其中一些工程能够与国际水平相接近。超声波测距与定位技术是关于声学以及仪器科学的综合性大学科,由超声波换能器、超声波发射和接收电路、控制电路等组成了利用超声波来测量距离值。目前在各个领域中都得到了使用,并取得了很好的成果。R.Kuc.提出了三维的仿生声纳系统,系统可以利用超声波自动的寻找被测目标物体。它共有五个超声传感器构成这个系统最主要的感知装置。发射超声波的换能器安装在十字架交叉点,有四个换能器用来接收超声波共分别安装在
8、十字架的边缘位置上。这样,被测目标的距离与方位能够依据空间几何关系就能算出。G.Bucci和C.Landi提出了一种对于输入超声波信号的功率谱算法,该算法利用了信号进行傅里叶变换后功率谱密度中所包含的信号特征确定回波的前沿,更加精确确实定渡越时间。F.Devand,G.Hayward和J.Soraghan受蝙蝠在夜空中捕食启发,提出了一种具有独特优点的自适应超声成像聚焦系统,对超声成像中图象畸变的消除有重要价值,提高超声图像的分辨率通过使用重叠的频率调制信号。此使用了不同频率的超声波。根本理论根底是使用时间和频率信息并且通过改良的算法来解决频域中的合成干预图,因此该超声成像系统在三维空间有高分
9、辨率的特点。国内一些学者也作了相关研究。同济大学设计了基于伪随机码的时延两步相关估计法。该方法采用PRBS(伪随机二进制信号序列)作为发送信号,通过求互相关函数确定传播时间,由此到达非常高的抗干扰能力。引入PRBS还节约了用于计算互相关函数通常所必需的乘法。此外还设想并实现了一个两步相关法以减少处理时间。借助于数学分析阐述了PRBS的生成,特点和参数选择。这些思路在测量装置上得以实现。通过用模拟的噪声信号进行的测试结果说明,测量装置具有很强的抗干扰能力。哈尔滨工业大学分为两次进行粗测距和精测距。粗测距先大概估测测距范围,具体的操作是先发送一串超声波,回波信号在控制器计算分析处理。根据处理的结果
10、设定尽可能合理的鉴幅阂值。精测距是在此根底之上控制器发送另一串超声波,按照在粗测距中设定的阂值,精测距中的回波前沿被捕捉,实现精确测距目的。目前,超声技术和扩频通信技术的结合在某些方面已经得到了应用。西北工业大学应用扩频原理设计了一种液位测量系统,可控声源被使用在其中。从国内外研究状况可以看出,影响超声波检测精度的因素是测量的超声波传输时间和超声波在介质中的传播速度。国内外的研究成果使得超声波检测的精度得到了提高,这些处理方法都得到了很好的效果。 由于超声波也是一种声波,其声速V与温度有关。在使用时,如果传播介质温度变化不大,那么可近似认为超声波速度在传播的过程中是根本不变的。如果对测距精度要
11、求很高,那么应通过温度补偿的方法对测量结果加以数值校正。声速确定后,只要测得超声波往返的时间,即可求得距离。1.3 方案论证方案一: CPLD实现CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件开展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其根本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆将代码传送到目标芯片中,实现设计的数字系统。由于此方法过于复杂,所以对于本课题不适合。方案二: 模拟电路实现结合
12、模拟电路的一些放大特性等来实现,其精确性比拟高,在一些电路中较常用,深的广阔用户的喜爱,功耗小,质量高,使用方便,但价格较贵,对本次设计不易,而且可靠性差,比拟复杂,控制不方便,所以此方法对于本课题不适合。方案三:数字电路实现通过数字电路的一些编码和解码特性来设计,但它的精确度不高,容易出现一些不良因数,识字电路虽然集成大于模拟电路但是控制还是不很方便。所以不适合本设计的要求。方案四: 单片机实现MCS-51系列单片机的推广应用进一步促进我国工业技术的改超以及其他的领域的技术更新,自动化,小型智能化方向迈进并且51系列为人们熟悉,市场占有高,开发系统多,单片机应用的重要意义还在于、它从根本上改
13、变了传统的控制系统设计思想和方法。原来必须由模拟电路,数字电路实现的大局部功能,现在已通过单片机由软件方法来实现了,因此超声波测距仪采用单片机为核心进行设计。方案的比拟:方案一的设计复杂,不易检查错误;方案二的设计不易控制;方案三的设计电路烦琐;所以单片机的以其电路简单,方便,本钱低等的优点,便于我们使用。本设计使用单片机实现。1.4本设计相关说明根据设计要求并综合各方面因素,可以采用AT89S52单片机作为主控制器,其中硬件局部主要由超声波发射和接收系统、信号控制和处理系统以及信号的输出和显示系统三个局部组成。采用AT89S52来实现对各个子模块的控制。单片机计数器乘以机器周期就是超声波所经
14、历的时间,再用时间乘以声速除以二就可以得到传感器与障碍物之间的距离,并将距离在数码管上予以显示。软件局部主要有主程序、超声波发生子程序、超声波接收中断程序及显示子程序。具体的硬件、软件设计细节,将在本文第二章、第三章和第四章中详细阐述。1.5基于单片机的超声波测距系统基于单片机的超声波测距系统,是利用单片机编程产生频率为38kHz的方波,经过发射驱动电路放大,使超声波传感器发射端震荡,发射超声波。超声波波经反射物反射回来后,由传感器接收端接收,再经接收电路放大、整形,控制单片机中断口。这种以单片机为核心的超声波测距系统通过单片机记录超声波发射的时间和收到反射波的时间。当收到超声波的反射波时,接
15、收电路输出端产生一个低电平,在单片机的外部中断源输入口产生一个中断请求信号,单片机响应外部中断请求,执行外部中断效劳子程序,读取时间差,计算距离,结果输出给数码管显示。利用单片机计时准确,测距精度高,而且单片机控制方便,计算简单。许多超声波测距系统都采用单片机控制的方法。最常用的超声测距的方法是回声探测法,本设计就使用这种方法。超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物面的距离S,
16、即:S=340t/2。 由于超声波也是一种声波,其声速V与温度有关。在使用时,如果传播介质温度变化不大,那么可近似认为超声波速度在传播的过程中是根本不变的。如果对测距精度要求很高,那么应通过温度补偿的方法对测量结果加以数值校正。声速确定后,只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的根本原理。如下列图所示:图1-1 超声波的测距原理超声波传播的距离为: 1.1式中:v超声波在介质中的传播速度; t超声波从发射到接收所需要的时间.其中,超声波的传播速度v在一定的温度下是一个常数(例如在温度时,V=349.2m/s); 1.2 所以,只要需要测量出超声波传播的时间t,就可以得出测量
17、的距离H1.6硬件的设计硬件电路的设计主要包括单片机系统及超声波发射与接收电路、单片机控制与处理电路以及输出与显示电路三局部构成。图1-2为硬件结构框图。图1-2硬件结构图1.7论文结构的设计仅通过以上介绍可能不能详细的阐述本设计的功能和设计思想,下面将从超声波测距仪的发射与接收、信号的控制和处理、信号的输出与显示以及程序等几个局部详细讲解。其中将附带系统框图或程序框图,从功能到结构详细介绍。1.8本章小结本章概要介绍超声波测距系统的软硬件的根本结构,超声波测距系统的前景和功用,对采用的方案进行了论证。通过介绍知道以单片机为核心的超声波测距系统设计简单、方便,而且测精度能到达工业要求。2 超声
18、波测距仪的发射与接收系统单片机给超声波发射系统提供驱动信号,发射系统产生38KHZ的超声波,此时单片机处于计数状态,当超声波遇到障碍物时返回,超声波接收器接收到回波,同时接收系统将给单片机一个低电平信号中断计数。从而计算出超声波传输的时间,通过单片机的处理计算出障碍物的距离并反应给显示电路显示。如图2-1所示。图2-1发射与接收结构框图2.1发射系统发射电路主要由超声波发射器、74LS04反向放大器和一些必要的电路构成,单片机产生的脉冲信号通过74LS04反向放大驱动超声波发射器发射38KHZ的超声波。如图2-2所示。图2-2发射系统结构框图2.1.1超声波发射器图2-3发射器实物 发射器的作
19、用是形成与被检测对象相作用的超声波束,它的特性包括共振频率、方向性、电声变换效率、稳定性等。按照应用领域的不同,超声波束可以是强方向性的、扇状的、无方向的形状,还有些发射器附带有调整层,以便发射器与媒质的音内阻抗相匹配。超声波发射器的驱动机构包括,反压电效应、电致伸缩效应、动电效应、电磁效应、磁致伸缩效应等,它恰好是上述超声波接收的相反作用,所以从结构上看,发射与接收呈一一对应的关系。2.1.2六位反向放大器74LS04 74LS04内部集成了六个反向器,同时具有放大的功能。74LS04的管脚如图2-4所示。 图2-4 HD74LS04内部结构2.1.3超声波发射电路设计如图2-5所示。发射电
20、路主要由反相器74LS04和超声波发射器T构成,单片机P3.1端口输出的38kHz的方波信号一路经一级反向器后送到超声波发射器的一个电极,另一路经两级反向器后送到超声波发射器的另一个电极,用这种推换形式将方波信号加到超声波发射器的两端,可以提高超声波的发射强度。输出端采两个反向器并联,用以提高驱动能力。上位电阻R4、R5一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加超声波发射器的阻尼效果,缩短其自由振荡时间。图2-5超声波发射电路原理图压电式超声波发射器是利用压电晶体的谐振来工作的,超声波发射器内部有两个压电晶片和一个换能板。当它的两极外加脉冲信号,其频率等于压电晶片的
21、固有振荡频率时,压电晶片会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极问未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器。超声波发射器与接收器在结构上稍有不同,使用时应分清器件上的标志。2.2 接收系统超声波接收电路由超声波接器、CX20106A红外线遥控接收前置放大电路和一些必要的电路构成,反射回来的回波由超声波接收器捕捉,然后通过CX20106A的放大反应给单片机终止计数器计数。图2-6接收局部结构框图2.2.1接收前置放大电路CX20216 CX20106A红外线遥控接收前置放大电路,多适用于电
22、视机。内部电路由前置放大器,自动偏置电平控制电路ABLC、限幅放大器、带通滤波器、峰值检波器和波形整形电路等组成。CX20106A是CX20216的改良型,二者之间的主要差异在于电参数略有不同。CX20106A也同样适用于超声波测试,主要频率在38KHZ41KHZ,在超声波应用中通常选取38KHZ。2.2.2 CX20106A的引脚注释l脚:超声波信号输入端,该脚的输入阻抗约为40k。2脚:该脚与GND之间连接RC串联网络,它们是负反应串联网络的一个组成局部,改变它们的数值能改变前置放大器的增益和频率特性。增大电阻R或减小C,将使负反应量增大,放大倍数下降,反之那么放大倍数增大。但C的改变会影
23、响到频率特性,一般在实际使用中不必改动,推荐选用参数为R=4.7,C=3.3F。3脚:该脚与GND之间连接检波电容,电容量大为平均值检波,瞬间相应灵敏度低;假设容量小,那么为峰值检波,瞬间相应灵敏度高,但检波输出的脉冲宽度变动大,易造成误动作,推荐参数为3.3F。4脚:接地端。5脚:该脚与电源端VCC接入一个电阻,用以设置带通滤波器的中心频率,阻值越大,中心频率越低。例如,取R=200k时,42kHz,假设取R=220k,那么中心频率38kHz。6脚:该脚与GND之间接入一个积分电容,标准值为330pF,如果该电容取得太大,会使探测距离变短。7脚:遥控命令输出端,它是集电极开路的输出方式,因此
24、该引脚必须接上一个上拉电阻到电源端,该电阻推荐阻值为22k,没有接收信号时该端输出为高电平,有信号时那么会下降。8脚:电源正极,4.5V5V。2.2.3超声波接收电路设计T40K发射的超声波在空气中传播,遇到障碍物就会返回,返回的局部有超声波接收器接收。超声波接收局部是为了将反射波(回波)顺利接收到,超声波接收换能器R40K将接收到的反射波转换变成电信号,并对此电信号进行放大、滤波、整形等处理后得到一个低电平送给单片机的3.2(INT0)引脚,以产生一个中断。在这里我采用的是集成电路CX20106A,这是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38
25、KHz与测距超声波频率40KHz较为接近,可以利用它作为超声波检测电路。实验证明其具有很高的灵敏度和较强的抗干扰能力。超声波接收电路如下所示:图2-7超声波接收电路2.3 发射与接收系统产品装配综上所述,制作PCB板,装配实物,实物图如图2-8.图2-8 发射与接收系统实物图2.4本章小结本章先系统介绍发射系统,从结构功能入手并简要介绍了发射器和74LS04反向放大器;根据原理图详细介绍发射系统的功能结构,信号的具体走向。介绍完发射系统用相同的方式介绍了接收系统,因为接收器和发射器结构完全相同也就没在介绍,其中重要元器件为CX20106A红外线遥控接收前置放大电路,接收的信号因为有一定的损失,
26、所以将接收到的信号放大再送入单片机。3 信号的处理、控制与输出显示3.1 信号的处理与控制本设计采用12MHZ晶振,通过振荡电路驱动单片机工作,单片机将12MHZ的频率分频为超声波发射器能够使用的频率为38KHZ的脉冲信号通过P3.1脚发射出去,且单片机计数器计数,接收系统的接收到回波信号后,输出单片机P3.2脚,单片机通过读取P3.2脚信号并停止计数。单片机通过计数个数先计算出超声波传送的时间,再通过声速计算出接收器与障碍物的距离。如果接收电路在定时器没有记完的时候要加上没有计完的局部。电源电路向单片机提供工作电压,当程序出错时复位电路可以让程序回到第一条程序进行执行,当我们按下开关按钮的时
27、候产生发射信号,开关弹起结束发射信号。图3-1信号的处理与控制结构框图3.1.1 微处理器的介绍对于信号的处理将使用一块AT89S52单片机,单片微型计算机简称单片机,特别适用于控制领域,故又称为微控制器(Microcontroller)。单片微型计算机是微型计算机的一个重要分支,也是一种非常活泼且颇具生命力的机种。通常,单片机由单块集成电路芯片构成,内部包含有计算机的根本功能部件:CPU(Central Processing Unit,中央处理器)、存储器和I/O接口电路等。因此,单片机只需要与适当的软件及外部设备相结合,便可成为一个单片机控制系统。3.1.2微处理器AT89S52AT89S
28、52简介:AT89S52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程 Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口
29、, 片内晶振及时钟电路。另外,AT89S52可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。图3-2 AT89S52引脚分布图AT89S52芯片共40引脚:18脚: 通用I/O接口p1.0p1.79脚:RST复位键10 11脚:RXD串口输入 TXD串口输出1219:I/O p3接口 (12,13脚 INT0中断0 INT1中断11415 : 计数脉冲T0 T1 16,17: WR写控制 RD读控制输出端)18
30、19: 晶振谐振器 20 地线2128 p2 接口 高8位地址总线29: psen 片外rom选通端 单片机对片外rom操作时 29脚(psen)输出低电平30:ALE/PROG 地址锁存器31:EA/ROM取指令控制器 高电平片内取 低电平片外取3239:p0.7p0.040:电源+5V3.1.3 最小系统和复位电路单片机正常工作时,需要一个时钟电路和一个复位电路来构成单片机的最小系统。时钟电路用于产生单片机工作时所需的时钟信号,其有两种时钟方式:外部时钟和内部时钟。外部始终是使用外部振荡脉冲信号,常用于多片单片机同时工作,以便于同步。本设计使用12MHZ晶振,采用外部时钟方式,AT89S5
31、2内部有一个可控制的负反应反向大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与反应元件的片外石英晶体或陶瓷谐振器构成一个自激振荡器。外接晶体以及电容C1和C2构成并联谐振电路,接在放大器的反应回路中。对外接电容值虽然没有严格的要求,但是电容的大小多少会影响振荡器频率的上下、震荡器的稳定性、快速性以及温度稳定性。出于对测距精度的考虑,本设计采用12MHZ的晶体振荡器,c1和c2的电容值约为30PF。复位是单片机的初始化操作,只要RST引脚出至少保持两个机器周期的高电平就可以实现复位。在RST端出现高电平后的第二个周期,执行内部复位,以后每个周期重复一次,直至RST端变
32、低。单片机的复位电路有两种:上电复位和手动复位。本设计采用手动复位方式。当按下复位按钮时,电容迅速放电,使RST端迅速变为高电平,复位按钮松开后,电容通过电阻充电,逐渐使RST端恢复低电平。3.2输出与显示本系统采用三位一体L E D 数码管显示所测距离值,码管采用动态扫描显示,段码输出端口为单片机的P0口,分别接数码管ag和SP端,位码输出端口分别为单片机的P1.0、P1.1、P1.2、P1.3口,数码管位驱运用PNP三极管S9012三极管驱动图3-3 输出与显示结构框图3.2.1 LED数码管显示原理LED数码管是通过点亮不同的段码组合来显示数字和字母的。外观如下列图3-4所示。LED数码
33、管从结构上可分为共阳极和共阴极两种类型。结构如图3-5,3-6所示,从图3-5和图3-6中我们可以看到共阳极和共阴极数码管的唯一区别在于公共端的极性不同,但两者的显示原理是相同的。共阴极和共阳极数码管内部都集成了8个LED发光管,这8个LED发光管分别表示段码值:A,B,C,D,E,F,G,DP。当对应的LED发光管被点亮时,对应的段码值就会亮起来,通过点亮不同的段码组合,来显示不同的数字和字母来。具体的对应关系见图3-7(共阳极LED数码管段码表)。图3-4 LED数码管外观图 图3-5 共阳极LED数码管内部结构图 图3-6 共阴极LED数码管内部结构图图3-7 LED数码管共阳字型段码表
34、3.2.2 LED数码管驱动显示原理要想让LED数码管正确的显示数据,首先要了解一下LED数码管的驱动显示原理。在单片机系统中,LED数码管的驱动方式主要有动态显示和静态显示两种类型,每种类型的驱动电路各部相同。本设计使用LED动态显示,动态显示的原理就是,把所有LED数码管相同的段码连在一起,作为数据总线,连接至单片机的I/O端口上,每个LED数码管的公共端单独留出来,作为区分LED数码管的地址线,分别连接到单片机的I/O端口上,在某一时刻,单片机发送要显示的数据到LED数码管的数据总线上,同一时刻接通需要显示数据的数码管的公共端,这样对应的数码管就亮了,而没有选通公共端的数码管,虽然数据端
35、上有数据存在,但是公共端未接通,形不成通路,所以段码就不会亮。这样就把要显示的数据和数码管的位置就对上了,总体一句话,把待显数据放在数据总线上,同时接通某一数码管的公共端,点亮数码管后,延时一定时间一般5-10ms左右,然后断开刚刚数码管的公共端;再向数据总线发送下一组数据,接通另一个数码管的公共端,再延时一定时间,断开数码管的公共端;用同样方法使所有的数码管都显示一遍,然后从头开始循环扫描下去,只要每个数码管在每秒内能够显示25次以上,我们看到的显示效果就是稳定的数值。这就是数码管的动态扫描驱动方式。例如:如测得距离为123.4CM,根据上图段码表可查,P0口发送的码序为:11111001,
36、10100100,00110000,10011001;对应时刻P1口发送01111111,10111111,11011111,11101111.通过动态扫描进行显示,值得注意第三个段码首位为0是因为要点亮其中的小数点。图3-8 LED数码显示电路图3.3信号的处理、控制与输出显示产品装配综上所述,制作PCB板,装配产品,如图3-9.图3-9信号的处理、控制与输出显示产品图3.4本章小结本章详细介绍了超声波测距仪的控制处理和输出显示,控制和处理局部简单的介绍了单片机原理和本设计使用的AT89352单片机,详细介绍了控制和处理的设计思想和原理,结合原理图分析电路。输出和显示局部介绍了LED的显示的
37、原理,并详细介绍了本设计使用的共阳显示原理和电路,结合原理图介绍了显示输出电路。4 系统软件的设计超声波测距仪的软件设计主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程序组成。我们知道C语言程序有利于实现较复杂的算法,汇编语言程序那么具有较高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序既有较复杂的计算计算距离时,又要求精细计算程序运行时间超声波测距时,所以控制程序可采用C语言。 4.1超声波测距仪的算法设计 超声波测距的原理,即超声波发生器T在某一时刻发出的一个超声波信号,当超声波遇到被测物体后反射回来,就被超声波接收器R所接受。这样只要计算出发生信号到接受返回信号所用
38、的时间,就可算出超声波发生器与反射物体的距离。距离计算公式:d=s/2=(c*t)/2*d为被测物与测距器的距离,s为声波的来回路程,c为声速,t为声波来回所用的时间,在一定的温度下V取331.4m/s。4.2主程序 主程序框图如下列图所示:图4-1 主程序框图主程序首先对系统环境初始化,设置定时器T0工作模式为8位的定时计数器模式,置位总中断允许位EA并给显示端口P0分别为0XC0,0XF9,0XA4以及0XB0,让数码管显示0123。然后开始计数并调用超声波发生子程序送出一个或多个超声波脉冲,最后翻开外中断0接收返回的超声波信号。由于采用12MHz的晶振,机器周期为1us,当主程序检测到接
39、收成功的标志位后,将计数器T0中的数即超声波来回所用的时间按下式计算即可测得被测物体与测距仪之间的距离,设计时取20时的声速C为331.4m/s那么有: d=(C*ttime)/2=16570*ttime/1000000cm其中ttime为发送的脉冲时间 测出距离后结果将以十进制BCD码方式LED,然后去除标志位mark和发超声波脉冲重复测量过程。4.3超声波发射子程序和超声波接收中断程序 超声波发射子程序的作用是通过P3.1端口发送超声波发射控制脉冲信号,同时把计数器T0翻开进行计时。超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号INT0引脚出现低电平),立即进入
40、中断程序。进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。根据下面公式可得发送脉冲到接受脉冲的时间ttime:ttime=time*100+TL0-206;其中time是脉冲的个数超声波发送程序:图4-2超声波发送程序超声波接受终端程序:图4-3超声波接受终端程序4.4.显示子程序 本系统的LED显示采用了动态显示方式,定义一组数组:uchar code tab10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;这是共阳LED显示从0到9的字形码。7位数码管显示框图:4.5 本章小结本章先介绍主程序,结合框图介绍算法;然
41、后将主程序分为发射子程序,接收子程序和显示子程序。发射超声波的同时单片机开始计数,接收到回波后利用外中断0结束计数,按照前面控制和处理局部算法计算出距离,然后通过显示子程序调用字形码显示在LED上。5 电路调试及误差分析5.1电路的调试通过屡次实验,对电路各局部进行了测量、调试和分析。首先测试发射电路对信号放大的倍数,先用信号源给发射电路输入端一个38kHz的方波信号,峰-峰值为3.8V。经过发射电路后,其信号峰-峰值放大到10V左右。38kHz的方波驱动超声波发射头发射超声波,经反射后由超声波接收头接收到38kHz的正弦波,由于声波在空气中传播时衰减,所以接收到的波形幅值较低,经接收电路放大
42、,整形,最后输出一负跳变,在单片机的外部中断源输入端产生一个中断请求信号。该测距电路的38kHz方波由单片机编程产生,方波的周期为1/38ms,即25s,半周期为12.5s。每隔半周期时间,让方波输出脚的电平取反,便可产生40kHz方波。由于12M晶振的单片机的时间分辨率是1s,所以只能产生半周期为12s或13s的方波信号,频率分别为41.67kHz和38.46kHz。本系统在编程时选用了后者,让单片机产生约38.46kHz的方波。5.2系统的误差分析5.2.1声速引起的误差声波是媒质中传播的质点的位置、压强和密度对相应静止值的扰动。高于20kHz 时的机械波称为超声波,媒质包括气体、液体和固
43、体。流体中的声波常称为压缩波或压强波,对一般流体媒质而言,声波是一种纵波,传播速度为 (5-1)式(5-1)中E为媒质的弹性模量,单位kg/mm2;为媒质的密度,单位kg/mm3;E 为复数,其虚数局部代表损耗; c也是复数,其实数局部代表传播速度,虚数局部那么与衰减常数(每单位距离强度或幅度的衰减)有关,测量后者可求得媒质中的损耗。声波的传播与媒质的弹性模量密度、内耗以及形状大小(产生折射、反射、衍射等)有关。从式(5-1)可知,声波传输速度与媒介的弹性模量和密度相关,因此,利用声速测量距离,就要考虑这些因素对声速影响。在气体中,压强、温度、湿度等因素会引起密度变化,气体中声速主要受密度影响
44、,液体的深度、温度等因素会引起密度变化,固体中弹性模量对声速影响较密度影响更大,一般超声波在固体中传播速度最快,液体次之,在气体中的传播速度最慢。气体中声速受温度的影响最大。声速受温度的影响为 (5-2)图5-1根据上式测量的温度-声速图。图5-1 空气中温度-声速图由式(5-2)和图6-1可见,当温度从040变化时,将会产生7%的声速变化,因此,为了提高测量准确度,计算时必须根据温度进行声速修正。工业测量中,一般用公式计算超声波在空气中的传播速度,即 (5-3)5.2.2单片机时间分辨率的影响不管是查询发射波与回波,还是由其触发单片机中断再通过软件启停定时器,都需要一定的时候,中断的方式误差
45、相对要小一些。相对而言,单片机的时间分辨率还是不太高,如晶振频率为12MHz时,时间分辨率为1s。由于测量过程中的随机误差是按统计规律变化的,为了减少其影响,可在同一位置处屡次重复测量xi,然后取平均值x作为测量的真值。提高测距精度的方法上节分析了超声波测距系统误差产生的一些原因,如何提高测量精度是超声测距的关键技术。其提高测距精度的措施如下:1. 合理选择超声波工作频率、脉宽及脉冲发射周期。据经验,超声测距的工作频率选择38kHz较为适宜;发射脉宽一般应大于填充波周期的10 倍以上,考虑换能器通频带及抑制噪声的能力,选择发射脉宽1ms;脉冲发射周期的选择主要考虑微机处理数据的速度,速度快,脉
46、冲发射周期可选短些。2. 在超声波接收回路中串入增益调节(AGC)及自动增益负反应控制环节。因超声接收波的幅值随传播距离的增大呈指数规律衰减,所以采用AGC电路使放大倍数随测距距离的增大呈指数规律增加的电路,使接收器波形的幅值不随测量距离的变化而大幅度的变化,采用电流负反应环节能使接收波形更加稳定。3. 提高计时精度,减少时间量化误差。如采用芯片计时器,计时器的计数频率越高,那么时间量化误差造成的测距误差就越小。例如:单片机内置计时器的计数频率只有晶振频率的十二分之一,当晶振频率6MHz时,计数频率为0.5MHz,此时在空气中的测距时间量化误差为0.68mm;当晶振频率为12MHz时,计数频率为1MHz,此时测距时间量化误差为0.34mm。假设采用外部硬件计时电路,那么计数频率可直接引用单片机的晶振频率,时间量化误差更小。5.3 展望设计由于以上误差的影响,可能直接影响本设计测量精度。为了方