矩阵键盘扫描方法

您所在的位置:网站首页 逐行扫描法 矩阵键盘扫描方法

矩阵键盘扫描方法

2024-06-04 00:34| 来源: 网络整理| 查看: 265

一、行列扫描法 (单片机为例)

单片机行列式键盘扫描原理如下:

1、行线P10~P13为输出线,列线P14~P17为输入线。一开始单片机将行线(P10~P13)全部输出低电平,列线通电阻上拉到VCC,此时读入列线数据,若列线全为高电平则没有键按下,当列线有出现低电平时调用延时程序以此来去除按键抖动。

2、延时完成后再判断是否有低电平,如果此时读入列线数据还是有低电平,则说明确实有键按下。最后一步确定键值。当判断确实有键按下之后,行线轮流输出低电平,根据读入列线的数据可以确定键值。

3、单片机将P10输出为低电平,其它P11~P13输出高电平,此时读取列线的数据全为高电平,说明没有在第一行有键按下;其次,单片机将P11输出低电平,其它P10、P12、P13仍为高电平。

4、此时再来读取列线数据,发现列线读到的数据有低电平,数值为1011(0x0B),如果我们的键盘布局已经确定,那么0x0B就代表S5的值了。转到S5键功能处理子程序就可以达到目的。

 

二、行列反转法(单片机为例)

 

这里我们规定 P1.0~P1.3为列,P1.7~P1.4 为行

 

 如图所示:单片机键盘扫描方法两种 - 蓝调 - 蓝调电子

第一步: 行线IO P1.7~P1.4置低电平,列线IO P1.0~P1.3置高电平 ,假设K1按下,那么P1.0=0 读P1口 P1=00001110

第二步: 行线IO P1.7~P1.4置高电平,列线IO P1.0~P1.3置低电平假设K1按下,那么P1.7=0 读P1口 P1=01110000

第三步 : 两个字节相加,得到新数据:01111110(第一行 第一列)每按一个键我们都得到不同的字节,比对我们的字节是什么就可以知道键值是什么了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3