现在普遍的键盘矩阵其实采用了类似的方式的。
25 个键!5 个 IO 口扫出 25 个键!假设扫键流程:先扫对地的 5 个键,再如图五扫键。先扫对地 5 个键,判断没有按键,接着对逐一对 IO 口进行扫键。但当对某一 IO 口扫键时,如果有对地的键按下,这时有可能会误判按键,因为对地键比其他键有更高的响应优先级。例如:扫 IO1,IO1 输出“0”,恰好此时 K62 按下,IO2 检测到有按键,那就不能判断是 K11 还是 K62。我们可以在程序上避免这种按键误判 :若 IO2 检测到有按键,那下一步就去判断是否有对地键按下,如果没有,那就可以正确地判断是 K11 了。