欢迎来到天天文库
浏览记录
ID:40624750
大小:1.23 MB
页数:31页
时间:2019-08-05
《北邮数电实验——PS2键盘》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数字电路与逻辑设计实验报告实验名称:PS2键盘接口设计姓名:金小敏学号:班级:2011年1月12日一、实验任务设计制作一个PS/2键盘接口控制器。(a)基本功能按照PS/2键盘接口标准设计一个控制器,接收PS/2键盘发送的数据,用数码管和8×8点阵显示接收到的键值。其中0~9用数码管显示,A~Z用8×8点阵显示,接收到其他键值则不显示。(b)拓展功能(i)实现显示汉字、符号:按F3显示汉字“中”、按F4显示汉字“国”、按F5显示心型符号;(ii)实现音乐播放控制:按F1开始播放音乐、按F2停止播放音乐。
2、二、系统设计(a)设计思路系统总的分为输入输出两大部分。输入即为PS2键盘,输出有显示输出:8×8点阵、数码管,声音输出。根据PS2的协议,PS2按键的输出包含扫描码和断码,本次实验只使用扫描码。将扫描码解码出来后,即可作为不同的判断条件来控制输出。输出包括数码管显示、点阵显示和声音输出。将其设计为:0~9按键时只有数码管显示对应数字,点阵熄灭;A~Z时只有点阵显示,数码管熄灭;按F1时,开始播放音乐并且点阵显示音乐符号“♫”;按F2时,停止播放音乐并且点阵熄灭;按F3时显示汉字“中”;按F4显示汉字“
3、国”;按F5显示“♡”。程序设计为四大模块:解码模块、显示模块、分频模块、音乐模块。(b)总体框图PS2解码模块(i)系统模块键盘输入音乐模块显示模块分频模块(ii)状态转移图(c)分块设计:(1)PS2解码模块①输入输出框图:解码模块retSCANCODE(8位)p_clkp_datret:选择信号p_clk:PS2键盘时钟信号p_dat:PS2键盘数据信号②原理及算法:从键盘/鼠标发送到主机的数据在时钟信号的下降沿当时钟从高变到低的时候被读取从主机发送到键盘/鼠标的数据在上升沿当时钟从低变到高的时候
4、被读取不管通讯的方向怎样键盘/鼠标总是产生时钟信号。一次数据组成为:1位起始位(总为0),8位数据位(低位在前),1位奇校验位,1位停止位(总为1)。键盘接收数据的格式1个起始位总是逻辑08个数据位(LSB)低位在前1个奇偶校验位奇校验1个停止位总是逻辑11个应答位仅用在主机对设备的通讯中由于本次实验只用到扫描码,所以只要接收第一段数据即可。建立一个process,以p_clk位触发信号,将其中的8位数据位保存起来即可(起始位、奇校验位、停止位均不解码),由于8位数据是从低到高的顺序,所以在解码时需要进
5、行移位操作。解码完后将8位数据(已经按从高到低排好)作为输出。(2)显示模块①输入输出框图:显示模块colrowa_to_gcatretdatainclkshowret:选择信号datain:数据输入(即解码后的数据)clkshow:点阵扫描时钟col:点阵行控制row:点阵列控制a_to_g:数码管段控制cat:数码管片选②原理及算法简介:由解码模块解码输出的8位数据及时PS2键盘的各个按键的扫描码,按照PS2协议中的关于各个按键的编码即可以对不同的按键进行区分,PS2有3套编码,但是第二套扫编码码最
6、为常用,本次实验所用键盘是按第二套编码。例如在第二套编码中,“A”的扫描码编码为1CH、“1”的扫描码编码为16H,所以在使用数码管显示0~9时,使用case-when语句即可。在使用点阵显示26个字母是,使用点阵进行扫描,设计原理如下图结构。扫描显示26个字母与2个汉字以及2个符号,将他们的扫面数据存放在一个3维数组中,由于编码的量比较大,所以采用软件编码的办法,找了一款“字模”软件,来进行编码,其中的一些需要人工的修改一下。软件截图如下:(3)分频模块①输入输出框图:分频模块showclkclkcl
7、k:时钟输出(50MHz)showclk:分频输出(为8*8点阵扫描分频,音乐模块的多个分频在音乐模块内完成)②原理及算法简介:由于点阵显示不需要十分精确的分频,只要满足人的视觉暂留即可,所以采用如下的算法,相对来说比较高效,不需要通过一般地以计数来分频的算法,变该算法的分频为2的幂数分频。程序如下process(clk)variablecount:std_logic_vector(19downto0):=X"00000";beginif(rising_edge(clk))thencount:=coun
8、t+1;endif;clkshow<=count(10);endprocess;(4)音乐模块①输入输出框图:音乐模块clkbeepcsclk:时钟输入(50MHz)cs:选择信号beep:蜂鸣器输出②原理及算法简介:蜂鸣器演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。因此蜂鸣器奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时
此文档下载收益归作者所有