本帖最后由 ff107538818 于 2014-9-10 17:19 编辑
一个敲出来的,慢慢看吧
unsigned char keysta=1; //按键状态值,当键倍按下或者弹起时相应变化, keysta 在定时器、延时、中断里消抖后赋值
void main()
{
unsigned char keybackup=1; //保存上次键盘按下或弹起的值
while(1)
{
if(keybackup!=keysta)
{
if(keybackup==0) //keybackup==0 判断等于0时,就是按键弹起时动作(上升沿触发), keybackup==1 判断 等于1时就是按键按下时动作(下降沿触发),
{
//执行要处理的动作
}
keybackup=keysta;
}
}
} |