键盘输入显示数电课程实验报告
- 格式:doc
- 大小:324.00 KB
- 文档页数:25
西北工业大学
课程设计报告
题目键盘输入显示
学院
班级
学生(学号)
学生(学号)
学生(学号)
日期2013年1月11日
摘要:
键盘是最常用人机接口设备之一,在嵌入式系统中有着相当广泛的应用。一般自行设计的简易矩阵键盘仅仅是按行、列排列起来的矩阵开关。当需要较多的按键时,则会占用较多的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接口
目录
一、课程设计目的 (4)
二、设计任务与要求 (4)
三、方案设计与论证 (4)
四、单元电路设计与参数计算 (5)
五、程序设计 (7)
六、程序调试 (7)
七、遇到的问题及解决方法 (8)
八、结论与心得 (8)
九、参考文献 (9)
键盘输入显示
一、课程设计目的
(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键盘扫描码