全套资料包含:Proteus仿真源文件+keil C语言源程序+AD原理图+流程图+元器件清单+说明书等
资料下载:↓↓↓
通过网盘分享的文件:资料分享
链接: 百度网盘 请输入提取码 提取码: tgnu
目录
项目功能:
1、跟车自动切换近光。即系统在开启远光时,同时在检测前方是否存在障碍物如车辆等,如果存在,即切换为近光灯。
2、在驾驶员拨动转向灯的同时,系统获得转向(路口)或超车信号,切换远近光提醒其他车辆。
3、夜间会车信号源来自检测对向光源,检测到光源较强,则提示系统执行夜间会车程序。
4、跟车自动切换近光。即系统在开启远光时,同时在检测前方是否存在障碍物如车辆等,如果存在,即切换为近光灯。
5、在驾驶员拨动转向灯的同时,系统获得转向(路口)或超车信号,切换远近光提醒其他车辆。
光强高于80,为白天,低于80为夜晚。光线强度在50-80之间视为有路灯补光
车距低于50,为近,高于50为远。单位自定义
车速低于50为慢,高于50为快。单位随便定义
项目文件:
一、Proteus仿真源文件

二、AD原理图文件

二、报告说明书
三、系统流程图
四、器件清单
| 元件 | 型号 | 数量 |
| 单片机 | AT89C51 | 1 |
| 电容 | 10uf | 1 |
| 电容 | 30pf | 2 |
| 晶振 | 12MHZ | 1 |
| 电阻 | 10k | 2 |
| 按钮 | 3 | |
| 超声波模块 | HC04 | 1 |
| 模数芯片 | ADC0832 | 1 |
| 电位器 | 1k | 1 |
| 光敏电阻 | 10k | 1 |
| 电阻 | 1k | 3 |
| 三极管 | PNP | 3 |
| 蜂鸣器 | 有源 | 1 |
| 显示器 | LCD1602 | 1 |
| 排阻 | 10k | 1 |
| 继电器 | 5V | 2 |
五、Keil c语言程序源代码(部分)
#include "lcd1602.h"
void delay_uint(uint i)
{
while(i--);
}
/********************************************************************
* 名称 : write_com(uchar com)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
***********************************************************************/
void write_com(uchar com)
{
e=0;
rs=0;
rw=0;
P0=com;
delay_uint(20);
e=1;
delay_uint(20);
e=0;
}
/********************************************************************
* 名称 : write_data(uchar dat)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
***********************************************************************/
void write_data(uchar dat)
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_uint(20);
e=1;
delay_uint(20);
e=0;
}
/********************************************************************
* 名称 : write_string(uchar hang,uchar add,uchar *p)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下
write_string(1,5,"ab cd ef;")
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void write_string(uchar hang,uchar add,uchar *p)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
while(1)
{
if(*p == '\0') break;
}
}
/********************************************************************
* 名称 : init_1602()
* 功能 : 初始化1602液晶
* 输入 : 无
* 输出 : 无
***********************************************************************/
void init_1602()
{
write_com(0x38); //数据总线为8位,显示2行,5x7点阵
write_com(0x0e); //开显示,有光标,光标闪烁
write_com(0x06); //光标自动右移
delay_uint(1000); //等待设置完成
}
六、全套资料包含
七:项目资源获取
需要完整的资料可以点击下面的名片关注,回复“资料”!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
1413

被折叠的 条评论
为什么被折叠?



