?? 按鍵掃描程序.c
字號:
//********鍵盤掃描**********8
sbit System=p1.0;
sbit TimeUp=p1.1;
sbit TimeDown=p1.2;
sbit Exit=p1.3;
//*******按鍵掃描程序****
void keyscan()
{
if(System ==0)
{
delay5ms();
if(System==0)
{
while(!System);
delay5ms();
while(!System);
keynum++;
if(keynum==1) //按下控制鍵一次
{
TR0=0;
L1602_WriteCmd(0x80+0x40+10); //秒針閃動
L1602_WriteCmd(0x0f);
}
if(keynum==2) //按下控制鍵兩次
{
L1602_WriteCmd(0x80+0x40+7); //分針閃動
L1602_WriteCmd(0x0f);
}
if(keynum==3) //按下控制鍵三次
{
L1602_WriteCmd(0x80+0x40+4); //時針閃動
L1602_WriteCmd(0x0f);
}
if(keynum==4) //按下控制鍵四次
{
L1602_WriteCmd(0x80+12); //星期閃動
L1602_WriteCmd(0x0f);
}
if(keynum==5) //按下控制鍵五次
{
L1602_WriteCmd(0x80+9); //日閃動
L1602_WriteCmd(0x0f);
}
if(keynum==6) //按下控制鍵六次
{
L1602_WriteCmd(0x80+6); //月閃動
L1602_WriteCmd(0x0f);
}
if(keynum==7) //按下控制鍵七次
{
L1602_WriteCmd(0x80+3); //年閃動
L1602_WriteCmd(0x0f);
}
}
if(Exit==0) //按下退出鍵
{
TR0=1;
keynum=0;
L1602_WriteCmd(0x0c); //停止閃動閃動,時間走
}
}
if(keynum!=0) //處于調整狀態時,進行加減判斷和處理
{
if(TimeUp==0) //加鍵控制
{
Delay5ms();
if(TimeUp==0)
{
while(!TimeUp);
delay5ms();
while(!TimeUp);
if(keynum==1) //秒加
{
ptm.second ++;
if(ptm.second ==60)
{ptm.second =0; }
PCF8563_write_time(*ptm);
}
if(keynum==2) //分加
{
ptm.minute++;
if(ptm.minute ==60)
{ptm.minute=0;}
PCF8563_write_time(*ptm);
}
if(keynum==3) //時加
{
ptm.hour++;
if(ptm.hour==24)
{ptm.hour=0;}
PCF8563_write_time(*ptm);
}
if(keynum==4) //星期加
{
ptm.weekday++;
if(ptm.weekday==8)
{ptm.weekday=1;}
PCF8563_write_time(*ptm);
}
if(keynum==5) //日加
{
ptm.day ++;
if(ptm.day ==31)
ptm.day =1;
PCF8563_write_time(*ptm);
}
if(keynum==6) //月加
{
ptm.mon ++;
if(ptm.mon ==13)
ptm.mon =1;
PCF8563_write_time(*ptm);
}
if(keynum==7) //年加
{
ptm.year++;
if(ptm.year==100)
ptm.year=0;
PCF8563_write_time(*ptm);
}
}
if(TimeDown==0) // 減控制鍵
{
Delay5ms();
if(TimeDown ==0)
{
while(!TimeDown);
delay5ms();
while(!TimeDown);
if(keynum==1) //秒減
{
ptm.second--;
if(ptm.second==-1)
ptm.second=59;
PCF8563_write_time(*ptm);
}
if(keynum==2) //分減
{
ptm.minute--;
if(ptm.minute==-1)
ptm.minute=59;
PCF8563_write_time(*ptm);
}
if(keynum==3) //時減
{
ptm.hour--;
if(ptm.hour==-1)
ptm.hour=23;
PCF8563_write_time(*ptm);
}
if(keynum==4) //星期減
{
ptm.weekday--;
if(ptm.weekday==0)
ptm.weekday=7;
PCF8563_write_time(*ptm);
}
if(keynum==5) //日減
{
ptm.day--;
if(ptm.day==0)
ptm.day=30;
PCF8563_write_time(*ptm);
}
if(keynum==6) //月減
{
ptm.mon--;
if(ptm.mon==0)
ptm.mon=12;
PCF8563_write_time(*ptm);
}
if(keynum==7) //年減
{
ptm.year--;
if(ptm.year==-1)
ptm.year=99;
PCF8563_write_time(*ptm);
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -