当前位置:文档之家› 超声波测距论文(含原理图、程序) (1)

超声波测距论文(含原理图、程序) (1)

超声波测距论文(含原理图、程序) (1)
超声波测距论文(含原理图、程序) (1)

1 绪论

当前社会经济的不断发展和工业科学技术的不断提高,汽车已逐渐进入不少百姓家。汽车使用数量的不断增加,从而由此导致的倒车交通安全问题也非常严重,道路交通压力增加,交通安全问题也是面临严峻挑战。在面临如此严峻的交通安全问题,许多涉及安全问题的汽车辅助系统也纷纷现世。而本设计就是利用单片机知识、传感器知识等,进行的汽车防撞装置的设计,在汽车倒车时,这种装置可以在驾驶员对车尾与障碍物体的距离远近无法目测和判断时进行报警。

1.1 课题背景及意义

我国社会经济的不断发展,人们对汽车这种交通工具的依赖性也越来越大,导致了车辆的日益增加在给城市交通不断施加压力的同时,也引发了非常多行车的安全问题。一些由驾驶员反应不够迅速而导致的汽碰擦,还有很多时候是由于驾驶员对离障碍物的距离判断不准确而造成的,如果驾驶员能提前知道障碍物的存在并且知道障碍物的距离,那么驾驶员就能及时地采取措施,从而能避免事故的发生。因此,许多安全系统也应运而生,诸如为了避免交通事故发生的主动安全系统和在发生事故时的防护安全的被动安全系统,而主动安全系统对汽车交通事故的发生能起到避免的作用,所以,主动安全系统的研究更为重要。随着汽车数量的增加,停车场的数量也急剧增加,停车车辆密集,停车人多,所以汽车碰撞亦逐渐增多。而本设计的汽车防撞装置就是主动安全系统,通过对汽车与障碍物之间距离的提示报警避免汽车与障碍物之间的擦碰。本设计要求设计的汽车防撞装置能减少驾驶员的驾驶压力和判断错误,使驾驶员泊车倒车更加安全方便,本设计将对提高交通安全起到重要作用。

本设计基于单片机实现汽车防撞,将超声波测距和传感器联系在一起,利用单片机的实时控制和数据处理功能测量并显示汽车与障碍物之间的距离,并在不同距离利用蜂鸣器不同频率发出不同声音及时报警。这样驾驶员就能通过测距的显示甚至不同的声音来直接判断汽车玉障碍物之间的距离。本设计的设计简易,虽然精度不高,还不能测量过远的距离,但规模小,外围电路简单,调试也方便,成本也不高,器件更换容易,灵活性高,而且能完全满足驾驶员泊车时的需要,可以完全解除驾驶员在倒车过程中的顾虑和困扰,提高泊车的安全。

汽车防撞装置这种汽车安全辅助装置能大大减少汽车驾驶员在倒车的时候顾虑和对距离判断的失误,从而能够避免倒车的安全问题的发生,故此装置对于提高交通

安全将起到重要的作用。所以,本课题所要求设计的基于单片机的汽车防撞装置将具有极大的现实意义和市场。

1.2 国内外研究现状

本汽车防撞装置包含有单片机控制电路、超声波测距传感器、蜂鸣器报警电路及数码管显示部件等,装置将各部件有机地结合起来,实现超声波测距及蜂鸣器报警提示的功能。

倒车雷达系统的开始是以蜂鸣器报警为标志的。汽车离障碍物距离越近,蜂鸣器报警声越急,蜂鸣器报警虽然使驾驶员知道有障碍物的存在,但却不能确定汽车车尾离障碍物有多远,所以,蜂鸣器报警对驾驶员帮助不是很大;之后一个质的飞跃就是液晶屏显示的出现,特别是液晶显示开始出现动态显示系统,驾驶员就是只要发动车辆,而且不用挂倒挡,液晶显示器上就会出现汽车图案以及汽车与周围的障碍物的距离,液晶显示是动态显示,液晶显示器的外表美观,显示的色彩也很清晰,而且可以直接粘贴在仪表盘上,安装也很方便[1]。不过由于液晶显示的灵敏度比较高,而且它的抗干扰能力也不是很强,所以误报的情况也较多。现在市面上的魔幻镜倒车雷达应该算是比较先进的倒车雷达了,它结合了前几代产品的优点,并采用了最新仿生超声雷达技术,并用高速电脑控制,可全天准确地进行探测2 m以内的障碍物,并以不同的声音提示和直观的距离显示来提醒驾驶员;魔幻镜倒车雷达把后视镜、倒车雷达、免提电话、温度显示和车内空气温度显示等多项功能整合在一起[1],并设计了语音功能,因为其外形就是一块倒车镜,所以可以不占用车内空间,可以直接安装在车内倒视镜的位置,而且它样式种类繁多,可以按照个人需求和车内装饰选配,当然它的价格也是比较贵的[1]。最新的一代倒车雷达是整合影音系统,除了具备前几代倒车雷达的功能外还兼有影音系统[1]。

随着科学技术水平的迅速发展,相关电子技术也是飞跃前进,当然,汽车电子产业也得到飞速发展,电子产业的飞速发展使得车载电子安全产品有很大的发展前景。倒车雷达当然是每辆车必备的电子安全产品,如今市面上的主流的汽车倒车雷达基本都是以单片机芯片为控制核心的智能测距报警系统。这些的倒车雷达能够连续测距并显示汽车与障碍物之间的距离,而且采用蜂鸣器的不同频率的鸣叫声进行报警提示和距离显示提示,从而能够尽量不占用驾驶员的视觉空间[1]。此外,汽车电子系统的网络化的发展还要求作为汽车行驶安全辅助系统的倒车雷达要具有通信功能,并能够把数据发送到汽车总线上去[2]。

就目前市面上的产品来讲,目前的汽车倒车雷达主要是具备数码管或者液晶屏的距离显示并且带有蜂鸣器的语音报警为主的汽车安全系统。这些系统主要采用的是以单片机为控制核心的智能超声波测距传感器和蜂鸣器报警系统,这种汽车安全辅助系统便宜耐用,而且达到了汽车电子系统网络化的发展需求。

1.3 课题研究内容及章节安排

本文所介绍的超声波测距报警系统在测距的时候采用的是两个超声波探头分别进行超声波发射和接收来进行距离的测量的。本设计的汽车防撞系统能测量出倒车方向的障碍物与汽车之间的距离, 并通过数码管显示单元模块显示两者之间的距离,然后通过蜂鸣器发出不同频率的声响, 从而起到提示和报警的作用。本系统利用一片89S51单片机对超声波信号循环不断地进行采集。系统包括超声波测距单元(超声波集成模块)、89S51单片机控制、蜂鸣器报警模块和数码管显示模块。这个设计的汽车倒车雷达要能够连续测距,数据经过单片机的处理后,用4位数码管显示所测量得到的距离,并利用不同频率使蜂鸣器发出不同的鸣叫声进行语音报警。

论文构成主要由以下部分组成:

第1章主要介绍了本课题的背景意义和相关技术在国内外的研究现状。

第2章介绍的是汽车防装系统的总体方案设计。首先介绍汽车防撞系统的设计要求,然后分别对测距传感器的选择和显示报警系统的方案设计做了介绍,最后提出本系统的总体的设计方案,为硬件系统的设计打下了基础。

第3章对硬件系统的设计进行了介绍。首先对超声波传感器的工作原理进行了分析,然后具体讨论了超声波测距模块中的超声波发射电路和超声波接收电路的硬件设计,最后介绍了显示模块电路和蜂鸣器报警电路的设计。

第4章主要是对系统的软件设计进行了介绍。在软件设计中采用不同模块不同编程进行设计的,本设计分别对系统的主程序模块、中断子程序模块、超声波测距模块、蜂鸣器报警模块和数码管的显示模块的各个程序进行了设计。

第5章是硬件的组装及其性能进行分析。首先对实物进行硬件排版组装和焊接,然后讨论了系统的性能产生的误差。

第6章是对本设计的总结和展望。最后一章对全文进行了总结,并指明了系统设计的不足之处,最后也对本系统的倒车雷达报警系统的发展前景进行了展望。

2 总体方案论证

本章从系统方案等一些方面来进行论证。本设计主要是进行距离的测量和报警,设计中涉及到的内容较多,主要是将单片机控制模块、超声波测距模块、蜂鸣器报警模块、4位数码管显示模块这几个模块结合起来。而本设计的核心是超声波测距模块,其他相关模块都是在测距的基础上拓展起来的,测距模块是利用超声波传感器,之后选择合适单片机芯片,以下就是从相关方面来论述的。

2.1 设计方案论证

2.1.1 测距传感器

(1)激光测距传感器

激光传感器利用激光的方向性强和传光性好的特点,它工作时先由激光传感器对准障碍物发射激光脉冲,经障碍物反射后向各个方向散射,部分散射光返回到接受传感器,能接受其微弱的光信号,从而记录并处理光脉冲发射到返回所经历的时间即可测定距离,即用往返时间的一半乘以光速就能得到距离。其优点是测量的距离远、速度快、测量精确度高、量程范围大,缺点是对人体存在安全问题,而且制作的难度大成本也比较高[3]。

(2)红外线测距传感器

红外线测距传感器利用的就是红外线信号在遇到障碍物其距离的不同则其反射的强度也不同,根据这个特点从而对障碍物的距离的远近进行测量的。其优点是成本低廉,使用安全,制作简单,缺点就是测量精度低,方向性也差,测量距离近[3]。

(3)超声波传感器

超声波是一种超出人类听觉极限的声波即其振动频率高于20 kHz的机械波。超声波传感器在工作的时候就是将电压和超声波之间的互相转换,当超声波传感器发射超声波时,发射超声波的探头将电压转化的超声波发射出去,当接收超声波时,超声波接收探头将超声波转化的电压回送到单片机控制芯片。超声波具有振动频率高、波长短、绕射现象小而且方向性好还能够为反射线定向传播等优点,而且超声波传感器的能量消耗缓慢有利于测距[4]。在中、长距离测量时,超声波传感器的精度和方向性都要大大优于红外线传感器,但价格也稍贵。从安全性,成本、方向性等方面综合考虑,超声波传感器更适合设计要求。

根据对以上三种传感器性能的比较,虽然能明显看出来激光传感器是比较理想的

选择,但是它的价格却比较高,而且安全度不够高。而且汽车在行驶的过程中超声波传感器测距时应具有较强的抗干扰能力和较短的响应时间,因此选用超声波传感器作为此设计方案的传感器探头。

2.2 系统方案

此方案选择51单片机作为控制核心,所测得的距离数值由4位共阳极数码管显示,与障碍物之间的不同距离利用蜂鸣器频率的不同报警声提示,超声波发射信号由51单片机的P0.1口送出到超声波发射电路,将超声波发送出去,超声波接收电路由CX20106A芯片和超声波接收探头组成的电路构成,报警系统由蜂鸣器电路构成。本设计中将收发超声波的探头分离这样不会使收发信号混叠,从而能避免干扰,可以很好的提高系统的可靠性。本设计的汽车防撞装置的系统框图如图2.1所示。

图2.1汽车防撞装置的系统框图

本设计由Keil编程软件对51单片机进行编程,51单片机在执行程序后由P0.1端口产生40kHz的脉冲信号通过74LS04电路进行放大并送到到超声波发射探头,产生超声波。在超声波发射电路启动的同时单片机启动中断定时器,利用其计数的功能记录超声波发射超声波到接收到超声波回波的时间。当接收回射的超声波时,接收电路的输出端产生负跳变输出到单片机产生中断申请,执行外部中断子程序计算距离。

结合各方面的因素考虑,依据设计的要求,查阅相关数据资料,选择了超声波测距传感器TR40-16Q(其中T表示超声波发射探头,R表示超声波接收探头),综合考虑设计的要求出于简便角度,选用了HC-SR04超声波集成模块。此超声波模块的最大探测距离为5 m,精度可以达到0.3 cm,盲区为2 cm,而且发射扩散角不大于15°,更有利于测距的准确性。而且,此模块的工作频率范围为39 kHz~41 kHz左右,完全能在40 kHz工作频率工作。

由于超声波的发射和接收是分开发送和接收的,所以发射探头和接收探头必须在同一条水平行直线上,这样才能准确地接收反射的回波。而由于测量的距离不同和发射扩散角所引起的误差以及超声波信号在空气中传播的过程中的超声波衰减问题,发射探头和接收探头距离不可以太远,而且还要避免发射探头对接收探头在接收信号时产生的干扰,所以二者又不能靠得太近。根据对相关资料查阅,将两探头之间的距离定在5 cm~8 cm最为合适。本设计所用的HC-SR04模块的超声波探头之间的距离大约在6 cm左右。

3 硬件电路设计

本设计的汽车防撞装置由51单片机、超声波发射探头、超声波接收探头、4位共阳极数码管、蜂鸣器组成。汽车防撞系统的测距是利用超声波测距的原理,在单片机内部程序的控制下,由超声波发射探头发射超声波,在超声波遇到障碍物时反射到超声波接收探头,由此回应到单片机,由单片机进行中断处理和数据的处理,计算出距离,由数码管显示距离,并由蜂鸣器报警提示。本设计的硬件电路分为五部分:单片机最小系统、超声波发射和接收电路、蜂鸣器报警电路和数码管显示电路。

3.1 单片机系统设计

3.1.1 单片机的选择

一般在系统的设计当中,能否完成设计任务最重要的就在于系统的核心器件是否选择合适,而单片机更是是系统控制的核心,所以对单片机的选择更是异常重要。如果选择了一个合适的单片机不仅可以最大地简化系统的操作,而且其功能可能是最好的,可靠性也比较高,对整个系统来说更方便。目前,市面上的单片机的种类繁多,并且他们在功能方面也是各自有各自的特点。在一般的情况下来讲,在选择单片机时要需要考虑的几个方面有[5]:

(1)单片机最基本性能参数指标。例如:执行一条指令的速度、程序存储器的容量,I/O口的引脚数量等。

(2)单片机的某些增强的功能。

(3)单片机的存储介质。例如:对于程序存储器来说,最好选用的是Flash的存储器。

(4)单片机的封装形式。封装的形式多种多样,例如:双列直插封装、PLCC封装及表面贴附等。

(5)单片机对工作的温度范围的要求。例如:在进行设计户外的产品时,就必须要选用工业级的芯片,以达到温度范围的要求。

(6)单片机的功耗。例如,如果信号线取电只能提供几mA的电流,所以为了能满足低功耗的要求这个时候选用STC的单片机是最合适的。

(7)单片机在市面上的销售渠道是否畅通、其价格是否便宜。

(8)单片机技术的支持网站如何,卖家提供的芯片资料是否足够完善,是否包含了用户手册,设计方案举例,相关范例程序等。

(9)单片机的保密性是否很好,单片机的抗干扰的性能如何等。

51系列单片机它在指令系统、硬件结构和片内资源等方面与标准的52系列的单片机可以完全的兼容。51系列的单片机执行速率快(最高时钟频率为90 MHz),功耗低,在系统、在应用可编程,不占用用户的资源[5]。根据本系统设计的实际要求,选择AT89S51单片机做为本设计的单片机使用,它是由ATMEL公司生产的高性能、低功耗的CMOS 8位单片机。89S51单片机具有以下几个性能特点:4 k字节的闪存片内程序存储器,128字节的数据存储器,32个外部输入和输出口,2个全双工串行通信口,看门狗电路,5个中断源,2个16位可编程定时计数器,片内震荡和时钟电路且全静态工作并由低功耗的闲置和掉电模式[5]。

单片机的引脚功能图如图3.1所示。

图3.1 51单片机的引脚功能图

3.1.2 单片机引脚功能

(1)电源引脚

Vcc(40脚):正电源的引脚,工作电压是5 V。

GND(20脚):接地端。

(2)时钟电路的引脚XTAL1和XTAL2

为了产生时钟信号,在89S51单片机的芯片内部已经设置了一个反相放大器,其中XTAL1端口就是片内反相放大器的输入端,XTAL2端则是片内振荡器反相放大器的输出端[5]。单片机使用的工作方式是自激振荡的方式,XTAL1和XTAL2外接的是12 MHz的石英晶振,使内部振荡器按照石英晶振的频率频率进行振荡,从而就可以产生时钟信号。时钟信号电路如图 3.2所示。

图3.2时钟信号电路

(3)复位RST(9脚)

当振荡器运行时,只要有有两个机器周期即24个振荡周期以上的高电平在这个引脚出现时,那么就将会使单片机复位,如果将这个引脚保持高电平,那么51单片机芯片就会循环不断地进行复位[5]。复位后的P0口至P3口均置于高电平,这时程序计数器和特殊功能寄存器将全部清零[5]。本课题设计的单片机复位电路如图3.3所示。

图3.3 单片机复位电路图

(4)输入输出口(I/O口)引脚

P0口是一个三态的双向口,既可以作为数据和地址的分时复用口,又可以作为通用输入输出口[5]。P0口在有外部扩展存储器时将会被作为地址/数据总线口,此时P0口就是一个真正的双向口;而在没有外部扩展存储器时,P0口也可以作为通用的I/O 接口使用,但此时只是一个准双向口;另外,P0口的输出级具有驱动8个LSTTL负载的能力即输出电流不小于800 uA[5]。

P1口是一个带内部上拉电阻的8位双向I/O口,而P1口只有通用I/O接口一种功能,而且P1口能驱动4个LSTTL负载;在使用时通常不需要外接上拉电阻就能够

直接驱动发光二极管;在端口置1时,其内部上拉电阻将端口拉到高电平,作输入端口用[5]。

对于输出功能,在单片机工作的时候,可以通过用程序指令控制单片机引脚输出高电平或低电平[5]。例如:指令CLR是清零的意思,CLR P1.0的意思就是让单片机的P1.0端口输出低电平;而指令SETB是置1的意思,SETB P1.0的意思就是让单片机P1.0端口输出高电平[5]。

P2口是一个带内部上拉电阻的8位双向I/O口,而且P2口具有驱动4个LSTTL 负载的能力[5]。P2端口置1时,内部上拉电阻将端口的电位拉到高电平,作为输入口使用;在对内部的Flash程序存储器编程时,P2口接收高8位地址和控制信息,而在访问外部程序和16位外部数据存储器时,P2口就送出高8位地址[5]。在访问8位地址的外部数据存储器时,P2引脚上的内容在此期间不会改变[5]。

P3口也是一个带内部上拉电阻的8位双向I/O口,P3口能驱动4个LSTTL负载,这8个引脚还用于专门的第二功能[5]。P3口作为通用I/O口接口时,第二功能输出线为高电平。P3口置1时,内部上拉电阻将端口电位拉到高电平,作输入口使用;在对内部Flash程序存储器编程时,此端接控制信息[5]。P3口的第二功能,如表3.1所示[5]。

表3.1 P3口第二功能表

(5)其它控制或复用引脚

(a)ALE/PROG(30脚):地址锁存有效信号输出端。在访问片外存储器时,ALE(地址锁存允许)以每机器周期两次进行信号输出,其下降沿用于控制锁存P0

口输出的低8位地址;在不访问片外存储器的时候,ALE端仍以不变的频率输出脉冲信号(此频率是振荡器频率的1/6),而在访问片外数据存储器时,ALE脉冲会跳空一个,此时是不可以做为时钟输出[5]。对片内含有EPROM的机型在编程时,这个引脚用于输入编程脉冲/PROG的输入端[5]。

(b)/PSEN(29脚):片外程序存储器读选通信号输出端,低电平时有效。当89S51从外部程序存储器取指令或常数时,每个机器周期内输出2个脉冲即两次有效,以通过数据总线P0口读回指令或常数。但在访问片外数据存储器时,/PSEN将不会有脉冲输出[5]。

(c)/EA/Vpp(31脚):/EA为片外程序存储器访选用端。当该引脚访问片外程序存储器时,应该输入的是低电平,要使89S51只访问片外程序存储器,这时该引脚必须保持低电平;而在对Flash存储器编程时,用于施加Vpp编程电压[5]。

3.1.3单片机最小系统

单片机最小系统是其他拓展系统的最基本的基础,单片机最小系统是指一个真正可用的单片机最小配置系统即单片机能工作的系统。对于80S51单片机,由于片内已经自带有了程序存储器,所以只要单片机外接时钟电路和复位电路就可以组成了单片机的最小系统了。单片机的最小系统如图3.4所示。

图3.4单片机最小系统原理图

3.2 超声波发射和接收电路设计

超声波是一种振动频率超过20 kHz的机械波,它可以沿直线方向传播,而且传播的方向性好,传播的距离也较远,在介质中传播时遇到障碍物在入射到它的反射面

上就会产生反射波[6]。由于超声波的以上几个特点,所以超声波被广泛地应用于物体距离的测量、厚度等方面[6]。而且,超声波的测量是一种比较理想的的非接触式的测距方法[6]。

当进行距离的测量时,由安装在同一水平线上的超声波发射器和接收器完成超声波的发射与接收,并且同时启动定时器进行计数[7]。首先由超声波发射探头向倒车的方向发射超声波并同时启动定时器计时,超声波在空气中传播的途中一旦遇到障碍物后就会被反射回来,当接收探头收到反射波后就会给负脉冲到单片机使其立刻停止计时[6.7]。这样,定时器就能够准确的记录下了超声波发射点至障碍物之间往返传播所用的时间t(s)[7]。由于在常温下超声波在空气中的传播速度大约为340 m/s[7],所以障碍物到发射探头之间的距离为:

S=340×t/2=170×t

因为单片机内部定时器的计时实际上就是对机器周期T的计数,而本设计中时钟频率fosc取12 MHz,设计数值N,则:

T=12/f osc=1μs

t=N×T=N×0.000001(s)

S=170×N×T=170×N/1000000(m)

在程序中按式S=170×N×T=170×N/1000000计算距离。

3.2.1 超声波发射电路设计

超声波发射电路是由超声波探头和超声波放大器组成。超声波探头将电信号转换为机械波发射出去,而单片机所产生的40 kHz的方波脉冲需要进行放大才能将超声波探头驱动将超声波发射出去,所以发射驱动实际上就是一个信号的放大电路,本设计选用74LS04芯片进行信号放大,超声波发射电路如图3.5所示。

图3.5超声波发射电路

工作时,由单片机产生40 kHz的脉冲从P0.1口向超声波的发射电路部分发出信号,再经74LS04放大电路放大后,驱动超声波探头将超声波发射出去。

3.2.2 超声波接收电路设计

由于超声波在空气中的传播过程中是有衰减的,如果距离较远,那么超声波接收电路所接收到的超声波信号就会比较微弱,因此需要对接收到的信号进行放大而且放大的倍数也要比较大。超声波接收电路主要是由集成电路CX20106A芯片电路构成的,CX20106A芯片电路可以对超声波信号进行放大、限幅、带通滤波、峰值检波、整形、比较等功能,比较完之后超声波接收电路会输出一个低电平到单片机去请求中断,当即单片机停止计时,并开始去进行数据的处理。

CX20106A芯片的前置放大器具有自动增益控制的功能,当测量的距离比较近时,放大器不会过载;而当测量距离比较远时,超声波信号微弱,前置放大器就有较大的放大增益效果。CX20106A芯片的5脚在外接电阻对它的带通滤波器的频率进行调节,而且不用再外接其他的电感,能够很好地避免外加磁场对芯片电路的干扰,而且它的可靠性也是比较高的。CX20106A芯片电路本身就具有很高的抗干扰的能力,而且灵敏度也比较高,所以,能满足本设计的要求。超声波接收电路如图3.6所示。

图3.6超声波接收电路

3.2.3 HR-SR04超声波集成模块

HR-SR04超声波集成模块是将超声波发射探头,超声波接收探头,CX20106A芯片电路,74LS04芯片放大电路集成到的一起的一个超声波集成模块。HR-SR04超声波集成模块正面外观如图3.7所示,HR-SR04超声波集成模块的背面外观如图3.8所示。

图3.7 HR-SR04超声波集成模块正面外观图

图3.8 HR-SR04超声波集成模块背面外观图

HR-SR04型超声波集成模块的工作电压为5 V,而且此模块的静态工作电流是小于2 mA的,工作时候可以比较稳定。而且,它的感应的角度不大于15°,可以减少了很大部分可能存在的角度干扰问题。此模块的测距范围为2 c m~5 m,能基本满足

测距要求,而且其精度可以达到0.3 cm,盲区仅仅为2 cm,完全可以能够满足本设计的测距要求,而且测距也比较稳定。HR-SR04超声波集成模块采用的是I/O触发测距,给至少10 us的高电平信号。另外,此模块可以自动发送8个40 kHz的方波脉冲,并能够自动检测是否有信号返回,如果检测到有信号返回则通过I/O口输出高电平,高电平的持续时间就是超声波从发射到返回所用的时间,则,所测量的距离=(高电平时间×声速)/2。

一个控制口发出一个10 us以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,就能够算出距离。这样不断的循环周期测,就可以在不停地移动的过程中测量距离值了。但是,为防止发射信号对回收信号的影响,本超声波集成模块的测量周期最好定在60 ms以上,所以本设计将测量周期定在80 ms。

3.3 显示报警模块设计

3.3.1 数码管显示模块设计

发光二极管的缩写是LED,在每个数码管里面都有8只发光二极管,它们分别记作a、b、c、d、e、f、g、dp,其中dp是小数点,每一只发光二极管都有一根电极引到外部的引脚上,而另外一只二极管的引脚就连接在一起同样也引到外部引脚上,此引脚就记作公共端COM。

市面上常用的LED数码管有两种即共阳极数码管与共阴极数码管。共阳极是数码管里面的发光二极的阳极接在一起作为公共引脚即公共阳极,在使用时此公共引脚接到电源正极。相反,共阴极就是数码管里面的发光二极管的阴极接在一起作为公共引脚即公共阴极,在使用时此引脚接到电源负极。

单片机对数码管的显示可以分为静态显示和动态显示,静态显示能够稳定地显示数值,但是搭建电路时比较烦索,而动态显示是数码管轮流显示再利用人眼的“视觉暂留”特性,这样看出来的就是在显示不同数值[8]。数码管的动态显示比较实用,电路构建简单,所以本设计采用动态扫描的方法显示测量距离,只要轮流显示的速度足够快的时候就能够实现测量数值的显示。显示模块选用4位共阳极数码管进行动态扫描,此扫描方式能完全达到显示要求。显示模块连接电路图如图3.9所示。

图3.9 显示模块连接电路图

3.3.2 报警模块设计

报警模块通过单片机给定不同频率利用蜂鸣器发出不同声音。报警模块电路图如图3.10所示。

图3.10报警模块电路图

3.4 系统整体电路

根据本章前面对设计的各个相关模块的分别讲述讲述,再结合单片机的引脚功能,从而得到系统整体电路图,如图3.11所示。

图3.11系统整体电路图

在图3.11中,4位共阳极数码管的八个显示比划分别外接到单片机的P2.0到P2.7端口,用于显示所测量距离,数码管的共阳极端分别接在单片机的P1.2、P1.4、P1.6、P1.7这四个端口,利用单片机的动态扫描的方式将距离显示出来。单片机的P1.0接

到蜂鸣器报警电路,用于蜂鸣器测距报警。

4 系统软件设计

本设计采用的是模块化的思路来进行设计和编写程序,程序主要由系统主程序和中断程序构成。主程序完成单片机的初始化,超声波的发射和接收、计算超声波发射点与障碍物之间的距离、数码管显示和蜂鸣器报警等。系统程序设计的主要的功能是发射超声波、接受超声波、计算测量距离、数据计算、蜂鸣器报警和数码管显示。4.1 主程序设计

主程序对整个单片机系统进行初始化后,先将超声波的回波接收标志位置位并且使单片机P1.0端口输出一个低电平用来启动超声波发射电路,同时将定时器T0启动,然后调用距离计算的子程序,再根据定时器T0记录的时间计算出所需要测量的距离,然后再调用显示子程序,再将测出的距离以十进制的形式送到数码管显示,同时调用声音处理程序来控制蜂鸣器进行报警。最后主程序通过对回波信号的接收,完成后续的工作,假如标志位清零则说明接收到了回波信号,那么主程序就返回到初始端重新将回波接收标志位置位并且在单片机的P0.1端口上发送低电平到超声波发射电路,就这样,连续不断地运行,循环不断地工作用来实现测距。

整个系统的设计的关键是对距离进行测量的,然后通过单片机来处理测量数据是比较容易实现的,能精确的实现测距。在测距中,各种信号包括温度对声速的影响都将干扰到测距的准确性,其中超声波的余波信号对整个设计中测距的精确度的干扰的影响比较大[7]。超声波接收回路中的超声波信号一共有两种波信号:第一种波信号为余波信号就是当发射探头发射出信号之后,超声波接收探头马上就接收到的超声波信号,实际就是超声波的发射信号[7];另一种波信号就是有效信号,即经过障碍物表面反射回来的超声波回波信号[7],也是所需要测量的距离数值。

在进行超声波测距时,实际上测距就是记录从超声波发射电路发射超声波信号开始到接收到信号的声波的往返时间差,然后通过数据计算出距离,对于回波信号需要进行检测的有效信号是反射物体反射的回波信号,所以要尽量避免在检测时候检测到余波信号。余波就是在发射超声波时超声波信号直接到达接受探头的波信号,同时余波信号也是超声波测量时存在测量盲区的最主要的原因[7]。

超声波接收电路在接收到超声波回波后,通过CX20106A电路进行检波整形比较,并向单片机发出有效信号,单片机通过外部中断的改变记录回波信号的到达时间,中断发生之后就是表示已经接收到了回波信号,这个时候停止计时,并且读取计数器

中的数值,这个数值就是需要进行测量的时间差的数据。

程序中对测距距离的计算方法是按S=17×N/1000=0.017×N(cm)进行计算的,其中,N为计数器的值,声速的值取为340 m/s。

综合以上的分析可得到系统主程序流程图,系统主程序的流程图如图4.1所示。

图4.1系统主程序流程图

4.2 中断处理程序

负责计算车尾与障碍物之间的距离是/INT0的中断程序。根据前面的对超声接收电路的分析,在超声波集成模块接收到超声波回波信号后,超声波接收电路就会产生一个低电平送至单片机的P0.0引脚,使系统中断,则系统转入中断处理程序。进入中

断处理后,定时器T0和外部中断0就立即被关闭,同时读取时间值,并给回波接收标志位清零即成功接收到回波信号。中断处理程序的程序流程图如图4.2所示。

图4.2 中断处理程序流程图

在中断处理程序过程中,对距离数据的计算是比较关键的。首先是从定时器0得到超声波传播中往返所用的时间,再运用公式计算得出障碍物与车尾之间的距离,然后再将测得的距离值传到其他功能模块进行其他功能的处理。

C程序如下:

void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围

{

flag=1;//中断溢出标志

}

void zd3()interrupt 3//T1中断用来扫描数码管和计800 ms启动模块

{

基于单片机的超声波测距系统设计实验报告 - 重

指导教师评定成绩: 审定成绩: 自动化学院 计算机控制技术课程设计报告设计题目:基于单片机的超声波测距系统设计 单位(二级学院): 学生姓名: 专业: 班级: 学号: 指导教师: 负责项目: 设计时间:二〇一四年五月 自动化学院制

目录 一、设计题目 (1) 基于51单片机的超声波测距系统设计 (1) 设计要求 (1) 摘要 (2) 二、设计报告正文 (3) 2.1 超声波测距原理 (3) 2.2系统总体方案设计 (4) 2.3主要元件选型及其结构 (5) 2.4硬件实现及单元电路设计 (9) 2.5系统的软件设计 (13) 三、设计总结 (17) 四、参考文献 (17) 五、附录 (18) 附录一:总体电路图 (18) 附录二:系统源代码 (18)

一、设计题目 基于51单片机的超声波测距系统设计 设计要求 1、以51系列单片机为核心,控制超声波测距系统; 2、测量范围为:2cm~4m,测量精度:1cm; 3、通过键盘电路设置报警距离,测出的距离通过显示电路显示出来; 4、当所测距离小于报警距离时,声光报警装置报警加以提示; 5、设计出相应的电子电路和控制软件流程及源代码,并制作实物。

摘要 超声波具有传播距离远、能量耗散少、指向性强等特点,在实际应用中常利用这些特点进行距离测量。超声波测距具有非接触式、测量快速、计算简单、应用性强的特点,在汽车倒车雷达系统、液位测量等方面应用广泛。本次课设利用超声波传播中距离与时间的关系为基本原理,以STC89C52单片机为核心进行控制及数据处理,通过外围电源、显示、键盘、声光报警等电路实现系统供电、测距显示、报警值设置及报警提示的功能。软件部分采用了模块化的设计,由系统主程序及各功能部分的子程序组成。超声波回波信号输入单片机,经单片机综合分析处理后实现其预定功能。 关键词:STC89C52单片机; HC-SR04;超声波测距

51单片机超声波测距程序

//晶振:11.0592 //TRIG:P1.2 ECH0:P1.1 //波特率:9600 #include #include #include #define uchar unsigned char #define uint unsigned int sbit RX=P0^2; sbit TX=P0^3; unsigned int time=0; unsigned int timer=0; float S=0; bit flag =0; void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.87)/100; //算出来是CM if(flag==1) //超出测量 { flag=0; printf("-----\n"); } printf("S=%f\n",S); } void delayms(unsigned int ms) { unsigned char i=100,j; for(;ms;ms--) { while(--i)

{ j=10; while(--j); } } } void zd0() interrupt 1 //T0中断用来计数器溢出,超出测距范围{ flag=1; //中断溢出标志 } void StartModule() //T1中断用来扫描数码管和计800ms启动模块{ TX=1; //800MS启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; } void main(void) { TMOD=0x21; //设T0为方式1,GATE=1; SCON=0x50; TH1=0xFD; TL1=0xFD; TH0=0; TL0=0;

超声波传感器测距原理

芀一、超声波测距原理 肅超声波测距原理是通过超声波发射器向某一方向发射超声波,在发射时刻的 同时开始计时,超声波在空气中传播时碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为v ,而根据计时器记录的测出发射和接收回波的时间差△t ,就可以计算出发射点距障碍物的距离S , 即: 膂S = v·△t /2 ① 芀这就是所谓的时间差测距法。 蝿由于超声波也是一种声波, 其声速C与温度有关,表1列出了几种不同温度下的声速。在使用时,如果温度变化不大, 则可认为声速是基本不变的。常温下超声波的传播速度是334 米/秒,但其传播速度V 易受空气中温度、湿度、压强等因素的影响,其中受温度的影响较大,如温度每升高1 ℃, 声速增加约0. 6 米/ 秒。如果测距精度要求很高, 则应通过温度补偿的方法加以校正(本系统正是采用了温度补偿的方法)。已知现场环境温度T 时, 超声波传播速度V 的计算公式为: 螅V = 331.45 + 0.607T ② 芄 声 速 确 定

后, 只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的机理。 薂二、系统硬件电路设计 腿图2 超声波测距仪系统框图 蒆基于单片机的超声波测距仪框图如图 2 所示。该系统由单片机定时器产生 40KHZ 的频率信号、超声波传感器、接收处理电路和显示电路等构成。单片机 是整个系统的核心部件,它协调和控制各部分电路的工作。工作过程:开机,单 片机复位,然后控制程序使单片机输出载波为40kHz 的10 个脉冲信号加到超声 波传感器上,使超声波发射器发射超声波。当第一个超声波脉冲群发射结束后, 单片机片内计数器开始计数,在检测到第一个回波脉冲的瞬间,计数器停止计数, 这样就得到了从发射到接收的时间差△t;根据公式①、②计算出被测距离,由显示装置显示出来。下面分别介绍各部分电路: 莅1 、超声波发射电路 螀超声波发射电路如图3所示,89C51 通过外部引脚P1.0 输出脉冲宽度为250 μ s , 40kHz 的10 个脉冲串通过超声波驱动电路以推挽方式加到超声波传感器而发 射出超声波。由于超声波的传播距离与它的振幅成正比,为了使测距范围足够远, 可对振荡信号进行功率放大后再加在超声波传感器上。 薈图3中T为超声波传感器,是超声波测距系统中的重要器件。利用逆压电效应 将加在其上的电信号转换为超声机械波向外辐射; 利用压电效应可以将作用在它 上面的机械振动转换为相应的电信号, 从而起到能量转换的作用。市售的超声 波传感器有专用型和兼用型,专用型就是发送器用作发送超声波,接收器用作接

超声波测距仪硬件电路的设计

超声波测距仪电路设计实验报告 轮机系楼宇071 周钰泉2007212117 实验目的:了解超声波测距仪的原理,掌握焊接方法,掌握电路串接方法,熟悉电路元件。 实验设备及器材:电烙铁,锡线,电路元件 实验步骤:1,学习keil软件编写程序2、焊接电路板3、运行调试 超声波测距程序: #include unsigned char code dispbitcode[]={0x31,0x32,0x34,0x38,0x30,0x30, 0x30,0x30}; unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x77,0x7c,0x 39}; unsigned char dispbuf[8]={10,10,10,10,10,10,0,0}; unsigned char dispcount; unsigned char getdata; unsigned int temp; unsigned int temp1;

unsigned char i; sbit ST=P3^0; sbit OE=P3^1; sbit EOC=P3^4; sbit CLK=P3^5; sbit M1=P3^6; sbit M2=P3^7; sbit SPK=P2^6; sbit LA=P3^3; sbit LB=P3^2; sbit LC=P2^7; sbit K1=P2^4; sbit K2=P2^5; bit wd; bit yw; bit shuid; bit shuig; unsigned int cnta; unsigned int cntb; bit alarmflag; void delay10ms(void) { unsigned char i,j; for(i=20;i>0;i--) for(j=248;j>0;j--); } void main(void) { M1=0; M2=0; yw=1; wd=0; SPK=0; ST=0; OE=0; TMOD=0x12; TH0=0x216; TL0=0x216; TH1=(65536-500)/256; TL1=(65536-500)%256; TR1=1; TR0=1; ET0=1; ET1=1; EA=1; ST=1; ST=0; while(1) { if(K1==0) { delay10ms(); if(K1==0) { yw=1; wd=0; } } else if(K2==0) { delay10ms(); if(K2==0) { wd=1; yw=0; } } else if(LC==1) { delay10ms(); if(LC==1) { M1=0; M2=1; temp1=13; shuid=0; shuig=1; LB=0; } } else if((LC==0) && (LB==1)) { delay10ms(); if((LC==0) && (LB==1)) { M1=0; M2=0; temp1=12; shuig=0; shuid=0; LB=0; }

超声波测距程序(详细C语言数码管显示)

超声波测距程序(详细C语言数码管显示) #include //头文件 #include// _nop_() 函数延时1US用 #include #include #define uchar unsigned char #define uint unsigned int #define nop _nop_() sbit csb=P1^0;//超声波发送端口为P1.0 sbit bai=P2^2;//数码管百位 sbit shi=P2^1;//数码管十位 sbit ge=P2^0;//数码管个位 uchar flag;//超声波接收标志 float juli1;//距离变量,用来数码管显示用 int juli; uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管0到9的代码 int xianshi[3]; void delayshow(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void ledshow(void) { xianshi[0]=juli/100; xianshi[1]=((juli%100)/10); xianshi[2]=juli%10; bai=0; P0=table[xianshi[0]]; delayshow(2); bai=1; delayshow(2); shi=0; P0=table[xianshi[1]]; delayshow(2); shi=1;

超声波传感器的使用注意事项

探测范围和大小 要探测的物体大小直接影响超声波传感器的检测范围。传感器必须探测到一定声级的声音才可以进行输出。大部件能将大部分声音反射给超声波传感器,这样传感器即可在其最远传感距离检测到此部件。小部件仅能反射较少的一部分声音,从而导致传感范围大大缩小。 探测物体的特点 使用超声波传感器探测的理想物体应体积大、平整且密度高,并与变换器正面垂直。最难探测的物体是体积小且由吸音材料制成的物体,或者与变换器呈一定角度的物体。 如果液面静止且与传感器表面垂直,探测液体就很容易。如果液面波动大,可延长传感器的响应时间,从而取波动变化的平均值以获得更一致的读数。但是,超声波传感器还不能精确探测表面为泡沫状的液体,因为泡沫会使声音的传播方向发生偏离。这时可以使用超声波传感器的反向超声模式,探测形状不规则的物体。在反向超声模式下,超声波传感器会探测一个平整背景,如墙壁。任何穿过传感器和墙壁之间的物体都会阻断声波。传感器即可通过探测该干扰来识别物体的存在。 温度导致的衰减 传感器还设计了温度补偿功能,以调节环境温度的缓慢改变。但是,它不能调节温度梯度或环境温度的快速变化。 周围是否有振动 无论是传感器本身的振动还是附近机器的振动,都可能会影响测量距离时的精确度。可在安装传感器时用橡胶防振装置来减少这类问题。有时也可使用导轨来消除或降低部件振动。 环境导致的误测 附近的物体可能会反射声波。要准确探测目标物体,必须降低或消除附近声音反射表面的影响。为了避免误测附近物体,许多超声波传感器都装有LED指示灯,用于在安装时指示操作人员,以确保正确安装传感器并降低误测风险。 艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有 10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路

单片机应用_超声波测距器

单片机课程设计 一、需求分析: 超声波测距器,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。要求测量围在1m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人的研制上也得到了广泛的应用。 本文旨在设计一种能对中近距离障碍物进行实时测量的测距装置,它能对障碍物进行适时、适量的测量,起到智能操作,实时监控的作用。 关键词单片机AT82S51 超声波传感器测量距离 二、硬件设计方案 设计思路 超声波传感器及其测距原理 超声波是指频率高于20KHz的机械波。为了以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。

超声波测距的原理一般采用渡越时间法TOF(time of flight)。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离 测量距离的方法有很多种,短距离的可以用尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量。因为超声波在标准空气中的传播速度为340米/秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统的测量精度理论上可以达到毫米级。 由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到要求。 超声波发生器可以分为两类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。本课题属于近距离测量,可以采用常用的压电式超声波换能器来实现。 根据设计要求并综合各方面因素,可以采用AT89S51单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,超声波测距器的系统框图如下图所示: 超声波测距器系统设计框图 主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。采用AT89S51来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。

基于51单片机的超声波测距系统

基于51单片机的超声波测距系统 贾源 完成日期:2011年2月22日

目录 一、设计任务和性能指标 (3) 1.1设计任务 (3) 1.2性能指标 (3) 二、超声波测距原理概述 (4) 2.1超声波传感器 (5) 2.1.1超声波发生器 (5) 2.1.2压电式超声波发生器原理 (5) 2.1.3单片机超声波测距系统构成 (5) 三、设计方案 (6) 3.1AT89C2051单片机 (7) 3.2超声波测距系统构成 (8) 3.2.1超声波测距单片机系统 (9) 图3-1:超声波测距单片机系统 (9) 3.2.2超声波发射、接收电路 (9) 图3-1:超声波测距发送接收单元 (10) 3.2.3显示电路 (10) 四.系统软件设计 (11) 4.1主程序设计 (11) 4.2超声波测距子程序 (12) 4.3超声波测距程序流程图 (13) 4.4超声波测距程子序流程图 (14) 五.调试及性能分析 (14) 5.1调试步骤 (14) 5.2性能分析 (15) 六.心得体会 (15) 参考文献 (16) 附录一超声波测系统原理图 (18) 附录二超声波测系统原理图安装图 (19) 附录三超声波测系统原理图PCB图 (20) 附录四超声波测系统原理图C语言原程序 (21) 参考文献 (26)

一、设计任务和性能指标 1.1设计任务 利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个超声波测距仪器,用LED数码管把测距仪距测出的距离显示出来。 要求用Protel 画出系统的电路原理图,印刷电路板,绘出程序流程图,并给出程序清单。 1.2性能指标 距离显示:用三位LED数码管进行显示(单位是CM)。 测距范围:25CM到 250CM之间。误差:1%。

超声波测距仪的设计说明

题目:超声波测距仪的设计 超声波测距仪的设计 一、设计目的: 以51单片机为主控制器,利用超声波模块HC-SR04,设计出一套可在数码管上实时显示障碍物距离的超声波测距仪。 通过该设计的制作,更为深入的了解51的工作原理,特别是51的中断系统及定时器/计数器的应用;掌握数码管动态扫描显示的方法和超声波传感器测距的原理及方法,学会搭建51的最小系统及一些简单外围电路(LED显示电路)。从中提高电路的实际设计、焊接、检错、排错能力,并学会仿真及软件调试的基本方法。 二、设计要求: 设计一个超声波测距仪。要求: 1.能在数码管上实时显示障碍物的实际距离; 2.所测距离大于2cm小于300cm,精度2mm。 三、设计器材: STC89C52RC单片机 HC-SR04超声波模块 SM410561D3B四位的共阳数码管 9014三极管(4) 按键(1) 电容(30PF2,10UF1) 排阻(10K),万用板,电烙铁,万用表,5V直流稳压电源,镊子,钳子,

导线及焊锡若干,电阻(200欧5)。 四、设计原理及设计方案: (一)超声波测距原理 超声测距仪是根据超声波遇到障碍物反射回来的特性进行测量的。超声波发射器向某一方向发射超声波,在发射同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即中断停止计时。通过不断检测产生波发射后遇到障碍物所反射的回波,从而测出发射超声波和接收到回波的时间差T,然后求出距离L。基本的测距公式为:L=(△t/2)*C 式中 L——要测的距离 T——发射波和反射波之间的时间间隔 C——超声波在空气中的声速,常温下取为344m/s 声速确定后,只要测出超声波往返的时间,即可求得L。 根据本次设计所要求的测量距离的围及测量精度,我们选用的是HC-SR04超声波测距模块。(如下图所示)。此模块已将发射电路和接收电路集成好了,硬件上不必再自行设计繁复的发射及接收电路,软件上也无需再通过定时器产生40Khz的方波引起压电陶瓷共振从而产生超声波。在使用时,只要在控制端‘Trig’发一个大于15us宽度的高电平,就可以在接收端‘Echo’等待高电平输出。单片机一旦检测到有输出就打开定时器开始计时。 当此口变为低电平时就停止计时并读出定时器的值,此值就为此次测距的时间,再根据传播速度方可算出障碍物的距离。 (二)超声波测距模块HC-SR04简要介绍 HC-SR04超声波测距模块的主要技术参数使用方法如下所述: 1. 主要技术参数: ①使用电压:DC5V ②静态电流:小于2mA ③电平输出:高5V

超声波测距传感器(硬件件篇)

自制一个由你掌控的 —— 超声波测距传感器(硬件篇) 一、背景 四年多前,我曾尝试自己制作一个超声波测距传感器。 当时是想为 LEGO 的 RCX 配套,因为我是Semia 的技术支持,那时RCX 还没有配置任何测距传感器。由于可查阅的资料有限,且不详细,最后以失败告终 /(也许在网络搜索上我属于“菜鸟”)。 为了达到目的,只好选用了 Sharp 公司的 GP2D12。但自制超声波测距传感器的愿望一直没被遗忘。一是觉得超声波用于测距从原理上讲应该效果不错(GP2D12的测距范围太小,只有 10 — 80 cm);二是市售成品不够灵活,为了适应它还得做转换接口,费力耗财。 前段时间协助一个单位搞项目,涉及到超声波测距;有幸的是解剖了一款进口的超声波测距传感器 —— SensComp公司的6500,使我对相关原理和技术有了比较透彻的了解。 本想项目结束后立刻动手设计一个自己的传感器,后因忙于“圆梦小车”耽搁了。 现在圆梦小车已初具雏形,可以腾出一点时间,而且小车也需要一些传感器与之配套,便着手实现了这个夙愿。

基于嵌入之梦工作室的宗旨 —— 为学习单片机的大学生服务,将设计和制作的细节与大家分享,希望能有助于读者做出属于你自己的超声波传感器,也让和我有类似想法的人不至于再次失望于网络。 二、需求分析 ?能在测距范围上弥补 GP2D12 的不足,将距离延伸到 80cm以外; ?可以提供给大学生和爱好者 DIY,具有学习功能; ?方便自己随时修改程序,使学习的作用得以充分发挥; ?成品具有一定的使用价值,可方便的应用于小车等需要测距的装置上。 三、概要设计 总体设计参照 SensComp公司(https://www.doczj.com/doc/c55488892.html,)6500测距模块,其核心是两片专用的超声波测距IC:TL851和TL852。 TL852是一片专门设计用于超声波接收、放大、检测的芯片,集成了可变增益、选频放大器,可通过四根控制线变换11级增益,对于检测超声波信号十分有效。 TL851 与TL852 配套,它可实现超声波发射及控制TL852的增益变换,通过定时控制增益,使TL852的增益与回波时间相匹配,一方面提高了检测的灵敏度,同时减小了干扰。 如果不能随时间变换增益,为增加检测距离,就需要加大灵敏度;而开始时灵敏度就很高,无疑会收到一些不想要的信号。(6500测距模块的相关资料及芯片资料见附件) 解剖此模块时,对TL852的功能十分感兴趣,当初我制作时就是“栽”在这个环节;而TL851的功能基本属数字控制范畴,输出还需要配合单片机才能得到结果,接口也不是十分灵活,笔者认为完全可以用单片机替代。 所以,本次设计的主要改变就是用单片机替换6500模块的TL851。 单片机还是选用圆梦小车所用的STC12系列,一是考虑是51兼容,符合国内多数教材;二是下载程序方便。此次选用的是 STC12LE4052(4K FlashROM,256 RAM)。考虑体积因素,选择了SOP20封装。

超声波测距C语言源程序代码

超声波测距C语言源程 序代码 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

/*{HZ即单位s的倒数}本晶振为12MHZ,因此外部的时钟频率为12MHZ,所以内部的时钟频率为(12M H Z)/12=1M H 即1000000HZ,而机械频率为1/(1MHZ),即每完成一次计算(即定时器的值加一)用时, 即1us(微秒).*/ /*************************************************************************** ********/ #include<> #define UC unsigned char #define UI unsigned int void delay(UI); sbit BX = P3^0;void TimeConfiguration(); a = 0; b = 0; c = 0; P2 =~ 0x00; goto loop; } time = TL0 + TH0*256; juli = ( int )( (time*/2 ); BAI = ( (juli%1000)/100 ); SHI = ( (juli%100)/10 ); GE = ( juli%10 ); /******************************************两种模式的距离显示 ********************************************/ if(juli > MAX) { Hong = 0; Lv = 1; while( t1-- ) { a = 0; b = 1; c = 1; P2 =~ CharacterCode[BAI]; delay(400); a = 1; b = 0; c = 1; P2 =~ CharacterCode[SHI]; delay(400); a = 1; b = 1; c = 0; P2 =~ CharacterCode[GE]; delay(390);

超声波传感器及其测距原理

安全避障是移动机器人研究的一个基本问题。障碍物与机器人之间距离的获得是研究安全避障的前提,超声波传感器以其信息处理简单、价格低廉、硬件容易实现等优点,被广泛用作测距传感器。本超声波测距系统选用了SensComp公司生产的Polaroid 6500系列超声波距离模块和600系列传感器,微处理器采用了ATMEL公司的AT89C51。本文对此超声波测距系统进行了详细的分析与介绍。 1、超声波传感器及其测距原理 超声波是指频率高于20KHz的机械波[1]。为了以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应[1]的原理将电能和超声波相互转 化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。 超声波测距的原理一般采用渡越时间法TOF(time of flight)[2]。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的

声源与障碍物之间的距离,即 1、硬件电路设计 我们设计的超声波测距系统由Polaroid 600系列传感器、Polaroid 6500系列超声波距离模块和AT89C51单片机构成。 2.1 Polaroid 600系列传感器 此超声波传感器是集发送与接收一体的一种传感器。传感器里面有一个圆形的薄片,薄片的材料是塑料,在其正面涂了一层金属薄膜,在其背面有一个铝制的后板。薄片和后板构成了一个电容器,当给薄片加上频率为49.4kHz、电压为300VAC pk-pk的方波电压时,薄片以同样的频率震动,从而产生频率为49.4kHz的超声波。当接收回波时,Polaroid 6500内有一个调谐电路,使得只有频率接近49.4kHz的信号才能被接收,而其它频率的信号则被过滤。 Polaroid 600超声传感器发送的超声波具有角度为30度的波束角[3],如图1所示:

超声波测距C语言源程序代码

/*{HZ即单位s的倒数}本晶振为12MHZ,因此外部的时钟频率为12MHZ,所以内部的时钟频率为(12MHZ)/12=1MH 即1000000HZ,而机械频率为1/(1MHZ),即每完成一次计算(即定时器的值加一)用时0.000001s, 即1us(微秒).*/ /****************************************************************************** *****/ //具有模式选择. #include #define UC unsigned char #define UI unsigned int void delay(UI); //延时9.56us程序 sbit beep = P1^3; //用于声音报警 sbit Lv = P1^7; //用于光报警 sbit Hong = P1^6; sbit QD = P3^7;//K8 //P3^7口(K8)为确定键, sbit GX = P3^1;//K7 //P3^3口(K2)为修改键, sbit SX = P3^6;//K6 //P3^2(K3)为测量键. sbit BX = P3^0;//K5 //个(K7),十(K6),百(K5),三位修改键 sbit a = P1^2;//百位//数码管位选 sbit b = P1^1;//十位 sbit c = P1^0;//个位 sbit trig = P1^4; //方波发射端 sbit echo = P1^5; //超声波接收端 void IntConfiguration(); //用来"设置中断"的函数,P3^3口(K2)为修改键,P3^2(K3)为测量键. void TimeConfiguration(); //用来"设置定时器"的函数 sbit K1 = P3^4;//动态 sbit K4 = P3^5;//静态//用于进行模式切换(K1、K4键) void xiaxian(); //修改函数,用来修改下限 void shangxian(); //修改函数,用来修改上限 UI min[3]={0,5,0}; //报警极限,拆分为"百十个"三位 UI max[3]={3,0,0}; //MIN,MAX 用来存储最大和最小值 void MINxianshi(UI); //最小范围和最大范围的显示 void MAXxianshi(UI); UC code CharacterCode[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数码管数字字符(P2口) /********************************主函数*********************************************/ void main() { TimeConfiguration(); //设置定时器0 IntConfiguration(); //设置中断允许,K4键为修改键,K8键为确定键 while(1) {

用51单片机实现HC-SR04超声波测距程序

#include //包括一个52标准内核的头文件 #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long sbit Trig = P1^0; //产生脉冲引脚 sbit Echo = P3^2; //回波引脚 sbit test = P1^1; //测试用引脚 uchar code SEG7[10]={~0xC0,~0xF9,~0xA4,~0xB0,~0x99,~0x92,~0x82,~0xF8,~0x80,~0x90};//数码管0-9 uint distance[4]; //测距接收缓冲区 uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i; //自定义寄存器 bit succeed_flag; //测量成功标志 //********函数声明 void conversion(uint temp_data); void delay_20us(); void main(void) // 主程序 { uint distance_data,a,b; uchar CONT_1; i=0; flag=0; test =0; Trig=0; //首先拉低脉冲输入引脚 TMOD=0x11; //定时器0,定时器1,16位工作方式 TR0=1; //启动定时器0 IT0=0; //由高电平变低电平,触发外部中断 ET0=1; //打开定时器0中断 EX0=0; //关闭外部中断 EA=1; //打开总中断0 while(1) //程序循环 { EA=0; Trig=1; delay_20us(); Trig=0; //产生一个20us的脉冲,在Trig引脚 while(Echo==0); //等待Echo回波引脚变高电平 succeed_flag=0; //清测量成功标志 EX0=1; //打开外部中断 TH1=0; //定时器1清零 TL1=0; //定时器1清零 TF1=0; //

超声波测距电路图

超声波测距电路图 超声波测距电路原理和制作 由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人的研制上也得到了广泛的应用。为了使移动机器人能自动避障行走,就必须装备测距系统,以使其及时获取距障碍物的距离信息(距离和方向)。本文所介绍的三方向(前、左、右)超声波测距系统,就是为机器人了解其前方、左侧和右侧的环境而提供一个运动距离信息。 二、超声波测距原理 1、超声波发生器 为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。

2、压电式超声波发生器原理 压电式超声波发生器实际上是利用压电晶体的谐振 来工作的。超声波发生器内部结构如图1所示,它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。 3、超声波测距原理 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2 图1 超声波传感器结构 这就是所谓的时间差测距法。 < 三、超声波测距系统的电路设计 图2 超声波测距电路原理图

带温度补偿的超声波测距程序

/**程序:基于HC-SR04得超声波测距系统 *单片机型号:STC90C51612MHz *说明:开始连续进行7次超声波测距,每次测距间隔80ms, *完成后对7次结果排序并将最大得2个数值与最小得2个数值去除,对剩余得 *3个数值取平均值。完成后指示灯灭,输出结果到LCD1602上。测量超出范围则发出报警声、 *使用两个IO端口控制HC-SR04触发信号输入与回响信号输出, *以及一个T0定时器用于时间计数。 * 使用DS18B20测量环境温度,声速公式:V=334。1m/s+Temperature*0、61, *单片机晶振为12Mhz(11、953M),计数时为T=1us *计算公式:S=(334。1m/s+Temperature*0。61)*N*T/2,N为计数值=TH0*256+TL0*/ /*包含头文件*/ #include 〈reg51。h> #include 〈intrins。h> #define Delay4us(){_nop_();_nop_();_nop_();_nop_();} /*宏定义*/ #define uchar unsignedchar?//无符号8位 #define uint?unsigned int//无符号16位 #define ulongunsigned long ?//无符号32位 /*全局变量定义*/ sbit BEEP=P1^5;??//报警测量超出范围 sbit Trig=P3^4; //HC-SR04触发信号输入 sbitEcho=P3^2;?//HC—SR04回响信号输出 float xdataDistanceValue=0。0;?//测量得距离值 float xdata SPEEDSOUND; ??//声速 float xdataXTALTIME; ?//单片机计数周期 uchar xdata stringBuf[6];??//数值转字符串缓冲 //LCD1602提示信息 uchar codePrompts[][16]= { ?{"Measure Distance"}, //测量距离 {"-Out of Range -"}, //超出测量范围 ?{"MAX range400cm "}, //测距最大值400cm {”MIN range 2cm"},?//测距最小值2cm {”"},?//清屏 }; uchar xdata DistanceText[]="Range: ";//测量结果字符串 uchar xdata TemperatureText[]="Temperature:";//测量温度值 /*外部函数声明*/ extern voidLCD_Initialize(); //LCD初始化 extern void LCD_Display_String(uchar*, uchar); externvoid ReadTemperatureFromDS18B20(); extern int xdataCurTempInteger; void DelayMS(uint ms);?//毫秒延时函数 voidDelay20us(); //20微秒延时函数 voidHCSR04_Initialize();//HCSR04初始化 float MeasuringDistance();?//测量距离

超声波测距电路图

超声波测距电路图超声波测距电路原理和制作 由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人的研制上也得到了广泛的应用。为了使移动机器人能自动避障行走,就必须装备测距系统,以使其及时获取距障碍物的距离信息(距离和方向)。本文所介绍的三方向(前、左、右)超声波测距系统,就是为机器人了解其前方、左侧和右侧的环境而提供一个运动距离信息。 二、超声波测距原理 1、超声波发生器 为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。 2、压电式超声波发生器原理

压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构如图1所示,它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。 3、超声波测距原理 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2 图1 超声波传感器结构 这就是所谓的时间差测距法。< 三、超声波测距系统的电路设计 图2 超声波测距电路原理图 本系统的特点是利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时,单片机选用8751,经济易用,且片内有4K的ROM,便于编程。电路原理图如图2所示。其中只画出前方测距电路的接线图,左侧和右侧测距电路与前方测距电路相同,故省略之。

51单片机实现超声波测距报警系统

目录 1引言 (1) 1.1研究的目的和意义 (1) 1.21 国内外发展的状况以及存在的问题 (2) 1.22 现有的倒车雷达存在的问题 (2) 1.3本文研究的主要内容 (2) 2 超声波原理介绍 (2) 2.1 超声波的基本理论 (2) 2.11 超声波的传播速度 (3) 2.12 超声波的物理性质 (4) 2.13 超声波对声场产生的作用 (5) 2.2 超声波测距系统原理 (6) 2.3 规格参数 (8) 2.31 主要功能 (8) 2.32 基本参数 (8) 3系统硬件设计 (8) 3.1 单片机系统 (10) 3.2 超声波发射接收模块 (11) 3.3 报警电路设计 (12) 3. 4 复位电路 (12) 4系统软件程序 (14) 5计算超声波传播时间 (14) 6结论 (29) 参考文献: (29) 致谢 (30)

基于单片机倒车防撞报警系统设计 张杭 南京信息工程大学滨江学院,南京210044 摘要:对于汽车倒车防撞问题,提出了将超声波测距仪和单片机结合于一体的方案,并给出了一种基于AT89C51单片机的倒车防撞报警系统的设计,对系统中控制部分、发射部分、接收部分、显示部分和报警部分出现的问题进行处理。本文采用一种简单易行的测距原理建立了防撞报警系统,具体分析了倒车防撞系统的设计原理及各部分元件的设计方案,充分描述了超声波测距的原理及应用,并介绍了我国在超声波测距的发展现状,不过还有一些无法避免的测量误差,还需日益俱进的科学发展加以解决。 关键词:A T89C51;超声测距;倒车防撞 1引言 1.1研究的目的和意义 随着社会经济的发展交通运输业飞速发展,汽车的数量在大副攀升。交通拥挤状况也日趋严重,撞车事件屡屡发生,造成了不可避免的人身伤亡和经济损失。针对这种情况,设计一种响应快,可靠性高且较为经济实用的汽车防撞报警系统势在必行。超声波测距法是最常见的一种距离测距方法,应用于汽车停车的前后左右防撞的近距离和低速状况,并且在汽车倒车防撞报警系统中,超声波作为一种特殊的声波,同样具有声波传输的基本物理特性——折射,反射,干涉,衍射,散射。超声波测距即是利用其反射特性,当车辆后退时,超声波距离传感器利用超声波检测车辆后方的障碍物位置,并利用指示灯及蜂鸣器把车辆到障碍物的距离及位置通知驾驶人员,起到安全的作用。 1.2 国内外现状

相关主题
文本预览
相关文档 最新文档