加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

基于51单片机汽车智能灯光控制系统设计

08/05 08:59
743
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
相关方案
  • 方案介绍
  • 相关文件
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

仿真图proteus 7.8

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:C0049

硬件构成:
51单片机
LCD1602液晶
光敏电阻
超声波
ADC0832
LED灯

功能介绍

1.按键说明:从左边第一个起,减键、加键、设置键。单独一个控制为复位按键。

2.LCD1602液晶第一行显示超声波的距离,第二行显示光线的强弱。

3.可以设定超声波和光敏的下限值,并具有掉电保存功能,数据保存在STC单片机的内部。

4.用光敏传感器测光线亮度,低于设置值时自动开启灯光。

5.用超声波测距离,低于设置值时自动将远光灯变成近光灯,大于设置值时又会自动变换成远光。

硬件设计

根据本次设计的要求,设计出一款基于51单片机的自动切换远近光灯的设计。所以本次设计硬件部分,中央处理器采用了STC89C52RC单片机,另外使用两个灯珠代表远近光灯,感光部分采用了光敏电阻,因为光敏电阻输出的是电压模拟信号,单片机不能直接处理模拟信号,所以经过ADC0832进行转化成数字信号,还有显示部分采用了LCD1602液晶,还增加按键部分电路,可以选择手自动切换远近光灯,最后还是用了超声模块进行检测距离。

img

img

img

仿真图

img

img

img

原理图

img

源程序:

img

显示函数

void display()	//显示函数
 {
   if(state==0)	   //如果是非设置状态
   {
	   LCD1602_write(0,0x80); //第一行
	   LCD1602_writebyte("distance:"); //显示距离
	   if(S>99) LCD1602_write(1,0x30+S/100%10);
	   else LCD1602_writebyte(" ");
	   if(S>9) LCD1602_write(1,0x30+S/10%10);
	   else LCD1602_writebyte(" ");
	   LCD1602_write(1,0x30+S%10);
	   LCD1602_writebyte("cm   ");
	
	   LCD1602_write(0,0xC0);		//第二行
	   LCD1602_writebyte("light:");	 //显示光照强度
	   if(light>99) LCD1602_write(1,0x30+light/100%10);
	   else LCD1602_writebyte(" ");
	   if(light>9) LCD1602_write(1,0x30+light/10%10);
	   else LCD1602_writebyte(" ");
	   LCD1602_write(1,0x30+light%10);
	   LCD1602_writebyte("%        ");
   }
   else	  //设置状态
   {
   	   LCD1602_write(0,0x80);  //第一行
	   LCD1602_writebyte("dis_set:");  //设置距离
	   if(state==1&&s0)	LCD1602_writebyte("   ");	//闪烁效果
	   else
	   {
		   if(S_set>99) LCD1602_write(1,0x30+S_set/100%10);
		   else LCD1602_writebyte(" ");
		   if(S_set>9) LCD1602_write(1,0x30+S_set/10%10);
		   else LCD1602_writebyte(" ");
		   LCD1602_write(1,0x30+S_set%10);
	   }
	   LCD1602_writebyte("cm   ");
	
	   LCD1602_write(0,0xC0);	
	   LCD1602_writebyte("lig_set:"); //设置光照
	   if(state==2&&s0)	LCD1602_writebyte("   ");
	   else
	   {
		   if(light_set>99) LCD1602_write(1,0x30+light_set/100%10);
		   else LCD1602_writebyte(" ");
		   if(light_set>9) LCD1602_write(1,0x30+light_set/10%10);
		   else LCD1602_writebyte(" ");
		   LCD1602_write(1,0x30+light_set%10);
	   }
	   LCD1602_writebyte("%        ");
   }
 }

光照处理

void AD_dispose()	 //光照处理
{
	if(ad_count<10)		//读十次光照数据,取平均值,起到滤波的作用
	{
		ad_dat+=A_D(1);
		ad_count++;
	}
	else
	{
	   light=ad_dat/10;
	   light=(light*100)/255; //最大是255,所以这里扩大100倍除以255,可以得到百分比数据
	   ad_count=0;
	   ad_dat=0;
	}
}

main函数

void main()
 {  
   interrupt_int();	//调用定时器初始化函数
   LCD1602_cls();  //调用1602初始化函数
   read_memory();  //调用读存储
   init_measuring(); //调用超声波相应端口初始化
   while(1)
    {
	  display();  //显示函数
	  if(ir_ok)
	   {
	    ir_ok=0;
		 trigger(); //触发超声波启动
		 
		while(echo==0) //等待回声&&TH0<200
		{
		;	
		}	
		measuring(); //进行距离测量
		init_measuring(); //超声波相应端口初始化
		 
	   }
	   if(memory_flag) //如果存储标志位是1
	   {
	   	memory_flag=0;	//清0,
		memory();	   //执行一次存储函数
	   }
	   if(A_M)	  //如果是自动状态
	   {
	   	led1=0;	   //自动模式指示灯点亮
		led2=1;
		police(); //执行自动处理函数
	   }
	   else	  //否则
	   {
	   	led2=0;	 //手动指示灯点亮
		led1=1;
	   }
	   AD_dispose(); //调用AD处理函数
	   switch(beam)	//根据beam的值,切换远近光灯状态
	   {
	   	case 0:LED_1=1;LED_2=1;break;  //关闭
		case 1:LED_1=1;LED_2=0;break;	//近光
		case 2:LED_1=0;LED_2=1;break;  //远光
	   }
	}
 }

器件清单:

img

设计说明书:

设计背景

随着日益成熟的交通网络的发展,汽车成为了人类出行不可缺少的交通工具。交通事故的频繁发生成为了人们日渐担忧的问题,人们更加关心汽车的安全性能。根据报道的数据显示,我国夜间发生的交通事故中,70%左右是由于违章使用氙气灯造成灯光炫目,使驾驶员无法看清前方路况而发生的。照明系统是汽车主动安全的重要组成部分之一,如今汽车前照灯灯光光型单一的传统照明系统已经无法跟上当前汽车安全性能发展的趋势;所以,为了减少交通事故的发生,考虑到汽车的人性化设计。本文采用 STC89C52 单片机设计了一款自动切换远近光的汽车前照灯系统。这种前照灯系统更加智能化,能消除存在的安全隐患。

目标、研究内容和技术要求

结合所学课程的基础专业知识和基本技能,熟悉单片机机其他硬件的相关知识,完成以下工作:

第一步,查阅资料,选择合适的硬件,确定硬件系统框图

第二步,使用AD画图;

第三步,画图程序流程图,并使用KEIL完成程序的编写。

第四步,调试。

实现功能

1、检测环境光强。

2、实现自动切换远近光灯。

3、增加手动切换远近光。

4、使用液晶显示实时数据

img

设计资料清单

全部资料

img

  • 设计资料获取联系方式.doc

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
DSPIC30F6014A-30I/PT 1 Microchip Technology Inc 16-BIT, FLASH, 30 MHz, RISC MICROCONTROLLER, PQFP80, 12 X 12 MM, 1 MM HEIGHT, PLASTIC, MS-026, TQFP-80

ECAD模型

下载ECAD模型
$12 查看
MK66FN2M0VLQ18 1 NXP Semiconductors FLASH, 180MHz, RISC MICROCONTROLLER, PQFP144

ECAD模型

下载ECAD模型
$48.66 查看
MK60DN512VMC10 1 Freescale Semiconductor Kinetis K 32-bit MCU, ARM Cortex-M4 core, 512KB Flash, 100MHz, Ethernet, MAPBGA 121
$10.69 查看

相关推荐

电子产业图谱