u8 KEY_Scan(void)
{
static u8 key_up=1;//按键按松开标志
JTAG_Set(JTAG_SWD_DISABLE);
if(key_up&&(KEY0==0||KEY1==0||KEY2==1))
{
delay_ms(10);//去抖动
key_up=0;
if(KEY0==0)
{
JTAG_Set(SWD_ENABLE);
return 1;
}
else if(KEY1==0)
{
JTAG_Set(SWD_ENABLE);
return 2;
}
else if(KEY2==1)
{
JTAG_Set(SWD_ENABLE);
return 3;
}
}else if(KEY0==1&&KEY1==1&&KEY2==0)key_up=1;
JTAG_Set(SWD_ENABLE);
return 0;// 无按键按下
}
key_up有什么作用?怎样实现的,它这里是怎样让按键在按下的期间(足够进入该函数两三次的时间)只响应一次的?和51中的 while(!key) 等待按键松开有什么不同?另外即使按下了key2,返回了一个3,但是按步骤执行下去不是还会输出一个0吗?
|