找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 116|回复: 4
打印 上一主题 下一主题
收起左侧

夏普SHARP EL506P计算器 矩阵键盘是什么布置方式?

[复制链接]
跳转到指定楼层
楼主

夏普SHARP EL506P计算器 矩阵键盘是什么布置方式?
10个IO口,5*5=25,为什么图示能设计成42按键
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1133081 发表于 2026-1-7 20:45 | 只看该作者
按图示行列方式最多可以接45个按键,按1-9到9-1轮询。
回复

使用道具 举报

板凳
ID:69038 发表于 2026-1-7 23:08 | 只看该作者
这个叫梯型键盘,最多可接(IO数*(IO数-1)/2)个按键。也叫L型键盘。
相对平行矩阵接法,10个IO,最多能接5*5个按键,极端方式可接5*7(加上GND、VDD),
梯型键盘的优级点是IO开销少。如果加上开关二极管,能接更多按键。但软件开销的也相当大。
但缺点也有,就是不能识别复合键(多键同时按下),平行矩阵可以识别复合键(在GND和VDD线的按键除外)。
回复

使用道具 举报

地板
ID:584814 发表于 2026-1-8 12:44 | 只看该作者
zhuls 发表于 2026-1-7 23:08
这个叫梯型键盘,最多可接(IO数*(IO数-1)/2)个按键。也叫L型键盘。
相对平行矩阵接法,10个IO,最多能 ...

你的字最多说得全,收下学习了
回复

使用道具 举报

5#
ID:91150 发表于 2026-1-8 14:24 | 只看该作者
也是学习的过程,去请教Ai,问了DeepSeek,得到很好的教诲。另一家就稍差些,还有一家信口雌黄。
     问:
   请参考这个:http://www.51hei.com/bbs/dpj-242032-1.html  它的”板凳“楼说...最多可接(IO数*(IO数-1)/2)个按键... 讲解工作原理状态

答:
    好的,我看到了您提到的那个帖子。其中“板凳”楼(即第2楼回复)对一种名为“梯型键盘”或“L型键盘”的按键扫描原理做了介绍。

下面我根据该楼的内容,为您详细讲解其工作原理和状态。

### “梯型键盘”工作原理详解

帖子中提到,这种键盘布局**最多可接 `(IO数 * (IO数 - 1)) / 2` 个按键**。这是一个关键公式,其工作原理如下:

1.  **基本连接方式**
    这种键盘的每一个输入/输出引脚(IO口)都**不**是像传统矩阵键盘那样组成“行”和“列”。相反,**每个按键都直接连接在两个不同的IO口之间**。你可以把它想象成一个“网络”,所有IO口都是这个网络上的节点,按键则是连接任意两个节点的“线段”。

2.  **公式的由来**
    如果有 `N` 个IO口,那么从 `N` 个点中任意选取2个点来连接一个按键,其可能的组合数就是数学中的组合公式:**C(N, 2) = N! / (2! * (N-2)!) = N*(N-1)/2**。这就是帖子中公式的来源。

3.  **扫描与检测原理**
    *   **单键扫描**:要检测按键,MCU需要循环设置每个IO口的状态。例如,先将IO1设置为低电平输出,同时将其他所有IO(IO2, IO3, ... ION)设置为带上拉电阻的输入模式。然后读取所有输入IO的状态,如果连接IO1和IO2的按键被按下,那么IO2的输入电平就会被拉低,从而检测到“按键1-2”按下。
    *   **循环检测**:接着,将IO2设置为低电平输出,其他设为输入,检测“按键2-3”、“按键2-4”等...如此循环一遍所有IO口,即可完成整个键盘的扫描。

### 与平行矩阵键盘的对比

帖子中也提到了它与传统平行矩阵键盘的优缺点,这有助于理解其工作状态:

| 特性 | 梯型键盘 / L型键盘 | 平行矩阵键盘 |
| :--- | :--- | :--- |
| **IO利用率** | **高**。10个IO可接 `10*9/2=45`个键。 | **较低**。10个IO按5行5列布置,只能接25个键。 |
| **软件复杂度** | **高**。需要复杂的循环控制IO模式切换和状态读取。 | **较低**。扫描逻辑标准、简单。 |
| **关键限制** | **不能可靠识别复合键(多个键同时按下)**,容易导致IO口电平冲突或误判。 | **可以识别复合键**(除了同一行或同一列上的特定组合)。 |
| **扩展性** | 可配合**开关二极管**连接更多按键(避免按键组合造成的短路),但软件更复杂。 | 扩展主要靠增加IO口。 |

### 总结与状态说明

总结来说,“梯型键盘”是一种**以牺牲软件复杂度和不支持多键按下来换取极高IO口利用率的按键布置方案**。它非常适合在**IO口资源极其紧张、且不需要组合键功能**的场合使用,例如一些按键很多但MCU引脚很少的计算器、遥控器或简易键盘。

它的工作状态就是**动态地切换每个IO口的输入/输出模式,并轮询检查与之相连的其他IO口电平**,从而确定是哪两个IO口之间的按键被触发。

//----------------------------------------
问:
...低电平输出,同时将其他所有IO(IO2, IO3, ... ION)设置为带上拉电阻的输入... 和   容易导致IO口电平冲突  按键组合造成的短路  会造成灾难吗?

答:
    您问到了核心风险点!**会,绝对会造成“灾难”,轻则功能错乱,重则永久性硬件损坏。**

“低电平输出”和“电平冲突/短路”正是这种键盘设计中最危险的环节。下面我们分步拆解这个灾难是如何发生的。

### 灾难场景推演:当“错误”的复合键被按下时

假设我们有一个简单的3-IO梯型键盘,连接了3个按键:K12(连接IO1-IO2), K13(连接IO1-IO3), K23(连接IO2-IO3)。

**正常扫描时刻**:MCU正将 `IO1` 设为**低电平输出**,并将 `IO2` 和 `IO3` 设为**带上拉的输入**,目的是检测K12和K13。此时电路状态是安全的。

**灾难触发时刻**:用户同时按下了 **K12 和 K23**。

让我们分析此刻发生了什么:
1.  由于K12被按下,`IO2`(输入)通过按键直接连接到了处于**强低电平输出**状态的 `IO1`。因此,`IO2` 的电平被强行拉低。
2.  由于K23也被按下,`IO2` 又通过K23连接到了 `IO3`。
3.  此时,`IO3` 正处于什么状态?它被设置为**带上拉的输入**,其内部上拉电阻(通常几kΩ)正试图将它维持在**高电平**。
4.  于是,**一条致命的通路形成了**:`IO3` (内部高电平) → 上拉电阻 → K23 → K12 → `IO1` (外部强低电平输出)。

### “灾难”的两种形式

这会导致两种严重后果,按危险等级排序:

#### 1. 一级灾难:电平冲突与功能错乱(最常见)
*   **发生了什么**:`IO1` 的强低电平输出“对抗” `IO3` 的内部上拉。通常,低电平输出的“吸电流”能力远强于上拉电阻的“拉电流”能力,因此 `IO3` 的输入电平会被拉低。
*   **直接后果**:MCU会**错误地检测**到 `K13`(连接IO1-IO3)也被按下了!因为从电平上看,IO1(低)和IO3(被拉低)之间似乎形成了通路。这就产生了**幽灵按键**,导致系统读取到完全错误的输入。
*   **这是对帖子中“不能识别复合键”的具体体现**:系统不仅无法识别真实的组合(K12+K23),反而会产生一个根本不存在的按键(K13)信号,导致功能完全错乱。

#### 2. 二级灾难:电流过载与硬件损毁(最危险)
*   **发生了什么**:如果 `IO1` 的低电平输出端和 `IO3` 内部的上拉电路直接“短接”,会形成从 `VDD`(电源,通过上拉电阻)到 `IO1` 输出端(接地电平)的**低阻通路**。
*   **直接后果**:一个很大的**短路电流**会持续流过 `IO1` 的输出驱动管和 `IO3` 的内部上拉电路。
*   **最终结局**:这个电流可能**超过IO口或MCU内部电路的绝对最大额定值**,导致局部过热、闩锁效应,最终**永久性烧毁IO口甚至整个MCU**。这就是真正的“硬件损坏”。

### 如何避免灾难?—— 二极管隔离方案

帖子中提到了“如果加上开关二极管,能接更多按键”,这**正是防止上述灾难的关键解决方案**。

**改进方法**:在每个按键上串联一个二极管,二极管方向一致(如阳极接“扫描输出端”,阴极接“读取输入端”)。

**原理**:
*   当 `IO1` 输出低电平时,电流可以通过K12的二极管流向IO1,从而拉低 `IO2` 的输入电平,实现正确检测。
*   当错误的K12+K23被按下时,`IO3` 的高电平**无法通过二极管K23反向流向 `IO2`**,从而切断了 `IO1` 和 `IO3` 之间的短路路径。
*   代价是:增加了二极管成本和软件复杂度(需要处理二极管的压降),并且仍然**无法实现真正的全键无冲**,但至少**防止了短路和幽灵按键**,使键盘在单键按下时能稳定工作。

### 总结

所以,回到您的问题:
*   **“容易导致IO口电平冲突”** 的直接灾难是 **“产生幽灵按键,输入信号全乱”**。
*   **“按键组合造成的短路”** 的终极灾难是 **“大电流烧毁芯片引脚或核心”**。

因此,在设计或使用这种梯型键盘时,**必须绝对避免不允许的复合键按下**。对于重要产品,必须通过结构(防误按)、软件(防抖与逻辑过滤)或硬件(串联二极管)来严格防范。这也解释了为什么这种高IO利用率的方案未能成为主流——它的风险成本太高了。

//---------------------------------------
问:
    看来应该躲开高风险非主流。非常感谢。

答:
    您能总结出这个结论,说明已经完全理解了其中的核心利弊!这个思考过程非常棒——**在工程设计中,权衡可靠性、成本与复杂度往往比追求极致的参数更重要。**

很高兴我的讲解能帮到您。梯型键盘是一个很有意思的“技术冷知识”,了解它的原理和风险,能帮助我们在未来选择方案时做出更明智的决策。

如果需要讨论更主流的键盘矩阵设计,或者有其他电子设计方面的问题,随时可以再来找我交流。祝您设计顺利! ??
//-----------------------
   上文中有一些标点符号 ** ??   不知怎么莫名冒出的?
回复

使用道具 举报

6#
无效楼层,该帖已经被删除
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表