1、 本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 1 页 共 42 页1 绪论当前社会经济的不断发展和工业科学技术的不断提高,汽车已逐渐进入不少百姓家。汽车使用数量的不断增加,从而由此导致的倒车交通安全问题也非常严重,道路交通压力增加,交通安全问题也是面临严峻挑战。在面临如此严峻的交通安全问题,许多涉及安全问题的汽车辅助系统也纷纷现世。而本设计就是利用单片机知识、传感器知识等,进行的汽车防撞装置的设计,在汽车倒车时,这种装置可以在驾驶员对车尾与障碍物体的距离远近无法目测和判断时进行报警。1.1 课题背景及意义我国社会经济的不断发展,人们对汽车这种交通工具的依赖性也越来越大,导致了车辆的
2、日益增加在给城市交通不断施加压力的同时,也引发了非常多行车的安全问题。一些由驾驶员反应不够迅速而导致的汽碰擦,还有很多时候是由于驾驶员对离障碍物的距离判断不准确而造成的,如果驾驶员能提前知道障碍物的存在并且知道障碍物的距离,那么驾驶员就能及时地采取措施,从而能避免事故的发生。因此,许多安全系统也应运而生,诸如为了避免交通事故发生的主动安全系统和在发生事故时的防护安全的被动安全系统,而主动安全系统对汽车交通事故的发生能起到避免的作用,所以,主动安全系统的研究更为重要。随着汽车数量的增加,停车场的数量也急剧增加,停车车辆密集,停车人多,所以汽车碰撞亦逐渐增多。而本设计的汽车防撞装置就是主动安全系统
3、,通过对汽车与障碍物之间距离的提示报警避免汽车与障碍物之间的擦碰。本设计要求设计的汽车防撞装置能减少驾驶员的驾驶压力和判断错误,使驾驶员泊车倒车更加安全方便,本设计将对提高交通安全起到重要作用。本设计基于单片机实现汽车防撞,将超声波测距和传感器联系在一起,利用单片机的实时控制和数据处理功能测量并显示汽车与障碍物之间的距离,并在不同距离利用蜂鸣器不同频率发出不同声音及时报警。这样驾驶员就能通过测距的显示甚至不同的声音来直接判断汽车玉障碍物之间的距离。本设计的设计简易,虽然精度不高,还不能测量过远的距离,但规模小,外围电路简单,调试也方便,成本也不高,器件更换容易,灵活性高,而且能完全满足驾驶员泊
4、车时的需要,可以完全解除驾驶员在倒车过程中的顾虑和困扰,提高泊车的安全。汽车防撞装置这种汽车安全辅助装置能大大减少汽车驾驶员在倒车的时候顾虑本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 2 页 共 42 页和对距离判断的失误,从而能够避免倒车的安全问题的发生,故此装置对于提高交通安全将起到重要的作用。所以,本课题所要求设计的基于单片机的汽车防撞装置将具有极大的现实意义和市场。1.2 国内外研究现状本汽车防撞装置包含有单片机控制电路、超声波测距传感器、蜂鸣器报警电路及数码管显示部件等,装置将各部件有机地结合起来,实现超声波测距及蜂鸣器报警提示的功能。倒车雷达系统的开始是以蜂鸣器报警为标
5、志的。汽车离障碍物距离越近,蜂鸣器报警声越急,蜂鸣器报警虽然使驾驶员知道有障碍物的存在,但却不能确定汽车车尾离障碍物有多远,所以,蜂鸣器报警对驾驶员帮助不是很大;之后一个质的飞跃就是液晶屏显示的出现,特别是液晶显示开始出现动态显示系统,驾驶员就是只要发动车辆,而且不用挂倒挡,液晶显示器上就会出现汽车图案以及汽车与周围的障碍物的距离,液晶显示是动态显示,液晶显示器的外表美观,显示的色彩也很清晰,而且可以直接粘贴在仪表盘上,安装也很方便 1。不过由于液晶显示的灵敏度比较高,而且它的抗干扰能力也不是很强,所以误报的情况也较多。 现在市面上的魔幻镜倒车雷达应该算是比较先进的倒车雷达了,它结合了前几代产
6、品的优点,并采用了最新仿生超声雷达技术,并用高速电脑控制,可全天准确地进行探测2 m以内的障碍物,并以不同的声音提示和直观的距离显示来提醒驾驶员;魔幻镜倒车雷达把后视镜、倒车雷达、免提电话、温度显示和车内空气温度显示等多项功能整合在一起 1,并设计了语音功能,因为其外形就是一块倒车镜 ,所以可以不占用车内空间,可以直接安装在车内倒视镜的位置,而且它样式种类繁多,可以按照个人需求和车内装饰选配,当然它的价格也是比较贵的 1。最新的一代倒车雷达是整合影音系统,除了具备前几代倒车雷达的功能外还兼有影音系统 1。随着科学技术水平的迅速发展,相关电子技术也是飞跃前进,当然,汽车电子产业也得到飞速发展,电
7、子产业的飞速发展使得车载电子安全产品有很大的发展前景。倒车雷达当然是每辆车必备的电子安全产品,如今市面上的主流的汽车倒车雷达基本都是以单片机芯片为控制核心的智能测距报警系统。这些的倒车雷达能够连续测距并显示汽车与障碍物之间的距离,而且采用蜂鸣器的不同频率的鸣叫声进行报警提示和距离显示提示,从而能够尽量不占用驾驶员的视觉空间 1。此外,汽车电本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 3 页 共 42 页子系统的网络化的发展还要求作为汽车行驶安全辅助系统的倒车雷达要具有通信功能,并能够把数据发送到汽车总线上去 2。就目前市面上的产品来讲,目前的汽车倒车雷达主要是具备数码管或者液晶屏的
8、距离显示并且带有蜂鸣器的语音报警为主的汽车安全系统。这些系统主要采用的是以单片机为控制核心的智能超声波测距传感器和蜂鸣器报警系统,这种汽车安全辅助系统便宜耐用,而且达到了汽车电子系统网络化的发展需求。1.3 课题研究内容及章节安排本文所介绍的超声波测距报警系统在测距的时候采用的是两个超声波探头分别进行超声波发射和接收来进行距离的测量的。本设计的汽车防撞系统能测量出倒车方向的障碍物与汽车之间的距离, 并通过数码管显示单元模块显示两者之间的距离,然后通过蜂鸣器发出不同频率的声响, 从而起到提示和报警的作用。本系统利用一片89S51单片机对超声波信号循环不断地进行采集。 系统包括超声波测距单元(超声
9、波集成模块)、89S51 单片机控制、蜂鸣器报警模块和数码管显示模块。这个设计的汽车倒车雷达要能够连续测距,数据经过单片机的处理后,用4位数码管显示所测量得到的距离,并利用不同频率使蜂鸣器发出不同的鸣叫声进行语音报警。 论文构成主要由以下部分组成: 第1章主要介绍了本课题的背景意义和相关技术在国内外的研究现状。 第2章介绍的是汽车防装系统的总体方案设计。首先介绍汽车防撞系统的设计要求,然后分别对测距传感器的选择和显示报警系统的方案设计做了介绍,最后提出本系统的总体的设计方案,为硬件系统的设计打下了基础。 第3章对硬件系统的设计进行了介绍。首先对超声波传感器的工作原理进行了分析,然后具体讨论了超
10、声波测距模块中的超声波发射电路和超声波接收电路的硬件设计,最后介绍了显示模块电路和蜂鸣器报警电路的设计。 第4章主要是对系统的软件设计进行了介绍。在软件设计中采用不同模块不同编程进行设计的,本设计分别对系统的主程序模块、中断子程序模块、超声波测距模块、蜂鸣器报警模块和数码管的显示模块的各个程序进行了设计。 第5章是硬件的组装及其性能进行分析。首先对实物进行硬件排版组装和焊接,然后讨论了系统的性能产生的误差。 第 6 章是对本设计的总结和展望。最后一章对全文进行了总结,并指明了系统本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 4 页 共 42 页设计的不足之处,最后也对本系统的倒车雷达
11、报警系统的发展前景进行了展望。2 总体方案论证本章从系统方案等一些方面来进行论证。本设计主要是进行距离的测量和报警,设计中涉及到的内容较多,主要是将单片机控制模块、超声波测距模块、蜂鸣器报警模块、4 位数码管显示模块这几个模块结合起来。而本设计的核心是超声波测距模块,其他相关模块都是在测距的基础上拓展起来的,测距模块是利用超声波传感器,之后选择合适单片机芯片,以下就是从相关方面来论述的。2.1 设计方案论证2.1.1 测距传感器(1)激光测距传感器激光传感器利用激光的方向性强和传光性好的特点,它工作时先由激光传感器对准障碍物发射激光脉冲,经障碍物反射后向各个方向散射,部分散射光返回到接受传感器
12、,能接受其微弱的光信号,从而记录并处理光脉冲发射到返回所经历的时间即可测定距离,即用往返时间的一半乘以光速就能得到距离。其优点是测量的距离远、速度快、测量精确度高、量程范围大,缺点是对人体存在安全问题,而且制作的难度大成本也比较高 3。(2)红外线测距传感器红外线测距传感器利用的就是红外线信号在遇到障碍物其距离的不同则其反射的强度也不同,根据这个特点从而对障碍物的距离的远近进行测量的。其优点是成本低廉,使用安全,制作简单,缺点就是测量精度低,方向性也差,测量距离近 3。(3)超声波传感器超声波是一种超出人类听觉极限的声波即其振动频率高于 20 kHz 的机械波。超声波传感器在工作的时候就是将电
13、压和超声波之间的互相转换,当超声波传感器发射超声波时,发射超声波的探头将电压转化的超声波发射出去,当接收超声波时,超声波接收探头将超声波转化的电压回送到单片机控制芯片。超声波具有振动频率高、波长短、绕射现象小而且方向性好还能够为反射线定向传播等优点,而且超声本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 5 页 共 42 页波传感器的能量消耗缓慢有利于测距 4。在中、长距离测量时,超声波传感器的精度和方向性都要大大优于红外线传感器,但价格也稍贵。从安全性,成本、方向性等方面综合考虑,超声波传感器更适合设计要求。根据对以上三种传感器性能的比较,虽然能明显看出来激光传感器是比较理想的选择,
14、但是它的价格却比较高,而且安全度不够高。而且汽车在行驶的过程中超声波传感器测距时应具有较强的抗干扰能力和较短的响应时间,因此选用超声波传感器作为此设计方案的传感器探头。2.2 系统方案此方案选择 51 单片机作为控制核心,所测得的距离数值由 4 位共阳极数码管显示,与障碍物之间的不同距离利用蜂鸣器频率的不同报警声提示,超声波发射信号由 51 单片机的 P0.1 口送出到超声波发射电路,将超声波发送出去,超声波接收电路由 CX20106A 芯片和超声波接收探头组成的电路构成,报警系统由蜂鸣器电路构成。本设计中将收发超声波的探头分离这样不会使收发信号混叠,从而能避免干扰,可以很好的提高系统的可靠性
15、。本设计的汽车防撞装置的系统框图如图 2.1 所示。超声波接受器 检波电路51 单片机超声波发射器放大电路放大电路报警系统显示模块图 2.1 汽车防撞装置的系统框图本设计由 Keil 编程软件对 51 单片机进行编程,51 单片机在执行程序后由 P0.1端口产生 40kHz 的脉冲信号通过 74LS04 电路进行放大并送到到超声波发射探头,产生超声波。在超声波发射电路启动的同时单片机启动中断定时器,利用其计数的功能记录超声波发射超声波到接收到超声波回波的时间。当接收回射的超声波时,接收电路的输出端产生负跳变输出到单片机产生中断申请,执行外部中断子程序计算距离。结合各方面的因素考虑,依据设计的要
16、求,查阅相关数据资料,选择了超声波测距传感器 TR40-16Q(其中 T 表示超声波发射探头,R 表示超声波接收探头) ,综本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 6 页 共 42 页合考虑设计的要求出于简便角度,选用了 HC-SR04 超声波集成模块。此超声波模块的最大探测距离为 5 m,精度可以达到 0.3 cm,盲区为 2 cm,而且发射扩散角不大于 15,更有利于测距的准确性。而且,此模块的工作频率范围为 39 kHz41 kHz左右,完全能在 40 kHz 工作频率工作。由于超声波的发射和接收是分开发送和接收的,所以发射探头和接收探头必须在同一条水平行直线上,这样才能
17、准确地接收反射的回波。而由于测量的距离不同和发射扩散角所引起的误差以及超声波信号在空气中传播的过程中的超声波衰减问题,发射探头和接收探头距离不可以太远,而且还要避免发射探头对接收探头在接收信号时产生的干扰,所以二者又不能靠得太近。根据对相关资料查阅,将两探头之间的距离定在 5 cm8 cm 最为合适。本设计所用的 HC-SR04 模块的超声波探头之间的距离大约在 6 cm 左右。本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 7 页 共 42 页3 硬件电路设计本设计的汽车防撞装置由 51 单片机、超声波发射探头、超声波接收探头、4 位共阳极数码管、蜂鸣器组成。汽车防撞系统的测距是利用
18、超声波测距的原理,在单片机内部程序的控制下,由超声波发射探头发射超声波,在超声波遇到障碍物时反射到超声波接收探头,由此回应到单片机,由单片机进行中断处理和数据的处理,计算出距离,由数码管显示距离,并由蜂鸣器报警提示。本设计的硬件电路分为五部分:单片机最小系统、超声波发射和接收电路、蜂鸣器报警电路和数码管显示电路。3.1 单片机系统设计3.1.1 单片机的选择一般在系统的设计当中,能否完成设计任务最重要的就在于系统的核心器件是否选择合适,而单片机更是是系统控制的核心,所以对单片机的选择更是异常重要。如果选择了一个合适的单片机不仅可以最大地简化系统的操作,而且其功能可能是最好的,可靠性也比较高,对
19、整个系统来说更方便。目前,市面上的单片机的种类繁多,并且他们在功能方面也是各自有各自的特点。在一般的情况下来讲,在选择单片机时要需要考虑的几个方面有 5:(1)单片机最基本性能参数指标。例如:执行一条指令的速度、程序存储器的容量,I/O 口的引脚数量等。(2)单片机的某些增强的功能。(3)单片机的存储介质。例如:对于程序存储器来说,最好选用的是 Flash 的存储器。(4)单片机的封装形式。封装的形式多种多样,例如:双列直插封装、PLCC封装及表面贴附等。(5)单片机对工作的温度范围的要求。例如:在进行设计户外的产品时,就必须要选用工业级的芯片,以达到温度范围的要求。(6)单片机的功耗。例如,
20、如果信号线取电只能提供几 mA 的电流,所以为了能满足低功耗的要求这个时候选用 STC 的单片机是最合适的。(7)单片机在市面上的销售渠道是否畅通、其价格是否便宜。本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 8 页 共 42 页(8)单片机技术的支持网站如何,卖家提供的芯片资料是否足够完善,是否包含了用户手册,设计方案举例,相关范例程序等。(9)单片机的保密性是否很好,单片机的抗干扰的性能如何等。51 系列单片机它在指令系统、硬件结构和片内资源等方面与标准的 52 系列的单片机可以完全的兼容。51 系列的单片机执行速率快(最高时钟频率为 90 MHz),功耗低,在系统、在应用可编程
21、,不占用用户的资源 5。根据本系统设计的实际要求,选择 AT89S51 单片机做为本设计的单片机使用,它是由 ATMEL 公司生产的高性能、低功耗的 CMOS 8 位单片机。89S51 单片机具有以下几个性能特点: 4 k 字 节 的 闪 存片 内 程 序 存 储 器 , 128 字 节 的 数 据 存 储 器 , 32 个 外 部 输 入 和 输 出 口 , 2 个 全 双工 串 行 通 信 口 , 看 门 狗 电 路 , 5 个 中 断 源 , 2 个 16 位 可 编 程 定 时 计 数 器 , 片 内震 荡 和 时 钟 电 路 且 全 静 态 工 作 并 由 低 功 耗 的 闲 置 和
22、 掉 电 模 式 5。单片机的引脚功能图如图 3.1 所示。图 3.1 51 单片机的引脚功能图3.1.2 单片机引脚功能(1)电源引脚Vcc(40 脚):正电源的引脚,工作电压是 5 V。GND(20 脚):接地端。本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 9 页 共 42 页(2)时钟电路的引脚 XTAL1 和 XTAL2为了产生时钟信号,在 89S51 单片机的芯片内部已经设置了一个反相放大器,其中 XTAL1 端口就是片内反相放大器的输入端,XTAL2 端则是片内振荡器反相放大器的输出端 5。单片机使用的工作方式是自激振荡的方式,XTAL1 和 XTAL2 外接的是 12
23、 MHz 的石英晶振,使内部振荡器按照石英晶振的频率频率进行振荡,从而就可以产生时钟信号。时钟信号电路如图 3.2 所示。图 3.2 时钟信号电路(3)复位 RST(9 脚)当振荡器运行时,只要有有两个机器周期即 24 个振荡周期以上的高电平在这个引脚出现时,那么就将会使单片机复位,如果将这个引脚保持高电平,那么 51 单片机芯片就会循环不断地进行复位 5。复位后的 P0 口至 P3 口均置于高电平,这时程序计数器和特殊功能寄存器将全部清零 5。本课题设计的单片机复位电路如图 3.3 所示。图 3.3 单片机复位电路图(4)输入输出口(I/O 口)引脚P0 口是一个三态的双向口,既可以作为数据
24、和地址的分时复用口,又可以作为通用输入输出口 5。P0 口在有外部扩展存储器时将会被作为地址/数据总线口,此时P0 口就是一个真正的双向口;而在没有外部扩展存储器时,P0 口也可以作为通用的I/O 接口使用,但此时只是一个准双向口;另外,P0 口的输出级具有驱动 8 个LSTTL 负载的能力即输出电流不小于 800 uA5。本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 10 页 共 42 页P1 口是一个带内部上拉电阻的 8 位双向 I/O 口,而 P1 口只有通用 I/O 接口一种功能,而且 P1 口能驱动 4 个 LSTTL 负载;在使用时通常不需要外接上拉电阻就能够直接驱动发光
25、二极管;在端口置 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 程序存储器编
26、程时,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 口第二功
27、能表P3 引脚 兼用功能P3.0 串行通讯输入口(RXD)P3.1 串行通讯输出口( TXD)P3.2 外部中断 0 请求输入端( INT0)P3.3 外部中断 1 请求输入端( INT1)P3.4 定时器 0 输入端 (T0)P3.5 定时器 1 输入端(T1)P3.6 外部数据存储器写选通信号输出端(/WR)本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 11 页 共 42 页P3.7 外部数据存储器写选通信号输出端(/RD )(5)其它控制或复用引脚(a)ALE/PROG(30 脚):地址锁存有效信号输出端。在访问片外存储器时,ALE(地址锁存允许)以每机器周期两次进行信号输出,
28、其下降沿用于控制锁存 P0口输出的低 8 位地址;在不访问片外存储器的时候,ALE 端仍以不变的频率输出脉冲信号(此频率是振荡器频率的 1/6),而在访问片外数据存储器时, ALE 脉冲会跳空一个,此时是不可以做为时钟输出 5。对片内含有 EPROM 的机型在编程时,这个引脚用于输入编程脉冲/PROG 的输入端 5。(b)/PSEN(29 脚):片外程序存储器读选通信号输出端,低电平时有效。当 89S51 从外部程序存储器取指令或常数时,每个机器周期内输出 2 个脉冲即两次有效,以通过数据总线 P0 口读回指令或常数。但在访问片外数据存储器时,/PSEN将不会有脉冲输出 5。(c)/EA/Vp
29、p (31 脚):/EA 为片外程序存储器访选用端。当该引脚访问片外程序存储器时,应该输入的是低电平,要使 89S51 只访问片外程序存储器,这时该引脚必须保持低电平;而在对 Flash 存储器编程时,用于施加 Vpp 编程电压 5。3.1.3 单片机最小系统单片机最小系统是其他拓展系统的最基本的基础,单片机最小系统是指一个真正可用的单片机最小配置系统即单片机能工作的系统。对于 80S51 单片机,由于片内已经自带有了程序存储器,所以只要单片机外接时钟电路和复位电路就可以组成了单片机的最小系统了。单片机的最小系统如图 3.4 所示。本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 12
30、页 共 42 页图 3.4 单片机最小系统原理图3.2 超声波发射和接收电路设计超声波是一种振动频率超过 20 kHz 的机械波,它可以沿直线方向传播,而且传播的方向性好,传播的距离也较远,在介质中传播时遇到障碍物在入射到它的反射面上就会产生反射波 6。由于超声波的以上几个特点,所以超声波被广泛地应用于物体距离的测量、厚度等方面 6。而且,超声波的测量是一种比较理想的的非接触式的测距方法 6。当进行距离的测量时,由安装在同一水平线上的超声波发射器和接收器完成超声波的发射与接收,并且同时启动定时器进行计数 7。首先由超声波发射探头向倒车的方向发射超声波并同时启动定时器计时,超声波在空气中传播的途
31、中一旦遇到障碍物后就会被反射回来,当接收探头收到反射波后就会给负脉冲到单片机使其立刻停止计时 6.7。这样,定时器就能够准确的记录下了超声波发射点至障碍物之间往返传播所用的时间t(s) 7。由于在常温下超声波在空气中的传播速度大约为340 m/s 7,所以障碍物到发射探头之间的距离为:S=340t/2=170t 因为单片机内部定时器的计时实际上就是对机器周期T的计数,而本设计中时钟频率fosc取12 MHz,设计数值 N,则: T12/fosc=1s t=NTN0.000001 (s) 本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 13 页 共 42 页S170NT170N/1000
32、000 (m) 在程序中按式 S170NT170N/1000000 计算距离。3.2.1 超声波发射电路设计超声波发射电路是由超声波探头和超声波放大器组成。超声波探头将电信号转换为机械波发射出去,而单片机所产生的 40 kHz 的方波脉冲需要进行放大才能将超声波探头驱动将超声波发射出去,所以发射驱动实际上就是一个信号的放大电路,本设计选用 74LS04 芯片进行信号放大,超声波发射电路如图 3.5 所示。图 3.5 超声波发射电路工作时,由单片机产生 40 kHz 的脉冲从 P0.1 口向超声波的发射电路部分发出信号,再经 74LS04 放大电路放大后,驱动超声波探头将超声波发射出去。3.2.
33、2 超声波接收电路设计由于超声波在空气中的传播过程中是有衰减的,如果距离较远,那么超声波接收电路所接收到的超声波信号就会比较微弱,因此需要对接收到的信号进行放大而且放大的倍数也要比较大。超声波接收电路主要是由集成电路 CX20106A 芯片电路构成的,CX20106A 芯片电路可以对超声波信号进行放大、限幅、带通滤波、峰值检波、整形、比较等功能,比较完之后超声波接收电路会输出一个低电平到单片机去请求中断,当即单片机停止计时,并开始去进行数据的处理。CX20106A 芯片的前置放大器具有自动增益控制的功能,当测量的距离比较近时,放大器不会过载;而当测量距离比较远时,超声波信号微弱,前置放大器就有
34、较大的放大增益效果。CX20106A 芯片的 5 脚在外接电阻对它的带通滤波器的频率进行调节,而且不用再外接其他的电感,能够很好地避免外加磁场对芯片电路的干扰,而且它的可靠性也是比较高的。CX20106A 芯片电路本身就具有很高的抗干扰本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 14 页 共 42 页的能力,而且灵敏度也比较高,所以,能满足本设计的要求。超声波接收电路如图 3.6所示。图 3.6 超声波接收电路3.2.3 HR-SR04 超声波集成模块HR-SR04 超声波集成模块是将超声波发射探头,超声波接收探头,CX20106A芯片电路,74LS04 芯片放大电路集成到的一起的
35、一个超声波集成模块。HR-SR04 超声波集成模块正面外观如图 3.7 所示,HR-SR04 超声波集成模块的背面外观如图 3.8所示。本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 15 页 共 42 页图 3.7 HR-SR04 超声波集成模块正面外观图图 3.8 HR-SR04 超声波集成模块背面外观图HR-SR04 型超声波集成模块的工作电压为 5 V,而且此模块的静态工作电流是小于 2 mA 的,工作时候可以比较稳定。而且,它的感应的角度不大于 15,可以减少了很大部分可能存在的角度干扰问题。此模块的测距范围为 2 cm5 m ,能基本满足测距要求,而且其精度可以达到 0.3
36、 cm,盲区仅仅为 2 cm,完全可以能够满足本设计的测距要求,而且测距也比较稳定。HR-SR04 超声波集成模块采用的是 I/O 触发测距,给至少 10 us 的高电平信号。另外,此模块可以自动发送 8 个 40 kHz 的方波脉冲,并能够自动检测是否有信号返回,如果检测到有信号返回则通过 I/O 口输出高电平,高电平的持续时间就是超声波从发射到返回所用的时间,则,所测量的距离本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 16 页 共 42 页=(高电平时间 声速)/2。一个控制口发出一个 10 us 以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开定时器计时,当此口变
37、为低电平时就可以读定时器的值,此时就为此次测距的时间,就能够算出距离。这样不断的循环周期测,就可以在不停地移动的过程中测量距离值了。但是,为防止发射信号对回收信号的影响,本超声波集成模块的测量周期最好定在 60 ms 以上,所以本设计将测量周期定在 80 ms。3.3 显示报警模块设计3.3.1 数码管显示模块设计发光二极管的缩写是LED,在每个数码管里面都有8只发光二极管,它们分别记作a、b、c、d、e 、f、g、dp,其中dp是小数点,每一只发光二极管都有一根电极引到外部的引脚上,而另外一只二极管的引脚就连接在一起同样也引到外部引脚上,此引脚就记作公共端COM。市面上常用的 LED 数码管
38、有两种即共阳极数码管与共阴极数码管。共阳极是数码管里面的发光二极的阳极接在一起作为公共引脚即公共阳极,在使用时此公共引脚接到电源正极。相反,共阴极就是数码管里面的发光二极管的阴极接在一起作为公共引脚即公共阴极,在使用时此引脚接到电源负极。单片机对数码管的显示可以分为静态显示和动态显示,静态显示能够稳定地显示数值,但是搭建电路时比较烦索,而动态显示是数码管轮流显示再利用人眼的“视觉暂留”特性,这样看出来的就是在显示不同数值 8。数码管的动态显示比较实用,电路构建简单,所以本设计采用动态扫描的方法显示测量距离,只要轮流显示的速度足够快的时候就能够实现测量数值的显示。显示模块选用 4 位共阳极数码管
39、进行动态扫描,此扫描方式能完全达到显示要求。显示模块连接电路图如图 3.9 所示。本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 17 页 共 42 页图 3.9 显示模块连接电路图3.3.2 报警模块设计报警模块通过单片机给定不同频率利用蜂鸣器发出不同声音。报警模块电路图如图 3.10 所示。图 3.10 报警模块电路图34 系统整体电路根据本章前面对设计的各个相关模块的分别讲述讲述,再结合单片机的引脚功能,从而得到系统整体电路图,如图 3.11 所示。本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 18 页 共 42 页图 3.11 系统整体电路图在图 3.11 中,4 位
40、共阳极数码管的八个显示比划分别外接到单片机的 P2.0 到 P2.7端口,用于显示所测量距离,数码管的共阳极端分别接在单片机的P1.2、P1.4、P1.6、P1.7 这四个端口,利用单片机的动态扫描的方式将距离显示出来。单片机的 P1.0 接到蜂鸣器报警电路,用于蜂鸣器测距报警。本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 19 页 共 42 页4 系统软件设计本设计采用的是模块化的思路来进行设计和编写程序,程序主要由系统主程序和中断程序构成。主程序完成单片机的初始化,超声波的发射和接收、计算超声波发射点与障碍物之间的距离、数码管显示和蜂鸣器报警等。系统程序设计的主要的功能是发射超声
41、波、接受超声波、计算测量距离、数据计算、蜂鸣器报警和数码管显示。4.1 主程序设计主程序对整个单片机系统进行初始化后,先将超声波的回波接收标志位置位并且使单片机P1.0 端口输出一个低电平用来启动超声波发射电路,同时将定时器T0启动,然后调用距离计算的子程序,再根据定时器T0 记录的时间计算出所需要测量的距离,然后再调用显示子程序,再将测出的距离以十进制的形式送到数码管显示,同时调用声音处理程序来控制蜂鸣器进行报警。最后主程序通过对回波信号的接收,完成后续的工作,假如标志位清零则说明接收到了回波信号,那么主程序就返回到初始端重新将回波接收标志位置位并且在单片机的P0.1端口上发送低电平到超声波
42、发射电路,就这样,连续不断地运行,循环不断地工作用来实现测距。 整个系统的设计的关键是对距离进行测量的,然后通过单片机来处理测量数据是比较容易实现的,能精确的实现测距。在测距中,各种信号包括温度对声速的影响都将干扰到测距的准确性,其中超声波的余波信号对整个设计中测距的精确度的干扰的影响比较大 7。超声波接收回路中的超声波信号一共有两种波信号:第一种波信号为余波信号就是当发射探头发射出信号之后,超声波接收探头马上就接收到的超声波信号,实际就是超声波的发射信号 7;另一种波信号就是有效信号,即经过障碍物表面反射回来的超声波回波信号 7,也是所需要测量的距离数值。 在进行超声波测距时,实际上测距就是
43、记录从超声波发射电路发射超声波信号开始到接收到信号的声波的往返时间差,然后通过数据计算出距离,对于回波信号需要进行检测的有效信号是反射物体反射的回波信号,所以要尽量避免在检测时候检测到余波信号。余波就是在发射超声波时超声波信号直接到达接受探头的波信号,同时余波信号也是超声波测量时存在测量盲区的最主要的原因 7。 超声波接收电路在接收到超声波回波后,通过 CX20106A 电路进行检波整形比较,并向单片机发出有效信号,单片机通过外部中断的改变记录回波信号的到达时本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 20 页 共 42 页间,中断发生之后就是表示已经接收到了回波信号,这个时候停止
44、计时,并且读取计数器中的数值,这个数值就是需要进行测量的时间差的数据。程序中对测距距离的计算方法是按S=17N/1000=0.017N(cm)进行计算的,其中,N为计数器的值,声速的值取为340 m/s。 综合以上的分析可得到系统主程序流程图,系统主程序的流程图如图 4.1 所示。开始单片机初始化超声波模块复位发射超声波并启动 T0 开中断接收到回波的同时中断停止计算测量距离显示距离同时蜂鸣器报警延时图 4.1 系统主程序流程图4.2 中断处理程序负责计算车尾与障碍物之间的距离是/INT0 的中断程序。根据前面的对超声接收电路的分析,在超声波集成模块接收到超声波回波信号后,超声波接收电路就会产
45、本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 21 页 共 42 页生一个低电平送至单片机的 P0.0 引脚,使系统中断,则系统转入中断处理程序。进入中断处理后,定时器 T0 和外部中断 0 就立即被关闭,同时读取时间值,并给回波接收标志位清零即成功接收到回波信号。中断处理程序的程序流程图如图 4.2 所示。计时停止指定的报警声开启中断关闭返回距离计算处理显示距离并根据距离判断是否报警YN图 4.2 中断处理程序流程图在中断处理程序过程中,对距离数据的计算是比较关键的。首先是从定时器 0 得到超声波传播中往返所用的时间,再运用公式计算得出障碍物与车尾之间的距离,然后再将测得的距离值传
46、到其他功能模块进行其他功能的处理。C 程序如下:void zd0() interrupt 1 /T0 中断用来计数器溢出,超过测距范围flag=1; /中断溢出标志void zd3() interrupt 3 /T1 中断用来扫描数码管和计 800 ms 启动模块本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 22 页 共 42 页TH1=0xf8;TL1=0x30;Display();DIDI();timer+;if(timer=400)timer=0;TX=1; /800 ms 启动一次模块 _nop_();_nop_(); _nop_(); _nop_(); _nop_(); _
47、nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 23 页 共 42 页_nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_();TX=0; void main(void) TMOD=0x11; /设 T0 为方式 1,GATE=1;TH0=0;TL0=0; TH1=0xf8; /2 ms 定时TL1=0x30;ET0=1; /允许 T0 中断ET1=1; /允许 T
48、1 中断TR1=1; /开启定时器EA=1; /开启总中断while(1)while(!RX); /当 RX 为零时等待TR0=1; /开启计数while(RX); /当 RX 为 1 计数并等待本 科 毕 业 设 计 说 明 书 ( 论 文 ) 第 24 页 共 42 页TR0=0; /关闭计数Count(); /计算 4.3 计算及显示模块设计从距离计算公式S=17N/1000=0.017N(cm)中可以很明显看出来,如果想要得到具体的距离的值,就只需要得到从超声波发送开始到接收到超声波这个过程中定时器0的计数的次数。本设计中,采用了 4 位共阳极连接的数码管显示来显示与障碍物之间的距离,
49、同时数码管与 P1 口连接进行动态的段扫描。由于这个距离值是不断变化的,所以,这个数码管的显示的过程是在外部中断 0 发生后才进行的。 所以当主程序给超声波发生器发送了信号后,此时中断和定时器 0 就已经被打开,并开始计时了。当超声波接收电路接收了到回波信号的同时时,电路便会产生一个低电平到单片机的 P0.0 端口,在单片机检测到该信号后,定时器计时就将停止,同时定时器的计数的次数将被提取出来,这样就可以得到以 cm 为单位的测量的距离值。C 程序如下:Void Count (void)time=TH0*256+TL0;TH0=0;TL0=0;/time=23529;S=(time*0.17); /算出来是 cmif(S=7000)|flag=1) /超出测量范围显示“-” flag=0;flag_beep=0;本 科 毕