- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于CPLD的键盘控制器设计
(3)键盘去抖动电路主要由2个DQ触发器和1个基本RS触发器组成。当有键按下时,理想情况下相应的列线应该是一直保持低电平。
但是实际应用中不可避免地产生抖动,此时列回复线将发生长短不等的高电平跳跃现象。键盘去抖电路就是去除这样抖动的高电平对按键键值检测带来的干扰。为了消除这样的干扰,去抖电路采用两级延时策略。
只要抖动的高电平持续时间在去抖电路的2个时钟周期之内,这种抖动是不会被引进编码电路的。键盘去抖电路的具体原理图实现如图5所示。

3 仿真实验及分析
3.1 扫描电路的输出仿真波形
键盘控制器扫描电路的输出仿真波形如图6所示。在图6中扫描电路的输出端依次循环输出低电平来扫描键盘的每一行,图中L1~L4是没有加三态门的扫描器输出,其作为编码电路的输入,R1~R4是加三态门的输出波形,从图3中可以看出当L1~L4的输出是高电平时,R1~R4的输出状态是高阻。

当同一列上的2个按键同时按下时,就可以避免在可编程逻辑器件LC4128V的两个引脚上发生高低电平短接的非法情况。
3.2 编码器的仿真波形
编码器的仿真波形如图7所示。

在图7中,当键盘的第一行扫描电平为低时,根据4×4键盘的扫描原理,只有当第一列的第一个键被按下时,C1才能为低。相应的编码电路输出K3K2K1KO值为0001。只有当第二列的第一个键被按下时,C2才能为低,此时K3K2K1K0值为0010。同理,当C3,C4分别为低时,K3K2K1K0值依次为0011,0100。依此方式编码便可得到前15个按键的键值,而第16个按键的键值就要通过R4和L4相或非后产生单片机中断信号,通知单片机来读取它的键值0000。
3.3去抖动电路的仿真波形
去抖动电路的仿真波形如图8所示。

在图8中,当按键过程中发生抖动时,经过去抖动电路处理,DELYOUTl一直保持低电平。可见,抖动对键值的读取并不产生影响。
3.4 键盘控制器的整体仿真波形
键盘控制器的整体仿真波形如图9所示。

图9是当键盘行扫描信号把键盘的第二行置低,并且第一列的第二个键被按下时键盘控制器的输入/输出波形。从图9中可以看出,控制器检测的键值为0101(这个按键的编码值),这个值并不是在检测到有键按下时就立即被锁存到键值锁存器中的,而是经过一段时间的延迟后,键盘控制器向单片机发出读取这个键值的中断信号(INT),与此同时才给锁存器一个锁存信号来锁存这个值。这样做不但可以防止按键误操作,而且也能处理按键被长时间按下的情况。
4 结 语
IspMACH 4000系列的LC4128V强大的在系统编程能力,在IspLEVER系列工具软件的强力支持下,可以在很短的时间内实现嵌入式系统的接口设计,而且能够使嵌入式产品更具有灵活性。现实表明,可编程逻辑器件的发展和广泛应用,正在使计算机及其应用系统的设计产生革命性的变化。
该设计的键盘控制器已应用于某实际的嵌入式产品中,大大增加了产品的升级空间和节省了单片机的资源,并且收到了非常好的效果。
上一篇:USB
IP核的设计和应用
下一篇:基于USB接口的高增益数据采集系统


