北邮数电实验报告_简易迷宫游戏

北邮数电实验报告_简易迷宫游戏

ID:9171143

大小:542.28 KB

页数:29页

时间:2018-04-20

北邮数电实验报告_简易迷宫游戏_第1页
北邮数电实验报告_简易迷宫游戏_第2页
北邮数电实验报告_简易迷宫游戏_第3页
北邮数电实验报告_简易迷宫游戏_第4页
北邮数电实验报告_简易迷宫游戏_第5页
资源描述:

《北邮数电实验报告_简易迷宫游戏》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数字电路与逻辑设计实验简易迷宫游戏专业:电子信息工程姓名:班级:学号:班内序号:设计课题的任务要求(一)实验目的1.熟练掌握VHDL语言和QuartusII软件的使用;2.理解状态机的工作原理和设计方法;3.掌握利用EDA工具进行自顶向下的电子系统设计方法;(二)相关知识本实验主要利用状态机来设计实现一个简易迷宫系统,本系统分为控制器与受控电路两部分。控制器主要控制整个系统按设定的工作方式实现点阵、计时器、数码管工作的通与断,并使用逻辑判断判决小人是否移动与否和移动的方向。同时本实验也运用到了包括分频器、计数器、数码管、点阵等相关知识。主要利用六位数码管显示30s计时和小人移

2、动步数,用点阵显示开机画面、迷宫地图、小人移动过程和游戏失败、胜利的相应画面。(三)实验任务基本要求:1、用8×8点阵进行游戏显示。2、迷宫游戏如图1所示,采用双色点阵显示,其中红色LED为迷宫墙壁,绿色LED表示人物。通过BTN0~BTN3四个按键控制迷宫中的人物进行上下左右移动,使人物从起始点出发,走到迷宫的出口,游戏结束3、普通计时模式:通过按键BTN7启动游戏,必须在30秒内找到出口,否则游戏失败,用两个数码管进行倒计时显示。游戏胜利或者失败均要在8×8点阵上有相应的画面出现。4、迷宫中的人物在行走过程中,如果碰到墙壁,保持原地不动提高要求:1.多种迷宫地图可以选择。

3、2.在计时的基础上增加计步的功能,每按一次控制按键步数加1,碰壁不计算步数,计步结果用数码管显示。3.增加了计时显示的精确度,让倒计时精确到0.01s4.增加了开机画面,当按下START开始键后,点阵上开始显示“GO-6-5-4-3-2-1”的开始画面。系统设计(一)设计思路此程序利用自顶向下的设计思想。首先要考虑实现基本功能所需要哪些模块,倒计时的功能要用数码管来实现,地图的显示和迷宫游戏中动画的交互要用8×8点阵来实现,方向的选择和开始游戏需要独立按键来显示,这些都是最顶层的模块。然后,要实现这些模块,第一需要适当的时钟频率来驱动,这就要完成一个分频器,根据点阵、数码管以

4、及独立按键各自的特征完成相应频率的分配。实现倒计时功能的时候,需要一个计时器在每秒改变一次数码管的显示状态,于是还需要一个计时器模块。而数码管动态扫描需要相应的LED灯亮灭,这就需要先定义好了显示相应数字的时候对应八段LED的高低电平状态。点阵的显示控制原理和数码管类似,都是一个较高频率的动态扫描过程,只是代码量更大。其次,也是该程序最关键的地方就是绿色小人移动的控制。题干中说明小人撞墙后原地不动,不撞墙的时候进行移动。这就需要我们判断是否撞墙。经过和同学的商讨,我绝对将点阵坐标化,而小人所处的位置用(x,y)表示并实时的更新,然后将墙壁坐标封装好,当下一步的坐标在墙壁坐标的

5、集合中则判定为撞墙,否则根据方向进行移动。而终点坐标也都是提前用代码设定好的,这样通过坐标显示出点阵应该进行的下一画面。到此为止,该实验的基本功能都已经规划得较为清晰。对于提高要求,我通过一个拔码开关控制初始迷宫地图的选择,在程序中加入一个输入信号来选择相应地图;在程序中添加两个计数变量,分别表示步数的个位和十位,两者添加到判断撞墙与否的逻辑语句中,在数码管显示模块中增加两个数码管的显示便可实现。此外,为了丰富点阵界面,我还添加了开机画面,通过一个1s加1的变量扫描显示“GO-6-5-4-3-2-1”;想到很多倒计时显示中个都精确到了0.01s甚至更精确,我又增加两个数码管来

6、显示倒计时的小数点后两位。(一)总体框图1.系统结构框图1.逻辑划分方框图1.控制模块流程图1.状态转移图(一)分块设计①点阵模块:点阵模块主要分为点阵扫描显示模块、小人移动逻辑判断模块。扫描显示模块,主要是对迷宫地图、开机动画以及小人移动变化后的图案进行动态扫描,完成游戏交互。开机画面通过一个一秒更新一次的变量,然后通过case语句来完成扫描;地图图案的显示也是同样的方案,只不过要胜利或者失败的逻辑判断。小人移动的逻辑判断模块,主要通过坐标定位。首先将地图中墙壁的坐标位置封装好,然后将小人时刻的位置定义为(x,y),再根据按键对x,y进行变化,最后通过判断新的坐标是否在封装

7、好的墙壁集合中来进行移动与否的判决。如果移动则更新(x,y);如果不移动,则保持(x,y)不变。②数码管显示模块:数码管显示模块主要分为30s倒计时模块和小人移动步数计数模块倒计时模块中将一个1KHZ的时钟信号进行四次的十分频,可以得到一个精确到0.01s的倒计时。每个变量都是十进制的数,再将它们传送到数码管动态扫描模块,便可以顺利地显示30s倒计时。小人移动步数计数模块,定义两个计数变量count、count10分别表示计数的个位和十位,将其放在小人移动逻辑判断模块中,当逻辑判定为移动,则将count

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。