资源描述
论文题目:超声波测距仪的设计(软件)专 业:自动化本 科 生: (签名)_指导教师: (签名)_摘要超声波测距作为一种非接触性的光学测量方法,近年来得到了广泛应用。它具有测量方便,不对被测物体产生损坏等优点。超声波明显特征是方向性好,穿透性强。尤其是在光不透过的固体中,它碰到杂质或分界面就有显著的反射。因此,可以利用超声波实现对距离的测量。距离是通过测量发射的超声波与接受到被测物体反射的回波之间的时差来确定的。采用压电式超声波换能器。装置包括单片机系统、显示电路、超声波发射电路和超声波检测接收电路四部分。系统的软件部分则包括主程序、定时子程序、显示子程序和外部中断服务子程序。为了有利于程序结构化和容易计算出距离,主程序采用C语言编写。完成了超声波测距仪的软硬件设计,实现了测量结果的显示,经系统调试可看出,LED数码管显示清晰稳定,测量结果稳定可靠,测距仪最大误差不超过5cm。关键词:超声波测距仪,单片机Thesis: ultrasonic range finder (software)Specialty: AutomationUndergraduate: (Signed) _Instructor: (Signed) _ABSTRACT Ultrasonic Ranging is a non-contact optical measurement method which has been widely applied in recent years. It has the advantages of measuring convenience, not be the object produce damage. Obvious features of the ultrasound is directional, penetrating. Especially in light opaque solid, it met the impurities or the interface will have a significant reflection. Therefore, we can use ultrasound to achieve the measurement of distance. The distance is got by measuring 请键入文字或网站地址,或者上传文档。time difference that between emission ultrasonic and the echo of the measured object reflection received with piezoelectric ultrasonic transducer. The device includes a microcontroller system, display circuit, ultrasonic transmitter and ultrasonic detection receiver circuit. The software part of the system include the main program, timing subroutine display routines, and external interrupt service routine. The main program use C language for conducive to the program structure and easy to calculate the distance. I complete hardware and software design of the ultrasonic range finder, and achieve measured results display. According to system debugging, LED digital display clear and measuring results are stable and reliable and the range finder error is less than 5cm.KEY WORDS: ultrasonic range finder SCM前言随着科技的迅猛发展越来越多科技成果被广泛的运用到人们的日常生活当中,给我们的生活带来了诸多方便。这一设计就是本着这个宗旨出发,利用超声波的特性来为我们服务。人们能听到声音是由于物体振动产生的,它的频率在20Hz-20kHz范围内,超过20kHZ称为超声波。由于超声波频率较高,沿直线传播,绕射小,穿透力强,指向性强,传输过程中衰减少,能量消耗缓慢,在介质中传播的距离较远,遇到杂质或分界面时会产生反射波,因而超声波经常用于距离的测量。超声波有两个特点,一个是能量大,一个是沿直线传播,它的应用就是按照这两个特点展开的。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人,汽车安全,海洋测量等上得到了广泛的应用。本设计采用超声波传感器工作于发射和接收,利用声波在空气中的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物到超声波测距器之间的距离,并实时显示出来。论文概述了超声波检测的发展及基本原理,对于系统的程序设计进行了讨论,并且在介绍超声波测距系统功能的基础上,提出了软件系统的总体构成及其子程序设计。目录1绪论11.1课题设计的研究现状11.2课题设计的任务和要求21.2.1课题设计的任务21.2.2课题设计的要求21.3选题的意义31.4 研究内容及论文构成32超声波测距原理52.1超声波简介52.1.1超声波的声学特性52.1.2超声波的发生原理62.2超声波传感器的原理与特性72.2.1原理72.2.2特性92.3超声波测距仪的测距原理92.3.1单片机最小系统112.3.2超声波发射电路122.3.3超声波接收电路132.3.4超声波测距仪显示电路152.4本章小结153 超声波测距系统软件设计173.1 超声波设计概述173.2主程序流程图183.3 定时/计数器T0/T1定时程序流程图203.3.1方式控制寄存器-TMOD203.3.2控制寄存器-TCON213.3.3定时器T0流程图213.3.4定时器T1中断服务程序流程图223.4外部中断服务程序流程图233.5显示程序流程图233.6计算程序流程图244电路调试及误差分析264.1系统软件的调试264.2系统的软硬件串联调试284.3系统的误差分析304.3.1声速引起的误差314.3.2单片机时间分辨率的影响314.3.3随机误差324.4提高测距精度的方法324.5本章小结33结 论34致 谢35参考文献:36附录:371绪论1.1课题设计的研究现状当我们的测距技术日渐趋于成熟,我们对测距的精度要求也日渐严苛,传统的测距技术在某些场合已经不能够满足人们的需要,如在井道,水位,管道等的长度测量方面,传统的测距方式已然不再适用。在现代社会中,我们既要要求测量的准确性,又要避免人类在危险的环境下作业。为此我们需要一种可以精确测量的非接触式的测距方式,于是超声波测距仪应用而生。由于超声波是一种非接触式的测量方式,它具有不被光、粉尘或电磁波等外界因素干扰的一系列优点,由于自身抗干扰性好、方向性强、反射性好等优点越来越多地被人们作为一种测距识别手段1。它利用超声波测距传感器的发射探头与接收探头工作时的时间差来计算出障碍物的距离,对被测目标无任何影响,再者超声波传播速度也在一定范围内与其频率无关。这些独特的优点都使得超声波测距越来越受到人们的重视,也从70年代末期开始在生产领域广泛应用。这也就是超声波常被用于测距的原因,如测距仪或物们测量仪等等都是通过超声波来实现的。利用超声波检测距离比较迅速、方便,计算也较简单,易于做到实时检测,并且在精度方面也能够达到工业实用的要求,因此在工农业生产上也得到了广泛的应用。超声波测距传感器按其可实现的检测距离可以分为大、中、小三种量程,小量程探测距离小于2m,工作频率60kHz300kHz之间;中量程探测距离约为2ml0m,工作频率在40kHz60kHz之间;大量程探测距离约为20m50m,工作频率处在16kHz30kHz之间。在我国的相关技术与发达国家相比也较落后,因此对这种能准确、高效、实时测量距离的方式的研究在我国尤其重要。 不论在国内还是在国外,超声波测距都占有着相当重要的地位,而它的应用也已经越来越广泛,但在国内,它的发展尚处于初期阶段,利用超声波测距技术还十分有限,在不久的未来,超声波测距仪也必将作为重要的测距手段而被社会广泛需要。而随着计算机的迅速发展,超声波测距仪将更加智能化,精确化。1.2课题设计的任务和要求1.2.1课题设计的任务此次课题的研究方向是超声波测距仪的软件设计。软件主要工作流程是:单片机编程产生超声波,在系统发射超声波的同时利用定时器的计数功能开始计时,接收到回波后,接收电路输出端产生的负跳变在单片机的外部中断源输入口产生一个中断请求信号,响应外部中断请求,执行外部中断服务子程序,停止计时,读取时间差,计算距离,然后将数据输出P0口显示。软件系统总体划分为:主程序模块,显示子程序模块,定时子程序模块,外部中断子程序模块。主程序完成数据初始化,参数设置,以及各功能模块的调用。显示部分完成数据在LED数码管的显示。中断服务程序中,提供了定时、计数功能,并且调用相关处理程序。故总体而言,此次选题的要求可概括为以下几点:(1).设计出超声波测距仪的硬件结构电路。(2).对设计的电路进行分析能够产生超声波,实现超声波的发送与接收,从而实现利用超声波方法测量物体间的距离。(3).以数字的形式显示测量距离。(4).对设计的电路进行分析。1.2.2课题设计的要求通过介绍我们知道,以单片机为核心的超声波测距系统设计简单、方便,而且测精度能达到工业要求。本课题研究的测距系统就是用单片机控制的。通过超声波发射器向某一方向发射超声波,单片机在发射时刻同时开始计时,超声波在空气中传播,途中碰到障碍物就立即反射回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为V,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离。本系统利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时。接收电路的输出端接单片机的外部中断源输入口。系统定时发射超声波,在启动发射电路的同时启动单片机内部的定时器,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波的反射波时,接收电路输出端产生一个负跳变,在单片机的外部中断源输入口产生一个中断请求信号,单片机响应外部中断请求执行外部中断服务子程序,读取时间差,计算距离,结果输出给LED显示。利用本测距系统测量,范围应在20cm200cm内,其最大误差控制在5cm。1.3选题的意义超声波测距仪是一种非接触检测技术,不受光线、被测对象着色、大小等的影响,较其它测距仪,它更加而潮湿、高温、粉尘、腐蚀气体等恶劣环境,具有不污染、高可靠、长寿命等优点,且易于维护2。超声波测距技术是一种原理简单、易于实现的非接触测量技术,被广泛地应用于工业、医疗、军事及日常生活等诸多领域4。利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,因此为了使移动机器人能够自动躲避障碍物行走,就必须装备测距系统,以使其及时获取距障碍物的位置信息(距离和方向),因此超声波测距在移动机器人的研究上得到了广泛的应用。而本次研究的就是以AT89C52单片机为核心实现测距,有着非常重要的现实意义。首先,有利于培养学生的独立科研开发能力。其次,有利于学生进一步理解所学的专业知识,将自身所学与实践相结合,实现自身能力的锻炼与提高。第三,更重要是培养团队合作意识,通过与搭档的共同努力,基于对超声波测距仪软硬件的了解,设计出一个简单,精度高,误差小的测距装置。此题是分为两人一起来做的,目的在于使学生学会在团队中摆正自己的位置,根据自己的能力分担工作;培养同组内的合作意识及学习别人的长处,既能当好主角,也甘于当好配角,能脚踏实地的做好本职工作。1.4 研究内容及论文构成本文设计的超声波测距仪是动态测距,能够连续地不间断地对障碍物进行实时的检测。该装置是由超声波发射模块、接收模块、显示模块、及控制模块组成。由单片机进行整体控制。当打开通电开关时,装置即开始测距,从发射传感器发射出的脉冲串会在碰到障碍物后反射至接收传感器,经过一系列的处理或计算过程就会在显示模块显示出来。 论文主要由以下四部分组成: 第1章为论文的绪论部分。包括选题意义、选题任务、选题要求和选题的研究背景及其相关技术在国内外的研究现状。 第2章为系统的硬件部分的整体设计。主要是讲超声波的测距原理。包括对超声波的简介、超声波传感器的原理及特性及超声波测距仪的测距原理。 第3章为系统软件设计。首先是对系统软件进行整体的分析,阐述软件设计的整体概念,然后再具体讨论程序的各个模块。包括了主程序、显示子程序、定时器子程序和外部中断子程序。并画出各模块的程序流程图。 第4章为系统整体调试及误差分析。先对硬件组装及性能进行分析,再进行软件部分的分析,最后是软硬件结合后的调试结果。本章的最后是对可能出现的误差进行分析并提出改进意见。 2超声波测距原理2.1超声波简介声波是一种能在气体、固体、及液体中传播的机械波,由于振动频率的不同可分为:(1)次声波:振动频率低于16Hz的机械波。(2)可闻波:振动频率在1620kHz之间,这个频率范围内的声波可以为人类的耳朵所听到。(3)超声波:振动频率高于20kHz的机械波。描述声波的物理量有两点:(1)声压:介质中有声波传播时的压强与无声波传播时的静压强介质中有声波传播时的压强与无声波传播时的静压强之差称为声压。随着介质中各点声振动的周期性变化,声压也在作周期性变化,声压的单位是。 (3)声强:声强又称为声波的能流密度,即单位时间内通过垂直于声波传播方向的单位面积的声波能量。声强是一个矢量,它的方向就是能量传播的方向,声强的单位是。2.1.1超声波的声学特性描述声波的声学特性的物理量有三点:(1)声速:声波在介质中的传播速度取决于介质的密度和弹性性质。除水以外,大部分液体中的声速随温度的升高而减小,而水中的声速则随温度的升高而增加。流体中的声速随压力的增加而增加。其声速C也与温度有关,表2-1列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。表2-1 声速与温度关系表5温度()3020100-10-20-30声速(m/s)349344338331325319313(2)声阻抗特性: 声阻抗特性能直接表征介质的声学性质,其有效值等于传声介质的密度与声速c之积,记作声波在两种介质的界面上反射能量与透射能量的变化,,取决于这两种介质的声阻抗特性。两种介质的声阻抗特性差愈大,则反射波的强度愈大。例如,气体与金属材料的声阻抗特性之比,接近于1:80000,所以当声波垂直入射在空气与金属的界面上时,几乎是百分之百地被反射。温度的变化对声阻抗特性值有显著的影响,实际中应予以注意。(3)声的吸收:传声介质对声波的吸收是声衰减的主要原因之一,固体介质的结构情况对声波在其中的吸收有很大的影响。例如:均匀介质对超声波的吸收并不显著,而当介质结构不均匀时,声吸收情况将发生明显变化。 2.1.2超声波的发生原理通常正常人耳朵的听力的声波范围是20Hz20kHz,超声波是指振动频率在20kHz以上的声波6。因为它的振动次数甚高,超出了人类的听觉上限,人们把这种听不见的声波叫做超声波。超声波和可闻声在本质上其实是一致的,它们的共同点都是机械振动波,是一种纵波,在弹性介质内传播。它们在本质上是一种能量的传播形式,其不同点是超声波频率较可闻波频率高,波长也短,在一定范围内可沿直线传播,且具有良好的束射性和方向性。超声波为直线传播方式,频率越高,绕射能力越弱,但反射能力越强,为此利用超声波的这种性质就可以制成超声波传感器。有多种方法产生超声波,其中最简单的方法就是用直接敲击超声波振子,但这种方法需要人参与,因而是不能持久的,也是不可取的。为此,在实际中采用电路的方法产生超声波,根据使用目的的不同来选用其振荡电路7。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等8。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。2.2超声波传感器的原理与特性2.2.1原理 用超声波作为检测手段,应能发射超声波和接收超声波。可将超声波与电量做转换的装置称为超声波传感器。习惯上称为超声波换能器或超声波探头。常用的超声波传感器有两种,即压电式超声波传感器 (或称压电式超声波探头)和磁致伸缩式超声波传感器。 (1) 压电式超声波传感器 压电式超声波传感器主要由超声波发射器(或称发射探头)和超声波接收器(或称接收探头)两部分组成,它们都是利用压电材料(如石英,压电陶瓷等)的压电效应进行工作的。利用逆压电效应将高频电振动转换成高频机械振动产生超声波,以此作为超声波的发射器。而利用正压电效应将接收的超声振动波转换成电信号时,以此作为超声波的接收器。在实际应用中,压电式超声波传感器的发射器和接收器也可合成为一体,由一个压电元件作为发射和接收兼用,其工作原理为:将脉冲交流电压加在压电元件上,使其向被测介质发射超声波,同时又利用它接收从该介质中反射回来的超声波,并将反射波转换为电信号输出。因此,压电式超声波传感器实质上是一种压电式传感器。 (2)磁滞式超声波传感器磁滞式超声波传感器主要由铁磁材料和线圈组成。超声波的发射原理是:把铁磁材料置于交变磁场中,产生机械振动,发射出超声波。其接收原理是:当超声波作用在磁致材料上时,使磁滞材料振动,引起内部磁场变化,根据电磁感应原理,使线圈产生相应的感应电势输出。 本项目所用的压电式超声波发生器。压电式超声波换能器是利用压电晶体的谐振来工作的 。超声波换能器内部结构如图2-1所示,它有两个压电晶片和一个换能板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器了9。超声波发射换能器与接收换能器在结构上稍有不同,使用时应分清器件上的标志。 图2-1 超声波发生器内部结构超声波测距原理为:超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(),即:这就是所谓的时间差测距法也有称为渡越时间法TOF(timeofflight),见图2-2。超声波传感器有发送器和接收器,但一个超声波传感器也可以具有发送和接收声波的双重作用,即为可逆元件。一般市场上出售的超声波传感器有专用型和兼用型,专用型就是发送器用作发送超声波,接收器用作接收超声波;兼用型就是发送器和接收器为一体传感器,即可发送超声波,又可接收超声波。超声波传感器的谐振频率(中心频率)有23kHz、40kHz、75kHz、200kHz、400kHz等10。谐振频率变高,则检测距离变短,分解力也变高。图2-2 超声波测距示意图2.2.2特性现以MA40S2R接收器和MA40S2S发送器为例说明超声波传感器的各种特性,表2-2示出的就是这种超声波传感器的特性。传感器的标称频率为40kHz,这是压电元件的中心频率,实际上发送超声波时是串联谐振与并联谐振的中心频率,而接收时各自使用并联谐振频率。表2-2 超声波传感器MA40S2R/S的特性种类特性MA40S2R接收MA40S2S发送标称频率40kHz灵敏度74dB以上100dB以上带宽6kHz以上(80dB)7kHz以上(90dB)电容1600pF1600pF绝缘电阻100M以上温度特性20+60范围内灵敏度变化在10dB以内超声波传感器的带宽较窄,大部分是在标称频率附近使用,为此,要采取措施扩展频带,例如,接入电感等。另外,发送超声波时输入功率较大,温度变化使谐振频率偏移是不可避免的,为此,对于压电陶瓷元件非常重要的是要进行频率调整和阻抗匹配。MA40S2R/S传感器的发送与接收的灵敏度都是以标称频率为中心逐渐降低,为此,发生超声波时要充分考虑到这一点以免逸出标称频率。图2-3表示传感器方向性的特性,这种传感器在较宽范围内具有较高的检测灵敏度,因此,适用于物体检测与防犯报警装置等。2.3超声波测距仪的测距原理超声波测距方法主要有相位检测法、声波幅值检测法和渡越时间法三种。其中,相位检测法精度高,但检测范围有限; 声波幅值检测法易受反射介质的影响11。因此,当前超声波测距一般使用渡越时间法。本系统的特点是采用AT89C52单片机作为控制器,控制超声波的发射和对超声波自发射至接收往返时间的计时,用动态扫描法实现测距的LED数字显示,超声波驱动信号用单片机的定时器产生,超声波测距系统组成框图见图2-4。图2-3 传感器的方向性单片机发射电路接收电路障碍物发射头接收头图2-4 超声波测距系统原理图 如图2-5所示,超声波测距系统是由控制电路、超声波接收电路、超声波发射电路、显示电路及电源电路几部分组成的。超声波传感器的电源常由外部供电,一般为直流电压,电压为+5V左右,再经传感器内部稳压电路变为稳定电压供传感器工作。下面将分别介绍控制电路也即单片机最小系统、发射电路、接收电路、及显示电路。LED显示电路电源电路AT89C52系统控制电路超声波发射电路超声波接收电路 图2-5 超声波测距系统的构成2.3.1单片机最小系统其作用主要是为了保证单片机系统能正常工作。单片机最小系统主要由AT89C52单片机、外部振荡电路、复位电路和+5V电源组成。在外部振荡电路中,单片机的XTAL1和XTAL2管脚分别接至由12MH。晶振和两个22pF电容构成的振荡电路两侧,为电路提供正常的时钟脉冲。在复位电路中,单片机RST管脚一方面经10F的电容接至电源正极,实现上电自动复位,另一方面经开关s接电源。其主要功能是把PC初始化为0000H,是单片机从0000H单元开始执行程序,除了进入系统的初始化之外,当由于程序出错或者操作错误使系统处于死锁状态时,为了摆脱困境,也需要按复位键重新启动,因此,复位电路是单片机系统中不可缺少的一部分。而且单片机最小系统也是本次课题设计的控制中心,由它负责超声波的发出与接收,计算并处理测量结果,最后将结果通过P0口显示出来。可以说它是整个设计的核心所在,好比大脑之于人类的重要性。如图2-6即为单片机最小系统。图2-6单片机最小系统2.3.2超声波发射电路超声波发射电路如图2-7所示,AT89C52通过外部引脚P1.0 输出脉冲宽度为25s , 40kHz的20个脉冲串通过超声波驱动电路以推挽方式加到超声波传感器而发射出超声波。由于超声波的传播距离与它的振幅成正比,为了使测距范围足够远,可对振荡信号进行功率放大后再加在超声波传感器上。发射电路的主要目的是驱动超声波发射探头内的压电晶片振动,使之发出超声波,并且发射的超声波具有一定的能量,可传播较远的距离,实现测量的目的。驱动超声发射探头工作的方式很多,只要在探头上施加一串其频率与探头中心频率一致且能量足够大的脉冲即可。发射脉冲可以由单片机或振动器来实现。本设计中采用的是由单片机发出40kHz的方波,单片机P1.0输出的 40kHz方波信号一路经一级反向器后送到超声波换能器的一个电极。另一路经两级反向器后送到超声波换能器的另一个电极。用这种推挽形式将方波信号加到超声波换能器两端,可以提高超声波的发射强度。输出端采用两个反向器并联,用以提高驱动能力。加上拉电阻一方面可以提高反向器74HC04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果 ,缩短其自由振荡的时间。该测距电路的40kHz方波由单片机编程产生,方波的周期为1/40,即25s,半周期为12.5s。每隔半周期时间,让方波输出脚的电平取反,便可产生40kHz方波。图2-7 发射部分电路图2.3.3超声波接收电路超声波接收器接收反射的超声波转换为40KHz毫伏级的电压信号,需要经过放大、处理、用于触发单片机中断INT0。一方面传感器输出信号微弱,同时根据反射条件不同信号大小变化较大,需要放大倍数大约为100到5000倍,另一方面传感器输出阻抗较大,这就需要高输入阻抗的多级放大电路,这就会引入两个问题:高输入阻抗容易接收干扰信号,同时多级放大电路容易自激振荡。参考各种资料最后选用了SONY公司的专用集成前置放大器CX20106达到了比较好的效果。CX20106由前置放大器、限幅放大器、带通滤波器、检波器、积分器、整型电路组成。其中的前置放大器具有自动增益控制功能,可以保证在超声波传感器接收较远反射信号输出微弱电压时放大器有较高的增益,在近距离输入信号强时放大器不会过载。其带通滤波器中心频率可由芯片脚5的外接电阻调节。功能可描述为:在接收到与滤波器中心频率相符的信号时,其输出脚7脚输出低电平。芯片中的带通滤波器、积分器等使得它抗干扰能力很强。如图2-8所示:图2-8 内部结构框图超声波接收及信号处理电路是此系统设计和调试的一个难点。超声波接收器包括超声波接收探头、CX20106A处理两部分,如图2-9。超声波探头必须采用与发射探头对应的型号,关键是频率要一致,否则将因无法产生共振而影响接收效果,甚至无法接收。由于经探头变换后的正弦波电信号非常弱,经过CX20106A处理后产生负跳变,引起单片机的外部中断。P3.2图2-9 接收部分电路图2.3.4超声波测距仪显示电路超声波测距系统的显示要求比较简单,测量结果采用十进制数字显示。只需能显示0-9的数字,且显示稳定无闪烁即可。因此显示部分采用七段半导体数码管即LED。根据各管的极管接线形式,可分为共阴极型和共阳极型。在共阴极接法中,LED数码管的g-a七个发光二极管因加正电压而发亮,因加零电压而不发亮。而在共阳极接法中,刚好与共阴极接法向反。LED数码管具有亮度大,响应速度快等优点。LED显示器有静态显示和动态显示两种。本设计中采用动态显示方式,以实时显示距离变化。电路图如图2-10所示。本设计采用单片机直接驱动LED的方法,从而简化了显示电路。但是,在制作超声波测距系统的过程中,由单片机直接驱动LED显示,电流较小,LED虽然有显示但是比较暗,因此用了三极管来对电流进行放大可解决这个问题。图2-10 显示电路图2.4本章小结本章我们详细介绍了超声波传感器的原理及其特性,超声波发送器就是利用压电逆效应的原理产生超声波的。超声波传感器系统由发送器、接收器、控制部分、显示电路以及电源部分构成。超声波的测距原理,它包括对单片机的最小系统、超声波发射电路、超声波接收电路及显示电路的介绍。3 超声波测距系统软件设计3.1 超声波设计概述本系统采用模块化设计,由主程序、定时子程序、显示子程序及外部中断服务子程序组成。超声波测距的原理为超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收到。这样只要计算出从发出超声波信号到接收到返回信号所用的时间T12,就可算出超声波发生器与反射物体的距离。距离的计算公式为: (3-1) 其中,为被测物与测距仪的距离,为声波的来回的路程,为声速,为声波来回所用的时间。在启动发射电路的同时启动单片机内部的定时器T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT0端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。当系统进入超声波接收中断程序后,该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功。测出的结果将以十进制BCD码方式送LED显示,然后再发超声波脉冲重复前面的测量过程。系统资源分配表见表3-1。表3-1 资源分配表接口功能P0,P2显示输出口P1.0超声波输出端口P3.2超声波接收中断入口T1定时模式2T0计数模式1外部中断0判断回波3.2主程序流程图单片机编程产生超声波,在系统发射超声波的同时利用定时器的计数功能开始计时,接收到回波后,接收电路输出端产生的负跳变在单片机的外部中断源输入口产生一个中断请求信号,响应外部中断请求,执行外部中断服务子程序,停止计时,读取时间差,计算距离,然后通过软件译码,将数据输出P0口显示。主程序的流程图如图3-1所示: 主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式,T1为定时器T2模式,开中断IE,再设置超声波个数。再开T0,调用显示程序。由于采用的是12 MHz的晶 振,计数器每计一个数就是1s,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式3-2计算,即可得被测物体与测距仪之间的距离,设计时取20时的声速为340 m/s则有: (3-2)其中,为计数器T0的计算值。测出距离后结果将以十进制BCD码方式送往LED显示,然后再发超声波脉冲重复测量过程。为了有利于程序结构化和容易计算出距离,主程序采用C语言编写。部分源程序如下:init_CTC( ); /* 初始化定时器 */init_INT( ); /* 初始化外部中断 */CLflag=1; /* 测量标志 */cshu=0; /* 传数 */delay(200); /*延时*/;IE=0x80; /* 开中断 */ET1=1; ET0=1;TR1=0; TR0=0;TL1=T12us; TH1=T12us;开始系统初始化T1自动重装为16位定时器设置超声波个数计算距离调用显示标志位CL flag是否为1?开T0P1.0口发送超声波YN返回图3-1主程序流程图 3.3 定时/计数器T0/T1定时程序流程图AT89C52单片机内带有两个16位定时/计数器T0和T1,它们均可作为定时器或计数器使用。这两个定时/计数器可用于定时、延时、对外部事件计数、分频及事故记录等。它由6个特殊功能寄存器组成。其中TMOD为定时/计数器方式控制寄存器;TCON为定时/计数器控制寄存器。3.3.1方式控制寄存器-TMOD 定时/计数器T0、T1都有四种工作方式,可通过程序对TMOD进行设置来选择,其各位定义如下:TMOD.7TMOD.6TMOD.5TMOD.4TMOD.3TMOD.2TMOD.1TMOD.0GATEM1M0GATEM1M0GATE:门控位。当GATE0,定时器只由TR0或TR1来控制启停。此时如果位为1,定时器启动开始工作;为0,定时器停止工作;当GATE1时,定时器的启动要由外部中断引脚和位共同控制。只有当外部中断引脚INT0或INT1为高时,置1才能启动定时器工作。:定时或计数功能选择位。当O时设置为定时器方式;当1时设置为计数器方式。 M1、M0:定时/计数器工作方式选择位。定时/计数器有四种工作方式,如表4-2:表4-2 定时/计数器工作方式的选择M1 MO工作方式功能描述0 方式013位定时/计数器0 1方式116位定时/计数器1 0方式2具有自动重装初值的8位定时/计数器1 1方式3分为两个独立的8位计数器(仅适用于T0)3.3.2控制寄存器-TCON TCON是用于控制定时/器的启、停溢出标志和外部中断信号触发方式,其各位定义如下:TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.0TF1TR1TF0TR0IE1IT1IE0IT0 TF1和TF0;分别为定时器1和定时器0溢出标志。当定时器计满产生溢出时,由硬件自动置“1”,并可申请中断。进人中断服务程序后,由硬件自动清0。这两位也可作为程序查询的标志位,在查询方式下应由软件来清0。 TR1和TR0:为定时器1和定时器0的启动控制位。当由软件使TRi清0而停止定时器的工作。定时器启动时该位应置“1”。 IE1和IE0:为外部中断INT1和外部INT0的中断请求标志位。当外部中断源有请求时其对应的中断标志位置“1”。其复位由触发方式来设置。 IT1和IT0:为外部中断1和外部中断0的触发方式选择位。设置为“0”时为电平触发方式;设置为“1”时为边沿触发方式。TCON中低4位是与外部中断有关的位,高4位为定时器控制位。它是一个可以进行位寻址的寄存器。当系统复位时所有位均为0。若要启动定时器可以使用位 操作指令SETB 来启动13。3.3.3定时器T0流程图在本系统中设置T0工作在模式1下,为16位计数器,这16位是由TH0(TH1)的高8位和TL0(TL1)的低8位构成。在方式1 工作下,计数器计数范围为1至65536。它的初始化指令为init_CTC( )。如图3-3所示,刚开始是定时器T0入口,然后在关定时。这里之所以关定时是为了让T0T1能够同步,也就是发射超生波的同时开始计时。关定时之后,给它赋初值00.这时在同时启动T0、T1。计数器T0入口 关定时 启动T0,T1 赋初值 返回图3-2定时器T0流程图3.3.4定时器T1中断服务程序流程图方式2有自动重新加载初值的功能,使定时器做更精确的计时。在方式2 工作下,计数器最多可计数个数为M2E8256。本设计采用模式2,其具体程序如下:TMOD=0x21; /工作于模式2TH1=T12us; /设置初值TL1= T12us;如图3-4所示,刚开始是定时器T1入口,然后P1.0取反,从P1.0口输出的是高电平,取反后会发生跳变,产生方波。这时在检验是否发送完。程序设计的是给串数(cshu)自减,减到零时就发送完.如果发送完就关T1,如果没有发送完,就继续发送。然后再开外部中断。定时器T1入口P1.0发送脉冲关T1开外部中断中断返回是否发送完?NY 图3-3 定时器T1中断服务流程图3.4外部中断服务程序流程图如图3-4所示,进入外部中断入口,关T0T1及外部中断,再送计数值,也就是超生波发送到接收到的时间,再置位标志位。3.5显示程序流程图 如图3-5所示,在C语言编程中,仅需把计算的四个十进制数字逐个送入P0口即可,且每个数字显示前有0.2s的延时。关外部中断读取时间值计算距离结果输出置位标志位返回外部中断入口延时0.2s将第一位数送入P0口将第二位数送入P0口将第三位数送入P0口延时0.2s 返回将第四位数送入P0口延时0.2s延时0.2s图3-4 外部中断子程序流程图 图3-5 显示程序流程图3.6计算程序流程图利用超声波测距仪测距的核心是测得计数器T0的数,将测量的时间转换为距离。以下程序流程可实现系统的计算功能。系统计算流程图如图3-6所示:利用式子 求得第一位数字读取T0值利用式子求得第二位数字 返回利用式子求得第四位数字利用式子求得第三位数字显示结果图3-6 计算程序流程图4电路调试及误差分析4.1系统软件的调试硬件电路制作完成并调试好后,便可使用合适的软件编程将程序编译好下载到单片机试运行。根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。根据所设计的电路参数和程序,测距仪能测的范围为20200cm,测距仪最大误差不超过5cm。系统调试完后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。下面介绍本系统所采用的编程调试软件的使用及程序下载。如下图4-1所示,双击就可以打开程序编辑环境。图4-1 keil软件启动图标Keil软件是目前最流行开发MCS-51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起,掌握这一软件的使用对于使用51系列单片机来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。使用Keil Software工具时你的项目开发流程和其它软件开发项目的流程极其相似 :1创建一个项目从器件库中选择目标器件配置工具设置 2用C语言或汇编语言创建源程序 3用项目管理器生成你的应用 4修改源程序中的错误 5测试连接应用6下载程序到单片机下面通过截图进行说明:图4-2 keil的操作环境图4-3 芯片的选择图4-2为keil的操作环境。新建工程之后就会,弹出如上图所示的芯片选择窗口。在这里我们选择AT89C52单片机,图4-3显示的就是该单片的相关信息。由于本系统软件采用C语言编写,因此文件格式尾注必须是.C,然后点击按钮Add,将编写好的文档添加入工程,如图4-4,图4-5为文档添加后的工程样式。图4-6为选择12MHz的晶振,再从output选项中选择生成HEX文件,如图4-7。图4-4 文件的添加窗口图4-5 右侧显示就是文档添加后的工程样式图4-6晶振的频率选择窗口图4-7生成HEX文件的选项框4.2系统的软硬件串联调试硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。在用超声波传感器测距离时,接收端会直接接收发射端的信号,影响测量,在程序设计中应该考虑如何避免。根据所设计的电路参数和程序,测距仪能测的范围为20200cm,测距仪最大误差不超过5cm。系统调试完后可对测量误差和重复一致性进行多次实验分析,不断优化系统减小测距误差,使其满足更高的测量要求。下图4-7为仿真调试图 图4-7系统调试图把程序烧入已经调试好的硬件电路中后,便可实现超声波的测距功能。本系统可实现从20cm到200cm的精确测量。如图4-8所示:图4-8超声波测距仪实物图4.3系统的误差分析实际的检测数据如下表格:表4-1实际检测数据表测量次数实际距离X(cm)测量距离Y(cm)误差(%)120.020.52.5240.039.90.2360.060.71.2480.080.40.55100.0100.20.26120.0120.20.27140.0140.60.48160.0160.70.49180.0180.60.310200.0200.90.5最远测量距离: 220cm , 对应实际最远距离为:221cm 。4.3.1声速引起的误差声波传输速度与媒介的弹性模量和密度相关,因此,利用声速测量距离,就要考虑这些因素对声速影响。在气体中,压强、温度、湿度等因素会引起密度变化,气体中声速主要受密度影响,液体的深度、温度等因素会引起密度变化,固体中弹性模量对声速影响较密度影响更大,一般超声波在固体中传播速度最快,液体次之,在气体中的传播速度最慢。气体中声速受温度的影响最大。受声速受温度的影响为 (4-1)图4-8为根据上式测量的温度-声速图。图4-8 空气中温度-声速图由式(4-1)和图4-8可见,当温度从040变化时,将会产生7%的声速变化,因此,为了提高测量准确度,计算时必须根据温度进行声速修正。工业测量中,一般用公式计算超声波在空气中的传播速度,即 (4-3)4.3.2单片机时间分辨率的影响根据超声波测距公式,可知测距的误差是由超声波的传播速度误差和测量距离传播的时间误差引起的。不管是查询发射波与回波,还是由其触发单片机中断再通过软件启停定时器,都需要一定的时候,中断的方式误差相对要小一些。相对而言,单片机的时间分辨率还是不太高,如晶振频率为12MHz时,时间分辨率为1s。在超声波的传播速度是准确的前提下,测量距离的传播时间差值精度只要在达到微秒级,就能保证测距误差小于1mm的误差。使用的12MHz晶体作时钟基准的89C52单片机定时器能方便的计数到1s的精度,因此系统采用AT89C52定时器既能保证时间误差在1mm的测量范围内。4.3.3随机误差由于测量过程中的随机误差是按统计规律变化的,为了减少其影响,可在同一位置处多次重复测量xi,然后取平均值x作为测量的真值14。4.4提高测距精度的方法上节分析了超声波测距系统误差产生的一些原因,如何提高测量精度是超声测距的关键技术。其提高测距精度的措施如下:1. 合理选择超声波工作频率、脉宽及脉冲发射周期。据经验,超声测距的工作频率选择40kHz较为合适;发射脉宽一般应大于填充波周期的10 倍以上,考虑换能器通频带及抑制噪声的能力,选择发射脉宽1ms;脉冲发射周期的选择主要考虑微机处理数据的速度,速度快,脉冲发射周期可选短些。2. 在超声波接收回路中串入增益调节(AGC)及自动增益负反馈控制环节。因超声接收波的幅值随传播距离的增大呈指数规律衰减,所以采用AGC电路使放大倍数随测距距离的增大呈指数规律增加的电路,使接收器波形的幅值不随测量距离的变化而大幅度的变化,采用电流负反馈环节能使接收波形更加稳定。3. 提高计时精度,减少时间量化误差。如采用芯片计时器,计时器的计数频率越高,则时间量化误差造成的测距误差就越小,例如:单片机内置计时器的计数频率只有晶振频率的十二分之一,当晶振频率6MHz时,计数频率为0.5MHz,此时在空气中的测距时间量化误差为0.68mm;当晶振频率为12MHz时,计数频率为1MHz,此时测距时间量化误差为0.34mm。若采用外部硬件计时电路,则计数频率可直接引用单片机的晶振频率,时间量化误差更小15。4. 补偿温度对传播声速的影响。超声波在介质中的传播速度与温度、压力等因数有关,其中温度的影响最大,因此需要对其进行补偿。温度传感器LM92的温度测试分辨率为0.0625,10至+85准确度为1.0,I2C总线接口。用AT89C51的通用I/O端口能很容易的模拟I2C总线的读写时序,LM92高精度温度测量能很好的补偿超声波在不同温度的传播速度。由LM92温度传感器和单片机组成的高精度超声波测距已应用在各种高精度测距的场合,如自动气象站中水气日蒸发量的测试、自动任意形状物体密度测试仪等,它具有测试速度快,能达到毫米级的测量精
展开阅读全文