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

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

3天内不再提示

打破思维定式——两种键盘扫描方法比较分析

聚丰开发 2018-10-24 11:24 次阅读

注:本文是作者以前发表在其个人博客,现在发布到“聚丰开发”专栏


说到键盘扫描,相信大多数人第一反应就是行列矩阵扫描,这样我们可以用相对有限的IO口得到尽可能多的按键。键盘扫描是单片机技术的一种基本处理方法,学校单片机课程都会有相应章节进行阐述,只要按照课本上讲述的方法,一般都能设计出比较可靠的键盘扫描电路与程序。


课本上的键盘扫描方法(见下图接法二)不能说是尽善尽美,从易懂性、成本、程序难易程度等方面综合看应该是不错的方法,给人感觉是已经没有太多的改善空间,至少我是这么认为的。


然而前段时间一位***朋友画给我的键盘扫描矩阵电路(见下图接法二),让我又一次看到到自己的思维还有许多地方被自己的所谓“经验”束缚着。



单纯的从硬件接法看,两种接法并没有明显区别,接法一甚至要复杂一些,但如果结合到键盘扫描的程序来看,就会发现接法一确实更好。



两种接法我都没有把上拉电阻包含进来,来让我们看一下两种接法到底有什么不同:


接法二:


我们熟悉的传统扫键处理电路,假定键盘行列IO口标号分别为H1/H2/H3和V1/V2/V3,扫键流程通常如下。


2.1. H1设置为输出,H2/H3和V1/V2/V3设置为输入


2.2. H1分别输出1和0,读V1/V2/V3状态,如果Vy状态与H1一致,则认为H1与Vy交叉位置的键按下


2.3. H2设置为输出,H1/H3和V1/V2/V3设置为输入


2.4. H2分别输出1和0,读V1/V2/V3状态,如果Vy状态与H2一致,则认为H2与Vy交叉位置的键按下


2.5. H3设置为输出,H1/H2和V1/V2/V3设置为输入


2.6. H3分别输出1和0,读V1/V2/V3状态,如果Vy状态与H3一致,则认为H3与Vy交叉位置的键按下


接法一:



新扫键处理电路,假定键盘行列IO口标号分别为H1/H2/H3和V1/V2/V3,扫键流程通常如下。


1.1. H1/H2/H3和V1/V2/V3都设置为输入


1.2. 读H1/H2/H3和V1/V2/V3状态,如果Hx和Vy读到的状态均为0,则认为Hx与Vy交叉位置的键按下


从上面流程可以看出接法一的程序代码要简单不少,既能减少扫键的代码量,又能加快扫键处理的时间,站在软件的角度看确实要比接法二要好。后来我反思了一下为什么我们教材上的传统处理方法没有采用接法一,虽然接法一软件上要简单一些,但硬件布局要复杂,传统的按键只有两条接线,接法一需要三条接线,所以用传统的按键是无法实现的,但现在许多电子产品的按键都用导电橡胶或锅仔片来实现,所以接法一变得可行。

注:这两种电路对于同时按键达到3个的情况都有可能形成错误的按键逻辑。


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

    关注

    5991

    文章

    43904

    浏览量

    619616
  • 键盘
    +关注

    关注

    4

    文章

    841

    浏览量

    38974
收藏 人收藏

    评论

    相关推荐

    差示扫描量热法热分析方法

    差示扫描量热法(DSC)是一种热分析方法,在程序控制温度下,输入到试样和参比物的功率差与温度的关系。而差示扫描量热仪是利用这种方法,来测量材
    的头像 发表于 11-21 13:37 395次阅读
    差示<b class='flag-5'>扫描</b>量热法热<b class='flag-5'>分析</b><b class='flag-5'>方法</b>

    定式条码扫描器用处,固定式扫码器的特点

    定式条码扫描器用处固定式条码扫描器是一种固定安装在特定位置的条码识读设备。相比条码枪,固定式扫码器更适合需要进行条码批量
    的头像 发表于 11-20 14:58 275次阅读
    固<b class='flag-5'>定式</b>条码<b class='flag-5'>扫描</b>器用处,固<b class='flag-5'>定式</b>扫码器的特点

    ARM系统中常用的行列式键盘电路的硬件设计、键盘扫描键盘测试

    电子发烧友网站提供《ARM系统中常用的行列式键盘电路的硬件设计、键盘扫描键盘测试.doc》资料免费下载
    发表于 10-26 14:15 0次下载
    ARM系统中常用的行列式<b class='flag-5'>键盘</b>电路的硬件设计、<b class='flag-5'>键盘</b><b class='flag-5'>扫描</b>及<b class='flag-5'>键盘</b>测试

    关于51单片机的矩阵键盘扫描两种方法的困惑求解

    key_value,然后在主函数里将根据key_value的值来做出相应的动作! 分析上述两种方法:对于第一种方法,如果主程序特别长且很消耗时间,那么很可能出现按键漏扫的情况,不可靠。第二
    发表于 10-26 08:02

    常见的ARM架构分为两种是M系列另外一是A系列,这两种有什么区别啊?

    现在市面上常见的ARM架构分为两种是M系列另外一是A系列,这两种有什么区别啊,用的时候他们一般分别用在什么地方啊。
    发表于 10-26 07:00

    51单片机4*4矩阵键盘有什么好方法扫描识别?

    关于51单片机的4*4矩阵键盘,有什么你比较扫描识别方法,麻烦告知一下,十分感谢!!
    发表于 10-24 06:23

    Cadence IC的两种参数扫描方法

    参数扫描工具在电路的设计和验证阶段非常有用,通过扫描某个变量的一组值可以轻松找到此参数的最佳值,减少手动优化的次数。以下将介绍在Cadence IC中两种参数扫描
    的头像 发表于 09-11 15:52 3134次阅读
    Cadence IC的<b class='flag-5'>两种</b>参数<b class='flag-5'>扫描</b><b class='flag-5'>方法</b>

    二维固定式扫描器能扫描哪些条码

    二维固定式扫描器作为一种用于一维码、二维码信息识别和读取的条码识别重要产品,它在当前零售商场、物流、工业生产等各行各业应用领域中都扮演着重要角色。拿市面上常见的二维固定式扫描器在消费端
    的头像 发表于 08-10 15:54 627次阅读
    二维固<b class='flag-5'>定式</b><b class='flag-5'>扫描</b>器能<b class='flag-5'>扫描</b>哪些条码

    选购固定式条码扫描器需要注意哪几个方面?

    定式条码扫描设备在许多无人操作的自动识别应用中非常广泛,无论是在自动化生产线上的条码扫描,还是在零部件追溯等读码应用场景下都离不开它,尤其在条码应用广泛普及的现代,作为众多企业不可或缺的工具之一
    的头像 发表于 07-12 16:49 680次阅读
    选购固<b class='flag-5'>定式</b>条码<b class='flag-5'>扫描</b>器需要注意哪几个方面?

    为什么流水线上产品条码扫描都在应用固定式工业扫码器?工业扫码器可以解决哪些问题?

    在现代制造业中,流水线上的产品条码扫描是不可或缺的环节。为了高效准确地进行条码自动扫描,许多企业更多地在引入固定式工业扫码器用于产品生产的各个环节,其中工业扫码器成为需求配置关键,为什么流水线
    的头像 发表于 06-27 16:15 463次阅读
    为什么流水线上产品条码<b class='flag-5'>扫描</b>都在应用固<b class='flag-5'>定式</b>工业扫码器?工业扫码器可以解决哪些问题?

    51单片机矩阵键盘扫描程序

    51单片机矩阵键盘扫描程序
    发表于 05-17 17:20 3次下载

    条码扫描模组——内嵌式和固定式两种不同形式介绍

    应用,专为轻松集成到您的原始设备制造商(OEM)设备而设计,可在小巧的外形中提供一系列多功能和强大的性能。条码扫描模组的形式主要分为内嵌式和固定式两种,下面我们就来
    的头像 发表于 05-09 16:40 678次阅读
    条码<b class='flag-5'>扫描</b>模组——内嵌式和固<b class='flag-5'>定式</b><b class='flag-5'>两种</b>不同形式介绍

    Multisim软件之交流扫描分析

      交流扫描分析   交流扫描分析是在正弦小信号工作条件下的一频域分析。它可以计算电路的幅频特
    发表于 04-27 16:15

    思维跑出PCB板才能看到共模回路分析清EMC问题

    :  按以上共差模的定义与分析,可以看到,产品的功能电路设计实际上是一差模思路的设计,电路设计过程中的关键交付件-原理图也是一差模的电路信息表达,长期以往,设计者就形成了一差模的
    发表于 04-18 14:47

    如何使用两种不同的算法来驱动特定的bldc无传感器电机?

    我们倾向于使用两种不同的算法来驱动特定的 bldc 无传感器电机。它们都基于过零检测,这是一非常简单的方法。该算法通过模拟比较器检测 ZC,当然还有它们相应的中断以应用下一步换向。算
    发表于 04-17 08:55