参考原子老师的按键扫描程序
有2个按键,扫描不到或者要按多次才能扫描到。按键有优先级,不支持连按。
这个程序要哪些要注意的细节,请指教。谢谢
static u8 key_up=1;//按键按松开标志
if(mode)key_up=1; //支持连按
if(key_up&&((K1==0)||(K2==0)||(K4==0)||(K5==0)||(K7==0)||(K8==0)||(K10==0)||(K11==0)||(K13==0)||(K14==0)||(K9==0)||(K12==0)||(K15==0)))
{ //K3==0||K6==0
//delay_ms(2);//去抖动
key_up=0;
if(K1==0)
return 1;
else if(K2==0)
return 2;
//else if(KEY3==0)return 3;
else if(K4==0)
return 4;
else if(K5==0)
return 5;
//else if(KEY6==0)return 6;
else if(K7==0)
return 7;
else if(K8==0)
return 8;
else if(K9==0)
return 9;
else if(K10==0)
return 10;
else if(K11==0)
return 11;
else if(K12==0)
return 12;
else if(K13==0)
return 13;
else if(K14==0)
return 14;
else if(K15==0)
return 15;
} //K3==1&&K6==1
else if((K1==1)&&(K2==1)&&(K4==1)&&(K5==1)&&(K7==1)&&(K8==1)&&(K10==1)&&(K11==1)&&(K13==1)&&(K14==1)&&(K9==1)&&(K12==1)&&(K15==1)) key_up=1;
return Key_Null;// 无按键按下
|