课程设计基于FPGA的VGA图像汉字显示及_PS_2键盘控制设计与应用.doc

课程设计基于FPGA的VGA图像汉字显示及_PS_2键盘控制设计与应用.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计基于FPGA的VGA图像汉字显示及_PS_2键盘控制设计与应用

电子信息工程专业综合设计(报告) (课 程 设 计) 题目 基于FPGA的VGA图像汉字显示及PS/2键盘控制设计与应用 二级学院 专 业 班 级 学生姓名 学 号 指导教师 时 间 基于FPGA的VGA图像汉字显示及PS/2键盘控制设计与应用 摘 要:现在社会,以计算机技术为核心的信息技术迅速发展,以及信息的爆炸式增长,人类获得视觉信息的很大一部分是从各种各样的电子显示器件上获得的,对这些电子显示器件的要求也越来越高,在这些诸多因素的驱动下,显示技术也取得了飞速的发展。VGA(Video Graphics Array)是IBM在1987年随PS/2机一起推出的一种视频传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。romaddr_control = (vcnt(6 downto 0)-count_tempv(6 downto 0)) (hcnt(6 downto 0)-count_temph(6 downto 0)); 注:romaddr_control为从rom中取数据时所需要的地址,它对应着图片的没一个像素点的三基色数据;vcnt(5 downto 0)和hcnt(7 downto 0)分别表示取vcnt(9 downto 0)、hcnt(10 downto 0)的后6、后8 个二进制位来做运算。count_tempv(5 downto 0)和count_temph(7 downto 0)同理可以理解其含义。Vcnt、hcnt实际上可以分别理解为屏幕显示的行和列计数器,count_tempv和count_temph可以分别理解为图片在屏幕上显示的起始行和列坐标。 抛开以上等式,按照正常思路,我们可以得到图片控制地址: addr_control=( vcnt - count_tempv ) * 256 + ( hcnt – count_temph ) 通过分析整个mid.vhdl文件,会发现其实上面代码是该等式的高效等效实现。 2.2.2 ROM内存模块 ROM内存中存储的是图片的依次行扫描三基色数据,作为显示时送给VGA显 示器的RGB数据。本设计存储的是一幅128*128的图片,所以定义了一输出为3位,大小为128*128=16384 byte的rom内存。 2.3 键盘控制模块 本模块主要实现由键盘上的WASD控制图片上下左右移动以及速度调节的功能。因此仅仅只需要对键盘的按键进行通码读取并进行相应操作即可。即由ROM内存地址控制模块读取键盘DATA端口数据。然后由ROM内存地址控制模块产生相应操作。 在实际操作中,我加入了两个中间变量对数据进行处理。即 code:in std_logic_vector(7 downto 0); flag:in std_logic; flag用于对键盘按下弹起进行判断以避免误操作。Code用与对键盘DATA口数据进行传输以及函数运算。(FLAG按下为0,弹起为1。加入与运算实现功能) 具体语句为 case 000 flag code is when x01D = o:=o+1;j:=0;--w when x01B = o:=d-1;j:=0;--s when x01C = o:=0;j:=j-1;--a when x023 = o:=0;j:=j+1;--d (其中O为图片纵坐标控制变量,J为横坐标控制变量) 即可完成WASD对图片移动的控制。对应操作为: W:图片上移。 S:图片下移。 A:图片右移。 D:图片左移。 2.4 按键控制模块 按键控制采用的电平触发机制,1Hz左右的扫描频率,适合于人们的使用习惯。其中按键的功能里包括了:a.上下、左右的移动;b.移动中的加速减速停止启动;c.屏保模式自由移动和停止选择按钮。 具体语句为 if(clkmevent and clkm=1) then if(key1=0)then d:=d+1;e:=e+1;end if; if(key2=0)then d:=d-1;e:=e-1;end if; if(key3=0)then d:=d+1;e:=0;end if; if(key4=0)then d:=0;e:=e+1;e

文档评论(0)

jiqinyu2015 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档