📄 power_supply.c
字号:
{
date_temp--;
if(date_temp==0)date_temp=31;
date_h=date_temp/10;
date_l=date_temp%10;
lcd_wrcmd(0x8b);
lcd_wrdata(0x30+date_h);
lcd_wrdata(0x30+date_l);
lcd_wrcmd(0x8c);
}
else if(ss==4)
{
week--;
if(week==0)week=7;
lcd_wrcmd(0x8e);
lcd_wrdata(str_week[2*(week-1)]);
lcd_wrdata(str_week[2*week-1]);
lcd_wrcmd(0x8f);
}
}
else if(ii==5) //OK
{
year=year_h*16+year_l;
month=month_h*16+month_l;
date=date_h*16+date_l;
lcd_wrcmd(0x0c);
set_time();
lcd_wrcmd(1);
display(0xc3,str_su);
for(n=0;n<1500;n++)delay(250);
lcd_wrcmd(1);
state=2; //clock();
break;
}
else if(ii==6) //Exit
{
lcd_wrcmd(1);
state=2;
break;
}
}
}
set_alarm()
{
uchar ii,ss=1,hour_h,hour_l,minute_h,minute_l;
uchar hour_temp,minute_temp;
uint n;
if(ap==0)
{
hour_h=alarm_hour[0]/10;
hour_l=alarm_hour[0]%10;
minute_h=alarm_minute[0]/10;
minute_l=alarm_minute[0]%10;
hour_temp=alarm_hour[0];
minute_temp=alarm_minute[0];
}
else
{
hour_h=alarm_hour[1]/10;
hour_l=alarm_hour[1]%10;
minute_h=alarm_minute[1]/10;
minute_l=alarm_minute[1]%10;
hour_temp=alarm_hour[1];
minute_temp=alarm_minute[1];
}
lcd_wrcmd(1);
lcd_wrcmd(0x84);
lcd_wrdata(0x30+hour_h);
lcd_wrdata(0x30+hour_l);
lcd_wrdata(':');
lcd_wrdata(0x30+minute_h);
lcd_wrdata(0x30+minute_l);
lcd_wrcmd(0x0f);
display(0xc0,str_ok);display(0xce,str_exit);
lcd_wrcmd(0x85);
while(1)
{
ii=key();
if(ii==4)
{
ss++;
if(ss==3)ss=1;
if(ss==1)lcd_wrcmd(0x85);
else if(ss==2)lcd_wrcmd(0x88);
}
else if(ii==3) //切换状态ss=1为校时状态,ss=2为校分状态
{
ss++;
if(ss==3)ss=1;
if(ss==1)lcd_wrcmd(0x85);
else if(ss==2)lcd_wrcmd(0x88);
}
////////////////////////校时程序块////////////////////////////////
else if(ii==1)//加1操作
{
if(ss==1)//小时
{
hour_temp++;
if(hour_temp>23)
{
hour_temp=0;
}
hour_h=hour_temp/10;
hour_l=hour_temp%10;
lcd_wrcmd(0x84);
lcd_wrdata(0x30+hour_h);
lcd_wrdata(0x30+hour_l);
lcd_wrcmd(0x85);
}
else if(ss==2)//分钟
{
minute_temp++;
if(minute_temp>59)
{
minute_temp=0;
}
minute_h=minute_temp/10;
minute_l=minute_temp%10;
lcd_wrcmd(0x87);
lcd_wrdata(0x30+minute_h);
lcd_wrdata(0x30+minute_l);
lcd_wrcmd(0x88);
}
}
else if(ii==2)//减1操作
{
if(ss==1)
{
hour_temp--;
if(hour_temp==0xff)
{
hour_temp=23;
}
hour_h=hour_temp/10;
hour_l=hour_temp%10;
lcd_wrcmd(0x84);
lcd_wrdata(0x30+hour_h);
lcd_wrdata(0x30+hour_l);
lcd_wrcmd(0x85);
}
else if(ss==2)
{
minute_temp--;
if(minute_temp==0xff)
{
minute_temp=59;
}
minute_h=minute_temp/10;
minute_l=minute_temp%10;
lcd_wrcmd(0x87);
lcd_wrdata(0x30+minute_h);
lcd_wrdata(0x30+minute_l);
lcd_wrcmd(0x88);
}
}
else if(ii==5)
{
f=1;
if(ap==0)
{
alarm_hour[0]=hour_h*10+hour_l;
alarm_minute[0]=minute_h*10+minute_l;
IICWrite(2000,alarm_hour[0]);
IICWrite(2001,alarm_minute[0]);
}
else
{
alarm_hour[1]=hour_h*10+hour_l;
alarm_minute[1]=minute_h*10+minute_l;
IICWrite(2002,alarm_hour[1]);
IICWrite(2003,alarm_minute[1]);
}
IICWrite(1002,1);
lcd_wrcmd(0x0c);
lcd_wrcmd(1);
display(0xc3,str_su);
for(n=0;n<1500;n++)delay(250);
lcd_wrcmd(1);
alarm_f=1;
state=13; //clock();
break;
}
else if(ii==6)
{
lcd_wrcmd(1);
lcd_wrcmd(0x0c);
state=13;
break;
}
}
}
am_pm()
{
uchar ii,ss=1;
//uint n;
display(0x83,str_am); //设置上午闹钟
display(0xc3,str_pm); //设置下午闹钟
lcd_wrcmd(0x80);
lcd_wrdata('-');
lcd_wrdata('>');
while(1)
{
ii=key();
if(ii==2) //down
{
ss++;
if(ss==3)ss=1;
if(ss==1)
{
lcd_wrcmd(0xc0);
lcd_wrdata(' ');
lcd_wrdata(' ');
lcd_wrcmd(0x80);
lcd_wrdata('-');
lcd_wrdata('>');
}
else if(ss==2)
{
lcd_wrcmd(0x80);
lcd_wrdata(' ');
lcd_wrdata(' ');
lcd_wrcmd(0xc0);
lcd_wrdata('-');
lcd_wrdata('>');
}
}
else if(ii==1) //up
{
ss++;
if(ss==3)ss=1;
if(ss==1)
{
lcd_wrcmd(0xc0);
lcd_wrdata(' ');
lcd_wrdata(' ');
lcd_wrcmd(0x80);
lcd_wrdata('-');
lcd_wrdata('>');
}
else if(ss==2)
{
lcd_wrcmd(0x80);
lcd_wrdata(' ');
lcd_wrdata(' ');
lcd_wrcmd(0xc0);
lcd_wrdata('-');
lcd_wrdata('>');
}
}
else if(ii==5)
{
if(ss==1)ap=0;
else if(ss==2)ap=1;
lcd_wrcmd(1);
state=8;
break;
}
else if(ii==6)
{
lcd_wrcmd(1);
state=7; //clock();
break;
}
}
}
alarm()
{
uchar ii,ss=1;
uint n;
display(0x83,str_alarm2);
display(0xc3,str_alarm3);
lcd_wrcmd(0x80);
lcd_wrdata('-');
lcd_wrdata('>');
while(1)
{
ii=key();
if(ii==2) //down
{
ss++;
if(ss==3)ss=1;
if(ss==1)
{
lcd_wrcmd(0xc0);
lcd_wrdata(' ');
lcd_wrdata(' ');
lcd_wrcmd(0x80);
lcd_wrdata('-');
lcd_wrdata('>');
}
else if(ss==2)
{
lcd_wrcmd(0x80);
lcd_wrdata(' ');
lcd_wrdata(' ');
lcd_wrcmd(0xc0);
lcd_wrdata('-');
lcd_wrdata('>');
}
}
else if(ii==1) //up
{
ss++;
if(ss==3)ss=1;
if(ss==1)
{
lcd_wrcmd(0xc0);
lcd_wrdata(' ');
lcd_wrdata(' ');
lcd_wrcmd(0x80);
lcd_wrdata('-');
lcd_wrdata('>');
}
else if(ss==2)
{
lcd_wrcmd(0x80);
lcd_wrdata(' ');
lcd_wrdata(' ');
lcd_wrcmd(0xc0);
lcd_wrdata('-');
lcd_wrdata('>');
}
}
else if(ii==5)
{
if(ss==2)
{
alarm_f=0;
IICWrite(1002,0);
lcd_wrcmd(1);
display(0xc3,str_su);
for(n=0;n<1500;n++)delay(250);
lcd_wrcmd(1);
state=2; //clock();
break;
}
else if(ss==1)
{
lcd_wrcmd(1);
state=13; //set_alarm();
break;
}
}
else if(ii==6)
{
lcd_wrcmd(1);
state=2; //clock();
break;
}
}
}
close_beep()
{
uchar ii,ss=1;
uint n;
display(0x83,str_beep2);
display(0xc3,str_beep3);
lcd_wrcmd(0x80);
lcd_wrdata('-');
lcd_wrdata('>');
while(1)
{
ii=key();
if(ii==2) //down
{
ss++;
if(ss==3)ss=1;
if(ss==1)
{
lcd_wrcmd(0xc0);
lcd_wrdata(' ');
lcd_wrdata(' ');
lcd_wrcmd(0x80);
lcd_wrdata('-');
lcd_wrdata('>');
}
else if(ss==2)
{
lcd_wrcmd(0x80);
lcd_wrdata(' ');
lcd_wrdata(' ');
lcd_wrcmd(0xc0);
lcd_wrdata('-');
lcd_wrdata('>');
}
}
else if(ii==1) //up
{
ss++;
if(ss==3)ss=1;
if(ss==1)
{
lcd_wrcmd(0xc0);
lcd_wrdata(' ');
lcd_wrdata(' ');
lcd_wrcmd(0x80);
lcd_wrdata('-');
lcd_wrdata('>');
}
else if(ss==2)
{
lcd_wrcmd(0x80);
lcd_wrdata(' ');
lcd_wrdata(' ');
lcd_wrcmd(0xc0);
lcd_wrdata('-');
lcd_wrdata('>');
}
}
else if(ii==5)
{
if(ss==2) //Open beep
{
beep_f=0;
lcd_wrcmd(1);
IICWrite(1003,0);
display(0xc2,str_su);
for(n=0;n<1500;n++)delay(250);
lcd_wrcmd(1);
state=2; //clock();
break;
}
else if(ss==1)
{
beep_f=1; //close beep
IICWrite(1003,1);
lcd_wrcmd(1);
display(0xc2,str_su);
for(n=0;n<1500;n++)delay(250);
lcd_wrcmd(1);
state=2;
break;
}
}
else if(ii==6)
{
lcd_wrcmd(1);
state=2; //clock();
break;
}
}
}
clock()
{
uchar ii,ss=1;
display(0x80,str_time);
display(0xc0,str_ok);display(0xce,str_exit);
lcd_wrcmd(0x0c);
while(1)
{
if(read_temperature()>set_t) fan=1;
else if(read_temperature()<(set_t-1))fan=0;
ii=key();
if(ii==2) //down
{
ss++;
if(ss==6)ss=1;
if(ss==1)
{
display(0x80,str_time);
}
else if(ss==2)
{
display(0x80,str_date);
}
else if(ss==3)
{
display(0x80,str_alarm);
}
else if(ss==4)
{
display(0x80,str_beep1);
}
else if(ss==5)
{
display(0x80,str_tem);
}
}
if(ii==1)
{
ss--;
if(ss==0)ss=5;
if(ss==1)
{
display(0x80,str_time);
}
else if(ss==2)
{
display(0x80,str_date);
}
else if(ss==3)
{
display(0x80,str_alarm);
}
else if(ss==4)
display(0x80,str_beep1);
else if(ss==5)
{
display(0x80,str_tem);
}
}
else if(ii==5)
{
if(ss==1)
{
lcd_wrcmd(1);
state=3;
break;
}
else if(ss==2)
{
lcd_wrcmd(1);
state=4;
break;
}
else if(ss==3)
{
lcd_wrcmd(1);
state=7;
break;
}
else if(ss==4)
{
lcd_wrcmd(1);
state=11;
break;
}
else if(ss==5)
{
lcd_wrcmd(1);
state=12;
break;
}
}
if(ii==6)
{
lcd_wrcmd(1);
state=1;
break;
}
}
}
temp()
{
uchar ii;
uint n;
//uchar keycount=0;
uchar t;
uchar temp_h,temp_l;
temp_h=set_t/10;
temp_l=set_t%10;
t=set_t;
lcd_wrcmd(1);
lcd_wrcmd(0x87);
lcd_wrdata(0x30+temp_h);
lcd_wrdata(0x30+temp_l);
lcd_wrcmd(0x0f);
display(0xc0,str_ok);display(0xce,str_exit);
while(1)
{
//*********************处理按键连击的效果**********
if((sw5==0)||(sw2==0)) //判断有按键
{
beep=beep_f;
for(n=0;n<50;n++)delay(200);
beep=1;
for(n=0;n<100;n++)delay(200); //延时消抖
//keycount=0;
if((sw5==0)||(sw2==0)) //有按键
{
t++;
if(t>99) t=1;
temp_h=t/10;
temp_l=t%10;
lcd_wrcmd(0x87);
lcd_wrdata(0x30+temp_h);
lcd_wrdata(0x30+temp_l);
lcd_wrcmd(0x87);
if((sw5==0)||(sw2==0)) //还有按键,延时一段时间
{
for(n=0;n<1000;n++)delay(200);
while((sw5==0)||(sw2==0)) //有按键,处理连击键
{
t++;
if(t>99)t=1;
temp_h=t/10;
temp_l=t%10;
lcd_wrcmd(0x87);
lcd_wrdata(0x30+temp_h);
lcd_wrdata(0x30+temp_l);
lcd_wrcmd(0x87);
for(n=0;n<200;n++)delay(250);
beep=beep_f;
for(n=0;n<100;n++)delay(250);
beep=1;
for(n=0;n<100;n++)delay(250);
}
}
beep=1; //关闭蜂鸣器
}
}
else if((sw4==0)||(sw3==0)) //判断有按键
{
beep=beep_f;
for(n=0;n<50;n++)delay(200);
beep=1;
for(n=0;n<100;n++)delay(200); //延时消抖
//keycount=0;
if((sw4==0)||(sw3==0)) //有按键
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -