标题: 单片机矩阵按键的按键冲突怎么处理? [打印本页]

作者: 18320816316    时间: 2018-11-14 12:19
标题: 单片机矩阵按键的按键冲突怎么处理?
在矩阵按键扫描的时候,会碰到按键冲突,换一种说法,叫鬼键;也就是#字效应;比如#字的4个交叉点,第1个点和第2个点的按键已经按下,这个时候再去按第3个点的按键,这个时候单片机检测到的按键就是3和4同时按下(我没有去按第4点的按键),这种情况怎么处理?

作者: wulin    时间: 2018-11-14 15:02
一般4*4矩阵键盘适合用在单键有效环境,如果用在组合键环境会有条件限制,也就是组合键必须在同行或同列,否则就会出现误码。
作者: 18320816316    时间: 2018-11-14 19:33
wulin 发表于 2018-11-14 15:02
一般4*4矩阵键盘适合用在单键有效环境,如果用在组合键环境会有条件限制,也就是组合键必须在同行或同列, ...

在键盘上,用的就是矩阵按键,鬼键必然会碰到,按键检测的话必然会碰到这种情况。
我想了一个下午,大概有了个思路,需要验证一下。大概的思路如下:
当检测到有按键按下的时候(按键松开不需要处理鬼键),就对该按键的X坐标和Y坐标进行检测,如果X轴上按下的按键大于2并且Y轴上按下的按键大于2,那么这个按键必然是鬼键。
作者: 18320816316    时间: 2018-11-15 16:40
18320816316 发表于 2018-11-14 19:33
在键盘上,用的就是矩阵按键,鬼键必然会碰到,按键检测的话必然会碰到这种情况。
我想了一个下午,大概 ...

今天验证了一下,我的思路是对的;在实验板上,用4个按键控制4个灯;当不做鬼键处理的时候,如果按住按键1和按键2,LED1和LED2亮;这个时候再去按按键3,得到的结果是LED3和LED4同时亮;
做了鬼键处理之后,按按键3,LED3和LED4不动作。同理,如果是用来控制键盘,比如按住A和S,再去按Q,Q是打不出来的,因为做了鬼键处理;如果不做处理的话,按Q键会出2个键。
作者: npn    时间: 2021-11-26 10:34
LED 按下1、或者 3、7、9 同时按下都可以点亮,具体为什么会出现鬼键,请看下图电流走向:







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1