0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

矩阵按键扫描的实现原理

CHANBAEK 来源:头条号蚁哥小课堂 作者:头条号蚁哥小课堂 2023-03-27 14:05 次阅读

之前做过很多仿真仪表盒,经常遇到盒子上既有大量LED指示灯,又有很多按键的情况,主芯片使用的SiliconLabs的一款单片机,管脚资源有限,如何应对如此多的指示灯和按键呢?当时选用了max7219来实现多个LED灯的控制,而按键则是通过矩阵扫描实现的。

所谓“矩阵扫描”,可以想象成是把几路IO横竖交叉形成网格状,然后把按键放置在网格的交叉点上。这种电路应用很广泛,可以由较少的IO口实现较多的按键控制。比如,6根IO按照3行3列排列,就可以实现接入9个按键;8根IO按照4行4列排列,就可以实现接入16个按键。来看下面这个3*3的矩阵按键原理图:

poYBAGQhMieAc3LrAAAiSvYzMz4701.jpg

3*3矩阵按键1

注意,中间那四个行、列交叉地方的线是分离的,并没有短接:

pYYBAGQhMimANUy3AAAu1Ee4YnA438.jpg

3*3矩阵按键2

还要注意的是,我们要给行或列IO加上上拉电阻,以保证它们的默认状态是高电平。

矩阵按键扫描的实现原理是这样的:把属于列的IO口设置为输入状态,这时由于上拉电阻的作用,当按键没有动作时,程序就会读到高电平;这时开始按行进行扫描,先把行1的IO设置为输出状态,然后设置输出为低电平,接着依次读取列IO口的状态,如果有按键被按下,那么列IO口的读入电平就变成低电平,这时就可以根据行和列判断出动作按键的位置了。行1的扫描完成后,把行1的IO置高,然后按照上面步骤依次进行行2和行3的扫描,确认有动作按键的位置就可以了。下面是程序的简单流程图(没有包含去抖等处理):

poYBAGQhMiqAPsFSAABx-i4wocY677.jpg

简单扫描按键流程图

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    237

    文章

    22450

    浏览量

    645881
  • 原理图
    +关注

    关注

    1268

    文章

    6182

    浏览量

    225736
  • 单片机
    +关注

    关注

    6001

    文章

    43977

    浏览量

    620862
  • 仿真
    +关注

    关注

    50

    文章

    3872

    浏览量

    132163
  • 矩阵按键
    +关注

    关注

    0

    文章

    28

    浏览量

    8305
收藏 人收藏

    评论

    相关推荐

    请问如何使用AVR扫描4*4矩阵按键

    使用AVR扫描4*4矩阵按键,一旦扫描按键被按,做出被按的按键号指示。
    发表于 11-16 07:21

    按键矩阵扫描的原理

    51单片机_按键矩阵扫描demo代码工作以来一直在搞单片机方面的软件,决定把工作以来写的一些模块写成文章,总结一下。按键矩阵
    发表于 07-15 07:46

    矩阵按键扫描原理是什么?

    矩阵按键扫描原理是什么?实现十六矩阵的代码分享
    发表于 09-29 06:36

    单片机矩阵按键扫描方法

    矩阵按键介绍矩阵按键就是独立按键的组合,就是将独立按键的每一行的端口连接在一起引出一个管脚,再将
    发表于 11-23 07:40

    主要介绍矩阵按键原理以及扫描方式

    前言·主要介绍矩阵按键原理以及扫描方式和编写代码的思路矩阵按键扫描原理
    发表于 12-01 06:14

    如何通过使用行列扫描法对矩阵按键进行扫描监测

    使用行列扫描法对矩阵按键进行扫描监测,具体实现过程会在程序中详细讲解。具体实现方式请看下面的程序
    发表于 01-07 07:30

    矩阵按键的原理是什么?有哪几种扫描方式呢

    矩阵按键的原理是什么?矩阵按键有哪几种扫描方式呢?如何去实现STM32
    发表于 01-18 06:08

    矩阵按键扫描原理简析

    矩阵按键实验矩阵原理矩阵按键由来矩阵按键
    发表于 01-24 06:29

    矩阵按键扫描方法有何优缺点呢

    矩阵按键需要用多少个单片机引脚进行连接呢?矩阵按键扫描方法有何优缺点呢?具体怎样去实现
    发表于 02-23 06:11

    矩阵按键扫描原理是什么

    矩阵按键矩阵按键扫描原理逐行扫描我们可以通过高四位轮流输出低电平来对
    发表于 03-01 06:11

    C语言按键矩阵实现

    51单片机_按键矩阵扫描demo代码工作以来一直在搞单片机方面的软件,决定把工作以来写的一些模块写成文章,总结一下。按键矩阵
    发表于 11-21 09:51 14次下载
    C语言<b class='flag-5'>按键</b><b class='flag-5'>矩阵</b><b class='flag-5'>实现</b>

    Proteus中以中断方式实现矩阵键盘的扫描

    前言最近做单片机的课程设计用到矩阵键盘,在此做个记录。1 矩阵键盘的扫描方式使用矩阵键盘时,首先要判断是否有按键按下,这个过程称为
    发表于 11-26 12:21 9次下载
    Proteus中以中断方式<b class='flag-5'>实现</b><b class='flag-5'>矩阵</b>键盘的<b class='flag-5'>扫描</b>

    单片机学习——6--矩阵按键

    矩阵按键实验矩阵原理矩阵按键由来矩阵按键
    发表于 11-29 14:36 1次下载
    单片机学习——6--<b class='flag-5'>矩阵</b><b class='flag-5'>按键</b>

    STM32矩阵按键扫描冲突问题

    最近做了一个项目,有个部分用到了矩阵扫描的原理,要检测按键是否按下去执行一个动作。一开始硬件工程师的原理图实现是设计成传统矩阵
    发表于 12-31 18:53 4次下载
    STM32<b class='flag-5'>矩阵</b><b class='flag-5'>按键</b><b class='flag-5'>扫描</b>冲突问题

    矩阵按键

    。使用方法逐行扫描:我们可以通过高四位轮流输出低电平来对矩阵键盘进行逐行扫描,当低四位接收到的数据不全为1的时候,说明有按键按下,然后通过接收到的数据是哪一位为0来判断是哪一个
    发表于 01-13 15:52 10次下载
    <b class='flag-5'>矩阵</b><b class='flag-5'>按键</b>