giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x88,mon); //写寄存器指令,月 giveOneTime(0x8e,0x80); disDate(); } } //K3 if(K3==0&&i3==0) { i3=1; mon= bcdToChar(getOneTime(0x89)); dat= bcdToChar(getOneTime(0x87)); yea= bcdToChar(getOneTime(0x8d));
if(mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12) //判断31天月份 { if(dat==31) { dat=1; dat= charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); //写寄存器指令,日 giveOneTime(0x8e,0x80); disDate(); } else{ dat=dat+1; dat=charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); //写寄存器指令,日 giveOneTime(0x8e,0x80); disDate(); } } else{ if(mon==2) //二月份平年、闰年天数判断 { if((yea%4)==0&&(yea0)==0&&yea!=0) //闰年 { if(dat==29) {
dat=1; dat= charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); //写寄存器指令,日 giveOneTime(0x8e,0x80); disDate(); } else{ dat=dat+1; dat=charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); //写寄存器指令,日 giveOneTime(0x8e,0x80); disDate(); } } else //平年 { if(dat==28) { dat=1; dat= charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); //写指令 giveOneTime(0x8e,0x80); disDate(); } else{ dat=dat+1; dat=charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); //寄存器写指令 giveOneTime(0x8e,0x80); disDate(); } } } else
{ if(dat==30) { dat=1; dat= charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); giveOneTime(0x8e,0x80); disDate(); } else{ dat=dat+1; dat=charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); giveOneTime(0x8e,0x80); disDate(); } } } } if(K1==1&&K2==1&&K3==1) { i1=0;i2=0;i3=0; } } }
void TimeDisF() {
if(i==1) { disTime(); //K1 if(K1==0&&i1==0) { i1=1; hou= bcdToChar(getOneTime(0x85));
if(hou==23) { hou=0; hou= charToBcd(hou); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x84,hou); //写寄存器指令,时 giveOneTime(0x8e,0x80); disTime(); } else{ hou= hou+1; hou= charToBcd(hou); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x84,hou); //写寄存器指令,时 giveOneTime(0x8e,0x80); disTime(); } } //K2 if(K2==0&&i2==0) { i2=1; min= bcdToChar(getOneTime(0x83)); if(min==59) { min=0; min= charToBcd(min); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x82,min); //写寄存器指令,分 giveOneTime(0x8e,0x80); disTime(); } else{ min= min+1; min= charToBcd(min);
giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x82,min); //写寄存器指令,分 giveOneTime(0x8e,0x80); disTime(); } }
//K3 if(K3==0&&i3==0) { resetTime(); } if(K1==1&&K2==1&&K3==1) { i1=0;i2=0;i3=0; } } }
void GetTimeF() //读取时间 {
T_RST = 0; T_CLK = 0; T_RST = 1;
oneByteToClock(0xbf); //* 0xbf:时钟多字节读命令 sec = bcdToChar(oneByteFromClock()); min = bcdToChar(oneByteFromClock()); hou = bcdToChar(oneByteFromClock()); dat = bcdToChar(oneByteFromClock()); mon = bcdToChar(oneByteFromClock()); wek = bcdToChar(oneByteFromClock()); yea = bcdToChar(oneByteFromClock()); T_CLK = 1; T_RST =0; }
void ChangeKF() //按钮切换显示实现函数 {
if(TAD==0&&j==0) { if(i==4) { i=0; } else i=i+1; j=1; }
else{