3 硬件设计
3。1 键盘输入
键盘输入的整体框图如下:
键盘电路框图
3。1。1 键盘工作原理
矩阵键盘是最为常见的一种输入模块,下图是键盘的面板配置:
图 3-2 键盘面板
在这个键盘上每一个按键都是一个开关电路,也就是说,按键的按下与否, 决定了这个按键的逻辑状态是 0 还是 1。如果按键被按下,则当前按键的逻辑为 0,反之,如果没有被按下,则当前逻辑状态为 1。总共有三个扫描信号,分别 为 KY2~KY0,顺序依次为 1110-1101-0111。扫描信号每次只扫描一排按键。假
设当前的扫描信号为 1110,也就是扫描信号现在在扫描“一级”“二级”“三 级”这一排,如果没有任何数字被按下,则由 KX2~KX0 输出值 111。反过来, 如果数字“一级”被按下,则会输出 011。具体数据如下表 3-1 所示。
表 3-1 按键位置和数码关系
KY2~KY0 KX2~KX0 对应的按键
011 一级
1110 101 二级
110 三级
011 四级
1101 101 五级
110 停止
011 正转
0111 101 反转
110 空
如果KY2~KY0 输出值都为 1,则表示没有任何一个按键被按下,不进行按 键编码,如果任意按键被按下时,就应该把KY2~KY0 输出的值送入到译码电路 进行编码。
3。1。2 时序产生电路
因为按键电路需要多种频率的脉冲波形,这时我们就需要使用计数器来制作 所需要的脉冲信号。本次设计主要需要三种不同频率的脉冲信号。即键盘扫描信 号和七段显示器扫描信号、系统时钟脉冲、弹跳消除取样信号。以下图 3-3 是时 序产生电路在Quartus II中的顶层硬件图,程序见附件。
3。1。3 键盘扫描电路
图 3-3 时序电路
键盘扫描电路主要用于提供键盘扫描信号,本次设计键盘扫描的顺序依次是 1110-1101-1011 不断的循环。键盘扫描时分别扫描上述四列按键,假如扫描信 号为 1110,则扫描 KY2 这一排按键,扫描信号每次扫描按键,都会对是否有按 键被按下进行检查,假如没有按键被按下就不忽略,假如有按键被按下,则立刻 进行按键编码,并把编码结果保存在寄存器中。以下图 3-4 是键盘扫描电路在
Quartus II 中的顶层硬件图,程序见附录。文献综述
3。1。4 弹跳消除电路
图 3-4 键盘扫描电路
由于本次设计采用机械式按键,所以在按下按键的同时,接触点会出现来回 弹跳的现象,这种弹跳现象对精密的电路来说有可能会造成误动作。所以必须要 添加弹跳消除电路,才能对电路的信号有保证。一般说来,弹跳消除电路所用的 脉冲信号一般会比其他脉冲信号的频率高,可以将弹跳消除电路的信号频率设置 的高一点。
3。1。5 键盘译码电路
键盘可以分为文字按键以及数字按键,数字按键主要用于输入数字,但是, 键盘输出的数据无法直接使用并且不同的数字按键有其特定的功能,所以必须使 用键盘译码电路来为每一个按键的输出形式进行规划,下表 3-2 是键盘参数表。 VHDL基于CPLD的步进电机控制系统设计(5):http://www.youerw.com/zidonghua/lunwen_82183.html