3-9矩阵键盘

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

process(clk) variable cn:std_logic_vector(2 downto 0); begin
if clk'event and clk='1' then if cn="111" then cn:="000"; else cn:=cn+1; end if;
end if;
sel0<=cn(0); sel1<=cn(1); sel2<=cn(2); end process; end cnt_arch;
这是所有机械触点式按键在状态 输出时的共性问题,抖动的时间长 短取决于按键的机械特性与操作状 态,一般为10~100ms,此为键盘 处理设计时要考虑的一个重要参数。
键盘的抖动示意图
wenku.baidu.com键按下
键释放
前沿抖动
闭合稳定
后沿抖动 释放稳定
6 键盘抖动干扰的消除方法
按键的抖动会造成按一次键产生的 开关状态被可编程逻辑器件误读几次。 为了使可编程逻辑器件能正确地读取按 键状态,必须在按键闭合或断开时,消 除产生的前沿或后沿抖动,去抖动的方 法有硬件方法和软件方法两种。
内部程序:
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt is
port( clk:in std_logic; sel2,sel1,sel0:out std_logic);
end cnt; architecture cnt_arch of cnt is begin
控制逻辑原理图
• 总体仿真图形
8 小结
• 介绍了键盘组成结构 • 重点是键盘识别方法 • 键盘抖动的原理及消除方法 • 实验安排
6.1 硬件方法
硬件方法是设计一个滤波延时电路或 单稳态电路等硬件电路来避开按键的 抖动时间。下图是由R和C组成的滤波 延时消抖电路,设置在按键S与CPU数 据线Di之间。按键S未按下时,电容两
端电压为0,即与非门输入Vi为0,输 出Vo为1。
当S按下时,由于C两端电压不能突变,
充电电压Vi在充电时间内未达到与非门 的开启电压,门的输出Vo将不会改变, 直到充电电压Vi大于门的开启电压时, 与非门的输出Vo才变为0。
sel2,sel1,sel0:in std_logic; Y:out std_logic_vector(6 downto 0)); end yima; architecture yima_arch of yima is signal a:std_logic_vector(3 downto 0); signal b:std_logic_vector(2 downto 0); begin
a<=kin3&kin2&kin1&kin0; b<=sel2&sel1&sel0;
Y<="1111110"when (b="000" and a="1110" ) else "1011111"when (b="000" and a="1101" ) else "0110000"when (b="001" and a="1110" ) else "1110000"when (b="001" and a="1101" ) else "1101101"when (b="010" and a="1110" ) else "1001110"when (b="010" and a="1011" ) else "1111001"when (b="011" and a="1110" ) else "1111110"when (b="011" and a="1011" ) else "1111111"when (b="100" and a="1101" ) else "1001111"when (b="100" and a="1011" ) else "1111011"when (b="101" and a="1101" ) else "1000111"when (b="101" and a="1011" ) else "0110011"when (b="110" and a="1110" ) else "1110111"when (b="110" and a="1101" ) else "1011011"when (b="111" and a="1110" ) else "0011111"when (b="111" and a="1101" ) else "0000000"; end yima_arch;
第三章
利用可编程逻辑器件进行 现代电子系统的设计
第9节 利用可编程逻辑器件进行 矩阵键盘控制接口的设计
1 什么是键盘?
在控制系统中,除了与生产过程进 行信息传递的过程输入输出设备以外, 还有与操作人员进行信息交换的常规输 入设备和输出设备。键盘是一种最常用 的输入设备,它是一组按键的集合,从功 能上可分为数字键和功能键两种,作用 是输入数据与命令,查询和控制系统的 工作状态,实现简单的人机对话。
键盘中的按键可分为数字键和功能键。 数字键主要用来输入数字,但从上述内容发
现,键盘所产生的输出KIN3~KIN0无法拿来 直接使用;另外不同的数字按键也担负不同的 功能,因此必须由键盘译码电路来规划某个按 键的输出形式,以便执行相应的动作。
有了键盘参数表 ,要写出键盘译码电路的 VHDL程序就非常容易了,尤其针对有表可以 对照的电路设计,只要使用CASE-WHEN或 WHEN-ELSE语句,便可轻松完成设计。
2)判断闭合键所在的位置 在确认有键按下后,即可进入确定
具体闭合键的过程。其方法是:依次将 行线置为低电平,即在置某根行线为低 电平时,其它线为高电平。在确定某根 行线位置为低电平后,再逐行检测各列 线的电平状态。若某列为低,则该列线 与低电平的行线交叉处的按键就是闭合 的按键。
5 键盘译码电路
2、键盘及分类
• 键盘是一种最常用的输入设备,它是一组
按键的集合,作用是输入数据与命令,查
询和控制系统的工作状态,实现简单的人
机对话。
键盘 分类
编码键盘
独立键盘
非编码键盘
矩阵式键盘
编码键盘采用硬件编码电路来实现键的 编码,每按下一个键,键盘便能自动产生 按键代码。编码键盘主要有BCD码键盘、 ASCII码键盘等类型。
7 实验 矩阵键盘控制接口设计
7.1实验要求 设计并实现一个4×8矩阵键盘接口控
制器,含有时序产生电路、键盘扫描电路、 键盘译码及显示电路。要求当按下某一个 键时,在数码管上实现该键对应的键值。
7.2实验内容 (1)时序产生电路
分频器DCLK
(2)键盘扫描电路
键盘扫描信号的变化顺序为000-001010-011-100-101-110-111,依次循环 变化来扫描8列按键。
控制逻辑原理图
6 键盘的抖动问题
由于机械触点的弹性振动,按键 在按下时不会马上稳定地接通而在弹 起时也不能一下子完全地断开,因而 在按键闭合和断开的瞬间均会出现一 连串的抖动,这称为按键的抖动干扰, 其产生的波形如下图所示,当按键按 下时会产生前沿抖动,当按键弹起时 会产生后沿抖动。
6 键盘的抖动问题
采用这种矩阵结 构只需M根行输出 线和N根列输入线, 就 可 连 接 M×N 个 按键。
4×8矩阵键盘电路原理图
4 矩阵式键盘的按键识别方法 ——“行扫描法”
行扫描法又称为逐行扫描查询法, 是一种最常用的按键识别方法,如上 图所示键盘,介绍过程如下。 1)判断键盘中有无键按下
将全部行线置低电平,然后检测列线 的状态。只要有一列的电平为低,则 表示键盘中有键被按下,若所有列线 均为高电平,则键盘中无键按下。
键盘功能表
SEL2-SEL0
000 001 010 011
KIN3-KIN0
1110 1101 1011 0111 1110 1101 1011 0111 1110 1101 1011 0111 1110 1101 1011
对应按键 SEL2-SEL0
0 6
100 LAST CTRL
1 7
101 STEP EMPTY1
这段充电延迟时间取决于R1、R2和 C值的大小,电路设计时只要使之大于 或等于100ms即可避开按键抖动的影响。 同理,按键S断开时,即使出现抖动, 由于C的放电延迟过程,也会消除按键 抖动的影响
图中,V1是未施加滤波电路含有前 沿抖动、后沿抖动的波形,V2是施加滤
波电路后消除抖动的波形。
硬件消除抖动原理
(3)键盘译码及显示电路
当按下数字键时,键盘所产生的的输出 KIN3~KIN0跟扫描信号SEL2~SEL0结合,编译成与 数字键键值相对应数字的七段显示码,输出到数码 管显示。
程序代码
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity yima is port(kin3,kin2,kin1,kin0:in std_logic;
非编码键盘仅提供按键的通或断状态, 按键代码的产生与识别由软件完成。
编码键盘的特点是使用方便,键盘码 产生速度快,占用CPU时间少,但对按 键的检测与消除抖动干扰是靠硬件电路 来完成的,因而硬件电路复杂、成本高。 而非编码键盘硬件电路简单,成本低, 但占用CPU的时间较长。
3、矩阵式键盘
矩阵式键盘又叫行列式键盘,是用I/O 口线组成的行、列矩阵结构,在每根行线与 列线的交叉处,二线不直接相通而是通过一 个按键跨接接通。
2 REG
110 C EMPTY2 3 EXEC
111 D
KIN3KIN0
1110 1101 1011 0111 1110 1101 1011 0111 1110 1101 1011 0111 1110 1101 1011
对应按键
MEM 8 E EMPTY4 ESC 9 F SHIFT 4 A NEXT NONE 5 B ENTER
(Di) Vo
Vi R2
R1
+5V
S
V1 (Di) V2
图 5-3 滤波延时消抖电路
滤波延时消抖电路图
6.2 软件方法
软件方法是指编制一段时间大于 100ms的延时程序,在第一次检测到有 键按下时,执行这段延时子程序使键的 前沿抖动消失后再检测该键状态,如果 该键仍保持闭合状态电平,则确认为该 键已稳定按下,否则无键按下,从而消 除了抖动的影响。同理,在检测到按键 释放后,也同样要延迟一段时间,以消 除后沿抖动,然后转入对该按键的处理。
相关文档
最新文档