位置:51电子网 » 技术资料 » 显示光电

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

发布时间:2007/8/24 0:00:00 访问次数:470


        摘要:GAL6002是Lattice公司研制的电可擦除且可重复编程的高性能PLD器件,文中介绍了以PLD器件GAL6002实现4×4自动扫描去抖的编码键盘电路,给出了该电路的原理及其与MCS-51单片机的接口方法,同时给出了KEY44.ABL文件的程序清单。

        关键词:GAL6002;自动扫描去抖;编码键盘

        键盘在单片机控制系统中是最常用的输入设备之一。虽然非编码键盘的硬件电路较为简单,但按键的识别及键值的计算则需软件来完成,因此需要耗费宝贵的机时;而编码键盘虽然程序简单且易于使用,但硬件比较复杂。因此,设计人员常常难以决定采用哪一类键盘。本文以GAL6002为例,介绍了一种用PLD器件来实现4×4键盘自动扫描去抖的编码键盘电路及其设计方法。

        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);

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

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

        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方程为:


        摘要:GAL6002是Lattice公司研制的电可擦除且可重复编程的高性能PLD器件,文中介绍了以PLD器件GAL6002实现4×4自动扫描去抖的编码键盘电路,给出了该电路的原理及其与MCS-51单片机的接口方法,同时给出了KEY44.ABL文件的程序清单。

        关键词:GAL6002;自动扫描去抖;编码键盘

        键盘在单片机控制系统中是最常用的输入设备之一。虽然非编码键盘的硬件电路较为简单,但按键的识别及键值的计算则需软件来完成,因此需要耗费宝贵的机时;而编码键盘虽然程序简单且易于使用,但硬件比较复杂。因此,设计人员常常难以决定采用哪一类键盘。本文以GAL6002为例,介绍了一种用PLD器件来实现4×4键盘自动扫描去抖的编码键盘电路及其设计方法。

        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);

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

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

        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方程为:

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!