《基于单片机的超声波测距系统毕业设计(20页).doc》由会员分享,可在线阅读,更多相关《基于单片机的超声波测距系统毕业设计(20页).doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于单片机的超声波测距系统毕业设计-第 14 页 毕业设计论文题目 基于单片机的超声波测距系统 学生姓名 钱巍 学 号 1110064008 所在院系 物理与电信工程学院 专 业 电子信息科学与技术 班 级 电信1101 指导教师 周平和 2015年6月基于单片机的超声波测距系统钱巍(陕西理工学院物电学院电子信息科学与技术专业1101班级,陕西 汉中 723000)指导教师:周平和摘要STC89C52是常见的的一款STC系列单片机,被广泛应用,它的作用在自动控制领域里得到了很好的体现。本次设计主要是利用STC89C52单片机、超声波传感器完成测距系统的制作,以STC89C52为主控芯片,利用
2、超声波对距离的检测,然后单片机处理运算,将前方物体的距离在显示器显示出来,从而实现测距。关键词超声波;测距;单片机Ultrasonic distance measurement system based on SCMQian wei(Grade11,Class1,Major Electronic information science and technology,Institute of electrical and physical Dept.,Shaanxi University of Technology,Hanzhong 723000,Shanxi)Tutor: Zhou pingh
3、eAbstract:STC89C52 are common in an STC series microcontroller, it is widely used, and its role in the field of automatic control has been well represented,This design is the use of STC89C52 microcontroller, ultrasonic sensors complete production ranging system to STC89C52 as the main chip, the use
4、of ultrasound to detect distance, and single-chip processing operation, the distance in front of the object displayed in the display, enabling measurement distance.Key words:Ultrasonic; location; MCU目录引言11总体设计方案22超声波测距硬件设计22.1主控制模块22.2电源设计32.3超声波测试模块32.3.1超声波的特性42.3.2超声波换能器42.4超声波传感器原理52.5测距分析82.6时钟
5、电路的设计92.7复位电路的设计92.8显示模块103超声波测距的软件设计103.1软件设计方法103.2软件系统流程介绍104系统误差分析及改进115总结12参考文献12附录A13附录B14附录C19附录D20引言通过无线电来测量载机与某个物体或反射面相互间的信号传播延迟、频率、相位差从而测算出两点之间直线距离的方式叫做无线测距。当前测算距离的方法更多的还是选用测量波在介质中传播和时间的关系。由于传感器和单片机控制技术的不断进步,无线检测技术已经被运用到很多领域。当前,最常见的无线测距方式有CCD探测、雷达测距、超声波测距和激光测距等等。在此之中,CCD探测具备不需要信号发射源、使用便捷、同
6、时得到许多的环境信息等特点,然而视觉测距需要另外的计算开支。雷达测距具备二十四小时工作,适应于恶劣的环境中进行短距离、高精度测距的优势,不过比较容易受到电磁波的干扰。激光能轻易穿透雨雾,不容易被干扰,而且它在方向性、单色性、亮度、测量速度方面都有不错的表现。不过它在和前面几种测距方法相比较,超声波测距能够直接测量近距离目标,纵向分辨率好,适用范围大,方向性强,而且具由不受烟雾、光照、电磁干扰等因素影响,且覆盖面较大等优点。现在,超声波测距已经大量运用于移动机器人的定位、液位高低的测量和躲避障碍等领域,应用前景非常好。超声波是一种在弹性介质里的机械振荡。它是通过和介质相接触的振荡源所产生的,它的
7、频率都在20000Hz以上。超声波在医疗技术、日常生活、工业生产中的应用越来越多。超声波在介质里传播的时候在不同介面上具备反射的特点。因为他具有指向性强、传播能量大,方向性好、传播距离较远等等特性,经常用在测量物体的厚度、距离、液位等。超声波的传播速度与介质的密度和弹性特征相关。它在空气里的传播速度是340m/s。当声音的频率超出人耳听力的频率极限时,我们就不会觉察出四周声音的存在,因此称这类高频率的声为超”声,它是属于机械波的范围。超声波也遵从一般机械波在弹性介质中的传播规律,就比如在介质的分界面上发生反射和折射反应,在进到介质后会被介质吸收而发生衰减等。恰是因为拥有这样的特性,让超声波可以
8、运用在距离的测量中。超声波测距的方法常见的有相位检测法、声波幅值检测法和渡越时间法这三种。在这之中,相位检测法精度最高,不过检测的范围有限;声波幅值检测法容易被反射介质所影响。所以,现在超声波测距一般都用渡越时间法。超声波测距的工作原理是发射换能器向外面发射超声波,然后超声波就在介质里传播,碰到障碍物之后反射,产生了回波,接收换能器就接收回波。渡越时间法就是通过检测发射超声波与接收回波之间的时间差来测算出目标物体和信号发射源之间的距离。从技术上看,超声波测距系统从上个世纪70年代开始就已经开始实用化在上个世纪70年代末期已经广泛运用到各大领域中。近些年来,国内的科研专家在超声波回波信号处理方法
9、、新型超声波换能器研治、超声波发射脉冲选取等方面进行了许多理论分析和研究,并且对于超声测距中常见影响因素提出了温度补偿、接收回路串入自动增益调节环节等来增加超声波测距精度的措施。因为超声波测距的原理简单、容易完成和成本低廉等优势,在液位测量、汽车防撞、移动机器人定位和避障、曲面仿形检测和导盲系统等方面获得了广泛的认可。接触式液位的测量存在了很多问题,比如易渗漏、易腐蚀、不便于检修和维护等。通过超声波测距能够完成液位的非接触式测量,解决了上面这些问题。和其他的测位方式相比较,超声波的液位测量具备不用接触、结构简单、安装和维护便捷、性能稳定可靠等优点。移动的机器人要装上很多种传感器来得到环境信息以
10、确定自己的位置和躲避障碍物,当中比较普遍的传感系统是视觉系统和超声波测距系统。超声波传感器早已被大量的用于测距传感器,并运用在机器人的定位和避障上。由于汽车数量的飞速增长,汽车在安全和使用便捷方面的性能备受关注。因为存在视觉的盲区,我们通常在倒车时不能看清楚车子后面的障碍物,非常容易刮伤汽车或者发生事故。通过在车身前后方安置超声测距传感器能够准确的测量车身距障碍物间的距离,方便了驾驶员在泊车、倒车和起动车辆时前后左右探视所造成的困扰,而且让驾驶员没有了视野死角和视线模糊的不便,增强了驾驶的安全性。1总体设计方案本设计包括硬件和软件设计两个部分。模块划分为数据采集、按键控制、四位数码管显示。电路
11、结构可划分为:超声波传感器、单片机控制电路。就此设计的核心模块来说,单片机就是设计的中心单元,所以此系统也是单片机应用系统的一种应用。单片机应用系统也是有硬件和软件组成。硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是各种工作程序的总称。单片机应用系统的研制过程包括总体设计、硬件设计、软件设计等几个阶段。系统采用STC89C52单片机作为核心控制单元。STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上
12、,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。超声波传感器测出数据,然后单片机进行处理,从而在显示器得出最后的距离。系统总体的设计方框图如图1.1所示。电源STC89C52主控制器模块超声波传感器模块按键控制4位数码管显示模块图1.1 系统方图2超声波测距硬件设计2.1主控制模块主控制最小系统电路如图2.1所示。图2.1 超声波测距电路原理图硬件电路总设计见图2.2,从以上的分析可知在本设计中要用到如下器件:STC89C52、超声波传感器、按键、四位数码管等一些单片机外围应用电路。其中D1为电源工作指示灯。电路中用
13、到2个按键,一个是电源开关键,一个复位键。图2.2 总设计电路图2.2电源设计电源部分的设计采用3节5号干电池4.5V供电。2.3超声波测试模块超声波模块采用现成的HC-SR04超声波模块,该模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm。模块包括超声波发射器、接收器与控制电路。基本工作原理:采用IO口TRIG触发测距,给至少10us的高电平信号;模块自动发送8个40kHz的方波,自动检测是否有信号返回;有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340m/s)/2。实物如下图2.3。其中
14、VCC供5V电源,GND为地线,TRIG触发控制信号输入,ECHO回响信号输出等四支线。图2.3 超声波模块实物图超声波探测模块HC-SR04使用方法如下:I/O口触发,给Trig口至少10us的高电平,启动测量;模块自动发送8个40kHz的方波,自动检测是否有信号返回;有信号返回,通过I/O口Echo输出一个高电平,高电平持续时间就是超声波从发射到返回的时间,测试距离=(高电平时间*340)/2,单位为m。程序中测试功能主要由两个函数完成。实现中采用定时器0进行定时测量,8分频,TCNTT0预设值0XCE,当timer0溢出中断发生2500次时为125ms,计算公式为(单位:ms):T =(
15、定时器0溢出次数*(0XFF-0XCE)/1000其中定时器0初值计算依据分频不同而有差异。2.3.1超声波的特性声音是与人类生活紧密相关的一种自然现象。当声的频率高到超过人耳听觉的频率极限(根据大量实验数据统计,取整数为20000Hz)时,人们就会觉察不出周围声的存在,因而称这种高频率的声为“超”声。超声波的特性有:1)束射特性 由于超声波的波长短,超声波射线可以和光线一样,能够反射、折射,也能聚焦,而且遵守几何光学上的所有定律。即超声波射线从一种物质表面反射时,入射角等于反射角,当射线透过一种物质进入另一种密度不同的物质时就会产生折射现象,也就是要改变它的传播方向,两种物质的密度差别愈大,
16、则折射率也愈大。2)吸收特性 声波在各种介质中传播时,随着传播距离的增加,其强度会逐渐减弱,这是因为介质要吸收掉它的部分能量。对于同一介质,声波的频率越高,介质吸收就越强。对于一个频率一定的声波,在气体中传播时吸收尤为历害,在液体中传播时吸收就比较弱,在固体中传播时吸收是最小的。3)超声波的能量传递特性 超声波之所以能在各个工业部门中得到广泛的应用,主要原因还在于比声波具有强大得多的功率。为什么有这么强大的功率呢?因为当声波进入某一介质中时,由于声波的作用使物质中的分子也随之振动,振动的频率和声波频率样,分子振动的频率决定了分子振动的速度。频率愈高速度愈大。物资分子由于振动所获得的能量除了与分
17、子本身的质量有关外,主要是由分子的振动速度的平方决定的,所以如果声波的频率愈高,也就是物质分子愈能得到更高的能量。超声波的频率比普通声波要高出很多,所以它可以使物质分子获得很大的能量,换句话来说,超声波本身就可以供给物质分子足够大的功率。4)超声波的声压特性 当声波进入某物体时,由于声波振动使物质分子相互之间产生压缩和稀疏的作用,将使物质所受的压力产生变化。由于声波振动引起附加压力现象叫声压作用。2.3.2超声波换能器完成产生超声波和接收超声波这种功能的装置就是超声波传感器,习惯上称为超声换能器,或者超声波探头。超声波探头主要由压电晶片组成,既可以发射超声波,也可以接收超声波。小功率超声探头多
18、用作探测方面。它有许多不同的结构,可分直探头(纵波)、斜探头(横波)、表面波探头(表面波)、兰姆波探头(兰姆波)、双探头(一个探头反射、一个探头接收)等。超声探头的核心是其塑料外套或者金属外套中的一块压电晶片。构成晶片的材料可以有许多种。由于晶片的大小,如直径和厚度也各不相同,因此每个探头的性能都是不同的,我们使用前必须预先了解清楚该探头的性能参数。超声波传感器的主要性能指标包括:1)工作频率 工作频率就是压电晶片的共振频率。当加到它两端的交流电压的频率和晶片的共振频率相等时,输出的能量最大,灵敏度也最高。2)工作温度 由于压电材料的居里点一般比较高,特别时诊断用超声波探头使用功率较小,所以工
19、作温度比较低,可以长时间地工作而不失效。医疗用的超声探头的温度比较高,需要单独的制冷设备。3)灵敏度 主要取决于制造晶片本身。机电耦合系数大,灵敏度高。人类能听到的声音频率范围为:20Hz20kHz,即为可听声波,超出此频率范围的声音,即20Hz以下频率的声音称为低频声波,20kHz以上频率的声音称为超声波。超声波为直线传播方式,频率越高,绕射能力越弱,但反射能力越强。为此,利用超声波的这种性能就可制成超声波传感器。另外,超声波在空气中的传播速度较慢,为340m/s,这就使得超声波传感器使用变得非常简便。我们选用压电式超声波传感器。它的探头常用材料是压电晶体和压电陶瓷,是利用压电材料的压电效应
20、来进行工作的。逆压电效应将高频电振动转换成高频机械振动,从而产生超声波,可作为发射探头;而利用正压电效应,将超声振动波转换成电信号,可作为接收探头。为了研究和利用超声波,人们已经设计和制成了许多种超声波发生器。总体上讲,超声波发生器大体可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构如图所示,它有两个压电晶片和一个
21、共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。如图2.4所示共振板电极压电晶片图2.4 超声波传感器结构2.4超声波传感器原理市面上常见的超声波传感器多为开放型,一个复合式振动器被灵活地固定在底座上。该复合式振动器是由谐振器以及一个金属片和一个压电陶瓷片组成的双压电晶片元件振动器。谐振器呈喇叭形,目的是能有效地辐射由于振动而产生的超声波,并且可以有效地使超声波聚集在振动器的中央部位。当电压作用于
22、压电陶瓷时,就会随电压和频率的变化产生机械变形。另一方面,当振动压电陶瓷时,则会产生一个电荷。利用这一原理,当给由两片压电陶瓷或一片压电陶瓷和一个金属片构成的振动器,所谓叫双压电晶片元件,施加一个电信号时,就会因弯曲振动发射出超声波。相反,当向双压电晶片元件施加超声振动时,就会产生一个电信号。基于以上作用,便可以将压电陶瓷用作超声波传感器。超声波是一种在弹性介质中的机械振荡,其频率超过20KHz,分横向振荡和纵向振荡两种,超声波可以在气体、液体及固体中传播,其传播速度不同。它有折射和反射现象,且在传播过程中有衰减。超声波的基本特性如下所述:1)波长 波的传播速度是用频率乘以波长来表示。电磁波的
23、传播速度是3108m/s,而声波在空气中的传播速度很慢,约为344m/s (20时)。在这种比较低的传播速度下,波长很短,这就意味着可以获得较高的距离和方向分辨率。正是由于这种较高的分辨率特性,才使我们有可能在进行测量时获得很高的精确度。2)反射 要探测某个物体是否存在,超声波就能够在该物体上得到反射。由于金属、木材、混凝土、玻璃、橡胶和纸等可以反射近乎100的超声波,因此我们可以很容易地发现这些物体。由于布、棉花、绒毛等可以吸收超声波,因此很难利用超声波探测到它们。同时,由于不规则反射,通常可能很难探测到凹凸表面以及斜坡表面的物体,这些因素决定了超声波的理想测试环境是在空旷的场所,并且测试物
24、体必须反射超声波。3)温度效应 声波传播的速度“c”可以用下列公式表示。C = 331.5+0.607t(m/s)式中,t =温度()也就是说,声音传播速度随周围温度的变化而有所不同。因此,要精确的测量与某个物体之间的距离时,始终检查周围温度是十分必要的,尤其冬季室内外温差较大,对超声波测距的精度影响很大,此时可用18B20作温度补偿来减小温度变化所带来的测量误差,考虑到本设计的测试环境是在室内,而且超声波主要是用于测距功能,对测量精度要求不高,所以关于温度效应对系统的影响问题在这里不做深入的探讨。图2.5 声压在不同距离下的衰减特性4)衰减 传播到空气中的超声波强度随距离的变化成比例地减弱,
25、这是因为衍射现象所导致的在球形表面上的扩散损失,也是因为介质吸收能量产生的吸收损失。如图2.5所示,超声波的频率越高,衰减率就越高,超声波的传播距离也就越短,由此可见超声波的衰减特性直接影响了超声波传感器有效距离。5)声压特性 声压级SPL是表示音量的单位,利用下列公式予以表示。SPL=20logP/Pre(dB)式中,“P”为有效声压(bar),“Pre”为参考声压(210-4bar)如图2.6所示为几种常用超声波传感器的声压图。图2.6 超声波传感器的声图6)灵敏度特性 灵敏度是表示声音接收级的单位,使用下列公式予以表示灵敏度= 20logE/P(dB)式中,“E”为所产生的电压 (Vrm
26、s),“P”为输入声压(bar)。超声波传感器的灵敏度直接影响着系统测距范围,如图2.7所示为几种中常见超声波传感器的灵敏度图,从图中可以发现40KHz时传感器的声压级最高,也就是说40kHz时所对应的灵敏度最高。7)辐射特性 把超声波传感器安装在台面上。然后,测量角度与声压(灵敏度)之间的关系。为了准确地表达辐射,与前部相对比,声压 (灵敏度) 级衰减6dB的角度被称为半衰减角度,用1/2表示。超声波设备的外表面尺寸较小易于获得精确的辐射角度。如图2.8所示为几种常见超声波传感器的辐射特性示意图。图2.7 超声波传感器灵敏度示意图分析以上研究结果不难看出超声波传感器工作在40KHz范围内具有
27、最大的声压级和最高的灵敏度。图2.10 超声波传感器辐射特性示意图频率40kHz输入电压10Vrms(正弦波)距离30cm2.5测距分析超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离S,即:S=340 t /2最常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即
28、停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物面的距离S,即:S=340 t /2。由于超声波也是一种声波,其声速v与温度有关。在使用时,如果传播介质温度变化不大,则可近似认为超声波速度在传播的过程中是基本不变的。如果对测距精度要求很高,则应通过温度补偿的方法对测量结果加以数值校正。声速确定后,只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的基本原理。如图2.9所示障碍物超声波发射超声波接收SH图2.11 超声波的测距原理 (2.1) (2.2)式中 L-两探头之间中心距离的一半又知道超声波传播的距离为 (2.3)式中 v超声波
29、在介质中的传播速度 t超声波从发射到接收所需要的时间将(2.2)、(2.3)代入(2.1)中得 (2.4)其中,超声波的传播速度v在一定的温度下是一个常数(例如在温度T=30度时,V=349m/s);当需要测量的距离H远远大于L时,则(2.4)变为 (2.5)所以,只要需要测量出超声波传播的时间t,就可以得出测量的距离H。2.6时钟电路的设计XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。因为一个机器周期含有6个状态周期,而每个状态周期为2个振荡周期,所以一个机器周期共有12个振荡周期
30、,如果外接石英晶体振荡器的振荡频率为12MHz,一个振荡周期为1/12us,故而一个机器周期为1us。如图2.10所示为时钟电路。图2.10 时钟电路图2.7复位电路的设计复位方法一般有上电自动复位和外部按键手动复位,单片机在时钟电路工作以后, 在RESET端持续给出2个机器周期的高电平时就可以完成复位操作。例如使用晶振频率为12mHz时,则复位信号持续时间应不小于2us。本设计采用的是自动复位电路。如图2.11示为复位电路。图2.11 复位电路图2.8显示模块显示模块采用数码管显示接口电路如图2.12图2.12 显示电路3超声波测距的软件设计3.1软件设计方法超声波测距仪的软件设计主要由主程
31、序、超声波发生子程序、超声波接收中断程序及显示子程序组成。我们知道C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序既有较复杂的计算(计算距离时),又要求精细计算程序运行时间(超声波测距时),所以控制程序可采用C语言和汇编语言混合编程。汇编语言是一种面向机器的低级的程序设计语言。它直接利用机器提供的指令系统编写程序,该类程序的可执行指令是与机器语言程序的指令一一对应的。汇编语言由于是面向机器的程序设计语言,与具体的计算机硬件有着密切的关系,因此,可移植性差。但由于汇编指令与机器语言指令一一对应,即一条汇编语言的可执行指令对应着一条机
32、器语言指令,反之亦然。因此,汇编语言可直接利用机器硬件系统的许多特性,如寄存器、标志位以及一些特殊指令等,具有执行速度快、占用内存少等优点。汇编语言的缺点是程序的通用性和可移植性差;程序比较繁琐,调试困难;目标程序比较庞大,运行速度慢。而C语言是一种编译型的程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数,运算速度快,编译效率高,有良好的可移植性,而且可以直接实现对系统硬件的控制。C语言是一种结构化设计语言,支持支持由顶向下结构化程序设计技术。C语言的模块化程序结构可以使程序模块实现共享。在C语言的可读性方面更容易借鉴前人的开发经验,提高程序的开发水平。
33、C语言应用于单片机编程出了上述特点外,还有以下突出特点:编译器可以自动完成变量存储单元的分配,省去了分配和纪录存储单元的繁琐;不必对单片机和硬件接口的结构有很深入的了解,省去了单片机漫长的学习时间;具有良好的可移植性,只要将程序略加改动就可以将其应用与其他类型的单片机,省去了更改单片机型号时重新编写程序的无奈。因此利用C语言编写程序可以大大缩短目标系统软件的开发周期,程序的可读性明显增加,便于改进、扩充、研制规模更大、性能更完备的系统。3.2软件系统流程介绍超声波测距的原理为超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收到。这样只要计算
34、出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。在启动发射电路的同时启动单片机内部的定时器T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT0端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式。置位总中断允许位EA并给显示端口P0和P1清0。然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1 ms(这也
35、就是超声波测距仪会有一个最小可测距离的原因)后,才打开外部中断0接收返回的超声波信号。由于采用的是22 MHz的晶振,计数器每计一个数约0.5s,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)计算即可得被测物体与测距仪之间的距离。整个系统的流程如图3.1所示开始定时器、液晶初始化启动T0开中断启动T0发40kHz方波延时避开盲区开外部中断0有回波停止T0,T1关中断数据处理显示输出YN图3.1 系统工作流程4系统误差分析及改进本次实验的测量数据存在一定误差。问题的主要原因有以下几个方面:首先,超声波在介质中传播时,随着传播距离的增加,其能量逐渐减弱,这种现象叫超
36、声波的衰减。引起超声波衰减的主要原因有以下三方面:超声波在传播过程中,由于声束的扩散能量逐渐分散,从而使单位面积内超声波的能量随传播距离的增加而减弱,超声波的声压和声强均随至声源的距离的增加而减弱;当声波要传播过程中遇到由不同声阻抗介质所组成的界面时,就将产生散乱反射,从而损耗了声波的能量,被散射的超声波在介质中沿着复杂的路径传播下去,最终变为热能,声波在介质中传播时,由于介质的粘滞性造成近质点之间的内摩擦从而使一部分声能转化热能;同时,由于介质的热传导,介质的稠密和稀疏部分之间进行热交换,从而导致声能的损耗,这就是介质的吸收现象。其次,测量装置会产生干扰,主要有以下几个方面:机械振动或冲击会
37、对传感器产生严重的干扰;光线对测量装置中的半导体器件会产生干扰;温度的变化会导致电路参数的变动,产生干扰;还要考虑电磁干扰的影响。再次,超声波回波声强与待测距离的远近有直接关系,所以实际测量时,不一定是第一个回波的过零点触发。然后,不仅仅是温度,空气湿度、气压和空气密度等环境因素都会对超声波在空气中的速度产生影响导致产生误差。最后,即使超声波发射器和接收器之间的距离能保证远远小于测量距离,角度也会对超声波测距的准确性产生一定影响。解决以上问题的主要方法有以下两点:第一通过测量数据作函数图,找出误差规律,在软件中计算距离的部分进行改进以补偿误差;第二可采用多个超声波换能器分别作为多路超声波发射和
38、接收的设计方法,这样可以增加所测量的覆盖范围。5总结本设计研究了一种基于单片机技术的超声波智能测距报警系统。该系统通过以STC89C52单片机为工作处理器核心,超声波传感器,它是一种新颖的被动式超声波探测器件,能够以非接触测出前方物体距离,并将其转化为相应的电信号输出.该报警器的最大特点就是使用户能够操作简单、易懂、灵活;且安装方便、智能性高、误报率低。随着现代人们安全意识的增强以及科学技术的快速发展,相信报警器必将在更广阔的领域得到更深层次的应用。参考文献1孙培刚,张春迪,张艳鹏.基于51单片机超声波测距系统J.民营科技,2011年,第3期:34-36.2曹月真.基于51单片机的超声波系统的
39、设计.电子世界,2011年,第10期:55-56.3赵小强,赵连玉.超声波测距系统中的温度补偿J.组合机床与自动化加工技术,2008年,第12期:62-65.4戴曰章.基于AT89C51单片机的超声波测距系统J.电气时代,2005年,第7期:131-132.5王安敏,张凯.基于AT89C52单片机的超声波测距系统.仪表技术与传感器,2006年,第6期:48-49.6马继鹏,尚璇,蒋空空.基于51单片机的语音导盲系统的设计J.科技资讯,2011年.第11期:2-3.7邱平.略论我国非金属超声波检测仪器的发展状况J.工程质量.1998年.第1期:25-27.8王纯正.超声学M.北京:人民卫生出版社
40、,1993年.56-59.9王懿川.基于单片机控制的超声波测距报警系统J.上海计量测试,2011年.第5期:53-56.10李丽霞.单片机在超声波测距中的应用J.电子技术,2002年第6期:31-34.11荀殿栋.数字电路设计实用手册M.北京:电子工业出版社,2003年.44-45.12郭清.基于STC89C52的超声波测距防撞系统设计J.仪表技术与传感器,2011年.第6期:74-77.附录A图A 原理图附录B主程序#include /调用单片机头文件#define uchar unsigned char /无符号字符型 宏定义变量范围0255#define uint unsigned in
41、t /无符号整型 宏定义变量范围065535#include /数码管段选定义 0 1 2 3 4 56 7 8 9uchar code smg_du=0x28,0xee,0x32,0xa2,0xe4,0xa1,0x21,0xea,0x20,0xa0, 0x60,0x25,0x39,0x26,0x31,0x71,0xff; /断码uchar dis_smg8 =0;/数码管位选定义sbit smg_we1 = P34; /数码管位选定义sbit smg_we2 = P35;sbit smg_we3 = P36;sbit smg_we4 = P37;sbit c_send = P32;/超声波发
42、射sbit c_recive = P33;/超声波接收uchar smg_i = 3; /显示数码管的个位数bit flag_300ms ;long distance; /距离uint set_d; /距离uchar flag_csb_juli; /超声波超出量程uint flag_time0; /用来保存定时器0的时候的/*处理距离函数*/void smg_display()dis_smg0 = smg_dudistance % 10;dis_smg1 = smg_dudistance / 10 % 10;dis_smg2 = smg_dudistance / 100 % 10 & 0xdf
43、; ;/*数码位选函数*/void smg_we_switch(uchar i)switch(i)case 0: smg_we1 = 0; smg_we2 = 1; smg_we3 = 1; smg_we4 = 1; break;case 1: smg_we1 = 1; smg_we2 = 0; smg_we3 = 1; smg_we4 = 1; break;case 2: smg_we1 = 1; smg_we2 = 1; smg_we3 = 0; smg_we4 = 1; break;case 3: smg_we1 = 1; smg_we2 = 1; smg_we3 = 1; smg_we
44、4 = 0; break;/*数码显示函数*/void display()static uchar i; i+;if(i = smg_i)i = 0;smg_we_switch(i); /位选P1 = dis_smgi; /段选 /*小延时函数*/void delay()_nop_(); /执行一条_nop_()指令就是1us_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); /*超声波测距程序*/void send_wave()c_send = 1; /10us的高电平触发 delay();c_send = 0; TH0 = 0; /给定时器0清零TL0 = 0;TR0 = 0; /关定时器0定时while(!c_recive); /当c_recive为零时等待TR0=1;while(c_recive) /当c_recive为1计数并等待flag_time0 = TH0 * 256 + TL0;if(flag_time0 40000) /当超声波超过测量范围时,显示3