欢迎来到天天文库
浏览记录
ID:47665719
大小:4.04 MB
页数:19页
时间:2020-01-27
《北邮数电实验点阵赛车》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数字电路综合实验报告点阵赛车游戏学院:信息与通信工程学院班级:2010211117班姓名:学号:班内序号:辅导老师:袁东明时间:2012年11月目录一、设计任务要求二、系统设计三、仿真波形及分析四、源程序五、功能说明六、元器件清单及资源利用情况七、故障及问题分析八、总结和结论一、设计任务要求1、基本要求:1.用8×8点阵进行5秒倒计时显示,如下图所示。2.当5秒倒计时结束后,点阵显示下图所示的赛道和赛车的初始位置,赛车游戏开始,并开始计时,用两个数码管显示时间。图中的红色表示赛道,黄色表示赛车的初始位置,箭头表示赛车行进的方向。3.用BTN1~BTN3三个按键分别控制赛车的左移、前
2、进、右移,最终使赛车在不碰撞赛道的情况下走完全程(即图2中的绿色位置),游戏结束,点阵显示“V”图案,数码管显示走完全程所耗费的时间。4.当游戏时间超过59秒,或者赛车在行进过程中碰撞赛道,游戏失败,点阵显示“X”图案。5.通过按键BTN0进行复位,控制点阵返回到初始状态。2、提高要求:1.有多种游戏赛道可选,5秒倒计时显示后赛道随机出现。2.赛车的初始位置随机出现。3.在赛车行进过程中,赛道中随机出现障碍物(用8×8点阵中的一个LED表示),通过BTN1~BTN3三个按键的控制躲避障碍物,走完全程。若赛车碰到障碍物和赛道,则游戏失败。二、系统设计1、设计框图1、系统结构框图本系统
3、主要由四个模块组成,其中控制器用于控制程序运行、储存当前状态并控制输出显示,点阵用于显示游戏界面,数码管用于显示当前分数。按钮输入用于输入控制信息。1、逻辑划分方框图1、系统流程图开始点阵5秒倒计时游戏开始,数码管显示时间,点阵显示小车与赛道赛道下移,小车不动小车位置移动否赛道与车是否相撞,是否超时按键输入否是是是否到达终点否是点阵显示“V”图案,数码管显示走完全程所耗费的时间点阵显示“X”游戏结束4、MDS图Te=toend到达终点Cr=crash撞车Ot=overtimeCD=countdownKI=keyboardinput运行状态游戏成功游戏失败等待状态ResetReset
4、ResetOtorCrTeCD游戏运行状态的具体状态转移图键盘输入状态车移动赛道移动是否撞车,超时-KIKIKI到达状态三、仿真波形及波形分析说明:为了得到仿真结果,仿真实验先将分频比降低再进行。说明:cat的波形说明,硬件运行过程中只选择5号和4号数码管,这两个数码管交替启动,分别显示时间秒数的个位和十位说明:游戏刚开始时,数码管显示00.对应的time_car序列为0111111说明:游戏运行一段时间后(5秒倒计时)计时模块开始计时。上图中,数码管显示01秒,0对应序列为0111111,1对应于0000110。下图是02秒的仿真图说明:点阵输出,列的输出为01111111,10
5、111111,……,11111110说明:列的输出为00000100,00000100,00111100……对应于点阵图形5的输出。从第二行开始输出。四、源程序及注释(由于代码过长,此处只显示top-levelentity,其余代码详见附件)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCARISPORT(CLK_CAR,CLEAR_CAR:INSTD_LOGIC;ROW_CAR,COL_CAR:OUTSTD_LOGIC_VECTOR(7DOWNTO0);KEY_CAR:INS
6、TD_LOGIC_VECTOR(2DOWNTO0);TIME_CAR:OUTSTD_LOGIC_VECTOR(6DOWNTO0);CAT_CAR:OUTSTD_LOGIC_VECTOR(5DOWNTO0));ENDCAR;---------------------------------------------------------ARCHITECTUREGAMEOFCARISCOMPONENTDIV_NIS--分频模块PORT(CLK_IN:INSTD_LOGIC;---------时钟输入CLEAR:INSTD_LOGIC;---扫描,清零CLK:OUTSTD_LOGIC:=
7、'0';----1000HZ游戏控制及点阵扫描频率CLK1:OUTSTD_LOGIC:='0';----100HZ数码管扫描频率CLK2:OUTSTD_LOGIC:='0'-----10HZ计时频率);ENDCOMPONENT;COMPONENTANTI_SHAKINGIS--防抖模块PORT(CLK,KEY,CLK1:INSTD_LOGIC;--clk为游戏控制频率clk1为防抖频率100hzK_OUT:OUTSTD_LOGIC);ENDCOMPONENT;COMP
此文档下载收益归作者所有