基于单片机的测距系统论文正式稿_第1页
基于单片机的测距系统论文正式稿_第2页
基于单片机的测距系统论文正式稿_第3页
基于单片机的测距系统论文正式稿_第4页
基于单片机的测距系统论文正式稿_第5页
免费预览已结束,剩余48页可下载查看

下载本文档

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

文档简介

超益大学基于单片机的测距报警系统作者姓名:专业名称:指导教师:讲师摘要STC89C52是STC系列单片机中使用最为广泛的一款8位CPU单片机,它也是STC公司自主推出的一种低功耗、高性能的CMOS8位的MCU。此款单片机在目前的工业控制等领域占据半壁江山的位置,另外它也以其开发简便和容易上手等特点受到了广大在校学生和电子设计爱好者的好评。本次基于单片机的测距系统设计主要是采用STC89C52单片机、蜂鸣器、4个7段数码管、控制按键和超声波传感器来完成本次测距报警系统的设计,其中STC89C52为系统设计的主控芯片,传感器发出超声波经被测物体表面反射回来,通过声音在空气的传播速度将前方物体的距离探测出来,然后单片机根据发出到接受超声波的来回时间来进行处理运算,通过公式的计算值与自身设定的报警阈值进行比较后,如果计算值小于设定阀值,那么单片机将驱动蜂鸣器发声报警,以此来达到测距报警的目的。关键词:超声波传感器单片机STC89C52AbstractSTC89C52isoneofthemostwidelyuseditemsonSTCseriessingle-chip8-bitCPUsinglechipmicrocomputer,itisindependentonSTCcompanylaunchedalow-power,high-performanceCMOS8bitMCU.Atpresentinthefieldofautomaticcontrolandsoonlowcostrequirementsoftheindustryenjoysahighvalue,withitsdevelopmentcharacteristicssuchassimpleandeasytousebythewellreceivedbythemajorityofstudentsandelectronicdesignenthusiasts.TherangingsystemdesignbasedonsinglechipmicrocomputerismainlyadoptstheSTC89C52microcontroller,buzzer,foursevensegmentdigitaltube,controlkeysandthedesignoftheultrasonicsensortocompletetherangealarmsystem,includingSTC89C52forthesystemdesignofthemaincontrolchip,ultrasonicsensorbythemeasuredsurfaceobjects,throughthespeedofsoundinairwillforwardthedistanceoftheobjectdetection,thensingle-chipmicrocomputeraccordingtosendtoacceptultrasonictimeforhandlingoperations,backandforththroughtheformulaofcalculatingvaluescomparedwiththeirownsetofalarmthreshold,ifthecalculatedvalueislessthanthesettingthreshold,thentheMCUwilldrivebuzzersoundalarm,inordertoachievethegoalofrangealarm.Keywords:UltrasonicTransducer,Microcontrollers,STC89C52目录TOC\o"1-5"\h\z基于单片机的测距报警系统I.摘要I...AbstractII目录LII前言5.1绪论6.课题意义6.超声波测距技术的国内外现状.7超声波测距技术的主要发展趋势72总体设计方案.9.2.1总体方案设计.9.3硬件实现及单元电路设计11主控制模块11单片机简介.12超声波测距模块1.3超声波的特性14超声波换能器16超声波传感器原理1.8测距分析22时钟电路部分24复位电路部分24声音报警电路部分25显示模块部分264软件系统设计27编译软件27主程序工作流程图27部分重要程序代码分析30数码管显示程序30超声波测距程序30总结32参考文献33致谢34附件1原理图35附件2程序彳t码36刖百在恶劣环境下测量距离一直困扰着施工人员,传统的测距方法必然满足不了需求,其中在较恶劣和复杂的工作条件下存在着很多的问题,导致不能够测量所需要的距离指标。采取超声波技术(发射到反射的时间测算)来测距离具有无线性、维护简单、开发简单以及结构简单等许多性能优良等优点,彻底解决了陈旧传统的接触式的测量办法所带来的测量存在的问题。在当今科技发展迅速的今天,我们就应该摒弃旧的不良的技术手段,去追求可以替代的新技术,超声波测距技术就实现了应有的高效率、测距的分辨率高、方向性强、适用范围广和可应用到恶劣的工作环境中,另外其几乎不受光线、烟雾、电磁干扰等因素的影响。另外在各行业中,超声波测距设备的使用在移动机器人避障、工业控制、家庭防盗报警、三维精确定位、倒车雷达、建筑施工行业、曲面形仿检测等领域得到了广泛的应用。1绪论课题意义近年来,单片机控制计算等技术的迅猛发展,并广泛应用于各个领域,给如今各行各业打好了基础。并且用超声波来精确测量距离成为了可能。单片机的普遍使用使得可以制作各种工业上的自动控制系统和精密的数据采集系统等。这样为超声波测距系统制作提供了良好的控制器。如今,电子行业的发展如火如荼,随着大量的市场需要使得电子元件的采购价格逐年降低,而且超声波测量本身的精确度高,而且它的工作也比较稳定,因此备受青睐。这里我们采用的也是一种仿生学,这里仿的便是生活在黑暗环境的蝙蝠。我们知道蝙蝠是没有眼睛的。那么蝙蝠又是怎样来判断物体的位置呢?这里便是利用他们的本能来抵抗和捕捉猎物生存的,这样一种手段其实就是靠动物体自身来发射一些不能够被异己所听到的超声波,通过超声波在介质中的发射和反射来定位的,自超声波发生时计时到由待捕捉的猎物或者障碍物发生反射和折射现象回来的时间问隔长短和通过障碍物或猎物反射的超声波的强弱判断猎物的性质或障碍位置的方法。传统的测距系统基本上都是基于数字、模拟电路组合而成的测距电路,这样给自身调试带来了困难,另外电路的复杂性高且可靠性也没有保障,再如进入复杂的作用环境来测量也存在难以克服的缺陷。上述实际情况给测量工作造成很大的不便,因此如果利用超声波的发射和接收的独特方式来测量距离就可以较好的解决这些难题。但是超声波测距系统可以运用一些简单的电路来搭建就可完成,再通过软件的程序编写来控制超声波的发射和接受时间的测量和运算,使整个系统的复杂程度大大降低了,另外有很好的系统保障。随着科技水平的不断提高,测距也演化了多种方式,比如红外线、微波、激光等等测量方式,但是超声波测距技术却被大众使用的较为广泛。它的优点如简单可行、造价低,省力,携带方便、小巧、操作方便等优点。利用超声波检测易于实现实时控制等诸多优点,使得在工业控制和测量方面有了独有的优势指,因此为移动机器人的行走提供了又一双眼睛,机器人通过自身的超声波传感器来探测前方范围内的障碍物距离来壁障,很好的解决了问题,如果安装多个测距系统即可及时获取距自身所在坐标位置,并为其自身自动行走壁障提供依据。由在机器人上的应用,使得其在工业控制研究领域上得到了广泛的应用。同时通过以上为机器人壁障的模式移植到汽车的倒车雷达上,为汽车雷达的研制提供了优秀的想法。超声波测距技术的国内外现状在基于传统的测距存在不可克服的缺陷同时,出现了大量的无线测距仪器设备。目前,无线测量距离的方法大多都是采用测量波在介质中传播速度与时间的关系来确定距离。目前,我知道的的无线测距方法有红外线测距、雷达测距、激光测距等。其中,红外线探测具有使用方便、传播速度快等特点,但红外线存在一定安全性。再就是雷达测距,它具有24小时不间断工作的特点,另外更加适合于在恶劣环境中进行短距离、高精度测距的优点,但容易受小时不间断工作特性,可短距离测量等优点,但是雷达本身容易被电磁波干扰,造成误差。激光测距,它具有较强的方向性、高度的单色性、高亮度、传播速度快、抗干扰能力强、具有一定的穿透能力等系列优点,但其成本较高和程序的数据处理复杂等劣势凸显。通过以上几种测距方式的种种对比,超声波测距可以直接测量多方向的物体距离,并且纵向分辨率较高,适用环境多种多样,例如其不受光线、烟雾、电磁波的强干扰等优点。目前,超声波测距已经普遍应用到人们的日常生活中,例如扫地机器人、倒车雷达、手持测距仪等多种产品中,使得其应用前景十分广阔。超声波测距技术的主要发展趋势目前采用超声波来测量地球大气中的地面距离和超声波回波信号处理方法,已经成为了近代电子技术发展必须解决的棘手问题,因为超声波测距技术本身是一种无线的检测技术,它是不会受到光线和被测对象自身颜色改变等的影响,另外在较恶劣的环境(例如下雨、电磁波或者雾霾粉尘等)具有一定的适应能力。因此,这样的测量技术用途极度广泛。现如今汽车上的倒车雷达、实地勘测、国家测绘的测绘地形图、桥梁、道路、隧道、油井等,省力、操作方便。在目前的研究领域,随着超声波的回波信号处理技术的持续发展,如何研发出更多的测距应用空间,拓宽超声波测距技术的超声波换能器已经成为国内学者关心和开发的重点。现阶段,国内一些该领域的专家对新型超声换能器制作材料以及超声波的发生机理创新等方面的研究没有太大的起色,但是该领域的专家在对新型超声波换能器进行研究上有了一些具体的优化成功,如发射电路的简化、发射功频率的控制和探测距离的提高等过程就有了较大的成功,值得祝贺。虽然现阶段市场上已有成熟的测距系统,它的测量精度和可靠性也是值得认可的,但是任然存在诸多问题,比如在利用高频率的超声波发射的时候,就会因为空气大量的吸收而产生衰减,使得远距离的测量失去了作用;但是如果降低发射频率,来提高测量距离,测距的绝对误差又会增大。这样的情况就制约了超声波测距的发展领域。近几年,怎样明智的选择超声波的发射脉冲,能够让测距系统在提高精度和抗干扰能力的同时又能够提高有效测量距离成了一个新的重要的研究方向。2总体设计方案2.1总体方案设计单片机的测距系统包括硬件和软件两个重要的部分。其中硬件部分超声波发射回传模块、蜂鸣器报警模块、四位段数码管显示模块和独立按键模块。其中电路部分又分为:蜂鸣器报警电路、按键电路、单片机最小系统电路(含晶振电路、复位电路)、超声波发射回传传感器电路(模块)。在此系统中,单片机部分必然是系统设计的核心单元,因此要让系统发挥其预期的测量效果,就必须设计好最小系统。单片机最小系统也是有硬件和软件组成。其中硬件部分包括单片机STC89C52、输入和输出设备、搭配的外围应用电路等组成的单片机最小系统,这里的软件程序即是值系统的各种工作程序的总称。该单片机测距系统的全套设计开发过程包括系统的总体方案设计、硬件设计、软件设计、硬件焊接等几个阶段。该基于单片机(Microcontrollers)的测距系统采用的是STC公司的STC89C52单片机作为该系统的CCBB(核心控制单元),通过向超声波传感器做出操作,使得得到系列数据。单片机会将测得的距离数据与其程序设定的值作比较进行处理,当测得的距离小于设定值时,则控制单片机主控芯片向蜂鸣器做出报警指令使其发出蜂鸣声报警。系统总体的设计方框图如图2.1所示(见下一页)。电源超声波传感器模块蜂鸣器报警模块STC主控制器模块39C524电源超声波传感器模块蜂鸣器报警模块STC主控制器模块39C524位7段数码管显示模块图2.1系统方框图此系统的超声波模块的输入控制引脚由单片机ST89C52编程产生10us以上的高电平,就可以在传感器的接收引脚口等待高电平输出。当传感器模块的接收引脚一旦有高电平输出时,即传感器模块中经过放大电路,驱动超声波模块发射超声波。从传感器发射超声波到接收回传的超声波过程中,传感器的接收引脚一直是高电平输出。当超声波模块的发射头发射出去超声波,经过人体或障碍物体反射回来,再经超声波的接收头接收信号,信号通过模块自身接收电路的快速处理,经过传感器模块处理完成后就将刚刚一直置高的接收引脚口置为低电平,单片机利用定时器来计算从发送到接收的时间值,再通过声波的传播速度来计算出障碍物的距离,并通过4位7段数码管显示出来。3硬件实现及单元电路设计基于单片机测距系统设计过程中,考虑到系统设计的成本、可靠性、实用性、携带方便等方面。硬件设计如下:主控制模块主控制最小系统电路如图3.1所示图3.1最小系统硬件电路总设计见图3.2,从以上的总体方案设计中分析可知,构成本系统设计需如下器件:STC89C52单片机、超声波传感器、直插式独立按键、四位7段数码管、LED直插式灯、蜂鸣器等一些单片机外围应用电路。其中U1即为单片机,DS1为数码管,P1是传感器的位置,SW1为电源开关,B1是蜂鸣器。电路设计中用到3个独立按键,一个是设定键(用于报警距离值得设定),一个加键(设定距离值加大),一个减键(设定距离值减小)。

b.shh图3.2总设计电路图b.shh图3.2总设计电路图单片机简介STC89C52单片机是STC系列单片机中使用最为广泛的一款8位CPU单片机,它也是STC公司自主推出的一种低功耗、高性能的CMOS8位的MCU,并且拥有8K的可编程Flash存储器。STC89C52单片机使用经典的MCS-51内核,但是这款单片机比传统的51单片机有了较多的改进,使得具有一些传统51不具备的功能。这样以来STC89C52单片机为众多嵌入式控制领域的开发人员提供了高灵活性和超有效的解决方案。(1)标准功能89C52拥有以下功能:8k字节的可编程Flash,512字节RAM,32位I/O输入输出口,看门3^定时器,内置4KBEEPROM可用于数据的断电存储,单片机复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构,一组全双工用行口。单片机工作在空闲模式时,CPU将停止工作,但是单片机允许RAM、定时器/计数器、串口、中断继续工作,这样能够保证处理一切突发状况。掉电保护方式下,单片机将保存RAM中的内容,晶体振荡器也将被冻结并停止工作,则单片机也停止一切工作,直到下一个中断或硬件复位为止。(2)主要特性如下:8K字节程序存储空间;512字节数据存储空间;内带4K字节EEPROM存储空间;可直接使用用口下载;超声波测距模块本系统中使用的超声波测距模块使用集成的HC—SR04超声波模块,省去了自己设计和硬件调试的麻烦。该超声波测距模块采用无线距离感测,可用来测量2cm-500cm的直线距离,测量距离的精度可达到3mm0该超声波测距模块包括超声波的发射器和超声波的接收器以及控制电路。该模块基本的工作原理为:TRIG引脚用于测距的触发,具体触发为给该IO□不低于10个微秒的高电平信号;触发后模块将自动发送8个40khz的方波,发送同时IO口ECHO将自动检测是否有高电平信号输出;有信号返回时,通过IO口ECHO输出一个高电平,我们只需检测高电平持续的时间就可以计算出超声波从发射到返回的时间。另外可以计算出距离=(高电平持续时间*声速(340M/S))/2。超声波模块实物图如下图32模块中有4个引脚,VCC引脚为模块5V电源,GND引脚为模块地线,TRIG引脚为模块的超声波发射触发控制信号输入,ECHO引脚为模块的回响信号。

图3.2超声波模块实物图超声波测距程序中测试功能主要由两个函数完成。程序编写中,采用定时器0,中断号为1进行定时测量,8分频,定时器0的预设值为0XCE,当定时器0溢出中断发生2500次时为125ms,计算公式如下所示(单位:ms):T=(定时器0溢出次数*(0XFF-0XCE))/1000其中定时器0初值计算依据分频不同而有差异。超声波的特性声音与人类生活是一种紧密相关的不可缺少的自然现象。实验表明,人类只有在特定的听觉频率范围内才能听到声音,超出该频率范围人们将会察觉不到声音的存在。一般超过20000赫兹时,称之为“超声”。如下图3.3为人耳听觉范围。310,」310,」.4%里心_.,一匕图3.3人的听觉范围超声波的特性有:(1)束射特性我们知道光线具有反射、折射和聚焦等光学的几何定律,并且具有波粒二象性。超声波的波长短,且也是波,同样遵守几何学上的所有定律。也即遵守超声波发射到一种物质表面时,它的入射角等于反射角,跟光线一样,当超声波射向一种物质进入另一种密度不同的物质时就会产生折射现象,这样也就有一个临界角度。这样也就改变了它的原有传播方向,由光的传播特性知道,两种物质的密度差愈大,则折射率也愈大,改变原路径的概率也就增大。(2)吸收特性在日常生活中,我们知道声音只有在介质中才能传播。另外在传播中必然会有衰减,在介质中传播时,随着传播的距离越来越远,其声音强度也随距离的增加越来越低,直到消失。这是由于介质会吸收声波的部分能量。当然在同一种的介质中,声波的频率越高,那么其被吸收的强度就越大。实验表明,固定频率的声波在气体介质中传播时被吸收的最强,在液体介质中传播吸收强度次之,在固体介质中传播时吸收强度最小。(3)超声波的能量传递特性目前超声波的使用在各行业都比较广泛,这里超声波的主要优点是自身的功率大,比声波大得多。这里为什么说超声波的功率大,主要原因还是在于其发射频率高。当声波进入介质中,由于声波的作用使得其介质中的物质分子也随之振动起来,物质分子的振动频率和进入介质的声波频率一样,又因为分子振动的频率决定了分子振动的速度。频率越高也即运动速度越大。介质物质中的分子获得的能量也与自身质量有关,也取决于分子的振动速度的平方决定。因此声波频率越高,那么分子的能力也就越大。超声波的发生频率比普通声波要高许多,那么它在介质中传播时也就可以让分子获得很大的能量。(4)超声波的声压特性当声波进入某介质物体时,由声波的能量传递性可知声波可带动物质分子开始振动,使得介质物质自身所受压力发生变化,这是由于物质分子的振动使得物质分子相互之间产生了压缩和稀疏的作用所导致的3.2.2超声波换能器超声波换能器也就是我们所说的超声波传感器,它是产生和接受超声波的一种装置。也可叫超声波探头。超声波换能器主要由压电晶片组成,可以发射和接收超声波,本系统中的超声波装置主要用于测距。由上面介绍可知,超声波换能器的核心是包裹在其塑料外套或者金属外套中的一块压电晶片。要获得优良的测量数据,就必须关注构成晶片的材料和规格,材料和规格的不同影响晶片性能。例如晶片的大小、直径和厚度,这些因素都将决定每个探头的性能,因此我们在使用超声波传感器的时候,就必须预先了解清楚该传感器的性能参数。超声波传感器的主要性能指标包括:(1)工作频率。即为压电晶片产生共振时的振动频率。要让超声波输出能量最大,灵敏度越高,那么使得当加到它两端的交流电压的频率和晶片的共振频率相等时即可。(2)工作温度。由于各行业使用的超声波探头功能不一,造成探头的温度不一,压电材料的店里点一般又比较高,因此正好利用这一特点工作在不同温度下。例如诊断用的超声波探头使用功率较小,因此工作温度也就比较低,这样以来就可以长时间地工作而不失效。但是在医疗中使用的超声探头的温度就比较高,这样就必须单独的来使用制冷设备做处理。(3)灵敏度。主要取决于制造晶片本身。机电耦合系数大,灵敏度局0人耳能够听到的声音频率范围为20〜20000赫兹,称为可听声波,超出这个范围,低于20赫兹的声波称之为次声波,高于20000赫兹的声波称之为超声波。超声波发射为直线传播方式,它的发射频率越高绕射能力就越弱,但反射能力较强。利用超声波的这种反射性能即可制成超声波传感器。已知声波在空气中传播速度为340m/s,即为超声波传播速度,这就使超声波测距计算起来简单快捷。这里我们选用的是压电式超声波传感器。它的常用制作材料为压电晶体和特殊的压电陶瓷,材料具有压电性的特点,使得其工作在此特点下。超声波的发射探头是由逆压电效应将高频的电振动转化为高频的机械振动,从而来产生电磁波的。另外超声波的接受探头,它是利用正压电效应,将超声振动波转换成电信号的。为了满足人们对超声波发生器的不同需求,经过不断努力的研究超声波,人们逐步设计出了许多种超声波发生器。但总而言之可归纳为两大类:一种产生方式是利用机械过程来产生超声波,另一种则是利用电气过程来产生超声波。这里的机械产生方式有加尔统笛、液哨和气流旋笛等。另一种电气产生方式就包括压电型、电动型和磁致伸缩型三种方式;由于超声波用途各种各样,这样也使得以上各种方式产生的超声波能够充分发挥各自优势。图3.4超声波传感器结构目前市场上常用的超声波发生器为压电式超声波发生器,它实际上是利用压电晶体的谐振来工作的。如上图3.4所示为超声波发生器内部的结构图。其内部结构由上下两个带极性的压电晶片和一个共振板构成。在它的两个压电晶片极性处外加脉冲信号,当脉冲信号的频率等于压电晶片的固有振荡频率时,压电晶片即会发生共振现象,并且带动共振板共振,此时即产生了超声波。另外如果在两个压电晶片极性处外加电压,当共振板接收到反射回来的超声波时,将压迫压电晶片做振动,此时将振动产生的机械能转换为电信号,而此时它就变成了超声波接收器。超声波传感器原理市面上常见的超声波传感器多为开放型,其内部结构如图3.5所示,一个复合式振动器被灵活地固定在底座上。该复合式振动器是由谐振器以及一个金属片和一个压电陶瓷片组成的双压电晶片元件振动器。谐振器呈喇叭形,目的是能有效地辐射由于振动而产生的超声波,并且可以有效地使超声波聚集在振动器的中央部位。当电源电压作用于压电晶片的陶瓷时,它会随着电源电压和频率的变化而发生机械变形。此时压电晶片陶瓷振动的同时也会产生一个电荷。这样以来,当作用于由两片压电晶片陶瓷组成的振动器或者由一片压电晶片陶瓷和一个金属片构成的振动器时,就会因为弯曲振动而发出超声波信号。另外,如果向以上两种构成的振动器施加超声振动时,就会产生一个电信号。这样以来就可以将压电陶瓷用作于超声波传感器中。图3.5超声波内部结构超声波是一种能在弹性介质中产生机械振荡的特殊声波,其发射频率已经超过了20KHz(超出人耳听觉范围),其振荡方式可分为横向振荡和纵向振荡两种。超声波可以在气体、液体及固体等介质中传播,但其传播速度不同。它跟光一样具有折射和反射的现象,且在传播过程中有衰减。超声波的基本特性如下所述:.波长波的传播速度是用频率乘以波长来表示。电磁波的传播速度跟光速一样,都是3X10^8m/so而声波在空气中的传播速度很慢,标准大气压20c时传播速度为344m/s。在这种比较低的传播速度下,通过波速的计算公式可知,波长很短时可以获得较高的发射距离和方向分辨率。我们在实际测量时就需要获得较高的精度,这样正符合我们的预期效果。.反射我们知道超声波测距是通过超声波的发射与反射来确定的,因此我们测量的物体就必须能够反射超声波。由实验得出,例如金属、木材、混凝土、玻璃、橡胶和纸等可以反射近乎100%的超声波。但是例如布、棉花、绒毛等就不能发射,反而还能够吸收超声波。满足以上反射的要求后,还需要测量的环境必须是空旷的场所,不然遮挡也不可行。再则测量的物体如果表面凹凸不平,就会造成漫反射,也不能够测量真实的数据值。.温度效应在以往的学习中可知声波传播的速度可用符号“c”来表示,公式表小为:c=331.5+0.607t(m/s)式中,t表示为温度(C),可知声波传播速度会因环境温度的变化而变化。因此,如果需要精确的测量与某个物体之间的距离时,就必须考虑此时测量所处的环境温度,尤其是冬季室外温度很低,可能相差几十度,这样给测量的精度就会影响很大,此时我们可以使用例如DS18B20之类的温度传感器来作为温度补偿,对此时传播速度予以修正,以减小误差。但是本毕业设计的测试环境是室内,用于短距离的测量,对精度要求不是很高,因此关于温度效应对系统测量值得影响就不做强制要求。.衰减由之前的论述可知超声波通过介质的传输时,介质会吸收能量。另外,由于衍射现象也会使声波能量在球形表面上扩散损失,即表现为超声波传播到空气介质中时,超声波的能量强度也会随距离的变化成比例地减弱。如图3.6所示可知,超声波的发射频率越高,那么它的衰减率也就越高,随之超声波的传播距离也就越短。由此可见超声波的衰减特性直接影响了超声波传感器有效距离?p-=比-600,1-10201kHz)40tkHz)80(kHz)蚓-=?p-=比-600,1-10201kHz)40tkHz)80(kHz)蚓-=♦0.51.0—离(m)SOOikHs-5.010.0图3.6声压在不同距离下的衰减特性.声压特性声压级(S.P.L.)是表示音量的单位,表示公式如下。S.P.L尸20logP/Pre(dB)式中,“P”为有效声压(bar),“Pre”为参考声压(2X10-4^1bar)如图3.7所示为几种常用超声波传感器的声压图。

的凶12Q11D100/府一-----蹿离情的凶12Q11D100/府一-----蹿离情'电ElUVrn5r正弦沏.0dB=2X10^nbor图3.7超声波传感器的声压图.灵敏度特性灵敏度是表示声音接收级的单位,表示公式如下。灵敏度二20logE/P(dB)式中,“E”为所产生的电压(Vrms),“P”为输入声压(①bar)。如下图3.8所示,三种常见传感器MA40B8R、MA40S4R、MA40S7R所对应的传感器灵敏度图可知,在频率为40khz时三种传感器的灵敏度都是最高,但在40khz左右都逐渐下降。DODD

-5-G-7-S■博口3DRL-3.&kfl4DDODD

-5-G-7-S■博口3DRL-3.&kfl4D

空f-kHz:图3.8超声波传感器灵敏度示意图.辐射特性要知道超声波特性,则需要实际的测量来得出结论。我们把超声波发射接收器安装在水平的平台上,然后来测量发射角度与灵敏度之间的关系。为了表示的方便,我们定义了半衰减角度,用91/2来表示,即灵敏度衰减6dB的角度。如下图3.9可知超声波设备外表尺寸较小的更易获得精确的辐射角度。频率40KHZ输入电压LO¥mi与f正弦波;距离30-cm图3.9超声波传感器辐射特性示意图由以上多项研究得知,三种传感器在频率为40khz范围内具有最大的探测灵敏度。测距分析目前超声波测距最常用的测距方法为回声探测法。将超声波传感器发射接收端对准所测物体,发送电平触发发射超声波,在发射的同时定时器开始计时,超声波在空气中传播到达被测物体时立即反射回来,当超声波的接收器接收到反射回来的超声波时停止计时。根据定时器记录下来的时间来乘以超声波在空气中传播时的速度,即可得到超声波距离被测物体的2倍距离。这样就可以计算出传感器距离被测物体的长度。由实验表明,声波的传播受温度的影响。超声波也是一种声波,

故其声速V与温度有关,温度越高传播速度也越快。在实际的测量过程中,如果声波在同介质中传播时,且温度不变,那么可近似的认为超声波在该介质中的传播速度基本不变。如果要求精度较高,那么可以采用温度补偿的办法来加以校准。只要声速和声波往返时间确定下来后,我们就可以通过公式S=vt/2来求得距离。如图3.10所示:超声波发射超声波接收仁11图3.10超声波的测距原理H=Scos超声波发射超声波接收仁11图3.10超声波的测距原理H=Scos障碍物:L(3-1)(3-2)式中:L---两探头之间中心距离的一半.又知道超声波传播的距离为:2S=vt(3-3)式中:v—超声波在介质中的传播速度;t一超声波从发射到接收所需要的时间.将(3—2)、(3—3)代入(3-1)中得:(3-4),,1L(3-4)H=-vtcosarct评其中,超声波在一定温度的介质中传播速度v为一个常数(例温度T=30度时,V=349m/s);其中L代表的是发射与接收头中心距离的一半,实际测量中的距离H几乎都远远大于L,则(3-4)变为:H=1vt(3-5)2因此,由上式可知,我们只需测量出超声波在介质中的传播时间t,就可以得出测量的距离H.时钟电路部分设计单片机的时钟电路是必要的,单片机片内引脚XTAL1和XTAL2分别为高增益反向放大器的输入和输出。由该放大器构成的振荡电路和时钟电路就构成了单片机的时钟方式。在单片机XTAL1和XTAL2引脚两端跨接石英晶体和电容来构成一个振荡电路,这里的晶振取12MHz。另外因为一个机器周期含有6个状态周期,而每个状态周期为2个振荡周期,所以一个机器周期共有12个振荡周期。本设计采用外接石英晶体振荡器的振荡频率为12MHZ,由计算得知,一个振荡周期为1/12us,故而一个机器周期为1us。如图3.11所示为时钟电路。图3.11单片机时钟电路图复位电路部分该系统的设计中,由于采用的是晶振频率为12Mhz,那么就只需要在单片机第9引脚接高电平持续不低于2us即可。系统设计的复位方法一般有上电自动复位和外部按键手动复位。外部按键复位是单片机在时钟电路工作以后,由该外部按键来持续给出2个机器周期的高电平时就可以完成复位操作。本系统考虑部分因素,采用的设计是自动复位电路。如图3.12为复位电路。VCC-1-10uF'RST单片机9脚hLOK图3.12单片机复位电路图声音报警电路部分声音报警电路是由蜂鸣器和三极管组成。蜂鸣器又分为压电式和电磁式的蜂鸣器。此蜂鸣器为自激蜂鸣器,它是完全由直流电压驱动的,即为有源蜂鸣器。有源蜂鸣器不需要其他的交流信号来驱动发声,我们只需对照蜂鸣器的电源引脚输出一定电压即可进行控制,它的引脚连接PNP三极管的集电极,单片机通过控制三极管基极来控制蜂鸣器。目前蜂鸣器广泛运用于PC机、报警器等电子产品中用作发声器。P13如下图所示,用一个蜂鸣器和三极管、电阻接到单片机的引脚上,构成声音报警电路,如图3.13示为声音报警电路。P13图3.13声音报警电路图显示模块部分显示模块采用数码管显示接口电路如图3.144=1-a0.9.6.图3.14数码管显示电路4软件系统设计系统软件的设计是系统控制的核心控制部分。其任务是在前期硬件设计的基础上,加入该系统的灵魂所在,确定程序结构,分配各部分工作内容和顺序,经过仔细的模块划分后,即可进行主程序和各模块程序的设计,各部分先分开的程序设计,最后再将各模块程序连接起来成为一个完整的程序,与硬件所有部分相配合完成相应功能。编译软件本次的系统设计完全采用C语言来编写程序,主要原因还是C语言相比于汇编有很大的可读性等优势;本次开发的编译器是使用KeilC51来进行程序编译,选择Keil也是因为它功能强大使用方便等优点。KeilC51是美国KeilSoftware公司出品的兼容51系列单片机的C语言开发软件,使用C语言与汇编相比,具有在结构上清晰、代码分析完整、维护简便等很大的优势,毕竟C语言易学与汇编语言。Keil软件提供了C语言的编译器、连接器、库管理和强大的仿真功能,使得一些调试简便。主程序工作流程图按上述工作原理和硬件结构分析可知系统主程序工作流程图如下图4.1所示;图4.1主程序设计流程图超声波探测程序流程图:开始图4.2超声波探测程序流程图4.3部分重要程序代码分析4.3.1数码管显示程序voiddisplay。{//////staticuchari;i++;if(i>=smg_i)i=0;P1=0xff;//段选P3=0xf0|(P3&0x0f);〃位选P3=smg_we[i]|(P3&0x0f);//位选smg_we_switch(i);P1=dis_smg[i];}//段选4.3.2超声波测距程序voidsend_wave(){c_send=1;delay();c_send=0;TH0=0;TL0=0;TR0=0;flag_hc_value=0;while(!c_recive);零时就一直等待,等待超声波的发出TR0=1;while(c_recive)//10us的高电平触发//给定时器0清零//关定时器0定时//超声波中间变量值清零//当c_recive(超声波接收值)为o//开启定时器0定时//当crecive为1计数并等待(flag_time0=TH0*256+TL0;if((flag_hc_value>1)||(flag_time0>65000))〃即测量的时间超出了或者标志位为零时(即超过测量范围时),显示3个888(TR0=0;flag_csb_juli=2;distance=888;flag_hc_value=0;break;}else(flag_csb_juli=1;}}if(flag_csb_juli==1)//关定时器//关定时器0定时〃读出定时器0的时间TR0=0;distance=TH0;distance=distance*256+TL0;distance+=(flag_hc_value*65536);〃计算出超声波传播到障碍物的双倍时间(得到单位是ms)//单位换算成米//距离=速度*//单位换算成米//距离=速度*时间//这里如果测量距离大distance=888;于3.8m,那么就超出了测量的量程}}总结超声波测距的原理就是利用了超声波的发射和接收的时间来计算到障碍物的距离。在目前使用的测距仪有两种,一种是本设计使用的方法,发射声波被被测物体发射的方式来确定距离;另外一种则是在被测距离的两端安装接收和发射超声波的仪器来测距。这种一般用于身高的测量。在本次毕业设计(论文)是以AT89C52为核心,借助于单片机技术,解决了超声波测距的一些难题。并且通过此次论文设计,让我学到了许多知道的和不知道的,比如在单片机选型、显示屏的组合等部分元器件的选择上有了更多的认识,比以往在课程设计中收益更多,另外在程序设计上有了清晰地思路,理论在实践方面的运用能力有巨大的提高。使用单片机的运算和控制功能,让我较顺利的设计出基于超声波的一种简单的测距系统。本系统采用的基于单片机的测距系统很好的利用了超声波来实现了测距报警功能。超声波测距比传统的测距有着迅速、方便、简便、精确等优势,使得在工业和生活方面发挥了很大的功能。目前超声波技术使用的还十分有限,因此未来的领域还很宽广,也正是一个蓬勃发展的无限前景技术领域。本系统设计的课题选择、方案论证到软硬件设计再到焊接调试程序编写,我查阅了大量的资料,这样也使得我学到了很多的东西。在设计过程中遇到的疑难问题,也得到了老师和同学的帮助,在这里谢谢他们。参考文献[1]谢维成,杨加国.单片机原理与应用及C51程序设计.北京:清华大学出版社,2006[2]蔡菲娜.单片微型计算机原理和应用.杭州:杭州大学出版社,1995[3]李建忠.单片机原理及应用.西安:西安电子科技大学出版社,2002[4]唐桃波,陈玉林.基于AT89C51的智能无线安防报警器[J].电子设计应用,2003,5(6):49〜51.[5]李全利.单片机原理及接口技术[M].北京:北京航空航天大学出版社,2004.[6]李丽霞.单片机在超声波测距中的应用[J].电子技术,2002[7]姜道连,宁延一,袁世良.用AT89C2051设计超声波测距仪[J].国外电子元器件,2000[8]张鹏,张有志.一种新型超生测距系统[J].山东:山东大学学报,2003,33(1)致谢行文至此,历时三个多月的毕业设计和论文也接近尾声,岁月如梭,我四年的大学时光也即将敲响结束的警钟。在设计过程中,遇到了诸多的阻碍,从电路关键芯片的选择,到部分电路的功能实现,随时会有难题摆在面前。所以,在此衷心感谢我的设计指导老师一一张老师,她对我进行了无私的指导和帮助,不厌其烦的帮我进行设计的纠错和改进。在整个设计过程中,张老师对我严格要求,引导我不断开阔思路,为我答疑解惑,使我在临近毕业的这一段宝贵时光中,真正的学有所用,增长了知识。张老师用她渊博的学识、严谨的治学态度、求实的工作作风和她敏捷的思维,深深影响着我,也鞭策着我向优秀靠近,感谢她为我们营造的浓郁学术氛围,以及学习、生活上的无私帮助。我也将终生难忘陈老师对我的亲切关怀和悉心指导,谨向张老师致以最崇高的谢意!最后,向各位不辞辛苦审阅本论文的各位老师表示衷心的感谢。祝各位老师身体健康,工作顺利!卦III追

田if4叁Fi匕附件1原理图号CL4二同河:JyE哥

璟2目

茸5”iinnEOOm:to::to:■s*11—L—一np323附件2程序代码#include<reg52.h>#include<intrins.h>#include"eepom52.h"#defineucharunsignedchar#defineuintunsignedintTOC\o"1-5"\h\z//数码管段选定义0123456789ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};//断码//数码管位选定义ucharcodesmg_we□={0xe0,0xd0,0xb0,0x70};uchardis_smg[8]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};sbitsmg_we1=P3A4;//数码管位选定义sbitsmg_we2=P3A5;sbitsmg_we3=P3A6;sbitsmg_we4=P3A7;sbitc_send=P3A2;//超声波发射sbitc_recive=P3A3;〃超声波接收ucharflag_hc_value;//超声波中间变量sbitbeep=P2A3;//蜂鸣器IO口定义bitflag_key_b_en,flag_key_set_en;〃按键蜂鸣器使能ucharsmg_i=3;//显示数码管的个位数

bitflag_300ms;bitkey_500mslongdistance;uintset_d;bitflag_csb_juli;bitflag_300ms;bitkey_500mslongdistance;uintset_d;bitflag_csb_juli;uintflag_time0;//距离//超声波超出量程//用来保存定时器0的时候的//按键的IO变量的定义ucharkey_can;//按键值的变量ucharzd_break_en,zd_break_value;//自动退出设置界面ucharmenu_shudu=10;//用来控制连加的速度bitflag_lj_en;//按键连加使能bitflag_lj_3_en;//按键连3次连加后使能加的数就越大了ucharkey_time,flag_value;〃用做连加的中间变量ucharmenu_1;//菜单设计的变量/***********************1ms延时函数uchara_a;/***********************1ms延时函数*/*****************************/voiddelay_1ms(uintq){uinti,j;for(i=0;i<q;i++)for(j=0;j<120;j++);}/***********************处理距离函数/***********************处理距离函数**************************voidsmg_display()(dis_smg[0]=smg_du[distance%10];dis_smg[1]=smg_du[distance/10%10];dis_smg[2]=smg_du[distance/100%10]&0x7f;)把数据保存到单片机内部eepom把数据保存到单片机内部eepom中******************/voidwrite_eepom()(SectorErase(0x2000);byte_write(0x2000,set_d%256);byte_write(0x2001,set_d/256);byte_write(0x2058,a_a);)把数据从单片机内部eepom把数据从单片机内部eepom中读出来*****************/voidread_eepom()(set_d=byte_read(0x2001);set_d<<=8;set_d|=byte_read(0x2000);a_a)=a_a)=byte_read(0x2058);/**************开机自检eepom初始化*****************/voidinit_eepom()(read_eepom();〃先读if(a_a!=1)〃新的单片机初始单片机内问EEPOM

(set_d=100;a_a=1;write_eepom();))voidkey()/****************独立按键处理函数********************//****************独立按键处理函数********************/(staticucharkey_new=0,key_old=0,key_value=0;if(key_new==0){//按键松开的时候做松手检测if((P2&0x07)==0x07)key_value++;elsekey_value=0;if(key_value>=5){key_value=0;key_new=1;flag_lj_en=0;//关闭连加使能flag_lj_3_en=0;//关153秒后使能flag_value=0;//消零key_time=0;write_eepom();))else{if((P2&0x07)!=0x07)key_value++;//按键按下的时候elsekey_value=0;if(key_value>=5)(key_value=0;key_new=0;flag_lj_en=1;//连加使能zd_break_en=1;/启动退出设置界使能zd_break_value=0;//1动退出设置界变量清零flag_key_b_en=1;//按键蜂鸣器使能}}key_can=20;if(key_500ms==1)〃连力口(key_500ms=0;key_new=0;key_old=1;zd_break_value=0;}if((key_new==0)&&(key_old==1))(switch(P2&0x07)//得到//得到k2键值//得到k3键值//得到k4键值case0x06:key_can=3;break;case0x05:key_can=2;break;case0x03:key_can=1;break;//}//dis_smg[3]=smg_du[key_can%10];}key_old=key_new;

voidsmg_we_switch(uchari)(switch(i)(case0:smg_we1=0;smg_we2=1;smg_we3=1;smg_we4=1;break;smg_we1=1;smg_we2=0;smg_we3=1;smg_we4=1;break;smg_we1=1;smg_we2=1;smg_we3=0;smg_we4=1;break;smg_we1=1;smg_we2=1;smg_we3=1;smg_we4=0;break;}}/***********************数码显示函数/***********************数码显示函数*/*****************************/voiddisplay。(staticuchari;i++;if(i>=smg_i)=0;//P1=0xff;//段选//P3=0xf0|(P3&0x0f);//位选//P3=smg_we[i]|(P3&0x0f);//位选smg_we_switch(i);P1=dis_smg[i];〃段选

voiddelay()(_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();)/**************************************************/voidsend_wave()(c_send=1;delay();c_send=0;TH0=0;TL0=0;TR0=0;flag_hc_value=0;while(!c_recive);TR0=1;//执行一条_nop_(脂令就是//执行一条_nop_(脂令就是1us超声波测距程序//10us的高电平触发//给定时器0清零//关定时器0定时//当c_recive为零时等待//当c_recive为1计数并等待flag_time0=TH0*256+TL0;if((flag_hc_value>1)||(flag_time0>65000))〃当超声波超过测量范围时,显示3个888

TR0=0;flag_csb_juli=2;distance=888;flag_hc_value=0;break;}else{flag_csb_juli=1;}}if(flag_csb_juli==1)//关定时器//关定时器0定时〃读出定时器0的时间TR0=0;distance=TH0;distance=distance*256+TL0;distance+=(flag_hc_value*65536);〃算出超声波测距的时间得到单位是ms//0.017//0.017=340M/2=//距离=速度*时间//如果大于3.8m就超170M=0.017M算出来是米if(distance>350){distance=888;出超声波的量程}}}/*********************定时器0、定时器/*********************定时器0、定时器1初始化******************/voidtime_init()EA=1;EA=1;TMOD=0X11;ET0=1;TR0=1;ET1=1;TR1=1;/****************〃开总中断//定时器0、定时器1工作方式1//开定时器0中断//允许定时器0定时//开定时器1中断//允许定时器1定时按键处理数码管显示函数***************/voidkey_with()(

温馨提示

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

评论

0/150

提交评论