eg
void InitKey(void)
{
P0IEN |= BV(1); // P0.1 设置为中断方式 1:中断使能
PICTL &= ~BV(0); //端口 上升沿触发
IEN1 |= BV(5); //允许 P0 口中断
P0IFG = 0x00; //初始化中断标志位
EA = 1; //打开总中断
}
#pragma vector = P0INT_VECTOR
__interrupt void KEY1_ISR(void)
{
DelayMS(10); //延时去抖 ,不管是中断还是轮询,都需要去抖动,否则干扰很大
if(KEY1==1){
LED1 = ~LED1; //改变 LED1 状态
}
P0IFG = 0; //清中断标志
P0IF = 0; //清中断标志
}