请问单片机4*4矩阵键盘如何检测并返回多个按键按下的键值和多个按键抬起的键值?(注:不使用死循环)

2024-12-17 08:37:40
推荐回答(2个)
回答1:

你按键要是没有松手检测的话,按键按下后程序会执行一次按键一的数据,然后在执行按键2的数据,按键1和按键2就成了循环检测了,执行两个按键事件,如果按键有松手检测的话,例如按键1按下,程序会在按键1哪里等待按键松手后,才会跳出按键,否则按键会一直死在哪里等待按键松手,希望我的回答对你有帮助!

那就用这种方法解决:

if(keyxxx == 0)
{
if(++i <= 10)
return;
//
if(keyxxx == 0)
{
i = 0;
//处理按键程序
}
}

if(keyxxx == 0)
{
if(++y <= 10)
return;
//
if(keyxxx == 0)
{
y = 0;
//处理按键程序
}
}

回答2:

定时 5ms 检测一次,比较两次的结果,
无论是按下、还是释放,都可以检测出来。