xianshi(5,yue); //显示月份
write_com(0x86); //写完数据指针指向月份原来位置
}
if(keynum==3)//调日 { ri++;
if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12)//1,3,5,7,8,10,12月有31天 if(ri==32) e==9||yue==11)//4,6,9,11月有30天
0&&nian0!=0)||nian@0==0))//闰年2月有29天
ri=1;//加满还原
if(yue==4||yue==6||yu if(ri==31) ri=1;
if(yue==2&&((nian%4== if(ri==30) ri=1;
if(yue==2&&(nian%4!=0)||(nian0==0&&nian@0!=0))//非闰年2月有28天
if(ri==29) ri=1; xianshi(8,ri);
write_com(0x89); //写完数据指针指向日原来位置 }
if(keynum==4)//调星期 下一次星期加1
{
week++; //2每按 if(week==7) //加满还原
week=1;
xingqi(); //显示星期
write_com(0x8b); //写完数据指针指向星期原来位置 }
if(keynum==5)//调时 {
shi++;//2每按下一次时加1
原
//显示时
分 分加1 //显示分
一次秒加1
示秒
写完数据指针指向时原来位置
写完数据指针指向分原来位置
if(shi==24)
shi=0; //加满还 xianshi(0x43,shi); write_com(0x80+0x44);调
fen++;//2每按下一次 if(fen==60)
fen=0;//加满还原 xianshi(0x46,fen); write_com(0x80+0x47); 调秒
miao++; //2每按下 if(miao==60)
miao=0;//加满还原
xianshi(0x49,miao);//显 // }
if(keynum==6)// { // } if(keynum==7)// { write_com(0x80+0x4a); //写完数据指针指向秒原来位置
} while(!key2); //松手检测
} }
if(key3==0)
{
delay(5);//消抖
if(key3==0)//3按下时减1 {
if(keynum==1)//月减一 { nian--;
if(nian==-1) nian=2000;
year(nian);
write_com(0x83);
} if(keynum==2)//月减一 { yue--;
if(yue==-1) yue=12;
xianshi(5,yue);
write_com(0x86); }
if(keynum==3)//日减一 {
ri--;
if(ri==0)
{if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12)//1,3,5,7,8,10,12
1)//4,6,9,11
=0)||nian@0==0))//闰年 ri=31;
if(yue==4||yue==6||yue==9||yue==1 ri=30;
if(yue==2&&((nian%4==0&&nian0! ri=29;
==0&&nian@0!=0))//非闰年
if(yue==2&&(nian%4!=0)||(nian0 ri=28;
}
xianshi(8,ri); write_com(0x89);
星期减一 week--;
if(week==-1) week=6;
xingqi(); write_com(0x8b); 时减一 shi--;
if(shi==-1) shi=23;
xianshi(0x43,shi); write_com(0xc4); 分减一
fen--;
if(fen==-1) fen=59;
} if(keynum==4)// { }
if(keynum==5)// { }
if(keynum==6)// {
xianshi(0x46,fen); write_com(0xc7); }
if(keynum==7)//秒减一 { miao--;
if(miao==-1) miao=59;
xianshi(0x49,miao); write_com(0xca);
}
while(!key3); //3松手检测 } } }
if(key4==0)//4被按下进入调闹钟模式 { delay(5);//消抖 if(key4==0)
{
keynum1++; while(!key4);//松手 }
if(keynum1==1) { write_com(0x01);//清屏,指针清0
write_com(0x80+0x45);//在时分之间显示\ write_date(':');
write_com(0x80+0x48);//在分秒之间显示\:\
write_date(':');
write_com(0x0f);//开启光标 write_com(0xc4);//光标指向时 }
if(keynum1==2)
{
write_com(0xc7);//光标指向分 }