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

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

ID:4474953

大小:566.90 KB

页数:29页

时间:2017-12-01

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

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

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

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

3、:1.多种迷宫地图可以选择。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

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

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

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

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

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