矩阵键盘

来自丢石头百科
Yousimaier17讨论 | 贡献2021年9月18日 (六) 15:18的版本
矩阵键盘
矩阵键盘 封面图.jpg
基本信息

分类: 键盘

品牌: 丢石头

功能简介
特性
  • 矩阵键盘。
  • 共16个按键,8个I/O口。

接口

I/O口

相关产品

产品概述

矩阵键盘作为单片机的外接设备,当所需的按键数量较多时,为减少I/O口的占用,提高单片机的利用率,通常会将按键排成矩阵形式。即在矩阵键盘中,每条水平线与垂直线之间是通过一个按键连接的,这样单片机的一个8位端口就可以控制4*4=16个矩阵式按键,相较于直接用端口控制按键的方法多出一倍。而且当线路越多时,区别就越明显。

扫描原理

矩阵键盘的结构相较于独立键盘复杂一些,单片机对其进行的识别也会复杂一些。矩阵键盘的扫描方式有两种:行列扫描法和逐行/逐列扫描法。行列扫描法也称为线反法,适用于矩阵键盘受单片机连续的I/O口控制的情况;逐行/逐列扫描法适用于矩阵键盘被接入了单片机的任意I/O口的情况。在实际单片机应用中更为常用的是行列扫描法。 下面以4*4矩阵键盘为例,其中四条行线(第一行开始)接入单片机的P1.0-P1.3,四条列线(第一列开始)接入P1.4-P1.7。

  • 行列扫描法
    • 使P1口的高四位输出高电平,低四位输出低电平,此时列线被拉高,行线被拉低。假设有按键按下,则某一列的电平将会被拉低,此时读取P1口高四位(四个列)的电平,若读取到的值不全为高电平,说明有按键按下,可通过读取到的值判断是第几列。再使P1口的高四位输出低电平,低四位输出高电平,读取P1口低四位(四个行)的电平,此时读取到的值不再全为高电平,可通过读取到的值判断是第几行。将两次读取的结果组合起来就可以得到当前按键的键值,从而确定按下按键的位置。
  • 逐行/逐列扫描法
    • 逐行/逐列扫描法本质和行列扫描法类似,即给某一行/某一列输出低电平,其余七个全部为高电平,此时读取电平变化,若由低电平则说明有按键键按下,可根据读取的键值判断按键按下的位置。
    • 具体操作如下:将第一行置为低电平,其余三行和四列置为高电平。读取列线的数据,若列线不全为高电平表示第一行有按键按下,可根据读取的数据判断是第一行的哪一列按键按下;若列线全为高电平,则将第二行置为低电平,其余三行和四列置为高电平,读取列线的数据,判断是否有按键按下。重复上述动作,并以此类推。

电路图

矩阵键盘 原理图.png

程序

扫描方式

FAQ

Icon-mail.png 联系 丢石头

我们的工作时间是: 09:00-18:00 (UTC+8 周一到周六)