《毕业设计(论文):基于单片机的推箱子游戏设计》由会员分享,可在线阅读,更多相关《毕业设计(论文):基于单片机的推箱子游戏设计(45页珍藏版)》请在金锄头文库上搜索。
1、基基于于单单片片机机的的推推箱箱子子游游戏戏设设计计摘 要本论文主要介绍了基于单片机的推箱子游戏的规则、硬件结构、软件代码的编写及工作原理、基于 T6963C 内核的液晶模块 PG160128A 的详细介绍以及指令集。模拟出 Windows 系统下的推箱子游戏,具有任意关数选择、难度依次加大、游戏步数记录、游戏时间记录、按键发声、系统低功耗、可实现在线调试等特点。本系统是以单片机为其控制核心,以有源晶振构成的电路作为时钟信号,通过方向键的选择向单片机控制系统发出人物移动控制命令,控制系统接收命令后做出一系列必要的判断后,控制人物及箱子的移动。本设计已通过了实验仿真,运行稳定,基本上没有规则方面
2、的错误。论文主要分为两大块:一块为游戏的硬件电路组成部分,一块为软件程序设计部分。在硬件电路里主要包括有源晶振部分、方向控制部分及液晶显示部分等与单片机的接线设计;软件编程方面主要是子程序和主程序的编写,包括:初始化代码、液晶驱动代码、方向按键代码、过关判断代码、步数记录代码、时间记录代码、按键发声代码、关数选择代码及表格数据代码等等。所有这些在文中都有详细说明。关键词关键词:单片机;推箱子;PG160128A; T6963C 内核;指令集AbstractThis paper introduces the single-chip based on the rules of the game S
3、okoban, the structure of hardware, software code writing and working principle, based on the core T6963C LCD module PG160128A, as well as details of the instruction set. Simulate the system under Windows Sokoban game, an arbitrary number of related options, in turn increase the difficulty of the gam
4、e a few step-by-step record time of the game record, sound button, low-power system can achieve on-line debugging and so on. The system is based on its single-chip control of the core, consisting of active crystal clock circuit clock signal sent through the arrow keys to select the single-chip contr
5、ol system to control mobile command characters, the control system after receiving an order to make a Series to determine the necessary, to control the movement of people and boxes. This design has been adopted by the simulation experiments, stable, rules virtually no mistakes. The main thesis is di
6、vided into two blocks: one for the games hardware components of the circuit, as a part of the software programming. In the hardware circuitry, including the main active part of the crystal, the direction and control of some of the liquid crystal display and other parts of the single-chip wiring desi
7、gn; software programming side of the main subroutine is the main program and the preparation, including: initialization code, LCD Driver code, the direction of key code, customs code to determine, step-by-step record of the number of code, record time code, voice button code, customs code and select
8、 a number of forms of data code and so on. All of these are in the text in detail.Key words:MCU; Sokoban; PG160128A; T6963C core; instruction set目录目录摘要摘要. Abstract 1 前言前言. 1.1 课题的来源. 1.2 课题研究的意义 1.3 课题国内研究现状. 1.4 课题研究的目的和主要内容. 2 推箱子游戏方案论证推箱子游戏方案论证.2.1 游戏能否在单片机上实现.2.2 单片机、液晶屏的选择 3 推箱子游戏的硬件部分设计推箱子游戏的硬
9、件部分设计 3.1 PG160128A 液晶屏介绍 3.2 T6963C 及其指令集介绍. 3.3 晶振、复位电路. 3.4 液晶显示屏与单片机接口电路. 3.5 控键、喇叭与单片机接口电路.4 推箱子游戏的软件部分设计推箱子游戏的软件部分设计. 4.1 游戏流程图. 4.2 液晶屏驱动代码设计 4.3 初始化代码设计 4.4 游戏时间代码设计 4.5 游戏选关代码设计. 4.6 步数、关数更新代码设计 4.7 游戏过关代码设计. 4.8 图形显示子程序. 4.9 中断代码设计. 4.10 方向控制代码设计. 5 推箱子游戏的系统仿真推箱子游戏的系统仿真5.1 Keil2 编译环境介绍. 5.
10、2 Proteus 在线仿真平台介绍5.3 建立工程项目.5.4 Proteus 中原理图的绘制及文件的加载5.5 开机及游戏界面显示 5.7 仿真结果分析及解决方法 6 总结总结 参考文献参考文献 致谢致谢 附件附件.1 前言1.1 课题的来源如今,游戏机风行的程度,是第一台电子游戏机的研制者诺兰?布什纳尔先生始料不及的。在全世界最大的城市,直至最小的村庄,从纽约最辉煌的游乐场,到高加索最小的乡镇儿童娱乐点,在千家万户,正在进行着千千万万这样的“战斗” ,伴随着无数成功与失败,兴奋与懊丧。游戏机带来了一个全球性的疯狂症,其他任何娱乐与之相比都望尘莫及。然而,究竟是什么原因使游戏机如此风行呢?
11、 在回顾了游戏机发展简史之后,我们不难悟出,技术进步在游戏机发展过程中起到了极大的促进作用。但是,技术进步绝不是游戏机风行的唯一因素。随着终端设备开发能力的加强,作为娱乐终端的游戏机也得到了很大程度的发展。这也加速了游戏机在全球风行程度,所以对于游戏机的研究和设计具有很重要的意义,这也是本课题研究的来源。1.2 课题研究的意课题研究的意义义用单片机来设计一个游戏,不同于现在的大型网络游戏和手机游戏,也不同于其他的小型的单片机控制程序,它对游戏编写者对单片机架构、指令系统、工作模式、数据在内存分配以及传递的把握都提出了更高的要求,特别是在游戏运行当中对外部按键的处理,各子程序的调用流程,先后顺序
12、等代码的复杂程度也都是单片机的一般程序不能比的。可以这样说,能完整的编出游戏,并可以稳定运行,会让我们对游戏有一个更深刻的认识;对游戏编写的难度有一个更切身的理解;对自己的编程能力及逻辑思维能力有一个很大的提高;再一次看到了 C 语言的适用性、易移植性、高效性,相信对 C 语言的学习也不无帮助。1.3 课题国内研究现状课题国内研究现状目前国内游戏公司已达到了 200 多家,市场上运营的游戏亦达 250 多款,但与欧美、韩国等国家的游戏发展程度还有一定差距。我国有广阔的游戏市场,宽阔的发展空间,无限的继续挑战和剧增的玩家队伍。随着网络的兴起,巨大的市场需求量使中国在短短几年,已经从无到有,从陌生
13、到熟知,从掌握到运用。游戏必将成为网络竞争中的主角,他的商业利益和商业价值无法估量。中国,人口众多的国家,随着人们生活水平的提高,温饱已经不是最终目的,我们寻求的是更加多姿多彩的生活,那么我们怎么能错过游戏这一最佳休闲娱乐项目呢?所以我国游戏发展前景一片大好,更应加大游戏开发力度!1.4 课题研究的目的和主要内容课题研究的目的和主要内容本文针对推箱子游戏机的设计,首先介绍了选题的要求,之后详细叙述了软件和硬件的设计过程。在时钟脉冲的作用下,各个按键都能按照事先设定好的规则进行游戏控制。确定键能使界面从初始化显示切换到游戏界面显示,上下左右键控制箱子的移动方向,如果可以移动则移动方块同时跟踪人物
14、的位置及刷新动态数组的内容。在游戏的同时程序会随时记录玩家所走的游戏步数、游戏时间,直至本关通过,在进入下一关的同时更新地图并刷新游戏步数和时间。选关键用于选择游戏关数,在游戏过程中这个键任何时候都有效,当按下选关键后,游戏地图返回第一关,再次按下时游戏进入二关,这样每按下一次键游戏关数加一,如果游戏到了第最后一关将自动返回第一关。硬件部分是由中央处理器(AT89C51 单片机) ,控制部分(独立式按键系统) ,显示部分(PG160128A 液晶显示模块)组成的;软件部分的主要内容是通过对游戏程序进行编写和调试以实现推箱子游戏的功能。通过硬件和软件调试,并针对问题分析修改后,游戏机系统可以稳定
15、运行。游戏机系统中各个部分之间通过数据的传送最终完成了整个游戏运行、显示和进行按键的功能。最后论文对设计进行了总结,对设计中可以进一步改善的地方提出了建议。2 推箱子游戏方案论证推箱子游戏方案论证现如今,游戏风靡全球,各种游戏层出不穷,大到网络型的复杂游戏,小到手机游戏、单机游戏、智力游戏等简单游戏。但是这种简单也是相对于网络游戏等大型游戏而言的,小游戏本身的代码还是相当繁杂,它要执行一系列指令才能正确的完成一个简单的操作,才能按照玩家的意志工作。所以我们现在见到的游戏多是在基于电脑这种高速执行指令的平台上运行的,脱离了它就什么事都做不了了。那么推箱子这种小游戏能否在单片机上编出来呢?答案是肯
16、定的,现从以下几个方面加以论证。2.1 游戏能否在单片机上实现游戏能否在单片机上实现首先,我们编写的这个游戏是一个小型游戏,实现的功能比较简单,不像大型游戏那样功能复杂,它只要控制人物将所有箱子推到正确的位置即可,难度随着箱子的增多而加大,对于实现这样一个功能,程序不是太复杂,用一块单片机足以达到目的。其次,它的控件也比较少只有 4 个方向键和 2 个辅助的功能键,这些控键在 Proteus 中用弹跳式按键代替即可。第三,游戏地图相对比较小、画面简单,只有箱子、人物和正确位置箱子等几个图形,这些在一块稍大的液晶屏上就足以显示,用不着电脑显示屏。第四,就编程语言方面来说,编写这样一个简单的小游戏不需要什么高级的语言,C 语言或汇编语言就足以完成,C 语言是一种通用型的语言,编程灵活、可读性强、移植性好;汇编语言是一种直接面向硬件的基础语言,最接近机器语言,执行速度快(本游戏采用 C 语言编写) 。由以上几点可知:单片机上运行推箱子游戏在硬件和软件两个方面都是可行的。2.2 单片机、液晶屏的选择单片机、液晶屏的选择2.1 单片机的选择