首页 理论教育 矩阵键盘位操作法|单片机原理与应用技术

矩阵键盘位操作法|单片机原理与应用技术

时间:2026-01-26 理论教育 眠眠 版权反馈
【摘要】:从工程实践中总结出一种矩阵键盘“位操作法”,在满足键盘操作的前提下,把剩余的I/O口线分离出来使用,该法对资源的利用率高。矩阵键盘位操作法电路示例见图5-2。图5-2 矩阵键盘位操作法电路示例3)赋予键值。

扫描法和反极法都是按字节对I/O口操作。上述3×4矩阵键盘只用到P1口7条I/O口线,剩下的一条不能再作为独立I/O口线使用。应用系统中有时就是缺了一条I/O口线而不得不采用附加芯片扩展I/O口,颇显麻烦和浪费。从工程实践中总结出一种矩阵键盘“位操作法”,在满足键盘操作的前提下,把剩余的I/O口线分离出来使用,该法对资源的利用率高。

位操作法的思路并不复杂,实质上是对三条位指令的一种灵活应用,它们是:CLRbit(位清零)、SETBbit(位置1)和JNBbit(位比较跳转)。

1.位操作法的基本步骤

位操作法仍然遵循扫描法的4个步骤,不同的是操作用了位指令来替代字节指令。矩阵键盘位操作法电路示例见图5-2。

1)先把行输出线逐位清为低电平,对列输入线用位比较指令作逐位扫描,有键按下的列线则变为低电平,需加入去抖动延时措施,并重新检查以判断按键已稳定。

2)把行线逐条清为低电平(每次只有一条行线置低),其余行线置为高电平,然后用位比较指令作逐列扫描,以确定按键所在的列。

图示

图5-2 矩阵键盘位操作法电路示例

3)赋予键值。(https://www.xing528.com)

4)把行输出线逐位清为低电平,对列输入线用位比较指令作逐位扫描,若列线全部为高电平,表示按键已释放,也需加入去抖动延时措施,并重新检查以判断按键已稳定。

整个键盘操作过程对P1.7口没有影响,可独立出来作I/O口线使用,例如图中用作驱动VL指示灯。

2.矩阵键盘位操作法的编程举例

图5-2的“0~9,A,B”对应的键值为:73H,6BH,5BH,3BH,75H,6DH,5DH,3DH,76H,6EH,5EH,3EH。下面是汇编语言子程序:

图示

图示

图示

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈