- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数电综合实验报告-贪吃蛇
北 京 邮 电 大 学
数电综合实验报告
实验名称: 简易贪吃蛇游戏机
学 院: 信息与通信工程
姓 名:
班 级:
学 号:
班内序号:
一.设计课题的任务要求
用一个 8×8 点阵作为基本显示屏,4 个连续移动的的发光点表示一条蛇,用任意出现的一个亮点表示老鼠,用4 个排成一条线的发光点表示“墙”,用四个按键控制蛇的运动方向,完成贪食蛇游戏,蛇撞“墙”、边或者游戏时间到,则游戏结束。
(1). 老鼠出现的地方是随机的,在某个地点出现的时间是5秒钟,如果5秒钟之内没有被吃掉,它就会在其它地方随机出现;
(2). 用数码管显示得分情况和游戏的剩余时间,每吃掉一只老鼠就加一分。
二. 系统设计
1.设计思路
采取模块化的设计思想,主要分为控制和显示模块,控制模块主要针对各种控制信号进行控制处理,比如蛇的移动,倒计时,方向控制等,而进行控制时,控制图形的变化的信号有很多,有外部按键输入,内部时钟驱动,判断的状态也比较多,蛇的位置,老鼠的位置,墙的位置等,在设计过程中将操作“串行化”,即利用高速时钟将判断和操作过程分为多个周期完成,简化设计。而显示模块主要完成鼠,蛇,墙以及分数,剩余时间的显示,而此模块要独立于显示内容,其内容与控制模块进行修改,这样使两个模块可以独立地进行工作,具有很好的扩展性和实现性。
2. 总体框图
(1)系统机构图
贪吃蛇控制电路
游戏初始设置:墙、蛇身、鼠初始化
方向控制
时间、速度控制
剩余时间显示
点阵显示
○○○○○○○○
○○○○○○○○
○○●○○●○○
○○○○○●○○
○○○○○●○○
○○○○○●○○
○○○○○○○○
●●●●○○○○
计分显示
老鼠位置控制
墙4点
鼠
蛇身4点
(2)逻辑流程图
流程图:
Reset
等待按键
Start/pause
是否按下
否
是
计时、计分开始,墙初始化
是
60秒时间到
蛇初始化位置并显示
鼠初始化位置并显示
5秒时间到
否
否
蛇身移动
是 按下一次 再次按下
鼠位置重置
Start/pause
上
下
左
右
分数增加
长度增加
撞蛇
撞边
撞墙
吃鼠
是
是
是
是
否
否
否
否
MDS图:
Wait
Eating mouse
New mouse
Moving
Change direction
Moving into boundary
Reset down
Moving into
Snake
Restart
start
key down
timeouTimeout
(3)功能模块图:
计分器
点阵显示
显示存储器
计时器
Reset控制模块
控制器
分频器
方向控制模块
Start/pause
控制模块
CP
3.模块设计
(1)分频模块:
由于实验板上的时钟频率为50MHZ,相对于电路延时时间来说,频率太高,故需要分频将频率降低来适应器件的反应时间要求;同时用来扫描点阵和数码管的频率与用来控制的时钟信号频率是不同的,相对而言用来扫描显示的频率要相对低一些,用来扫描按键和控制的时钟频率要低一些,所以此处将50MHZ的频率分为1MHZ和2KHZ,1MHZ的频率用来扫描按键和进行信号控制,2KHZ用于扫描显示,在控制模块中,又进行了二次分频,用来控制蛇的移动,鼠步的减少,倒计时时间等,不选择直接在分频模块中将所有的所需时钟频率全部分出的原因是在不同的进程中可能会对同一控制信号进行修改,所以这样就会出现多重驱动的问题,然而在进程内
您可能关注的文档
- 我对《沈从文与吊脚楼的女人》的理解.doc
- 我想像黄雅莉一样.doc
- 我是党员,我带头(徐中元).doc
- 我是党员-报告文学.doc
- 我最爱吃的水果连婉妤.doc
- 我来介绍一下1.ppt
- 我爱夏天.doc
- 我爱我师.ppt.ppt
- 我爱我校--团日活动策划书.doc
- 我校优秀留守儿童参加.doc
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)