表1和图1给出了MAX6959的标准8键连接。键切换电路按照2 x 4矩阵(2列、4行)读取8个按键的状态。键盘阵列的4行由4个LED阴极驱动器输出(DIG0/SEG0至DIG3/SEG3)驱动。作为多层LED驱动的一部分,这些LED阴极驱动输出依次拉至低电平320µs (标称值) (顺序驱动LED)。这些驱动器输出分别用来拉低键开关的一端,键的另一端连接在两个输入端:INPUT1和INPUT2,这两个输入端从内部拉至MAX6959的高电平V+。按下开关时,INPUT1或INPUT2将由相应的DIG_/SEG_输出拉至低电平,MAX6959检测按键,并为按键提供去抖。
公平地讲,我们是在发掘一种冗余情况。许多应用中只需要了解某一个按键是否被按下。通常,同时按下两个按键的情况被认为是错误的键输入,或者是进入工厂诊断模式。这种两个按键同时按下的情况即为“冗余”情况,我们把4个增添的按键连接成好像某一对儿键被同时按下的情况,如表2所示。例如,当Key8按下时,对于MAX6959而言,所表现出来的状态与Key0和Key4同时按下的情况相同。只要每对儿按键(如Key0和Key4)的物理位置不相邻,这种扩展架构即可有效工作。软件设计应保证在30.3ms的最小去抖周期内响应按键的IRQ,保证每个对应于按键扫描的结果都经过适当的分析处理。如果软件对IRQ响应较慢,将无法区分同时按下两个按键的情况(鉴别增添的按键状态)和顺序按下相同的两个按键的情况。无论是哪种情况,按键去抖寄存器0 x 08将简单地显示每个键位置位。