键盘拖毛与键盘遮蔽

来源:互联网 发布:淘宝拍a发b那个平台好 编辑:程序博客网 时间:2024/05/01 18:42

键盘的电路属于矩阵式,也就是各个引脚之间连线相互交叉,在这些交叉点上安排按键。键盘控制器探测到闭合电路就认为是键被按了。

下图是一个简单的键盘。

 




其中A,B,C,D是4个按键,分别位于结点R1C1,R1C2,R2C1和R2C2。

实际的电路大概是这样的。

 




检测按键按下的时候,键盘控制器对所有的列逐一通电。若A,B,C,D均没有按下,则R1,R2没电。

若按下A键,则C 1通电时R 1带电,C2通电时R1,R2不带电,可知A键被按下了。如下图所示。

 




同理可知一个键被按下的情况。

若A和D两键同时按下,则C 1通电时R1带电,C2通电时R2带电。如下两图所示。


 

同理可知其他两键被按下的情况。

若同时按下A,B,D三键,则会产生键盘拖毛与键盘遮蔽。

给C 1通电时,如下图所示,R1和R2都会带电。 

因为给C1通电时R2带电,所以C键会被认为按下了,其实并没有按下,这就是传说中的键盘拖毛。

若此时按下C键,因为C键已经被认为是按下了,所以没有反应,这就是传说中的键盘遮蔽。放开B键也是一样的问题,会被认为没有放开。

在qwerty键盘上,同时按下 “e”和 “c”是再按 “u”的话大概会产生键盘遮蔽的现象。

再其他的键盘布局,如azerty或dvorak貌似没有这种问题。

解决办法:加装二极管,如图所示。 

可以使用1N4148开关二极管,每个大约两分钱。

原作者Dave Dribin

原创粉丝点击