|
/*********************************************************************************************************
* 函 數(shù) 名 : Scanf_Key
* 功能說明 : 按鍵掃描
* 形 參 : mode:1連按,0單擊
* 返 回 值 : 按下的按鍵對應(yīng)的值,如KEY1返回1
* 備 注 : PA0(KEY1)、PB1(KEY2)、PC13(KEY3)
*********************************************************************************************************/
unsigned char Scanf_Key(unsigned char mode)
{
static unsigned char flag = 0; //默認(rèn)沒有標(biāo)記按下
if(mode) flag = 0; //mode=1時,允許連續(xù)觸發(fā),不檢測松手
if((KEY1 == 1 || KEY2 == 0 || KEY3 == 0) && flag == 0) //當(dāng)按鍵按下,并且沒有被標(biāo)記按
{
flag = 1; //標(biāo)記按下
Delay_Ms(10); //等待抖動消失
if(KEY1 == 1) return 1; //如果按鍵還是按下的狀態(tài),那么是真的按下了
else if(KEY2 == 0) return 2; //返回相應(yīng)的值
else if(KEY3 == 0) return 3;
}
else if((KEY1 == 0 && KEY2 == 1 && KEY3 == 1) && flag == 1) //如果所有按鍵都松開了,并且被標(biāo)記過按下
flag = 0; //標(biāo)記松開,允許下一次檢測
return 0;
}
|
|