蓝桥杯单片机必备知识-----(13)长按键识别
计数超过400即为长按键(经验值,暂时没有想到更好的方法)
//按键扫描函数
unsigned char read_key(void)
{
static unsigned int press_counter = 0; //长短按键计数器
static unsigned char status = 0;
unsigned char key_val = 0xFF;
switch(status){
case 0:
if(P30 == 0){
status = 1;
}
break;
case 1:
if(P30 == 0){
if(press_counter < 400){
press_counter++;
}
}else{
if(press_counter > 20){
status = 2;
}else{
status = 0