break;
case 4: write_data('T');delay(5); write_data('H');delay(5); write_data('U'); break;
case 5: write_data('F');delay(5); write_data('R');delay(5); write_data('I'); break;
case 6: write_data('S');delay(5); write_data('A');delay(5); write_data('T'); break;
case 7: write_data('S');delay(5); write_data('U');delay(5); write_data('N'); break; } }
void keyscan( ) {
if(flag_ri==1)
{ //这里用来取消闹钟报警,按任意键取消报警 if((s1==0)||(s2==0)||(s3==0)||(s4==0)) {
delay(5);
if((s1==0)||(s2==0)||(s3==0)||(s4==0)) {
while(!(s1&&s2&&s3&s&s4));di( ); flag_ri=0; //清除报警标志 } } }
if(s1==0) //检测s1 {
delay(5); if(s1==0) {
s1num++; //记录按下次数 if(flag1==1)
if(s1num==4) s1num=1; flag=1;
while(!s1);di( );
switch(s1num)
{ //光标闪烁点定位
case 1: write_com(0x80+0x40+10); write_com(0x0f); break;
case 2: write_com(0x80+0x40+7); break;
case 3: write_com(0x80+0x40+4); break;
case 4: write_com(0x80+12); break;
case 5: write_com(0x80+9); break;
case 6: write_com(0x80+6); break;
case 7: write_com(0x80+3); break; case 8: s1num=0;
write_com(0x0c); flag=0;
write_ds(0,miao); write_de(2,fen); write_ds(4,shi); write_ds(6,week); write_ds(7,day); write_ds(8,month); write_ds(9,year); break; } } }
if(s1num!=0) //只有当s1按下后,才检测s2和s3 {
if(s2==0) {
delay(1); if(s2==0)
while(!s2);di( ); switch(s1num)
{ //根据功能键次数调节相应数值 case 1: miao++;
if(miao==60) miao=0;
write_sfm(10,miao);
write_com(0x80+0x40+10); break; case 2: fen++;
if(fen==60) fen=0;
write_sfm(7,fen);
write_com(0x80+0x40+7); break; case 3: shi++;
case 4: case 5: case 6: case 7: } } }
if(s3==0) {
delay(1);
if(shi==24) shi=0;
write_sfm(4,shi);
write_com(0x80+0x40+4); break; week++;
if(week==8) week=1;
write_week(week); write_com(0x80+12); break; day++;
if(day==32) day=1;
write_nyr(9,day); write_com(0x80+9); break; month++;
if(month==13) month=1;
write_nyr(6,month); write_com(0x80+6); break; year++;
if(year==100) year=0;
write_nyr(3,year); write_com(0x80+3); break;
if(s3==0) {
while(!s3);di( ); switch(s1num)
{ //根据功能键次数调节相应数值 case 1: miao--;
if(miao==-1) miao=59;
write_sfm(10,miao);
write_com(0x80+0x40+10); break; case 2: fen--;
if(fen==-1) fen=59;
write_sfm(7,fen);
write_com(0x80+0x40+7); break; case 3: shi--;
if(shi==-1) shi=23;
write_sfm(4,shi);
write_com(0x80+0x40+4); break; case 4: week--;
if(week==0) week=7;
write_week(week); write_com(0x80+12); break; case 5: day--;
if(day==0) day=31;
write_nyr(9,day); write_com(0x80+9); break; case 6: month--;
if(month==0) month=12;
write_nyr(6,month); write_com(0x80+6); break; case 7: year--;
if(year==-1) year=99;
相关推荐: