基于51单片机的汽车倒车防撞报警系统

引言

结合电控技术、电气技术构建起机电一体化控制体系,并逐渐形成了独立的、完整的技术体系成为一门独立的应用技术体系。对于汽车设计制造而言,汽车电子技术水平将直接影响整车性能,是汽车运行安全性、舒适性以及动力性能的决定性影响因素之一。电子控制这一先进技术的科学应用能够显著提升汽车发动机等相关电力电子系统的控制质量,从而实现更加安全、稳定、舒适的行车环境,为车辆良好运行提供充分有效的保障。

发展车俩防撞技术,对于提高车俩智能化水平具有很大的积极意义。防撞技术的出现和发展不仅有效提升了汽车行驶的安全性,也为汽车工业智能化发展做出了巨大贡献。为了降低碰撞风险提高汽车行驶安全水平,除驾驶人视觉判断之外,还需借助相关测距技术装置对车身与其他物体之间的距离进行实时测定与反馈。以此克服驾驶员疲劳驾驶、行为失当导致的碰撞风险,同时也提高紧急状态下驾驶员的应对水平。对于防撞技术而言,难点和重点环节在于车辆测距技术。

  1.   汽车倒车防撞测距报警系统方案设计
    1. 系统设计方案分析

倒车防撞测距报警系统的硬件设计部分主要由数据获取和控制系统两大部分组成。数据获取部分需要完成对传感器获取的数据参数输入到单片机中进行分析操作;控制系统部分则是单片机对获取到的数据分析之后和相应的预设数据进行对比从而做出相应的控制操作。

1.1.1系统方案比较

方案一:基于激光特性的测距技术。该测距方法具体包含脉冲法、相位法等不同技术类型。脉冲测距法的研究基本技术原理是:由测距技术设备产生并发射出的激光,在目标物体上就会对激光产生辐射,所发射激光由测距技术设备中的接受模块负责接受被。然后根据激光发射与接收之间的时间差对其传播时间进行计算确定,然后结合激光传播速度用速度时间位移方程对距离进行计算;相位法测距法的技术原理为:以无线频带频率为基础在激光发射之前对其幅度进行调制,然后对调制激光完成一次往返运动中所表现出的相位延迟进行测量计算,然后结合激光波长参数对相位延迟所对应的运动距离进行计算从而获得所需测距结果。

方案二:基于超声波特性的测距技术。该测距方法的技术原理为超声波在介质传播过程中发生反射并返回发射点所需时间。然后结合超声波的传播速度借助时间速度距离公式对距离取值进行计算。该测距技术的原理与雷达测距技术无显著区别。当超声波由发射装置发出之后,将以空气为介质进行传播,在遭遇障碍物后即发生反射然后反射波被接收装置接收。在此基础上对超声波发出时间、接收时间之间的差值进行计算,以便确定该传播时间对应的距离。超声波的优势在于方向性强、能量消耗较慢、有效距离大、穿透性强等,能够充分保证测距精度。

从以上两种方案,方案二灵活性、可靠性比较强,计算简单,容易做到实时控制,故采用了方案二。

    1. 系统硬件结构框图

图1-1是系统硬件结构框图,主要为STC89C52单片机最小系统,LCD1602显示器集成电路,HC-SR04超声波测距模块,蜂鸣器报警集成电路和按键电路。由图1-1可确定其功能模块的具体设计情况与逻辑关联。

接入5V直流稳压电流,按动自锁按钮给硬件系统上电,首先由超声波测距模块测量距离,单片机将所测的距离数值处理之后显示在LCD1602上。利用按键装置调整报警距离上限,若测量距离小于预先设定值,蜂鸣器发声报警、LED灯闪烁。

67baf38a71fa49ea957b3692325ae4b3.png图1-1系统硬件的结构框图

  1.   系统硬件电路设计
    1. STC89C52单片机
      1. STC89C52模块的设计

STC89C52R是STC公司生产的一款低功耗、高性能的新型CMOS8位微控制器,STC89C52是一种带八K字节闪烁可编程可檫除只读存储器的极低工作电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。同时,在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

3bf5c2fb641644c1986785f39d9dee53.png

图2-1 STC89C52引脚图

对于该单片机而言,其8位I/O接口的数量为4个,对应功能分别如下:

(1)P0口:该数据接口支持数据双向传输,是8 位漏极开路的双向 I/O 口。在充当输出端口时,每一位能够分别满足8个TTL逻辑电平的控制需求,因此能够同时实现64个逻辑电平的控制功能。该接口在提供为“1”的特征值时,接口作高电压使用的状态。但当存取外部程序或数据存储器时,P0口被作为低 8 位地址/数据复用。在此模式下,P0口有内部的上拉电阻。在flash 编程时,P0口也能够来接收指令字节。

(2)P1口:P1口是内置了上拉电阻以及具体数据双向交互功能的8位双向 I/O口,能够满足4个TTL的驱动控制需求。该接口可以通过 “1” 的内部上拉电阻将端口拉高,代表着高电平状态,其功能将表现为数据输入。此外,P1.0 、P1.2 依次可以作定时器/计量器的外部计算入口(P1.0/T2)和触发入口(P1.1/T2EX)。

(3)P2口:P1口是内置上拉电阻并具体数据双向交互功能的8位双向 I/O口,能够满足4个TTL的驱动需求。该端口写入“1” 内部上拉电阻把端口拉高,其功能将表现为输入接口。此时,被外力所削弱的电容在内部电压的影响下,产生大电流。当存取的外围程序存储器用十六位数地址读写外围数据寄存器时,P2口送出高八位地址。

(4)P3口:P3口同样是内置上拉电阻并具体数据双向交互功能的8位双向 I/O口,能够满足4个TTL的驱动需求。该端口写入“1” 内部上拉电阻把端口拉高,将充当输入接口实现数据交互。此时会因内部电阻的影响同时实现IIL电流输出功能。

    1. 超声波传感器介绍

超声波也是高频声音的一种,是人类听觉接受范围以外的音频。从方向性较好,能量消耗较小和慢,传播距离长等优点来看,可以像测距仪那样用于测距计。利用超声波测距和超声波探测更易于进行更快,简便,简单的计算和实时控制,因为测量的精度可以满足工业实施的必要条件,被广泛用于测量和控制系统的开发。

本设计中所选用的超声波传感器,是基于同频率条件实现了电能向超声波能量的转换。现阶段应用水平相对较高的超声波传感器装置主要分为电声型、流体动力型等不同类型。

压电传感器,是指使用水平相对较高的一种电声型超声波传感器。该传感器装置实现了电能、声能之间的转换,在超声波检测技术中体现出了明显的应用优越性。压电晶片是该传感器装置的核心构成要素,能够在电脉冲的刺激下振动而形成声脉冲并向外发射,表现出典型的逆电压效应。晶片在超声波的影响下而振动,振动过程中所发生的形变则可与特定的电信号保持对应关系,这就属于典型的正压电效应特征。两种效应将分别作为超声波发射与接收的技术基础。而基于双压电陶瓷晶片的超声波传感器则因显著的成本优势、耗材优势、性能优势在各类气体、液体介质条件下表现出更加显著的应用价值。压电陶瓷晶片所承受的交流电在发生电压方向、大小等变化时,会在压电效应的作用下导致晶片出现机械形变特征,其形变的方向与程度就将与电压方向、大小呈现出特定关联。基于上述关联可将电压信号转换为对应的振动信号,然后形成超声波以空气为介质进行传播。这种相互转换的关系就将作为超声波发射与接收的技术基础,具体实现的同频率机械波与电信号之间的转换。

1202a9e29ce541ad8a684b34dd29941a.png

图2-2 时钟电路设计图

对于上述超声波发生装置而言,其技术基础为压电晶体谐振特性。该装置的基本构成为共振板(1个)、压电晶片(2个)。装置的内部结构详见图2-2。当脉冲信号由两极输入时,信号频率将与晶片振荡频率相同,在共振作用下令共振板发生共振并实现了电信号向机械波的转换并以超声波的形式进行传播。在无外部电压的影响下,超声波到达共振板时也会引发后者的共振效应,令压电晶片基于超声波等频率发生振动形成相应的电信号。以上即超声波传感器的技术基础。

压电陶瓷晶片有一个固定的谐振频率,即中心频率f0射超声波时,加在其上面的交变电压的频率要与它的固有谐振频率一致。这就对传感器灵敏度提出了相对较高的要求。为了满足灵敏性要求,基于特定的压电材料可对晶片尺寸进行设置和调整进而实现不同的谐振频率,以此满足不同超声波传感器的应用需求。

本设计中所选择的超声波传感器能够在非接触的条件下实现2~400cm的测距功能。该设备的测量结果精度高至3mm,具体由发射装置、接收装置、控制电路等主要元器件构成。

超声波时序图2-3的基本条件为持续10us的脉冲信号。在该信号的触发下模块内部发出8个检测回波(频率为40KHz)。当检测到回波信号时,输出回响信号。脉冲宽度与测量距离成正比。在确定返回波的基础上进行接收并计算确定其传播时间,然后结合超声波传播速度对传感器与目标对象之间的距离进行计算。为避免发射出去的信号对回响信号产生的负面影响,影响测量的精确度,测量周期建议在60ms以上。

下面是一些参数介绍,电气参数如表2-1所示。

表2-1 电气参数表

电气参数表

电气参数

HC-SR04超声波模块

工作电压

DC 5V

工作电流

15mA

工作频率

40Hz

最远射程

4m

最近射程

2cm

测量角度

15度

输入触发信号

10us的TTL脉冲

输出回响信号

输出TTL电平信号,与射程成比例

规格尺寸

45*20*15mm

图2-3超声波时序图

    1. 复位电路

为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,其功能是为系统稳定运行提供有效保障。在上电构成中,该电路将生成复位信号,该信号将持续至系统电源稳定。在确定电源稳定之后还需设计一个合理的延迟时间方结算复位信号,避免电源开关抖动导致的系统冲击。若复位引脚所表现出的高电平特征持续时间超过两个机器周期时,则表明复位功能启动。若RST始终表现出高电平特征,则单片机将持续开展复位动作陷入死循环无法正常工作。所以,在设计复位电路时,通常令其电容取值相对较大,从而适当延长复位时间,避免高电平持续时间不足导致的复位失效问题。在实际应用中,上述电容的取值一般为10UF或22UF。

复位电路与电源相连的瞬间,电容将由极低电阻、无电状态发生变化,其电压在0.3s以内的时间里将由0变化至4V左右。由此可知,复位引脚电位上升的同时也将实现复位功能;在完成复位动作之后再次按下复位按钮,则实现电容放电动作,电容又一次回到0V,再次进行复位动作。电路图如图2-4。

150fa90f12e84eeb8efdbc60e3141727.png

图2-4 复位电路

2.3.1晶振电路

单片机的正常运行离不开晶振电路的支持。若振荡器无法正常运行,则系统也将处于无法运行的状态;若振荡器的运行特征混乱,则必然导致程序混乱的问题影响系统正常运行。振荡器的基本构成为晶振(1个)、陶瓷电容(2个),晶振和瓷片电容是没有正负极之分,连接到两个瓷片电容的端部必须接地。其基本结构详见下图2-5所示。

   2d7fd77fef544027ac78b0fd91b99467.png

图2-5 晶振电路

一般来说, 晶振与单片机采取并联方式并基于谐振关系运行。即晶振将作为谐振电容的构成要素之一。在具体应用中,晶振需要与相应的负载电容配合使用,则可基于负载电容的容量对其频率进行计算确定,以此降低测量结果的误差提供其准确性。

CPU运算周期即机器周期,一般可理解为系统由内存读取一个指令字节所需时间的最小值,也就是基于内外线路或外部总线所实现的一次信息传输操作。机器周期通常等于12个时钟周期。其他周期的概念内涵具体如下:

指令周期(Instruction Cycle):处理器完整完成一次指令读取、执行操作所耗费的时间;

总线周期(BUS Cycle):指完整的一个ROM或I/O端口使用的总时间。

时钟周期(Clock Cycle):即节拍周期,与晶振频率的乘积为1,即互为倒数关系,是处理器运算的最基本时间单位。

对于上述周期概念而言,若干个总线周期构成一个指令周期,而若干个时钟周期则构成一个总线周期。

负载电容=[(Cd*Cg)/(Cd+Cg)]+Cic+△C,其影响因素与内部时钟电路等效电容有关。

通常情况负载电容、等效电容的取值并无显著区别。若存在显著区别则将导致谐振失衡问题导致传感器共振性能下降甚至消失。因此可通过并联谐振的方式让其脉冲更加平稳与协调。

    1. 驱动显示电路及报警电路

   本设计以1602液晶屏为显示模块的核心构成。若测距结果小于安全阈值,则将通过LED与蜂鸣器实现声光报警,提醒用户及时进行处理。在具体应用中,可使用按键模块对安全阈值进行设置和调整。

2.4.11602液晶屏显示电路

本系统显示模块具体由一个LCD1602液晶屏幕作为系统的显示器,显示器上主要显示测量的距离。主要显示的是测量的距离。LCD1602体积小、耗电量低,携带方便,成本低。它有16个管脚,具体显示电路如图2-6。

9c02c50579c74c27bd633f597ec079f6.png

图2-6 显示电路

2.4.2 蜂鸣器和LED报警

  蜂鸣器能够基于电信号实现声音输出功能。该装置的电源选择直流电源,具体包含压电式、电磁式等不同技术类型的产品。前者的基本构成元器件为多谐振荡装置、阻抗匹配装置、压电蜂鸣片、共鸣箱、装置外壳等。其中,多谐振荡器件的基础结构一般是指晶体管、集成电路中的不同单元,可以根据外界电源压力的不同进行共振,给压电蜂鸣片的振荡增加了驱动力从而产生一定的噪声;它们的主要组成分别是震荡器、电磁线圈、吸铁石、振膜、壳体等。在上电后,温度传感器会产生声音的输出,当使用电磁线圈后会产生一定的磁性,并配合磁铁令振膜规律性振动形成声音。多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。为了满足蜂鸣器运行的电流需求,需要配备相应的放大电路对电流进行放大处理以实现发声效果。该装置的技术原理如图2-7所示。

发光二极管、电阻是LED电路的基本构成要素。通常需配合1K电阻将LED工作电流控制在5~20ma的合理水平。

21cc7dd884824c9893b4f0a1a244213b.png

图2-7 蜂鸣器驱动电路

    1. HC-RS04超声波测距原理

由上文分析论述可知,超声波传感器基于超声波传播与返回时间实现距离测定功能。在明确时间数据的基础上,结合超声波在空气中的传播速度对距离参数进行计算。其具体的技术原理详见图2-8所示。实现思路:第一种,直接给trig高电平,然后读取ECHO引脚是否为高电平,若为高电平,则开启定时器,然后继续检测等待其为低电平的时候,获取计数器值,然后进行计算。第二种,开启外部中断,先将ECHO配置上升沿中断,当中断来临的时候,在中断函数里面开启定时器,再将其配置为下降沿中断,等待下降沿中断来临的时候,获取计数器值。

其实上面的两种方法,其思路都是通过计算定时器的counter值,来计算距离。

第三种是让定时器一路PWM控制触发以及触发周期,超声波返回信号高电平时间用定时器通道捕捉功能获取。

b4a7fa3486d148d482782cd48b645392.png

图2-8 超声波测距系统框图

基于上述工作原理,超声波将由发射装置发出长约6mm和频率为40kHz的超声波信号并经目标对象反射之后返回至传感器接收装置进行识别和确定,在此基础上可确定超声波往返一次所需时间。该时间的1/2即超声波在传感器与目标对象之间的传播时间,进而可计算相应的距离数据。

    1. 按键设置电路

在本系统设计工作中选择独立键盘设计结构。在该键盘模块运行过程中,具体通过I/O接口的电平特征对按键状态进行判断,键盘两端分别与I/O接口、接地相连。在程序正常运行过程中,I/O接口将呈现出高电平特征。当按下按键时,对应I/O接口的电平状态将转变为低电平,则恢复按键初始状态时I/O接口的电平也将自动恢复至高电平状态。因此,仅需对I/O接口的电平特征进行检测即可确定按键动作状态。但是在具体应用中需要考虑键盘去抖动问题才能确保功能的稳定性与可靠性。所需消除的抖动干扰具体表现为机械抖动,即按键在按下过程中所形成的不稳定电压特征,是按键动作不可避免的一个问题。通常情况下,机械抖动的持续时间多位于10~200毫秒左右,虽然从人体感知的层面来看这一抖动时间极为短暂,但是对于单片机时钟周期而言则非常漫长。因此可结合硬件或软件去抖动措施消除机械抖动的不利影响,具体分别通过硬件电路或者延迟程序等方式实现去抖效果。本设计以延迟程序为工具实现软件去抖。即令I/O接口的信号检测采集时间向后延迟,以确保其充分的持续时间之后方确认按键动作。

2.7 总体电路

利用单片机的接口进行发射输出来检查超声波的发出,同时不断检查外中断口与INT0插针,一旦INT0插针的电平从高电平转为低电平,即表示发出的超声波已经开始返回。利用数据对结果信息的分析可以获取传感器和障碍物间的差距,LCD1602实时显示测量的数据结果。当距离小于等于预先设定值时,蜂鸣器报警。

  1.   系统程序的设计

本测距系统的软件程序具体由主程序、显示程序、报警程序、按键程序等子程序构成。

    1. 主程序

主程序具体负责相关数据的处理和分析工作,并为各个功能模块的正常运行提供必要的程序指令支持和保障。该程序的技术流程详见图3-1所示。

cd35dda816b040d182d79edfb7ed850e.png

 

图3-1主流程图

    1. 显示数据子程序

显示数据程序具体实现了测距结果的可视化显示数据。将超声波模块所测量后的数据结果经单片机处理后显示在1602液晶屏上。其技术流程详见下图3-2。

adc549d0bd1e4844b9ddea5285a7ceb4.png

 

图3-2显示数据子程序流程图

    1. 报警子程序

报警程序则基于测距数据结果对蜂鸣器的动作状态进行控制。在测距数据高于安全阈值时启动蜂鸣器实现报警功能。其技术流程详见下图3-3所示

d996c6d22aab45efa1af12c8bed1a048.png

图3-3 报警子程序流程图

      1. 系统调试

此次设计中,调试出现了两个大的问题。将作品焊接完成后开始测试电路,使用串口下载器连接充电宝为整个系统硬件供电,提供的电源是+5V,用万用表正负极测芯片的20,40管脚看是否为+5V,测液晶1602的1,2管脚看是否为+5V,检测时防止因电压过高而烧坏芯片,应该将芯片拆下来。现在作品的电路是通的,但是在测试功能是发现蜂鸣器不响,换芯片重新下载程序还是不能决绝这个问题,本人就怀疑是引脚的问题。用LED灯测试那个引脚,LED灯只发出微弱的灯光万用表测量发现只有很小的输出,更换引脚后确实实现了功能超过设定值时蜂鸣器发声报警。

另一个问题是发现按下按键功能并不精确,然在经过查找资料以及同学帮助之下,知道了系统之中有过多的按键,系统没有正确检测到该按键被使用,所以自己设计在每个按键的子程序之中加了一个消抖功能,这样就可以解决按键没有被检测的问题。实物展示如图4-1。

a9dc8364b1a3445f831f8ef8b1ff4d10.png

图4-1 电路板实物图

部分程序:

#include <reg52.h>

#include <intrins.h>

#include <stdio.h>

#define uchar unsigned char  

#define uint  unsigned int    

sfr ISP_DATA  = 0xe2;                

sfr ISP_ADDRH = 0xe3;               

sfr ISP_ADDRL = 0xe4;                

sfr ISP_CMD   = 0xe5;               

sfr ISP_TRIG  = 0xe6;                 

sfr ISP_CONTR = 0xe7;                

sbit LcdRs_P   = P2^7;            

sbit LcdRw_P   = P2^6;       

sbit LcdEn_P   = P2^5;        

sbit Trig_P    = P2^2;          

sbit Echo_P    = P2^3;        

sbit KeySet_P  = P3^2;         

sbit KeyDown_P = P3^3;       

sbit KeyUp_P   = P3^4;       

sbit Buzzer_P  = P2^1;  

sbit Led_P     = P2^0;        

uint gAlarm;                                                

// 单片机内部EEPROM不使能

void ISP_Disable()

{

       ISP_CONTR = 0;

//

    LcdEn_P = 0;    

}

// 1602液晶写数据函数,dat就是要写入的命令

void LcdWriteData(uchar dat)

3946680a0a0e49c7b7b3ace1267b9960.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白茶丫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值