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

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

3天内不再提示

在Proteus软件中如何读取矩阵键盘?

冬至子 来源:风标电子 作者:风标电子工程师 2023-07-19 15:26 次阅读

Proteus使用技巧

矩阵键盘是读取一系列按键的有效方法,例如读取电话的拨号盘、POS机小键盘、电脑键盘,甚至是电子钢琴上的键盘。

读取大量按键输入的一种方法是将每个按键连接到其自己的微控制器输入引脚。对于 4x4 键盘,这将需要 16 个 GPIO(通用输入/输出)引脚。

图片

但是,通过在矩阵中连接按键,只需 8 个 GPIO 即可读取相同数量的按键。

图片

这减少了所需的微控制器引脚数量,以及相关布线/PCB走线的数量。

矩阵式键盘是按行和列的网格布线的(尽管它们在物理上不一定要按这个方向布置,例如电子钢琴键盘)。在微控制器上,行或列的引脚被永久设置为输入(本文中我们坚持使用行连接),而另一组引脚(本文中我们坚持使用列连接)在输出(低电平驱动)和浮空(基本上是开漏输出)之间切换。

行输入引脚需要上拉电阻,这可以在微控制器外部添加,也可以在微控制器内部激活(如果微控制器包含此功能)。一些微控制器具有开漏输出引脚(用于列),或者可以简单地将这些引脚设置为输入,以使其浮空。如果你对上拉电阻、浮空和/或开漏这些术语不熟悉,那么这里有一些快速解释:

浮空输入

浮空输入是一种不主动驱动到任何特定水平的输入,它真的可以是任何东西(例如,基于环境中的静电)。我们都使用过自动关闭的门,比如在公共设施中常见的门--除非你主动把门打开,否则就会有一个机制把它再次关上。如果没有自动关闭机制(现在想象一下,门没有闩锁机制),门会被风吹来吹去,或者被进出的人移动,它不会默认到任何特定的位置。

上拉(或下拉)电阻

上拉(或下拉)电阻类似于这些门上的自动关闭机制,因为它在不主动驱动时将输入保持在一个特定的水平。上拉(或下拉)电阻可以被认为是一个弹簧,当它没有被主动驱动时,它将输入拉到一个特定的水平,你可能注意到,电阻符号实际上看起来像一个小弹簧:

图片

开漏输出

开漏输出是一个只能被驱动为低电平的输出,而不是高电平;输出要么是低电平,要么是浮空的。本质上,输出只是连接到一个晶体管的漏极引脚(因此称为开漏)。

图片

通过将微控制器引脚在输入(浮空,没有上拉或下拉电阻)和输出(被驱动为低电平)之间切换,可以实现类似的效果。

读取矩阵键盘

为了读取矩阵中的任何特定按键,我们将相应的列引脚驱动为低电平,然后读取相应的行引脚;如果行引脚读取为低电平,则该按键被按下,如果它读取为高电平,则该按键未被按下。

图片

图片

通常,这是在快速顺序扫描操作中完成的,以检查矩阵中的每个按键,依次驱动每个列引脚,同时读取中间的每个行引脚。同时按键不会对此方法造成任何问题,并且仍然可以单独读取每个键。

防抖动

机械开关也会出现一种弹跳现象,即开关的触点在接触时发生物理弹跳,并在开关稳定在新状态之前出现一些快速的电压转换:

图片

如果微控制器非常频繁地读取输入,那么它可能会将弹跳记录成按下按键的次数(而不是用户期望的一次按下);最简单的解决方案是每次读取按键之间留出一定的延迟时间,这将使按键有足够的时间在两次读取之间转换(通常 10-50ms 就足够了),这就是防抖开关技术。

*本文章版权归英国LABCENTER公司所有,由广州风标电子提供翻译,原文链接如下:*https://www.labcenter.com/blog/sim-matrix-keypad/

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

    关注

    48

    文章

    6812

    浏览量

    147648
  • 上拉电阻
    +关注

    关注

    5

    文章

    346

    浏览量

    30259
  • 矩阵键盘
    +关注

    关注

    7

    文章

    204

    浏览量

    31135
  • PROTEUS仿真
    +关注

    关注

    28

    文章

    302

    浏览量

    34955
  • PCB走线
    +关注

    关注

    2

    文章

    128

    浏览量

    13824
收藏 人收藏

    评论

    相关推荐

    proteus仿真矩阵键盘扫描的问题

    矩阵键盘扫描正常是给某一行一个低电平,然后检测各列是否被拉低,若拉低说明这一行的该列按键被按下。于是我用proteus仿真,P3口前四位行线,后四位列线。给P3^0一个低电平,也就是第一行置低。但是
    发表于 05-05 15:10

    proteus矩阵键盘仿真电路

    proteus矩阵键盘仿真电路,本文通过proteus上搭建51单片机的矩阵
    发表于 07-15 08:27

    什么是矩阵键盘

    矩形键盘介绍什么是矩阵键盘矩阵键盘的原理驱动电路图软件程序实现介绍什么是
    发表于 01-07 07:43

    矩阵键盘怎么操作

    矩阵键盘矩阵键盘的实现和动态数码管有一定的相似之处,动态数码管是循环通过段选来点亮.而矩阵键盘(
    发表于 01-07 06:28

    Arduino搭建一个3*3的矩阵键盘

    矩阵键盘在51单片机的案例应用较多,但是Arduino很少使用,今天小编就特立独行一次,
    发表于 01-12 06:09

    Proteus矩阵键盘的识别之一

    Proteus矩阵键盘的识别之一,很好的Proteus资料,快来下载不学习吧。
    发表于 04-18 16:42 0次下载

    Proteus矩阵键盘的识别之二

    Proteus矩阵键盘的识别之二,很好的Proteus资料,快来下载不学习吧。
    发表于 04-18 16:42 0次下载

    Proteus矩阵键盘的识别之三

    Proteus矩阵键盘的识别之三,很好的Proteus资料,快来下载不学习吧。
    发表于 04-18 16:42 0次下载

    基于8051的Proteus仿真-4×4键盘矩阵控制条形LED显

    基于8051的Proteus仿真-4×4键盘矩阵控制条形LED显示
    发表于 09-06 16:52 17次下载

    基于8051的Proteus仿真-数码管显示4×4键盘矩阵按键

    基于8051的Proteus仿真-数码管显示4×4键盘矩阵按键
    发表于 09-01 23:36 93次下载

    单片机矩阵键盘的使用之读取键盘

    矩阵键盘的使用在单品机的学习当中十分广泛,可是对于许多新手,包括本人有时也是搞不明白,昨天晚上和今天早上的思考和同行们的讨论,终于有了点头绪,所以想记录下读取键盘的思路。
    发表于 02-23 10:11 4148次阅读
    单片机<b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b>的使用之<b class='flag-5'>读取</b><b class='flag-5'>键盘</b>

    基于proteus+矩阵键盘扫描扫描工程文件

    基于proteus+矩阵键盘扫描扫描工程文件
    发表于 11-08 11:48 8次下载

    proteus进行51单片机矩阵键盘仿真实验

    本文通过在proteus上搭建51单片机的矩阵键盘电路并联合keil编程软件编写的源程序进行8*8矩阵
    发表于 11-12 11:06 26次下载
    <b class='flag-5'>proteus</b>进行51单片机<b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b>仿真实验

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

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

    Proteus仿真-矩阵键盘(实验一)

    最近,由于在学习51单片机,学会了用proteus进行仿真Proteus仿真-矩阵键盘由于一般的按键是单独接在一根I/O线上,构成所谓的独立式键盘
    发表于 12-28 19:23 12次下载
    <b class='flag-5'>Proteus</b>仿真-<b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b>(实验一)