|
//增加注釋
void KeyDown(void)
{
char a;
GPIO_KEY=0x0f; //按鍵口置高
if(GPIO_KEY!=0x0f) //如果按鍵有按下
{
Delay10ms(); //延時(shí)去抖
if(GPIO_KEY!=0x0f) //還是按下
{
KeyState=1; //記錄按下?tīng)顟B(tài)
//2aêÔáD
GPIO_KEY=0X0F;
// Delay10ms();
switch(GPIO_KEY) //判斷哪行按下,并記錄鍵值
{
case(0X07): KeyValue=0;break;
case(0X0b): KeyValue=1;break;
case(0X0d): KeyValue=2;break;
case(0X0e): KeyValue=3;break; }
//2aêÔDD
GPIO_KEY=0XF0;
Delay10ms();
switch(GPIO_KEY) //判斷哪列按下,并記錄鍵值
{
case(0X70): KeyValue=KeyValue;break;
case(0Xb0): KeyValue=KeyValue+4;break;
case(0Xd0): KeyValue=KeyValue+8;break;
case(0Xe0): KeyValue=KeyValue+12;break; }
//等待松開(kāi)或超時(shí)
while((a<50)&&(GPIO_KEY!=0xf0))
{
Delay10ms();
a++;
}
a=0;
}
}
} |
評(píng)分
-
查看全部評(píng)分
|