矩阵键盘
更多
好的,我们来详细解释一下 矩阵键盘。
矩阵键盘 是一种常见的键盘结构设计,特别适用于需要 多个按键但希望减少所需输入/输出 (I/O) 引脚数量 的场合,比如微控制器(单片机)项目、密码锁、遥控器、计算器等。
核心思想:行列扫描
传统上,如果每个按键都独立占用一个 I/O 口,那么 n 个按键就需要 n 个 I/O 口。这在大键盘(例如 16 键、32 键)上会非常消耗宝贵的 I/O 资源。
矩阵键盘的核心思想是将按键布置在一个 网格结构 中,形成 行(Rows) 和 列(Columns):
- 物理结构: 按键像棋盘一样排列在行线和列线的交叉点上。
- 连接方式:
- 每一行(Row)上的所有按键,其 一端 都连接在同一条行线(行总线)上。
- 每一列(Column)上的所有按键,其 另一端 都连接在同一条列线(列总线)上。
- I/O 需求: 对于一个 m 行 n 列 的矩阵键盘:
- 只需要
m + n个 I/O 端口 就可以检测m * n个按键。 - 例如:4行4列的键盘有 4 + 4 = 8 个 I/O 口,却能支持 4 * 4 = 16 个按键。非常节省端口资源!
- 只需要
工作原理:扫描检测
检测哪个按键被按下,是通过 逐行扫描(扫描行) 并 检测列线状态 来实现的:
- 配置:
- 将 所有行线(Rows) 设置为 输出模式。
- 将 所有列线(Columns) 设置为 输入模式(通常还需要配置内部或外部上拉电阻,使空闲时列线为高电平)。
- 行扫描(激活行):
- 程序 依次 将其中 一行(Row) 设为 低电平(0)(表示激活这一行进行扫描),同时将其他所有行设为 高电平(1) 或者高阻态(让其他行不产生影响)。
- 列检测(读取列):
- 读取 所有列线(Columns) 的状态。
- 由于被激活的那一行是低电平:
- 如果这行上 某个按键(位于被激活行与某列的交叉点)被按下,则该按键会将它所连接的那根 列线 也 拉低到低电平(0)(电流路径:列线 -> 按键 -> 低电平的行线 -> 地)。
- 这行上 未被按下的按键 所连接的列线,由于上拉电阻的作用,会 保持高电平(1)。
- 因此,检查当前被扫描行对应的情况下,哪些列线是低电平(0),就能确定该行上 哪些按键被按下了。
- 循环:
- 重复步骤 2 和 3,依次激活下一行,并读取列线状态。
- 扫描完所有行后,又从第一行开始,如此循环(扫描周期)。
关键步骤总结
- 使能第 i 行 (拉低第 i 行): 设置第 i 行为输出低电平。
- 扫描所有列 j: 读取所有列的状态。
- 如果第 j 列读取到低电平(0) -> 说明位置
(i, j)的按键被按下。 - 如果第 j 列读取到高电平(1) -> 说明位置
(i, j)的按键没被按下。
- 如果第 j 列读取到低电平(0) -> 说明位置
- 使能下一行 (拉低第 i+1 行): 设置第 i+1 行为输出低电平,第 i 行恢复为高电平或高阻态。
- 重复步骤 2: 扫描所有列,检查新行上的按键。
- 循环往复: 完成一轮所有行(0 到 m-1)的扫描。
主要优点
- 节省 I/O 资源: 最大优势!按键数量呈几何级数(乘积)增长时,所需 I/O 数量是线性增长(加法)。例如:16键只需8个口(4x4),36键只需12个口(6x6)。
- 结构相对简单: 布线比全独立按键清晰。
- 成本效益高: 尤其对于按键数量较多的设备。
需要考虑的问题
- 消抖: 和独立按键一样,机械按键在按下和释放时会产生抖动(电平快速跳变),需要在软件中进行 消抖处理,通常采用延时或状态机判断。
- 扫描算法: 需要编写扫描程序。
- “假按键”问题 (Ghosting): 在大的或复杂的矩阵中(特别是使用并行读且无二极管时),同时按下特定组合的键(比如某个矩形的四个角),可能导致程序错误地检测到实际并未按下的“幽灵”按键。
- 解决方法: 在键盘上每个按键上加一个 隔离二极管 (放置在行和列之间),只允许电流从列流向行,防止干扰通路形成(反向二极管截止)。或者在设计上避免产生歧义的按键组合。现代商用的薄膜矩阵键盘通常在制造时就解决了这个问题。
应用场景
- 嵌入式系统项目 (Arduino, Raspberry Pi, 单片机开发板)
- 密码锁、门禁控制面板
- 计算器、小键盘
- 遥控器
- 工控设备操作面板
- 游戏手柄(部分按键)
- 各种需要多个按键输入的电子设备
与薄膜键盘的关系
- 我们常用的电脑键盘(薄膜键盘)内部结构其实就是 矩阵键盘。
- 它通常包含三层柔性薄膜:
- 上层膜: 带有行线路的导电轨道。
- 中层膜: 绝缘层,在按键位置开孔。
- 下层膜: 带有列线路的导电轨道。
- 按下按键时,上层膜被挤压变形,通过中层开孔与下层膜接触,将特定的行和列短路连接起来,与前面所述的原理完全一致。
希望这个详细的中文解释能帮您彻底理解矩阵键盘!如果您有具体关于实现(如代码、电路图)的问题,也请随时提出。
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览