標題: 單片機矩陣按鍵的按鍵沖突怎么處理? [打印本頁]

作者: 18320816316    時間: 2018-11-14 12:19
標題: 單片機矩陣按鍵的按鍵沖突怎么處理?
在矩陣按鍵掃描的時候,會碰到按鍵沖突,換一種說法,叫鬼鍵;也就是#字效應;比如#字的4個交叉點,第1個點和第2個點的按鍵已經(jīng)按下,這個時候再去按第3個點的按鍵,這個時候單片機檢測到的按鍵就是3和4同時按下(我沒有去按第4點的按鍵),這種情況怎么處理?

作者: wulin    時間: 2018-11-14 15:02
一般4*4矩陣鍵盤適合用在單鍵有效環(huán)境,如果用在組合鍵環(huán)境會有條件限制,也就是組合鍵必須在同行或同列,否則就會出現(xiàn)誤碼。
作者: 18320816316    時間: 2018-11-14 19:33
wulin 發(fā)表于 2018-11-14 15:02
一般4*4矩陣鍵盤適合用在單鍵有效環(huán)境,如果用在組合鍵環(huán)境會有條件限制,也就是組合鍵必須在同行或同列, ...

在鍵盤上,用的就是矩陣按鍵,鬼鍵必然會碰到,按鍵檢測的話必然會碰到這種情況。
我想了一個下午,大概有了個思路,需要驗證一下。大概的思路如下:
當檢測到有按鍵按下的時候(按鍵松開不需要處理鬼鍵),就對該按鍵的X坐標和Y坐標進行檢測,如果X軸上按下的按鍵大于2并且Y軸上按下的按鍵大于2,那么這個按鍵必然是鬼鍵。
作者: 18320816316    時間: 2018-11-15 16:40
18320816316 發(fā)表于 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 同時按下都可以點亮,具體為什么會出現(xiàn)鬼鍵,請看下圖電流走向:







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1