按键处理函数

while(1)
{
     key=KEY_Scan(0);    //得到键值
    if(key)
    {                          
        switch(key)
        {                
            case WKUP_PRES: //控制蜂鸣器
                BEEP=!BEEP;
                break;
            case KEY2_PRES: //控制LED0翻转
                LED0=!LED0;
                break;
            case KEY1_PRES: //控制LED1翻转   
                LED1=!LED1;
                break;
            case KEY0_PRES: //同时控制LED0,LED1翻转 
                LED0=!LED0;
                LED1=!LED1;
                break;
        }
    }else delay_ms(10); 
}


u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;//按键按松开标志
if(mode)key_up=1; //支持连按
if(key_up&&(KEY0==0||KEY1==0||KEY2==0||WK_UP==1))
{
delay_ms(10);//去抖动
key_up=0;
if(KEY0==0)return 1;
else if(KEY1==0)return 2;
else if(KEY2==0)return 3;
else if(WK_UP==1)return 4;
}else if(KEY0==1&&KEY1==1&&KEY2==1&&WK_UP==0)key_up=1;
return 0;// 无按键按下
}


已发布

分类

来自

标签:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注