当前位置: 首页 > news >正文

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

目录

一、主要功能

二、硬件资源

三、程序编程

四、实现现象


一、主要功能

本课题基于微控制器控制器, 设计一款汽车倒车防撞报警器系统。
要求:
要求:1.配有距离, 用于把车和障碍物之间的距离信号送入控制器。
2.配有报警系统, 用于车离障碍物太近时及时报警。
3.配有键盘,用于设置安全距离;

二、硬件资源

基于KEIL5编写C++代码,PROTEUS8.15进行仿真,全部资源在页尾,提供安装包。

三、程序编程

#include <REGX52.H>
#include<intrins.h>
#include<stdio.h>
#include "Delay.h"
#include "LCD1602.h"
#include "MatrixKey.h"
#define uchar unsigned char
#define uint unsigned  int
typedef unsigned char u8;
typedef unsigned int  u16;
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;sbit Tr=P3^0;//触发信号
sbit Ec=P3^1;//回响信号
sbit led = P3^2;
sbit beep=P2^7;
uchar Recv_Buffer[4];
uint Voltage[]={'0','0','0','0'};
bit bdata IIC_ERROR;unsigned int distance;
static unsigned char num;
unsigned char KeyNum;unsigned int Read_value(void);//读值函数
unsigned int password,count; //初始化阈值,一共三位
unsigned int jlyz;
static int flag = 0;void Delay10us(void);//10us延时函数
void cslsz(void);void Time0_Init()          //定时器初始化
{TMOD = 0x01;TH0 = 0x00;TL0 = 0x00;TR0 = 0;//先关闭定时器0
}void Time0_Int() interrupt 1 //中断程序
{TH0  = 0xfe;             //重新赋值TL0  = 0x33;
}unsigned int Read_value()
{uint result;Tr=1;//触发引脚发出11us的触发信号(至少10us)Delay10us();Tr=0;while(!Ec);//度过回响信号的低电平TR0=1;//开启定时器0while(Ec);//度过回响信号高电平TR0=0;//关闭定时器0result=((TH0*256+TL0)*0.034)/2;		// 距离cm=(时间us * 速度cm/us)/2return result + 2;	//+2修正补偿	
}void main()					  //主函数
{	uchar u;Tr=0;//出发引脚首先拉低LCD_Init();         //显示屏初始化Time0_Init();	   //定时初始化beep = 0;LCD_ShowString(1,1,"-----kaiji-----");Delay(1000);LCD_Init();LCD_ShowString(1,1,"yuzhi:");LCD_ShowString(2,1,"distance:");led = 0;while(1){Delay(200);cslsz();//按键判断distance = Read_value();//读值LCD_ShowNum(2,10,distance,3);if(flag == 1) //判断{if(distance < jlyz){beep = 1;led = 1;}else{beep = 0;led = 0;}}}
}void cslsz()//按键判断
{KeyNum = MatrixKey();//键盘输入的值进行传递if(KeyNum){		if(KeyNum <= 10) //把按键的范围定义在0~9{			if(count < 3){password*=10; //左移一位password += KeyNum % 10;count++;    //计次++}LCD_ShowNum(1,7,password,3); //LCD更新显示}	//确认键if(KeyNum == 11) //把11表示确认,对阈值进行确认{LCD_ShowNum(1,7,password,3); //LCD更新显示jlyz = password;flag = 1;}		//取消键if(KeyNum == 12){password = 0;flag = 0;count = 0;LCD_ShowNum(1,7,password,3); //LCD更新显示}if(KeyNum == 13){}		if(KeyNum == 14){}	if(KeyNum == 15){}	if(KeyNum == 16){}}	
}void Delay10us()
{TL0=0xF5;TH0=0xFF;TR0=1;while (TF0==0);TR0=0;TF0=0;
}

四、实现现象

具体动态效果看B站演示视频:

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

全部资料(源程序、仿真文件、安装包、演示视频):

百度网盘资料下载

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【SpinalHDL】Scala编程之伴生对象
  • 《C++移动语义:解锁复杂数据结构的高效之道》
  • 『功能项目』QFrameWork更新道具图片UGUI【71】
  • 哈希简单介绍
  • 连续数组问题
  • CSS3 多媒体查询
  • 网关过滤器(Gateway Filter)
  • 【webpack4系列】设计可维护的webpack4.x+vue构建配置(终极篇)
  • 41. 如何在MyBatis-Plus中实现批量操作?批量插入和更新的最佳实践是什么?
  • 解决DockerDesktop启动redis后采用PowerShell终端操作
  • C++初阶-list用法总结
  • 免费在线压缩pdf 压缩pdf在线免费 推荐简单好用
  • 【CTF】Nginx日志注入
  • 【算法题】63. 不同路径 II-力扣(LeetCode)-”如果起点有障碍物,那么便到不了终点“
  • WebGL颜色与纹理
  • 收藏网友的 源程序下载网
  • CSS魔法堂:Absolute Positioning就这个样
  • docker容器内的网络抓包
  • python 学习笔记 - Queue Pipes,进程间通讯
  • React Transition Group -- Transition 组件
  • React组件设计模式(一)
  • SAP云平台里Global Account和Sub Account的关系
  • Vue2 SSR 的优化之旅
  • WePY 在小程序性能调优上做出的探究
  • 搞机器学习要哪些技能
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 小程序01:wepy框架整合iview webapp UI
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 正则表达式-基础知识Review
  • ​TypeScript都不会用,也敢说会前端?
  • # Kafka_深入探秘者(2):kafka 生产者
  • ## 基础知识
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #define 用法
  • (二)Linux——Linux常用指令
  • (计算机网络)物理层
  • (理论篇)httpmoudle和httphandler一览
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .Net mvc总结
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net6Api后台+uniapp导出Excel
  • .NET开发人员必知的八个网站
  • .NET学习教程二——.net基础定义+VS常用设置
  • .NET中使用Protobuffer 实现序列化和反序列化
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • @RequestParam,@RequestBody和@PathVariable 区别
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • []FET-430SIM508 研究日志 11.3.31
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器