##解疑 51单片机独立按键的代码
有哪位可以解释一下这串代码的意思嘛 就是怎么运行的 看了半天实在没看懂它的逻辑关系
第一个if的条件是backup[i] != KeySta[i] 这两个数组一开始都赋了初值了啊 不就一直相等吗 那不就进不去if函数内部吗
第二个if条件backup[i] != 0一直是正确的啊 所以它怎么检测的按键是否按下的啊 按照这个不应该总是按下的吗
uchar pdata KeySta[4] = { //4位独立按键当前状态
1, 1, 1, 1
};
void KeyDriver()
{
uint8 i;
static uint8 pdata backup[4] = { //4位独立按键备份值
1, 1, 1, 1
};
for (i=0; i<4; i++)//循环检测4个独立按键
{
if (backup[i] != KeySta[i])//检测按键
{
if(backup[i] != 0) //如果按键按下
{
KeyAction(KeyCodeMap[i]); //调用按键动作函数
}
backup[i] = KeySta[i];//刷新备份值
}
}
}