来了吧,中断按键,这个还是比较简单的,检测电平就Ok,代码如下
/******************************************************************************
4 个用户按键
四个输入引脚:
EINT0 -----( GPF0 )----INPUT---K4
EINT2 -----( GPF2 )----INPUT---K3
EINT4 -----( GPF4 )----INPUT---K2
EINT1 -----( GPF1 )----INPUT---K1
******************************************************************************/
U8 Key_Scan( void )
{
Delay( 80 ) ;
if( (rGPFDAT&(1<< 0)) == 0 )
{
rGPBDAT = rGPBDAT & ~(LED4); //亮LED4
return 4 ;
}
else if( (rGPFDAT&(1<< 2)) == 0 )
{
rGPBDAT = rGPBDAT & ~(LED3); //亮LED3
return 3;
}
else if( (rGPFDAT&(1<<4)) == 0 )
{
rGPBDAT = rGPBDAT & ~(LED2); //亮LED2
return 2 ;
}
else if( (rGPFDAT&(1<< 1)) == 0 )
{
rGPBDAT = rGPBDAT & ~(LED1); //亮LED1
return 1 ;
}
else
{
rGPBDAT = rGPBDAT & ~0x1e0|0x1e0; //LED[8:5] => 1;
return 0xff;
}
}