收藏和点赞,您的关注是我创作的动力
概要
本设计目的是采用单片机的车辆防追尾报警控制系统,核心原件为STC89C51单片式微型计算机,并通过软硬件融合的方法将超音波实时测距技术与单片机融合。系统硬件主要组成是汽车超声波射频测距控制模块,显示控制模块,报警控制电路和汽车按键控制模块四部组成。软件开发部分主要功能是由软件主程序和超声波发射机和接收信号中断器子程序、距离检测计算处理子程序和图像显示障碍报警计算子程序等四个部分综合组成的。驾驶者只需要坐在汽车驾驶室就可以得知与障碍的距离,极大地提高了安全性与效率,防止了事故的发生。
关键词: STC89C51单片机;HC-RS04超声波测距模块;自动报警
一、系统设计总体思路
基于STC89C51 单片机的汽车防碰撞报警系统的设计旨在帮助驾驶员在倒车过程中解决因为技术或者外界因素造成的事故,当汽车与障碍物之间小于设定的距离时,给驾驶员发出报警提醒的安全装置。
该系统利用超声波传感检测模块及时准确的探测到汽车倒车过程中车尾周围的障碍物或行人,并立即反馈给车内微型处理系统——C51 单片机,单片机再通过精确的算法运算比较之后迅速做出判断,给驾驶员留出充足的处理该情况的操作时间以达到减少交通事故发生概率的目的。
硬件设计的分析
包括主要模块的选型和功能分析,以及电路的设计。包括超声波模块、单片机模块、显示模块系统软件程序设计及编程。
软件设计的主要工作是确定各个模块的工作内容,然后编写各个模块的应用程序,模块化的设计可以每个模块可以独立工作,这方便于以后修改、调试程序。在电路仿真软件中(Proteus)设计出电路的硬件仿真原理图。对系统的各个功能模块进行软件设计,最后通过软件编程来控制输出结果。对整个系统电路进行调试、编译和调试。
根据上述内容分析研究,基于单片机的汽车倒车防撞警报实现目标如下:测量并显示车辆后部障碍物距离车辆的距离, 当汽车与障碍物之间小于设定的距离时,给驾驶员发出报警提醒。
系统方案设计
本文设计的汽车倒车防撞警报系统包括超声波模块、单片机模块、驱动模块、显示模块,实现了报警功能、测距功能、显示功能。超声波测距模块会不停的向主控模块反馈实时的测量数据,而这些数据会反映在 LED 显示模块中,使用户监控汽车与障碍物的距离,以减少倒车碰撞的可能。显示模块通过显示功能显示与障碍物之间的距离并发出警报声 , 当测量数值小于预设警报间距数值时,蜂鸣器会发出警报声以达到防止事故发生的目的。
二、系统硬件设计
(1)系统软件结构增强型1t流水线/精简指令集软件结构8051cpu;
(2)(5V单片机)/ 2.0V-3.8V (3V 单片机;
(3)实际工作频率可达48MHz;
(4)指定用户地址应用程序地址空间12k/10k/8k/6k/4k/2k或4字节;
(5)片上集成512 字节RAM;
(6)四个不同通用传统驱动输入i/o口(27/23个),复位后为四个:准双向驱动连接口/弱通用上拉中推下拉(普通8051传统四个通用驱动i/o口),也或者可直接将其设置成四种通用驱动输入模式:准双向驱动连接口/弱通用驱动上拉中推下拉,推挽/通用驱动模式强上拉,仅需将复位设置为一个驱动输入/高阻,开漏。每个传统通用驱动i/o口上的最大驱动容量芯片最大能力值平均可最大精度达到20ma,但整个通用驱动上的芯片最大驱动容量能力不得超过大于1或超过55ma;
(7) isp(在手机操作中心系统专用软件包中可编程)/iap(在其他手机应用程序软件可编程),无需另外安装任何专用程序软件包或编程器,可通过两个串口(p3.0/p3.1)直接下载完成一个下载一片片的用户程序,数秒钟内即可直接下载完成一片;
(8)EEPROM 功能;
(9)看门狗;
(10)内部配置复位专用集成电路晶体20max810专用内部配置复位专用集成电路(外部复位集成电路晶体20m以下时,可省外或内部配置复位专用集成电
三、系统软件设计
4.2 仿真软件选择
系统仿真软件使用大学期间所学的 Protel DXP 软件,是 Altium 公司研发的软件, 具有十分完备的功能包括了丰富的元件库,而且可以自行制作添加,拥有很强的设计功能。该软件应用广泛,它可以完成设计、调试、仿真等一系列工作。
完整的回路模拟功能有以下特点:
(1)模拟设备:模拟设备选择开发商设计的仿真电路模拟器文件来实现。
(2)充足的设备选择:该软件拥有着大量的虚拟设备可供选择。
(3)形象的显示:不同的设备拥有不同的标准。
4.3 主要模块子程序
初始代码声明如下:
#include <reg52.H>//器件配置文件
#include <intrins.h>
#include "eeprom52.h"
//传感器接口
sbit RX = P2^3;
sbit TX = P2^2;
//按键声明
sbit S1 = P1^4;
sbit S2 = P1^5;
sbit S3 = P1^6;
sbit DIAN=P0^5;
//蜂鸣器
sbit Feng= P2^0;
超声波计时测距控制模块的计时作用主要是通过利用一个定时器在主机发出两个超声波发射信号的时候同时进行计时;当它接收到主机反射超声波时,计时器系统会自动发出请求声并停止计时信号,等待一个单片式主机发出响应后,读取这个时间差并且自动计算与两个障碍物之间的发射距离。常见的温度下每当超声波在低温空气中均匀传播时的速度大约是340m/s,依据这个计时器自动记录时间差的t,就可以能精确计算到声波发射到两点间的距离和与障碍物间的距离(s),即为时间s=c*t/2
主要代码如下:
//变量声明
unsigned int time=0;
unsigned int timer=0;
unsigned char posit=0;
unsigned long S=0;
unsigned long BJS;//报警距离
char num=0;
//模式 0正常模式 1调整
char Mode=0;
bit flag=0,flag_BJ;
unsigned char const discode[] ={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0x80}; 可以使用只有数码符号管理器才能显示的所有数码0123456789-和不同时间段显示
unsigned char disbuff[4] ={0,0,0,0}; //数组用于存放距离信息
unsigned char disbuff_BJ[4] ={0,0,0,0};//报警信息
sbit W0=P2^4;
sbit W1=P2^5;
sbit W2=P2^6;
sbit W3=P2^7;
//计算
void Conut(void)
{
time=TH0*256+TL0; //可以读出每个t0的实际计时时间数值
TH0=0;
TL0=0; //清空计时器
S=(time*1.7)/100; //算出来是CM
if(Mode==0) //非设置状态时
{
if((S>=700)||flag==1) //测量超出规定测量精度范围时会显示“-”
{
flag=0;
disbuff[0]=10; //“-”
disbuff[1]=10; //“-”
disbuff[2]=10; //“-”
}
else
{
//距离小于报警距
if(S<=BJS) //距离小于报警值
{
flag_BJ=1; //自动报警如果变量被设置一,定时器就会开始自动报警
}
else //距离大于报警值
{
flag_BJ=0; //关闭报警
Feng=1; //蜂鸣器关闭
}
disbuff[0]=S%1000/100; //将距离数据拆成单个位赋值
disbuff[1]=S%100/10;
disbuff[2]=S%10;
}
}
else
{
Feng=1;
flag_BJ=0; //报警关闭
disbuff_BJ[0]=BJS%1000/100;
disbuff_BJ[1]=BJS%100/10;
disbuff_BJ[2]=BJS%10;
}
}
其中当距离小于设定预警值时,蜂鸣器和LED灯开始工作,蜂鸣器长鸣,LED灯随着距离的变化而改变自身闪烁频率。
原理图
元件清单
(1)79万用板
(2)HC-SR04超声波模块
(3)STC89C51单片机
(4)40P IC座
(5)4p单排母座
(6)四位一体共阳数码管
(7)9012三极管5
(8)2.2k电阻6
(9)10k电阻
(10)5V有源蜂鸣器
(11)5mm红色LED
(12)10uf电解电容
(13)30pf瓷片电容2
(14)12MHZ晶振
(15)100uF电解电容
(16)104独石电容
(17)按键*3
(18)自锁开关
(19)DC电源插口
(20)导线若干
(21)焊锡若干
(22)USB电源线+DC电源插头
五、 文章目录
目 录
摘 要 I
Abstract II
1 引言 1
1.1 系统开发的背景与意义 1
1.2 国内外研究的现状 2
1.3 设计内容与实现目标 4
2 系统总体设计框架 5
2.1 系统设计需求分析 5
2.2 系统方案设计 5
2.3 器件选型 6
2.3.1 超声波模块选型 6
2.3.2 单片机选型 6
2.3.3 数码管选型 6
3 系统硬件设计 7
3.1 单片机电路 7
3.2 超声波检测电路 10
3.3 显示电路 11
4 系统软件设计 12
4.1 软件开发和环境介绍 12
4.2 仿真软件选择 14
4.3 主要模块子程序 14
5 系统焊接调试与性能验证 18
5.1 电路焊接 18
5.2 系统软硬件调试 19
5.3 系统调试及结果 20
6 结束语 23
参考文献 24
致 谢 25
附 录 26
附录1 原理图 26
附录2 元件清单 27
附录3 源程序 28