毕业设计(论文)基于单片机的非接触超声波测距系统设计.doc

上传人:laozhun 文档编号:3981260 上传时间:2023-03-30 格式:DOC 页数:46 大小:1.04MB
返回 下载 相关 举报
毕业设计(论文)基于单片机的非接触超声波测距系统设计.doc_第1页
第1页 / 共46页
毕业设计(论文)基于单片机的非接触超声波测距系统设计.doc_第2页
第2页 / 共46页
毕业设计(论文)基于单片机的非接触超声波测距系统设计.doc_第3页
第3页 / 共46页
毕业设计(论文)基于单片机的非接触超声波测距系统设计.doc_第4页
第4页 / 共46页
毕业设计(论文)基于单片机的非接触超声波测距系统设计.doc_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《毕业设计(论文)基于单片机的非接触超声波测距系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的非接触超声波测距系统设计.doc(46页珍藏版)》请在三一办公上搜索。

1、目 录目 录1第1章 绪论11.1选题背景及意义11.2超声波测距的优势11.3研究内容2第2章 研究方案32.1方案一32.2方案二42.3方案选择6第3章 系统硬件电路设计73.1时钟振荡电路73.1.1概述73.1.2芯片STC89C52RC介绍83.2显示电路103.2.1概述103.2.2动态扫描原理113.2.3驱动介绍113.3超声波发射电路123.3.1概述123.3.2超声波传感器介绍133.4超声波检测接收电路153.4.1概述153.4.2集成电路CX20106A163.5报警电路18第4章 系统软件设计194.1软件设计分析194.2软件设计思路194.2.1主程序19

2、4.2.2超声波发生子程序214.2.3超声波接收中断子程序214.2.4延时子程序22第5章 调试及误差分析235.1软件调试235.2软件烧录245.4误差分析285.4.1温度误差295.4.2串扰问题30第6章 非接触测量的发展前景31第7章 结束语32参考文献33致 谢34附录一 硬件实物图35附录二 PROTEUS画的原理图36附录三 源代码37第一章 绪论1.1选题背景及意义随着工业,建筑业,农业建设的不断发展,距离测量频率的不断提高,一些在早期社会,曾被人类广泛应用的米尺不在满足人类的要求,就出现了现在人类所应用的间接测量工具。测量能够为人们提供一个距离衡量的尺度,对待事物有准

3、确的物理概念。然而随着社会发展和进步,人类的测量范围不断膨胀,由地表向两侧延伸,对地质的研究,宇宙的探索,可谓两极化的发展。大到无边宇宙,小到原子,或更加细微的测量区间,米尺加公式的测量时代早已不能满足探索的需要,而被人们作为探测行业的基石。在测量方面,尤其工业,据了解,我国一些工业领域曾经使用过接触式测量仪,但普遍存在着这样一些问题,抗粉尘能力差,触点接触不良,经常失灵,误动作,不可调整,容易被杂物缠绕而误报等缺点,工作不可靠,影响设备的正常使用。针对以上这些缺点。我们考虑研究一种非接触测量仪器。在信息化,现代化的时代,随着电子技术的发展,非接触测量出现了微波雷达测距,激光测距及超声波测距等

4、。前几种方法由于技术难度大,成本高,一般仅用于军事工业,而超声波测距由于其科研技术难度相对较低,且成本低廉,适于民用推广。所以现在我们所见到一些测量仪基本上都是利用超声波来测距的。超声波作为一种检测技术,采用的是非接触式测量,此特点可使测量仪器不受被测介质的影响。这就大大解决了在粉尘多情况下,给人类引起的身体接触伤害,腐蚀性质的被测物对测量仪器腐蚀,触点接触不良造成的误测情况。且对被测元件无磨损,使测量仪器牢固耐用,使用寿命加长,而且还降低了能量消耗,节省人力和劳动的强度。从长远利益看,是多向节能型研究。目前对于超声波精确测距的需求也越来越大,如油库和水箱液面的精确测量和控制,物体内气孔大小的

5、检测和机械内部损伤的检测等。在机械制造,电子冶金,航海,宇航,石油化工,交通等工业领域也有广泛地应用。此外,在材料科学,医学,生物科学等领域中也占具重要地位。另外,在控制方面,单片机其卓越的性能,在本设计中得到了很好的体现,尤其在检测,控制领域中,具有以下特点:1、小巧灵活,成本低,易于产品化,它能方便地组装成各种智能测试,控制设备及各种智能仪器表。2、可靠性好,适应范围广,单片机芯片本身是按工业测控环境要求设计的,能适应各种恶劣的环境,这是其它原件无法比拟的。3、易扩展,很容易构成各种规模的应用系统,控制功能强。单片机的逻辑控制功能很强,指令系统有各种控制功能所用的指令。4、可以很方便地实现

6、多机制分布式控制。目前对于超声波精确测距的需求也越来越大,如油库和水箱液面的精确测量和控制,物体内气孔大小的检测和机械内部损伤的检测等。在机械制造,电子冶金,航海,宇航,石油化工,交通等工业领域也有广泛地应用。此外,在材料科学,医学,生物科学等领域中也占具重要地位。1.2超声波测距的优势当声波的振动频率大于20000赫兹或小于20赫兹时,我们便听不见了。因此,我们把频率高于20000赫兹的声波称为“超声波”。超声波技术已成为一门以物理、电子、机械及材料科学为基础的、各行各业都要使用的通用技术之一。近年来,由于导航系统、工业机器人的自动测距、机械加工自动化等方面的需要,自动测距变得十分重要。与同

7、类测距方法相比,超声波方法在以下几方面具有明显的优势:(1) 相对于声波,超声波具有定向性好、能量集中、在传输过程中的衰减较小、反射能力较强等优势。(2) 相对于光学方法,超声波的波速小,可以直接测量较近目标的距离,纵向分辨率较高;对色彩、光照度、电磁场不敏感,被测物体处于黑暗,有灰尘,烟雾,电磁干扰,有毒等恶劣的环境有一定的适应能力。特别是在海洋勘测方面具有独特的优点。(3) 超声波传感器结构简单,体积小,费用低,信息处理简单可靠,易于小型化与集成化。超声波作为一种特殊的声波,同样具有声波传输的基本物理特性,反射,折射,干涉,衍射,散射。与物理紧密联系,应用灵活。并且更适合与高温,高粉尘,高

8、湿度和高强电磁干扰等恶劣环境下工作。因此无论从精度还是从可靠性方面,超声波测距做得都比较好。利用超声波检测即迅速,方便,计算简单,又易于做到实时控制,并且在测量精度方面能达到工业实用的要求。具有广泛的发展前景。1.3研究内容设计一个超声波测距器,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。要求测量范围在0.20-4.00m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。本次设计在STC89C52RC单片机及超声波理论的基础上,利用STC89C52RC单片机控制超声波收发设计出超声波测距器,并对设计中存在的各种

9、关键问题进行深入的分析。工作时,超声波发生器不断的发出一系列连续的脉冲,并给单片机提供一个短脉冲。超声波接收器则在接收到遇障碍物反射回来的反射波后,也向单片机提供一个短脉冲。最后由单片机装置对接受信号依据时间差进行处理,自动计算出距离。硬件采用超声波发射与接收分离设计。接收电路采用CX20106A集成电路为核心,简化了电路,并具有较强的抗干扰性;在显示电路部分,采用动态扫描法实现LED数字显示。硬件电路主要分为时钟振荡电路、显示电路、超声波发射电路、超声波检测接收电路和报警电路五部分。软件设计主要由主程序、超声波发生子程序、超声波接受中断程序、显示子程序组成。控制程序采用C语言和汇编语言混合编

10、程。第二章 研究方案2.1方案一方案一:一种单片化可重构的相位式激光测距仪相位式测距是利用一种遵循正弦规律连续变化的调制光波作为光源。测距仪从A点发射调制光波,到达B点反射器又反射回测距仪,经历了2D的路程,且有: (2-1)式中:表示相位移;f是波的振荡频率;C为光波的速度;D为所测的距离。可重构测距系统的总体框图如图2-1所示,该系统主要由光电收发装置、外围模拟电路、单片化可重构自动数字测相电路、中央处理器、距离显以及各数据通道、接口等组成。单片化可重构自动数字测相电路(FPGA)中央处理器距离显示器外围模拟电路光电收发装置与主机通信调制激光束图2-1 可重构测距系统框图(1)光电收发装置

11、:主要用来发射和接收一种遵循正弦规律连续变化的调制光波测距信号,它主要由电源、激光源、激光接收装置和光电转换电路组成。(2)外围模拟电路:完成光信号的调制、解调、放大和整形,主要由调制器和高频振荡器以及放大器等电路组成。(3)距离显示器:显示可重构自动数字测相电路输出的距离信息。(4)中央处理器:完成整个系统的协调工作,进行处理任务的调度,并可根据需要控制单片化自动数字测相电路的重构。(5)单片化可重构自动数字测相电路:是本课题设计的核心,本设计的整个体系结构是可重构的,各个模块在多种测量模式下是可重用的。在微观上,该电路在测量过程中的参数可实时重构,比如可以实时地改变测尺频率,从而得到更高的

12、测量精度和更快的测量速度。本测距系统采用的是美国Xilinx公司的XC6200系列FPGA细粒度结构的可重构处理器。2.2方案二方案二:基于STC89C52RC单片机的超声波测距仪超声测距大致有以下方法:(1)取输出脉冲的平均值电压,该电压(电压的幅值基本固定)与距离成正比,测量电压即可测得距离;(2)测量输出脉冲的宽度,即发射超声波与接收超声波的时间间隔。因此,被测距离为声速与时间间隔相乘的一半。本次设计采用第二种方案。图2-2示意了超声波测距的原理,即超声波发生器T在某一时刻发出的一个超声波信号,当超声波遇到被测物体后反射回来,就被超声波接收器R所接受。这样只要计算出从发生信号到接受返回信

13、号所用的时间,就可算出超声波发生器与反射物体的距离。距离计算公式为: (2-2)式中:d为被测物与测距器的距离,s为声波的来回路程,c为声速,t为声波来回所用的时间。控制部分障碍物超声波传感器(发射)超声波传感器(接收)图2-2 超声波测距原理图超声波测距仪主要以单片机STC89C52RC为核心,其发射器是利用压电晶体的谐振带动周围空气振动来工作的。超声波发射器向某一方向发射超声波,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器接收到反射波就立即停止计时。一般情况下,超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的

14、距离s,即s=340t/2,这就是常用的时差法测距。在测距计数电路设计中,采用了相关计数法,其主要原理是:测量时单片机系统先给发射电路提供脉冲信号,单片机计数器处于等待状态,不计数;当信号发射一段时间后,由单片机发出信号使系统关闭发射信号,计数器开始计数,实现起始时的同步;当接收电路接收脉冲到来后,进入中断,计数器停止计数。基于STC89C52RC单片机的超声波测距仪主要有几下部分组成如图2-2所示:LED显示模块,STC68C52RC芯片,超声波发射模块,超声波接收模块,报警模块等五大模块组成。超声波接受超声波发送单片机控制器LED显示扫描驱动超限报警图2-3 超声波测距器设计框架被测对象2

15、.3方案选择基于上述两种方案的比较,方案一,测量参量看动态重构,具有很大的灵活性,但系统结构复杂。方案二,精度高,功耗低,模块简单,稳定性高。所以本次设计选用方案二。本此设计属于近距离测量,采用常用的压电式超声波换能器来实现。根据设计要求并综合各方面因素,可以采用STC89C52RC单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,超声波接收用检测红外线的专用芯片CX20106A实现,报警系统用发光二极管完成。第三章 系统硬件电路设计硬件电路主要分为时钟振荡电路、显示电路、超声波发射电路、超声波检测接收电路和报警电路五个部分。3.1时钟振荡电路3.1.1概

16、述本系统选用单片机STC89C52RC,外部晶体作为时钟频率,晶体振荡器XTAL1与XTAL2分别为用作片内振荡器的反向放大器的输入和输出。晶体振荡器连接如下图3-1所示。单片机外接石英晶体(或陶瓷谐振器)及电容C2、C3接在放大器(STC89C52RC中有一个用于构成内部振荡器的高增益的反相放大器)的反馈回路中构成并联振荡电路。为便于CPU处理数据,让计时器每计一次数就是1us,振荡器采用了12MHz的石英晶体。对外接电容C2、C3虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡工作的稳定性、起振的难易程度及温度稳定性,这里电容使用30pF10pF。本电路中用到了重要的

17、频率,为了实现输出频率的精确性,在设计时用到了单片机,因为这一部分(频率产生电路)是整个电路的核心,由单片机产生的频率必须准确,否则测得的距离显示会产生很大误差,在考虑总体方案时,也想到用一块单片集成电路(比如说CMOS集成芯片CD4046)来完成频率信号的产生以及分频工作,也完全可以实现电路的功能,但是要想实现高精度要求,难免有些困难,最后还是选择了用单片机来完成频率的产生工作。图3-1 时钟振荡电路图3.1.2芯片STC89C52RC介绍STC89C51RC/RD+系列单片机是宏晶科技推出的新一代超强抗干扰、强抗静电,高速、高可靠,低功耗的单片机,指令代码完全兼容传统8051单片机,12时

18、钟/机器周期和6时钟/机器周期可任意选择,最新的D版本内部集成MAX810专用复位电路。其引脚图与AT89C52类似,如下图3-2所示。图3-2 STC89C52RC引脚图特点:1.增强型6时钟/机器周期,12时钟/机器周期8051CPU;2.工作电压:5.5V-3.4V(5V单片机)/3.8V-2.0V(3V单片机);3.工作频率范围:0-40MHz,相当于普通8051的080MHz.实际工作频率可达48MHz;4.用户应用程序空间4K/8K/13K/16K/20K/32K/64K字节;5.片上集成1280字节/512字节RAM;6.通用I/O口(32/36个),复位后为:P1/P2/P3/

19、P4是准双向口/弱上拉(普通;8051传统I/O口)P0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器/仿真器可通过串口(P3.0/P3.1)直接下载用户程序,8K程序3秒即可完成一片;8.EEPROM功能;9.看门狗;10.内部集成MAX810专用复位电路(D版本才有),外部晶体20M以下时,可省外部复位电路。3.2显示电路3.2.1概述显示电路如下图3-3所示,采用简单实用的4位共阳LED数码管,段码用74LS244和1k上拉电阻驱动,位码用PNP三极管9012和4.7k上拉电阻驱动。图3-

20、3 显示电路3.2.2动态扫描原理对于一组数码管动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此,在同一时刻如果各位数码管的位选线都处于选通状态的话,8位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式。即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各

21、位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,则可造成多位同时亮的假象,给人眼的视觉印象就会是连续稳定地显示,达到同时显示的目的。3.2.3驱动介绍单片机本身具有驱动能力,它分为高电平驱动和低电平驱动两种方式,所谓高电平驱动,就是端口输出高电平时的驱动能力,所谓低电平驱动,就是端口输出低电平时的驱动能力,当单片机输出高电平时,其驱动能力实际上是靠端口的上拉电阻来驱动的。单片机的输出电流输出电压都非常小,假设一个数码管中一位二

22、极管点亮流过的电流是5mA,那么当所有二极管都亮时是5*8mA=40mA,查阅单片机手册可知,单片机绝对最大I/O口电流是15mA。超过单片机所能承受的电流,这将造成电源效率的严重下降,导致发热,纹波增大,以至于造成单片机工作不稳。为了达到可靠性,本次设计在单片机输出口接一个74LS244,再在244的输出接数码管。74LS244是8路3态缓冲驱动,也叫做线驱动或者总线驱动门电路,常用在单片机mcu系统中,作为单片机的输入输出数据缓冲器,在选通时输入数据送到总线上,在非选通时对总线呈高阻态。它主要起两方面的作用:一来用作驱动使数码管更亮,二来用作缓存使数码管不闪烁。下图3-4是74ls244的

23、内部结构原理图,可以看出74ls244由2组、每组四路输入、输出构成。每组有一个控制端G,由控制端的高或低电平决定该组数据被接通还是断开。图3-4 74LS244内部结构原理图引出端符号:1A11A4,2A12A4 输入端1G,2G 三态允许端(低电平有效)1Y11Y4,2Y12Y4 输出端3.3超声波发射电路3.3.1概述超声波发射电路原理图如下图3-5所示。发射电路主要由反向器74LS04和超声波发射换能器TCT40-10F1构成。单片机P1.0端口输出的40kHz方波信号一路由一级反向器后送到超声波换能器的一个电极,另一路经两极反向器后送到超声波换能器的另一个电极。用这种推挽形式将方波信

24、号加到超声波换能器两端,可以提高超声波的发射强度。输出端采用两个反向器并联,用以提高驱动能力。上拉电阻R4,R5一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加换能器的阻尼效果,缩短其自由振荡的时间。3.3.2超声波传感器介绍为了以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。常用的超声波传感器有两种,即压电式超声波传感器或称压电式超声波探头)和磁致式超声波传感器。本次设计采用的是压电式超声波传感器,主要由超声波发射器(或称发射探头)TCT40-10F1和超声波接收器(或称接收探头)TCT40-10

25、S1两部分组成,它们都是利用压电材料(如石英、压电陶瓷等)的压电效应进行工作的。下图3-6为压电式超声波传感器的结构图。图3-5 超声波发射电路原理图图3-6 超声波换能器结构图压电传感器由压电晶片、楔块、接头等组成,是超声检测中最常用的实现电能和声能相互转换的一种传感器件,是超声波检测装置的重要组成部分。当压电晶片受发射电脉冲激励后产生振动,即可发射声脉冲,是逆压电效应。当超声波作用于晶片时,晶片受迫振动引起的形变可转换成相应的电信号,是正压电效应。前者用于超声波的发射,后者即为超声波的接收。超声波传感器一般采用双压电陶瓷晶片制成。这种超声传感器需要的压电材料较少,价格低廉,且非常适用于气体

26、和液体介质中。下表3-1为型号T/R40-10的超声波传感器的特性参数(T-发射,R-接收,40-中心频率单位kHZ,10-外壳直径单位mm)。表3-1 T/R40-10的特性参数中心频率401KHz发射电压大于115dB接收灵敏度大于-64dB/V/ubar-6dB指向50deg电容2400允许输入电压20V图3-7 74LS04引脚图3.4超声波检测接收电路3.4.1概述图3-8是超声波检测接收电路,主要有集成电路CX20106A和超声波换能器TCT40-10S1构成。CX20106A是一款红外接收的专用芯片,常用于电视红外遥控器。常用的载波频率38khz与测距的40khz较为相近,可以利

27、用它来做接收电路。适当的改变C7的大小,可以改变接受电路的灵敏度和抗干扰能力。其工作过程为:当超声波接收探头接收到超声波信号时,压迫压电晶片作振动,将机械能转化成电信号,红外线检波接收集成芯片CX20106A接到电信号后,对所接信号进行识别,若频率在38kHz-40kHZ左右,则输出低电平,否则输出高电平。使用CX20106A主要是简单易用,电路简单,减少了生产调试的麻烦。但必须保证接收到的信号为40KHZ,否者无法解调出。图3-8 超声波检测接收电路3.4.2集成电路CX20106ACXA20106A,红外线接收专用芯片,可以用于超声波的接收。红外遥控接收芯片CX20106可以完成对遥控信号

28、的前置放大、限幅放大、带通滤波、峰值检波和波形整形,只需加上简单的外围电路即可完成对已调波的解调。其引脚图如图3-9所示:1脚:超声信号输入端,该脚的输入阻抗约为40k。2脚:该脚与地之间连接RC串联网络,它们是负反馈串联网络的一个组成部分,改变它们的数值能改变前置放大器的增益和频率特性。增大电阻R或减小C,将使负反馈量增大,放大倍数下降,反之则放大倍数增大。但C的改变会影响到频率特性,一般在实际使用中不必改动。3脚:该脚与地之间连接检波电容,电容量大为平均值检波,瞬间相应灵敏度低;若容量小,则为峰值检波,瞬间相应灵敏度高,但检波输出的脉冲宽度变动大,易造成误动作,推荐参数为3.3f4脚:接地

29、端。5脚:该脚与电源间接入一个电阻,用以设置带通滤波器的中心频率f0,阻值越大,中心频率越低。例如,取R=200k时,f042kHz,若取R=220k,则中心频率f038kHz。6脚:该脚与地之间接一个积分电容,标准值为330pF,如果该电容取得太大,会使探测距离变短。7脚:遥控命令输出端,它是集电极开路输出方式,因此该引脚必须接上一个上拉电阻到电源端,推荐阻值为22k,没有接受信号是该端输出为高电平,有信号时则产生下降。8脚:电源正极,4.55.5V。图3-9 CX20106A引脚图用CX20106A做超声波测距应注意的事项:1、首先确定你发射出的超声波的频率为标准的40KHz(占空比50%

30、),并保证有足够的驱动电压。CX20106A的第5脚的电阻决定接收的中心频率,200k的电阻决定了接收的中心频率为40KHz。2、如果你驱动的是开放式的非防水探头(就是铝外壳,探头表面有金属网,可以看到里面有一锥形的金属),则使用反相器串联再并联做BTL推动就可以了。3、如果使用的探头是全封闭的防水头,那就要主要必须有足够的驱动电压才能驱动得了探头。3.5报警电路图3-10是报警电路原理图。当LED数码管显示的数据超出某一设定的数值时,二极管就会发光显示报警。在本次设计中,设定当显示所测数据小于20cm时,第一个黄色二极管就会点亮报警,当所测数据大于2.5m时,第二个红色二极管就会点亮报警。图

31、3-10 报警电路原理图第四章 系统软件设计4.1软件设计分析完成了系统的硬件设计之后,接下里就是系统软件的设计,它所需要完成的主要是针对系统功能的实现及数据的处理和应用。根据以上所述系统硬件设计和各个电路功能,系统软件需要实现以下功能:1、信号控制。在系统硬件中,已经完成了发射电路、回波检测接收电路的设计。在系统软件中,要完成发射脉冲信号及输出显示。2、数据存储。为了得到发射信号与接收回波间的时间差,要读出此刻计数器的计数值,然后存储在RAM中,而且每次发射周期的开始,需要对计数器清零,以备后续处理。3、信号处理。RAM中存储的计数值并不能作为距离值直接显示输出,超声波从发射出去碰到障碍物返

32、回接收传感器的时间,需要通过软件定时器来记录。根据这个时间才能计算出障碍物的距离。4、数据传输与显示。经软件处理得到的距离要以十进制的方式送LCD显示。4.2软件设计思路超声波测距软件设计主要由主程序,超声波发射子程序,超声波接受中断程序及显示子程序组成。C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率并且容易精确据算程序运行的时间,而超声波测距器的程序既有较复杂的计算(计算距离时),又要求精确计算程序运行时间(超声波测距时),所以控制程序可采用C语言和汇编语言混合编写。4.2.1主程序主程序采用C语言编写。主程序流程图如下图4-1所示。主程序首先对系统环境初始化,设置定时器T0

33、工作模式为16位的定时计数器模式,置位总中断允许位EA并给显示端口P0和P2清0。然后调用超声波发生子程序送出一个超声波脉冲。由于采用12MHz的晶振,机器周期为1us,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按下式计算即可测得被测物体与测距仪之间的距离,设计时取20C时的声速为344m/s则有:d=(C*T0)/2=172T0/10000cm(T0为计数器T0的计数值)。测出距离后结果将以十进制BCD码方式送往LED显示,然后再发超声波脉冲重复测量过程。当数码管显示的数据超出设定值时,二极管发光产生报警。系统初始化发送超声波脉冲等待反射超声波脉冲LED显

34、示结果计算距离开始 图4-1 主程序流程图4.2.2超声波发生子程序YN设置计数器T0初值开启计数器产生40kHz方波信号是否发射完?返回开始图4-2 超声波发生子程序流程图超声波发生子程序在P1.0产生40KHz方波脉冲宽度约12us,作为发生超声波发射器的输出信号。同时打开计数器T0计时。超声波发生子程序较简单,但要求程序运行时间较准,所以采用汇编语言编写。其流程图如图4-2所示。4.2.3超声波接收中断子程序超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序。进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋

35、值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功。4.2.4延时子程序在传感器以脉冲反射方式工作的情况下,电压很高的发射电脉冲在激励传感器的同时也进入接收部分。此时,在短时间内放大器的放大倍数会降低,甚至没有放大作用,这种现象称为阻塞。不同的检测仪器阻塞程度不一样。根据阻塞区内的缺陷回波高度对缺陷进行定量评价会使结果偏低,有时甚至不能发现障碍物,这是需要注意的。由于发射脉冲自身有一定的宽度,加上放大器有阻塞问题,在靠近发射脉冲一段时间范围内,所要求发现的缺陷往往不能被发现,这段距离成为盲区。延时子程序的作用就是在

36、超声波发射的同时延迟一些时间,再打开中断。为的就是防止在超声波发射时接收器就收到反射波。这样就会出现错误,产生严重的误差。所以要延迟一定的时间。本次设计在软件编写调中用了一个1ms的延迟子程序。第五章 调试及误差分析5.1软件调试在超声波测距仪的硬件安装时应保持两换能器中心轴线平行并相距48cm,其余元件无特殊要求。若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容C7的大小,以获得合适的接收灵敏度和抗干扰能力。硬件电路制作完成并调整检查好以后,接下就是软件的设计调试。在keil_uVision2软件中编写并运行调试程序,直至运

37、行成功自动生成后缀名为.hex的文件。图5-1为程序在 keil_uVision2软件中的编写界面。图5-1 程序在keil_uVision2软件中的编写界面KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。uVision2包含一个器件数据库(device database),可以自

38、动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速器(math accelerator)的特性。5.2软件烧录程序运行成功之后,将.hex的文件通过STC-ISP烧录软件下载到单片机运行。STC-ISP烧录软件的特点是将程序源代码下载进单片机内部,而不用编译器。下图5-2为烧录的界面。图5-2 STC-ISP Ver 2.0B.PCB演示板图5-2 STC-ISP烧录界面本次设计采用STC-ISP Ver 2.0B.PCB演示板作为编程工具,它可以完成下载/烧

39、录用户程序的功能。需要注意的是,要先点击Download/下载,再打开电源,因为需要冷启动才运行系统ISP程序。图5-2为STC-ISP Ver 2.0B.PCB演示板。5.3实验结果测试仪器:PC机、数字万用表、光滑水平槽测试装置、卷尺、秒表等。实验中选用一面墙做为障碍物,测量超声波探头到墙壁的距离,得到如下表5-1结果。表5-1 测距实验结果实际距离(cm)2535465266788190107124测量距离(cm)2435475264778289107125实际距离(cm)144169183202233257303320350367测量距离(cm)14517018220323225630

40、0324356364表5-1数据可以看出,所做的设计是成功的,在20cm2.5m以内数据比较稳定,准确。但是在大于2.5m时,所测的数据与实际距离误差比较大。因此设定LED显示数据大于2.5m时,二极管发光产生报警。可能是超声波传感器的角度,或其他干扰等原因,由于设计经验的不足和所掌握知识的限制,没有解决此问题。此次被测对象面积比较大,表面平滑,但是如果换个对象当作障碍物(如表面凹凸不平,穿透能力很强的物体),又会产生一定的误差并且显示不稳定。这是因为被测对象的组成,形状都会对超声波传感器产生一定的影响。根据超声波传感器介绍,一些物体构成材料会产生较弱的回波,从而减少了最大有效探测范围。光滑,

41、平坦,并垂直于传感器的被测物体与形状不规则的物体相比,前者光束产生更强的回声。一个更大的目标相对于一个较小的目标,声音的波长会产生一个更强有力的回声。所以,本次设计适合的对象为形状规则,表面积比较大,表面光滑平坦的物体。5.3.1 测试方法(1)使用机显示测试结果(2)应用keil软件进行程序软件调试,而后进行硬件调试。(3)采用秒表精确计时法对单根木棒通过滑槽的时间小于3秒钟的测试。(4)采取卷尺对木棒进行测量,然后显示屏上显示测量结果,测量时并与软硬件联合调试相结合,得到准确测试结果。5.3.2 测试结果正向测量测试次数测试项目第1次第2次第3次第4次第5次第6次第7次当前木棒长度(cm)

42、6.011.613.38.58.611.06.7木棒个数1234567累计木棒长度(cm)6.017.630.939.443.05460.7当前木棒长度测量误差(cm)0.10.10.2-0.10.2-0.30.1累计长度测量误差(cm)0.10.20.40.30.50.20.3个数误差0000000是否语音播报误差无无无无无无无反向测量测试次数测试项目第1次第2次第3次第4次第5次第6次第7次当前木棒长度(cm)6.011.613.38.58.611.06.7木棒个数1234567累计木棒长度(cm)6.017.630.939.443.05460.7当前木棒长度测量误差(cm)0.10.10

43、.2-0.10.2-0.30.1累计长度测量误差(cm)0.10.20.40.30.50.20.3个数误差0000000是否语音播报误差无无无无无无无正反结合测量测试次数测试项目第1次、正第2次、正第3次、反第4次、正第5次、反第6次、正第7次、反当前木棒长度(cm)6.011.613.38.58.611.06.7木棒个数1212121累计木棒长度(cm)6.017.64.312.84.215.28.5当前木棒长度测量误差(cm)0.10.10.2-0.10.2-0.30.1累计长度测量误差(cm)0.10.20.40.30.50.20.3个数误差0000000是否语音播报误差无无无无无无无

44、测试结论:从观察观点开关脉宽测量的全过程和大量的测试数据结果发现:在脉宽测量过程中,单个木棒长度误差在0.1-0.4cm范围内,累积误差误差在0.0-0.5 cm范围内,木棒个数无误差。达到了系统设计的要求。5.4误差分析超声波测距在实际应用也有很多局限性,这都影响了超声波测距的精度。一是超声波在空气中衰减极大,由于测量距离的不同,造成回波信号的起伏,使回波到达时间的测量产生较大的误差;二是超声波脉冲回波在接收过程中被极大地展宽,影响了测距的分辨率,尤其是对近距离的测量造成较大的影响12。其他还有一些因素,诸如环境温度、风速等也会对测量造成一定的影响,这些因素都限制了超声波测距在一些对测量精度要求较高的场合的应用,如何解决这些问题,提高超声波测距的精度,具有较大的现实意义。5.4.1温度误差由于超声波也是一种声波,其声速c与温度有关,不同温度下超声波在空气中传播的速度随温度变化的关系: (5-1)式中:T为绝对温度,=331.4m/s。表5-2列出了几种不同温度下的超声波声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。表5-2 不同温度下超声波声速表温度 C-30-20-100

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号