键盘及接口显示电路EDA

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

河南科技大学

课程设计说明书

课程名称__________ E DA技术 _____________ 题目—键盘及接口显示电路________________

学院车辆与动力工程学院

班级农业电气化与自动化091

学生姓名 __________ 卢浩冉 ______________

指导教师___________ 罗四倍 _______________ 日期 _________ 2012年7月12号 ______

键盘及接口显示电路

摘要

本文通过对4M矩形键盘的信息采集,并能够在数码显示管上显示所按下的信息。通过循环输出行信号,检测列信号输入,将行列信号相并,来达到采集信号的目地,并通过译码在7 段数码管上显示出来。此次设计,为了防止抖动引起的混乱,加入了一个防抖动环节。

在译完一个键值后,加了一个计算环节,一旦检测到列信号后,译码,紧跟着进入计数环节,此时键抖动不会进入其他环节,这样可以防止抖动。给精度较高的场合应用提供了良好的条件,为以后高精度的应用创造良好空间。设计中通过按键控制可以显示字符串,例如“HELLO较小的改动可以任意显示5个字符,这在广告中的用处随处可见,给现代生活带来了方便。

关键词:键盘扫描译码显示字符串

目录

第一章绪论..........................

§1.1 设计目的和意义 (4)

§1.2 设计任务及要求 (4)

第二章总体设计........................

§2.1 工作原理 (5)

§2.2 设计思路 (5)

§2.3 数码管显示译码模块设计 (6)

§ 2.4字符串“ HELLO的模块实现 (7)

§ 2.4.1 七段数码管译码扫描显示 (7)

§ 2.4.2 原理图 (8)

第三章仿真 (9)

§ 3.1 键盘扫描功能的仿真 (9)

§ 3.2 字符串的仿真 (10)

第四章程序 (10)

§ 4.1 键盘扫描程序 (11)

§ 4.2 字符串显示程序 (16)

第五章结论 (18)

参考文献19

第一章绪论

§1.1 设计目的和意义

本次设计的目的就是通过实践深入理解计算机组成原理,了解EDA 技术并掌握VHDL 硬件描述语言的设计方法和思想。以计算机组成原理为指导,通过学习的VHDL 语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识和基本单元电路的综合设计应用。通过对掌握4M键盘的扫描的巧妙实现和对字符串的显示过程.巩固和综合运用所学知识,提高IC 设计能力,提高分析、解决计算机技术实际问题的独立工作能力。

§1.2 设计任务及要求

1. 键盘扫描功能:能够对矩形键盘信息采集;

2. 显示功能:能够显示相应的按键信息,并能够在按键控制下切换为字符串显示

“ HELLO”!

3. 掌握数码管工作的原理,并能够对设计的程序进行仿真和测试,以实现相应的功能。

第二章总体设计

§2.1工作原理

可编程器件的KEY_HANG[3..0] 行信号输出端不停循环输出“1110”“ 1101”“ 1011。”当“没0有11键1”按下时可编程器件的KEY_LIE[3..0] 列信号输入端检测到的是“1111。”当有按键按下时,如按下1,此时KEY_HANG[3..0] 行信号输出为“0111,”即KEY_HANG[3..0] 的3管脚为“0,”可由电路看出,此时输入端KEY_LIE[3..O]检测到的将是“011。KEY_LIE[3..O]的3管脚为0,可以在编写程序时,将输出信号KEY_HANG[3..0] 与输入信号KEY_LIE[3..0] 同时判断,比如可以认为当数据“KEY_HANG&KEY_LIE 为“ 0 1 1 1 0 1 1 1时,可译码成数据1,。同理可得其他按键的编码。根据不同数据的编码译成不同的数据。

§2.2设计思路

1. 循环输出行信号,检测列信号输入,将行列信号相并。

2. 译键值。

3. 去抖动。在译没一个键值后,为了防止抖动,加了一个计算环节,一旦检测到列信号后,译码,紧跟着进入计数环节,此时键抖动不会进入其他环节,这样可以防止抖动。

4. 数码管译码、循环显示。

电路的具体功能罗列如下:

1) 采用4X4矩阵键盘作为操作数和操作符的输入设备。

2) 采用2位8段数码管作为输出显示设备,显示按下的数字及简单的功能。

3) 由于所有键盘在按下或者弹起的时候均有按键抖动,所以应该采用去抖电路,当检测到有按键按下去的时候,应该延时20ms后,再进行检测,如果仍有键盘按键被按下去的话,则进行键盘读值。

当CLK_1K上升沿到来时状态转为stateQ然后判断列与非后的值,看是否有按键按下,如果有输入数据,则自动启动20ms的计数器,当计满数后,产生一个指示信号,此信号为1bit,高电平有效。当读到此指示信号后,便再次将row信号锁存至寄存器,便得到键盘的一个返回值。如果row没有变化,则state转换为state2,对第

二行进行按键扫描。依此类推,扫描第三行与第四行。

因为普通的按键都是接触式的,当按键闭合或释放时,上下接触面都会产生一个很短暂的抖动,如图2.2所示,这个抖动时间一般都会持续5-10ms,虽然这个抖动时间很短,但对于FPGA工作在50M的高频率上的器件来说,还是可以捕捉的到的。为了使CPU对于一次按键操作只处理一次,在软件中必须加入去除抖动处理。如图 2.1所

图2.1按键闭合时产生的抖动

由图中可以看出,最简单的去抖方法就是每隔一段时间读一次键盘,时间间隔大于10ms即可。如果连续两次检测都有按键被按下,则可以肯定有按键被按下,而且也进入闭合稳定期。

§2.3数码管显示译码模块设计

数码管显示译码电路主要用来对实际的二进制数据装换为8段数码管的实际显

示控制码,采用两个2位的8段共阴极数码管,数码管的显示方式有两种:静态显示和动态显示。具体如下:

静态显示方式:所谓静态显示就是指无论是多少位数码管,同时处于显示状态需要的硬件电路较多(每一个数码管都需要一个锁存器),将造成很大的不便,同时

由于所有数码管都处于被点亮状态,所以需要的电流很大,当数码管的数量增多时,

对电源的要求也就随之增高。所以,在大部分的硬件电路设计中,很少采用静态显

相关文档
最新文档