欢迎来到天天文库
浏览记录
ID:11232917
大小:379.85 KB
页数:15页
时间:2018-07-10
《北京邮电大学数字电路综合实验实验报告俄罗斯方块》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数字电路综合实验俄罗斯方块班级:班内序号:学生姓名:学号:一、课题任务要求用一个8×8点阵做为基本显示屏,一个发光点表示一个图形,完成俄罗斯方块游戏的基本功能:下落、左右移动、消行和显示得分情况,当某一列到顶时游戏结束。1.在游戏开始前,请设置一个点阵像素的扫描环节,显示方式自选,以判断点阵的好坏。2.游戏结束时,得分保持,按“开始”键游戏重新开始。3.选做:用一个8×8点阵做为基本显示屏,用多个亮点组成各种形状的“方块”,实现俄罗斯方块游戏的基本功能。4.选做:自拟其它功能。二、系统设计1、设计思路由于实验中只用到了8*8来完成显
2、示功能,所以选用8个行向量RTEMP(0TO7)来存储各点状态,再用两个整型数分别控制当前点的坐标这样在扫描显示的时候很方便,代码也很简洁。 设计包括2个大的元件,一个是RUSSIA1,其功能是存储状态,分频,完成左右下移动以及计分等功能;另一个是RUSSIA2,主要完成点阵扫描和数码管译码。具体设计是这样的:8个向量ST(0~8)记录游戏状态,点的坐标由COL和ROW来控制。设置两个指针DIE和ROW8,如果8列中有一列都为1,表示游戏结束了,置DIE为1,程序进入NULL;当最后一行及STA7=”11111111”时,置RO
3、W8=1,当ROW8=1时,表示要消行,加分,并且将上一行的值赋到下一行。游戏继续,如按下左键或右键,程序更根据下一状态决定是否左移或右移。若无键按下,则根据情况当前点是否需要自动下移2、总系统框图: 说明:分频器产生1HZ频率用于控制过程,按键检测用于检测过程中的按键,数组逻辑运算用于左右移动消行的数学运算并将结果储存到存储器中 扫描器和储存器同时输入信号到现实器用来现实图形检测按键分频器1HZCLOCKCLK1数组逻辑运算储存50KHZ显示扫描3、分块设计:扫描器:产生行扫描信号,输入给点阵板行,用于动态显示。控制器:通过处理数
4、据,更新内部数据矩阵,将列信号输出给点阵板的列。4、状态流程开机扫描点阵矩阵清零等待输入左移no右移no重置Yesyesyes矩阵变化下移no是否消行YESNO三、仿真波形分析:(1扫描(2右移(3左移四、源程序1,russia1.vhdLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_SIGNED.ALL;ENTITYRUSSIA1ISPORT(CLK:INSTD_LOGIC;-------时钟频率,选用低频RESET:INSTD_LOGIC;-------复位键LE
5、FT:INSTD_LOGIC;-------左移键RIGHT:INSTD_LOGIC;-------右移键SCORES:OUTINTEGERRANGE0TO15;-------分数ST0:OUTSTD_LOGIC_VECTOR(0TO7);-------以下为8行状态寄存ST1:OUTSTD_LOGIC_VECTOR(0TO7);ST2:OUTSTD_LOGIC_VECTOR(0TO7);ST3:OUTSTD_LOGIC_VECTOR(0TO7);ST4:OUTSTD_LOGIC_VECTOR(0TO7);ST5:OUTSTD_LO
6、GIC_VECTOR(0TO7);ST6:OUTSTD_LOGIC_VECTOR(0TO7);ST7:OUTSTD_LOGIC_VECTOR(0TO7));ENDRUSSIA1;ARCHITECTUREMOVINGOFRUSSIA1ISSIGNALRTEMP0:STD_LOGIC_VECTOR(0TO7);SIGNALRTEMP1:STD_LOGIC_VECTOR(0TO7);SIGNALRTEMP2:STD_LOGIC_VECTOR(0TO7);SIGNALRTEMP3:STD_LOGIC_VECTOR(0TO7);SIGNALR
7、TEMP4:STD_LOGIC_VECTOR(0TO7);SIGNALRTEMP5:STD_LOGIC_VECTOR(0TO7);SIGNALRTEMP6:STD_LOGIC_VECTOR(0TO7);SIGNALRTEMP7:STD_LOGIC_VECTOR(0TO7);SIGNALDIE:STD_LOGIC;-------gameover标志SIGNALFP:INTEGERRANGE0TO499999999;-------1000分频SIGNALCLK1:STD_LOGIC;SIGNALSCOR_TEMP:INTEGERRANG
8、E0TO15;SIGNALROW8:STD_LOGIC;-------消行标志SIGNALROW1,COL1:INTEGERRANGE0TO7;-------点的坐标控制BEGINP1:PROCESS(CLK,RESET)BEGINI
此文档下载收益归作者所有