当前位置:
首页 >
矩阵式键盘
发布时间:2023/12/10
58
豆豆
矩阵式键盘码值
最近正好学习到了矩阵式键盘,然而当时的我是这样的
这是什么东西!!于是当我决定向百度求助时,依旧一脸懵,但实践出真理嘛。秉持着这个理念,撸起袖子说干就干。
首先,我们要准备的器械有
为了方便理解我将行列分别进行了编号
左边四个接口为行数,右边四个为列数,分别对应第1,2,3,4行。
接下来让我们看看那些码值
哦,是不是一点头绪都没有,不急实验继续。
注意,这里是keypad而不是keyboard
#include <Key.h> #include <Keypad.h> //导入库 const byte ROWS = 4; //行数 const byte COLS = 4; //列数 char keys[ROWS][COLS] = {{'1', '2', '3', 'A'},{'4', '5', '6', 'B'},{'7', '8', '9', 'C'},{'*', '0', '#', 'D'}}; //生成数组keysbyte rowPins[ROWS] = {2, 3, 4, 5};byte colPins[COLS] = {6, 7, 8, 9}; //定义引脚号Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //设置初始化void setup() {Serial.begin(9600);}void loop() {char key = keypad.getKey(); //由键盘输入键值if (key != NO_KEY) { //当键盘输入不为空时Serial.println(key);}}OK,接下来让我们看看运行的结果
在这里放上高低电平反转法的概念以便更方便地理解
假设,当我们按下1时,我们可以由反转法得到,相对应的1号位为零,因此他的行值与列值分别为1110和1110,转换为十六进制则为ee,也就是说此时的1的码值为0xee.
haha,这时,不就和之前的码值相对应了嘛,为了进一步验证其正确性我们再选取一个数进行验证。
假设当8按下时,我们可以得到1011与1101,即 0xdb。
到此对于码值我们应该明白是怎么一回事了,回想当初原来是自己将数值弄反了【捂脸】,当然这也是我个人基于百度的理解,如有错误还请谅解指出。
总结
- 上一篇: 工业机器人 扬州 江都_扬州市14家企业
- 下一篇: pcb设计单点接地示意图_答案:关于PC