|
void keyscan()
{
uchar slnum,flag;
if(K1==0)
{
delayms(5);
if(K1==0) //确认功能键被按下
{
slnum++; //功能选择计数变量加1,
while(!K1); //等待按键释放,防抖动
}write_com(0x0f);
if(slnum==1)
{
flag=1; //标志位为1,表示有功能键被按下,此时不在执行温度检测
write_com(0x80+14); //光标定位到MIN位置
write_com(0x0f); //光标开始闪速
}
if(slnum==2)
{
write_com(0x80+4); //光标定位到MAX位置
write_com(0x0f); //光标开始闪速
}
if(slnum==3)
{
slnum=0; //功能键第三下按下后,功能计数清零
flag=0; //标志位恢复,执行温度转化
write_com(0x0c); //关闭光标闪速
}
}
if(slnum!=0) //只有在功能键被按下后,K2,K3才有效
{
if(K2==0)
{
delayms(1);
if(K2==0)
{
while(!K2);
if(slnum==1)
{
MIN++;
if(MIN==99) {MIN=0;}
write_com(0x80+14); //MIN++显示的位置
write_com(0x0f);
write_maxmin(14,MIN);
write_com(0x80+14);
}
if(slnum==2)
{
MAX++;
if(MAX==99) {MAX=0;}
write_com(0x80+4);
write_com(0x0f);
write_maxmin(4,MAX);
write_com(0x80+4);
}
}
}
if(K3==0)
delayms(1);
if(K3==0)
{
while(!K3);
if(slnum==1)
{
MIN--;
if(MIN==-1) {MIN=99;}
write_com(0x80+14);
write_com(0x0f);
write_maxmin(14,MIN);
write_com(0x80+14);
}
if(slnum==2)
{
MAX--;
if(MAX==-1){MAX=99;}
write_com(0x80+4);
write_com(0x0f);
write_maxmin(4,MAX);
write_com(0x80+4);
}
}
}
}
|
|