一种基于超声波的测距系统

2024-07-05

一种基于超声波的测距系统(共6篇)

篇1:一种基于超声波的测距系统

摘要

随着科技的快速发展,人们对于超声波的认知已经变的越来越普遍,在近几年来超声波应用技术已经变得成熟起来了,超声波具有定向性、穿透性、反射性以及对于某一方向的集束性等特点。所以,超声波测距技术在此应运而生,超声波测距技术是运用超声波在空气中、水中、固体之间的传播特性来对周围环境的进行测量。本文对超声波测距进行了简介,通过单片机在空气中发射超声波,并且反射回收,分析声波的状况,然后得出障碍物的信息,还介绍了单片机的性能和特点,及超声波测距构想的主要参数和设计,通过一系列的子程序的运算得出被测物体的距离。

关键词

单片机;

超声波;

测距

目录

摘要

第一章:绪论

1.1超声波简介

1.2对于测量方面的简介

1.3 单片机简介 第二章:基本构造

2.1测距原理

2.2 常见超声波传感器

2.3系统参数

2.3.1工作频率

2.3.2 超声波的速度

2.3.3 脉冲的宽度

2.3.4 测量盲区

第三章:硬件的设计

3.1 发射电路

3.2 接收电路

3.3 单片机系统和显示电路

第四章:软件的设计

4.1算法设计

4.2主程序

4.3发射中断程序

4.4接收中断程序

4.5 显示子程序

4.6 距离计算子程序

结束语 参考文献

谢辞

绪论

超声波是一种频率高于2000hz的声波,它具有方向性好,穿透力强,集束性好等众多优点,因此,在近十年的时间中,超声波应用技术得到了很大的发展,超声波是一种基于物理,电子,机械的技术,超声波通过声波的发射、传递、反射、接收的过程完成对物体的测距技术,它可以利用超声波在介质中的传播特性来对密度、湿度、强度、缺失的物体进行测量,其实际原理主要是声波在传播过程中遇到不同的物体,产生了反射、折射、衰减等现象,从而使传播的超声波振幅、波形、频率发生了变化,通过测量这些变化数据,便可得到物体的内部构造情况或距离。它与以前的超声使用技术完全不一样,这种超声波测距技术拥有很多优秀的特点:它可以在不破坏物体结构的情形下进行一种非接触式的测距,探测环境能力极佳,同时也可以进行距离测量。

1.1超声波简介

普通人耳可听到的声波是一种频率为20Hz~20kHz的声波,即为可听声波,对于超出此频率范围的声音,我们把频率高于20000hz的声波称为“超声波”,频率低于20hz的声波称为“次声波”,超声波主要有一下几个优点:

(1)超声波可在气、液、固中传播。在传播的时候,有较强方向功能和能量。

(2)超声波可以传递很强的能量,并且可以对于一些物体进行粉碎处理。

(3)超声波容易产生反射、衰落、等现象,并且容易携带有关物体内部情况的信息。

因此,我们可以利用用超声波共振的特性做成超声波传感器。声波在空气中的速度约为每秒340 米,所以超声波的应用技术在生活中会变得非常简单。

1.2 对于测量方面的简介

超声波测量技术近代在物理、医学、航空、工业、生活等诸多方面有了广泛的运用,它不仅能检测潜藏的安全隐患,还可以为人们治愈疾病,并节约能源、降低成本的作用。超声波和其他的电磁波、光波等的区别,是它拥有了超强的穿透功能。正因为超声波的频率大于20khz,所以超声波成为了一种特殊声波,不仅具有普通声波的反射、传播、扩散、衰减等特性,还具有穿透里强,集向性好的特点,在遇到不同介质可以反射大部分能量,可以是声波检测变得更加方便、迅速。于是,超声波测量技术广泛地在汽车入库、B超检测、方向测距或者施工工地等场合进行使用。

超声波传播时,通过不同物体对声波的反射,用来测量和检验的技术称为超声检测。超声波以脉冲的形式在介质中传播时,会有反射的现象出现,利用这一原理可以对钢材等固体介质进行探测检验;在医学上,可以用于人体的检测,并对疾病进行治愈(如:胆结石)。超声波的共振特性,它可以用于测量轮船底部的腐蚀程度。超声波的衰减特性,可以测出各种材料的特性和功能。若超声波探测到物体时,它可以用来测量运动速度。若以超声波为载体时,可以将它制成水中电话。超声波还可以利用他的特点来检测温度和不合格的物体等。

由于超声波可以在任何介质中传播,我们可以用来了解一些特殊物体的变化,运用超声波技术的设备会变得结构更加简便、成本低廉、使用方便,随着科技的发展,超声波技术会得到广泛的运用。

1.3 单片机简介

计算机迅速的发展,单片机技术也得到了一定的研究,并且逐步称为一门新的技术,对于它的运用也变得成熟起来,特别在这几年中单片机在生产方面形成了重量级的作用。

单片机是一种微型计算机,主要用于控制技术,所以也可称为微型控制器(Microcontroller Unit)。单片机是一块集成电路芯片,它将所有功能集成在一块芯片上,称为单片机(Microcontrollers)。

单片机基本组成部分是中央处理单元、存储器、输入/输出接口、总线、中断系统。

单片机封装图 基本构造

2.1 测距原理

单片机超声波测距是通过不断对发射出的超声波的反射回波的检测,从而测出发射和回收的平均时间差t,然后根据S=Ct/2(C为超声波实际波速),在测量过程中有很多因素影响测距结果:超声波幅度、反射的地域、声波之间的夹角和接收器的灵敏度。

表2-1 温度与波速的关系表

超声波属于声波其中对于声波影响最大的当属于温度的变化。所以当测距的时候必须根据不同的温度来对应出不同的速度,然后可以得出较为精确的距离。

2.2常见的超声波传感器

超声波传感器是一种能将其他能量转变成特定频率的超声波或者将其转化成同频率的其他能。现在的超声波传感器主要分为两种:电声型和动力型。其中压电传感器和静电传感器,属于电声型,动力型可以分为气体和液体。因为传感器工作目的的不同,所以超声波传感器的具体结构可以是不一样的的,各自的器材名称也可以是多样化的。

压电传感器是电声型,零件包括是压电晶片、楔块、接头,是超声波检测中经常见到的电能和声能相互转换的传感器。其中组成压电传感器的材料又可以分为压电陶瓷和近体两种,前者属于锆钛酸铅。而近体则由石英组成。

传感器中的压电晶片受到脉冲激发后产生震动,发出声波脉冲产生逆压电效应,从而用于超声波的发射。当超声波作用时,晶片受到震动引起形变转化成电信号,这就是压电晶体的正压电效应,用于超声波的接受。超声波传感器通常采用双压电陶瓷晶片制成,因为它的耗材少,价格便宜,且对于气体和液体有较强的实用性。

双压电晶体适用与超声波传感器,由AB两个部件构成,当AB之间有交流电压时,若电场方向与极化方向相同时,则方向相反,因此,AB伸缩,形成超声波振动如图 2-1 所示。

内部电路图

传感器内部的压电陶瓷晶片有一个中心频率,在超声波发射时,交流电

压会与他的震动频率相同。

2.3 系统参数

2.3.1 工作频率

传感器的工作频率是测距的主要参数,它的变化影响了声波的传播、反射、吸收等因素。

工作频率大部分由这几点决定的:

(1)当测距要求过高时,声波的损失就会增大,因为介质的吸收和声波的频率比例成正比,所以要降低工作频率。

(2)工作频率变得高,对传感器的方向性,要求是越尖锐则测量结果越准确,因此测量复杂的物体,工作频率要提高。

(3)频率越低对于传感器的尺寸变得越大,技术也越困难,安装的地方也需要更多的空间。

所以,超声波传感器应选择量程中等,工作频率40khz的传感器。

2.3.2 超声波的速度

声速的精确性决定了测距仪的数值的准确,声波随着介质的温度、压力而改变。声速的计算公式为V=331.4+0.607T(mm/ms),T代表了温度的变化,由于实验是在室内,所以超声波的传播速度通过计算公式得出340m/s。

2.3.3脉冲宽度

测距仪的发射脉冲有了一定的测量盲区,同样影响了测量的精度,如果减小发射脉冲宽度,可以提高测量精度,减小测量盲区,同时存在着回收的不便。反之,增大脉冲宽度,则可以使回收变得越发容易。

但在具体的实验中,通过比较了三种脉宽:24μs(1 个 40KHz 脉冲),48μs(2个 40KHz 脉冲),240μs(10 个 40KHz 脉冲),实验结果得知,还是48μs(2个 40KHz 脉冲)的脉冲宽度对于实验更准确。

2.3.4测量盲区

由于脉冲发射器的本身具备了一定的宽度,还有放大器的阻塞,在接近发射脉冲的一段时间内,有一定的缺陷不能呗发现,这被称为盲区。

3硬件的设计

测距仪硬件部分由系统和显示电路、发射电路和接收电路组成。单片机采用的是89S51系列。采用了高精度的晶振,用来获得较为稳固的频率,减少测量误差。单片机用P1.0接口,输出超声波换能器需要的40KHz的信号,使外中断0口监测接收电路输出的返还信号。显示电路则采取4为LED共阳数码管,段码采取74LS245驱动,位码采取PNP三极管9012驱动。

3.1 发射电路

发射电路图如3-1所示,发射电路由反向器74LS04和换能器T所组成,单片机P1.0端口输出40kHz信号,途经一级反向器然后送到超声波换能器的一个电极,另一路经过两级反向器后送到超声波换能器的另一个电极。用这种形式将方波信号送到换能器两端,从而提高了超声波发射的强度。为了提高效率,可以让俩个输出端并联,电阻R10、R11可以提高反向器74LS04输出高电平的驱动效果,还可以提高了超声波换能器的阻尼效果,使其缩短自由振荡的时间。

发射电路原理图

3.2 接收电路

接收电路图

超声波在遇到障碍物反射时,进过接受放大器后,产生了一个低电平信号,通过这个信号触发了单片机的外部中断,然后停止计时,并计算出超声波在介质中的传播时间。

图中的接受电路主要由集成电路、电阻、电感组成。可以按照用处的不同转变电阻、电容,从而改变了电路的灵敏度。

3.3 单片机的系统和显示电路

单片机采取的是AT89S51系列。采用12MHz高精度的晶振,从而有了较为稳固的时钟频率,减少了测量误差。单片机用P1.0端口输出超声波换能器所需的40KHz方波信号,然后利用外中断0口检测超声波接收电路的返回信号。显示电路采取了4位共阳LED数码管,段码采用74LS245驱动,位码采用PNP三极管9012驱动。如图3-4所示 软件的设计

超声波测距器的软件部分由主程序、超声波发生子程序、超声波接收中断程序和显示子程序构成的。因为汇编语言程序有很高的效率,而且可以准确的计算出程序运行的时间,所以可以运用它计算出准确的距离和实际的运行时间。

4.1 算法设计

超声波测距的原理是超声波的发出器t发出一个超声波信号,声波遇到被测物体然后反射回来,被接收器收到,单片机测出超声波的在外发射的时间,从而算出与物体与测距一起的距离,具体的计算公式为d=s/2=(c×t)/2。D为实际距离,S为来回的路程,C为外界温度下的声速,T为来回接收的时间。

4.2 主程序

主程序首先对系统进行初始化,t0设置为16位计数模式,总是允许中断为清零,之后超声波子程序发出一个脉冲,避免超声波通过接收器进行直射波的触发,从而需要延迟0.1ms,才可以打开外中断,其中计数器T0中的数值可以用公式d=s/2=(c×t)/2=172T0/10 000 cm 计算,T0为计数器T0的计数值,测出结果后传送到LED显示,0.5s后再次发出超声波进行重复测量,如图4-1所示。

开始系统初始化开启T0调用显示子程序测距成功标志位为1?Y禁止中断N调用计算距离子程序允许中断标志位清零显示结果0.5秒开启T0

4.3 发射中断程序

超声波发生子程序是通过P1.0端口发出2个超声波脉冲信号(一种具有40kHz的方波信号),脉冲宽度12μs,同时T0当即进行计时。如图是T0中断程序和T1中断程序的流程图。

保护现场重写TO开T1中断开启TO,T1返回

T0中断程序流程图

P1.0取反R4-1→R4NR4=0?Y关闭T1R4←4开启外部中断0返回

T1中断程序流程图

4.4 接收中断程序

超声波测距仪应用外中断检测返回的超生波信号,一旦接到信号,当即进入中断程序,计时器终止计时,并将测距标记位为1。表示是成功的。

如果没检测到回返信号,T0溢出中断会关闭,系统自动标记为2,表示是失败的。

关闭计数器读取TO的值置测距成功标志位为1返回

4.5 显示子程序

首先进行动态显示初始化,然后指针进行选位,选取显示的数,将其变成段码,然后送入段控制器,再进行延时,判断是否是最后一位和是否显示完毕,如果没有则继续修改缓冲区的指针和位码。

动态显示初始化位选-7FH选通数码管读要显示的数位选字右移一位送位选码到数码管修正地址指针显示完毕Y返回N 显示子程序流程图

4.6 距离计算子程序

为了降低编写程序的难度,将计算公式d=(C×t)/2=172×T0/10000 cm,简化为d=17×T0/1000 cm,然后进行两字节无符号数乘法程序,然后调用两次四字节/两字节无符号数除法程序,最后将数据转换成BCD码进行显示。

将要计算的数移入处理单元调用两字节无符号数乘法程序调用两次四字节/两字节无符号数乘法程序将计算所得数转化成十进制BCD码将BCD码移入被显示的单元返回

计算距离子程序

5结束语

近年来,超声波测距技术已经进入了普遍化的应用,国内的测距技术多数使用的是集成电路,这使得仪器的成本价值变得很高。然而以单片机为中心的测距仪可以弥补这一缺陷,并且可以进行显示和报警等多种功能的应用,并且操作十分简单,稳定,本文通过具体的介绍了一种基于单片机的超声波测距仪,简述了,超声波的原理、应用和具体的实现方式。使单片机技术得到了充分的利用,体现了它在控制、操作等领域的优点。

在一个学期的学习过程中,我逐步的了解了单片机的原理,对于超声波的认识,并且在设计的过程中得到了很多的知识,不仅让我将书本上的东西得以应用,还锻炼了我思考问题的能力,并且开扩了我的视野,使我以后学习的过程中具有了一定的经验。

6谢词

首先感谢我的指导老师陈远老师,在设计的过程当中,给予了我悉心的引导和耐心教导。当我遇到问题时,陈老师会指导我如何解决问题的方法,提供我很多思路和专业方面的知识。陈老师会提供我一些资料,也会指点我在哪可以找到更多的资料源。

在探讨问题和解决问题时,老师给了我悉心指导,在他的帮助下,我的毕业设计得以顺利完成。在整个毕业设计中,老师细心的教导,严谨的治学态度,和丰富的专业知识深深的感染我,在我心中留下深刻印象。

在以后的工作与生活中,我将时刻铭记老师的教导,并且会更加积极、努力的学习的。

篇2:一种基于超声波的测距系统

摘要:介绍了自行设计的移动机器人CASIA-I中超声测距系统的软、硬件,以及超声测距数据与上位机通信的设计和实现过程。该系统以DSP-TMS320LF2407A作为核心处理器,以CAN总线为基础,实现了上述功能。经实验验证,测距范围为0.45m~3.5m,系统测距精度在0.7%以内,可以满足移动机器人室内导航的要求。

关键词:移动机器人DSP超声测距CAN总线通讯

移动机器人要实现在未知和不确定环境下运行,必须具备自动导航和避障功能。在移动机器人的导航系统中,传感器起着举足轻重的作用。视觉、激光、红外、超声传感器等都在实际系统中得到了广泛的应用。其中,超声波传感器以其信息处理简单、速度快和价格低,被广泛用作移动机器人的测距传感器,以实现避障、定位、环境建模和导航等功能。

传统的轮式移动机器人超声数据采集系统大多采用单片机作为微处理器,以此来测量移动机器人到障碍物的距离,并将距离通过串口传输到上位机。采用这种设计,系统制造简单、成本低。但是,对于多超声传感器测距系统,如果仍采用单片机来完成测距任务,由于系统中超声传感器数量较多,为保证系统的实时性,就需要多个单片机才能完成数据采集,这使得采集系统不可避免地存在设计复杂和一延续算法难以实现等缺陷。随着微电子工艺的发展,数字信号处理器(DSP)的应用领域已从通信行业拓展到工业控制领域。TI公司推出的TMS320LF2407A的专门针对控制领域应用的DSP,它具有高速信号处理和数字控制功能所必需的体系结构,其指令执行速度高达40MIPS,且大部分的指令都可以在一个25ns的单周期内执行完毕。另外,它还具有非常强大的片内I/O端口和其它外围设置,可以简化外围电路设计,降低系统成本。正是基于种思想,中国科学院自动化研究所在国家“863”计划的支持下,利用多DSP和嵌入式PC104自动设计和研制了轮式移动机器人CASIA-I。本文着重介绍其超声数据采集系统,同时对通过CAN总线完成的超声数据与上位机通讯的原理和设计过程进行分析说明,并给出实验结果。

图1超声数据采集硬件原理图

1超声测距原理

超声测距的原理较简单,一般采用渡越时间法,即:

D=ct/2(1)

其中D为移动机器人与被测障碍物之间的距离,c为声波在介质中的传输速率。声波在空气中传输速率为:

其中,T为绝对温度,c0=331.4m/s。在不要求测距精度很高的情况下,一般可以认为c为常数。渡越时间法主要是测量超声发射到超声返回的时间间隔t,即“渡越时间”,然后根据式(1)计算距离。

2系统硬件设计

在距地面高度为45cm、相隔为22.5°的同一环上均匀分布着16个Polaroid生产的超声传感器,其编号为1#~16#(逆时针安排),超声传感器波束角为30°,超声传感器的最小作用距离为0.45m。超声数据采集板主要有两大模块:一是16路超声器的超声波发射和回波的接收模块,二是与上位(机器人中央控制器)的CAN总线通讯模块。其硬件结构见图1。

TMS320LF2407向I/O端口发出控制信号,启动内部定时器进行计时。此控制信号功率放大后作为超声传感驱动电路启动信号(INIT),超声传感器产生的、遇到障碍物时返回的高频振荡信号经放大(为弥补传播过程中信号的衰减)使超声传感驱动电路的ECHO端产生高电平脉冲。ECHO电平变化经过门电路后引起TMS320LF407A外部中断,在中断程序内获取定时器的计数值,根据式(1)计算距离;否则,认为传感器前方探测范围内无障碍物。

图2超声测距数据采集程序框图

因为超声传感器之间的安装位置相差22.5°,而超声传感器的波束角为30°,如果超声波同时发射,必须会有干扰。如果采用轮循方式,即一个接一个地发射超声波,虽然可以消除串扰回波的影响,但是16个超声传感器轮循一次周期较长,降低了采集频率。为了在不降低采集频率的同时消除超声的相互干扰,本系统将16个超声传感器分成A(1#、3#、5#、7#、9#、11#、13#、15#)和B(2#、4#、6#、8#、10#、12#、14#、16#)两组,因为同一组内的两个超声传感器安装位置相差45°,通过计算可以知道,这种情况下超声传感器同时工作不会产生干扰,因而每一组里的超声传感器同时工作,组与组之间则采用轮循方式工作。这样既可以到很高的采集频率,同时也满足了系统的实时性要求。每组8个超声传感器的ECHO端分别连接到一门电路,然后通过门电路连接DSP的XINT1和XINT2端。XINT1/2引脚电平发生跳变时会产生外部中断,通过I/O口可以知道是哪个或哪几个传感器引起中断。

TMS320LF2407A内部集成了CAN控制器,通过它可以方便地构成CAN控制局域网络。TMS320LF2407A的CANTX和CANRX接口与CAN收发器SN65HVD230相连,通过SN65HVD230连接CAN总线。SN65HVD230是TI公司生产的专门针对240X系列DSP内CAN控制器与物理总线的接口。它的供电电压和TMS320LF2407A一样,仅为3.3V。由于CAN总线的数据通信具有突出的可靠性、实时性和灵活性,最高传感速率可达到1Mbps。超声采集板的数据能够快速、可靠地传给中央控制器。

3软件设计

系统软件主要由两部分构成,即超声数据采集与处理模块、CAN总线通讯模块。

3.1多路超声传感器数据采集模块

超声传感器被分为两组,两组循环交替工作。软件设计上采用两个定时器依次工作,分别对两组传感器进行计时。选择定时器的周期比超声传感器探测最大距离所需的渡越时间稍长。在每个定时器周期开始时,触发一组超声传感器同时开始工作。在定时器周期内,每个回波返回,都会触发一次外部中断(XINT1或XINT2中断),在外部中断处理程序内,将超声波返回时间进行纪录,并将相应的超声传感器关闭。外部中断处理程序非常简短,本系统只用了不到20条指令,并且TMS320LF2407A指令执行速度很快,因而即使因进入外部中断处理程序而延误了对后来回波的处理,但这种延误的时间根据计算不大于0.5μs,由此引入的距离误差根据(1)式计算小于83.5×10-6m。可见误差非常小,可以忽略不计。当定时器中断时,对于距离大于最大超声探测范围的,没有相应的时间记录,给它们加上超出测距范围的标志。其它的`时钟数据都有记录,根据(1)式计算距离,然后启动下一个定时器工作,并触发下一组超声传感器。本文的超传感器的最大探测距离为3.5m,因而超声波探测的最长时间为20.58ms。所以每个定时器的周期选为20.6ms。图2只画出了一组超声传感器的处理框图,另一组与此相,不再多述。

表1超声测距系统测量值与实际值单位:cm

实际值456075100125150175200测量值43.2661.4774.76100.17125.9.84174.63200.78实际值225250275300325350测量值224.11251.7276.9297.8322.7352.5

由于受环境温度、湿度的影响,超声传感器的测量值与实际值总有一些误差,表1列出了本超声测距系统测量值与对应的实际值。采用最小二乘法对表1的数据进行拟合,结果为:

y=0.9986x+0.2111

式中,x为测量值,y为实际值。

3.2基于CAN总线的数据通信

超声数据采集板发送测距数据以中断的方式完成。TMS320LF2407A有专门的mailbox中断,用于响应发送/接收中断。每个超声传感器的测距值在DSP内用两个字节存储,而CAN总线传输标准要求每个数据帧最多只能传输8个字节的数据。本系统共有16个超声传感器,共有32个字节存储所有测距值。CAN总线传输所有测距值需要4个数据帧才能传送完。本系统的通讯过程为:中央控制器发送远程请求,超声数据采集板进入接收中断,在中断服务程序内,采用查询方式发送4帧数据,每帧数据包含4个超声传感器的测距值。本系统采用的滤特率是500kbps。TMS320LF2407A用mailbox0接收中央控制器的远程请求帖,用mailbox2发送测距数据值。图3是超声数据采集板的发送数据中断服务程序框图。其中,TA2是对应mailbox2发送数据帧完成标志位,RMP0是对应mailbox0接收数据帧的标志位。关于TMS320LF2407A的CAN模块的具体说明。

图4中央控制器接收子程序框图

中央控制器接收子程序由VC++编写。当机器人需要新的测距值时,即调用此子程序。程序框图见图4。接收程序收到一帧数据后,判断数据是否有错,若有错,则向采集板发送命令,要求重发此帧数据;若正确,发送确认命令,要求采集板发送下一组数据,直到所有的超声测距数据都接收完。

篇3:一种基于超声波的测距系统

1 超声波测距原理

超声波[2]与光波不同, 其本质是可以在空气、液体、固体中进行传播的弹性机械波。由于超声波的传播速度仅为340m/s, 与光波速度相比已经很慢, 所以即使在较短的距离范围内准确记录其传播时间也是可以实现的。以超声波来实现测距目的的方法也有往返时间检测法、相位检测法、声波幅值检测法[3]等很多种。本文采用往返时间检测法。其原理是超声波发射器发射出一定频率的、在空气介质中传播的超声波脉冲, 当其遇到障碍物时产生反射, 由接收装置接收, 其所经历的时间就是往返时间, 时间长短与超声波传播的路程的有关。测试传输时间就可以得出距离, 即

当测得的距离S小于某个固定值时, 触发报警装置产生报警。

2 系统总体设计方案

本系统以MSP430F1101单片机为核心, 包括超声波发射、回波信号接收、显示和报警、电源等硬件电路部分以及相应的软件部分构成。原理框图如 (图1) 所示。

整个系统由单片机MSP430F1101控制, 在单片机控制下, 超声波发射装置发射脉冲信号与计数器开始计时同时进行。当超声波接收装置接收到由障碍物反射回来的回波信号时, 单片机由外部比较电路中产生的高电平触发中断, 停止计数。此时单片机运行中断服务子程序, 根据计数器记录的数值与超声波的传播速度求出距离值, 同时计算结果由LCD进行实时显示。系统具有报警功能, 当系统测得的距离数值小于限定值时, 则LCD显示出测量距离的同时, 单片机控制报警系统发出音频报警信号;当距离大于限定值时, 系统不报警。由此可以得到声光两种信息模式。

3 各分系统部分组成与功能

3.1 发射系统

发射系统框图如 (图2) 所示, MPS430F1101单片机的P1.3口输出40ms的脉冲波信号, 该信号通过单稳触发器实现电压提升和脉宽控制后, 输出频率不变、高电平为宽160μs、周期为40ms的方波, 实现555振荡器的置位。在置位期间, 超声波发射头T40K1将555振荡器定时产生的40k Hz的振荡信号转化为超声波, 并将其发射。当超声波遇到障碍物时产生反射, 反射波被接收装置接收。系统与障碍物之间的距离为超声波实际传播路程的一半, 由式 (1) 可知。

3.2 接收系统

接收系统电路组成如 (图3) 所示[4], R40K1接收反射的回波信号并将其转换成电压形式的信号, 实现接收部分的信号转换。转换后的电压信号比较微弱, 因此接收系统设计了两级放大电路对目标信号进行放大, 对放大后的信号进行整形 (IBQ20) 和滤波 (C5) , 得到一个比较理想的稳定、平滑的电压信号。将此电压作为SFH615A-1 (光电耦合器件) 中发光二极管的驱动信号使光敏三极管导通, 通过相连的两个反相器得到一个稳定的电平信号。此电平信号作为MSP430F1101的外部中断的中断信号直接输入到单片机的外部中断入口, 来使单片机产生中断, 在中断服务程序中使计数器的计时停止, 并计算出相应数据。

3.3 显示与报警系统

在此系统中, 测量距离设计为由2位数字显示, 并根据距离值的不同提供两种警报提示信息。因LED显示电路需多口支持, 本系统的液晶显示驱动芯片选择了性价比较高的HT1621, 它可同时提供2k Hz与4k Hz的两种音频格式输出, 能够满足对系统功能的要求。显示驱动电路如 (图4) 所示。在外接32.768k Hz晶振频率下, 由HT1621的片选CS脚 (低电平有效) 连接单片机的P1.3脚、写允许WR信号线 (低电平有效) 连接单片机的P1.2脚, 串行数据输入线DATA连接单片机的P1.1脚来完成单片机与液晶显示驱动芯片的连接。LCD的2个背电极、8个段电极, 分别与HT1621的COM0、COM1及SEG0~SEG7相连。LCD的显示驱动由向显示RAM中写入决定显示段的段码来实现, 每一个显示段都对应显示RAM中的一位。单片机的2.5V工作电压也作为液晶驱动器的工作电压。

HT1621能够提供两种不同的音频输出 (驱动芯片的9脚和10脚) , 当在程序控制下, 将两个不同音频输出并接在一个或门电路上时, 不同的测量范围对应不同的音频报警。

3.4 软件任务

此系统有三个主要任务由软件完成:

(1) 在定时器发送每个周期为40ms的脉冲波的同时使计数器启动计数, 为比较单元CCR0赋初值;

(2) 当外部中断到来时进入中断服务子程序, 如果计数器在此次中断到来之前没有溢出, 则计算停止, 进入数据处理单元。如果计数器在中断到来前有溢出, 则进入出错管理, 屏蔽一个中断源, 累计测量数自加一;

(3) HT1621在MSP430F1101的控制下, 将系统计算出的目标距离值与自定义的门限值进行比较, 根据不同的比较结果来选择不同的音频报警提示。

4 结语

系统通过记录超声波的传播时间, 将其与超声波的传播速度相乘求得系统与被测目标距离的原理, 设计了一种以MSP430F1101单片机为控制核心的超声波测距系统, 用于实时测量系统与目标之间的距离, 通过LCD来显示出测量值, 根据测量结果的不同提供不同频率的音频报警。该系统能够准确测量6m范围内的物体, 精确度在18cm以内。该系统原理简单并且易于实现, 在倒车雷达等距离测量方面有着很高的可行性和广泛的应用前景。

参考文献

[1]李文辉.基于MSP430单片机的超声波倒车雷达监测报警系统[J].自动化与仪器仪表, 2009, 144 (4) 42-44.

[2]时德钢, 刘晔, 王峰, 韦兆碧, 王采堂.超声波测距仪的研究[J].仪表与传感器, 2002, 10 (7) :480-482.

[3]沙爱军.基于单片机的超声波测距系统的研究与设计[J].电子科技, 2009, 22 (11) :57-61.

篇4:基于单片机的超声波测距系统设计

关键词:单片机;超声测距;温度补偿

中图分类号:TM41 文献标识码:A 文章编号:1006-8937(2012)26-0016-02

超声波是一种频率大于20 kHz具有方向性好、指向性强、传播能量大、遇到杂质或界面时会产生反射波等特点的机械波。运用超声波测距能避免光线、颜色以及电、磁场的干扰,完成传统测距技术难以实现的液面,井下等非接触式测量。为此,超声波测距技术已被广泛应用于工业控制、勘探测量、海洋测量等领域,而关于超声波测距系统的研究也在不断发展。本文运用单片机设计一款结构简单、通用性强、可靠性好、操作灵活的超声波测距系统。

1 超声波测距的原理

2 超声波测距系统的设计

2.1 超声波测距系统硬件的设计

本超声波测距系统采用低功耗,高性能,集成了ISP Flash存储单元的CMOS 8位单片机AT89S52为处理器;采用T/R40中心频率为40 kHz,最大输入电压为20 V的超声波传感器为接受发生器。根据AT89S52的结构和超声波传感器T/R40的性能参数设计了由驱动电路和发射传感器组成的发射模块,由滤波、放大、比较电路组成、接收传感器组成的接收模块,由温度传感器构成的温度补偿电路,由数码管构成的显示电路。其整体结构如图1所示。

2.1.1 发射电路的设计

本系统根据NE555P多谐振荡器工作原理,选用适当外围电子元件设计了一个可产生40 kHz方波的超声波发射传感器驱动电路,其电路如图2所示。

2.1.2 接收电路的设计

LM339和一个上拉电阻构成检测电路将放大器输出的正弦信号转化为单片机能识别的方波信号,并通过信号输出管脚13传送给AT89S52的P3.2脚以发出计时中断信号。

2.1.3 温度补偿电路

2.1.4 显示电路

显示电路由5个LED数码管和一些驱动三极管、电阻与AT89S52连接而成如图4,它可以显示温度,超声波传播时间和测量的距离,其电路图如图4所示。

2.2 超声波测距系统软件设计

根据超声波测距系统的硬件结构,采用模块设计方式设计了包括主程序、超声波发射子程序、测温子程序、计算子程序、数码显示程序、外部中断程序和计数器中断子程序的超声波测距系统软件,程序流程如图5所示。

超声波测距系统是通过按键控制其工作流程:系统上电后,设置定时器T0为工作方式2,显示端口和P3.5口清零;按键1系统工作指示灯亮,开始测量温度并触发NE555振荡电路发射超声波;当工作指示灯熄灭,测量工作结束按键2则可轮流显示时间、距离和温度。

3 实验测试

在3 m范围内运用该超声波测距系统对恒温和变温室条件下的平面物体进行测试,其测量距离、实际距离及相对误差结果如表1所示。

由实验结果可以看出在3 m范围内本超声波测距系统测量结果的相对误差小于1.5%,并且由于系统进行了温度补偿使测量结果的准确度不会受温度变化的影响。

4 结 语

由于本超声波测距系统在3 m范围内的测试结果精确、稳定,并且系统硬件电路简、软设计严谨简洁、操作简单,可以用于多种位移和距离测量。

参考文献:

[1] 张坤宜.光电测距[M].长沙:中南工业大学出版社,1991.

[2] 葛健强.基于CPLD的超声波测距仪研制[J].计算机应用与软件,2003,(3).

[3] 程铁栋,杨丽荣.CPLD和单片机的高精度超声测距系统[J].单片机与嵌入式系统应用,2005,(12).

[4] 余璆.基于LabVIEW的超声波测距[J].无损检测,2005,(12).

篇5:一种基于超声波的测距系统

关键词:超声波;测距仪;AT89C52;DS18B20;报警

Design and Realization of ultrasonic range finder based

ABSTRACT The design objective is to design and implement microcontroller based ultrasonic range finder. The main use of AT89C52, HC-SR04 ultrasonic sensor alarm system complete ranging production. We AT89C52 as the main chip, by calculating the round-trip time ultrasound to measure the distance to obstacles in front of, and displayed in the LCD. SCM ultrasonic

transmitter. Then the microcontroller for processing operation to measure the distance and set alarm values are compared to judge distance, when measured distance is less than the set value, AT89C52 issue commands to control the buzzer alarm, and control each member refresh AT89C52 measured values. Because at different temperatures, ultrasonic wave propagation velocity is a difference, so we DS18B20 temperature measurement by the temperature

compensation unit, reducing errors due to temperature changes, and improve measurement

accuracy. Good design can achieve precise range ultrasonic distance within 4m, proven error is less than 3mm.

Keywords:Ultrasonic;Location;AT89C52;DS18B20;Alarm

目录

第一章 前言 ..................................................................................................................................................... 1

1.1 课题背景及意义 .............................................................................................................................. 1

1.1.1超声波特性 .............................................................................................................................. 1

1.1.2超声波测距 .............................................................................................................................. 2

1.2 超声波模块基本介绍 ........................................................................................................................ 3

1.2.1 超声波的电器特性 ............................................................................................................... 3

1.2.2 超声波的工作原理 ............................................................................................................... 5

1.3主要研究内容和关键问题 .............................................................................................................. 6

第二章 方案总体设计 ..................................................................................................................................... 7

2.1 超声波测距仪功能 ............................................................................................................................ 7

2.2设计要求 ............................................................................................................................................. 8

2.3系统基本方案 ..................................................................................................................................... 9

2.3.1方案比较 .................................................................................................................................. 9

2.3.2方案汇总 ................................................................................................................................. 11

第三章 系统硬件设计 ................................................................................................................................... 13

3.1 单片机最小系统 .............................................................................................................................. 13

3.2 超声波测距模块 ............................................................................................................................. 13

3.3 显示模块 .................................................................... 15

3.4温度补偿电路 ................................................................ 15

3.5 蜂鸣报警电路 ................................................................................................................................. 16

第四章 系统软件设计 ................................................................................................................................... 17

4.1 AT89C52程序流程图 ...................................................................................................................... 17

4.2 计算距离程序流程图 ...................................................................................................................... 19

4.3 报警电路程序流程图 ...................................................................................................................... 19

4.4 超声波回波接收程序流程图 .......................................................................................................... 20

第五章 系统的调试与测试 ......................................................................................................................... 21

5.1 安装 .................................................................................................................................................. 21

5.2 系统的调试 ...................................................................................................................................... 21

第六章 总结 ................................................................................................................................................... 23

参考文献......................................................................................................................................................... 24 致 谢........................................................................................................................... 错误!未定义书签。

附录 ................................................................................................................................................................ 26

附录1 整机电路原理图 ........................................................................................................................ 26

附录2 超声波温度和速度的关系 ........................................................................................................ 27

附录3 部分源程序 ................................................................................................................................ 29

第一章 前言

1.1 课题背景及意义

1.1.1超声波特性

众所周知,振动产生声波。通常每秒声波振动的次数被称为频率,单位是Hz。人的听觉范围为20?20,000Hz,即我们无法获取振动频率小于20Hz和大于20,000Hz的声波。所以科学家把声波按照人类的听觉范围进行了分类:振动频率大于20,000Hz的成为超声波,小于20Hz的称为次声波。

超声波是一种超越人类听力极限的声波,频率大于20KHz,是在弹性介质中的机械振荡。超声波能够在固体、液体和气体中传播,不同的传播介质传播的速度不相同。超声波和其他机械波一样,在传播的过程中也会因折射和反射而衰减。超声波有以下特性:

1.波长

通常我们把波的传播速度用波长乘以频率来表示。电磁波传播的速度非常快,高达3×108m/s,但是声波传播的速度很慢,在空气中常温常压下仅为343m/s(20℃、101KPa)。在波传播的速度比较低的情况下,波长非常短,更容易辨识,如果用超声波来测距,也就代表着我们能够在距离和方向上获得更高的分辨率。有了更高的分辨率,才可能使我们在测量过程中得到更高的精度。

2.反射特性

通过捕获在目标上反射的超声波,从而检测到物体的存在。因为金属、水泥、玻璃、木材、橡胶与纸能够反射将近100%的超声波,用超声波能够很轻易地找到这些对象。但是像布匹、棉毛等材料,它本身吸收超声波,用超声波来检测它们很困难。同时,要想探测位于凹凸表面和斜坡表面上的物体,由于被测物的不规则使得反射波变得不规则,测量难度会加大。超声波本身的特性决定了空旷的场所是超声波的理想测试环境,并且被测物体一定要能够反射超声波。

3.温度效应

超声波在空气中传播是随环境温度温度变化的,可以用c =331.5+0.607t(m/s)来表示声波的传播速度。 其中“c”为声波传播速度(m/s),“t”表示温度(℃)。所以,要想精确地测量障碍物的距离,实时检测环境温度并进行补偿是非常必要的,尤其冬季

室内外温差较大,对超声波测距的精度影响很大,此时可用温度补偿模块来减小温度变化所带来的测量误差。考虑到本设计的测试环境是在室内,而且超声波主要是用于实现避障功能,对测量精度要求不高,所以关于温度效应对系统的影响问题在这里不做深入的探讨。超声波在空气中传播时,温度与速度的关系会在附录中,供查阅。

4.衰减

在空气中传播的超声波,会因为在球形表面上发生衍射现象导致能量扩散损失,也会因介质吸收能量造成吸收损失,并且波强衰减量与距离是成正比的。超声波的衰减率还与频率成正比。如图6所示,超声波的频率增高,衰减率就越高,传播的距离也就越短。由此可见超声波的衰减特性直接影响了超声波传播的有效距离。

1.1.2超声波测距

在现实生活中某些特殊场合,有些传统的测距方式存在着难以克服的缺陷,例如电极法测量液位,运用差位分布电极,通过给电或发射脉冲来进行液面检测,由于电极长时间浸泡在液体中,非常容易被腐蚀和电解,进而失去灵敏性。使用超声波测距就能够很好地解决这些问题。当下市面上超声波测距系统存在体积庞大、价格昂贵、精度偏低等种种问题,使其在一些中小规模的测距中难以得到普遍的使用。在这样的背景下,本文设计了一款基于AT89C52单片机的低成本、高精度、微型化的超声波测距仪。

超声波较之于其他机械波,具有以下特有性质:超声波为定向传播,绕射少,反射能力强;超声波衰减很小,穿透能力强,在空气中传播速度较慢,也可在液体固体中传播;当超声波从一种介质入射到另一种介质时,由于在两种介质中的传播速度不同,在介质面上会产生反射、衍射等现象。因此,它在军用,农牧业,医学,工业有广泛的应用。并且能够实现洗涤、焊接、粉碎、测速测距等功能。

虽然目前的技术水平,人类利用超声波传感器的技术成果还是很有限的,但是随着科学技术的飞速发展,超声波传感器的应用领域将越来越广泛。这是一个蓬勃发展的技术和工业领域,有着无限的发展前景。展望未来,超声波传感器在各方面都是一个新的重要的工具,将有巨大的发展空间。在运动测距中将有更高精度的方向定位,以满足社会日益增长的需求。声纳定位的精度的提高,可以满足未来秘密武器进行打击的需要。无需多言,未来的超声波传感器、自动化智能集成联合其他的传感器,可以实现多传感器的一体化协同作业。伴随传感器技术的进步,传感器将具有简单的学习功能,自动确定发展方向的功能,并最终具有创造性。

2

1.2 超声波模块基本介绍

1.2.1 超声波的电器特性

1.声压特性

声压级 (S.P.L.) 是表示音量的单位,利用下列公式予以表示。

S.P.L.= 20logP/Pre (dB)式中,“P”为有效声压 (μbar),“Pre”为参考声压 (2×10-4μbar)如图1所示为几种常用超声波传感器的声压图。

图1 超声波传感器的声压图

2.灵敏度特性

灵敏度是一个用来表示声音接收级的单位,如下式所列。

灵敏度= 20log E/P (dB),此式中,“E”是产生的电压 (V),“P”是输入的声压(μbar)。超声波收发器的灵敏度直接决定系统的测距范围,如图8所示为几种中常见超声波传感器的灵敏度图,从图中可以发现40KHz时传感器的声压级最高,也就是说40KHz时所对应的灵敏度最高。

3

图2 超声波传感器灵敏度示意图

3.辐射特性

把超声波传感器安装在台面上。然后,测量角度与声压 (灵敏度) 之间的关系。为了准确地表达辐射,与前部相对比,声压 (灵敏度) 级衰减6dB的角度被称为半衰减角度,用θ1/2表示。超声波设备的外表面尺寸较小易于获得精确的辐射角度。图3展示的是几种常见的超声波传感器的辐射特性。

图3 超声波传感器的辐射特性

分析以上研究结果不难看出超声波传感器工作在40KHz范围内具有最大的声压级和最高的灵敏度,这为设计中选择合适的超声波传感器指明了方向。

4

1.2.2 超声波的工作原理

市面上常见的超声波传感器多为开放型,

超声波传感器的内部结构如图4所示,复合式振动器巧妙地固定在底座上。这种复合振动器是由谐振器、金属片和电陶片构成的双压电晶片的元件振动器。谐振器是圆锥形的,目标是可以有效辐射因振动而产生的超声波,而且能够有效地聚合超声波于振动器中心。

当电压被施加到压电陶瓷,用于机械形变的电压与频率将会改变。另外,振动会使压电陶瓷产生电荷。运用这个原理,由两片压电陶片或者一片压电陶片和一片金属片组成的振子称作双压电晶片元件,当向其时间电信号时,它将弯曲振动产生超声波。反向操作,即将超声波振动施加到双压电晶片元件,就会产生电信号。

图4 超声波传感器内部结构图

图5 声压在不同距离下的衰减特性

5

1.3主要研究内容和关键问题

因为超声波检测更加快捷、便利,并且运算简便,更易完成实际控制。所以超声波测距在移动机器人领域得到广泛使用。在实际工业运用中,用超声波测距可以使机器人在移动中自动避开障碍物。也因此要求系统必须能够及时获取障碍物的位置信息(距离和方向)。因为超声波测距系统的这些特点,其在车辆倒车雷达的制造上也已被广泛使用。

本设计主要研究通过单片机控制各模块工作,是通过单片机来控制各模块协同工作,控制超声波发射器发射超声波信号,使超声波接收器捕捉辨识回波信号,利用发射回收波信号的时间差,再利用温度补偿函数从而换算测量距离。

生活中运用本设计时,测量距离可能会随时改变,为了及时捕捉改变的距离值,即提高超声波测距仪的灵敏度,通过设定采样周期来实现实时测距。

主要有以下问题需要解决:

1.超声波回波检测

超声波信号发送后,会在障碍物表面进行反射和衍射,有些反射波可能会经过多次反射,超声波接收器会接收到多个回波信号,如何在众多回波中正确辨别是一个难点。

因为本设计研究的是短距离测距,那么如果在发射波后,一段时间内没有接收到回射波,我们就判定为超距,结束本次作业,返回清零,重新开始测距。

2.温度的影响

超声波在空气中传播时,它的速度是受外部温度影响的,我仔细的查阅了不同温度下对应超声波速度值,发现温度会严重影响测量精度。所以使用一种方法将外部温度对超声波测距精度的影响降到最低显得十分迫切。

3.如何报警

当测量距离小于一定范围时,属于危险范围,因为不论是机器人还是汽车,在与障碍物距离很近时,由于惯性原因难以避免与其相撞,所以与障碍物相距一定范围内时,要求系统会自动报警。报警通过什么实现,用什么方式,如何判定,这便成为我研究的另一个问题。我们考虑的是设计的实用性,用何种方法简便快捷的实现是研究重点。

6

第二章 方案总体设计

2.1 超声波测距仪功能

为了实现测距,本设计由硬件和软件两部分组成。主要由MCU控制单元、温度补偿模块、超声波模块、按键输入模块、显示模块、报警模块等组成。在这个设计中的核心模块是单片机。其中硬件有单片机、各功能模块、输入输出设备和各组成电路,软件是所有工作程序的统称。单片机通过系统急性比较处理,从而控制蜂鸣器报警。系统总体的功能方框图如图5所示。

图5系统功能方框图

主控制模块由AT89C52构成,就相当于人的大脑,主要起到控制协调各模块作业的作用。通过超声波发射接收的往返时间差,利用 L= vt/2精确测量出障碍物的距离,并显示在液晶屏上,同时显示当前温度T及该报警设定值。

由AT89C52控制的定时器负责产生超声波脉冲并计时,遇到障碍物后反射, 超声波接收模块对声波进行捕捉,再次计时。然后根据超声波往返的时间差、当前温度下超声波传播的速度代入温度补偿后的算式L=vt/2算得障碍物距离。超声波接收模块以及超声波发射模块就相当于人的眼睛,是获取外部信息最主要的通道。

按键输入模块有四个按键组成,主要作用是设置超声波测距仪的最小报警距离。 测温模块由主要作用是测量实际温度,把数据传输到主控模块,从而提取出相应温度下超声波在空气中传播的速度

显示模块由LCD1602构成,主要作用是显示测距结果、温度、以及最小报警距离。

7

报警模块由蜂鸣报警器组成,主要作用是在所测距离小于设置最小距离时发出蜂鸣、报警。应用如倒车雷达,当车尾离障碍物的实际距离小于一定值后,倒车雷达会报警提示。

信号通过单片机的各个模块处理进行综合分析,实现超声波测距仪的功能。在此基础上,完成系统方案的总体设计,并最后通过硬件和软件实现各功能。并附有硬件电路图、程序流程图、功能框图,特定系统配置、电路的原理与程序设计相伴。该系统的控制是很容易的、可靠的、测距精度高、可读性和流程明了等优势。实现后的作品可用于需要测量距离参数的各种应用场合。

2.2设计要求

考虑到设计的应用,本设计主要有以下设计要求:

1.主控模块

本设计旨在设计实现微型超声波测距仪,语言要求:C语言

低成本的51单片机是很好的选择,要求使用者要熟悉51单片机集成开发环境,单片机的内部结构、资源以及硬件和软件调试设备的基本方法和技能,而且可以使用C语言编写项目文件。

2.测量距离范围:4m

超声波测距仪,由于超声波方向性强、渗透力强、容易得到声能等较集中的优势,因为声衰减问题,因此并不适用于长距离范围。目前主要应用于倒车雷达,导航失明,视力矫正等。

盲人导航主要是判断当前方向的障碍物距离,从而帮助盲人选择正确的路线,此设计可以搭配GPS导航、语音播报等系统共同协助视力障碍者选择正确的前进路线。

视力矫正主要适用于坐姿不正确,读书、看电视、玩电脑离书本和屏幕太近的人群,首先根据实际需要设定报警距离,当使用者超过报警距离后自动报警。

以上都是短距测距,所以本设计4m的测量距离完全可以满足测量需要。

3.误差范围:3mm

超声波测距可能因为障碍物不规则、温度影响等原因影响测量精度,本设计添加了

8

温度补偿模块,大大提高了测量精度,知道老师要求精度优于1%,考虑到在实际中的应用,我查取了相关资料,觉得控制在3mm误差范围内是比较合适且可实现的。

4.温度补偿

自行构建基于单片机的最小系统,完成相关硬件电路的设计实现

5.显示

利用数显装置显示障碍物的距离值(以cm为单位,误差不超过1cm);了解超声波测距原理,温度补偿实现方法。

6.报警

当被测距离小于预定的距离时,向蜂鸣器发送信号报警。

2.3系统基本方案

2.3.1方案比较

1. 主控制器模块

方案1:

系统的核心部件选择一块CPLD(复杂可编程逻辑器件,诸如EPM7128LC84-15),以实现功能的控制和处理。 CPLD具有速度快、易于编程、资源丰富、开发周期短等优点,可以用VHDL语言开发编写。与单片机相比,CPLD在控制上有很大的不足。还有,CPLD的处理速度是异常迅速的,但是超声波测距处理速度的要求不会太高,则对系统处理信息的要求也不会过高,在这一点上,MCU足以胜任了。使用该方案,在控制上会遇到很多困难。出于这个原因,我们不使用这种方案的,所以产生第二个方案。 方案2:

机为系统的核心,用其超声数据处理,以实现其既定的性能指标。进行系统的全面分析,关键在于实现超声波测距,但在这一点上,单片机展示了其优势――控制简单、方便、快捷。其结果是,该微控制器可以充分发挥其资源丰富,有更强大的控制功能和位寻址的操作功能,价格低廉等特点。所以,较为理想的是第二个方案。

综上所述,我们选择了方案2。

2. 超声波模块

9

方案1:

由一块T40-16作为超声波模块。此模块具有1-1000cm非接触式的测距功能,但其造价高,很难有更广泛的应用。故放弃此方案。

方案2:

使用HC-SR04来实现超声波的收发,它可以进行2―400cm的非接触式距离检测,其测距误差不超过3mm。该模块包含反射超声波的超声波发射器、接收回波的接收器和控制电路。其物美价廉,测距精度高,故采用第2方案。

3. 电源模块

出于本设计使用便捷性的考虑,选择便携电源供电,故提出以下两种供电方案。 方案1:

采用12V蓄电池向系统供电。蓄电池拥有很强的电流驱动能力,和稳定的电压输出性能。但是蓄电池的体积太大,使用非常不方便。所以我们放弃了这个方案。

方案2:

采用3节1.5 V干电池共4.5做电源,经过实验验证系统工作时,单片机、传感器的工作电压稳定能够满足系统的要求,而且电池更换方便。

综上所述采用第2套方案。

4. 显示模块

方案1:

数码管显示。由于数字显示速度快、简单易用、简洁的显示等特点使它得到广泛应用。在这里我们需要显示的是测得的距离值和温度值以及报警距离的设置,不足以满足使用需要,因此我们放弃了此方案。

方案2:

使用LCD1602液晶显示屏。由于其清晰的液晶显示屏、丰富的内容、清晰地显示信息、便于使用、显示速度快等优点已被广泛使用。对于此系统我们要求不仅能显示测量距离、温度,还要显示报警距离的设定,故用物美价廉的LCD1602显示,充分发挥出LCD的显示优势。因此我们选择了此方案。

10

5. 温度补偿模块

方案1:

使用PT100温度传感器用于温度补偿电路。 PT100铂电阻传感器是利用其随温度变化的阻值、并显现出一定的函数关系的特点来进行温度补偿的,具有抗震动性、稳定性、精度高、耐高压等特点。但其操作较为复杂。

方案2:

温度补偿电路使用DS18B20作为温度传感器。通过“一线”总线(1-Wire是一种独特的数字信号的总线协议,独特的电源线和信号线的复合一起只使用一个口线;每个芯片独有的编码,支持网络寻址和零功耗等待等,这条总线需要的硬件连线最少)。DS18B20数字温度输出这种独特的方法允许多个DS18B20容易建立传感器网络,从而提供更多地可能性给整个测量系统的建立和组合。这已经比其他的温度传感器在转换时间、测量精度、分辨率、传输距离等有了长足的进步,为用户提供了更便捷的使用和更让人满意的结果。

相比之下,DS18B20数字温度直接输出,无需采取纠正措施,故选择方案2。

6. 报警模块

方案1:

使用语音芯片进行提示,优点可以自由设定要提示的声音。缺点使用复杂,需要专门的编程软件,成本高控制复杂,不便于普及。

方案2:

采用蜂鸣器提示,电路简单实用,可靠性高。

综上所述我们选择方案2。

2.3.2方案汇总

我们最终确定了如下方案:

1、主控芯片采用AT89C52单片机作为主控制器。

2、使用HC―SR04超声波模块

11

3、用3节干电池供电。

4、用LCD1602显示。

5、采用DS18B20做温度补偿。

6、使用蜂鸣报警器报警

12

第三章 系统硬件设计

3.1 单片机最小系统

对单片机的认识源于大一时电子爱好者协会的一次讲座。当时大三的学长们在做智能车,精彩的演讲和有趣的知识吸引了我,也让我对单片机产生了兴趣。他告诉我,单片机就相当于人的大脑,它不能像电脑那样做出特别复杂的运算,但它足以完成很多操作任务。他当时用的也是51单片机,因为感觉性能比较稳定,运算速度快,而且物美价廉。后来通过大三对单片机课程的学习,进一步对AT89C52了解,因此本次设计选用AT89C52作为主控制器。主控制系统电路如图6所示。

图6 单片主控电路

单片机通过发送信号来控制主控制电路协调超声波发射模块,超声波接收模块,显示模块,温度模块,报警模块。

超声波测距仪中各模块主要由单片机主控电路进行控制和协调,从而有条不紊的进行工作。

3.2 超声波测距模块

使用现成的超声波模块HC―SR04, 它的工作原理是:向IO口TRIG发送信号,加大于10us的高电平;该模块能够自动发送8个频率40KHz 的方波,且处于工作状态是检测是否有回波信号;如有返回信号,会在IO口向ECHO传输一个高电平信号,此高电平延续的时间便是超声波的往返时间。l(测试距离)=v(声速)t(高电平时间)/2。实物如下图7。其中VCC能够提供4.5V电源,GND为接地,TRIG可以触发输入信号,

ECHO

13

则为含有回波信号的四条线。

图7 超声波模块实物 图8 超声波接口

T/R-40-12型超声波传感器的震荡频率为40KHz,传播10米超声波信号强度便衰减到40个声压级,此时超声波接收探头就很难接收到回波信号。因此,从理论上分析,本设计超声波测距部分的实际范围是10cm―400cm,理想的避障范围是10cm―100cm,所以实际壁障安全距离应设在50cm―80cm之间。

图9 避障原理

图9中,超声波指向性地发送一段超声波并计时,超声波经过在空气中传播后,遇到障碍物反射回来被超声波接收器捕捉到,同时停止计时。利用时间差计算法算出距离。

14

图10 超声波接口电路图

3.3 显示模块

显示模块采用数LCD1602,连接图如图所示

图11 LCD显示电路

显示模块主要用来显示测量的距离值、温度传感器测量的温度值以及最小的报警距离。

3.4温度补偿电路

温度补偿电路采用DS18B20传感器,P2.4接DS18B20数据总线,由单片机控制DS18B20温度转换和数据的传输,并且将10k的`上拉电阻连接到数据总线。该系统采用外接电源

15

DS18B20的优点是I / O接口不需要强拉,总线控制器并不需要在温度很高的情况下转换。因此转换在可以允许的范围内,单线总线上附加数据的传输,如图15所示的硬件结构。

图12温度补偿电路DS18B20

3.5 蜂鸣报警电路

如图13所示,蜂鸣报警电路由蜂鸣器、三极管、接到单片机上P13引脚上的电阻组成。

图13 蜂鸣报警电路图

16

第四章 系统软件设计

4.1 AT89C52程序流程图

如图14所示为超声波测距单片机AT89C52程序流程图。

图14 系统软件的整体流程图

17

流程图具体细分如下:

1、系统初始化

单片机AT89C52、LCD1602、蜂鸣报警器、超声波测距模块通过上电复位并自行运行单片机清零程序。

2、发射超声波

自动读取超声波测距程序,AT89C52控制HC―SR04指向性地发射超声波并且记录时间,待捕捉到回波时终止计时,算得回波时间。

3、判断是否检测到回波

超声波接收电路出于运行状态。如超声波接收电路收到回波,则将信号发送到单片机并再次计时,通过温度补偿后的算式算得障碍物当前距离;如超声波接收电路未在设定时间收到回波,则返回。

4、显示

显示距离、当前温度、设置的报警距离。

5、是否小于超声波报警距离

将测得距离与报警值进行比较,如小于报警值,则进行报警。

6、再次检测等待下次报警

18

4.2 计算距离程序流程图

图15 计算距离程序流程图

首先调用温度函数进行温度补偿,得到当前温度下的超声波传播速度v;然后调用时间函数t,即超声波发射与超声波回波的时间差;再将以上函数代入算式=vt/2算得当前温度下障碍物的距离;最后返回。

4.3 报警电路程序流程图

首先调用测量函数l,然后与报警设定值进行比较,如测量值l小于报警设定值0.5m,则向蜂鸣器发送报警信号,蜂鸣器进行报警;如测量值l大于报警距离0.5m,则不报警,返回调用测量函数。

19

图16报警电路程序流程图 图17 超声波回波接收程序流程图

4.4 超声波回波接收程序流程图

如图17所示,首先单片机控制超声波发射器发射超声波,同时计时开始,超声波接收器处于工作状态,如接收到回波,则再次计时,计算超声波往返时间差t;如未收到超声波回波,则返回超声波放射,重新发射并计时。

20

第五章 系统的调试与测试

5.1 安装

1.检查元件

按电路图购买好元件后,首先需要检测元件是否完好。按照各种元件检测的方法分别进行检测,这项任务虽然重复繁琐,但是我觉得这是必做的工作,因为只要有一个元件出了问题,设计就不能实现它的功能。同时需要细心对照原理图,使其一一对应,多次检查确保正确后才可以上件、焊件,以防因元件错误不便修正,导致功能无法实现。

2.放置、焊接各元件

出于对本设计便携的要求,选用了正好可以容纳所有器件的小块洞洞板。然后依照原理图对应放置各元件,此过程中先安放、焊接低层元件,最后焊高层的和要求较高的元件。特别要注意易损元件的焊接,我把它们放在最后,同时要注意集成芯片上焊接不能连续焊接超过10s,并且注意芯片的安装方向。

5.2 系统的调试

打开电源开关,电源指示灯亮起,LCD1602正常显示。距离0.90m,温度28°C,设定报警距离0.5m。向障碍物进一步靠近。

21

当靠近后,距离显示为0.44m,发出蜂鸣警报。

软件调试正常,屏幕正常显示,正常工作。

经过多次测试调试,与实际温度对比、实际距离对比,该设计能够在一定范围内稳定的工作,并测出距离,并且误差小于3毫米。设计成功。

22

第六章 总结

在台老师的悉心指导下,自己从初拿题目的一头雾水,到一步步地学习、设计、改正,再改正,到最后完成本设计,这个过程让我收获良多。

这是我的学生生涯中最后一次完成作业,一份特别的作业。学校的教育是有限的,更重要的是我在这个过程中培养的独立思考、独立完成任务的能力以及终生学习的信念。我觉得这才是一所高等学府应有的教育模式,人脑不是计算机,也不是储存器,比起存储,我相信现在的一台普通电脑就比人一辈子记忆量还大。我认为大脑是一个特殊的信息加工处理器,较之电脑,它拥有更多地创造性以及无限可能。我想求学这么多年,可能学习、锻炼的正是这种能力。在信息爆炸的年代,知识在飞速的更新,有可能我们现在学习的知识已经过时很多年,但为什么还要学习这些知识,这种行为并不是没有意义的,它让我们学会了学习方法,在掌握前人知识的基础上,我们可以更好更快地创造。

这次经历,对于我个人的成长来说意义深远。这个过程不像我最初想的那么简单,原以为可以一边工作一边完成设计的我,也辞掉了刚刚入门的工作,专心地投入其中。专注本身就是一种历练,本身也是人的一种优秀的品质。

大一的时候,自己对于大学的一切都很新鲜,着迷,先后参加院学生会,创业大赛等组织及活动,丰富了自己的课余生活,也在实践与学习中加深了对世界、人生、价值的思考。大二经历了一年的颓废,基本上课余时间都在寝室打游戏,挂了科,付出了代价。大三时迷恋上了市场营销、心理学,先是看了三十二本世界各领域名人的传记,从初中高中时的模仿到了总结分析,认识到成功的路虽不同,但是成功者的许多特质都是相同的,然后开始全心扎入市场营销的学习中,拜读了科特勒、泰勒、德鲁克等名师大家的许多著作,同时自己的三观有了新的提升,但这期间由于想法极端,耽误了大学学业。由于大三的积累,到了大四就有些急于求成了,想尽快融入社会,实现自我价值。却忘记了应该先把应该走的路走好,才能走自己想走的路。

这次宝贵的经历,让我明白,路是走出来的,不是想出来的。我会把我对梦想的渴望,拆分成一步步可以执行的计划,按部就班地完成。

23

参考文献

[1] 宋文绪. 传感器与检测技术[M]. 北京: 高等教育出版社, .

[2] 余锡存. 单片机原理及接口技术[M]. 西安: 西安电子科技大学出版社, .

[3] 李全利. 单片机原理及接口技术[M]. 北京: 北京航空航天大学出版社, 2004.

[4] 薛均义, 张彦斌. MCS-51系列单片微型计算机及其应用[M]. 西安: 西安交通大学出版社, .

[5] 徐爱钧, 彭秀华. 单片机高级语言C51应用程序设计[M]. 北京: 北京航空航天大学出版社, .

[6] 康华光. 电子技术基础(模拟部分)[M]. 北京: 高等教育出版社, 2004.

[7] 胡萍.超声波测距仪的研制[J]. 计算机与现代化,,7(10):21~23.

[8] 时德刚,刘哗. 超声波测距的研究[J]. 计算机测量与控制,,9(10):31~33.

[9] [美]J.马库斯. 电子电路大全[M]:卷1,日用电路. 北京:计量出版社,1985.

[10] 苏长赞. 红外线与超声波遥控[M]. 北京:人民邮电出版社,1993.7.

[11] 张谦琳. 超声波检测原理和方法[M]. 北京:中国科技大学出版社,1993.10.

[12] 九州. 放大电路实用设计手册[M]. 沈阳:辽宁科学技术出版社,2002.5.

[13] 樊昌元,丁义元. 高精度测距雷达研究[J]. 电子测量与仪器学报,2000,9(8):3537.

[14] 苏伟,巩壁建. 超声波测距误差分析[J]. 传感器技术,2004,3(4):17~20.

[15] 赵保全. 中国集成电路大全[M].北京:国防工业出版社,1985.

[16] 肖景和. 数字集成电路应用精粹[M]. 北京:人民邮电出版社,2003. [17] 陈晓文. 电子线路课程设计[M].北京:北京电子工业出版社.2004.

[17] 陈卿,侯薇. 家电控制与检测用集成电路[M].北京:中国计量出版社,2005. [20] 何希才. 传感器技术及应用[M]. 北京:北京航空航天大学出版社,2005.

[18] 余成波. 传感器与自动检测技术[M]. 北京:高等教育出版社,2004.

24

25

附录

附录1 整机电路原理图

26

附录2 超声波温度和速度的关系

27

28

附录3 部分源程序

温度补偿程序 void init2 {

//T2CON=0x0c;

RCAP2H=(65536-5)/256; RCAP2L=(65536-5)%256; TH2=(65536-5)/256; TL2=(65536-5)%256; EA=1; ET2=1; TR2=1;

// PT2=1; //T2}

void main() {

init1(); //xianshi(); //init2(); //T2tx=0;

IT0=0; //init(); //while(1); }

void timer1() interrupt 3 {

tx=~tx; k++; if(k==3) { k=0; TR0=0;

设为高优先级 液晶初始化 温度字母 初始化 外部中断低电平触发定时器初始化 29

TR0=1;

delaynus(6); //除共振 EX0=1;

//for(d=0;d

void int0() interrupt 0 {

IE0=0; //中断触发位 EX0=0; //关中断 TR1=0; ET1=0; TR0=0; ET0=0;

date=TH0*256+TL0; date+=500; if(TZ>=0&&TZ

jl=(date*0.161); }

if(TZ>10&&TZ

jl=(date*0.169); }

if(TZ>20&&TZ

jl=(date*0.172); }

if(TZ>30&&TZ

jl=(date*0.174); }

30

if(TZ>40&&TZ

jl=(date*0.175); }

xianshic();

for(d=800;d>0;d--); TH0=0x00; TL0=0x00; ET1=1; TR1=1; O++; if(O==100) { O=0; TR1=0; ET1=0; TR2=1; ET2=1; }

}

void timer0() interrupt 1 //{ TR1=0; TR0=0; TH0=0X00; TL0=0X00; TR1=1; }

void timer2() interrupt 5 { TF2=0; EXF2=0; TR2=0;

31

计时

ET2=0;

xianshi(); //温度字母 readyread(); TL=readonechar(); TH=readonechar(); TZ=TH*16+TL/16; xianshiwen(TZ); delay(10); TR1=1; }

#include //调用单片机头文件

#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255 #define uint unsigned int #include #include

//数码管段选定义 0 1 2 3 4 5 6

0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};

7 8 9 //断码

uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, //数码管位选定义

uchar code smg_we[]={0xe0,0xd0,0xb0,0x70};

uchar dis_smg[8] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; uint code wendu_buchang1[46] = {

//温度补偿表格

// 0-9度 //10-19度 //20-29度 //30-39度

//40-45度

331,332,333,333,334,334,335,336,336,337, 337,338,339,339,340,341,341,342,342,343, 343,344,345,345,346,346,347,348,348,349, 349,350,351,351,352,352,353,354,354,355, 355,356,357,357,358,358 };

sbit smg_we1 = P3^4; sbit smg_we2 = P3^5; sbit smg_we3 = P3^6; sbit smg_we4 = P3^7;

32

ET1=1;

//无符号整型 宏定义 变量范围0~65535

//数码管位选定义

sbit dq = P2^4; //18b20 IO口的定义 uint temperature ; // sbit c_send = P3^2; sbit c_recive = P3^3;

//超声波发射 //超声波接收

sbit beep = P2^3; //蜂鸣器IO口定义 uchar smg_i = 3; //显示数码管的个位数 bit flag_300ms ;

long distance; //距离 uint set_d; //距离 uchar flag_csb_juli; //超声波超出量程

uint flag_time0; //用来保存定时器0的时候的 uchar menu_1; //菜单设计的变量

/***********************小延时函数*****************************/ void delay_uint(uint q) { while(q--); }

/**********************1ms延时函数****************************/ void delay_1ms(uint q) { uint i,j; for(i=0;i

/**********************处理距离函数***************************/ void smg_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; }

/***************把数据保存到单片机内部eeprom中****************/ void write_eeprom()

33

{

SectorErase(0x2000);

byte_write(0x2000, set_d % 256); byte_write(0x, set_d / 256); byte_write(0x2058, a_a); }

/******************把数据从单片机内部eeprom中读出来*****************/ void read_eeprom() {

set_d = byte_read(0x2001); set_d

set_d |= byte_read(0x2000); a_a = byte_read(0x2058); }

/**************开机自检eeprom初始化*****************/ void init_eeprom() {

read_eeprom(); if(a_a != 1) { set_d = 50; a_a = 1; write_eeprom(); } }

/********************独立按键程序*****************/ uchar key_can; //按键值 void key() //独立按键程序 {

static uchar key_new;

key_can = 20; //按键值还原 P2 |= 0x07;

if((P2 & 0x07) != 0x07)

//按键按下

34

//先读

//新的单片机初始单片机内问eeprom

{

delay_1ms(1); //按键消抖动 if(((P2 & 0x07) != 0x07) && (key_new == 1)) {

//确认是按键按下

key_new = 0; switch(P2 & 0x07) {

case 0x06: key_can = 3; break; case 0x05: key_can = 2; break; case 0x03: key_can = 1; break; } } } else key_new = 1; }

/*******************数码管的位选******************/ 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_we4 = 0; break; } }

/***********************数码显示函数***************************/ void display() {

static uchar i; i++; if(i >= smg_i)

35

//得到k2键值 //得到k3键值 //得到k4键值

i = 0;

smg_we_switch(i); P1 = dis_smg[i]; }

/***********************18b20初始化函数************************/ void init_18b20() { bit q; dq = 1; dq = 0; dq = 1; q = dq; dq = 1; }

/*******************写18b20内的数据*********************/ void write_18b20(uchar dat) { uchar i; for(i=0;i

//写数据是低位开始

dq = 0;

//把总线拿低写时间隙开始

//把总线拿高 //给复位脉冲 //750us

//把总线拿高 等待 //110us

//读取18b20初始化信号 //200us

//把总线拿高 释放总线

delay_uint(1); //15us delay_uint(80); delay_uint(10); delay_uint(20);

//位选 //段选

dq = dat & 0x01; //向18b20总线写数据了 delay_uint(5); // 60us dq = 1; dat >>= 1; } }

/*******************读取18b20内的数据*********************/ uchar read_18b20()

36

//释放总线

{

uchar i,value; for(i=0;i

//把总线拿低读时间隙开始 //读数据是低位开始 //释放总线 //开始读写数据

value >>= 1; if(dq == 1) value |= 0x80;

delay_uint(5); //60us 读一个时间隙最少要保持60us的时间 }

return value; }

/******************读取温度的值、读出来的是小数***************/ uint read_temp() { uint value; uchar low; init_18b20();

//在读取温度的时候如果中断的太频繁了,就应该把中断给关 //初始化18b20

了,否则会影响到18b20的时序

write_18b20(0xcc); //跳过64位ROM write_18b20(0x44); //启动一次温度转换命令 delay_uint(50); init_18b20();

//500us //初始化18b20

//返回数据

write_18b20(0xcc); //跳过64位ROM write_18b20(0xbe); //发出读取暂存器命令 EA = 0;

low = read_18b20(); //读温度低字节 value = read_18b20(); //读温度高字节 EA = 1; value

//把温度的高位左移8位

//把读出的温度低位放到value的低八位中 //转换到温度值

37

value *= 0.0625;

return value; }

//返回读出的温度

/*********************小延时函数********************/ void delay() {

_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); }

/*********************超声波测距程序************************/ void send_wave() {

c_send = 1; delay(); c_send = 0; TH0 = 0; TL0 = 0; TR0 = 0; TR0=1; while(c_recive) {

flag_time0 = TH0 * 256 + TL0;

if((flag_time0 >40000)) //当超声波超过测量范围时,显示3个888 {

38 //执行一条_nop_()指令就是1us

//10us的高电平触发

//给定时器0清零

//关定时器0定时 //当c_recive为零时等待

while(!c_recive);

//当c_recive为1计数并等待

TR0 = 0; flag_csb_juli = 2; distance = 888; break ; } else {

flag_csb_juli = 1; } }

if(flag_csb_juli == 1) { TR0=0; //

//关定时器0定时 //读出定时器0的时间

distance =flag_time0; 0.017M 算出来是米

if(temperature

distance *= wendu_buchang1[temperature] / 2.0 * 0.0001; // 0.017 = 340M / 2 = 170M = 0.017M 算出来是米

else

distance *= 358 / 2.0 * 0.0001; // 0.017 = 340M / 2 = 170M = 0.017M 算出来是米

if((distance >500)) {

distance = 888; } } }

/*********************定时器0、定时器1初始化******************/ void time_init() {

EA = 1;

//开总中断

TMOD = 0X11; //定时器0、定时器1工作方式1

39

distance *= 340 / 2 * 0.0001; // 0.017 = 340M / 2 = 170M =

//距离 = 速度 * 时间

//如果大于3.8m就超出超声波的量程

ET0 = 1; TR0 = 1; ET1 = 1; TR1 = 1; }

//开定时器0中断 //允许定时器0定时 //开定时器1中断 //允许定时器1定时 1

/****************按键处理数码管显示函数***************/ void key_with() {

if(key_can == 1) //设置键

{

menu_1 ++; if(menu_1 >= 3) {

menu_1 = 0; smg_i = 3; //只显示3位数码管 }

if(menu_1 == 1) {

smg_i = 4; //只显示4位数码管 } }

if(menu_1 == 1) //设置报警

{

if(key_can == 2) {

set_d ++ ; //加1

if(set_d >400) set_d = 400; }

if(key_can == 3) { set_d -- ;

//减1

if(set_d

40

set_d = 1; }

dis_smg[0] = smg_du[set_d % 10];

//取小数显示

dis_smg[1] = smg_du[set_d / 10 % 10] ; //取个位显示 dis_smg[2] = smg_du[set_d / 100 % 10] & 0x7f ; //取十位显示 dis_smg[3] = 0x88; //a write_eeprom(); } }

/****************报警函数***************/ void clock_h_l() {

static uchar value; if(distance

value ++; //消除实际距离在设定距离左右变化时的干扰 if(value >= 2) {

beep = ~beep; //蜂鸣器报警 } } else {

value = 0; beep = 1; } }

/****************主函数***************/ void main() { beep = 0;

//开机叫一声

delay_1ms(150); P0 = P1 = P2 = P3 = 0xff;

41 //保存数据

//取消报警

send_wave(); //测距离函数

smg_display(); //处理距离显示函数 time_init(); //定时器初始化程序 init_eeprom(); //开始初始化保存的数据 send_wave(); send_wave(); while(1) {

if(flag_300ms == 1) {

flag_300ms = 0;

temperature = read_temp(); //先读出温度的值 clock_h_l(); //报警函数 send_wave();

//测距离函数

if(menu_1 == 0)

smg_display(); //处理距离显示函数 if(menu_1 == 2) {

dis_smg[0] = 0xff;

dis_smg[1] = smg_du[temperature % 10]; //取温度的个位显示 dis_smg[2] = smg_du[temperature / 10 % 10] ; //取温度的十位显示 dis_smg[3] = 0xff; } } key(); {

key_with(); } } }

/********************定时器1中断服务程序********************/ void time1_int() interrupt 3

42 //测距离函数 //测距离函数

//显示温度

//按键函数

if(key_can

//按键处理函数

{

static uchar value;

//定时2ms中断一次

TH1 = 0xf8;

TL1 = 0x30; //2ms display(); //数码管显示函数

value++; if(value >= 150) { value = 0; flag_300ms = 1; } }

43

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作 者 签 名: 日 期: 指导教师签名: 日 期:

使用授权说明

本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名: 日 期:

44

学位论文原创性声明

本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。

作者签名: 日期: 年 月 日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名: 日期: 年 月 日

45

导师签名: 日期: 年 月 日

篇6:超声波测距总结报告

超声波测距系统

总结报告

自03 胡效赫 2010012351

自03 胡效赫 2010012351

一、课题内容及分析

首先根据课程所给的几个题目进行选择,由于自己最近在做电子 设计大赛的平台设计,希望对超声波测距在定位方面应用有更详尽的了解,所以选择课题三——超声波测距作为课程设计,内容如下:

对课题进行分析:实验提供超声波传感器T40-16和R40-16,利用面包板和小规模芯片搭接电路,实现距离的测量及显示。大致思路即驱动发射端发出超声波,接收端收到返回的脉冲进行处理与计算得到测量距离并通过数码管和蜂鸣器显示。

二、方案比较与选择

由于超声波测距方案原理基本相同,只要能够检测出发射到接收的时间,并通过相应计算就可以得到所测距离。所以问题大致分为驱自03 胡效赫 2010012351 动发射端、接收端检测、间隔时间计算与计算结果显示四部分。具体的方案设计如下:

闸门脉冲源产生基准宽度为T 的闸门脉冲,该脉冲一方面控制计数电路的计数启动和并产生计数器清零脉冲,使计数器从零开始对标准脉冲源输出的时钟脉冲(频率为17KHz)计数。同时开启控制门,超声波振荡器输出的40kHz脉冲信号通过控制门,放大后送至超声波换能器,由发射探头转换成声波发射出去。该超声波经过一定的传播时间,达到目标并反射回来,被超声波换能器的接收探头接收变成电信号,经放大、滤波、电压比较和电平转换后,还原成方波。图中的脉冲前沿检测电路检测出第一个脉冲的前沿,输出控制信号关闭计数器,使计数器停止计数。则计数器的计数值反映了超声波从发射到接收所经历的时间(或距离)。

自03 胡效赫 2010012351

三、模块化设计及参数估算

1、闸门控制模块  设计思路

555振荡电路产生频率为2Hz的脉冲,作为闸门脉冲源。RC微分电路将输出的2Hz脉冲进行微分运算产生脉冲信号,作为计数启动和计数清零的信号,分别控制D触发器的置高端和74LS90的清零端。 参数设计:

555振荡电路T =(R1+2*R2)*C*ln2。其中R1取4.7kΩ,R2接入10kΩ滑动变阻器,最后实测7.51kΩ,C取47uF。RC微分电路R为1kΩ,C为4.7nF

2、超声波发生模块  设计思路

555振荡电路产生频率为40kHz的脉冲,作为驱动超声波发射端 自03 胡效赫 2010012351 的基础脉冲信号。

同时由2Hz闸门信号作为门控(高电平有效)。

再利用电压比较器,对555脉冲信号进行整形,而后输出。 参数设计

555振荡电路T =(R1+2*R2)*C*ln2。其中R1取2kΩ,R2接入 1kΩ滑动变阻器,最后实测440Ω,C取10nF。

3、超声波接收模块  设计思路

电压放大电路,利用LF347放大超声接收端信号

电压比较电路,利用电阻分压设计阈值电压VREF,当没有接收到信

号时V-大于V+,输出为负,当接收到信号时V-小于V+,输出为正。稳压电路,电压比较器输出端接1kΩ电阻,反接5V稳压管接地,自03 胡效赫 2010012351 使没有信号即输出为负时,输出-0.7V电平,有信号即输出为正时,输出5V电平。 参数设计

放大电路电阻值为1kΩ和750kΩ,放大倍数为750。

电压比较器VREF由100kΩ电阻和100kΩ的滑动变阻器分压决定,最终滑动变阻器阻值取为5.68kΩ,VREF取值大致为-0.6V。

4、计数控制模块  设计思路

计数控制模块由,计数启动和计数停止控制组成。由D触发器进行实现 当计数开始时闸门信号的微分电路给出低电平脉冲将Q置高,计数信号有效。而接收到回波后,接收信号由低变自03 胡效赫 2010012351 高,CLK产生上升沿将Q置低,计数信号关闭。

5、计数模块  设计思路

555振荡电路产生17kHz的脉冲型号用来计数 三个74LS90级联,采用十进制接法计数,分别对应米、分米、厘米。

计数信号控制源由计数控制模块的D触发器的Q信号给出 计数信号清零源由闸门控制信号的微分模块经由缓冲器后给出高脉冲清零。 参数设计

555振荡电路T =(R1+2*R2)*C*ln2。其中R1取5.1kΩ,R2接入

47kΩ滑动变阻器,最后实测18.98kΩ,C取2.2nF。

6、报警模块  设计思路

令A[4],B[4],C[4]分别对应米、分米、厘米,同时当模块计数时报 警应该无效,设D触发器输出信号为Q,则 逻辑函数Alarm = A1’A0’B3’B2’B1’Q 自03 胡效赫 2010012351 利用与非、或非及非逻辑运算搭接电路

四、实验电路总图

1、电路原理图

自03 胡效赫 2010012351

2、时序图

3、面包板布局

五、实验结果与实验中出现的问题分析

1、实验结果 结果:基本要求及提高要求全部完成。其中四个地方用到了滑动变阻器分别是三个555的脉冲源(产生2Hz、17kHz和40kHz的方波)和接收模块的电压比较器阈值电压VREF的确定。调试结果的各自03 胡效赫 2010012351 阻值已在模块设计中标明。

2、实验中出现的问题及分析

A.微分电路输出信号的检查

开始分模块调试时,不会测量微分电路输出的脉冲信号,然后不能确定问题出现在下级还是本级。经过老师的提示,只要把示波器显示的波形调到最粗最亮,调成相应扫描速度,可以看到面板上有亮点间歇显示。从而验证微分电路输出信号无误,并且幅值正确。

B.数码管显示不稳定

数码管显示不稳定,多数原因是由于数字电路与模拟电路相互干扰,计数器中混有杂波和高频信号。用示波器测量计数电路的74LS90的信号,发现有17kHz的杂波。首先将模拟地和数字地分开将555振荡电路的地直接由引线接到学习机上,而后数码管开始显示,但仍不太稳定。再在VCC和GND之间跨接0.1uF的电容滤掉杂波。之后数码管稳定显示。

C.信号输出不正确

D触发器输出电平Q在未接受到信号时应该是低电平,但始终是高电平。开始时不确定前级各模块的正确与否,有些停滞,之后确定前级信号正确,D触发器接线正确,而输出信号不对,则一定芯片的问题。换了芯片之后,输出正常。

六、收获、体会和建议

1、收获与体会 本次实验充分体会电路模块设计与调试的过程,对于设计电路和自03 胡效赫 2010012351 测试电路的能力有了更一步的提升。首先,搭接与调试电路时,应该本着自顶向下逐步求精的原则,在理解原理并确定原理正确之后,先对于面包板的布局进行规划,把相应的芯片测试后,插到相应部分,保证后面搭接时方便并且思路清晰。然后,按分模块逐级搭接调试的原则测试电路,保证了每一级的输入信号都是正确的后,如果输出不正确,去检查接线,接线正确后检查芯片是否正常工作。最后,发现信号干扰问题,尝试用滤波,分离数字地和模拟地,以及简单的搭接电容的方法,解决干扰。依照上述方法调试电路,保持一颗正常心态,可以高效并且正确的完成问题。

2、建议 由于整个实验过程中只需要,测量接收波形的上升沿,所以对于模拟电路中波形整形处理部分现对简单。现提出以下课程建议: 建议老师将提高要求的测量距离改为高于3m,这样同学们利用波形放大然后与阈值电压比较的方法就不能实现了,因为相应的杂波干扰也会随之放大,冲过阈值电压,影响结果。所以此时同学应该使用选频电路选出40kHz的波形,控制后面的计数模块,对于模拟电路部分会有更高的锻炼。

附工作日志

8月21日 自03 胡效赫 2010012351 经过周末的预习,查找了关于超声传感器的原理知识和超声测距的相关内容。分析了超声测距的实现方案,并将电路分为各个模块实现,每个模块进行了相应仿真(但有些仿真结果不理想,待硬件实测)。

本日上午首先针对超声测距系统方案中的几个模块与同学进行了讨论,包括方波频率的选择与实现,闸门信号的实现与清零,以及面包板的布局合理性。

而后首先搭接了三个555方波发生器。上午只搭接测试出了,40kHz的方波 本日下午再次对于板子的规划进行思考,并大致划分了区域,把相应用到的芯片放到了相应的位置。然后搭接测试出了2Hz方波。分别测试两种方波的频率均很稳定,效果不错。而后开始搭接超声发射模块的实现,将两种频率的方波进行逻辑运算,经由LS00,信号传至运算放大器LF347,将信号与2.5V电压值进行比较,得到最终的大约0.5s驱动一次超声波发射器的效果。

但是遇到的问题是,当2Hz和40kHz的方波共同输入到LS00中时,对2Hz的方波进行测量,示波器显示的频率很难稳定下来,发现混有杂波,可能是40kHz的杂波,也可能是交流成分。进行了各种测试,重新退到上一步骤,检查芯片的问题,等等。但是问题并没解决,后来怀疑是示波器测量可能不是很准。直接测量最终运放发射的信号,发现效果正常。问题解决。

而后进行超声接收信号接收处理的部分电路的搭接,以及触发器电路的搭接。之后搭出17kHz的脉冲源后,下课。

晚上又把数码显示和蜂鸣器部分搭出来了,明天分模块测试。8月22日

由于昨天已经把各个模块全部搭好,今天开始分模块测试和模块的联调测试。今天下来调试结果:

超声波发射模块调试通过正常运行,并且接收模块可以接收到相应信号,在示波器上显示相应波形。40kHz的555脉冲源正常,2Hz的555脉冲源正常,经过LS00运算后,到LF347正常驱动T40-16,而相应的R40-16接收到反射的超声波信号后,产生较大幅值的波形(较之原有的干扰信号),可以通过放大,与阈值电压比较后得到相应的脉冲信号(没有接收到信号时,信号为0,大于阈值电压,最终输出低电平信号-0.7V;接收到信号后,信号为负,小于阈值电压,最终由于稳压管稳压后输出高电平5V)。即,当调整出较好的阈值电压后接收到超声信号后会产生相应的上升沿信号。

对于闸门信号的作用部分,由74LS74双上升沿D触发器来完成。对2Hz脉冲信号进行微分运算,上升沿时给出正脉冲,经由40106COMS施密特反相器可以得到一直是高电平闸门信号时给出低电平和一直是低电平闸门信号时给出高电平的信号。将LS74的置高端接前者信号,给出低电平脉冲时D触发器被置高,而只有CLK信号给出上升沿后才能将D触发器置低。

!!但是输入信号都测出来了,输出不对哎有木有 所以明天LS74是重点哎有木有!!

而后是计数器显示模块,需要有17kHz的555脉冲源,搞定。与经由闸门信号控制锁存后的Q输出端进行逻辑运算(LS00),结果输出到LS90中进行计数并在数码管中显示。同时从计数的信号端中做组合逻辑实现低于0.2m时报警。同时计数器的清零信号由闸门信号微分运算后COMS施密特反相器整形后得到。

开始没有产生555脉冲信号的时候,将CLK和CLR用学习机模拟,效果很好,接上555后发现数码管不稳,有木有!!

模拟地和数字有干扰有木有!!想办法有木有!!自03 胡效赫 2010012351 数电电子技术实验考核的时候就有这个问题木有解决,明天上午一定要解决有木有!!

8月23日

上一篇:党课考试多选题下一篇:面试淘宝客服的自我介绍