ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基于单片机倒车三路雷达控制报警系统设计-毕设课设资料

2021-02-21 17:01:45  阅读:205  来源: 互联网

标签:P2 毕设 课设 计数 RX 电路 单片机 while sbit


百度网盘下载地址(985):点击下载

摘    要

随着人们倒车安全意识不断提高,倒车雷达系统逐渐的完善,并得到了快速的发展。

同时在人们的生活中随处可见,一般没量机动车上都有安装有倒车雷达系统。本文主要为提高倒车雷达系统性能,本设计以单片机为核心,以多路雷达传感器采集多方位的数据进行无死角探测,并通过声光报警作为倒车障碍物检测警示。该系统的外围电路包含前端四路雷达检测电路、晶振电路、主控电路、复位电路、电源电路以及声光报警电路。根据各电路特点及系统要求编写了系统程序。最后,以系统原有电路和程序作为基础,设计了相应的仿真电路和仿真程序。Proteus仿真结果验证了该系统设计的可行性。

关键词:报警;单片机;雷达

#include "LCD1602DRV.h"                                 /* 导入液晶驱动 */
#include "STCEEPROM.h"                                  /* EEPROM库文件 */
sbit	RX1	= P3 ^ 3;                               /* 通道一 */
sbit	RX2	= P3 ^ 4;                               /* 通道二 */
sbit	RX3	= P3 ^ 5;                               /* 通道三 */
sbit	TX1	= P2 ^ 4;
sbit	TX2	= P2 ^ 5;
sbit	TX3	= P2 ^ 6;

sbit	LED1	= P2 ^ 0;                               /* LED1 */
sbit	LED2	= P2 ^ 2;                               /* LED2 */
sbit	SPEAK	= P2 ^ 3;                               /* 蜂鸣器 */

uint	time	= 0;                                    /* 时钟 */
uint	timer	= 0;
uint	S	= 0, S1 = 0, S2 = 0, S3 = 0, MIN = 0;   /* 采集值和最小值 */

bit flag = 0;                                           /* 标志位 */

/* 延时函数 */
void Conut( void )
{
	time	= TH0 * 256 + TL0;
	TH0	= 0;
	TL0	= 0;

	S = (time * 1.87) / 100;        /* 算出来是CM */
	if ( (S >= 700) || flag == 1 )  /* 超出测量范围显示“-” */
	{
		flag = 0;
	}
}


void main( void )
{
	uint SET_H = 90, SET_L = 30;
	LCD1602_Init();         /* 液晶初始化 */
	SetRowCol( 0, 0 );      /* 液晶初始化 */
	SPEAK = 0;              /* 蜂鸣器初始化 */

	printf( " 000  000  000 " );
	SetRowCol( 1, 0 );
	printf( "    MIN:   cm   " );
	TMOD	= 0x11;         /* 设T0为方式1,GATE=1; */
	TH0	= 0;
	TL0	= 0;
	TH1	= 0xf8;         /* 2MS定时 */
	TL1	= 0x30;
	ET0	= 1;            /* 允许T0中断 */
	ET1	= 1;            /* 允许T1中断 */
	TR1	= 1;            /* 开启定时器 */
	EA	= 1;            /* 开启总中断 */
	EA	= 0;

	EA = 1;

	while ( 1 )
	{
		while ( !RX1 )
			;       /* 当RX为零时等待 */
		TR0 = 1;        /* 开启计数 */
		while ( RX1 )
			;       /* 当RX为1计数并等待 */
		TR0 = 0;        /* 关闭计数 */
		Conut();
		S1 = S;
		/* /////////////////////////// */
		while ( !RX2 )
			;       /* 当RX为零时等待 */
		TR0 = 1;        /* 开启计数 */
		while ( RX2 )
			;       /* 当RX为1计数并等待 */
		TR0 = 0;        /* 关闭计数 */
		Conut();
		S2 = S;
		/* /////////////////////////// */
		while ( !RX3 )
			;       /* 当RX为零时等待 */
		TR0 = 1;        /* 开启计数 */
		while ( RX3 )
			;       /* 当RX为1计数并等待 */
		TR0 = 0;        /* 关闭计数 */
		Conut();
		S3 = S;
		/*
		 * ///////////////////////////////////
		 * 通道采集显示
		 */
		SetRowCol( 0, 1 );
		printf( "%3d", S1 );

标签:P2,毕设,课设,计数,RX,电路,单片机,while,sbit
来源: https://www.cnblogs.com/aiesst/p/14426378.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有