⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led.h

📁 客车车身控制模块 分为仪表部分 前控左 前控右 尾控和中控程序模块
💻 H
字号:
#define		hc595_din		  PTB_PTB5
#define		hc595_sclk		PTB_PTB7
#define		hc595_lclk		PTB_PTB6

sys_data_type	led_st0,led_st1,led_st2,led_st3;
sys_data_type	led_flag;

unsigned char	led_safety_timer;					//安全带指示灯工作计数器
unsigned int	led_warm_timer;						//预热计数器

#define 	light_fault		led_flag.Bit.BIT0		//灯光故障
#define 	cool_start		led_flag.Bit.BIT1		//冷启动
//#define		door_flag		led_flag.Bit.BIT2		//门状态
#define		safe_flag		led_flag.Bit.BIT3		  //安全带指示标志
#define   turn_flag   led_flag.Bit.BIT4

///////
#define led_right		led_st0.Bit.BIT7		//右转向灯
#define led_knees		led_st0.Bit.BIT6		//屈膝
#define led_fullbeam	led_st0.Bit.BIT5		//远光灯
#define led_door		led_st0.Bit.BIT4		//电动门
#define led_warm		led_st0.Bit.BIT3		//发电机预热
#define led_battery		led_st0.Bit.BIT2		//电池充放电
#define led_waterhot	led_st0.Bit.BIT1		//水温过热
#define led_delay		led_st0.Bit.BIT0		//缓速器

#define led_hbrake		led_st1.Bit.BIT7		//手制动灯
#define led_water		led_st1.Bit.BIT6		//水位
#define led_hrview		led_st1.Bit.BIT5		//后视镜加热
#define led_plow		led_st1.Bit.BIT4		//机油压力过低
#define led_aulub		led_st1.Bit.BIT3		//自动润滑
#define led_exshow		led_st1.Bit.BIT2		//排气制动指示
#define led_stop		led_st1.Bit.BIT1		//停止
#define led_fault		led_st1.Bit.BIT0		//灯光故障

#define led_air			led_st2.Bit.BIT7		//空气滤清堵塞
#define led_bgog		led_st2.Bit.BIT6		//后雾灯
#define led_left		led_st2.Bit.BIT5		//左转向灯
#define led_reverse		led_st2.Bit.BIT4		//倒车灯
#define led_brake1		led_st2.Bit.BIT3		//制动
#define led_brake2		led_st2.Bit.BIT2		//制动
#define led_brake3		led_st2.Bit.BIT1		//制动
#define led_abs			led_st2.Bit.BIT0		//ABS/防爆制动

//#define led_null		led_st3.Bit.BIT7
//#define led_null		led_st3.Bit.BIT6
#define led_asr			led_st3.Bit.BIT5		//ASR/防侧滑
#define led_null1		led_st3.Bit.BIT4		//NULL
#define led_null2		led_st3.Bit.BIT3		//NULL
#define led_null3		led_st3.Bit.BIT2		//NULL
#define led_safety		led_st3.Bit.BIT1		//安全带
#define led_power		led_st3.Bit.BIT0		//电源开关

////////////////////////////////////
//函数: void wr_hc595(unsigned char ch)
//描述: 写595一字节
//参数: 一字节的数
//返回值:none
////////////////////////////////////
static void wr_hc595(unsigned char ch)
{//高位在前
	unsigned char i;
	//hc595_lclk=0;
	for(i=0;i<8;i++)
	{
		hc595_sclk=0;
		asm(nop);
		if(ch&0x80)	hc595_din=1;
		else		hc595_din=0;
		ch<<=1;
		asm(nop);
		hc595_sclk=1;
		asm(nop);
	}
}
///////////////////////////////////
//函数: void wr_hc595_all(void)
//描述: 写595四字节
//参数: none
//返回值:none
////////////////////////////////////
void refresh_led(void)
{
	hc595_lclk=0;
	wr_hc595(led_st3.Byte);
	wr_hc595(led_st2.Byte);
	wr_hc595(led_st1.Byte);
	wr_hc595(led_st0.Byte);
	hc595_lclk=1;
}
///////////////////////////////////
//函数: void init_led(void)
//描述: 初始化
//参数: none
//返回值:none
////////////////////////////////////
void init_led(void)
{//全灭-----状态待定
	led_st0.Byte=0xff;
	led_st1.Byte=0xff;
	led_st2.Byte=0xff;
	led_st3.Byte=0xff;

	led_safety=0;					                  //安全带指示灯
	led_door=!(door1_flag || door2_flag);		//门指示灯

	refresh_led();
	
	safe_flag=1;					                  //安全带指示标志
	led_safety_timer=0;				              //安全带指示灯工作计数器
	
	light_fault=1;					                //灯光故障标志

	cool_start=0;					                  //冷启动标志
	led_warm_timer=0;				                //冷启动计数器
	__RESET_WATCHDOG();
}
/*	hc595_0	右转向灯,屈膝,远光灯,电动门,发电机预热,电池充放电,水温过热,缓速器
	hc595_1	手制动灯,水位,后视镜加热,机油压力过低,自动润滑,排气制动指示,停止,灯光故障
	hc595_2	空气滤清堵塞,后雾灯,左转向灯,倒车灯,制动,制动,制动,ABS/防爆制动
	hc595_3	N,N,ASR/防侧滑,N,N,N,安全带,电源开关*/

///////////////////////////////////
//函数: void led_status(void)
//描述: led状态变化
//参数: none
//返回值:none
////////////////////////////////////
void led_status(void){              //SGH_status,SGL_status,SP_status
	//右转向灯
	//if(SGL_status.Bit.BIT7||SGL_status.Bit.BIT5)		    led_right=0;//--亮
	//else												led_right=1;
		
	//屈膝
	if(CAN_QKYC1.Bit.BIT6==1 && CAN_QKYC1.Bit.BIT7==0)	led_knees=0;//--亮
	else												led_knees=1;
	
	//远光灯
	if(SGH_status.Bit.BIT2)								              led_fullbeam=0;//--亮
	else												led_fullbeam=1;
	
	//电动门---前或中门有一
	if(door1_flag || door2_flag)	                        led_door=0;//--亮
	else						            led_door=1;
	
	//发电机预热---冷启动有效
	if(CAN_QKZC1.Bit.BIT6==1 && CAN_QKZC1.Bit.BIT7==0)
	{//冷启动
		//定时30分
		cool_start=1;//
		led_warm=0;//--亮
	} else  led_warm=1;
	
	//电池充放电---VL
	if(CAN_WKC3.Bit.BIT4==1 && CAN_WKC3.Bit.BIT5==0)	led_battery=1;//
	else												led_battery=0;
	
	//水温过热
	if(CAN_WKC0.Bit.BIT6==1 && CAN_WKC0.Bit.BIT7==1)	led_waterhot=0;//--亮
	else												led_waterhot=1;
	
	//缓速器
	if(CAN_QKYC4.Bit.BIT0==1 && CAN_QKYC4.Bit.BIT1==0)	led_delay=0;//--亮
	else												led_delay=1;

	//手制动灯
	if(CAN_ZKC0.Bit.BIT6==1 && CAN_ZKC0.Bit.BIT7==0)	led_hbrake=0;//--亮
	else												led_hbrake=1;
	
	//水位
	if(CAN_WKC1.Bit.BIT2==1 && CAN_WKC1.Bit.BIT3==1)	led_water=0;//--亮
	else												led_water=1;
	
	//后视镜加热
	if(CAN_QKYC1.Bit.BIT4==1 && CAN_QKYC1.Bit.BIT5==0)	led_hrview=0;//--亮
	else												led_hrview=1;
	
	//机油压力过低
	if(CAN_WKC0.Bit.BIT2==1 && CAN_WKC0.Bit.BIT3==1)	led_plow=0;//--亮
	else												led_plow=1;
	
	//自动润滑
	if((CAN_ZKC7.Bit.BIT0==1 && CAN_ZKC7.Bit.BIT1==1)||(CAN_WKC0.Bit.BIT0==1 && CAN_WKC0.Bit.BIT1==1)||(CAN_WKS2.Bit.BIT6==1 || CAN_WKS2.Bit.BIT7==1))	led_aulub=0;//--亮
	else																				led_aulub=1;

	//排气制动指示---排气制动开关,油门,离合器
	if(SGL_status.Bit.BIT0&&(CAN_WKC3.Bit.BIT2==1 && CAN_WKC3.Bit.BIT3==0)&&(CAN_QKZC2.Bit.BIT6==1 && CAN_QKZC2.Bit.BIT7==0))	led_exshow=0;//--亮
	else																														led_exshow=1;
	
	//停止
	if(CAN_ZKC3.Bit.BIT0==1 && CAN_ZKC3.Bit.BIT1==0)	led_stop=0;//--亮
	else												led_stop=1;
	
	//灯光故障
	light_fault=light_fault1 || light_fault2 || light_fault3 || light_fault4;
	if(light_fault)	led_fault=0;//--亮
	else			led_fault=1;
	

	//空气滤清堵塞
	if(CAN_WKC1.Bit.BIT0==1 && CAN_WKC1.Bit.BIT1==1)	led_air=0;//--亮
	else												led_air=1;
	
	//后雾灯
	if(CAN_QKZC4.Bit.BIT2==1 && CAN_QKZC4.Bit.BIT3==0)	led_bgog=0;//--亮
	else												led_bgog=1;
	//从前控右改到前控左上
	
	//左转向灯
	//if(SGL_status.Bit.BIT6||SGL_status.Bit.BIT5)		led_left=0;//--亮
	//else												led_left=1;
	
	//倒车灯
	if(CAN_WKC2.Bit.BIT4==1 && CAN_WKC2.Bit.BIT5==0)	led_reverse=0;//--亮
	else												led_reverse=1;
	
	//制动
	if(CAN_ZKC7.Bit.BIT2==1 && CAN_ZKC7.Bit.BIT3==1){//////////////////////////////////////////////
		led_brake1=0;//--亮
	}
	else{led_brake1=1;}
	
	//制动
	if(CAN_ZKC3.Bit.BIT0==1 && CAN_ZKC3.Bit.BIT1==0){//////////////////////////////////////////////
		led_brake2=0;//--亮
	}
	else{led_brake2=1;}
	
	//制动
	if(CAN_ZKC7.Bit.BIT4==1 && CAN_ZKC7.Bit.BIT5==1){///////////////////////////////////////////////
		led_brake3=0;//--亮
	}
	else{led_brake3=1;}
	
//	//ABS/防爆制动
	if(CAN_QKYC4.Bit.BIT4==1 && CAN_QKYC4.Bit.BIT5==0)	led_abs=0;//--亮
	else												led_abs=1;
	
	//ASR/防侧滑
	if(CAN_QKYC4.Bit.BIT2==1 && CAN_QKYC4.Bit.BIT3==0)	led_asr=0;//--亮
	else												led_asr=1;
	
	//NULL
	
	//NULL
	
	//NULL
	
	//电源开关
	if(CAN_QKZC0.Bit.BIT0==1 && CAN_QKZC0.Bit.BIT1==0)	led_power=0;//--亮
	else												led_power=1;
}

//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
/*
void leds_yb(void){
  //右转向灯
	if(SGL_status.Bit.BIT7||SGL_status.Bit.BIT5)		led_right=0;//--亮
	else												led_right=1;
	
	//左转向灯
	if(SGL_status.Bit.BIT6||SGL_status.Bit.BIT5)		led_left=0;//--亮
	else												led_left=1;
	
	//远光灯
	if(SGH_status.Bit.BIT2)								led_fullbeam=0;//--亮
	else												led_fullbeam=1;
	
	//排气制动指示---排气制动开关,油门,离合器
	if(SGL_status.Bit.BIT0&&(CAN_WKC3.Bit.BIT2==1 && CAN_WKC3.Bit.BIT3==0)&&(CAN_QKZC2.Bit.BIT6==1 && CAN_QKZC2.Bit.BIT7==0))	led_exshow=0;//--亮
	else																														led_exshow=1;
	
	//电动门---前或中门有一
	if(door1_flag||door2_flag)	led_door=0;//--亮
	else						led_door=1;
	
	//灯光故障
	if(light_fault)	led_fault=0;//--亮
	else			led_fault=1;
	
}

void leds_qky(void){
  //屈膝
	if(CAN_QKYC1.Bit.BIT6==1 && CAN_QKYC1.Bit.BIT7==0)	led_knees=0;//--亮
	else												led_knees=1;
	
	//缓速器
	if(CAN_QKYC4.Bit.BIT0==1 && CAN_QKYC4.Bit.BIT1==0)	led_delay=0;//--亮
	else												led_delay=1;

  //后视镜加热
	if(CAN_QKYC1.Bit.BIT4==1 && CAN_QKYC1.Bit.BIT5==0)	led_hrview=0;//--亮
	else												led_hrview=1;
	
	//后雾灯
	if(CAN_QKYC2.Bit.BIT4==1 && CAN_QKYC2.Bit.BIT5==0)	led_bgog=0;//--亮
	else												led_bgog=1;

  //ABS/防爆制动
	if(CAN_QKYC4.Bit.BIT4==1 && CAN_QKYC4.Bit.BIT5==0)	led_abs=0;//--亮
	else												led_abs=1;
	
	//ASR/防侧滑
	if(CAN_QKYC4.Bit.BIT2==1 && CAN_QKYC4.Bit.BIT3==0)	led_asr=0;//--亮
	else												led_asr=1;
		
}

void leds_qkz(void){
  //发电机预热---冷启动有效
	if(CAN_QKZC1.Bit.BIT6==1 && CAN_QKZC1.Bit.BIT7==0&&cool_start==0)
	{//冷启动
		//定时30分
		cool_start=1;//-----
		led_warm=0;//--亮
		//led_warm_timer++;
	}
	else
	{
		cool_start=0;
		led_warm_timer=0;
		led_warm=1;
	}
  
  //电源开关
	if(CAN_QKZC0.Bit.BIT0==1 && CAN_QKZC0.Bit.BIT1==0)	led_power=0;//--亮
	else												led_power=1;
	
}

void leds_zk(void){
  //手制动灯
	if(CAN_ZKC0.Bit.BIT6==1 && CAN_ZKC0.Bit.BIT7==0)	led_hbrake=0;//--亮
	else												led_hbrake=1;
	
	//自动润滑
	if((CAN_ZKC7.Bit.BIT0&&CAN_ZKC7.Bit.BIT1)&&(CAN_WKC0.Bit.BIT0&&CAN_WKC0.Bit.BIT1))	led_aulub=0;//--亮
	else																				led_aulub=1;
  
  //停止
	if(CAN_ZKC3.Bit.BIT0==1 && CAN_ZKC3.Bit.BIT1==0)	led_stop=0;//--亮
	else												led_stop=1;
	
}

void leds_wk(void){
  //电池充放电
	if(CAN_WKC3.Bit.BIT4==1 && CAN_WKC3.Bit.BIT5==0)	led_battery=0;//--亮
	else												led_battery=1;
	
	//水温过热
	if(CAN_WKC0.Bit.BIT6==1 && CAN_WKC0.Bit.BIT7==1)	led_waterhot=0;//--亮
	else												led_waterhot=1;
	
	//水位
	if(CAN_WKC1.Bit.BIT2==1 && CAN_WKC1.Bit.BIT3==1)	led_water=0;//--亮
	else												led_water=1;
	
	//机油压力过低
	if(CAN_WKC0.Bit.BIT2==1 && CAN_WKC0.Bit.BIT3==1)	led_plow=0;//--亮
	else												led_plow=1;

  //空气滤清堵塞
	if(CAN_WKC1.Bit.BIT0==1 && CAN_WKC1.Bit.BIT1==1)	led_air=0;//--亮
	else												led_air=1;
	
	//倒车灯
	if(CAN_WKC2.Bit.BIT4==1 && CAN_WKC2.Bit.BIT5==0)	led_reverse=0;//--亮
	else												led_reverse=1;
		
}

*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -