应该用的方法叫钳位二极管
是一个4X4的键盘矩阵
只是不知道,算法中是不是用的查表法呢
补充一点:
算法上应该是分别让menu inc dec ok线置“1”
置“1”后
如果还为“1”则
去读其它三条线
否则
说明按下的是最下一排按键
分析键码如下:
menu置1
menu inc dec ok
1 1 1 0 0
2 1 0 1 0
4 1 0 0 1
7 0 0 0 0
inc置1
% 1 1 0 0
3 0 1 1 0
5 0 1 0 1
8 0 0 0 0
dec置1
var 1 0 1 0
q 0 1 1 0
6 0 0 1 1
9 0 0 0 0
ok置1
w 1 0 0 1
f 0 1 0 1
k 0 0 1 1
0 0 0 0 0
可以看到,同一个编码出现了两次,但不同的是置1的线不同,所以这也是那个两极管出现的原因。
小弟初次评论,还有不道之处,多多见谅。
[ 本帖最后由 20100614 于 2010-6-15 18:56 编辑 ]引用:
ok置1
w 1 0 0 1
f 0 1 0 1
k 0 0 1 1
0 0 0 0 0
可以看到,同一个编码出现了两次,但不同的是置1的线不同,所以这也是那个两极管出现的原因。
引用: 除了最下一行四个健外(因为置位的原因)其它的健码你我的全是反码。
引用: ok置1
w 1 0 0 1
f 0 1 0 1
k 0 0 1 1
0 0 0 0 0