文章目录
- 一、功能简介
- 二、软件设计
- 三、实验现象
- 联系作者
一、功能简介
本项目使用Proteus8仿真51单片机控制器,使用按键、LED模块等。
主要功能:
 系统运行后,系统运行后,系统开始运行,K1键控制左转向灯;K2键控制右转向灯;K3键控制紧急情况灯;K4键控制刹车指示灯。
二、软件设计
/*
作者:嗨小易(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;	//给定时器赋初值,定时10msTL0=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设计,视频分享,技术交流。