您的当前位置:首页正文

基于单片机的倒车防撞报警系统的设计

2021-07-27 来源:步旅网
基于单片机的倒车防撞报警系统的设计

专业:2010级电气工程及其自动化(3)班

摘 要 本设计的基本内容为基于AT89S52单片机的倒车防撞报警系统的设计。主要是结合了超声波的特点和优势,将AT89S52单片机和超声波测距系统结合成一体,设计出一种稳定准确可靠地倒车防撞报警系统。本设计的系统具有模块化和多用途的特点,因为采用了软件和硬件结合的办法。在本文中,采用了一种简单可行的三路测距原理搭建了防撞报警系统,并且对倒车防撞系统的设计及各部分的设计原理进行详细的分析 ,介绍了单片机的原理,超声波测距原理,HC-SR04模块以及它们的应用。利用这些原理,本系统最后可实现小车后方的全方位实时监控显示并报警的功能,很大程度上解决了倒车泊车的安全问题。

关键词 AT89S52,超声波,多路测距,倒车防撞

ABSTRACT

The basic design is based on the contents of this AT89S52 microcontroller reversing collision avoidance warning system design. Mainly a combination of ultrasound features and advantages, will combine AT89S52 microcontroller and ultrasonic ranging system as a whole, to design a stable and accurate and reliable parking proximity warning system. The system has a modular design and versatile features, because the use of software and hardware combination approach. In this paper, using a simple three-way ranging principle feasible to build a collision warning system, and the design principles of the design of each part reversing collision avoidance system to conduct a detailed analysis of the principles of the MCU, ultrasonic testing from principle, HC-SR04 module and their applications. Using these principles, the system can achieve the final round the back of the car to display real-time monitoring and alarm functions, largely solve the security problem of reversing parking.

Key Words AT89S52, ultrasound, multi-ranging, reversing crash

绪论

在当今社会不断发展的经济和工业科学技术的不断提升,汽车已经成为大部分家庭的一个成员。所以在使用过程中,特别是在新手驾车的过程中,汽车的安全问题就成为一个很大的问题。当大量的汽车在城市道路行驶时,就会出现行车或倒车撞击事故,行车或者倒车的安全问题也越来越明显,给道路交通施加了更多的压力。在这时候一个倒车防撞系统的作用就突显出来了,可以减少不必要的汽车剐蹭或者交通事故,这样就可以减小交通压力,并且在汽车车倒车或者泊车的时候,防撞系统就可以辅助驾驶员操作,当驾驶员对车后方的障碍物无法目测或者判断的时候,系统通过测距并进行显示报警,在未发生安全事故之前主动提醒驾驶员采取措施,大大方便了人们的生活。

目录

ABSTRACT ...................................................................................................................................... 2 绪论 .................................................................................................................................................. 2 1 引言 .............................................................................................................................................. 4

1.1 研究目的和意义 ............................................................................................................... 5

1.1.1研究目的 ................................................................................................................ 5 1.1.2研究意义 ................................................................................................................ 5 1.2 国内外现状 ....................................................................................................................... 5 1.3 本文研究的主要内容 ....................................................................................................... 6 2 总体方案....................................................................................................................................... 6

2.1 整体设计与分析 ............................................................................................................... 6 2.2 各功能模块方案分析 ....................................................................................................... 6 2.3 方案确定 ........................................................................................................................... 8 3硬件电路电路设计 ........................................................................................................................ 9

3.1 AT89S52单片机控制单元 ................................................................................................ 9

3.1.1 AT89S52单片机 .................................................................................................... 9 3.1.2 单片机引脚功能 ................................................................................................... 9 3.2超声波测距原理 .............................................................................................................. 12 3.3 发射与接收电路设计 ................................................................................................... 13 3.3.1 HC-SR04模块 ...................................................................................................... 13 3.3.2超声波发射电路 .................................................................................................. 19 3.3.3超声波接收电路 .................................................................................................. 20 3.4 显示报警单元设计 ....................................................................................................... 22

3.4.1 系统显示电路设计 ............................................................................................. 22 3.4.2 系统报警电路设计 ............................................................................................. 23 3.4.3 复位电路 ............................................................................................................. 24 3.5 供电电路 ......................................................................................................................... 25 4系统软件设计 .............................................................................................................................. 25

4.1 主程序流程图 ................................................................................................................. 25 4.2 测距子程序流程图 ......................................................................................................... 26 5硬件组装及调试 .......................................................................................................................... 27 6总结及展望 .................................................................................................................................. 31 致谢 ................................................................................................................................................ 32 参考文献......................................................................................................................................... 33 附录1 总原理图 .......................................................................................................................... 34 附录2 源程序 .............................................................................................................................. 35

1 引言

1.1 研究目的和意义

1.1.1研究目的

本设计包括控制模块,超声波模块,显示和报警模块组成,其中以单片机最为控制核心,应用HC-SR04超声波测距模块。设计出一款汽车倒车防撞蜂鸣报警系统,能根据倒车情况实时显示汽车与车后障碍物的距离。本设计简单,成本较低,稳定性良好,多应用于辅助夜间倒车,倒车入库以及能安全准确的停车到位。使其能够很好的减少驾驶员们在倒车过程中发生安全事故,特别是公共汽车及货车等大型车辆。 1.1.2研究意义

在当今社会,如此之快的经济增长速度,汽车行业也日益兴旺,这使大部分家庭拥有汽车成为可能,但是伴随而来的交通拥挤问题,撞车事故也越发严重,这样也增加了人们的难以回避的经济损失和安全问题。针对这种状况,设计倒车防撞系统是一个很好的选择,并且系统应具备反应快,可靠性高并且较为便宜一系列特点,并且该系统还可以用在其他测距场合。通过对车后方以及驾驶员无法判断的地方进行实时测量且显示,设置一定的安全距离进行报警,给广大驾驶员解决困扰,提高驾驶安全性,并且通过设计锻炼了学生主动思考和自主创新精神和动手能力。

1.2 国内外现状

在以前的大量时间里面,人们主要研究的是汽车被动安全问题,

既当汽车出现问题以后解决的方案,比如在方向盘或者其他地方装上

安全气囊,或者在汽车前后装上保险防撞杠,或者在汽车的材料方面使用塑料,当撞车的时候来缓冲掉一些能量,来减轻损失。而现在人们大量从主动性来研究汽车安全问题,汽车导航仪成为其中的代表,它可以实时的拍摄车后方的状况,然后通过屏幕显示让司机无时不刻掌握车的状况,但是这种设备比较昂贵,一些较便宜的车都没有安装这些设备。所以我们应该主动预防问题,研究方法来提高汽车的主动安全性能,就可能给人们带来更多福音。

1.3 本文研究的主要内容

本文简述了HC-SR04超声波检测的一些基本原理,单片机的有效利用,通过编程实现我们预期的功能。在提出总体设计方案后,研究了整个系统的供电电路,发送接收电路,显示报警电路等,并且详细的介绍它们是怎么工作的,也介绍了系统软件的流程,实现系统应有的功能。

2 总体方案

2.1 整体设计与分析

此设计以AT89S52单片机为控制中心,采用HC-SR04模块进行测距,发射探头与接收探头与单片机相连。在发射超声波的同时,进行计时且进行小时延,超声波在传播过程中碰到障碍物就会反射回来,接收探头接收到回波后,单片机就可计算出传播时间,根据时间则可计算出小车到障碍物的距离,当距离小于系统设定值,通过硬件电路进行显示报警。本设计对系统主程序,测距子程序,硬件的测距模块,显示单元,报警模块等进行了研究分析。

2.2 各功能模块方案分析

1. 单片机控制单元选择

目前市场上有很多优秀的单片机可供选择,比如MCS51系列的单片机,拥有很高的性能,廉价并且技术成熟,在国内领导着主流,占据国内的电子主要市场。并且,与其配套的硬件开发系统,软件技术也越来越成熟,可利用它开发出各种所需要的应用系统。还有一种常见的单片机,那就是ATMEL公司的AT89S52单片机,它同样具有MCS51系列的优点,并且它的存储方式为闪存,存储空间为8K。它的引脚和指令与80C51等产品通用,并且ATMEL公司高技术的制造,让单片机的存储数据不易丢失。并且AT89S52单片机拥有特殊的功能,可以进行在线编程,这样系统就可以随时下载单片机控制程序,所以本系统的控制单元决定采用AT89S52单片机。 2. 测距传感器的选择

用来进行测距的方法有很多种,介绍几种比较常见的方法,比如利用红外线的特性测距,根据反射回来的强度就可以判断碰到障碍物的远近,这样就实现了测距。它的优点是使用制作方便安全,但是它的测量精度不高,方向性也比较差,测量距离不远。激光传感器的方向性和传光性特好,它是利用激光,对障碍物发射脉冲,遇到障碍物就大量的散射,部分的光被接收传感器接收以后,得到了光的传送时间计算出两倍到障碍物的距离,它的一半即为我们所要的测量距离。激光传感器拥有很远的测量距离,速度挺快,测量精度也很高,并且可以大范围测量,可是它的特性威胁人们的安全问题,并难以制作。 超声波是人们比较熟悉的一种东西,它也属于声波范畴,但是它

是超出了人类听觉的声波,其振动频率超过了20KHZ。它工作的时候需要通过换能在电压和超声波之间转换,超声波发射时,经过电平转换增加能量,发射探头将电压变成超声波进行发射,而接收传感器接收到回来的超声波时,接收探头需要转换成电压送到单片机里面进行处理。超声波高频率的振动特性,使之不容易出现绕射,并且波长短,而且在传输过程中能量的消耗比较缓慢,这些特点都有利于测距[1]。特别在在中长距离测距中有很明显优势,相对于红外测距,超声波测距的精度较高,方向性好,但价格稍微贵了一点。经过对传感器的优缺点分析对比,考虑到安全性,成本,精度等综合因素,决定选用超声波进行测距。

2.3 方案确定

选定方案:本设计使用AT89S52为控制中心,而超声波发射探头则使用T-40,接收探头使用R-40,为了设计的的便捷采用HS-SR04为测距模块,所测距距离值由HS310561K三位一体共阳数码管显示,报警单元使用蜂鸣器实现。因为本设计为倒车防撞系统,只进行一路测距不能满足要求,所以采用三路测距,超声波第一路发射信号驱动连接在单片机P0.0口,第二路连接P3.4口,第三路连接P3.6口,与之对应的三个接收探头分别与单片机的P3.2,P3.5,P3.7口连接。 因为只有一个LED显示屏,所以三路测距后得到的距离进行比较,显示距离最短的一路,当距离小于报警值的时候,由报警电路进行报警,且随着距离的减小,报警的频率逐渐增加。总系统框图如图2.1所示。

图2.1 系统框图

3硬件电路电路设计

3.1 AT89S52单片机控制单元

3.1.1 AT89S52单片机

AT89S52单片机具备以下几个特点,4K字节flash片内存储,高达128字节数据存储,配置32个I/O口,2个全双工串行通信口,5个中断源,具有看门狗电路,2个16位可编程定时计数器,片内震荡和时钟电路,并且全程静态工作还配置了掉电模式[2]。

下图3.1为AT89S52的引脚图。

图3.1 52单片机引脚图

3.1.2 单片机引脚功能

(1)电源引脚

VCC(40脚):接+5v电源 GND(20脚):接地端。 (2)时钟电路的引脚XTAL1和XTAL2

因为在AT89S52单片机里面存在一个反相放大器,所以它可以产生时钟信号,XTAL1作为片内放大器的输入,XTAL2为片内振荡器反相放大器的输出端 [2] 。它采用自激振荡的工作模式,输入口XTAL1和输出口XTAL2接12MHZ石英晶振,通过石英晶振的频率来控制振荡,最终产生时钟信号。时钟电路如图 3.2。

图3.2 时钟信号电路

(3)复位RST(9脚)

单片机复位的条件是该引脚出现两个机器周期以上的高电平,如果一直给它输入高电平,那么单片机会一直执行复位[2]。复位之后的结果就是计数器和特殊功能寄存器将全部清零,并且P0口,P1口,P2口,P3口的引脚都为高电平[2]。 (4)输入输出口(I/O口)引脚 P0口到P3口:

1.所有的端口都具有输入/输出功能,都可以作为通用的I/O口使用。当端口作输出时数据可以锁存,作为输入时数据可以缓冲。4个

端口的每一位都可独立使用。

2.P0口和P2口可作为与外扩存储器的连接端口。这时,P0作为数据/地址分时复用端口,P0口先输出外部存储器的低8位地址,并在外部锁存,而后再输出读入数据,P0口内部没有自带上拉电阻,所以在使用的时候需外接上拉电阻。在对内部Flash程序存储编程时,P2口可以接收高八位地址和控制信息,在16位寻址时,P2口送出外部存储器的高8位地址[2]。当P0口和P2口用作数据/地址总线时,它们不能再作为通用I/O口。

3.P0口的输出可以驱动8个LSTTL负载,其输出电流大于800uA[2]。而P1,P2,P3口的输出只能驱动4个LSTTL负载。

4.P3口除了具有通用I/O口的第一功能之外,它还有专属的第二种功能。P3口的第二功能,如表3.1所示[2]。

表3.1 P3口第二功能表

P3引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 兼用功能 串行通讯输入口(RXD) 串行通讯输出口(TXD) 中断0请求输入( INT0) 中断1请求输入(INT1) 定时器0输入端(T0) 定时器1输入端(T1) 外部数据存储器写选通(/WR) 外部数据存储器读选通(/RD) (5)其它控制或复用引脚

(a)ALE/PROG(30脚):第一功能作为地址锁存信号输出端,片内有EPROM的芯片,在EPROM编程期间,此引脚的第二功能作为输入编程脉冲,一般情况下空着[2]。

(b)/PSEN(29脚):外ROM读选通信,当端口置为低电平时有效。

(c)/EA/Vpp(31脚):EA的功能是内外ROM选择端。Vpp的功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp,一般情况下接高电平。

3.2超声波测距原理

超声波有很多测距方法,大多数采用渡越时间检测法,此方法简单易行,测量范围和精度都能满足要求。它的原理:当发射探头发出超声波以后,到接收探头接收到超声波的时间t,就称为渡越时间,然后得出距离l。假设l为测量距离,t为时间差,超声波速度为c,可得l=ct/2,当接收探头收到回波的同时停止计时。再由间差的绝对值,假定t2-t1=0.01S,则有340m×0.01S=3.4m。由于在这3.4m的时间里,超声波距离障碍物的距离图示如下: 如图3.3为测距原理[3]

图3.3测距原理

因为θ/2的值很小,那么cosθ/2也很小,所以L≈S。

那么距离L如下:

L=c x ( t2 -t1 )/ 2

超声波测距的算法设计: 当为室温的时候超声波传播速度和声速一样为340m/s。t1为超声波发射瞬间,t2是接收超声波瞬间,t2-t1得出超声波传输时间。在进行测距的时候,发射器和接收探头必须安装在同一个平面内,这样接收探头才能比较准确的接收回波[4]。 S可以表达为下面的式子:

S=340×t/2=170×t

单片机内部的计时方式是采用机器周期来定时计算的,时钟频率为12MHZ,如果计数为N次,则:

T=12/fosc=1μs t=N×T=N×0.000001(s) S=170×N×T=170×N/1000000(m)

3.3 发射与接收电路设计

3.3.1 HC-SR04模块

HC-SR04模块作为非接触式的测距模块,它的测量范围可达到2cm-400cm,并且价格便宜,模块包括了超声波发射,接收及控制电路,这样使单片机控制系统更加的简单容易。实物图如图3.4。

图3.4 HC-SR04模块实物图

基本工作原理:给模块TRIG触发口大于10us的高电平信号就使模块自动发出8个连续40khz的方波,当遇到障碍物返回以后,接收探头感应到回波,ECHO输出一个高电平,则可得出超声波的传播时间。HC-SR04参数如表3-2。

表3-2模块参数

电气参数 工作电压 工作电流 工作频率 最远射程 最近射程 测量角度 输入触发信号 输入回响信号 规格尺寸 HC-SR04超声波模块 DC 5V 15mA 40khz 4m 2cm 15° 10us的TTL脉冲 输出TTL电平信号,正比于距离 45*20*15cm HC-SR04模块发出的超声波时序图如图3.5所示,为防止发射信号的余波对回响信号的影响,测量周期一般要大于60ms。

图3.5超声波时序图

HC-SR04模块主要由Em78p153单片机、MAX232、TL074、超声波传感器:T40-16、R40-16组成。 Em78p153单片机:

①概况描述

Em78p153为8位单片机,其内部配置512*13位一次性ROM(OTPROM),如果想要对程序进行修改完善,那么可利用EMC编程器将程序代码写入芯片。能满足用户要求的有13位选项位,特别设置了保护位保护程序被读出。 ②功能特点

工作电压范围:2.0V~6.0V; 工作温度范围:0℃~70℃; 工作频率范围:DC~8MHz; 512×13位片内ROM;

32×8位片内寄存器(SDRAM); 片内有4MHz校准RC振荡器; 2个双向I/O端口;

8位实时定时/计数器(TCC),触发沿可编程选择,信号源,溢出产生中断。

掉电模式(SLEEP模式);

拥有TCC溢出中断,外部中断和输入引脚状态变化中断3个中断源。

EM78P153为14脚封装; ③引脚分配

图3.6 Em78p153引脚图

MAX232:MAX232芯片是一个电平转换芯片,采用+5v单电源供电。MAX232大部分的情况用做串口通信,但是也有电平转换的功能,本设计利用了其电平转换功能,将5V的40KHZ的方波转换成20V,从而提高发射功率。超声波发接收射头采用T/R40-16探头,它的共振频率为40kHz。

①MAX232引脚图,芯片引脚如图3.7。

图3.7 MAX232引脚图

②引脚介绍

第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成的。它可以产生+12v和-12v两种电源,供给RS-232串口两种电平。

第二部分是数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)构成第一数据通道;8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)构成第二数据通道。

15脚接地(GND)和6脚VCC(+5v)构成了供电部分。 TL074:运算放大器,采用JFET输入,它的优点是使用时低噪声,引脚如图3.8。

图3.8 TL074引脚图

1脚为通道1的输出端,2脚为通道1反向输入端,3脚是通道1同相输入端。

5脚是通道2的同相输入端,6脚为通道2反相输入端,7脚是通道2输出端。

8脚是通道3的输出端,9脚是通道3反相输入端,10脚通道3是同相输入端。

12脚是通道4的同相输入端,13脚是通道4的反相输入端,14脚是通道4的输出端。4脚为芯片的正电源接口,11脚为芯片接地端。

TL074内部组件数量如下表3.3所示

表3.3 TL074组件

电阻 晶体管 JFET 二极管 电容 epi-FET 44 56 6 4 4 4 T40-16与R40-16:

在以往的研究中,人们已经设计出很多优秀的超声波传感器,大概的可以分为两大类:

第一类就是利用电气方式产生超声波, 主要涵盖压电型、磁致伸缩型和电动型等。第二类利用机械方式产生超声波,主要涵盖加尔统笛,液哨和气流旋笛等。因为它们产生的超声波特性不一样,用途也各有所异,压电式超声波发生器目前最为常用。

利用压电晶体的谐振来工作是压电式超声波发生器的原理,它的内部存在一个共振板和两个压电晶片。在它的两极外施加脉冲,当频率与压电晶片的固有振荡频率相等时,产生共振,使共振板一起振动,则发出了超声波。反之,当共振板接收到超声波回波时,迫使压电晶片振动,就这样就转换为了电信号,这就是超声波接收探头了,模块使用的T/R40-16超声波换能器即为压电型。 ①器件说明

名 称:压电式陶瓷超声波传感器; 型 号:T40-16T/R;

类 别:通用型; 中心频率:40KHZ; 外 径:16mm;

使用方式:T代表发射,R代表接收,TR为收发兼用;

适用范围:一些电子设备或者电器的遥控装置,超声波测距及汽车倒车防撞装置,液面探测,超声波接近开关及其它应用的超声波发射与接收。 ②器件性能

1.标称频率(KHz):40KHz;

2.发射电压at10V(0dB=0.02mPa):≥110dB; 3.接收灵敏度at40KHz(0dB=V/ubar):≥-70dB; 4.静电容量at1KHz,<1V(PF):2000±30%; 5.探测距离(m):0.02-10。 传感器实物如图3.9 所示。

图3.9 传感器实物 图3.10 元件内部结构 图3.11 元件外部结构

3.3.2 超声波发射电路

HC-SR04

模块将发射和接收电路集成于一体,在进行硬件设计的

时候,就不需要再进行复杂的发射及接收电路的设计,软件设计的时候,只需要给模块的控制端‘Trig’输入一个大于10us的高电平就

可以产生40Khz的方波,方波从而引起压电陶瓷共振,这样就产生了超声波。而接收端口‘Echo’接收到回波以后,就给输出一个高电平给单片机,单片机进行数据处理。

HC-SR04模块内部超声波发射电路如图3.12所示,主要由Em78p153单片机、MAX232及超声波发射换能器T40组成。

图3.12 超声波发射电路

3.3.3超声波接收电路

HC-SR04模块内部超声波接收电路如图3.13所示,主要由TL074运算放大器及超声波接换能器R40组成。

图3.13 超声波接收电路

超声波的接收过程:单片机初始化,HC-SR04内部ECHO接口与单

片机P0.0的引脚相连,发射接口TRIG与单片机的P3.2引脚相接。

单片机初始化后,单片机P0.0给“Trig”接口一个约为20us的高电平,经过HC-SR04模块内EM78P153发送8个连续的40KHz脉冲的信号,经过MAX232电平转换,提高发射功率。

当单片机的给一个20us的触发信号时,TRIG由低电平转换为高电平,TRIG=1,单片机开时计时,开启中断,并记录时间为T1,接收换能器等待接收回波,ECHO持续为高电平的时间为发射时间。换能器接收回波将超声波转换为电信号,送至单片机,记录时间为T2。超声波发射的时间为:T2-T1, 计算发射距离为:

L = (T2-T1)xC/2

如果等待回波时间超过65ms时,则无法接收到回波,单片机初始化,重新发射接收下一次回波。

3.4 显示报警单元设计

当单片机将测距单元测得的距离处理计算后,需要进行显示,若当距离小于报警值的时候也需要进行报警,所以报警显示单元是本系统不可或缺的部分,报警单元和显示单元进行分开设计。 3.4.1 系统显示电路设计

显示器作为一个典型输出设备,它具有广泛的实际应用,各种结构类型不同的显示设备在电子产品中都可以见到。LED发光二极管作为最简单的显示器,它能显示我们所需要的关键信息。结合设计综合实际要求以及单片机的接口资源,由于测距范围最大4m左右,所以选用了HS310561K三位一体共阳数码管就能满足要求。

发光二极管显示器一般有静态显示驱动和动态显示驱动方式。给点亮的LED施加恒定的电流,这就是静态显示驱动,但是这种方法占用了大量具有锁存功能的I/O接口。这样单片机控制起来比较方便,单片机发送显示的字型段码到接口电路即可,若发送新的段码就重新显示新的信息,但是这种驱动需要寄存器,编译码等硬件设备,若需要显示位数增加以后,连线及成本都增加。而动态显示驱动就是给想要点亮的LED施加脉冲电流,使用分时的方法轮流控制显示器COM端让显示器轮流点亮。这种方法比较适合本设计,所以选用动态驱动显示。

图3.14 系统显示电路

本系统采用的

HS310561K三位一体数码管显示所测距离值,如图

3.13。LED数码管采用了动态扫描显示,单片机的P2口为段码输出端口,位码输出端口分别位单片机的P0.2,P0.4,P0.6口,采用PNP三极管9012三极管驱动数码管位驱动。本设计设置的是三路测距模块,当三路都检测到距离的时候,单片机通过程序计算出最短距离以后,比较哪一路最小就显示哪一路。 3.4.2 系统报警电路设计

系统报警电路由一个阻值为4.7K的电阻,一个三极管和一个喇叭组成。

图3.15 系统报警电路

当单片机AT89S52给P0.0,P3.4,P3.6三个I/O口施加大约5V的电压,发射电路就会经过T40探头发射超声波。当R40接收到回波后,接收电路将超声波转换为电信号输入单片机。单片机计算出与障碍物的距离以后,运算结果转化为十进制送LED显示电路进行显示。如果到障碍物的距离小于50厘米时候,这时单片机AT89S52就会便给P3.3口一个指令,使得报警电路工作,实现报警功能。 3.4.3 复位电路

单片机有许多工作状态,除了正常的系统初始化之外,程序也有运行出错或者操作错误使系统陷入死循环,这是我们需要对单片机进行复位,所以设计的复位电路必须精确可靠地运行。单片机的复位功能依靠外部电路实现,时钟电路工作以后,只要在单片机9号复位引脚出现大于24个时钟振荡脉冲的高电平,单片机就会进行复位。

图3.16 复位电路

3.5 供电电路

本系统采用的是USB电路供电,电路图如图3.17,C1和C2起到滤波的作用,C2小电容可以滤掉高频波,而C1大电容可以滤掉低频波。

图3.17 供电电路

4系统软件设计

超声波测距仪的软件设计主要任务为:主程序,超声波测距子程序及显示子程序组成。C语言是大家比较熟悉的语言,只要程序逻辑编辑正确,C语言运行起来效率较高并且运行时间也较短,所以本系统控制程序采用C语言编程。

4.1 主程序流程图

图4-1 主程序流程图

4.2 测距子程序流程图

图4.2 超声波测距子程序

5硬件组装及调试

设计的倒车防撞系统,以HC-SR04型的超声波测距传感器为主体,在安装时应注意模块必须保持平整摆放,确保第一路的发射探头和接收探头在同一个平面上,第二路的发射探头和接收探头在同一个平面上,第三路的发射探头和接收探头在同一个平面上[5]。其它硬件的组装和连线焊接如下:P2口的7个引脚分别对应焊接到HS310561K共阳级数码管的A,B,C,D,E,F,G的引脚上,用来对动态的段进行扫描;P0口的P0.2、P0.4、P0.6接口分别控制数码管的片选。报警电路由P3口的P3.3通过一个三极管连接到蜂鸣器上,当距离小于报警值进行蜂鸣器鸣叫报警。P0.0端口焊接第一路的超声波模块的发射端,P3.2端口焊接第一路的超声波接收端。P3.4端口焊接第二路的超声波模块的发射

端,P3.5端口焊接第二路的超声波接收端。P3.6端口焊接第三路的超声波模块的发射端,P3.7端口焊接第三路的超声波接收端。

本设计为倒车防撞系统,所以设计了3路测距,分别安装在小车后方的中间,左边,右边三个位置,当三路都测到有障碍物的时候,由于显示模块只有一个,所以系统进行比较,将距离最小的一路进行显示报警。当最小距离小于100cm的时候,小车离障碍物比较近,驾驶员需要知道障碍物在小车后方的具体位置,所以本系统在显示方面进行了改进,将百位的显示用A代表中间的测距模块,b代表左边的测距模块,c代表右边的测距模块所测得的距离。

在测距的中路模拟了一个障碍物,其他两路没有设置障碍物,经直尺测量障碍物的距离为21.2cm,本设计的测量显示为A21,则在中路距离为21cm处有障碍物,距离基本能测准,误差在合适的范围内,并且运行起来系统比较稳定,测量情况如图5.1所示。

图5.1 测量情况显示

最小测量距离的时候为5厘米,依然在中路设置障碍物,显示为A5,图5.2为最小测量距离的图。

图5.2 测量的5厘米距离显示

当两路及三路都检测到障碍物的时候,系统会选择距离最短的一

路进行显示和报警,图5.3为中路和左路都检测到同一瓶墨水,但是左路的距离比中路的短,所以系统选择了b路进行显示,显示为b6,如图5.3所示。

图5.3 两路同样遇到障碍物的显示情况

当系统测距距离大于100cm的时候,系统正常显示百位,但是这个时候就不能判断是哪一路测距模块检测到障碍物,因为距离大于100cm,小车处于安全距离以内,所以驾驶员不需要知道障碍物处于车后方什么位置,测量如图5.4所示。

图5.4 测量距离大于100cm测距图

本系统在设计过程中由于细节问题难免会产生误差的原因进行分析:

(1)环境的温度所引起的误差

环境温度是本设计测量精度的一个主要原因,在不同温度下,测量出的结果也会不同,有资料显示,在温差较大的环境中,测量同一距离的时候,前后测量出的数据相差也比较大[7]。因为本设计为倒车防撞,所以对距离的精度要求不是很高,主要考虑离障碍物距离较近的时候进行报警,所以本设计中未加入温度补偿模块 (2)障碍物表面材料带来的误差

对不同障碍物的测量精度往往不一样,表面比较光滑的障碍物测量精度一定比表面较粗糙的障碍物准,这样是因为表面粗糙的障碍物

会大范围的使超声波散射,接收探头只能收到少量的回波,从而造成测量误差[8]。

(3)模块感应角的影响

在发射探头和接收探头这两个超声波探头与障碍物之间存在着一个几何角度,若反射波在入射到探头时有一定的角度,假如这个角度太大,那么结果就会出现较大误差,甚至也可能会接收不到回波信号。尤其是当探头与障碍物之间的距离太近,此时的误差就会成为主要的误差。但是此时的误差是可以通过使用发射能力强,散射小的探头,或多使用几个探头来减小的[9]。 (4)余波信号的影响

余波信号就是在超声波发射探头发出超声波以后,一些余波没有经过障碍物的反射直接被接收探头接收到误认为是反射回来的回波,这样直接造成测量干扰,但是可以采取软件的方法来处理余波信号,比如用软件算法对短时间接收到的声波直接忽略[10]。本系统在超声波发射出去以后,进行了一个小时延,如果在这个小时延期间通过衍射而折返回来的声波自动进行忽略,然后继续等待在一个工作周期里面有效反射波,如果有就进行处理,如果没有就进行下一次的测量[11]。

6总结及展望

本文通过对单片机和测距模块的应用,进行了汽车倒车防撞系统的报警设计。文中对超声波测距的原理和实现进行了详细论述,并详细介绍了AT89S52的内部结构以及各管脚的功能。在此理论知识基础上,本文利用AT89S52单片机对系统发射与接收、显示报警及复位等

硬件电路进行了设计,并对设计电路作了分析。通过对系统工作流程的掌握,设计出了系统的主程序、显示程序以及蜂鸣器报警程序。

本设计的报警系统可以直接应用于实际倒车使用,帮助驾驶员更理智的进行倒车操作,它能有效的躲避障碍物以及行人,从主动性去预防事故的发生,大大降低了人们的经济损失。

不过此系统只能测量有限的距离,只在10-200cm距离范围下才表现为明显的线性关系。除此之外,当测量距离的时候如果障碍物是斜面或者为其他复杂界面时也会对测量的准确性有一定的影响。本设计在做的是倒车防撞,当报警以后,距离到达障碍物20厘米的时候,加上一个自动制动系统,这样更好的完善了倒车防撞的功能,系统也应该加上一个温度补偿装置,这样可以使测量精度大大提高。上述不足或者未涉及的地方,相信未来科学技术的更加成熟,倒车防撞系统可如鱼得水的实现在驾驶工作中。

致谢

本次设计在张心歌老师的精心指导和耐心帮助之下,我最终完成了这次设计,本次毕业设计使我获益良多。无论在方案设计,搜集资料还是在程序编辑和实物调试方面她都给予了我大量的指导和帮助,与此同时,张老师也教给我敬职敬业的工作作风和严谨的科学态度,让我学到许多在书本上学不到的知识,受益匪浅。在此,特向张心歌老师致以深深的感谢!

同时也真诚地感谢各位在本次毕业设计过程中对我学习,生活上予以关心和帮助的老师同学。

参考文献

[1] 侯媛彬等. 凌阳单片机原理及其毕业设计精选[M]. 科学出版社,2006. [2] 李建忠. 单片机原理及应用[M]. 西安:西安电子科技大学出版社,

2008.

[3] 霍孟友等.单片机原理与应用[M].北京:机械工业出版社,2004 [4] 刘洪恩.汽车倒车防撞超声波雷达的设计[J].仪表技术,2004,15(04):

55~60

[5] 高海生,杨文焕. 单片机应用技术大全[M]. 成都:西南交通大学出版

社,1996.

[6] 张友德,赵志英,涂时亮. 单片机微型机原理、应用与实验[M]. 上海:

复旦大学出版社,1992.

[7] 陆冬妹. 基于温度补偿的超声波倒车测距系统的设计[J]. 齐齐哈尔大

学学报,2011,27(2).

[8] 刘典文等. 基于单片机STC89C51设计的超声波测距仪[J]. 中国新技

术信产品,2010,8:16~17.

[9] Vizimuller. RF design guide-systems, circuits, and equations [M].

Boston:Artech House,1995.

[10] Keil Software. The Final World On the 8051[M]. Germany:Keil

Elektronik Gmbh and Keil software,1997.

[11] 梁小流,陈炳森,梁建和. 基于89S52汽车防撞雷达系统设计[J]. 机

电工程技术,2011,10(4):49~51.

附录1 总原理图

附录2 源程序 #include #include #include

//调用头文件 //调用头文件

#define uchar unsigned char #define uint unsigned int #define csbout P0_0 #define csbint P3_2 #define csbout1 P3_4 #define csbint1 P3_5 #define csbout2 P3_6 #define csbint2 P3_7

//超声波发送 //超声波接收

//超声波发送 //超声波接收 //超声波发送 //超声波接收 //数码管段

#define LED P2

sbit bj=P3^3; //报警值输出(声音) sbit LED3 = P0^2; sbit LED2 = P0^4; sbit LED1 = P0^6;

uchar xm1,xm2,xm0,d,sj1,buffer[3]; uchar

convert[10]={0x60,0x7E,0xA2,0x2A,0x3C,0x29,0x21,0x7A,0x20,0x28}; //数码管显示段码

uchar convert1[3]={0x30,0x25,0xA7};

static unsigned char temp; uint s,s0,s1,s2,i,t,sj2,sj3,c; float csbc,wdz;

//数码管位驱动 //数码管位驱动 //数码管位驱动

sfr WDTRST = 0xA6;

void csbcj(); void csbcj1(); void csbcj2(); void delay(i);

//调用超声波测距程序

//调用超声波测距程序 //调用超声波测距程序 //延时函数 //显示函数

void scanLED();

void timeToBuffer(); void csbsc();

void main() {

EA=1;

//显示转换函数 //计算速度

//开中断

//设定时器0为计数 //定时器0中断允许

TMOD=0x11;

ET0=1; sj1=5;

//测量下限值 //报警值 //测量上限值 //当前温度值

sj2=50; sj3=550;

temp=20;

csbsc();

WDTRST=0x1E;

WDTRST=0xE1;//初始化看门狗。

while(1) {

csbcj(); i=190;

//调用超声波测距程序

while(--i) {

}

scanLED(); //调用显示函数

csbcj1(); i=190;

//调用超声波测距程序

while(--i) { }

csbcj2();

if(s0s=s0,d=1;

//调用超声波测距程序

scanLED();

//调用显示函数

}

else s=s1, d=0;

if(s{ s=s; }

else s=s2,

d=2;

if(s>sj3) {

buffer[0]=0xE1; buffer[1]=0xE1; buffer[2]=0xE1; }

//大于时显示“CCC”

else if(s//小于时显示“- - -”

buffer[2]=0xBF; buffer[1]=0xBF; buffer[0]=0xBF;

else timeToBuffer(); if(s//产生滴、滴、滴声响,

//判断是否达到报警值

bj=0;

i=190; while(--i) {

scanLED();

//调用显示函数

}

bj=1; i=s;

//关闭报警声

while(--i) {

scanLED(); } } else {

bj=1; i=190; while(--i) {

scanLED();

//调用显示函数

//调用显示函数

}

} }

}

void delay(i) //延时子程序

{

while(--i); }

void scanLED() //{ LED=buffer[0]; LED3=0;

delay(40);

为4

LED3=1; delay(40);

LED=buffer[1]; LED2=0; delay(40); LED2=1; delay(40);

LED=buffer[2]; LED1=0; delay(40);

LED1=1;

显示功能模块

显示个位数送P2端口 选通个位 进行延时

注:下载到单片机中时20改

进行延时消隐

// // //

//

delay(40); WDTRST=0x1E;

WDTRST=0xE1;//初始化看门狗。 }

void timeToBuffer() { }

void csbcj() {

TH0=0x00; TL0=0x00;

csbout=1; //启动超声波测距模块

//超声波测距子程序

xm0=s/100;

//转换段码功能模块

xm1=(s-100*xm0)/10; xm2=s-100*xm0-10*xm1; buffer[0]=convert[xm2]; buffer[1]=convert[xm1]; buffer[2]=convert[xm0]; if(buffer[2]==0x60) {

buffer[2]=convert1[d]; if(buffer[1]==0x60) buffer[1]=0xFF; }

//判断十位为零时不显示

//判断百位为零时不显示

_nop_(); _nop_();

_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); csbout=0; TR0=1;

i=80;

while(i--) { } i=0;

while(csbint) {

i++;

//启动定时器0 //盲区值

//判断接收回路是否收到超声波的回波

if(i>=1500) csbint=0; WDTRST=0x1E;

}

}

WDTRST=0xE1;//初始化看门狗。

csbint=1; TR0=0; t=TH0;

//关闭定时器

t=t*256+TL0; s0=t*csbc-8;

void csbcj1() {

TH0=0x00; TL0=0x00;

//超声波测距子程序

csbout1=1; //启动超声波测距模块

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

_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); csbout1=0; TR0=1;

//启动定时器0 //盲区值

i=80;

while(i--) { } i=0;

while(csbint1) {

i++;

if(i>=1500) csbint1=0; WDTRST=0x1E;

}

WDTRST=0xE1;//初始化看门狗。

csbint1=1; TR0=0; t=TH0;

//关闭定时器

t=t*256+TL0; s1=t*csbc-8;

}

void csbcj2() {

TH0=0x00; TL0=0x00;

csbout2=1; //启动超声波测距模块

//超声波测距子程序

_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); csbout2=0;

TR0=1;

//启动定时器0 //盲区值

i=80;

while(i--) { } i=0;

while(csbint2) {

i++;

if(i>=1500) csbint2=0; WDTRST=0x1E;

}

}

WDTRST=0xE1;//初始化看门狗。

csbint2=1; TR0=0; t=TH0;

//关闭定时器

t=t*256+TL0; s2=t*csbc-8;

void csbsc() { }

//计算超声波速度

wdz=0.0000615*temp; csbc=0.03314+wdz; csbc=csbc/2;

因篇幅问题不能全部显示,请点此查看更多更全内容