📄 按键扫描程序.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 + -