加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

改良版矩阵键盘,仿真及程序详解

2017/09/28
45
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
相关方案
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

首先分享一个矩阵键盘电路


上述的键盘编码方式是目前为止原理最简单的方式。首先我们知道当有一个按键按下去之后,相应的列线和行线之间就会短路(也可以说是直接相连),因此我们做扫描程序编码时候,一般都是让我们的8位输出口首先输出0xf0或者0x0f这样子比较有特点的一些数值,因为一旦按键按下之后,就能和清晰的读取回来,并且第一次判断是哪一行,哪一列。然后在第二次把这些行全一或者列全一的数值进行对调,再读入之后就能进行编码了。
但是,我们仔细想一下以下的叙述方式。我第一次输出0xf0,假设KEY2按下时,入读的就应该是0xe0,那么假设我让第二次输出0x0e,试想下在读取8这个电路的行列时候会变成什么样子?是不是很容易得出0xde这个值?那这个0xde就是KEY2的编码。因此我们在这里总结了行反转法的基本流程:
(1)端口输出0xf0;
(2)读入,判断是否为0xf0,如果不是表示有按键按下;
(3)将读入值的高4位和低4位交换,再输出;
(4)读入端口的值,即按键的编码。

仿真原理图如下(proteus仿真工程文件可到附件中下载)

附件内容截图:

部分源码截图:

  • 矩阵键盘.rar
    描述:仿真和程序

相关推荐

电子产业图谱