if(sec==-1)
sec=59;
write_clock(12,sec);
write_com(0x80+0x40+13); }
if(keynum==2) {
min--; if(min==-1) min=59;
write_clock(9,min); write_com(0x80+0x40+10);
}
if(keynum==3) {
hour--;
if(hour==-1) hour=23;
write_clock(6,hour); write_com(0x80+0x40+7);
}
if(keynum==4) {
week--;
if(week==0) week=7;
write_week(week); write_com(0x80+13);
}
if(keynum==5) {
day--;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
if(day==0) month=31;
}
else if(month==2) //注意这里没有考虑闰年 {
if(day==0)
day=28;
} else {
if(day==0)
day=30; }
write_nyr(8,day); write_com(0x80+9);
}
if(keynum==6) {
month--; if(month==0) month=12; write_nyr(5,month); write_com(0x80+6); }
if(keynum==7) {
year--;
if(year==-1) year=99; write_nyr(2,year); write_com(0x80+3);
} } }
} P1=1<<4|1<<0|1<<1|1<<2|1<<3|1<<5|1<<6|0<<7; if(enter==0)break; }
/*检测Enter(P1.3)键是否按下,只有该键按下才能进行输入密码等操作*/ P1=0<<4|1<<0|1<<1|1<<2|1<<3|1<<5|1<<6|1<<7; while(enter);
if(enter==0) {
delay(5); if(enter==0) {
TR0=0; write_com(0x01);//显示清屏:数据指针、所有显示清0
write_com(0x80+0x02);//设置数据地址指针 for(num=0;num<13;num++)
{ write_date(table3[num]);//LCD显示“Enter please:”
delay(5);
}
} while(!enter);//判断按键是否释放 }
/************************************** **函数名称:keyscan **函数功能:3*4键盘扫描 **入口参数:无 **出口参数:jz
***************************************/ uchar keyscan()
{ uchar temp; P1=0xfe;//第一行扫描
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5); while(!enter); } P1=0xff;
}
delay(5);
temp=P1;
temp=temp&0xf0; while(temp!=0xf0) {
temp=P1; { switch(temp)
case 0xee:jz=0;
break; case 0xde:jz=1; break; case 0xbe:jz=2; break; case 0x7e:jz=3; break;
}
while(temp!=0xf0) { }
}
temp=P1; temp=temp&0xf0;
P1=0xfd;//第二行扫描 temp=P1; temp=temp&0xf0; while(temp!=0xf0) {
delay(5); temp=P1; temp=temp&0xf0; while(temp!=0xf0) {
temp=P1; {
switch(temp)
case 0xed:jz=4;
break; case 0xdd:jz=5; break; case 0xbd:jz=6; break;
return jz; }
case 0x7d:jz=7;
break; }
while(temp!=0xf0) { temp=P1; temp=temp&0xf0;
}
}
}
P1=0xfb;//第三行扫描 temp=P1; temp=temp&0xf0; while(temp!=0xf0) { delay(5); temp=P1; temp=temp&0xf0; while(temp!=0xf0) { temp=P1; switch(temp) { case 0xeb:jz=8; break; case 0xdb:jz=9; break;
case 0xbb:jz='*'; break;
case 0x7b:jz='#';
break;
}
while(temp!=0xf0) { temp=P1; temp=temp&0xf0;
}
}
}