基于GAL6002芯片的去抖编码键盘电路的设计

基于GAL6002芯片的去抖编码键盘电路的设计,第1张

  1 GAL6002芯片简介

  2 设计原理

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

  2.1去抖电路

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

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

  

基于GAL6002芯片的去抖编码键盘电路的设计,第2张

  图1 GAL6002管脚图

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

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

  

基于GAL6002芯片的去抖编码键盘电路的设计,第3张

 

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

  2.2 自动扫描电路

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

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

  

基于GAL6002芯片的去抖编码键盘电路的设计,第4张

 

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

  

基于GAL6002芯片的去抖编码键盘电路的设计,第5张

 

  2.3 接口电路

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

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

  

基于GAL6002芯片的去抖编码键盘电路的设计,第6张

 

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

  

基于GAL6002芯片的去抖编码键盘电路的设计,第7张

 

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

  3 ABEL文件清单

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

  

基于GAL6002芯片的去抖编码键盘电路的设计,第8张

 

  

基于GAL6002芯片的去抖编码键盘电路的设计,第9张

 

  

基于GAL6002芯片的去抖编码键盘电路的设计,第10张

 

  

基于GAL6002芯片的去抖编码键盘电路的设计,第11张

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/dianzi/2453972.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-08-04
下一篇2022-08-04

发表评论

登录后才能评论

评论列表(0条)

    保存