基于51单片机的俄罗斯方块游戏本科毕业设计论文.docx
《基于51单片机的俄罗斯方块游戏本科毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于51单片机的俄罗斯方块游戏本科毕业设计论文.docx(55页珍藏版)》请在冰豆网上搜索。
基于51单片机的俄罗斯方块游戏本科毕业设计论文
2011
20
3
讲师
曾繁政
物理与电子信息工程系
电气工程及其自动化
基于单片机的俄罗斯方块游戏设计
基于单片机的俄罗斯方块游戏设计
基于单片机的俄罗斯方块游戏设计
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
□优□良□中□及格□不及格
3、学生综合运用所学知识和专业技能分析和解决问题的能力
□优□良□中□及格□不及格
4、研究方法的科学性;技术线路的可行性;设计方案的合理性
□优□良□中□及格□不及格
5、完成毕业论文(设计)期间的出勤情况
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
二、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
评阅教师:
(签名)单位:
(盖章)
年月日
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
□优□良□中□及格□不及格
2、对答辩问题的反应、理解、表达情况
□优□良□中□及格□不及格
3、学生答辩过程中的精神状态
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
评定成绩:
□优□良□中□及格□不及格
教研室主任(或答辩小组组长):
(签名)
年月日
教学系意见:
系主任:
(签名)
年月日
摘要
俄罗斯方块是一款风靡全球的益智游戏。
它规则简单,容易上手,且游戏过程变化无穷,使用户在游戏中得到乐趣。
本文讨论了一种基于增强型单片机硬件平台和实时操作系统的智能俄罗斯方块游戏的设计与实现。
该设计选用的处理器型号为STC12C5A60S2的单片机,实时操作系统采用适用于8051处理器的RTX51Tiny多任务实时操作系统。
重点从软件工程角度论述了俄罗斯方块模型构造,图形旋转,坐标变换,双人游戏中多任务实时操作的设计法方,以及背景音乐的处理等技术。
同时,该设计的独创性是在8051系列单片机中使用操作系统实现了双人游戏和音效的添加。
关键词:
单片机;RTX51;LCD;俄罗斯方块
ABSTRACT
Tetrisisasectionbecamepopularintheworldofpuzzles.Therulesaresimple,easytooperateandthegameprocesschanges.Usersinthegametogetfun.
Thispaperdiscussedamethodbasedonenhanecemicrocontrollerhardwareplatformandreal-timeoperatingsystemofintelligentTetrisgameofdesignandimplementa-tion.Thisdesignmulti-backSTC12C5A60S2single-chipprocessorregultandreal-timeoperatingsystemadoptsuitableforthe8051processorRTX51ofmulti-taskingreal-timeoperatingsystem.Thispapermainlydiscussesthefromsoftwareengineeringtetrismodelofstructure,graphicsrotation,coordinatetransform,thedoublegamemultitaskingreal-timeoperatingdesign,andthebackgroundmusicoftheformationoftechnology.Atthesametime,thedesignoriginalityinthe8051seriesmicro-controllerisusedintheoperatingsystemrealizingdoublegameandsoundadd.
Keywords:
singlechip;RTX51;LCD;Tetris
1绪论
1.1课题背景
如今,计算机系统的发展已明显地朝三个方向发展,这三个方向就是:
巨型化,单片化,网络化。
对于解决复杂计算和高速数据处理的问题仍然是巨型机在起作用,因而,目前巨型机正在朝高速及高处理能力的方向发展。
单片机在出现时Intel公司就给其单片机取名为嵌入式微控制器[4]。
单片机的最明显的优势,就是可以嵌入到各种仪器、设备中。
这一点是巨型机和网络不可能做到的。
单片机在内部已集成了趆来趆多的部件,这些部件包括一般常用的电路,例如:
定时器,比较器,EEPROM,D/A转换器,串行通信接口,Watchdog电路等。
同时,俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,目前在网络单机游戏和kele8等上都有它的身影。
而它曾经造成的轰动与经济价值可以说是游戏史上一件大事。
因此,对它的研究,无论从技术上,还是社会意义上看都是很有价值的。
单片机在游戏上的应用是具有非常大的潜力的,它能将游戏带入到另一个阶段。
此次设计仅仅是为了举一个单片机在游戏应用方面的简单例子,它可以很好的说明单片机功能的强大,体现其更高的可控性和高集成度的好处,因此它可以在电子游戏方面成为一个不可计量的明日之星。
1.2课题的主要研究内容
本课题研究和实现了基于8051+RTX51到Tiny平台下的智能俄罗斯方块游戏系统。
主要研究内容是实现智能俄罗斯方块游戏系统软硬件平台的搭建;本系统以8051微处理器为核心来运行RTX51Tiny多任务实时操作系统,利用KEILC51开发工具进行软件开发,通过LCD12864液晶屏显示游戏界面。
该设计能实现单人单机游、双人单机对战游戏、游戏背景音乐的播放和单人最高积分存储等功能。
在俄罗斯方块游戏系统开发过程中,本文作者首先进行硬件平台的搭建,包括单片机最小系统的搭建、电源系统的搭建、串口下载器的设计、游戏手柄的设计、音效播放模块的设计以及LCD液晶显示接口的设计。
然后,作者才开展软件平台的构建,这也是本设计的重要部分,主要包括对RTX51Tiny操作系统的配置、俄罗斯方块模型的设计、模型图块的旋转及坐标变换设计、双人单机对战游戏设计和音效系统设计等。
最后,从硬件和软件两方面对完成的智能俄罗斯方块游戏系统进行调试及运行试验。
1.3课题的研究现状及意义
现今国内外的俄罗斯方块游戏设计主要有基于PC机上Windows平台的俄罗斯方块游戏、基于手机平台的智能俄罗斯方块游戏以及基于单片机平台的俄罗斯方块游戏等。
前两种属于高端游机,性能优越,但成本高,而且计算机编程已不是新命题,VB、VC、Delphi版本的俄罗斯方块游戏都有发布[9]。
从学术角度来看,针对俄罗斯方块游戏的开发,国内外也有不少学者展开过研究,比如Niko将进化算法引入到俄罗斯方块中并验证了其有效性,Hoogeboom探讨了俄罗斯方块游戏的构造问题,王宇等针对存在于俄罗斯方块中的两个数学问题提出解决方案,高凌琴探讨游戏功能要求、数据结构、图形旋转、坐标变换等关键技术,胡代弟在SPCE061A单片机实现了俄罗斯方块游戏[10]。
综上,国内外的研究多着重于游戏数学原理的讨论,也有部分文献涉及游戏的具体实现,但多是在Windows操作系统下实现的,在单片机平台下的开发俄罗斯方块游戏鲜少有文献刊载。
而单片机由于具有体积小、性能突出、价格低廉等特点,应用领域不断扩大,除了工业控制、智能化仪表、家用电器外,在智能化高档电子玩具产品也大量采用单片机芯片作为核心控制部件。
曾经80年代非常流行的掌上游戏机便是单片机在电子玩具中的应用之一,其中的俄罗斯方块游戏现已被我们所熟知。
本文探讨基于8051单片机硬件平台和RTX51Tiny多任务实时操作系统的俄罗斯方块游戏的设计与实现,将理论与实践相结合。
其主要目标是再现经典的俄罗斯方块游戏,并在此基础上实现双人单机对战游戏模式,以丰富产品功能,增强游戏的趣味性。
2系统硬件平台设计
2.1STC12C5A60S2单片机概述
STC12C5A60S2系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速、低功耗、超强抗干扰的新一代8051系列单片机,指令代码完全兼容传统8051,但速度快8~12倍。
用户程序空间为60KB,片上集成1280字节RAM,具有EEPROM功能,能够额外储蓄1KB的数据。
该单片机共有4个16位定时器,两个与传统8051兼容的定时器/计数器,即16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器,再加上2路PCA模块可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟,此两路可编程计数器阵列(PCA)可用来再实现2个定时器。
此外,STC12C5A60S2内部还集成MAX810专用复位电路,2路PWM,8路高速度10位A/D转换(250K/S),针对电机控制,强干扰场地合。
综上所述,STC12C5A605S2单片机具有许多强大的功能,能够满足大多数用户对8位单片机的要求。
2.2STC12C5A60S2最小系统
单片机最小系统主要由电源、振荡、复位电路以及扩展电路等部分组成。
在本设计中,扩展了液晶显示接口。
因此,本设计的最小系统如图2-1所示。
图2-1STC12C5A60S2最小系统
Fig2-1STC12C5A60S2MinimumSystem
2.3电源系统
本设计的电源系统比较简单,直接由LM7805稳压芯片输出的+5V电源供电。
具体电路如图2-2所示。
图片2-2电源系统
Fig2-2PowerSystem
2.4振荡电路
单片机系统里都有振荡电路,在单片机系统里晶振作用非常大,全称叫晶体振荡器,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率趆高,那么单片机运行速度就趆快,单片机的一切指令执行都是依靠单片机晶振提供的时钟频率。
[4]
晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。
本设计中STC12C5A60S2使用12MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。
如图2-3所示即为本设计的振荡电路。
图2-3振荡电路
Fig2-3oscillatorycircuit
2.5复位系统
MCS51单片机通常采用上电自动复位和按钮复位两种方式。
通常因为系统运行等需要,常常需要人工复位,本设计采用按钮复位的方式,即按下开关一定时间就能使RTS引脚端为高电平,从而使单片机复位。
同时,简单复位电路中,干扰信号易串入复位端,由此可能会引起内部某些寄存器错误复位,这时可在RST引脚上接去耦电容。
在STC12C5A60S2单片机中有两个复位端口,即RST/P4.7、RST2/P4.6,当晶振频率小于或等于12MHz时,使用RST端口。
由于本设计使用外接12MHz的晶振作为振荡时钟,所以采用如图2-4所示的复位系统。
图2-4复位系统
Fig2-4RestSystem
2.6程序下载系统
单片机系统的传统编程方式是先将单片机从电路板上取下,放入专用的编程器进行编程,再放入电路板进行调试。
其缺点是频繁拔插器件容易损坏器件的引脚;如果频繁的调试程序,必须重复拔插,大降低了开发效率。
ISP(在线系统编程)技术是一种无需将存储芯片从嵌入式设备上取出就能对其进行编程的过程。
其优点是,即使器件焊接在电路板上,仍可对其进行编程。
在线系统可编程是Flash存储器的固有特性(通常无需额外电路),Flash几乎都采用这种方式编程。
ISP的实现相对要简单一些,一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。
对于8051系列单片机来讲可通过SPI接口或其它的串行接口接收上位机传来的数据并写入存储器中。
而上位机PC机与下位机单片机通过RS-232串行接口总线进行的串行通信。
8051系列单片机带有一个全双工的串行接口,因此用RS-232串行接口总线非常方便。
PC机配置RS-232标准接口,RS-232信号电平为负逻辑(逻辑“0”为+12V;逻辑“1”为-12V),8051单片机输入、输出电平为TTL电平(逻辑“0”为小于等于0.5V;逻辑“1”为大于等于2.4V)。
所以8051单片机与PC机间点对点异步通信需加电平转换电路,否则将烧坏TTL电路。
MAX232是MAXIM公司生产的电平转换器件,只需在外部接入相应的电解电容即可。
因此,本设计采用直连串口线进行串口通信,其中STC12C5A60S2的P3^0/RXD和P3^1/TXD分别和下载器的第10管脚/T和第9管脚/R相连,串口线的第5管脚接地,2、3管脚和下载器的7、8管脚相连。
具体电路如图2-5所示。
图2-5程序下载系统
Fig2-5ProgramDownloadSystem
2.7音乐播放系统
在本设计中,音乐播放系统是通过三极管驱动有源蜂鸣器发声,而具体的音符声调则由程序控制。
因此,音乐播放系统的硬件电路非常简单。
具体接法为有源蜂鸣器正极直接接+5V电源,负极与三极管8050的发射极相连,8050的集电极直接接地,其基极串一个1K的电阻连接到STC12C5A60S2单片机的P2^0端口。
如图2-6所示。
图片2-6音乐播放系统
Fig2-6MusicPlayerSystem
2.8LCD液晶显示接口电路
液晶显示屏是整个系统硬件的重要组成部分,担当着人机交互的重要角色。
本设计采用铭正同创公司生产的MzL02D-12864液晶点阵屏作为显示器件。
它是一块128*64点阵的LCD显示模组,模组上的LCM采用COG技术将控制(包括显存)、驱动器集成在LCM的玻璃上,接口简单、操作方便。
其特点为单电源供电,对比度编程可调,可采用并行接口为6800/8080时序或者串行SPI的MPU接口方式,整块液晶屏由3.3V的白色LED背光,美观大方。
其外部接口分为电源端口、数据端口和命令端口三部分组成。
本设计中LCD的数据端口连接到STC12C5A60S2单片机的P0端口,LCD的命令端口连接到单片机的P2端口。
具体硬件电路如图2-7所示。
图2-7LCD液晶显示接口电路
Fig2-7LiquidDisplayInterfaceCircuit
2.9操作控制接口
操作控制模块是智能俄罗斯方块游戏系统的输入器件。
它包括主控制器和辅助控制器。
主控制器包括七个按键,分别为:
旋转/确定、向左/返回上级菜、向右/下一个、快速下降、使用道具、暂停、退出。
副控制器则包括五个按键,分别为:
旋转/确定、向左/返回上级菜、向右/下一个、快速下降、使用道具。
在硬件电路方面辅控制器比主控制器少两个按键的连接。
如图2-8所示为主控制器的接线图。
与单片机的具体接口可根据实际设定。
图片2-8控制模块接口
Fig2-8ControlInterface
3系统软件平台构建
3.1μVision简介
μVision是德国Keil公司开发的单片机IDE软件,最初主要用于8051系列单片机,目前也有支ARM系列单片机的专用版本MDK-ARM。
本设计使用的是keilμVision3版本的开发软件进行程序开发。
3.2LCD12864液晶屏显示原理
3.2.1LCD模块总线选择及时序
MzL02D模块提供了两个LCM的引脚(C86和PS引脚)供用户选择模块的接口类型,分别可以选择6800并行总线、8080并行总线或者SPI串行接口。
模块默认情况下PS为高电平、C86为高电平,此时为6800总线接口类型,本设计采用6800总线模式。
在此种接口模式下,WR线为读写控制信号线,当WR为高电平时为读状态,WR为低电来时为写入状态。
在6800总线接口模式下LCD的时序如图3-1所示。
图3-16800总线时序
Fig3-16800BusTiming
3.2.2LCD显示RAM区映射概况
驱动控制芯片的显示RAM区中,每个byte的数据对应屏上的点的排列方式为:
纵向排列,低位在上高位在下;如图3-2所示。
MzL02D-12864液晶显示模组的显示器上的显示点与驱动控制芯片中的显示缓存RAM是一一对应的;共有65(8Page*8bit+1)*132个位的显示RAM区。
而显示器的显示点阵大小为64*128点,所以实际上在液晶显示模块中有用的显示RAM区为64*128个位;按byte为单位划分,共分为8个Page,每个Page为8行,而每一行为128个位。
(即128列)。
图3-2字节数据排列情况
Fig3-2Bytedataarrangement
MzL02D-12864液晶显示模块的显示屏上的每一个点都对应有控制器片内的显示缓存RAM中的一个bit,显示屏上64*128个点分别对应着显示RAM的8个Page,每一个Page有128个byte的空间。
因此可知显示RAM区中的一个Page空间对应8行的点,而该Page中的一个byte数据则对应一列(8个点)。
用户如要点亮LCD屏上的某一个点时,实际上就是对该点所对应的显示RAM区中的某一个位进行置1操作,所以就要确定该点所处的行地址、列地址。
MzL02-12864液晶显示模组的行地址实际上就是Page的信息,每一个Page应有8行;而列地址则表示该点的横坐标,在屏上为从左到右排列,Page中的一个Byte对应的是一列(8行,即8个点),达128列。
可以根据这样的关系在程序中控制LCD显示屏的显示。
3.2.3LCD的驱动方法
在很多资料以及书籍当中,通常介绍有两种LCD模块的连接方法:
直接控制和间接控制;直接控制实际