|
看看這個程序,隨時都可以移植,不過要看看電路哦,調(diào)整一下,不然輸出不一定是按的那個鍵。
程序如下:
void KeyDown(void)
{
unsigned char a=0;
GPIO_KEY=0x0f;//測試列
if(GPIO_KEY!=0x0f)
{
Delay10ms();//此處按鍵消抖
if(GPIO_KEY!=0x0f)
{
KeyState=1;//有按鍵按下
switch(GPIO_KEY)
{
case(0X07): KeyValue=0;break;
case(0X0b): KeyValue=1;break;
case(0X0d): KeyValue=2;break;
case(0X0e): KeyValue=3;break;
// default: KeyValue=17;
}
//測試行
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;
// default: KeyValue=17;
}
while((a<200)&&(GPIO_KEY!=0xf0))
{
Delay10ms();
a++;
}
a=0;
}
}
}
電路如圖:
1.jpg (36.31 KB, 下載次數(shù): 56)
下載附件
2017-12-30 19:42 上傳
|
|