📄 led.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 + -