矩阵按键工作原理

首先是跳线帽位置,在强调一遍。

直观的来说,独立按键的跳线帽是接在右边

矩阵按键的跳线帽是接在左边。

上图是独立按键的接法

上图是矩阵按键的接法

矩阵按键:通过用户快速的输入,从而检测到那个按键被按下。

举个例子,若给P3.6输入0,P3.4,P3.5输入1,那么就是第二列的某个按键被按下,接着程序检测,若发现P3.0为0,则是S11,若P3.1为0,则是S11被按下,如此定位。

先写第一排四个灯S7,S6,S5,S4

然后诸如此类,把全部四列都完善

还是因为程序太长,可以独立分出一个子函数,套用在主函数里。

由于IAP15与STC89c52单片机的结构有差别,在对前两列的按键编程时要加入P42与P44,因为在

IAP15里,对应的前两列的接口与STC89C52不相同,这个一定要注意,我就是忘记输入,结果做了好久。

程序的主要部分还是与之前的相同,有delayms(),if(),防抖检测,也可以加上松手检测,如:

while(temp!=0x0f)

{

temp=P3;

temp=temp&0x0f;

}

这个松手检测的意思是,当temp不等与0x0f时,一直会在while()中循环,只到按键松开,等于0x0f。

这个程序又新加了switch()函数。这是一个转换函数,用于定义不同的行。

程序内部可以自己调整led灯的闪烁情况。也可以更多复杂的有趣的结合。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171222G08A1M00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券