MCU

ADP5588之矩阵键盘扩展原理

0
阅读(4898)

从之前的介绍,我们知道ADP5588最多可以扩展成10*8的矩阵键盘,那ADP5588对于矩阵键盘的处理又是怎样的呢,下面我们将主要介绍ADP5588的键盘处理。

ADP5588与矩阵键盘的电路连接一般如下图:

 

当ADP5588的管脚被设置成键盘管脚后,由上图可知列信号C0~C9在芯片内部全部通过一个开关连接到地,而行信号R0~R7则全部通过开关连接到VCC,而在中间还有一个“KEYPAD SCAN AND DECODE”模块,该模块是一个键盘检测状态机。如果有一个按键或者多个按键按下时,状态机会先使R0~R7(只设置作为矩阵键盘行信号的管脚)连接到VCC的开关全都打开,然后分别使C0~C9(只设置作为矩阵键盘列信号的管脚)连接到地的开关导通,再判断R0~R7有哪个管脚被拉低了,如果有,则相应的行信号和列信号的交叉点就是被按下的按键。

看起来是不是很熟悉呢,不错,这完完全全就是矩阵键盘的实现原理,只不过该芯片把矩阵键盘的扫描工作放到芯片内部处理而已,而不是由主处理器进行扫描判断。主处理器需要做的只是检测芯片的中断管脚INT信号,INT管脚在一般情况下是开漏输出的,并且内部上拉至高电平,当有中断事件发生时,该管脚就会被下拉至低电平,直到中断标志被清除。当我们的主处理器检测到INT中断信号,应该通过IIC总线读取芯片内部相关寄存器,获得按键值,最后清除中断标志,重新开启新的检测。