键盘输入显示数电课程实验报告
- 格式:doc
- 大小:324.00 KB
- 文档页数:25
西北工业大学
课 程 设 计 报 告
题 目 键盘输入显示
学 院
班 级
学生(学号)
学生(学号)
学生(学号)
日 期 2013年1月11日
2 摘要:
键盘是最常用人机接口设备之一,在嵌入式系统中有着相当广泛的应用。一般自行设计的简易矩阵键盘仅仅是按行、列排列起来的矩阵开关。当需要较多的按键时,则会占用较多的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接口
3
目 录
一、课程设计目的…………………………………………………………………….4
二、设计任务与要求……………………………………………..4
三、方案设计与论证……………………………………………..4
四、单元电路设计与参数计算…………………………………..5
五、程序设计…………………………………………………………………………….7
六、程序调试…………………………………………………………………………….7
七、遇到的问题及解决方法……………………………………………………..8
八、结论与心得………………………………………………………………………..8
九、参考文献…………………………………………………………………………….9
4 键盘输入显示
一、课程设计目的
(1)巩固和加深所学电子技术课程的基本知识, 提高综合运用所学知识的能力;(2)培养学生根据课题需要选用参考书、查阅手册、图表和文献资料的能力,提高学生独立解决工程实际问题的能力.
(3)通过设计方案的分析比较、设计计算、元件选绎及电路安装调试等环节.初步掌握简单实用电路的工程设计方法.
(4)提高学生的动手能力.掌握常用仪器设备的正确使用方法,学会对简单实用电路的实验调试和对整机指标的测试方法,
(5)了解与课题有关的电路以及元器件的工程技术规范,能按课程设计任务书的要求编写设计说明书,能正确反映设计和实验成果,能正确绘制电路固等.
二、设计任务与要求
1.任务:设计一个键盘输入显示控制电路
2.要求和指标:
(1)由键盘输入0~F,总计16个字符,由开发板上的数码管显示;
(2) 该字符同时能在VGA上显示输出;
3. 扩展要求:
(A)能在VGA显示屏上切换字符显示的大小。
(B)能连续显示输入字符;
三、方案设计与论证
本电路总共分为分频模块、PS/2键盘输入模块、字符码转换模块、VGA驱动模块。各模块之间的关系如下图所示:
使用现场可编程逻辑器件(FPGA)制作,利用Verilog HDL硬件描述语言编程进 5 行控制,然后下载至实验箱实现。利用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读入。 6 数据从键盘发送到主机或从主机发送到键盘,时钟都是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)低位在前 7 1个奇偶校验位 奇检验
1个停止位 总是逻辑1
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模式。
五.程序设计
程序代码见附录
六.程序调试
1、运行Quartus II软件,新建工程和命名顶层文件。
2、建立文件Verilog HDL File。命名为ps2.v 。在文件中写入程序,保存,编 8 译。
3、分配管脚。保存,编译。
4、先下载简单的程序,已确定实验箱可用。
5、之后将生成的.sof文件下载至FPGA实验箱中。
6、在键盘上一次输入0~9,a~f。观察数码管显示的数据是否与键盘的输入键值相同。
7、若不相同或不完全相同,则分模块调试。
调试现象:
1、分别输入0~9和a~f,数码管上均能正确显示,VGA正确显示。
2、输入其他的键值,数码管显示0,VGA显示0。
七.遇到的问题及解决方法
1.不会使用Quartus II软件及verilog HDL语言编写程序。
学习老师给的资料,并在图书馆借阅资料,尝试编写一些简单的verilog HDL程序,熟悉Quartus II软件及verilog HDL语言编写程序的方法。
2. 数码管显示不正确。
不会连接DE0的管脚,管脚配置不正确导致数码管显示异常。查看老师给的文件DE0_User_manual.pdf,学习DE0管脚接法。
3.VGA显示时,屏幕无显示,且出现‘闪屏’。
VGA的时钟控制信号要求为25M Hz,编程时为编写分频器模块,因此时钟输入为50M Hz。解决办法是利用DE0的锁相环二分频得到25M Hz 输入信号。
八.结论与心得
通过本次课程设计,让我对FPGA有了进一步的了解,虽然我们只做了一些最底层、最基本的设计,也只接触了那么一些小小的内容,但通过整个设计过程使我深深地了解了FPGA的强大功能,认识了一些单元的工作原理。
我们小组做的是键盘输入显示,能在DE0的七段数码显示管上显示,也能在VGA上显示键盘输入的字符,从头到尾让我对PS/2键盘、VGA显示原理都有了深刻的认识。在此过程中我们也遇到了许多困难,最开始不会使用Quartus II软件及verilog HDL