一、矩阵键盘介绍
1、独立按键和矩阵键盘实物图及其原理图
可以看到矩阵键盘是4*4的一个结构,而独立按键是2*4的结构
从原理图可以看到,二者按键数量虽然不同,但I/O口数量均为8个,这也就是矩阵键盘的优势所在,大大减少了外设对I/O口的使用;
独立按键:4个按键为一小组,一端接GND(低电平),另外一端连接4个I/O口,也就是说,通过给予I/O口高低电平进行按键的扫描
矩阵键盘:低四位(接口1234)控制行,高四位(5678)控制列,也就是说整个按键就是一个坐标图,通过(行,列)/(列,行)坐标来进行扫描,从而判断哪个按键被按下。
2、两种扫描方式(逐行扫描、逐列扫描)
两组扫描方式其实原理都一样,区别就在于先扫描行还是先扫描列,如若先扫描行,那就是逐行扫描,反之则就是逐列扫描;
(1)逐行扫描
逐行扫描就是说先扫描第一行中的哪个按键按下了,如果没有再扫描第二行,看一下是不是第二行里的某个按键按下了,如果还没有找到按下的那个按键,那么就继续扫描第三行、第四行,知道找出哪个按键被按下了。
(2)逐列扫描
行列扫描就是说先扫描所有的行,确定是哪一行的按键被按下了,之后再扫描所有的列,找出哪一列有按键被按下了,这样只要扫描两次就可以确定出到底是哪个按键被按下了。
接下来科普一下:
二、传统51单片机I/O口的工作模式
描述:通过前面的输入输出的内容(LED控制与按键的使用),我们对控制I/O口有了一个基本的了解。如果需要输出高低电平,可以对该引脚进行写"1"或者"0";如果需要读取I/O的电平,直接判断该引脚是高电平或者低电平既可。
在程序上对P0 ~ P3的输入输出控制是一样的,但实际上它们内部结构是不一样的
1、开漏输出(双向I/O口)模式(P0)
输出:可以输出低电平,不能输出高电平(如果需要输出高电平,则引脚端需要在外部接上 拉电路,增强驱动能力)