专栏中心

EEPW首页 > 专栏 > 打破思维定式——两种键盘扫描方法比较分析

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

发布人:sjdai 时间:2011-04-05 来源:工程师 发布文章

    说到键盘扫描,相信大多数人第一反应就是行列矩阵扫描,这样我们可以用相对有限的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个的情况都有可能形成错误的按键逻辑。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

Ceva推出MotionEngine™ Hex:为智能电视、游戏和物联网界面带来免触控的精确空间控制功能

EDA/PCB 2025-06-27

村田首款10µF/50V/0805英寸车规级MLCC正式量产

PIC系列单片机接口子程序集

PROTEL99SE布线的基本流程

高通骁龙新旗舰芯片将采用三星2nm代工,专供三星Galaxy系列

Bourns推出全新共模电感系列 专为信号传输线提供噪声抑制方案

Sensirion推出带保护盖的新型数字温湿度传感器

意法半导体紧凑型可配置车规负载驱动器具备安全引脚

安谋科技受邀出席夏季达沃斯论坛,共话科技产业创新与全球化发展

嵌入式linux Framebuffer驱动开发 下

PIC单片机应用问答14篇

嵌入式系统硬件接口设计 上

视频 2009-10-27

Protel99SE电子设计软件快速入门

TDK推出封装尺寸1608、业内最高电容(100V)的商业应用积层陶瓷贴片电容器

嵌入式linux Framebuffer驱动开发 中

Nordic斥资1.2亿美元收购Memfault,强化物联网设备监控能力

protel99se学习教程

嵌入式系统硬件接口设计 中

视频 2009-10-27

嵌入式linux Framebuffer驱动开发 上

Bourns推出两款小型NTC热敏电阻系列,提供高精度温度感测与补偿功能

更多 培训课堂
更多 焦点
更多 视频

技术专区