进入中断之后,开始:
if(P1IFG?) //这个值和你的按键有关系,就是判断按键是否有一个按下。比如如果按键式P10--P13,可是是if(P1IFG & 0x0f).
{
delayms(50);//延时一下,消抖
switch(P1IFG){
case:Select_i//假设你的按键是P10的话,下降沿,说明本身按键的值都是高电平。注意其他按键的电平。
{
while((P1IN & 0x01) == 0) ;//等待按键松开
keynum = Select;
break;
}
,,,,,,,,//你的处理函数
default:break;
}
P1IFG = 0;//清除中断标志
} 哦 那个清除中断标志的语句应该在if函数之外,结束中断函数的时候。 xiatianzhang 发表于 2012-5-14 10:58 static/image/common/back.gif
你这方法我不能用,你这按键按住不放的话 ,程序就死在哪里了。。。
那就设个标志。 用松手检测程序可以防止抖动 使用上升沿触发,外加一1uF的电容。端口上拉一电阻,下拉一电容,开关一端接地,直接硬件防抖
页:
[1]