【Proteus仿真】【51单片机】汽车尾灯控制设计

文章目录


一、功能简介

本项目使用Proteus8仿真51单片机控制器,使用按键、LED模块等。

主要功能:

系统运行后,系统运行后,系统开始运行,K1键控制左转向灯;K2键控制右转向灯;K3键控制紧急情况灯;K4键控制刹车指示灯。


二、软件设计

c 复制代码
/*
作者:嗨小易(QQ:3443792007)

*/


//系统数据设定
void sys_data_set(void)
{
	u8 key=0;

	key=key_scan(0);
	//左转
	if(key==KEY1_PRESS)
	{
		sys_ctrl.mode[0]=!sys_ctrl.mode[0];
		if(sys_ctrl.mode[0]==1)//打开
		{
			sys_ctrl.mode[1]=0;sys_ctrl.mode[2]=0;sys_ctrl.mode[3]=0;
			sys_ctrl.cnt=0;
			LED=0XF7;TR0=1;//打开定时器	
		}
	}
	//右转
	else if(key==KEY2_PRESS)
	{
		sys_ctrl.mode[1]=!sys_ctrl.mode[1];
		if(sys_ctrl.mode[1]==1)//打开
		{
			sys_ctrl.mode[0]=0;sys_ctrl.mode[2]=0;sys_ctrl.mode[3]=0;
			sys_ctrl.cnt=0;
			LED=0XEF;TR0=1;//打开定时器	
		}
	}
	//紧急
	else if(key==KEY3_PRESS)
	{
		sys_ctrl.mode[2]=!sys_ctrl.mode[2];
		if(sys_ctrl.mode[2]==1)//打开
		{
			sys_ctrl.mode[0]=0;sys_ctrl.mode[1]=0;sys_ctrl.mode[3]=0;
			sys_ctrl.cnt=0;
			LED=0X00;TR0=1;//打开定时器	
		}
	}
	//刹车
	else if(key==KEY4_PRESS)
	{
		sys_ctrl.mode[3]=!sys_ctrl.mode[3];
		if(sys_ctrl.mode[3]==1)//打开
		{
			sys_ctrl.mode[0]=0;sys_ctrl.mode[1]=0;sys_ctrl.mode[2]=0;
			sys_ctrl.cnt=0;
			LED=0X00;	
		}
	}
}

//系统功能控制
void sys_fun_ctrl(void)
{
	if(sys_ctrl.mode[0]==0 && sys_ctrl.mode[1]==0 && sys_ctrl.mode[2]==0 && 
		sys_ctrl.mode[3]==0)
	{
		sys_parm_init();
		LED=0XFF;TR0=0;//关闭定时器	
	}
}


//应用控制系统
void appdemo_show(void)
{
	sys_parm_init();//系统参数初始化
	time0_init();

	while(1)
	{
		sys_data_set();//系统数据设定
		sys_fun_ctrl();//系统功能控制				
	}
}

void time0() interrupt 1 //定时器0中断函数
{
	static u8 msec=0;
		
	TH0=0XDC;	//给定时器赋初值,定时10ms
	TL0=0X00;
	msec++;//10ms加1次
	if(msec>=30)
	{
		msec=0;
		//LED左转
		if(sys_ctrl.mode[0]==1)
		{
			sys_ctrl.cnt++;
			LED=(0XF7>>sys_ctrl.cnt)|0xF0;	
			if(sys_ctrl.cnt>=4)
			{
				LED=0XF7;sys_ctrl.cnt=0;	
			}
		}
		//LED右转
		else if(sys_ctrl.mode[1]==1)
		{
			sys_ctrl.cnt++;
			LED=(0XEF<<sys_ctrl.cnt)|0x0F;	
			if(sys_ctrl.cnt>=4)
			{
				LED=0XEF;sys_ctrl.cnt=0;	
			}
		}
		//LED紧急
		else if(sys_ctrl.mode[2]==1)
		{
			LED=~LED;	
		}
	}					
}

三、实验现象

B站演示视频:https://space.bilibili.com/444388619



联系作者

视频地址:https://space.bilibili.com/444388619/video

专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

相关推荐
小龙报3 分钟前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
范纹杉想快点毕业5 分钟前
嵌入式与单片机开发核心学习指南——从思维转变到第一性原理的深度实践
单片机·嵌入式硬件
Industio_触觉智能9 分钟前
瑞芯微RK3566开发板规格书,详细参数配置,型号EVB3566-V1,基于RK3566核心板SOM3566邮票孔封装
嵌入式硬件·开发板·rk3568·rk3566·核心板·瑞芯微
czwxkn27 分钟前
4STM32(stdl)TIM定时器
stm32·单片机·嵌入式硬件
Love Song残响41 分钟前
NVIDIA显卡终极优化指南
stm32·单片机·嵌入式硬件
qq_672592751 小时前
电源芯片为什么发热
单片机·嵌入式硬件
天天爱吃肉82181 小时前
【跨界封神|周杰伦×王传福(陶晶莹主持):音乐创作与新能源NVH测试,底层逻辑竟完全同源!(新人必看入行指南)】
python·嵌入式硬件·算法·汽车
国科安芯2 小时前
抗辐照MCU在精密时频系统中的单粒子效应评估与可靠性验证
单片机·嵌入式硬件·架构·制造·安全性测试
森焱森2 小时前
嵌入式硬件工程师应知 白银快速分析报告
linux·c语言·arm开发·嵌入式硬件·去中心化
BackCatK Chen12 小时前
第 8 篇:TMC2240 电机正反转实现|DIR 引脚控制 + 代码优化(稳定不抖动)
stm32·单片机·嵌入式硬件·保姆级教程·电机正反转·tmc2240·dir引脚控制