51单片机4x4矩阵键盘矩阵键盘

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端而列线所接的I/O口则作为输入。矩阵键盘的优点是节约单片机IO口例如普通键盘8个IO口只能用作8个按键,而矩阵鍵盘能作16个按键

本文以51单片机4x4矩阵键盘为载体介绍一种4*4矩阵键盘实现16个按键操作的原理、电路和软件设计要点。

1、 矩阵键盘的一般电路

矩阵键盘电路所示4*4矩阵键盘有4行4列按键,单片机4个I/O口接矩阵键盘的行线另外4个I/O口接矩阵键盘的列线,通过对行线列线的操作完成按键嘚识别和操作

矩阵键盘按键识别的流程一般是这样的:

(1)置第1行为低电平(0),其余行为高电平读取列线数据,列线有低电平表示此行有按键按下

(2)置第2行为低电平(0),其余行为高电平读取列线数据,列线有低电平表示此行有按键按下

(N-1)根据行线列线的電平不同可以识别是否有按键按下,哪一个按键按下获取按键号。

(N) 根据按键号跳转至对应的按键处理程序

3、 一个矩阵键盘程序的唎子

2为按键处理的主流程,思路是依次拉低按键的各个行再读取列线的数据,假如列线有低电平则认为此行有按键按下,标记此行有按键按下并存入行值

读取列线数据的思路则是这样,依次读取第1-4列假如读取此列时为低电平,则标记并存入列值

//(1)按键识别程序

//依次拉低第1234行,读入列线数据

//表示第一行有按键按下

//获取按键号例如0001

1101表示第1行第2列的按键按下

//表示第2行有按键按下

//表示第3行有按键按下

//表示第4行有按键按下

//(2)读取列线数据

表示第1列按键按下。 key_column的低4位表示按键号高4位常为1111

以上程序对应的键值表如下:

最后在程序中处理鍵值跳转至相应的操作即可。

有一个4*4矩阵键盘的proteus仿真例子实现了如下功能:

1、利用行扫描法读取4x4矩阵键盘键值;

2、LCD1602上显示按下的按键值

}

;4X4矩阵键盘程序主要原理为扫描鍵盘矩阵时,每次只有一行电平拉低在逐次扫描拉低的这些行的同时,去读那些列的电平
;被拉低的行上,按下的键对应的列的电平为0 其它为1. 用左移位的指令,在进位位CY里就可以检测出是0还是1.为1表示无按下
;为0表示该键按下。在扫描按键时如无按下,则取码指针R1加1后继续扫描 。如有键按下转按键处理子程序,按键按下标志位
;F0清0(表示按下)此时,取码指针的值就是按键的键名。 随后继续进入按键檢测子程序重新扫描
;注:本程序只通过仿真,因无按键防抖实物中正常与否,未能确定


}

我要回帖

更多关于 51单片机4x4矩阵键盘 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信