📄 main.c
字号:
} break;
case 0x07:{
set_flag=3;
dis_data(set_vari[2],1,8,0x89);
}break;
case 0x08:{
set_flag=4;
dis_data(back,1,12,0x99);
}break;
default:break;
}
} break;
case 0x09: //设置参数闪烁
{
dis_flag=0;
switch(set_flag)
{
case 0x01: {
set_flag=4;
dis_data(key_buf,1,2,0x80);
//dis_data(set_vari[0],1,8,0x81);
dis_data(space,1,4,0x85);
dis_data(dis_buf3,1,1,0x85);
} break;
case 0x02: {
set_flag=5;
dis_data(key_buf,1,2,0x90);
dis_data(space,1,4,0x95);
dis_data(dis_buf3,1,1,0x95);
} break;
case 0x03: {
set_flag=6;
dis_data(key_buf,1,2,0x88);
dis_data(space,1,4,0x8d);
dis_data(dis_buf3,1,1,0x8d);
}break;
case 0x04: {
set_flag=1;
dis_data(key_buf,1,2,0x80);
//dis_data(set_vari[0],1,8,0x81);
dis_data(ov_buf,1,4,0x85);
dis_data(dis_buf3,1,1,0x85);
} break;
case 0x05: {
set_flag=2;
dis_data(key_buf,1,2,0x90);
dis_data(lv_buf,1,4,0x95);
dis_data(dis_buf3,1,1,0x95);
} break;
case 0x06:{
set_flag=3;
dis_data(key_buf,1,2,0x88);
dis_data(vot_buf,1,4,0x8d);
dis_data(dis_buf3,1,1,0x8d);
}break;
default:break;
}
} break;
default: break;
}
} break;
case 0x02:if(led_flag)
{if(sys_temp!=0x02)
{sys_temp=0x02; write_command(0x01,1);} //清显示屏
if(sys_time) //更新显示屏
{sys_time=0; dis_data(sys_wait,1,16,0x90);}
led_flag=0;GREEN=!GREEN;YELLOW=0;RED=0;} break;
case 0x03:if(led_flag)
{if(sys_temp!=0x03)
{sys_temp=0x03; write_command(0x01,1);} //清显示屏
if(sys_time) //更新显示屏
{sys_time=0;dis_data(cd_err,1,9,0x80);dis_data(cd_err1,1,10,0x91); }
led_flag=0;GREEN=0;YELLOW=0;RED=0;} break;
case 0x04:if(led_flag)
{if(sys_temp!=0x04)
{sys_temp=0x04; write_command(0x01,1);} //清显示屏
if(sys_time) //更新显示品
{sys_time=0; dis_data(cd_err,1,9,0x80);dis_data(cd_err2,1,10,0x91);}
led_flag=0;GREEN=0;YELLOW=!YELLOW;RED=0;} break;
case 0x05:if(led_flag)
{if(sys_temp!=0x05)
{sys_temp=0x05; write_command(0x01,1);} //清显示屏
if(sys_time) //更新显示屏
{sys_time=0;dis_data(nb_err,1,9,0x80);dis_data(nb_err1,1,8,0x91); }
led_flag=0;GREEN=0;YELLOW=0;RED=0;} break;
case 0x06:if(led_flag)
{if(sys_temp!=0x06)
{sys_temp=0x06; write_command(0x01,1);} //清显示屏
if(sys_time) //更新显示屏
{sys_time=0;dis_data(nb_err,1,9,0x80);dis_data(nb_err2,1,8,0x91); }
led_flag=6;GREEN=0;YELLOW=0;RED=!RED;} break;
default:break;}
if(otime_flag)
{
otime_flag=0;
switch(key_set)
{
case 0x01:
if(++key_err1>=3)
{
key_set=0;
ov_buf[1]=ov_temp[1];
ov_buf[2]=ov_temp[2];
ov_buf[3]=ov_temp[3];
}
else {tx1_data(0x10,tx_mudi);t_temp3=0;}break;
case 0x02:
if(++key_err2>=3)
{
key_set=0;
lv_buf[1]=lv_temp[1];
lv_buf[2]=lv_temp[2];
lv_buf[3]=lv_temp[3];
}
else {tx1_data(0x12,tx_mudi);t_temp3=0;} break;
case 0x03:
if(++key_err3>=3)
{
key_set=0;
vot_buf[1]=vot_temp[1];
vot_buf[2]=vot_temp[2];
vot_buf[3]=vot_temp[3];
}
else {tx1_data(0x14,tx_mudi);t_temp3=0;} break;
default: break;
}
}
}
}
void time_int(void) interrupt 1 using 3 //定时器0中断处理程序,10ms
{
uchar i=0;
TL0=0x5c;
TH0=0x95;
t_temp=t_temp+1;
t_temp2=t_temp2+1;
t_temp3=t_temp3+1;
time_flag=1;
//if((t_temp%50)==0)
//{DE=0; SBUF=0x55; }
//{tx_data(0x20,0x00);}
}
void time_set(void)
{
uchar temp,i=0;
switch(key_temp)
{
case 0:{key_val=P2&0xf0; //有键按下 ,下个中断判断是否抖动
if(key_val!=0xf0)
{light_led(); key_temp=1;} }break;
case 1:{if(key_val!=(P2&0xf0)) //判断是否抖动,当有两个键按下而有一个键是抖动时,仍然
key_temp=0; //跳到第一步处理
else
{
if(!KEY1)
{key_temp=2;key_flag=1;key1_temp=1;i++;}
if(!KEY2)
{key_temp=3;key_flag=2;key2_temp=1;i++;}
if(!KEY3)
{key_temp=4;key_flag=3;key3_temp=1;i++;}
if(!KEY4)
{key_temp=5;key_flag=4;key4_temp=1;i++;}
if(i>1)
{key_temp=6,key_flag=0;light_led();}
}
} break;
case 2: if(KEY1)
{key_temp=0;key1_temp=0;} break;
case 3: if(KEY2)
{key_temp=0;key2_temp=0;} break;
case 4: if(KEY3)
{key_temp=0;key3_temp=0;} break;
case 5: if(KEY4)
{key_temp=0;key_temp=0;} break;
case 6: {
if(key1_temp)
{if(KEY1)
key1_temp=0;
else
{key_temp=2;key_flag=1;i++;}}
if(key2_temp)
{if(KEY2)
key2_temp=0;
else
{key_temp=3;key_flag=2;i++;}}
if(key3_temp)
{if(KEY3)
key3_temp=0;
else
{key_temp=4;key_flag=3;key3_temp=1;i++;}}
if(key4_temp)
{if(KEY4)
key4_temp=0;
else
{key_temp=5;key_flag=4;key4_temp=1;i++;}}
if(i>1)
{key_temp=6,key_flag=0;light_led();}
if(i==0)
{key_temp=0;}
}break;
default: break;
}
if((t_temp%50)==0) //time=0.5s,dis_temp=2,
{
led_flag=1;
switch(dis_temp)
{
case 2:dis_flag=0x03;break;
case 3:dis_flag=0x05;break;
case 4:dis_flag=0x05;break;
case 5:dis_flag=0x08;break;
case 6:dis_flag=0x09;break;
default:break;
}
}
if((t_temp%200)==0&&(dis_temp==1)) //time=1s,dis_temp=1,显示运行状态 {
{
dis_flag=0x01;
switch(ping)
{
case 1: get_shuzi(0); break;
case 2: get_shuzi(1); break;
case 3: get_shuzi(2); break;
default: break;
}
}
if(t_temp2%500==0)
{
sys_time=1;
}
if(t_temp2>=6000) //time=1min,没有按键按下,关LCD背光,显示运行状态
{
t_temp2=0;
LED=0;
dis_flag=1;
dis_temp=1;
ping=0;
t_temp=0;
}
if(t_temp3>=2000)
{
t_temp3=0;
otime_flag=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -