购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.8 数码管显示4×4键盘矩阵按键

当按键较多时,会占用更多的控制器端口。图3-9所示电路中使用了4×4键盘矩阵,大大减少了对单片机端口的占用,但识别按键的代码比独立按键的代码要复杂一些。在程序运行过程中按下不同按键时,该按键序号将显示在数码管上。

图3-9 数码管显示4×4矩阵键盘按键电路

1. 程序设计与调试

在图3-9中,键盘矩阵行线R0~R3连接P2.4~P2.7引脚,列线C0~C3连接P2.0~P2.3引脚,扫描过程如下:

首先在4条行线输出0000,4条列线上输出1111,即P2输出0x0F。如果有任意一个按键被按下,则4条列线上的1111中必有一位变为0,P2的值将由0x0F(00001111)变成0000XXXX,X中有1个为0、3个仍为1。此时P2将有4种可能的值:0x0E,0x0D,0x0B,0x07。由这4个不同的值可知被按下的按键在0~3列中的哪一列。

得到被按下按键的列号后,再执行相反的操作,在4条列线输出0000,4条行线上输出1111,即P2输出0xF0。如果有任意一个按键被按下,则4条行线上的1111中必有一位变为0,P2的值将由0xF0(11110000)变成XXXX0000,X中有1个为0、3个仍为1。此时P2将有4种可能的值:0xE0,0xD0,0xB0,0x70。由这4个不同的值可知被按下的按键在0~3行中的哪一行。

根据被按下的按键所在的列号及行号,很容易得到该按键值(0~F)。

2. 实训要求

① 将键盘矩阵改接在P0,编程实现矩阵键盘扫描及按键值显示。

② 将键盘矩阵行线连接P2低4位,列线连接P2高4位,编程实现矩阵键盘扫描及按键值显示。 SakpTeC23zav/OA9JdykxtheVottDHGjq1EI1VFpbNzo7Q33pAYdsxM7/mbwGHge

3. 源程序代码

点击中间区域
呼出菜单
上一章
目录
下一章
×