当前位置:首页 > 毕业论文
1 前言
1.1 课题的来源
如今,游戏机风行的程度,是第一台电子游戏机的研制者诺兰?布什纳尔先生始料不及的。在全世界最大的城市,直至最小的村庄,从纽约最辉煌的游乐场,到高加索最小的乡镇儿童娱乐点,在千家万户,正在进行着千千万万这样的“战斗”,伴随着无数成功与失败,兴奋与懊丧。游戏机带来了一个全球性的疯狂症,其他任何娱乐与之相比都望尘莫及。然而,究竟是什么原因使游戏机如此风行呢? 在回顾了游戏机发展简史之后,我们不难悟出,技术进步在游戏机发展过程中起到了极大的促进作用。
但是,技术进步绝不是游戏机风行的唯一因素。随着终端设备开发能力的加强,作为娱乐终端的游戏机也得到了很大程度的发展。这也加速了游戏机在全球风行程度,所以对于游戏机的研究和设计具有很重要的意义,这也是本课题研究的来源。
1.2 课题研究的意义
用单片机来设计一个游戏,不同于现在的大型网络游戏和手机游戏,也不同于其他的小型的单片机控制程序,它对游戏编写者对单片机架构、指令系统、工作模式、数据在内存分配以及传递的把握都提出了更高的要求,特别是在游戏运行当中对外部按键的处理,各子程序的调用流程,先后顺序等代码的复杂程度也都是单片机的一般程序不能比的。可以这样说,能完整的编出游戏,并可以稳定运行,会让我们对游戏有一个更深刻的认识;对游戏编写的难度有一个更切身的理解;对自己的编程能力及逻辑思维能力有一个很大的提高;再一次看到了C语言的适用性、易移植性、高效性,相信对C语言的学习也不无帮助。
1.3 课题国内研究现状
目前国内游戏公司已达到了200多家,市场上运营的游戏亦达250多款,但与欧美、韩国等国家的游戏发展程度还有一定差距。我国有广阔的游戏市场,宽阔的发展空间,无限的继续挑战和剧增的玩家队伍。随着网络的兴起,巨大的市场需求量使中国在短短几年,已经从无到有,从陌生到熟知,从掌握到运用。游戏必将成为网络竞争中的主角,他的商业利益和商业价值无法估量。中国,人口众多的国家,随着人们生活水平的提高,温饱已经不是最终目的,我们寻求的是
更加多姿多彩的生活,那么我们怎么能错过游戏这一最佳休闲娱乐项目呢?所以我国游戏发展前景一片大好,更应加大游戏开发力度!!!
1.4 课题研究的目的和主要内容
本文针对推箱子游戏机的设计,首先介绍了选题的要求,之后详细叙述了软件和硬件的设计过程。
在时钟脉冲的作用下,各个按键都能按照事先设定好的规则进行游戏控制。
确定键能使界面从初始化显示切换到游戏界面显示,上下左右键控制箱子的移动方向,如果可以移动则移动方块同时跟踪人物的位置及刷新动态数组的
内容。在游戏的同时程序会随时记录玩家所走的游戏步数、游戏时间,直至本关通过,在进入下一关的同时更新地图并刷新游戏步数和时间。选关键用于选择游戏关数,在游戏过程中这个键任何时候都有效,当按下选关键后,游戏地图返回第一关,再次按下时游戏进入二关,这样每按下一次键游戏关数加一,如果游戏到了第最后一关将自动返回第一关。
硬件部分是由中央处理器(AT89C51单片机),控制部分(独立式按键系统),显示部分(PG160128A液晶显示模块)组成的;软件部分的主要内容是通过对游戏程序进行编写和调试以实现推箱子游戏的功能。通过硬件和软件调试,并针对问题分析修改后,游戏机系统可以稳定运行。游戏机系统中各个部分之间通过数据的传送最终完成了整个游戏运行、显示和进行按键的功能。
最后论文对设计进行了总结,对设计中可以进一步改善的地方提出了建议。
2 推箱子游戏方案论证
现如今,游戏风靡全球,各种游戏层出不穷,大到网络型的复杂游戏,小到
手机游戏、单机游戏、智力游戏等简单游戏。但是这种简单也是相对于网络游戏等大型游戏而言的,小游戏本身的代码还是相当繁杂,它要执行一系列指令才能正确的完成一个简单的操作,才能按照玩家的意志工作。所以我们现在见到的游戏多是在基于电脑这种高速执行指令的平台上运行的,脱离了它就什么事都做不了了。那么推箱子这种小游戏能否在单片机上编出来呢?答案是肯定的,现从以下几个方面加以论证。
2.1 游戏能否在单片机上实现
首先,我们编写的这个游戏是一个小型游戏,实现的功能比较简单,不像大型游戏那样功能复杂,它只要控制人物将所有箱子推到正确的位置即可,难度随着箱子的增多而加大,对于实现这样一个功能,程序不是太复杂,用一块单片机足以达到目的。其次,它的控件也比较少只有4个方向键和2个辅助的功能键,这些控键在Proteus中用弹跳式按键代替即可。第三,游戏地图相对比较小、画面简单,只有箱子、人物和正确位置箱子等几个图形,这些在一块稍大的液晶屏上就足以显示,用不着电脑显示屏。第四,就编程语言方面来说,编写这样一个简单的小游戏不需要什么高级的语言,C语言或汇编语言就足以完成,C语言是一种通用型的语言,编程灵活、可读性强、移植性好;汇编语言是一种直接面向硬件的基础语言,最接近机器语言,执行速度快(本游戏采用C语言编写)。由以上几点可知:单片机上运行推箱子游戏在硬件和软件两个方面都是可行的。
2.2 单片机、液晶屏的选择
2.1 单片机的选择
单片机的种类有很多:通用型单片机按位数分有4位机,8位机,16位机和32
位机等等。按厂家分种类就更多,我国目前最常用的单片机有如下几家:Intel 公司的(MCS51系列,MCS96系列);Atmel公司的(AT89系列,MCS51内核);Microchip公司的(PIC系列);Motorola公司的(68HCXX系列);Zilog公司的(Z86系列);Philips公司的(87,80系列,MCS51内核);Siemens公司的(SAB80系列,MCS51内核);NEC公司的(78系列),每种单片机的都有不同,包括:I/O口个数、定时/计数器个数、数据/程序存取区大小、中断源个数、有无看门狗中断、有无A/D转化等等。
基于本游戏只用到了不到20个I/O口;2个定时器断。所以选择了Atmel
公司的AT89C51单片机。其参数如下: 1、基于8051的全静态CMOS工艺控制器; 2、3级流水线指令执行架构; 3、32个I/O口 4、2个定时/计数器 5、6个中断源
6、4K的闪存程序存储器 7、128字节的片内数据存取器
由以上参数可知AT89C51单片机完全满足游戏设计要求。 2.2 液晶屏的选择
液晶屏的种类也有很多,我们经常用到的液晶屏包括:AMPIRE128*64;LGM12641BS1R;LM016L;LM020L;LM017L等等。
前两种为不带字库的汉字、图形点阵液晶屏,共64行,128列,能显示4行8列32个16*16点阵汉字或4行16列64个16*8点阵字符或者最大128*64点阵图形。也有带字库的12864,功能一样。
后几种则是带字库的字符点阵,不能显示图形。LM016L为能显示2行16列32个字符的液晶屏;LM020L为能显示1行16列16个字符的液晶屏;LM017L为能显示2行32列16个字符的液晶屏。
由以上介绍可知:后3种液晶不能显示图形,所以最先排除,因为游戏中地图都是以图形的形式扫描进去的;前2种液晶虽然可以显示图形,但屏幕较小显示不完所有游戏界面的内容,光就地图显示就需要128*144点阵的屏幕,而这两种都是128*64的液晶屏,所以必须找一种更大的液晶显示屏。
最后找到PG160128A液晶屏。很明显,这块液晶屏是160*128点阵的屏幕,除了满足地图显示外还可以显示其他记录信息,如关数显示、时间显示、步数显示等等,完全满足设计要求。这块液晶和以上的很不一样,它基于T6963C内核,引脚更多,功能更复杂,指令集也更多(这些相关内容将在下一章具体介绍)。
共分享92篇相关文档