历史上的今天
返回首页

历史上的今天

今天是:2025年05月08日(星期四)

正在发生

2018年05月08日 | 4×4 矩阵式键盘电路的改进

2018-05-08 来源:eefocus

本文向大家推荐一个精简IO接口的4×4键盘电路,该键盘电路仅仅使用4条IO接口引线,即可完成一般需要8位接口才能完成的功能。

在51单片机系统中,经常使用4×4键盘,一般情况下,都是使用一个8位的接口,外接16个按键。
下图就是一个常规的4×4键盘电路图。

4×4 矩阵式键盘电路的改进 - 非著名博主 - 电子信息角落

这种常规的矩阵键盘电路,相信大家都司空见惯了,好多人都会编写它的驱动程序。
图中使用了P0口的8个引脚(P0.0~P0.7),分别驱动键盘的行和列。按键的编号,在图中分别标注了0~F。

检测按键的一般的思路是在四个列线,分别输出一个低电平,然后输入行线,逐行检测是否存在低电平。
如果在某行有低电平出现,就说明该行、列的交叉点上的按键,被按下了。

其实,这些行、列引线,是“分时”工作的,当在某一列输出低电平的时候,其它的列,输出的就是高电平。
如果利用这些输出高电平的列,进行输入,那么就可以极大的节省IO接口的引线数量。
基于这个道理,在上图中,下面的四个列驱动引线(P0.4~P0.7),就完全可以省去,只是使用行驱动的引脚(P0.0~P0.3)来分时输出低电平即可。
电路见下图。

4×4 矩阵式键盘电路的改进 - 非著名博主 - 电子信息角落

为了对引脚之间进行隔离,图中加上了四个二极管,确保只有在引脚输出低电平的时候,方可把键盘中相应的列置为0。

针对这个电路,对按键的检测方法,和常规的4×4键盘检测思路是相同的,例如:
当在P0.0输出低电平,即最左边的列为0,这时检测P0.1、P0.2及P0.3是否为0,可以判断最左边的三个按键是否按下;
当在P0.1输出低电平,即左边第二列为0,这时检测P0.0、P0.2及P0.3是否为0,可以判断左边第二列的三个按键是否按下;
…………;
这个检测按键是否按下的思路非常简单,会编写常规4×4键盘驱动程序的网友,肯定都会编写出来这种电路的驱动程序。

因为行和列使用了相同的IO引线,实际上,连接在同一个引线的行、列交叉点处的按键,就已经失效了,那么就把把原来的按键,移动出来,把二极管画在交叉点,电路如下所示。

4×4 矩阵式键盘电路的改进 - 非著名博主 - 电子信息角落


再把移出来四个按键连接在IO引线,另一端直接接地;把其它按键的编号,再整理一下,就成了下图电路。

4×4 矩阵式键盘电路的改进 - 非著名博主 - 电子信息角落


这个电路比常规的4×4键盘电路仅仅多用了四个二极管,但是却节省了四条IO接口引线,这个意义是十分巨大的。
按照这个电路的设计思路,使用 n 条IO接口引线,就可以驱动 n×n 个按键。
那么用5个IO引脚,就可以驱动5×5的键盘,这就足以满足各种应用了。
网上也有一些其它类型的节省接口的键盘电路,但是都有不足,不是电路过于复杂,就是驱动的按键个数较少,远远不及本电路简单实用。

做而论道已经按照这个电路制作了PCB板,外形和常规4×4键盘电路板相差无几。二极管体积很小,布线并没有障碍。

实践证明,这是个完美的精简接口的4×4键盘电路,不仅可以用在51单片机系统,在使用其它MCU组建的电路中同样适用。

针对这个电路,做而论道已经用汇编语言和C语言编写出了驱动程序,因为汇编语言可以使用“位操作”指令,所以程序的比较简单;C语言的程序,就显得累赘一些。
程序暂时就不公布了,有兴趣的网友可以来讨论。


推荐阅读

史海拾趣

CINTERION公司的发展小趣事

近年来,随着智能电网技术的快速发展,CINTERION凭借其领先的M2M通信技术,在该领域取得了显著突破。其EU3 M2M模块因其卓越的性能和稳定性,荣获了SmartGrid.TMCnet.com颁发的2011年智能电网杰出奖。这一奖项的获得,不仅证明了CINTERION在智能电网技术创新方面的实力,也为公司在该领域的进一步发展奠定了坚实基础。

振华(CEC)公司的发展小趣事

随着企业规模的不断扩大和市场竞争的加剧,振华意识到单纯的自我发展已经难以满足企业的长远发展需求。因此,公司开始积极探索并购与资源整合的道路。通过并购具有技术优势和市场潜力的企业,振华不仅获得了更多的技术资源和市场份额,还实现了产业链的延伸和拓展。同时,公司还注重内部资源的整合和优化,提高资源的利用效率和管理水平。

ASPEED Technology公司的发展小趣事

ASPEED与Audinate建立了合作伙伴关系,共同开发Dante AV-A。这一合作使得ASPEED的SoC能够支持Dante AV-over-IP芯片组,为专业AV行业的制造商提供了更加便捷、高效的解决方案。通过合作,ASPEED进一步巩固了其在专业AV市场的地位,并拓宽了公司的业务范围。

GTK UK Ltd公司的发展小趣事
电源的不稳定可能导致电路工作异常,影响跟踪效果。
High Energy Corp公司的发展小趣事
太阳光强度变化、云层遮挡、大气湍流等环境因素都可能对光电传感器产生影响,导致检测误差。
CIRCUITCO公司的发展小趣事

CIRCUITCO公司深知人才是企业发展的核心。因此,公司一直注重人才引进和团队建设。公司积极招聘具有丰富经验和专业技能的人才,为他们提供良好的工作环境和待遇。同时,公司也注重员工的培训和发展,鼓励员工不断创新和学习。通过这些措施,CIRCUITCO公司逐渐建立起一支高素质、专业化的团队,为公司的长远发展提供了有力保障。

问答坊 | AI 解惑

采用模拟电路 电脑可似人脑

今天,科学家们介绍了一种新型的电子电路。这种电路可以模仿人脑的运动,如果用在计算机上,计算机就能象人一样进行思维。人的大脑皮层是人的思维中心,是由神经元组成的复杂的网状结构,有灵敏的反应力。来自麻省理工学院(MIT)、新泽西朗讯公司 ...…

查看全部问答>

SABER与控制系统仿真

SABER与控制系统仿真…

查看全部问答>

学生求助CE串口开发问题

大家好,学生以前接触的硬件类比较多,这次需要在2440板子下跑wince,用串口读数据,我找了很多资料,发现都是直接给代码的,学生求助,是在什么环境下编译?PB吗?如果是PB的话,就是改PB里哪里的程序呢???学生很疑惑,学生其实是想用VS2005中 ...…

查看全部问答>

68013A端点EP6OUT的BULK写失败求助,急!!

68013A端点EP6OUT的BULK写失败求助,急!! 易用专业的PCI、USB、LED方案正在对68013A采用slavefifo方式进行bulk读写操作 我用EP2做in端点,1024字节,2从缓冲 用EP6做OUT端点,512字节,4从缓冲 我写好了68013A的固件,用CYPRESS的开发工具 ...…

查看全部问答>

我的新书《ARM Cortex-M0从这里开始》,已经上市

我的新书《ARM Cortex-M0从这里开始》已经出版,即将上市,希望大家多多支持。在这里先谢谢大家了。。。。。。。。。。。。。     前言和目录:     已经上市   北航:http://www.buaapress.com.cn/bookdetai ...…

查看全部问答>

电机控制 - 无刷直流 (BLDC) 电机主推产品

本帖最后由 dontium 于 2015-1-23 13:10 编辑 器件型号:RDK_BLDC                     DRV8312-C2-KIT (电机控制评估套件)    &nbs ...…

查看全部问答>

易電源學習心得

易電源學習心得剛剛參加了玩遊戲,體驗易電源。正如題所示,通過遊戲來體驗易電源的通俗學習方式,通過學習易電源,深深體會IT設計工程師的初衷,特別在介紹個單位器件時詳細說明。遊戲中,大大啓發我們對電子的好奇心。想想原來如此簡單的電路在操 ...…

查看全部问答>

ls -bash: ls: command not found .

原因:在设置环境变量时,编辑profile文件没有写正确,导致在命令行下ls等命令不能够识别。 解决方案: exportPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin…

查看全部问答>

win7"设备管理器“里面没有了”端口“选项

在做CC2530串口通信的实验时,CC debugger 安装完好,可是win7\"设备管理器“里面没有了”端口“选项,无法再串口调试助手里面选择com口,以前用win8系统还是正常的,自从换成win7后就没有显示了,笔记本型号戴尔Inspiron_5537…

查看全部问答>

求一款可以烧录STM8和STM32系列的烧录器

STM8/STM32哪位大侠推荐一款好用的烧录器啊?因为是工厂烧录的,所以需要的是烧录器,不是仿真器。还有要能烧录STM32L158VT这颗IC的,我找过很多烧录器,都不能烧录这颗IC。…

查看全部问答>