writedata(num1[time/16]);
writecom(0x80+0x40+1+address); writecom(0x0f); }
void keyscan() //键盘扫描函数 {
if (0==k1) //K1时间停止 {
delay(10); if(0==k1) { num++;
while(num>0&&num<=8) {
if (0==k1) {
if(0==k1) { num++;
while(!k1)
{
switch(num) {
case 2: {
uint i; num++; a=1;
writecom(0x80+0x40+0x0e); writecom(0x0f); for(i=0;i<7;i++) {
time1[i]=ds1302rd(r[i]);; }
21
}
break; case 4: {
num++;
writecom(0x80+0x40+0x0b); writecom(0x0f); }
break; case 6: {
num++;
writecom(0x80+0x40+0x08); writecom(0x0f); }
break; case 8: {
num=0; a=0;
Ds1302Init(); delay(10);
writecom(0x0c); }
break; } } }
}
if(0==k2) {
delay(5); if(0==k2) {
while(!k2)
22
switch(num) //K2,时,分,秒加数 {
case 3: {
if(9==time1[0]) {
time1[0]+=6; }
time1[0]++; if(time1[0]==0x60) time1[0]=0;
showtime(0xd,time1[0]); }
break; case 5: {
if(9==time1[1]) {
time1[1]+=6; }
++time1[1]; while(0x60==time1[1]) time1[1]=0;
showtime(0xa,time1[1]); }
break; case 7: {
if(9==time1[2]) {
time1[2]+=6; }
++time1[2];
while(0x24==time1[2]) time1[2]=0;
Ds1302Init();
23
showtime(7,time1[2]); } break; } }
} if(0==k3) {
delay(5); if(0==k3) {
while(!k3)
switch(num) //K3,时,分,秒减数 {
case 3: {
if(0==time1[0]) {
time1[0]-=6;
if((0-6)==time1[0]) time1[0]=0x5a;
} --time1[0];
showtime(0x0d,time1[0]); }
break; case 5: {
if(0==time1[1]) {
time1[1]-=6;
if((0-6)==time1[1]) time1[1]=0x5a; }
--time1[1];
showtime(0x0a,time1[1]);
24
}
break; case 7:
} } } }
} }
void main() {
Ds1302Init(); LCDINIT(); while(1) {
keyscan(); rdtime(); display(); } }
{
if(0==time1[2]) {
time1[2]-=6;
if((0-6)==time1[2]) time1[2]=0x5a; } --time1[2];
showtime(0x07,time1[2]); }
break; }
25