NJU南京大学数电实验课大实验:字符小游戏

本文介绍了一个基于FPGA的数字电子实验项目——字符小游戏。该项目实现了通过键盘输入并在VGA显示器上显示字符的功能,包括支持小写字母、数字及特殊符号的输入,重复输出按压键,自动换行等。此外,还介绍了如何通过扩展功能提升用户体验,如支持BackSpace键、自动滚屏等。

NJU数电实验:字符小游戏

全套代码已上传至Github, 请关注Github账号:SH_Hattrick
实验代码

1. 实验内容

实现一个可以用键盘输入,并在 VGA 显示器上回显的交互界面。界面实 现要求可以参考 DOS 字符界面,Window 命令行或 Linux 的字符终端。

基本要求

  1. 支持所有小写英文字母和数字输入,以及不用 Shift 即可输入的符号。2.
  2. 一直按压某个键时,重复输出该字符。
  3. 输入至行尾后自动换行,输入回车也换行。

扩展要求(做5个满分)

  1. 可以显示光标,建议可以用显示闪烁的竖线或横线作为光标。2.
  2. 支持 BackSpace 键删除光标前的字符。3.
  3. BackSpace 删除至本行开始后,再按 BackSpace 可以删除回车键,光标停留在上一行末尾的非空字符后。
  4. 支持自动滚屏,即输入到最后一行后回车出现新空白行,并且所有已输入 的行自动上移一行。
  5. 支持 Shift 键以及大小写字符输入。
  6. 支持方向键移动光标。
  7. 在行首显示命令提示符。

2. 实验原理

  1. 字符显示界面只在屏幕上显示 ASCII 字符,其所需的资源比较少。首先,ASCII 字符用 7bit 表示,共 128 个字符。大部分情况下,我们会用 8bit 来表示 单个字符,所以一般系统会预留 256 个字符。我们可以在系统中预先存储这 256 个字符的字模点阵。
  2. 有了字符点阵后,系统就不再需要记录屏幕上每个点的颜色信息了,只需要记录屏幕上显示的 ASCII 字符即可。在显示时,根据当前屏幕位置,确定应 该显示那个字符,再查找对应的字符点阵即可完成显示。
  3. 我们的显存此时为30*70,记录每个位置上的ascii码,这减小了整体的内存消耗。

3. 实验环境

systembuilder自动建立项目。

4. 实验代码/实验截图

对于模块划分:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值