键盘输入显示

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

摘要:

键盘是最常用人机接口设备之一,在嵌入式系统中有着相当广泛的应用。一般自行设计的简易矩阵键盘仅仅是按行、列排列起来的矩阵开关。当需要较多的按键时,则会占用较多的I/O 端口,在软件上则要进行上电复位按键扫描及通信处理,而且还要加上按键的去抖动处理,增大了软硬件开销。而PS/2 键盘,内嵌自动去除按键抖动设计,自动地识别键的按下与释放,软硬件开发简便,价格便宜,稳定可靠,将PS/2 键盘作为嵌入式系统的输入设备已经成为可行的方案。

本设计是以现场可编程逻辑器件(FPGA)为核心的PS/2接口键盘的输入识别电路。利用QuartusⅡ软件编写verilog HDL硬件描述语言程序以实现键盘部分简单键值的识别与输出。本设计主要以程序为核心,硬件电路的搭建使用FPGA实验箱,将程序顶层文件里定义的输入输出端口与实验箱管脚进行相应的配置,除实验箱上的reset键以外,外设是一个与实验箱通过PS/2接口相连的键盘和VGA接口相连的显示屏。当系统上电后,按下键盘上的按键,实验箱上的数码管可以依次显示从键盘上输入的键值,同时VGA显示屏显示键值。

关键字:

Ps/2接口键盘、FPGA 、Quartus Ⅱ、Verilog HDL、 VGA接口

键盘输入显示

•课程设计目的

(1)巩固和加深所学电子技术课程的基本知识,提高综合运用所学知识的能力;

(2)培养学生根据课题需要选用参考书、查阅手册、图表和文献资料的能力,提高学生独立解决工程实际问题的能力.

(3)通过设计方案的分析比较、设计计算、元件选绎及电路安装调试等环节.初步掌握简单实用电路的工程设计方法.

(4)提高学生的动手能力.掌握常用仪器设备的正确使用方法,学会对简单实用电路的实验调试和对整机指标的测试方法,

(5)了解与课题有关的电路以及元器件的工程技术规范,能按课程设计任务书的要求编写设计说明书,能正确反映设计和实验成果,能正确绘制电路固等.

•设计任务与要求

1.任务:设计一个键盘输入显示控制电路

2.要求和指标:

(1)由键盘输入0~F,总计16个字符,由开发板上的数码管显示;

(2)该字符同时能在VGA上显示输出;

3. 扩展要求:

(A)能在VGA显示屏上切换字符显示的大小。

(B)能连续显示输入字符;

三、方案设计与论证

本电路总共分为分频模块、PS/2键盘输入模块、字符码转换模块、VGA驱动模块。各模块之间的关系如下图所示:

使用现场可编程逻辑器件(FPGA)制作,利用Verilog HDL硬件描述语言编程进行控制,然后下载至实验箱实现。利用QuartusⅡ软件编写verilog HDL 硬件描述语言程序以实现键盘部分简单键值的识别与输出。硬件电路的搭建使用FPGA实验箱,将程序顶层文件里定义的输入输出端口与实验箱管脚进行相应

的配置,除实验箱上的reset键以外,外设是一个与实验箱通过PS/2接口相连的键盘。

工作原理:对键盘按键进行扫描,采集按键的扫描码,然后字符码转换分为两路传送:一条送入数码显示管进行字符显示;另一条通过字模软件获取键盘输入字的字模数据,送入VGA驱动,进行字符的VGA显示。

四.单元电路设计与参数计算

设计分为三部分。分别为键盘数据接收部分、数码管显示部分和VGA

显示部分。模块电路设计及说明:

1.键盘数据接收部分

键盘PS/2的接口简介:

接口的六个脚中,只有四个脚有意义,分别是:时钟脚、数据脚、电源脚、电源地。其余为保留脚。PS/2靠系统的PS/2端口提供+5V电源。这里需要用到

的即是:时钟脚和数据脚。这两个脚都是集电极开路,所以必须接大阻值的上

拉电阻。他们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高

电平。

PS/2设备的clock和data平时都是高电平。当设备等待发送数据时,它首

先检查clock是否为高。如果为低,则认为PC抑制了通讯,此时它缓冲数据知

道获得总线的控制权。如果clock为高电平,PS/2设备则开始向PC发送数据。

数据位在clock为高电平时准备好,在clock下降沿被PC读入。

数据从键盘发送到主机或从主机发送到键盘,时钟都是PS/2设备产生,主

机对时钟控制有优先权,即主机想发送控制指令给PS/2设备时,可以拉低时钟

线至少100us。然后再下拉数据线,最后释放时钟线为高。PS/2设备的时钟线

和数据线都是集电极开路的,容易实现拉低电平。

其数据发送时序如下:

键盘发送时序

键盘接收时序

因为我们的功能只涉及到键盘的数据发送,所以对接收不做具体说明。现在

的PC机使用的PS/2键盘都默认采用第二套扫描码集,扫描码有两种不同的类型:通码和断码。当一个键被按下或持续按住时,键盘会将改键的通码发送给

主机;而当一个键被释放时,键盘会将该键的断码发送给主机。

我们做的比较简单,因此只用到了第一类按键。(返回值见附录)

第一类按键:通码为1字节,断码为0xF0+通码形式。如1键,其通码为0x16,断码为0xF0 0x1C.

在具体的实验过程中,PS/2键盘通过Clock管脚来控制通信方向并且充当

本次实验的一个时钟管脚,在键盘时钟下,数据段进行收发数据,本次实验只

是使用它来发送数据,未设计键盘接收数据。每按下一个键,data管脚发送一

个数据帧,具体格式如下:

PS/2键盘扫描码

1个起始位总是逻辑0

8个数据位(LSB)低位在前

1个奇偶校验位奇检验

此模块的功能说明:当按下一个键时,FPGA在时钟信号下接受来自PS/2

键盘的数据(8个数据位),接收完毕后锁存并转化为十六进制数据,例如4’ha。当按键放开时,发出信号change。这时开始识别按键,如果接收到8’d102,则

表示接收到按键Backspace,则清空显示数据。否则,数码管进行译码后则显示

键盘的键值。

总体来说,此部分分为接收数据模块、数据判断与锁存模块、键值转化模块。

2.数码管显示部分

此模块的功能说明:这部分内容较简单,由于已经得到了键盘信息,在接

收到change信号后,且十六进制数据不是8’d102时(即不是Backspace清零信号),则根据数字对应的通码反过来找数字,经过8段数码管的译码后显示键盘键值。可显示的键值有:0~9,a~f。

此部分总体分为数据接收模块、分频模块、位选信号模块、译码模块。之

所以有分频主要是为了提供数码管动态扫描的扫描频率,频率要适中。否则数

码管不能正常工作。

3.VGA显示部分

VGA时序控制模块是整个显示控制器的关键部分,最终的输出信号行、场同步信号必须严格按照VGA时序标准产生相应的脉冲信号。对于普通的VGA显示器,其引出线的共含5个信号:G,R,B(三基色信号),HS(行同步信号)VS (场同步信号)。在五个信号时序驱动时,VGA显示器要严格遵循“VGA工业标准”,即640×480×25MHz模式或800×600×40MHz模式,本次字符显示试验采用800×600×40MHz模式。

五.程序设计

程序代码见附录

六.程序调试

相关文档
最新文档