举例说明矩阵按键的运行
时间: 2024-02-16 19:00:45 浏览: 21
假设有一个4x4的矩阵按键,按键排列如下:
| | 1 | 2 | 3 | 4 |
|----|----|----|----|----|
| 1 | A | B | C | D |
| 2 | E | F | G | H |
| 3 | I | J | K | L |
| 4 | M | N | O | P |
其中,A、B、C、D 分别对应矩阵的第一行交叉点,E、F、G、H 分别对应矩阵的第二行交叉点,以此类推。
控制器的IO口连接到矩阵的行和列上,如下图所示:
```
COL 1 COL 2 COL 3 COL 4
| | | |
+----+-----+-----+-----+-----+
R | 1 | A | B | C | D |
+----+-----+-----+-----+-----+
O | 2 | E | F | G | H |
+----+-----+-----+-----+-----+
W | 3 | I | J | K | L |
+----+-----+-----+-----+-----+
1 | 4 | M | N | O | P |
+----+-----+-----+-----+-----+
```
控制器首先将所有行设置为低电平,然后逐个遍历每一列,检测是否有按键被按下。假设第一列被按下,控制器会得到以下信息:
- 第一列有按键被按下。
- 被按下的按键分别是第一行和第二行的按键。
然后,控制器将所有列设置为高阻态,将所有行设置为输入模式,逐个遍历每一行,检测是否有按键被按下。假设第二行被按下,控制器会得到以下信息:
- 第二行有按键被按下。
- 被按下的按键是第二行第二列的按键。
通过行和列的交叉点确定哪个按键被按下,即可得到最终结果:按下了 F 键。