一、开发板原理图
我们可以看到这个键盘是4*4的,行可以由4个数据接口接收(P1_4~7),列可以由4个数据接口接收(P1_0~3)。
所以我们可让行作为扫描方向,或者列作为扫描方向,进行按键扫描。如何扫描?让4个端口输入,4个端口接收,如果接收到了输入的数据则代表按键按下,电路连通。
比如,我们初始化P2=0xFF,即所有的P2_x都是高电平。然后让P1_0 = 0,去检测P1_4~7哪一个是低电平,这样就完成了最后一列的扫描。
所以,这个很简单的只需要对,端口直接操作即可。
二、矩阵按键按下返回数字
这里需要我们用LCD1602进行显示,看到我们的数据。(或者你也可以用串口输出,都是ok的,只是一种验证的方法)。LCD1602是一个显示器,可以直接找到它的.c.h 文件,直接使用就可。
我们先看列扫描的代码
#include <REGX52.H>
#include "Delay.h"
/**
* @brief 矩阵键盘读取按键键码
* @param 无
* @retval KeyNumber 按下按键的键码值
如果按键按下不放,程序会停留在此函数,