在搞定矩阵键盘的扫描模式以后,我就开始想用中断的方式来搞定矩阵键盘,通过中断的方式来搞定矩阵键盘非常方便,也不会占用太多的机时,扫描模式的文章在我另一个博客中,可以根据个人情况来选择合适的方式。
我选择的是3*4的矩阵键盘,具体的实物图如下所示
矩阵键盘是4行3列示意图如图所示
采用中断方式来进行检测按键具体的思想就是通过按键先来触发中断,如果中断被触发再来进行行或者列的扫描来确定是哪个具体的按键被按下,这样可以节省CPU的机时,也可以更有效率。
我的代码就是采用这种方法。首先是将行的引脚都设置为上拉输入模式,并开启这些引脚的中断,将列的三个引脚设置为推挽输出模式,并将引脚拉低为低电平,这样如果有按键按下,就会触发四个行引脚的中断,来判断具体是哪一行被按下。
其次,如果检测到是哪一行后,就立即进入列扫描模式,将四个行引脚设置为推挽输出模式,并将引脚拉高设置为高电平,将三个列引脚设置为下拉输入模式,这样通过列扫描就可以进行确定到哪个键盘按下。
具体实现如下图所示
按下按键4
按下按键9
具体编程思路如下
源码在下面的连接,需要的朋友可以下载