汽车倒车防碰撞报警系统的设计

news2025/7/27 19:15:48

目 录

1 绪论 1
1.1 背景 1
1.2 国外研究情况 1
1.3 超声波测距的优势 2
2 基本原理 3
2.1 超声波简介 3
2.2 超声波基本特性 4
2.3 超声波模块简介 5
2.4 超声波传感器原理 6
2.5 超声波的测距原理 6
3 总体方案 8
4 硬件实现 9
4.1 电路 9
4.1.1 主控制最小系统电路 10
4.1.2 时钟电路 11
4.1.3 蜂鸣报警电路 11
4.1.4 复位电路 12
4.1.5 显示模块电路 13
4.2 硬件焊接与安设 13
5 软件实现 14
5.1 主程序工作流程图 14
5.2 超声波探测程序流程图 15
6 检验与总结 16
6.1 检验 16
6.2 总结 17
参考文献 18
致谢 19
附录 程序 20
3 总体方案
为了实现汽车倒车防碰撞报警系统的设计,本装置分别从硬件设计和软件设计两部分着手,其中报警又分为蜂鸣报警和指示灯报警两部分。硬件部分首先包括设计电路以及焊接电路,其中电路的结构组成主要涵盖以下部分:蜂鸣器电路、超声波传感器电路和单片机控制电路。软件部分主要是设计主程序工作流程和编写单片机程序等,使其能实现规定要求的控制功能。要求在接通电源后,超声波传感器等各模块都能有效落实各自的预定功用,这些模块也都归属于硬件部分。在实际设计过程中,主要是按照硬、软件设计和功能调试的先后步骤来进行的,最终目的是能在车辆同障碍物过近时控制蜂鸣器和指示灯能够发出报警,对驾驶人起到提示作用。
在实际测量中,当装置靠近障碍物的一端和障碍物之间的距离小于五十厘米且大于二十五厘米时,蜂鸣器会发出不连续的蜂鸣报警,倘若距离减小,达到二十五厘米时,蜂鸣器就会发出频率更高的蜂鸣报警声,以防止“车辆”与障碍物过近以致发生碰撞,同时,报警指示灯也会跟随蜂鸣报警的频率进行闪烁。本设计中,测量误差应保持在两厘米以内,由于实际测量环境中存在影响因素,而且超声波在空气中的传播速度受温度变化的影响较大,以致声速会偏离标准状态下的340米/秒,所以在本设计的实现中,为保证功能可以较妥善地展示出来,会选定在室内进行。此外,由于本装置的应用场景是设定在低速倒车状况下,所以在测距的时候,要求“车辆”对于障碍物的相对速度要比较小。
功能实现方面,总体设计大意如下:本装置实际测距区间为1厘米至380厘米,超出该区间则无法进行测距。本装置使用3节1.5V干电池进行供电,由主控制器对超声波模块进行控制,超声波模块负责发射并侦测接收超声波,并将所得的数据传入主控制器进行运算,得出“车辆”与障碍物间的距离并实时显示在显示模块上,与此同时,若所得距离小于50厘米且大于25厘米,则蜂鸣器发出不连续报警声,如果两者间距小于25厘米,蜂鸣器所发出的报警频率就会立即升高,相邻两次蜂鸣声的间隔时间会更短,同时,由于距离的变化,二极管发光报警灯也会以此时的蜂鸣频率作为自身的闪烁频率开始更快地不连续闪光。其中,系统的核心就是主控器制器模块,它要处理来自超声波传感器、按键等的信号,并对信息进行处理[8],再将控制信号传递给蜂鸣器报警模块和数码管显示模块,总设计方框图如图7所示。
在这里插入图片描述

图7 系统总设计方框图

#include <reg52.h>	         //调用单片机头文件
#define uchar unsigned char  //无符号字符型 宏定义	变量范围0~255
#define uint  unsigned int	 //无符号整型 宏定义	变量范围0~65535
#include <intrins.h>
uchar a_a;

//数码管段选定义    0    1    2    3    4    5 	6	 7	  8	   9	
uchar code smg_du[]={0x28,0xee,0x32,0xa2,0xe4,0xa1,0x21,0xea,0x20,0xa0,
				  	 0x60,0x25,0x39,0x26,0x31,0x71,0xff};	 //断码

uchar dis_smg[8]   ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};

//数码管位选定义
sbit smg_we1 = P3^4;	    //数码管位选定义
sbit smg_we2 = P3^5;
sbit smg_we3 = P3^6;
sbit smg_we4 = P3^7;

sbit c_send   = P3^2;		//超声波发射
sbit c_recive = P3^3;		//超声波接收

sbit beep = P2^3;   //蜂鸣器IO口定义
uchar smg_i = 3;    //显示数码管的个位数
bit flag_300ms ;

long distance;	        //距离
uint set_d;	            //距离
uchar flag_csb_juli;    //超声波超出量程
uint  flag_time0;       //用来保存定时器0的时候的

uchar menu_1;           //菜单设计的变量

/***********************1ms延时函数*****************************/
void delay_1ms(uint q)
{
	uint i,j;
	for(i=0;i<q;i++)
		for(j=0;j<120;j++);
}

/***********************处理距离函数****************************/
void smg_display()
{
	dis_smg[0] = smg_du[distance % 10];
	dis_smg[1] = smg_du[distance / 10 % 10];
	dis_smg[2] = smg_du[distance / 100 % 10] & 0xdf; ;	
}

/**************把数据从单片机内部eeprom中读出来*****************/
void read_eeprom()
{
	set_d  = byte_read(0x2001);
	set_d <<= 8;
	set_d  |= byte_read(0x2000);
	a_a      = byte_read(0x2058);
}

/**************开机自检eeprom初始化*****************/
void init_eeprom()
{
	read_eeprom();		//先读
	if(a_a != 1)		//新的单片机初始单片机内问eeprom
	{
		set_d = 50;
		a_a = 1;
		write_eeprom();	   //保存数据
	}	
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16637.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试24K字节测试开发岗被血虐,到底具有怎样的技术才算高级水平?

前几天我朋友跟我吐苦水&#xff0c;这波面试又把他打击到了&#xff0c;做了6年软件测试。。。 下面这条招聘是在腾讯招聘官网截图下来的&#xff0c;首先我们对高级水平下一个定义吧&#xff0c;那它应该是对标这个职级该有的能力 什么样的工程师才能算高级&#xff1f;至少…

《数据库的原理与应用》--用两种方法实现S-T数据库创建

一、实验目的 复习数据库的定义&#xff0c;用两种方法实现S-T数据库创建&#xff1b;用两种方法创建数据库表&#xff0c;最后为数据库中的三个表增加数据&#xff1b;分离数据库和备份数据库。数据库表为&#xff1a; 学生表&#xff1a;Student(Sno,Sname,Ssex,Sage,Sdept…

Django ORM 多表操作:一对一、一对多、多对多的增删改,基于对象/双下划线的跨表查询

Django model ORM数据表相关操作 分析思路&#xff0c;创建数据表 对于表操作&#xff0c;表之间的关联关系&#xff0c;必须理解他们之间的关系&#xff0c;对于编程很重要。可以看看映射关系、外键和relationship查询 &#xff0c;至少明白外键相关基本知识。 &#xff08…

App Languages 批量导入管理Android多语言文案

AppLanguages支持安卓的多语言文案管理啦&#xff0c;支持批量的检测&#xff0c;批量导入&#xff0c;批量删除&#xff0c;批量替换&#xff0c;批量导出。 操作界面 批量导入 1&#xff09;需要选择res文件夹的路径&#xff0c;方便创建和寻找本地的多语言文件 2&#xff…

ui界面的介绍

创建一个项目时默认选择带有ui界面&#xff0c;ui界面的作用是方便设计者设计功能。 ui界面常见的功能&#xff1a; 方便对象的创建&#xff0c;拖入到窗口中即可方便布局&#xff0c;可以直接使用布局对控件进行修饰方便制作信号&#xff0c;通过转到槽的机制&#xff0c;快速…

Cesium 入门(一)无服务 Cesium 环境

Cesium 入门&#xff08;一&#xff09;无服务环境 一、无服务环境下的 Cesium 无网络环境下的静态 cesium 地图服务&#xff0c;cesium 1.98.1 已经支持无 token 情况下的地图显示&#xff0c;默认 token 可用来展示 3d 地图&#xff0c;老版本 cesium&#xff0c;需自行前往…

Golang入门笔记(15)—— 数组

编程的世界中&#xff0c;或许是因为一次一次的定义变量&#xff0c;维护管理起来都太费劲了&#xff0c;所以推出了数组&#xff0c;将数据用数组的形式管理起来。 参考代码&#xff1a; package mainimport "fmt"func main() {var scores [5]intscores[0] 90sco…

RabbitMQ基础

文章目录一. Hello World二. Work Queues三. 消息应答1. 自动应答2. 手动应答3. 批量应答4. 消息自动重新入队四. 持久化1. 实现队列持久化2. 实现消息持久化五. 消息不公平分发1. 配置不公平分发2. 预取值六. 发布确认1. 发布确认原理2. 开启发布确认3. 单个发布确认4. 批量发…

DOM介绍及DOM获取元素的方式

1、DOM介绍 DOM&#xff08;Document Object Model&#xff09;&#xff1a;文档对象模型其实就是操作html中的标签的一些能力我们可以操作哪些内容○ 获取一个元素 ○ 移除一个元素 ○ 创建一个元素 ○ 向页面里面添加一个元素 ○ 给元素绑定一些事件 ○ 获取元素的属性 ○ …

Hive集群部署实验

目录一、实验介绍1.1 实验内容1.2 实验知识点1.3 实验环境1.4 实验资源1.5 实验步骤清单二、实训架构三、实验环境准备四、实验步骤4.1 Hive部署4.1.1 安装Hive4.1.3 修改hive配置文件4.1.4 创建Hadoop测试目录4.1.5 初始化hive元数据库4.2 Hive测试4.2.1 启动Hive4.2.2 创建测…

pytorch的gpu版本安装以及cpu版本的卸载

目录 前言 一、安装显卡驱动 二、安装Visual Studio 2019 三、安装CUDA 四、安装cudnn 五、安装anaconda 六、安装PyTorch 前言 因为最近需要导师的指导&#xff0c;我开始了unet的学习&#xff0c;虽然之前也学习过机器学习&#xff0c;但是只是浅尝辄止&#xff0c;没…

你好,以太坊社区,你准备好参加 ETH India 2022 黑客马拉松活动了吗

你好&#xff0c;以太坊社区&#xff0c;我们很高兴通过 ETH Global即将举行的ETH India 2022 黑客马拉松活动将Cartesi 技术带到亚洲&#xff01;如果你是一位喜欢探索尖端技术且是一位创新型开发人员&#xff0c;我们期待着你的到来&#xff0c;并且想帮助你将美好的DApps 发…

[BLIP]-多模态Language-Image预训练模型

论文&#xff1a;https://arxiv.org/pdf/2201.12086.pdf 代码&#xff1a;GitHub - salesforce/BLIP: PyTorch code for BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation demo&#xff1a;BLIP - a Hugging Face …

代码随想录算法训练营第二天|LeetCode 977.有序数组的平方 、209.长度最小的子数组 、59.螺旋矩阵II

LeetCode 977.有序数组的平方 题目链接&#xff1a;977.有序数组的平方 思路&#xff1a; 1、先对每个数进行遍历平方&#xff0c;并插入新的容器中 2、对容器进行排序&#xff0c;返回就可以了 缺陷&#xff1a;开辟了新的容器空间 class Solution { public:vector<int…

2019年1+X 证书 Web 前端开发中级理论考试题目原题+答案——第二套

&#x1f4da;文章目录 &#x1f3af;关于1X标准 &#x1f3af;关于中级考点 ⏩&#x1f4bb;答案速查 一、单选题&#xff08;每小题2分&#xff0c;共30小题&#xff0c;共60分&#xff09; 二、多选题&#xff08;每小题2分&#xff0c;共15小题&#xff0c;共30分&…

测试工程师必备的数据库知识

测试工程师必备的数据库知识 1. 数据库的重要性 数据库是一个容器&#xff0c;仓库存的是货物&#xff0c;而数据库存的是数据。数据很好的解决了数据到哪里去&#xff0c;以及数据从哪里来的问题。 2. 数据库工具的选择 选择数据库是根据项目特点&#xff0c;架构&#xff0c;…

枚举类与注解(复习)

枚举类的使用 枚举类的使用如何自定义枚举类枚举类中的方法注解 Annotation自定义注解jdk 中四个元注解RetentionTargetDocumentedInheritedJdk 8 中注解新特性可重复注解 Repeatable类型注解类的对象只有有限个&#xff0c;确定的 星期&#xff1a;Monday(星期一)、…、Sunday…

为什么学3D建模前没人告诉我这些,常见问题答疑

1️⃣入门前建模新手要做好哪些准备❓ 一开始啥都不懂先别着急学&#xff0c;先刷刷Pinterest&#xff0c;ArtStation等业内比较知名的网站&#xff0c;多看优秀作品提高审美水平&#xff0c;这样能快速了解建模行业&#xff0c;到时上手操作也不至于脑袋空空没有想法&#xf…

C语言-数据类型

C语言-数据类型0. 概念表达式与语句字面量常量表达式/表达式1. 整型有符号/无符号进制数原码/补码/反码int/charfloat/double2. 字符型字符型与整型字符与进制数/字符型进制数putchar/getchar转义字符字符集与字符编码C语言字符串型puts/getsprintfscanf3. 数据运算/IO基本运算…

计算机SSM毕设项目 软件工程毕业设计【源码+论文】

文章目录前言 题目1 : 基于SSM的游戏攻略资讯补丁售卖商城 <br /> 题目2 : 基于SSM的疫情期间医院门诊网站 <br /> 题目3 : 基于SSM的在线课堂学习设计与实现<br /> 题目4 : 基于SSM的大学生兼职信息系统 <br /> 题目5 : 基于SSM的大学生社团管理系统 …