首先是跳线帽位置,在强调一遍。
直观的来说,独立按键的跳线帽是接在右边
矩阵按键的跳线帽是接在左边。
上图是独立按键的接法
上图是矩阵按键的接法
矩阵按键:通过用户快速的输入,从而检测到那个按键被按下。
举个例子,若给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灯的闪烁情况。也可以更多复杂的有趣的结合。
领取专属 10元无门槛券
私享最新 技术干货