基于CPLD的键盘控制器设计
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系列工具软件的强力支持下,可以在很短的时间内实现嵌入式系统的接口设计,而且能够使嵌入式产品更具有灵活性。现实表明,可编程逻辑器件的发展和广泛应用,正在使计算机及其应用系统的设计产生革命性的变化。
该设计的键盘控制器已应用于某实际的嵌入式产品中,大大增加了产品的升级空间和节省了单片机的资源,并且收到了非常好的效果。
- 基于DSP与CPLD的多通道数据采集系统的设计(09-22)
- DSP和CPLD的空间瞬态光辐射信号实时探测研究(01-24)
- 基于CPLD的RS-232串口通信实现(04-23)
- USB数据采集系统中DMA数据传输的实现(06-17)
- 简易USB接口卡的设计和实现(04-21)
- G.723.1在DSP数字对讲机基带系统中的应用(01-14)