矩阵键盘的 PCB 接法核心是利用行列扫描来减少所需微控制器 IO 引脚的数量。其基本思路是将按键排列成行和列的网格,按键位于行线和列线的交叉点上。
以下是详细的 PCB 接法步骤和要点(以常见的 4x4 键盘为例):
-
规划行和列:
- 确定键盘的行数
R和列数C。例如,一个 4x4 键盘有 4 行 (R0, R1, R2, R3) 和 4 列 (C0, C1, C2, C3),总共 16 个按键。 - 所需微控制器 IO 引脚总数 =
R + C(4+4=8 个)。
- 确定键盘的行数
-
PCB 布线 - 行线:
- 在 PCB 上绘制
R条水平的导线作为行线。每条行线连接该行所有按键的一个引脚(通常是按键的一端)。 - 连接方式: 同一行上的所有按键的“行引脚”都直接相连在这条行线上。
- 每条行线的末端(通常会连接到微控制器)建议串联一个限流电阻(例如 220Ω - 1kΩ)。这个电阻主要起保护作用,防止意外将行线配置为输出低电平时,列线输出高电平造成的短路。
- 在 PCB 上绘制
-
PCB 布线 - 列线:
- 在 PCB 上绘制
C条垂直的导线作为列线。每条列线连接该列所有按键的另一个引脚(按键的另一端)。 - 连接方式: 同一列上的所有按键的“列引脚”都直接相连在这条列线上。
- 每条列线的末端(通常会连接到微控制器)建议连接一个上拉电阻(例如 4.7kΩ - 10kΩ)到 VCC(电源正极)。
- 在 PCB 上绘制
-
按键连接:
- 每个按键的两个引脚,一个连接到它所在行的行线,另一个连接到它所在列的列线。
- 按键本身在未按下时是断开的,按下时会将对应的行线和列线短接。
-
添加二极管(防鬼键 - 强烈推荐!):
- 为什么需要: 当同时按下多个按键时(尤其是在某些组合下),可能会产生被称为“鬼影”或“重影”的误判按键。要支持无冲突的多键按下(NKRO 或至少 6KRO),必须在每个按键上串联一个二极管。
- 接法:
- 将二极管的阳极 (A) 连接到按键的行引脚侧(即按键连接到行线的那一端)。
- 将二极管的阴极 (K) 连接到按键的列引脚侧(即按键连接到列线的那一端)。
- 方向性至关重要: 所有二极管的阴极必须朝向列线(或朝向微控制器的列 IO 引脚)。
- 作用: 二极管只允许电流从行线(阳极)流向列线(阴极)。当某行被拉低时,即使有其他按键按下,电流也无法反向流入其他行,从而防止了错误的闭合回路形成,消除了鬼键现象。
- 二极管选择: 常用小型开关二极管,如 1N4148。
-
去耦电容:
- 在 PCB 的 VCC 和 GND 之间靠近键盘接口的地方,放置一个去耦电容(例如 0.1uF 陶瓷电容)。这有助于滤除电源噪声,提高扫描可靠性。
-
连接微控制器:
- 行线: 将
R条行线连接到微控制器的R个 IO 引脚。在软件中,这些引脚通常配置为输出。扫描时,一次只有一行被设置为低电平(扫描行),其他行设置为高电平(或高阻态)。 - 列线: 将
C条列线连接到微控制器的C个 IO 引脚。在软件中,这些引脚通常配置为输入(通常使能内部上拉电阻,如果外部已接上拉,内部上拉可禁用或保留)。上拉电阻确保列线在无按键按下时为高电平。当扫描行被拉低,且该行某列的按键被按下时,对应的列线会被拉低(通过闭合的按键和行线的低电平),软件通过检测列线的电平变化(低电平)来判断哪个按键被按下。
- 行线: 将
PCB 设计示意图(文字描述,4x4 带二极管):
VCC
|
/ \ \ 上拉电阻 (4.7kΩ x4)
\ / / (RP1 - RP4)
| | | |
C0 ----|<|---O----|<|---O----|<|---O----|<|---O---- [MCU Col0 Pin] (输入, 带上拉)
| D | D | D | D | (二极管阴极 K ->)
| | | | |
C1 ----|<|---O----|<|---O----|<|---O----|<|---O---- [MCU Col1 Pin] (输入, 带上拉)
| D | D | D | D |
| | | | |
C2 ----|<|---O----|<|---O----|<|---O----|<|---O---- [MCU Col2 Pin] (输入, 带上拉)
| D | D | D | D |
| | | | |
C3 ----|<|---O----|<|---O----|<|---O----|<|---O---- [MCU Col3 Pin] (输入, 带上拉)
| D | D | D | D |
| | | | |
O O O O O <- 按键符号 (O)
| | | | |
| | | | |
R0 ====+===+===+===+====== [MCU Row0 Pin] (输出) 串联保护电阻 (Rprot x4)
R1 ====+===+===+===+====== [MCU Row1 Pin] (输出) |
R2 ====+===+===+===+====== [MCU Row2 Pin] (输出) |
R3 ====+===+===+===+====== [MCU Row3 Pin] (输出) |
| | | | (行线,水平)
GND GND GND GND (按键下方的连接点连接到对应的行线)
图例:
--- 列线 (垂直)
=== 行线 (水平)
O 按键位置 (位于行列交叉点)
>| 二极管 (三角形阴极指向列线方向)
RPx 列线上拉电阻
Rprot 行线保护电阻 (可选但推荐)
关键总结:
- 正交网格: 行线水平走,列线垂直走,按键在交叉点。
- 二极管方向: 必须每个按键串联二极管,阴极 (K) 朝向列线(或列 IO 引脚)。
- 列线上拉: 每条列线末端接上拉电阻到 VCC(或使用 MCU 内部上拉)。
- 行线保护: 行线末端串联小电阻(可选但推荐)。
- 去耦电容: VCC/GND 间加 0.1uF 电容。
- 扫描逻辑(软件):
- 输出模式: 所有行线引脚设置为输出。
- 输入模式: 所有列线引脚设置为输入(使能上拉)。
- 逐行扫描:
- 设置当前扫描行输出为低电平。
- 其他所有行输出高电平(或设为高阻输入状态)。
- 读取所有列线引脚的电平。
- 如果某列引脚读到低电平,则表示当前扫描行与该列的交叉点按键被按下。
- 循环扫描所有行。
遵循以上步骤和要点进行 PCB 设计和布线,即可得到一个稳定可靠、支持防鬼键功能的矩阵键盘电路。务必仔细检查二极管的方向和行列线的连接是否正确。
矩阵键盘的基本原理讲解
矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
2019-11-21 07:09:00
矩阵键盘的按键识别方法_矩阵键盘扫描程序
矩阵键盘的按键识别方法来自简单日记网精选推荐。在学习有关矩阵键盘的时候,往往要学会矩阵键盘的按键识别方法,那么矩阵键盘的按键识别方法有哪些呢?小编带着你来了解。
2020-04-20 09:39:00
基于51单片机的矩阵键盘设计
,矩阵键盘则是一种尽可能的既不用驱动芯片又能最大限度的使用大量按键的方法,一个a行b列的矩阵键盘,它所占用的端口数量是a+b个端口,所控制的按键数量则是a×b个按键,比如常见的4×4矩阵键盘只需要占用8个端口就可以控制16个按键,矩阵键盘的接法如下图所示。
2023-01-17 16:23:40
什么是矩阵键盘?矩阵键盘扫描原理介绍
矩阵键盘矩阵键盘简介矩阵键盘扫描原理端口的配置相关函数的编写主函数与其他串口的接线与矩阵键盘的接线load与运行调试矩阵键盘简介什么是矩阵键盘矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组
宜家
2022-02-28 06:32:19
矩阵键盘扫描的原理及设计
设计中在遇到按键较多,但是单片机I/O资源有限时,采用矩阵键盘是一种很好的选择方案。在按键较少时,矩阵键盘没有明显的优势,比如3×3矩阵键盘占用I/O口6个,只支持9个按键;但是,按键较多时,矩阵键盘的优势就凸显出来了,比如5×5矩阵键盘占用I/O口10个,可支持25个按键;
2022-07-05 14:59:29
键盘扫描矩阵电路,两种接法到底有什么不同
空间,至少我是这么认为的。 然而前段时间一位***朋友画给我的键盘扫描矩阵电路(见下图接法二),让我又一次看到到自己的思维还有许多地方被自己的所谓“经验”束缚着。 单纯的从硬件接法看,两种接法
说的好像真的
2021-09-07 06:30:00
什么是矩阵键盘
矩形键盘介绍什么是矩阵键盘矩阵键盘的原理驱动电路图软件程序实现介绍什么是矩阵键盘矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组,由于电路设计时需要更多的外部输入,单独的控制一个按键需要浪费
卿小知1
2022-01-07 07:43:13
矩阵键盘的使用方法
首先呢,大家都知道:历年的蓝桥杯单片机组都会考到按键模块;对于国赛来说,考矩阵键盘的概率远远高于独立按键,所以必须将矩阵键盘的用法吃透来。现在来给大家介绍矩阵键盘的使用方法(基于状态机)1、使用矩阵
小佳99
2022-01-12 06:12:02
矩阵键盘怎么操作
矩阵键盘矩阵键盘的实现和动态数码管有一定的相似之处,动态数码管是循环通过段选来点亮.而矩阵键盘(4*4)是循环检测键值判断是否按下.在上面的矩阵键盘中,要识别出黄色按键的按下状态,应该怎么做呢
HCPcry
2022-01-07 06:28:47
为什么用矩阵键盘
提示:这里主要围绕4*4矩阵键盘,其他结构键盘的原理可通用。一、为什么用矩阵键盘我们在做独立键盘实验的时候,独立键盘与单片机连接时,每一个按键都需要一个独立的I/O口。如果某单片机系统需要较多按键
sgaasag
2022-01-07 06:44:50
矩阵键盘长短按的识别
定时器三行代码 矩阵键盘长短按的识别 九层妖塔 起于垒土【蓝桥杯】—{模块}—{矩阵键盘Part_1}矩阵键盘四、Template2矩阵键盘四、Template2
hy381
2021-12-09 07:52:21
proteus矩阵键盘仿真电路
proteus矩阵键盘仿真电路,本文通过在proteus上搭建51单片机的矩阵键盘电路并联合keil编程软件编写的源程序进行8*8矩阵键盘仿真,进而熟悉proteus仿真软件的仿真操作。目录(一)4
tulin
2021-07-15 08:27:27
矩阵键盘和独立键盘的原理介绍
学到矩阵键盘这一块对网上别人写的C代码有些疑问,希望有能看到的大牛帮助解答。矩阵键盘和独立键盘原理图:原理:对于图右侧的矩阵键盘,把P3口的低四位(P3.0 ~ P3.3)和高四位(P3.4
zaichenxi
2022-01-13 08:10:14
矩阵键盘的识别方法
键盘目录键盘独立键盘和矩阵键盘示意图独立键盘独立键盘和矩阵键盘示意图独立键盘:每个按键占用一个IO口,当按键数量较多时,IO口利用效率不高,但程序简单,适用于所需按键较少的场合;矩阵键盘:电路连接复杂,但提高了IO口利用率,软件编程较复杂。适用于使用大量按键的场合;独立键盘...
小嘛小二郎呀
2022-01-07 08:28:15
矩阵键盘介绍
介绍矩阵键盘是通过行列扫描检测,相当于坐标确定按键按下的位置。矩阵键盘相对独立按键来说,占用I/O口较少,4X4键盘共16个位置,占用了8(4+4)个I/O口。独立按键8个I/O口对应8个按键
fansz
2022-01-13 07:06:14
为什么用矩阵键盘?
10、KeyPad矩阵键盘,Proteus提供了多种矩阵键盘,有计算器,电话机,以及自定义的布局,封装多个按键更形象生动。再讲矩阵键盘的原理前,还是讲讲为什么用矩阵键盘?当按键数量很多时,为了节约
kdsnvjsnjk
2021-07-13 08:33:05
矩阵键盘设计相关资料下载
九层妖塔 起于垒土【蓝桥杯】—{模块}—{矩阵键盘}矩阵键盘1、原理图二、状态机定时器1、Template:矩阵键盘1、原理图二、状态机定时器1、Template:
可口可甜
2021-12-09 08:28:08
独立键盘和矩阵键盘简析
小白的学习笔记参上!!点击我的蓝色字体去往我的笔记就行了,我来整合一下目录,方便大家一起交流准备*.1蓝桥杯的板子的初始化和蜂鸣器关闭1.流水灯流水灯学习2.独立键盘和矩阵键盘2.1 独立键盘2.2 矩阵键盘独立键盘练习时的插曲3.定时器与数码管3.1定时器的学习小白还在更新哦!...
lique
2022-01-17 06:14:34
基于CPLD 的矩阵键盘扫描模块设计
摘要: 为了在不增加CPU工作负担的前提下,实现标准键盘和矩阵键盘双键盘同时工作,提出了一种基于复杂可编逻辑器件(CPLD)的矩阵键盘扫描方案,实现了在矩阵键盘状态控制下CPLD 自动完成键盘扫描
糖栗子
2021-06-25 07:00:00
矩阵键盘的相关资料分享
STM32矩阵键盘简介1.硬件部分2.软件部分硬件部分矩阵键盘的工作方式对键盘的响应取决于键盘的工作方式,键盘的工作方式应根据实际应用系统中的CPU的工作状况而定,其选取的原则是既要保证CPU能及
hfgfsds
2022-01-20 06:27:21
通过采用DSP芯片实现非编码矩阵键盘的设计
键盘的结构通常有两种形式:线性键盘和矩阵键盘。在线性键盘中,每个按键都和一个I/O口连接,资源利用率不高,一般只适用于按键较少的场合。矩阵键盘连接方式利用(N+M)个I/O口,可以输入(N×M)个按键开关。根据矩阵键盘识别键值方式的不同,又可分为编码式键盘和非编码键盘两种。
2020-03-06 10:34:22
独立键盘检测与矩阵键盘检测
独立键盘检测与矩阵键盘检测一、独立键盘检测1、工作原理2、举例2.1 位定义2.2 数码管显示3.3 按键2.4 中断服务函数2.5 完整程序二、矩阵键盘检测1、工作原理2、程序实现3、例子一、独立
hjhdf
2021-07-20 06:20:58
矩阵键盘的基本扫描步骤
一、模块题目二、原理简述1、矩阵键盘的扫描思想(转载+删减)与独立按键不同的是,按键的两个引脚都分别连接的单片机的I/O端口,一个作为行信号,另外一个作为列信号。下以4X4的矩阵键盘为例,探讨其
微风挽雨
2022-01-11 07:00:17