原创 2020-06-14

2020-6-14 08:35 2573 45 6 分类: MCU/ 嵌入式

需要有大量的按键的地方,可以使用行列式键盘。为简化设置,可以把行线与列线直接连到MCU口线上。当然也可以使用专门的芯片。

行列式键盘可以用较少的口线完成很多按键的识别。常规的驱动方式是:将行设置成输出,将列设置为输入,行线依次产生一个脉冲,列线读取。当列线数据有变化时,对照当前行线就可以知道是放在哪个行列位置的按键被按下了。

如果行比较多,整个按键扫描一遍需要花费较多时间。

可以考虑改成以下这种方式:分两步进行

1.  将列线设置为输出,并输出为高,将行线设置为拉低输入,读取所有行得到一个数值。

2.  将行线设置为输出,并输出为高,将列线设置为拉低输入,读取所有列得到一个数值。

分析行列的数据,就能知道哪个位置按键是否被按下了。

对于有多行的键盘,这种方式能成倍加快速度。如果只有两行,则仍然是传统方式为佳。

作者: southcreek, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-408807.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

FPFA兔兔爸 2020-6-15 16:20

前几天刚刚看过这个《给5个IO口,最多能扫多少个按键?》
https://mbb.eet-china.com/forum/topic/78889_1_1.html?from=datu7

人家已经申请美国专利了。
不过我个人觉得,这个专利的价值不大。
相关推荐阅读
southcreek 2025-02-20 13:35
供电开关电路不良引起的MCU程序跑飞及解决办法
这是一个3.3V 的供电开关,给WIFI模块供电。目的是能控制WIFI模块通电或断电。VCC_3V3 是电源,当WLENN为低时,Q1打开输出VCCW 给WIFI模块供电。实际使用时,当控制WLENN...
southcreek 2025-01-22 06:34
设置可执行程序图标
在本文的示例中,图标文件名称为“logo.ico”,该文件位于项目主目录下。2.2 设置标题栏图标通过下列函数设置标题栏图标:setWindowIcon(QIcon("://logo.ico"));1...
southcreek 2024-12-04 16:32
PWM输出隔离DAC设计
这个设计的目标是产生一个隔离的DAC输出。12V供电,产生0~5V的输出。达到10000约13.3位的分辨率。要求DAC输出在改变设置后1S内能稳定。需要能长时间保持稳定和低噪声。能达到要求的DAC只...
southcreek 2024-12-04 15:23
一个基于HAL库的串口控制框架
将串口接收配置为 DMA方式,DMA 使用 DMA_CIRCULAR 模式工作。串口接收的数据实际上构成循环队列。 定义一个结构Comm_typedef 结构体中包含指向接收到的第一字节位置chrc...
southcreek 2024-07-08 11:38
接地不良导致的故障分析
这个电路的控制板需要连接显示板和识别板。5V 供电和串行控制连到显示板,显示板再连接到识别板。识别板上电位器使用一个LDO供电,将输入的5V转成3.3V。当电位器滑动时,输出电压在0~3.3V之间。...
我要评论
1
45
关闭 站长推荐上一条 /4 下一条