网站大量收购独家精品文档,联系QQ:2885784924

《单片机原理及应用》课程设计报告-基于MCS-51单片机的俄罗斯方块游戏设计汇.doc

《单片机原理及应用》课程设计报告-基于MCS-51单片机的俄罗斯方块游戏设计汇.doc

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《单片机原理及应用》课程设计报告-基于MCS-51单片机的俄罗斯方块游戏设计汇

《单片机原理及应用》课程设计报告 基于MCS-51单片机的俄罗斯方块游戏设计 学 号 姓 名 同 组 成 员 专 业 电气工程及其自动化 班 级 0905 班 指 导 教 师 院(系、所) 电气与电子工程学院 华中科技大学教务处制 目录 一、课程设计的目的 4 二、题目要求 4 三、原理概述 4 四、调试过程 4 五、验收结果 4 六、个人体会 10 七、参考文献 10 八、致谢 10 附录一:外电路原理图 11 附录二:程序清单 12 一、课程设计的目的 加深对单片机的理解,熟悉单片机的原理,掌握单片机的编程方法与技巧 灵活运用单片机的基础知识,增强利用理论知识解决实际问题的能力 二、题目要求 1.验收时,先在仿真机的LED上显示自己学号的后6位,再进行相应内容验收。 2.能在单片机实验箱通用板上的液晶显示屏(LCD)上玩俄罗斯方块游戏,使用4*4键盘输入,能够完美实现俄罗斯方块的基本游戏内容,界面优美,最后可以显示分数和级别,如果游戏失败显示“GAME OVER”,最后显示本人姓名“YANG XIN”和学号“200911880”。 原理概述 1. 程序整体思路 单片机上的程序设计一般是一个大循环结构,对于俄罗斯方块的程序设计,首先产生一个伪随机数,其范围是0-6,分别对应俄罗斯方块中随机产生的七种方块,然后程序根据此数值所对应的图形模块装入RAM的固定区域内,紧接着将此图像写入LCD所对应的显示缓冲区中,显示程序将缓冲区内的内容显示在显示屏上,如果没有控制键按下,图形将自动向下移动。如果有键按下,程序将根据按下的键来改变图形存储区的值,同时程序将判断图形是否已到达边界,当图形最上层到达显示区顶部,则游戏结束,此时将清除显示缓冲的内容,游戏重新开始。 2.图形显示 QH12864T液晶显示器一共有128*64个像素点,本程序中每个像素点用一个坐标表示,左上角为(0,0),右下角为(128,64)。对于显示类的基本操作是任意点亮一个点,熄灭一个点,任意点亮n个点,灭掉n个点,如此一来游戏的第一个关键点就完成了。 我们将RAM中选取一段为显示缓冲区,这里面的每一位对应LCD上的的一个点,LCD将实时显示缓冲区的内容,也就是当此缓冲区内容一改变,LCD上看到的也会做出相应的改变。同时游戏中的那些方块被存放在一个类似于一维的数组之中,每一个方块对应四个小方块,根据伪随机数将这四个小方块对应的值装入RAM固定的区域内。如果要显示方块只需将这些方块所对应的点写入缓冲区就可以了。 3.消层算法 设置循环变量数R2=128,即总共要扫描128次,每一次循环过程中检测此行是否已满,也就是检测这一行所对应的存储单元是否全为1,如果全为1则将此行消去,即将此行对应的RAM清零。同时将此行上面RAM的内容按每列依次下移,下移完之后重新令R2=0,又从第一行开始检测。此行不全为零时只需令R2=R2+1,直到R2=128消层过程结束。 4.旋转算法 首先要确定一个旋转中心,假如旋转中心的编号是n,将n除以64,商是m存入R1余数是l存入R2,及时用商和余数建立坐标系。此时若以此为旋转中心的图形需要旋转,则将每一个小方块对应编号除以64,商减去R1,余数减去R2,而每一个方块一次将旋转90度,所以有公式x1,y1,x2,y2 , x2= - y1,y2= x1,其中x1,y1为旋转之前的坐标,x2,y2为旋转之后的坐标。旋转完之后将x2加上R1将y2加上R2,然后将x2乘以64再加上y2。执行四次,此过程旋转结束。 调试过程 1、学号显示部分单独调试 这个在之前的很多实验中都有涉及,程序较为简单,语句也不复杂,本实验中才用的是并行动态显示,调试一次成功。 游戏程序调试相关 验收结果 下图为当时的整个实验装置: 实验中,游戏随机产生方块 按下控制键,方块旋转: 按下控制键,方块加速下落 方块下落到底部,最底层被填满: 最底层填满后,自动消去这一层: 随机产生下一个方块,每次产生方块完全随机: 最后一幅图为游戏结束后,显示所得分数,每消去一行得到一分,显示“GAME OVER”和游戏者姓名学号。 本次实验默认游戏者为本人YANG XIN(杨欣),学号(U)200911880 六、个人体会 在这次实验过程中,特别是调试的时候,如果能够顺利排除BUG实现程序预定功能是最让人开心的,这个过程也会让我很享受。但是如果由于一些搞不清楚的原因迟迟达不到目标,也是最让人烦躁的。而其中的问题,只能漫无目的地去尝试,无法在逻辑中得到答案,我个人遇到了这种状况,确实很无奈。不知道是否是因为我的分析不到

文档评论(0)

liwenhua11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档