将MAX6954和MAX6955的键盘扫描扩展至32键以上

最新更新时间:2012-03-12来源: 互联网关键字:将MAX6954  MAX6955  键盘扫描 手机看文章 扫描二维码
随时随地手机看文章
摘要:本应用笔记介绍了一种扩展扫描的方法,可以扩展MAX6954和MAX6955 LED显示驱动器的键盘扫描范围,从32键扩展到80键。

MAX6954/MAX6955是4线或2线串行接口的LED驱动器,可以控制7段、14段或16段LED或一个16x8的LED矩阵。驱动器还包括5个I/O扩展(GPIO)端口,以及用这些端口自动扫描32个按键、消除按键抖动的所有逻辑控制。另外一个功能选项是通过一个中断引脚通知系统处理器消除键抖。本文介绍的扩展按键扫描方案(从32键扩展到80或更多个按键)需要增添额外的二极管。

表1. MAX6954/MAX6955的标准32键连接
P0 P1 P2 P3
LED Output O0 SW A1 SW B1 SW C1 SW D1
LED Output O1 SW A2 SW B2 SW C2 SW D2
LED Output O2 SW A3 SW B3 SW C3 SW D3
LED Output O3 SW A4 SW B4 SW C4 SW D4
LED Output O4 SW A5 SW B5 SW C5 SW D5
LED Output O5 SW A6 SW B6 SW C6 SW D6
LED Output O6 SW A7 SW B7 SW C7 SW D7
LED Output O7 SW A8 SW B8 SW C8 SW D8

图1. MAX6954/MAX6955的标准32键连接
图1. MAX6954/MAX6955的标准32键连接

表1和图1给出了MAX6954/MAX6955的标准8键连接。键切换电路按照4 x 8矩阵(4列、8行)读取32个按键的状态。键盘阵列的8行由8个LED阴极驱动器输出(LED输出O0至LED输出O7)驱动。作为多层LED驱动的一部分,这些LED阴极驱动输出依次拉至低电平320µs (标称值)(顺序驱动LED)。这些驱动器输出分别用来拉低键开关的一端,键的另一端连接在4个输入引脚(P0至P3),这4个输入引脚从内部拉至MAX6954/MAX6955的高电平V+。按下开关时,P0、P1、P2或P3将由相应的LED输出Ox拉至低电平,MAX6954/MAX6955检测按键,并为按键提供去抖。

多个按键被同时按下时,与开关串联的二极管可以防止2个或多个LED阴极驱动输出短路。例如,同时按下SW A1和SW A2时,与按键串联的二极管可以避免LED输出O0与LED输出O1短路,因为在任何情况下至少有一个二极管为反向偏置。二极管采用的是低成本、共阳极的BAW56,SOT23封装。

MAX6954/MAX6955随时判断32个按键按下或释放的动作,器件内部仅为指示这32个按键的状态提供了寄存器。从这一点看,在MAX6954/MAX6955的设计中似乎没有办法扩展扫描电路,需要寻找一种全新的设计方案。

针对这种特殊情况,我们发掘了一种冗余情况。许多应用中只需要了解某一个按键是否被按下。通常,同时按下两个按键的情况被认为是错误的键输入,或者是进入工厂诊断模式。这种两个按键同时按下的情况是一种“冗余”情况,我们把新增按键连接成好像某一对儿键被同时按下的情况,表2和图2所示电路通过组合P0、P1、P2和P3扩充了16个按键。例如,当SW AB1按下时,对于MAX6954/MAX6955而言,所表现出来的状态与SW A1和SW B1同时按下的情况相同。只要每对儿按键(如SW A1和SW B1)的物理位置不相邻,这种扩展架构即可有效工作。软件设计应保证在MAX6954/MAX6955的最小去抖周期内响应按键的/IRQ,保证每个对应于按键扫描的结果都经过适当的分析处理。如果软件对/IRQ响应较慢,将无法区分同时按下两个按键的情况(鉴别增添的按键状态)和顺序按下相同的两个按键的情况。无论是哪种情况,按键去抖寄存器0x08-0x0B将简单地显示每个键位置位。

表2. MAX6954/MAX6955扩展后的48键连接
P0 P1 P2 P3 P0 & P1 P2 & P3
LED Output O0 SW A1 SW B1 SW C1 SW D1 SW AB1 SW CD1
LED Output O1 SW A2 SW B2 SW C2 SW D2 SW AB2 SW CD2
LED Output O2 SW A3 SW B3 SW C3 SW D3 SW AB3 SW CD3
LED Output O3 SW A4 SW B4 SW C4 SW D4 SW AB4 SW CD4
LED Output O4 SW A5 SW B5 SW C5 SW D5 SW AB5 SW CD5
LED Output O5 SW A6 SW B6 SW C6 SW D6 SW AB6 SW CD6
LED Output O6 SW A7 SW B7 SW C7 SW D7 SW AB7 SW CD7
LED Output O7 SW A8 SW B8 SW C8 SW D8 SW AB8 SW CD8

每个附加按键需要一个双二极管(如低成本、共阴极的BAV70,SOT-23封装), 按下开关时,P0和P1或P2和P3被同时拉低。

图2. MAX6954/MAX6955扩展后的48键连接
图2. MAX6954/MAX6955扩展后的48键连接

图2和表2通过组合P0、P1、P2和P3扩充了16个按键。实际上,对于P0-P3键扫描输入还存在另外四种可能的两键组合方式。如果使用了6种两键组合方式,按键数量将增加到80个,如表3所示。图3给出了6个附加按键在LED输出O0行的连接方式。每个附加按键需要一个双二极管。

表3. MAX6954/MAX6955扩展后的80键连接
P0 P1 P2 P3 P0 & P1 P0 & P2 P0 & P3 P1 & P2 P1 & P3 P2 & P3
LED Output O0 SW A1 SW B1 SW C1 SW D1 SW AB1 SW AC1 SW AD1 SW BC1 SW BD1 SW CD1
LED Output O1 SW A2 SW B2 SW C2 SW D2 SW AB2 SW AC2 SW AD2 SW BC2 SW BD2 SW CD2
LED Output O2 SW A3 SW B3 SW C3 SW D3 SW AB3 SW AC3 SW AD3 SW BC3 SW BD3 SW CD3
LED Output O3 SW A4 SW B4 SW C4 SW D4 SW AB4 SW AC4 SW AD4 SW BC4 SW BD4 SW CD4
LED Output O4 SW A5 SW B5 SW C5 SW D5 SW AB5 SW AC5 SW AD5 SW BC5 SW BD5 SW CD5
LED Output O5 SW A6 SW B6 SW C6 SW D6 SW AB6 SW AC6 SW AD6 SW BC6 SW BD6 SW CD6
LED Output O6 SW A7 SW B7 SW C7 SW D7 SW AB7 SW AC7 SW AD7 SW BC7 SW BD7 SW CD7
LED Output O7 SW A8 SW B8 SW C8 SW D8 SW AB8 SW AC8 SW AD8 SW BC8 SW BD8 SW CD8

图3. MAX6954/MAX6955扩展后的80键连接
图3. MAX6954/MAX6955扩展后的80键连接

为什么仅将“同时按下双键”作为判断附加按键的途径呢?3键和4键组合可用来替代双键按下的情况,表4给出了这种附加配置。需要注意的是,4-3组合键每组需要三个二极管,四组键需要4倍数量的二极管。

表4. 3键和4键连接
P0 & P1 & P3 P0 & P1 & P4 P0 & P2 & P3 P1 & P2 & P4 P0 & P1 & P2 &P3
LED Output O0 SW ABC1 SW ABD1 SW ACD1 SW BCD1 SW ABCD1
LED Output O1 SW ABC2 SW ABD2 SW ACD2 SW BCD2 SW ABCD2
LED Output O2 SW ABC3 SW ABD3 SW ACD3 SW BCD3 SW ABCD3
LED Output O3 SW ABC4 SW ABD4 SW ACD4 SW BCD4 SW ABCD4
LED Output O4 SW ABC5 SW ABD5 SW ACD5 SW BCD5 SW ABCD5
LED Output O5 SW ABC6 SW ABD6 SW ACD6 SW BCD6 SW ABCD6
LED Output O6 SW ABC7 SW ABD7 SW ACD7 SW BCD7 SW ABCD7
LED Output O7 SW ABC8 SW ABD8 SW ACD8 SW BCD8 SW ABCD8

排除3键和4键连接的一个最好理由是它们需要更多的二极管。如果应用中所需按键只是略高于32键的限制,则可首先选择本文推荐的方案。只是因为某些偶然因素,让用户找寻3键和4键的方案也是不可取的。

值得注意的是:每个扩充按键的连接方式模拟的是多个按键同时按下的情况,这些按键连接在同一LED阴极驱动器输出端(LED输出O0至LED输出O7)。采用这种连接方式,相关组合的按键总是在同一时间扫描或去抖。如果新增按键所模拟的同时按下的按键由不同的LED阴极驱动输出扫描,这种工作方式将是不可靠的。
关键字:将MAX6954  MAX6955  键盘扫描 编辑:神话 引用地址:将MAX6954和MAX6955的键盘扫描扩展至32键以上

上一篇:MAX6956编程指南
下一篇:使用MAX6958/MAX6959LED驱动器实现单个LED

推荐阅读最新更新时间:2023-10-12 20:37

课程设计:矩阵键盘扫描(汇编)
//比较简单的汇编矩阵键盘扫描程序 //P2口高四位接列线,第四位接行线 //源程序和proteus仿真我一打包,地址: http://proteus.5d6d.com/thread-9013-1-1.html ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV P2,#0F0H ;给列送高电平 LCALL DELAY ;延时,使电路稳定下来 MOV R4,00H MOV A,P2 ;取P2口的值 ANL A,#0F0H ;屏蔽行线的影响 CJNE A,#0F0H,L
[单片机]
课程设计:矩阵<font color='red'>键盘</font><font color='red'>扫描</font>(汇编)
矩阵键盘扫描原理(附单片机驱动程序)
此电路图相当于一个坐标图,每个按键都有一个唯一的坐标,以此来确定那个按键被按下 方法一:逐行扫描:通过高四位轮流输出低电平来对矩阵键盘进行逐行扫描,当低四位接收到的数据不全为1的时候,说明有按键按下,然后通过接收到的数据是哪一位为0来判断是哪一个按键被按下。 方法二:行列扫描:通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,这样就能够确定是哪一个按键按下了。 #include reg52.h typedef un
[单片机]
矩阵<font color='red'>键盘</font><font color='red'>扫描</font>原理(附单片机驱动程序)
基于键盘扫描算法的多路断电报警系统设计
随着当代通信技术的发展,技术设备在航空系统、军队、工业等领域的应用已成业务运行的根本保障,大多数设备需24 h无间断供电,这就要求对电源有智能检测和实时的监控,以便及时处理断电事故,保障设备正常运行。而在实际应用中,为了确保有足够的时间抢修断电线路,通常在设备供电中采用多路供电,形成一主用、二备用、三应急的构架。因此,在多路断电线路中实时检测断电线路并进行报警已经成为及时恢复正常供电的关键。本文提出基于改进型的键盘扫描算法,通过设计相关检测硬件电路和监控软件,对多路供电系统进行智能检测报警和远程监控。 1 系统结构 本系统已在民航汕头空管站信标台机房投入使用,下面以其为例简述设计基本结构。 系统硬件部分主要由检测硬件电路
[电源管理]
基于<font color='red'>键盘</font><font color='red'>扫描</font>算法的多路断电报警系统设计
LED显示驱动器的键盘扫描扩展方法
本应用笔记介绍了一种扩展扫描的方法,可以扩展MAX6954和MAX6955 LED显示驱动器的键盘扫描范围,从32键扩展到80键。 MAX6954/MAX6955是4线或2线串行接口的LED驱动器,可以控制7段、14段或16段LED或一个16x8的LED矩阵。驱动器还包括5个I/O扩展(GPIO)端口,以及用这些端口自动扫描32个按键、消除按键抖动的所有逻辑控制。另外一个功能选项是通过一个中断引脚通知系统处理器消除键抖。本文介绍的扩展按键扫描方案(从32键扩展到80或更多个按键)需要增添额外的二极管。 表1. MAX6954/MAX6955的标准32键连接 P0 P1 P2
[电源管理]
LED显示驱动器的<font color='red'>键盘</font><font color='red'>扫描</font>扩展方法
pic单片机4x4键盘扫描程序
//程序中没有做按键去抖,也没有考虑多个键同时按下的情况。 //最低两位 数码管 显示相应的按键(如按下S10,在显示10;按下S25,则显示25) //无按键按下的时候显示FF //按键跟按键的扫描结果满足如下关系: // 按键 扫描结果(result) 按键 扫描结果 // K10 0XE7 K18 0XB7 // K11 0XEB K19 0XBB // K12 0XED K20 0XBD // K13 0XEE K21 0XBE // K14 0XD7
[单片机]
PIC单片机开发板之矩阵键盘扫描(if()else嵌套方式)
/* 为自已写的矩阵键盘检测+数码管显示+蜂鸣器响 采用if().....else嵌套方式;编译通过,却后二列显示不出来(你找出来了吗?一个不算问题的问题) */ //---------------------------------------------------------------- #include pic.h #define uint unsigned int #define uchar unsigned char __CONFIG(0x3B31); const unsigned char table = {0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x7
[单片机]
PIC单片机开发板之矩阵<font color='red'>键盘</font><font color='red'>扫描</font>(if()else嵌套方式)
P1外接4x4键盘的反转法扫描
;---------------------------------------------------------------------------------------- P1口外接4×4按键, 常用的读出键值的方法有“查表法”和“反转法”。 查表法的程序最为简短,但是稍多占用一点存储空间;反转法的程序执行速度最快,只是要求接口是双向的。 下面分别给出了使用查表法和反转法读取键值的程序。 ;---------------------------------------------------------------------------------------- #include reg51.h #include in
[单片机]
工业设备中LED显示和键盘扫描设计
工业设备、汽车电子及仪器仪表中普遍使用LED显示器,原因是LED显示器成本低廉、使用灵活、封装体积小。 开发这类设备时,常常会由于CPU资源不足而不得不采用扩展接口芯片来满足应用系统的需要,而出现这种情况的原因之一是键盘显示占用了太多的系统资源,键盘显示通常采用以下两种方式:(1)采用并行接口的键盘显示专用芯片8279。但8279所需外围元件多(显示驱动、译码等)、占用电路板面积大、综合成本较高;(2)采用通用并行I/O芯片扩展(如8155等),但此方案同样需要驱动显示,同时键盘显示扫描还需占用大量CPU时间;针对这一应用,MAXIM公司推出了带有键盘扫描的LED显示驱动电路MAX6955,该器件具有400kbps、I2C兼容的2
[应用]
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved