老古开发网首页
导航:老古开发网首页文章索引文章分类CPLD/FPGA→[以PLD器件实现自动扫描去抖的编码键盘设计]
| -文章搜索 - 最新文章 - |

以PLD器件实现自动扫描去抖的编码键盘设计

发布时间:2006年1月24日 点击次数:679
来源:   作者:厦门电机实业总公司 余新良
 

  1 GAL6002芯片简介

  GAL6002是Lattice公司研制的电可擦除、可重复编程的高性能PLD器件,图1所示是其引脚排列。GAL6002具有78×64×36 FPLA结构,可提供78×64的可编程与阵列和64×36的可编程或阵列。它具有10个输出宏单元、8个隐埋宏单元及20个输入和I/O宏单元。它的两个独立输入时钟可分别用于输入和输出宏单元的控制。其输出宏单元和隐埋宏单元的寄存器共用一个高有效复位乘积项。每个寄存器复位为“0”。输出宏单元和输出脚之间均有一个反相缓冲器,每个输出缓冲器的使能可由单独的乘积项来控制。

  2 设计原理

  直接访问方式下的接口电路如图2所示。以下分别从去抖电路、自动扫描电路和接口电路三方面来描述该自动扫描去抖编码键盘电路的设计原理。

  2.1去抖电路

  去抖电路用来执行两个功能:其一是当按键按下时产生一个“冻结”信号FREZ,以用来停止并“冻结”扫描状态机直到按键被释放。它的ABEL方程为:

  FREZ:=!(COL3&COL2&COL1&COL0);

图1 GAL6002管脚图

  其二是当输出保持低电平达两个(或更多)相邻时钟周期时产生一个中断INT。其ABEL方程为:

  INT:=FREZ&!(COL3&COL2&COL1&COL0);

图2 直接访问方式下的接口电路

  2.2 自动扫描电路

  自动扫描电路的软件定义如下:

  R OWREG=[ROW3,ROW2,ROW1,ROW0];

  扫描状态机在输入时钟的上升沿依次向键盘行线发送“0”电平以扫描键盘,如果FREZ信号被使能,则“冻结”状态机。该操作在ABEL文件中的状态图描述如下:

  2.3 接口电路

  在该电路的ABEL文件中,可由真值表界定按键的行列位置与输出值D3~D0的对应关系,其中数值1~16分别对应于16个按键,即编码键盘的键值。从Lattice公司的工具软件ispDesignEXPERT8.2对ABEL文件的编译结果来看,当有多键同时按下时,D3~D0的输出亦为“0”,因此在51汇编程序中应对“0”号键进行适当取舍。

  通过输出缓冲器可使输出管脚设置成高阻态,因此输出管脚可以直接和单片机的数据总线连接。本设计中,D3~D0输出缓冲器由CS和RD两个信号控制。其ABEL方程为:

  采用间接控制方式读取键值的接口电路如图3所示。

图3 间接访问方式下的接口电路

  3 ABEL文件清单

  下面给出KEY44.ABL文件的具体程序清单,其编译工具为Lattice公司的ispDesignEXPERT8.2。


欢迎进入老古论坛进行讨论
[CPLD/FPGA] 相关文章:
基于FPGA的IPV6数据包的拆装实现
简介:
笔者在参与国家“863”重大专题项目“高速密码芯片及验证平台系统”的过程中,遇到了将IPV6数据包的包头和数据部分拆开,然后把数据部分送密码芯片进行加/解密处理,最后再将处理后的数据部分与包头重新封装为数据包的课题。以往对IP包进行拆装多利用软件实现,但本项目涉及到配合高速密码芯片(处理速度在2Gbit/s以上)工作的问题,显然利用软件实现IP包的拆装在速度上达不到要求。为此,笔者运用FPGA(型号为Xilinx公司的XC2VP20—FF896CGB0345)......

采用可编程逻辑器件实现自动交通控制系统
VHDL设计中电路简化问题的探讨
基于FPGA的直接数字频率合成技术设计
FPGA注入新活力
车用FPGA解决方案
采用FPGA解决通信接口问题
FPGA 设计的四种常用思想与技巧
图形化物理综合工具加快FPGA设计流程
用LatticeXP FPGA 桥接吉比特媒体独立接口
 
下一个:[嵌入式系统]单片机实现嵌入式因特网终端的设计
简介:
主要芯片介绍 ·SX52BD是Ubicom公司生产的一款RISC指令集的高速单片机。程序存储器采用Flash,片内容量为4096字节,重复写周期1万次以上;数据存储器是SRAM,片内容量为262×8位。SX52BD采用4个阶段传递(接收-解码-执行-写入),所以每一时钟周期执行1条指令。当最大操作频率达到100MHz时,指令以每10ns的时钟周期运行。通过串口或并口可以对芯片进行在线编程,芯片还有在线调试支持逻辑。该单片......
 

上一个:[模拟电路]基于SA866AE设计的三相低频正弦波发生器

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:10分钟 执行时间:16毫秒