1、 基于单片机的俄罗斯方块游戏设计 基于单片机的俄罗斯方块游戏设计 物理与电子信息工 程系 电气工程及其自动化 2007 级 0710617123 黄忠南 15078159503 曾繁政 讲师 2011 3 20 独 创 性 声 明 本人郑重声明:所呈交的毕业论文(设计)是本人在指导老师指导下取得的研究成果。除了文中特别加以注释和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写的研究成果。与本研究成果相关的所有人所做出的任何贡献均已在论文(设计)中作了明确的说明并表示了谢意。 签名: 年 月 日 授权声明 本人完全理解贺州学院有关保留、使用本科生毕业论文(设计)的规定,即:学院有权保留并向
2、国家有关部 门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。本人授权贺州学院可以将毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编论文(设计)。 本人论文(设计)中有原创性数据需要保密的部分为 (如没有,请填写“无”) : 签 名: 年 月 日 指导教师签名: 年 月 日 I 基于单片机的俄罗斯方块游戏设计 摘 要 俄罗斯方块是一款风靡全球的益智游戏。它规则简单,容易上手,且游戏过程变化无穷,使用户在游戏中得到乐趣。 本文讨论了一种基于增强型单片机硬件平台和实时操作系统的智能俄罗斯方块游戏的设计与实现。该设计选用
3、 的 处理器型号为 STC12C5A60S2 的单片机,实时操作系统采用适用于 8051 处理器的 RTX51 Tiny 多任务实时操作系统。 重点从软件工程角度论述了俄罗斯方块模型构造,图形旋转,坐标变换,双人游戏中多任务实时操作 的设计 法方 ,以及背景音乐的处理等技术。同时,该设计的独创性是在 8051 系列单片机中使用操作系统实现 了 双人游戏和音效的添加。 关键词: 单片机; RTX51; LCD;俄罗斯方块 II ABSTRACT Tetris is a section became popular in the world of puzzles.The rules are sim
4、ple, easy to operate and the game process changes.Users in the game to get fun. This paper discussed a method based on enhanece microcontroller hardware platform and real-time operating system of intelligent Tetris game of design and implementa- tion.This design multi-back STC12C5A60S2 single-chip p
5、rocessor regult and real-time operating system adopt suitable for the 8051 processor RTX51 of multi-tasking real- time operating system.This paper mainly discusses the from software engineering tetris model of structure,graphics rotation,coordinate transform,the double game multitasking real-time op
6、erating design,and the background music of the formation of technology.At the same time,the design originality in the 8051series micro- controller is used in the operating system realizing double game and sound add. Key words: singlechip; RTX51; LCD; TetrisIII 目 录 摘 要 . I ABSTRACT . II 1 绪 论 . 6 1.1
7、 课题背景 . 6 1.2 课题的主要研究内容 . 6 1.3 课题的研究现状及意义 . 7 2 系统硬件平台设计 . 7 2.1 STC12C5A60S2 单片机概述 . 7 2.2 STC12C5A60S2 最小系统 . 8 2.3 电源 系统 . 8 2.4 振荡电路 . 9 2.5 复位系统 . 9 2.6 程序下载系统 . 10 2.7 音乐播放系统 . 11 2.8 LCD 液晶显示接口电路 . 11 2.9 操作控制接口 . 12 3 系统软件平台构建 . 13 3.1 Vision 简介 . 13 3.2 LCD12864 液晶屏显示原理 . 13 3.2.1 LCD 模块总线
8、选择及时序 . 13 3.2.2 LCD 显示 RAM 区映射概况 . 14 3.2.3 LCD 的驱动方法 . 15 3.2.4 LCD 驱动程序架构 . 15 3.3 俄罗斯方块游戏设计 . 16 3.3.1 俄罗斯方块游戏功能简介 . 16 3.3.2 系统界面的设计 . 17 3.3.3 游戏系统“枚举算法”概述 . 19 3.3.4 俄罗斯方块造型设计的方法 . 20 3.3.5 随机产生俄罗斯方块的方法 . 20 3.3.6 俄罗斯方块平移的实现方法 . 22 3.3.7 俄罗斯方块旋转的实现方法 . 23 3.3.8 俄罗斯方块下移的实现方法 . 25 3.3.9 满行检测及消行
9、功能的实现方法 . 26 3.3.10 游戏积分的计算方法 . 27 3.4 双人俄罗斯方块游戏设计 . 29 3.4.1 RTX51 Tiny 简介 . 29 3.4.2 RTX51 Tiny 的内核分析 . 29 3.4.3 游戏开发环境的配置 . 32 3.4.4 双人单机对战模式的实现流程 . 33 3.5 系统背景音乐的设计 . 33 3.5.1 音乐的设计原理 . 33 3.5.2 音乐播放的实现方法 . 35 3.5.3 音效程序流程 . 35 3.6 系统主程序流程图 . 36 IV 4 产品功能说明与系统性能测试 . 37 4.1 产品功能说明 . 37 4.2 系统性能测试
10、 . 38 5 结束语 . 38 参考文献 . 40 致 谢 黄忠南 基于单片机的俄罗斯方块游戏设计 6 1 绪 论 1.1 课题背景 如今, 计算机系统的发展已明显地朝三个方向发展 , 这三个方向就是:巨 型化,单片 化 ,网络化。 对于 解决复杂 计算和高速数据处理 的问题 仍然是巨型机在起作用,因 而, 目前 巨型机 正 在朝 高 速及 高 处理能力的方向 发展 。单片机在出现时 Intel 公司就给其单片机取名为嵌入式微控制器 4。单片机的最明显的优势,就是可以嵌入到各种仪器、设备中。这一点是巨型机和网络不可能做到的。单片机在内部已集成了趆来趆多的部件,这些 部件 包括一般常用的电路,
11、例如:定时器,比较器, EEPROM, D/A转换器,串行通信接口, Watchdog 电路等。 同时,俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,目前 在 网络单机 游戏 和 kele8 等上都有它的身影。而它曾经 造成的轰动与经济价值可以说是游戏史上一件大事。 因此, 对 它 的研究,无论从技术上,还是社会意义上看都是很有价值的。 单片机在游戏上 的 应用是具有非常大的潜力的,它能将游戏带入到另一个阶段。此次设计仅仅是为了举一个单片机在游戏应用方面的简单例子,它可以很好的说明单片 机 功能的强大, 体现其 更高的可控性和 高 集成度的好处,因此它可以在电子游戏方面成为一个不可计量
12、的明日之星。 1.2 课题的主要研究内容 本课题研究和实现了基于 8051+RTX51 到 Tiny 平台下的智能俄罗斯 方块游戏系统。主要研究内容 是实现 智能俄罗斯方块游戏系统软硬 件 平台的搭建 ;本系统以 8051微处理器为核心来运行 RTX51 Tiny 多任务实时操作系统,利用 KEIL C51 开发 工具 进行软件开发 ,通过 LCD12864 液晶屏显示游戏界面。该设计能实现单人单机游、双人单机对战游戏、游戏背景音乐 的播放 和单人最高积分存储 等 功能。 在俄罗斯方块游戏系统 开发过程中 , 本文作者首先进行硬件平台的搭建,包括单片机最小系统的搭建、电源系统的搭建、串口下载器
13、的设计、游戏手柄的设计、音效播放模块的设计以及 LCD 液晶显示接口的设计。然后 , 作者 才 开展软件平台的构建,这也是本设计的 重 要部分 ,主要包括对 RTX51 Tiny 操作系统的配置、俄罗斯方块模型的设计、模型图块的旋转及坐标变换设计、双人单机对战游戏设计和音效系统设计等。最后,从硬件和软件两方面对完成的 智能 俄罗斯方块游戏系统进行调试及运行试贺州学院本科生毕业论文(设计) 7 验。 1.3 课题的研究现状及意义 现今国内外的俄罗斯方块游戏设计主要有基于 PC 机上 Windows 平台的俄罗斯方块游戏、基于手机平台的智能俄罗斯方块游戏以及基 于 单片机平台的 俄 罗 斯方块游戏
14、等。 前两种属于高端游机,性能优越,但成本高,而且计算机编程已不是新命题 , VB、VC、 Delphi 版本的俄罗斯方块游戏都有发布 9。 从 学术角度来看, 针对俄罗斯方块游戏的开发,国内外 也有 不少学者展开过研究,比如 Niko 将进化算法引入到俄罗斯方块中并验证了其有效性, Hoogeboom 探讨了俄罗斯方块游戏的构造问题,王宇等针对存在于俄罗斯方块中的两个数学问题提出解决方案,高凌琴探讨游戏功能要求、数据结构、图形旋转、坐标变换等关键技术,胡代弟在 SPCE061A 单片机实现了俄罗斯方块游戏 10。 综上,国内外的研究多着重于游戏数学原理的讨论,也有部分 文 献涉及游戏的具体实
15、现,但多是在 Windows 操作系统下实现的,在单片机平台下的开发俄罗斯方块游戏鲜少有文献刊载。 而单片机由于具有体积小、性能突出、价格低廉等特点,应用领域不断扩大,除了工业控制、智能化仪表、家用电器外,在智能化高档电子玩具产品也大量采用单片机芯片作为核心控制部件。曾经 80 年代 非常流行的掌上游戏机便是单片机在电子玩具中的应用 之一 ,其中的俄罗斯方块游戏 现已 被我们所熟知。 本文探讨基于 8051 单片机硬件平台 和 RTX51 Tiny 多任务实时操作系统 的俄罗斯方块游戏的 设计与 实现 ,将理论与实践 相 结合。其 主要目标是 再现经典的俄罗斯方块游戏,并在此基础上实现双人 单
16、机对战 游戏 模式 ,以丰富产品功能 ,增强游戏的趣味性。 2 系统硬件平台设计 2.1 STC12C5A60S2单片机 概述 STC12C5A60S2 系列单片机是宏晶科技生产的单时钟 /机器周期( 1T)的单片机,是高速 、 低功耗 、 超强抗干扰的新一代 8051 系列 单片机,指令代码完全兼容 传统 8051,但速度 快 8 12倍。 用户程序空间为 60KB,片上集成 1280 字节 RAM,具有 EEPROM 功能,能够额外储蓄 1KB 的数据。该单片机共有 4 个 16位定时器,两个与传统 8051 兼容的定时器 /计数器,即 16 位定时器 T0 和 T1,没有定时器 2,但有
17、独立波特率发生器做串行通讯的波特率发生器,再加上 2 路 PCA 模块可由 T0 的溢出在 P3.4/T0 输出黄忠南 基于单片机的俄罗斯方块游戏设计 8 时钟,可由 T1 的溢出在 P3.5/T1 输出时钟,此两路可编程计数器阵列( PCA)可用来再实现 2 个定时器。 此外, STC12C5A60S2 内部 还 集成 MAX810 专用复位电路, 2 路 PWM,8 路高速度 10 位 A/D 转换( 250K/S),针对电机控制,强干扰场地合。 综上所述 ,STC12C5A605S2 单片机具有 许多 强大的功能,能够满足大多数用户 对 8位单片 机 的要求。 2.2 STC12C5A6
18、0S2 最小系统 单片机最小系统主要由电源、 振荡 、 复位 电路以及扩展电路等部分组成。 在本设计中,扩展了液晶显示接口。因此, 本设计的最小系统如图 2-1所示。 图 2-1 STC12C5A60S2 最小系统 Fig 2-1 STC12C5A60S2 Minimum System 2.3 电源系统 本设计的电源系统比较简单, 直接 由 LM7805 稳压芯片输出 的 +5V电源 供电 。 具体电路 如图 2-2 所示 。 贺州学院本科生毕业论文(设计) 9 12J1di a ny ua nD11N 40 07D21N 40 07D31N 40 07D41N 40 07S1S W -P B
19、1122F1F U S E 2C110 00u fC247 0uf112233u178 05R21k123J2+5123J3C O N 3D6L E D 0R11kD5L E D 0图片 2-2 电源 系统 Fig 2-2 Power System 2.4 振荡电路 单片机系统里都有振荡电路 ,在 单片机系统里晶 振作用非常大,全称叫晶体振荡器,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率趆高,那么单片机运行速度就趆快,单片机的一切指令执行都是 依靠 单片机晶振提供的时钟频率。 4 晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。 本设计中STC12C5A60
20、S2 使用 12MHz 的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在 15pF 至 50pF 之间。 如图 2-3 所示即为本设计 的振荡电路。 Y11 2 .0 0 0 M H ZC13 0 p FC23 0 p FX T A L 1X T A L 2图 2-3 振荡电路 Fig 2-3 oscillatory circuit 2.5 复位系统 MCS51 单片机通常采用上电自动复位和按钮复位两种方式。通常因为系统运行等需要,常常需要人工复位, 本设计采用 按钮复位的方式,即按下开关一定时间就能使RTS 引脚端 为高电平,从而使单片机复位。同时,简单复位电路中,干扰信号易串入复位端,由此可能会引起内部某些寄存器错误复位,这时可在 RST 引脚上接去 耦电容。在 STC12C5A60S2 单片机中有两个复位端口,即 RST/P4.7、 RST2/P4.6,当晶振频率小于或等于 12MHz 时,使用 RST 端口。由于 本设计 使用外接 12MHz 的晶振 作为振荡时钟 ,