【毕业设计】56-辅助驾驶系统的视觉检测\超声波\图像识别\装置研究与设计(原理图工程、仿真工程、低重复率设计文档、答辩PPT、开题报告)

【毕业设计】56-辅助驾驶系统的视觉检测\超声波\图像识别\装置研究与设计(原理图工程、仿真工程、低重复率设计文档、答辩PPT、开题报告)

资料要求

包含此题目毕业设计全套资料:
1.原理图工程文件及截图
2.仿真模型工程文件及截图、视觉仿真截图
3.低重复率文档
4.英文文献及翻译
5.答辩PPT
6.开题报告
7.任务书
8.论文相关流程图源文件

任务书

根据项目需求选择合适的处理器,要求使用摄像头完成车辆周围的图像采集,且根据车辆周边的雷达采集完成在图像项的标记,用以提醒驾驶者正确把握障碍物离车辆的距离。
要求:
1、确定系统总体设计方案,给出设计方案的结构框图;
2、利用图像处理软件完成图形的基本雷达显示与距离提示等;
3、基本软件的使用和编程;
4、对所设计的系统进行仿真调试,系统所需的设计功能。

设计说明书

摘要

本设计辅助驾驶系统的视觉检测装置研究与设计,针对于当前车辆交通工具中的安全辅助驾驶系统作出改进与研究。通过使用多传感器方式实现辅助驾驶系统,本次设计选择使用了超声波传感器已经摄像头传感器作为核心传感器件,不仅可以对交通道路中的车辆信息识别,还可以对前后车辆的间距安全行驶进行预测保证驾驶人员的安全。系统在设计与实际测试上均使用EDA软件对系统设计与验证,AD软件绘制原理图、Keil软件编写程序代码、Proteus搭建仿真电路与功能测试,最后通过仿真实现系统的目标识别与跟踪功能以及超声波测距与报警预警的功能。

设计框架架构

在这里插入图片描述前 言 1
第一章 绪论 2
第一节 研究背景 2
第二节 国内外研究情况 3
第三节 本文主要的研究内容 4
第四节 本章小节 5
第二章 辅助驾驶系统方案设计 6
第一节 超声波测距原理 6
一、时间误差 6
二、超声波传播速度误差 6
三、超声波传感器温度影响误差 7
第二节 摄像头工作原理 8
第二节 辅助驾驶视觉检测系统功能分析 12
第三节 方案设计框架确定 12
第四节 本章小结 13
第三章 辅助驾驶系统电路设计 14
第一节 单片机最小系统电路设计 14
一、单片机介绍 14
二、单片机最小系统设计 16
第二节 按键电路设计 17
第二节 超声波测距电路设计 17
第三节 蜂鸣器报警电路设计 18
第四节 LCD1602电路设计 19
第五节 温度传感器电路设计 21
第六节 摄像头电路设计 21
第六节 总电路设计 23
第七节 本章小结 24
第四章 辅助驾驶系统软件设计 25
第一节 Keil软件介绍 25
第一节 软件总流程设计 25
第二节 超声波测距流程设计 27
一、超声波测距流程逻辑设计 27
二、超声波测距源码 28
第三节 按键检测流程设计 30
第四节 LCD1602显示流程设计 31
一、LCD1602显示流程逻辑设计 31
二、LCD1602显示源码 32
第五节 摄像头图像采集流程设计 33
第六节 本章小结 35
第五章 辅助驾驶系统仿真实现 36
第一节 仿真软件介绍 36
第二节 仿真电路搭建 37
一、静态调试 37
二、系统综合调试 38
第三节 仿真功能测试 39
一、视觉检测识别仿真 39
二、超声波测距检测仿真 41
第四节 本章小结 45
总 结 46
致 谢 47
参考文献 48
附 录 50
一、英文原文 50
二、英文翻译 54
三、工程图纸 57
四、源代码 58

设计说明书及设计文件

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

源码展示

#include <REGX51.H>
#include <stdio.h>
#include<intrins.h>
#define uint   unsigned int;
#define uchar unsigned char
sbit DQ=P2^4;		//ds18b20 端口
sbit k2=P3^6;
sbit k1=P3^5;
sbit csbint=P3^2;	//ECHO
sbit csb=P2^5;		//TRIG
sbit fmq=P3^3;		//蜂鸣器
sbit bg=P2^6;		//液晶屏背光控制
sbit EN = P2^2;	  //定义液晶屏定义端口 
sbit RW = P2^1;	  //定义液晶屏定义端口
sbit RS = P2^0;   //定义液晶屏定义端口 
#define EN_CLR EN=0
#define EN_SET EN=1
#define RS_SET RS=1
#define RS_CLR RS=0 
#define RW_SET RW=1
#define RW_CLR RW=0 
unsigned char bb[11]={' ',' ',' ',' ','.',' ',' ',' ',' ',' ',};
unsigned char cc[]={'A','.','A','A','m'};
unsigned char aa[]={' ',' ','D','i','s','t','a','n','c','e',':'};	   //Distance
unsigned int dz,k,s,j,bgz,k;	
unsigned char zf,a1,a2,a3,xs,e,n,m,z; //zf 温度正负标志位;a1,a2,a3,按键设定程序中定值的米、分米、厘米临时存储变量 xs,e 用于按键程序中设定位闪动显示的变量;flag,未用,n,是背光控制标志位变量;m,z;
                                    
float temperature,csbc,wdz;
int temp;
bit wh;
/*------------------------------------------------
                  函数声明
------------------------------------------------*/
unsigned int ReadTemperature(void);
unsigned char ReadOneChar(void);
bit Init_DS18B20(void);
void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s);
void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data);
void WriteOneChar(unsigned char dat);
void write_data(unsigned char date);
void init();
void write_com(unsigned char com);
void DelayMs(unsigned char t);
void DelayUs2x(unsigned char t);
/*------------------------------------------------
 mS延时函数,含有输入参数 unsigned char t,无返回值
 unsigned char 是定义无符号字符变量,其值的范围是
 0~255 这里使用晶振12M,精确延时请使用汇编
------------------------------------------------*/
void DelayMs(unsigned char t)	//大致延时1mS
{
  	while(t--) 		
 	{
     	DelayUs2x(245);		 
	 	DelayUs2x(245);
 	}
}
/*------------------------------------------------
这里使用晶振12M,精确延时请使用汇编,大致延时
 长度如下 T=tx2+5 uS  uS延时函数,含有输入参
 数 unsigned char t,无返回值 unsigned char 
 是定义无符号字符变量,其值的范围是
 0~255 
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{   
 	while(--t);
}
/*------------------------------------------------
                    18b20初始化
------------------------------------------------*/
/*------------------------------------------------
                    读取一个字节
------------------------------------------------*/
unsigned char ReadOneChar(void)
{
	unsigned char i=0;
	unsigned char dat = 0;
	for (i=8;i>0;i--)
 	{
  		DQ = 0; 			// 给脉冲信号
  		dat>>=1;
  		DQ = 1; 			// 给脉冲信号
  		if(DQ)
   		dat|=0x80;
  		DelayUs2x(25);
 	}
 	return(dat);
}
bit Init_DS18B20(void)
{
	bit dat=0;
	DQ = 1;    				//DQ 复 位
 	DelayUs2x(5);   		// 稍做延时
 	DQ = 0;         		//单片机将 DQ 拉低
 	DelayUs2x(200); 		//精确延时大于480us小于960us
 	DelayUs2x(200);
 	DQ = 1;        			//拉高总线
 	DelayUs2x(50); 			//15~60us 后接收60-240us的存在脉冲
 	dat=DQ;        			//如果x=0则初始化成功, x=1则初始化失败
 	DelayUs2x(25); 			//稍作延时返回
 	return dat;
}

猜你喜欢

转载自blog.csdn.net/cqtianxingkeji/article/details/135011970
今日推荐