基于51单片机的俄罗斯方块游戏毕业设计论文


    
    基单片机俄罗斯方块游戏设计



    俄罗斯方块款风靡全球益智游戏规简单容易手游戏程变化穷户游戏中乐趣
    文讨种基增强型单片机硬件台实时操作系统智俄罗斯方块游戏设计实现该设计选处理器型号STC12C5A60S2单片机实时操作系统采适8051处理器RTX51 Tiny务实时操作系统重点软件工程角度述俄罗斯方块模型构造图形旋转坐标变换双游戏中务实时操作设计法方背景音乐处理等技术时该设计独创性8051系列单片机中操作系统实现双游戏音效添加
    关键词:单片机RTX51LCD俄罗斯方块




















    ABSTRACT

    Tetris is a section became popular in the world of puzzlesThe rules are simple easy to operate and the game process changesUsers in the game to get fun
    This paper discussed a method based on enhanece microcontroller hardware platform and realtime operating system of intelligent Tetris game of design and implementa tionThis design multiback STC12C5A60S2 singlechip processor regult and realtime operating system adopt suitable for the 8051 processor RTX51 of multitasking real time operating systemThis paper mainly discusses the from software engineering tetris model of structuregraphics rotationcoordinate transformthe double game multitasking realtime operating designand the background music of the formation of technologyAt the same timethe design originality in the 8051series micro controller is used in the operating system realizing double game and sound add
    Key words: singlechipRTX51LCDTetris
    目 录
    摘 I
    ABSTRACT II
    1 绪 1
    11 课题背景 1
    12 课题研究容 1
    13 课题研究现状意义 1
    2 系统硬件台设计 2
    21 STC12C5A60S2单片机概述 2
    22 STC12C5A60S2系统 3
    23 电源系统 3
    24 振荡电路 3
    25 复位系统 4
    26 程序载系统 5
    27 音乐播放系统 6
    28 LCD液晶显示接口电路 6
    29 操作控制接口 7
    3 系统软件台构建 8
    31 μVision简介 8
    32 LCD12864液晶屏显示原理 8
    321 LCD模块总线选择时序 8
    322 LCD显示RAM区映射概况 9
    323 LCD驱动方法 10
    324 LCD驱动程序架构 10
    33 俄罗斯方块游戏设计 11
    331 俄罗斯方块游戏功简介 11
    332 系统界面设计 12
    333 游戏系统枚举算法概述 14
    334 俄罗斯方块造型设计方法 15
    335 机产生俄罗斯方块方法 15
    336 俄罗斯方块移实现方法 17
    337 俄罗斯方块旋转实现方法 18
    338 俄罗斯方块移实现方法 20
    339 满行检测消行功实现方法 21
    3310 游戏积分计算方法 22
    34 双俄罗斯方块游戏设计 24
    341 RTX51 Tiny简介 24
    342 RTX51 Tiny核分析 24
    343 游戏开发环境配置 27
    344 双单机战模式实现流程 28
    35 系统背景音乐设计 28
    351音乐设计原理 28
    352 音乐播放实现方法 30
    353 音效程序流程 30
    36 系统程序流程图 31
    4 产品功说明系统性测试 32
    41 产品功说明 32
    42 系统性测试 33
    5 结束语 33
    参考文献 35
    致 谢







    1 绪
    11 课题背景
    计算机系统发展已明显三方发展三方:巨型化单片化网络化解决复杂计算高速数处理问题然巨型机起作目前巨型机正高速高处理力方发展单片机出现时Intel公司单片机取名嵌入式微控制器[4]单片机明显优势嵌入种仪器设备中点巨型机网络做单片机部已集成趆趆部件部件包括般常电路例:定时器较器EEPROMDA转换器串行通信接口Watchdog电路等
    时俄罗斯方块款风靡全球电视游戏机掌游戏机游戏目前网络单机游戏kele8等身影造成轰动济价值说游戏史件事研究技术社会意义价值
    单片机游戏应具非常潜力游戏带入阶段次设计仅仅举单片机游戏应方面简单例子说明单片机功强体现更高控性高集成度处电子游戏方面成计量明日星
    12 课题研究容
    课题研究实现基8051+RTX51Tiny台智俄罗斯方块游戏系统研究容实现智俄罗斯方块游戏系统软硬件台搭建系统8051微处理器核心运行RTX51 Tiny务实时操作系统利KEIL C51开发工具进行软件开发通LCD12864液晶屏显示游戏界面该设计实现单单机游双单机战游戏游戏背景音乐播放单高积分存储等功
    俄罗斯方块游戏系统开发程中文作者首先进行硬件台搭建包括单片机系统搭建电源系统搭建串口载器设计游戏手柄设计音效播放模块设计LCD液晶显示接口设计然作者开展软件台构建设计重部分包括RTX51 Tiny操作系统配置俄罗斯方块模型设计模型图块旋转坐标变换设计双单机战游戏设计音效系统设计等硬件软件两方面完成智俄罗斯方块游戏系统进行调试运行试验
    13 课题研究现状意义
    现国外俄罗斯方块游戏设计基PC机Windows台俄罗斯方块游戏基手机台智俄罗斯方块游戏基单片机台俄罗斯方块游戏等前两种属高端游机性优越成高计算机编程已新命题VBVCDelphi版俄罗斯方块游戏发布[9]
    学术角度针俄罗斯方块游戏开发国外少学者展开研究Niko进化算法引入俄罗斯方块中验证效性Hoogeboom探讨俄罗斯方块游戏构造问题王宇等针存俄罗斯方块中两数学问题提出解决方案高凌琴探讨游戏功求数结构图形旋转坐标变换等关键技术胡代弟SPCE061A单片机实现俄罗斯方块游戏[10]
    综国外研究着重游戏数学原理讨部分文献涉游戏具体实现Windows操作系统实现单片机台开发俄罗斯方块游戏鲜少文献刊载单片机具体积性突出价格低廉等特点应领域断扩工业控制智化仪表家电器外智化高档电子玩具产品量采单片机芯片作核心控制部件80年代非常流行掌游戏机便单片机电子玩具中应中俄罗斯方块游戏现已熟知
    文探讨基8051单片机硬件台RTX51 Tiny务实时操作系统俄罗斯方块游戏设计实现理实践相结合目标现典俄罗斯方块游戏基础实现双单机战游戏模式丰富产品功增强游戏趣味性

    2 系统硬件台设计
    21 STC12C5A60S2单片机概述
    STC12C5A60S2系列单片机宏晶科技生产单时钟机器周期(1T)单片机高速低功耗超强抗干扰新代8051系列单片机指令代码完全兼容传统8051速度快8~12倍户程序空间60KB片集成1280字节RAM具EEPROM功够额外储蓄1KB数该单片机416位定时器两传统8051兼容定时器计数器16位定时器T0T1没定时器2独立波特率发生器做串行通讯波特率发生器加2路PCA模块T0溢出P34T0输出时钟T1溢出P35T1输出时钟两路编程计数器阵列(PCA)实现2定时器外STC12C5A60S2部集成MAX810专复位电路2路PWM8路高速度10位AD转换(250KS)针电机控制强干扰场合
    综述STC12C5A605S2单片机具许强功够满足数户8位单片机求
    22 STC12C5A60S2系统
    单片机系统电源振荡复位电路扩展电路等部分组成设计中扩展液晶显示接口设计系统图21示

    图 21 STC12C5A60S2系统
    Fig 21 STC12C5A60S2 Minimum System

    23 电源系统
    设计电源系统较简单直接LM7805稳压芯片输出+5V电源供电具体电路图22示

    图片22 电源系统
    Fig 22 Power System
    24 振荡电路
    单片机系统里振荡电路单片机系统里晶振作非常全称晶体振荡器结合单片机部电路产生单片机需时钟频率单片机晶振提供时钟频率趆高单片机运行速度趆快单片机切指令执行单片机晶振提供时钟频率[4]
    晶振通常锁相环电路配合提供系统需时钟频率设计中STC12C5A60S212MHz晶体振荡器作振荡源单片机部带振荡电路外部连接晶振两电容电容容量般15pF50pF间图23示设计振荡电路

    图 23 振荡电路
    Fig 23 oscillatory circuit

    25 复位系统
    MCS51单片机通常采电动复位钮复位两种方式通常系统运行等需常常需工复位设计采钮复位方式开关定时间RTS引脚端高电单片机复位时简单复位电路中干扰信号易串入复位端会引起部某寄存器错误复位时RST引脚接耦电容STC12C5A60S2单片机中两复位端口RSTP47RST2P46晶振频率等12MHz时RST端口设计外接12MHz晶振作振荡时钟采图24示复位系统

    图 24 复位系统
    Fig 24 Rest System

    26 程序载系统
    单片机系统传统编程方式先单片机电路板取放入专编程器进行编程放入电路板进行调试缺点频繁拔插器件容易损坏器件引脚果频繁调试程序必须重复拔插降低开发效率ISP(线系统编程)技术种需存储芯片嵌入式设备取出进行编程程优点器件焊接电路板进行编程线系统编程Flash存储器固特性(通常需额外电路)Flash采种方式编程
    ISP实现相简单般通做法部存储器位机软件通串口进行改写8051系列单片机讲通SPI接口串行接口接收位机传数写入存储器中位机PC机位机单片机通RS232串行接口总线进行串行通信8051系列单片机带全双工串行接口RS232串行接口总线非常方便PC机配置RS232标准接口RS232信号电负逻辑(逻辑0+12V 逻辑112V)8051单片机输入输出电TTL电(逻辑0等05V逻辑1等24V)8051单片机PC机间点点异步通信需加电转换电路否烧坏TTL电路MAX232MAXIM公司生产电转换器件需外部接入相应电解电容设计采直连串口线进行串口通信中STC12C5A60S2P3^0RXDP3^1TXD分载器第10脚T第9脚R相连串口线第5脚接23脚载器78脚相连具体电路图25示

    图 25 程序载系统
    Fig 25 Program Download System
    27 音乐播放系统
    设计中音乐播放系统通三极驱动源蜂鸣器发声具体音符声调程序控制音乐播放系统硬件电路非常简单具体接法源蜂鸣器正极直接接+5V电源负极三极8050发射极相连8050集电极直接接基极串1K电阻连接STC12C5A60S2单片机P2^0端口图26示


    图片26 音乐播放系统
    Fig 26 Music Player System

    28 LCD液晶显示接口电路
    液晶显示屏整系统硬件重组成部分担着机交互重角色设计采铭正创公司生产MzL02D12864液晶点阵屏作显示器件块128*64点阵LCD显示模组模组LCM采COG技术控制(包括显存)驱动器集成LCM玻璃接口简单操作方便特点单电源供电度编程调采行接口68008080时序者串行SPIMPU接口方式整块液晶屏33V白色LED背光美观方外部接口分电源端口数端口命令端口三部分组成设计中LCD数端口连接STC12C5A60S2单片机P0端口LCD命令端口连接单片机P2端口具体硬件电路图27示

    图 27 LCD液晶显示接口电路
    Fig 27 Liquid Display Interface Circuit

    29 操作控制接口
    操作控制模块智俄罗斯方块游戏系统输入器件包括控制器辅助控制器控制器包括七键分:旋转确定左返回级菜右快速降道具暂停退出副控制器包括五键分:旋转确定左返回级菜右快速降道具硬件电路方面辅控制器控制器少两键连接图28示控制器接线图单片机具体接口根实际设定

    图片28 控制模块接口
    Fig 28 Control Interface

    3 系统软件台构建
    31 μVision简介
    μVision德国Keil公司开发单片机IDE软件初8051系列单片机目前支ARM系列单片机专版MDKARM设计keil μVision3版开发软件进行程序开发
    32 LCD12864液晶屏显示原理
    321 LCD模块总线选择时序
    MzL02D模块提供两LCM引脚(C86PS引脚)供户选择模块接口类型分选择6800行总线8080行总线者SPI串行接口模块默认情况PS高电C86高电时6800总线接口类型设计采6800总线模式种接口模式WR 线读写控制信号线WR 高电时读状态WR低电时写入状态6800总线接口模式LCD时序图31示

    图 31 6800总线时序
    Fig 31 6800 Bus Timing

    322 LCD显示RAM区映射概况
    驱动控制芯片显示RAM区中byte数应屏点排列方式:排列低位高位图32示MzL02D12864液晶显示模组显示器显示点驱动控制芯片中显示缓存RAM应65(8Page * 8bit + 1)*132位显示RAM区显示器显示点阵64*128点实际液晶显示模块中显示RAM区64*128位byte单位划分分8PagePage8行行128位(128列)

    图 32 字节数排列情况
    Fig 32 Byte data arrangement

    MzL02D12864液晶显示模块显示屏点应控制器片显示缓存RAM中bit显示屏64*128点分应着显示RAM8PagePage128byte空间知显示RAM区中Page空间应8行点该Page中byte数应列(8点)
    户点亮LCD屏某点时实际该点应显示RAM区中某位进行置1操作确定该点处行址列址MzL0212864液晶显示模组行址实际Page信息Page应8行列址表示该点横坐标屏左右排列Page中Byte应列(8行8点)达128列根样关系程序中控制LCD显示屏显示
    323 LCD驱动方法
    资料书籍中通常介绍两种 LCD模块连接方法:直接控制间接控制直接控制实际指 LCD模块总线接口直接MCU端口连接然 MCU 通程序控制端口模拟 LCD总线时序完成控制操作间接控制指MCU身外部总线拉出LCD总线接口应连接程序中直接操作总线控制LCD目前MCU 总线密封起没引出外部总线通常MCU控制LCD模块时时常会选择直接控制方式利端口模拟总线时序然果身总线LCD模块总线配话肯定会总线连接间控方式
    设计采直接控制方式MzL02D12864 LCD模块总配置6800总线绝部分引出外部总线MCU时序样设计LCD12864模块中户程序进行显示控制时非通LCD模块部驱动控制器中寄存器进行设置操作常LCD显示开关操作显存址(行列址)设置等寄存器般LCD模块驱动控制器文档中详细介绍
    324 LCD驱动程序架构
    LCD12864驱动程序LCD底层驱动LCD功函数两部分组成户应层直接功函数具体框架图33示
    功函数层
    字库
    驱动层函数声明
    功函数
    LCD配置
    驱动层
    传输模式IO端口配置
    数传输驱动
    应层
    户应程序
    功函数声明

    图 33 LCD驱动程序架构
    Fig 33 LCD Driver architectures

    33 俄罗斯方块游戏设计
    331 俄罗斯方块游戏功简介
    俄罗斯方块游戏规简单方块屏幕方落时玩家控制方块位置旋转方块巧妙安排布置达充分利屏幕空间目屏幕整行方块排满时作奖赏整行屏幕消失剩余方块次降行方块堆积达法落方块时候游戏结束设计中游戏功点包括:
    (1) 4方块组合成组方块群游戏7种方块群次机产生种玩家左右快速键控制方块位置旋转键控制方块时针旋转控制手柄退出暂停钮实现时切换启动时状态暂停游戏功
    (2) 设计中系统玩家提供背景音乐玩家根喜开启关闭音效
    (3) 单模式玩家控制器进行操作消行系统玩家加1分单模式果积分超系统记录高积分系统更新高积分
    (4) 设计亮点实现双战游戏通控制器菜单选项中选择双模式第二玩家通副控制器第二游戏界面进行操作游戏系统规定双战游戏中积分分两阶段第阶段普通积分阶段双方玩家消行相应积分表加1分第二阶段积分阶段消三行获1积分双方先达第二阶段末尾者取胜时该设计中双方玩家增加道具功该功时令手前移动图块消失机出图块玩家次性消三行获次道具功次性累积2道具系统默认玩家提供1道具样仅丰富俄罗斯方块游戏功更具趣味性
    332 系统界面设计
    (1) 菜单选项界面
    玩家设计作品电启动系统首先LCD显示器件呈现动态开机动画然系统提供三功选项高积分游戏设置开始游戏中游戏设置选项包含两级子菜单级菜单包括模式选择音效选择两选项面出单字提示说明前相应设置选项状态模式选择菜单包含二级子菜单单模式双模式音效选择菜单包含二级子菜单开音效关音效通控制键设置成相应状态高积分菜单选项玩家提供单模式系统记忆高积分果选择开始游戏菜单选项系统根游戏设置选项中设置启动相应游戏界面菜单选项界面框架图34示
    菜单功界面框架
    高积分
    游戏设置
    开始游戏
    模式选择
    音效选择
    单模式
    双模式
    开音效
    关音效

    图 34 菜单选项界面框架
    Fig 34 The menu option interface framework

    (2) 游戏操作界面
    首先先介绍单模式游戏界面情况启动单模式LCD12864显示屏分成两屏左半屏俄罗斯方块游戏图——map区右半屏俄罗斯方块图形预览区实时积分显示区结构框架图35示
    启动单模式
    左半屏
    图形预览
    游戏map区
    右半屏
    积分显示

    图 35 单模式界面结构框架
    Fig 35 The singleplayer game interface architecture

    次果玩家启动双模式LCD12864显示屏分两屏左屏控器操作称map1区右屏副控制器操作称map2区两屏中间双方积分显示区道具数量显示区结构框架图36示
    双模式
    双方积分进度条
    双方道具情况
    积分道具区
    Map2区
    map1区

    图 36 双模式界面结构框架
    Fig 36 Double mode interface architecture

    系统界面整体程序流程图图37示
    N
    Y
    Y
    N
    N
    Y
    Y
    N
    Y
    单模式
    音效选择
    模式选择
    游戏设置
    双模式
    音效关
    音效开
    清模式标志
    置模式标志
    返回级
    清音效标志
    置音效标志
    返回级
    开机
    启动动画
    进入菜单
    显示单高积分
    返回键
    高积分

    开始游戏

    进入游戏
    游戏设置

    模式选择
    音效选择
    ……
    ……

    图 37 开机界面功框架
    Fig 37 Boot interface function frame

    333 游戏系统枚举算法概述
    文绕开涩难懂较复杂矩阵算法提出种枚举算法实现典游戏枚举算法没复杂数学理避免程序中量矩阵运算公式设计思路清晰明非常适合游戏设计初学者理解实现
    谓枚举算法直接枚举出游戏中图块基形状旋转形状然控制种形状方块游戏戏中产生移动旋转落填满清等游戏程
    334 俄罗斯方块造型设计方法
    众周知俄罗斯方块般七种基形状基形状4正方形方块构成利方块摆放位置产生19种旋转型图块七种图形分I型L型反L型Z型反Z型口型T型图38示
    I型
    L型
    反L型
    T型
    Z型
    反Z型
    口型

    图 38 方块模型
    Fig 38 Square model

    系统构造19方块模型时思路:定义数组存储模型中4方块顶点坐标L型数结构{00040848}中两数正方形列行坐标图 39示图知整界面坐标原点左角分右作横轴正方轴正方图中格代表LCD12864中连续四行第1格坐标(00)第2格坐标(04)第3格坐标(08)第4格坐标(48)图块方法编辑数组容
    2
    3
    4
    1

    图 39 L型
    Fig 39 L Shape

    335 机产生俄罗斯方块方法
    (1) 产生机数理
    实现机落类方块图形游戏程序中必须抽取机数确定方块类型机数简单复杂问题
    设计采众周知线性叠加法然没完美方法产生机数线性叠加法合适方法彻底解决8位机机数问题果足够长数字序列中某点取出边串数字数字似机开始点(数字)做种子果相点(种子)开始会相数字固定序列中取数字(伪机)特性次点取数改变种子实现真正机
    (2) 线性叠加法概况
    线性叠加法实涉二容:法加法需三步骤:第取新种子旧种子常数A相第二结果第二常数C相加第三新种子第二步结果低32位保留低32位重获种子计算公式:
    种子 A * 种子 + C (31)
    公式图中表示条直线新种子旧种子反复相加线性叠加机函数关键选择优秀常数A(数A)实选择固定数字序列常数C数A样重定奇数事实C选1奇数(旧种子)奇数(数A)奇数加奇数(常数C)会偶数学偶数(旧种子)奇数(数A)加奇数(常数C)会奇数种子会奇数偶数间转变种变化足够机种子值作8位16位机数
    (3) Keil C51中线性叠加法实现方法
    Keil C51中生成伪机数需两函数srand(unsigned int seed)rand()首先srand(unsigned int seed)提供种子该种子unsigned int类型取值范围065536srand(unsigned int seed)根种子会述特定公式生成机数序列然调rand()会次序列中返回数值0 32767间机数函数rand()函数实际线性机果指定srand(unsigned int seed)种子情况次默认种子生成序列会会取相数字序列会导致次重新运行游戏时机数结果样解决该问题设计玩家进入游戏时读取键瞬间定时器T0计数值作srand(unsigned int seed)种子实现真正机
    (4) 机数程序流程图
    图310机数程序流程图
    srand(unsigned int seed)产生数序列
    开始游戏
    读取T0计数值作seed
    rand()
    返回值进行处理选择相应方块数组

    图 310 机数程序流程图
    Fig 310 Ramdom process flow program diagram

    336 俄罗斯方块移实现方法
    方块产生需全局变量保存方块游戏map区中行坐标列坐标方块移包括左移右移两种情况种情况首先进行合法性判断
    (1) 俄罗斯方块移特性
    设计中规定次左移右移键时map区中前图块左移右移正方形宽度正方形宽度应着LCD12864中4列
    (2) 移合法性判断
    移合法性判断较简单需判断旁边相邻位置否填充
    (3) 移算法实现
    程序中意移键时系统接收信号然调移函数进行判断合法性该函数返回值1进行移操作程序流程图311示
    返回1
    返回1
    返回0
    Y
    Y
    N
    N
    ……
    左移键
    right_left_judge函数

    ……
    列变量f_x减4行变
    右移键
    列变量f_x加4行变
    right_left_judge函数

    图块左移格
    图块右移格

    图 311 移算法流程图
    Fig 311 Translation algorithms flowchart

    337 俄罗斯方块旋转实现方法
    (1) 俄罗斯方块旋转图形概况
    方块旋转游戏实现关键问题实现旋转数学方法种矩阵变换法枚举法索引法等文前面已述次设计采枚举方法19种俄罗斯方块造型进行构造游戏程中种基方块做旋转控制产生旋转方块形状文称旋转型
    基型中I型种旋转型竖直旋转90度成水基型加种旋转型两种形状
    基型中L型反L型三种旋转型时针旋转90度产生种旋转型旋转三次三种旋转型三种旋转型加基型L型反L型方块分四种形状
    基型中Z型反Z型时针旋转次90度加基型分两种形状
    基型中T型三种旋转型时针旋转90度产生种旋转型旋转三次三种旋转型三种旋转型加基型T型方块四种形状
    基型中口型方块没旋转型游戏中种形状
    综述七种基型方块旋转产生旋转型旋转型加基型整游戏中19种方块形状
    设计实现旋转操作具体方法分两类类I型旋转策略类余17种基型旋转策略
    (2) 旋转合法性判断
    方块做时针旋转次旋转90度设计规定旋转达方未填允方块进行旋转操作
    (3) I型旋转策略
    视觉实现I型时针旋转设计采位置错落方式实现具体程图312示





    图 312 I型旋转方法
    Fig 312 The rotation method of I shape

    落图块图①示时旋转周期 ①——②——③——④——①
    落图块图②示时旋转周期 ②——③——④——①——②
    I型旋转变换单独出讨I型基型旋转型两种图块果前位置直接两种图块坐标数组进行图形切换法实现时针旋转视觉效果旋转处理程序中旋转前图块I型旋转型时改变前列行两全局变量值
    (4) 余17种基型旋转策略
    I型旋转较复杂外余17种类型方块需旋转序前位置已编辑坐标数组实现旋转具体程序流程图313示
    N
    Y
    Y
    Y
    N
    N
    Y
    N
    ……
    旋转键
    否I型型
    判断方块次旋转
    判断新位置否写
    判断类图块

    I型旋转型
    17种类型
    ……
    根述判断结果决定前位置行列坐标增减
    进行旋转变换
    否I型型外类型
    已排列变换序取坐标数
    恢复原先坐标
    ……

    图 313 旋转程序流程图
    Fig 313 Rotating program flowchart

    338 俄罗斯方块移实现方法
    整游戏程中方块断运行移特性:方块次移格数应着LCD12864屏幕中行具体程序实现流程图314示
    Y
    N
    Y
    N
    Y
    N
    进入移判断程序
    读取移行方块行列坐标
    判断方块行LCD显示区中页
    半页
    半页
    否写
    标志加1
    标志否4
    程序返回1
    否循环4次

    程序返回0

    图 314 移判断程序流程图
    Fig 314 Moves down judgment program flowchart

    339 满行检测消行功实现方法
    着方块断累积方块次落运动时系统会检测游戏map区检测map区中某行堆积满系统消行作奖励方方块群次落行系统满行检测消行功通满行检测消行函数实现图块落定图块未出前页扫描游戏map区半页算行检测某行填满消行方图块移动相应行数
    具体程序实现流程图315示
    Y
    N
    Y
    N
    Y
    N
    某方块已落定
    进入满行检测程序页标志n7
    第n页开始检测
    检测前页半页
    否满行
    消行方块次落行
    检测前页半页
    否满行
    消行方块次落行
    n减1
    否第0页
    退出

    图 315 满行检测程序流程
    Fig 315 Full line detection processes

    3310 游戏积分计算方法
    游戏系统中积分体现玩家次游戏中操作情况游戏系统分单模式双模式两种积分计算方式
    单模式玩家消行获1积分果前游戏积分超系统记录单高游戏积分系统更新记录便玩家挑战
    双模式双方积分制度样进度条方式展示积分道具区中积分区分两阶段第阶段消1行进度条走格8进度格第二阶段累计消3行进度条增加格6进度格双方谁先达进度条顶端算胜利
    次性时消3行时获道具功权累积两道具具体程序实现流程图316示
    N
    Y
    Y
    N
    Y
    N
    Y
    N
    Y
    N
    消行
    前积分加1
    否高纪录
    存储前积分
    退出
    单模式
    双模式
    增加n分消n行
    消n行?
    n>0
    n>3
    增加1道具
    道具否2?
    增加1道具
    进度否顶?
    结束进程
    返回游戏

    图 316 积分系统程序流程图
    Fig 316 Score system program flowchart

    34 双俄罗斯方块游戏设计
    341 RTX51 Tiny简介
    许微处理器应程序求时执行务样应程序实时操系统(RTOS)允许灵活分配系统资源(中央处理器存储器等)务RTX51运行8051派生机型强准行实时操作系统
    RTX51简化复杂时间严格工程软件设计工作两RTX51版利:RTX51 FullRTX51 Tiny二者区前者强占(者说剥夺)系统者强占(剥夺)RTX51 Full版完整版四务优先级完成时存时间片轮转调度抢先务切换RTX51 Full工作中断功相似状态信号信息通邮箱系统务间互相传递程序员存储池中分配释放存强迫务等中断超时者务中断发出信号信息游戏系统采RTX51 TinyRTX51完整版子集完全集成Keil C51集成开发环境中身仅占900字节左右程序存储空间RTX51 Tiny仅支持时间片轮转务切换信号进行务切换支持抢先式务切换包括消息历程没存储器池分配程序
    RTX51 Tiny然较简陋具备实时操作系统基素完全集成Keil C51集成开发环境中户更精力关注应身需考虑复杂底层驱动整应软件系统结构清晰维护方便节省量时间力程序较复杂时优点体现更明显RTX51 Tiny完全充进入实时操作系统(RTOS)世界领路者更重免费RTX51 Tiny然8位单片机中应操作系统首选
    342 RTX51 Tiny核分析
    该节介绍设计中RTX51 Tiny系统相关知识配置方法读者想更全面解RTX51 Tiny务实时操作系统请阅读RTX51 Tiny帮助文件相关文件
    (1) RTX51 Tiny程序编写方法
    RTX51 Tiny核需包含文件RTX51TNYH运行时库常量头文件中定义采方式包含:
    #include
    Rtx51 Tiny时务建立独立务函数时RTX51 Tiny务必须_task_声明C函数返回值参数必须void类型 RTX51 Tiny程序需户已定义main函数取代RTX51 Tiny务0开始执行典型应中务0简单建立务
    (2) 系统调函数简介
    RTX51 Tiny核完全集成KEIL C51编译器中系统函数调方式运行容易KEIL C51语言编写编译务程序嵌入实际应系统中核提供组函数供应程序引
    (3) RTX51 Tiny务状态
    RTX51 Tiny 户务具状态:
    RUNNING 务处运行中时间抢占务处RUNNING状态
    READY :务正等运行前运行务时间片完成RTX51 Tiny运行处READY状态务
    WAITING 务时间片完处TIME OUT状态等次运行该状态READY状态相似部操作程循环务切换冠标记图317示务状态转换图[8]
    信号超时
    等信号超时
    时间片结束
    时间片
    READYTIMEOUT
    RUNNING
    WAITING

    图 317 务状态转换图
    Fig 317 Task state transition diagram

    (4) RTX51 Tiny步机制
    保证务执行次序协调必须采步机制核事件进行务间通信步
    ①SIGNAL:务间通信位系统函数置位清果务调os_wait函数等SIGNALSIGNAL未置位该务挂起直SIGNAL置位返回READY状态次执行
    ②TIMEOUT:os_wait函数开始时间延时持续时间定时节拍数确定带TIMEOUT值调os_wait函数务挂起直延时结束返回READY状态次执行
    ③INTERVAL:os_wait函数开始时间间隔间隔时间定时节拍数确定带INTERVAL值调os_wait函数务挂起直间隔时间结束然返回READY状态次执行TIMEOUT务节拍计数器复位
    (5) RTX51 TINY务切换方式
    务切换RTX51 TINY提供基服务RTX51 TINY基时间片调度算法操作系统支持非抢占式务切换务执行时进行中断非该务动放弃CPU资源中断断前务中断完成CPU控制权交该中断务
    务切换流程图318示[8]
    TASK SWITCHING
    SWITCHING NOW
    寄存器组切换
    前务时间片标志置位
    查找READY状态务N
    务N堆栈理
    重置务N节拍数
    务N时间片转入绪状态
    务N等信号信号转入绪状态
    务N等超时超时转入绪状态
    务N原转入绪状态
    清时间片标志
    清等信号信号标志
    清等超时超时标志
    恢复T0中断保护现场
    返回务N执行务N成前务(SWITCHING出口)
    返回务N执行务N成前务
    (SWITCHING NOW出口)


    图 318 务切换流程图
    Fig 318 Task switching flowchart

    务切换方式分两种:循环务切换方式协作务切换方式果禁止循环务处理(禁止方式RTX51 Tiny系统配置节中作介绍)必须务协作方式运作户os_wait 函数os_switch_task函数RTX51 Tiny切换务等务时间片完 os_wait函数挂起前务(变等态)直指定事件发生(接着务变绪态)期间意数量务运行
    具体做法务里调os_wait函数os_switch_task函数通知RTX51 Tiny切换务os_wait函数os_switch_task函数:os_wait函数务等事件os_switch_task函数立切换绪务
    343 游戏开发环境配置
    (1) Keil配置
    编译链接RTX51 Tiny应程序2种途径种集成开发环境μVision 3 IDE种命令行工具CommandLine Tools般采德国Keil Software公司提供集成开发环境 μVision 3 IDE
    利Keil Software公司提供集成开发环境 μVision 3 IDE创建RTX51 Tiny应程序开始步骤:
    ① 运行Keil Software公司集成开发环境 μVision 3 IDE
    ② 运行菜单命令Project→Options for TargetTarget 1’开Target话框话框中选择Target选项卡
    ③ Operating拉列表框中选择RTX51 Tiny
    (2) RTX51 Tiny系统核配置
    建立嵌入式应RTX51 Tiny必须配置配置设置CONF_TNYA51文件中该文件位KEIL C51RTXTINY2目录
    CONF_TNYA51默认包含RTX51 Tiny库中μVision 3 IDE编译RTX51 Tiny程序时已CONF_TNYA51文件拷贝工程目录加入工程中通改变CONF_TNYA51中设置定制RTX51 Tiny系统配置
    面仅设计中需做系统配置进行详细介绍
    ① 系统默认配置应程序设计中出现问题
    首先双模式应程序中两进程需LCD12864显示屏进行读写操作务实时系统会出现资源突问题
    次函数重入性问题
    指针型数务中问题C51编译器允许数指针RTX51 Tiny进行理应中必须确保改变数指针时会发生roundrobin切换
    ②具体配置方法
    解决述问题设计禁止循环务切换采协助务切换方式进行务间切换Roundrobin切换默认参数设定Roundrobin切换时间禁Roundrobin切换IMESHARING 指定务进行Roundrobin切换前执行RTX51 Tiny时钟节拍数值0时禁止Roundrobin切换缺省值5时钟节拍
    果禁止roundrobin务切换必须设计应程序执行务Cooperative 务切换方式工作特必须务某方调os_wait函数os_switch_task函数函数告知RTX51 Tiny切换务函数os_wait 函数os_switch_task处os_wait函数务等某事件发生函数os_switch_task函数直接切换准备绪务

    344 双单机战模式实现流程
    系统实现双游戏模式建立单游戏模式基础基思路利RTX51 Tiny务实时操作系统完成事件准行实行运行中进程0进程1程序流程致相图319示双模式相关程序流程
    35 系统背景音乐设计
    351音乐设计原理
    单片机产生音乐关键控制频率输出知道乐谱中音符某特定频率相应产生某种频率输出相应音符声音音乐中8基音符:doremifasolaxido八音符应着频率单片机输出美妙音乐曲谱仅需包含音名信息包含节拍信息设计采种音名节拍混排种方式曲谱进行编码列方法进行编码:字节八位高两位表示节拍三四位表示音高低四位表示音符节拍两位四种状态表示四种节拍音高两位四种状态表示三种音高(低音中音高音)音符四位表示十六种状态表示调十二种音符乐谱数生成乐谱生成器产生
    设计中RTX51 TINY允许时准行执行务务预先设定
    Y
    N
    Y
    Y
    Y
    N
    Y
    N
    Y
    N
    Y
    N
    Y
    N
    Y
    N
    Y
    N
    游戏配置双模式
    启动游戏
    进程0
    进程1
    协助方式进行务切换
    速降信号
    移信号
    移信号
    道具信号
    速降信号
    道具信号
    执行相关移操作
    执行相关移操作
    执行速降操作
    执行速降操作
    移操作
    移操作
    执行道具功
    执行道具功
    积分统计
    积分统计
    协助方式进行务切换
    积分限
    积分限
    停止游戏
    停止游戏

    图 319 双游戏程序流程图
    Fig 319 Double game processes flowchart

    时间片执行CPU执行时间划分干时间片RTX51 TINY务分配时间片时间片允许执行某务然RTX51 TINY切换绪务允许规定时间片执行程实现RTX51 TINY利单片机部定时器T0中断功实现外STC12C5A60S2单片机提供PCA模块实现16位定时器功设计通控制部PCA模块构成定时器产生频率脉驱动蜂鸣器发出相应频率声音发音时间长短定时器T1控制
    352 音乐播放实现方法
    乐谱中音符应频率转换成PCA定时器常数相应节拍变T1常数通歌谱编码程序编码数组中取出音符频率节拍数然取数系统处理音调定时时间节拍定时时间送入相应定时器数处理程中相关计算:
    (1) 音频脉产生方法:算出某音频周期(1频率)然周期2半周期时间然利PCA定时器计时半周期时间计时输出脉IO取反然重复计时半周期时间IO取反IO脚频率脉
    (2) STC12C5A60S2单片机部计时器T1工作计数模式MODE1改变计数值TH1TL1产生频率
    (3) 6MHz晶振例:产生频率523Hz周期T15231912us半周期19122956us令定时器计时956us1us956计数956次时IO反相中音D0(523Hz)
    计数脉值频率关系公式:
    NFi2Fr (32)
    N计数值
    Fi部计时次2us6MHz晶振例频率500000Hz
    Fr产生频率
    (4) PCA定时器计数值求法:
    T65536N65536Fi2Fr (33)
    353 音效程序流程
    设计音乐播放程序流程较简单难点设计员乐谱认识种定时时间计算具体流程图320示
    Y
    N
    Y
    N
    N
    开音效
    初始化定时器数针指
    序读取音符数组中数
    根调号升降八度生成新频率表
    计算音符时间长度值值赋相应定时器
    T1计数?
    PCA定时?
    音乐结束?

    图 320 音效程序流程图
    Fig 320 Sound program flowchart

    36 系统程序流程图
    节整系统流程进行描述务具体实现流程前节已详细介绍省略号表示赘述节总体框架前面没介绍部分功进行描述文章结构更加完整帮助读者理思路读者结合前文阅读节容相关流程图321示
    Y
    N
    N
    Y
    开机
    选项菜单
    游戏设置
    开始游戏
    单游戏
    双游戏
    音效开关
    退出游戏
    暂停游戏
    结束进进程
    ……

    图 321 程序流程图
    Fig 321 Main program flowchat

    4 产品功说明系统性测试
    41 产品功说明
    设计制作款智俄罗斯方块游戏机实现功:单游戏模式双模式游戏音效嵌入等整作品硬件+5V电源STC12C5A60S2单片机LCD12864液晶显示屏控制手柄副控制手柄构成部分详细介绍文前面章节进行查阅
    启动系统首先出现动态进度条进度条结束三功选项呈现界面玩家通控制器钮光标指针进行移动确定钮进入相应选项程序退出钮返回功选项菜单界面中第选项高积分查选项玩家选择选项够查单模式中积分高记录第二选项游戏设置选项玩家选择选项进入二级菜单里面玩家选择进入模式选择项音效选择项玩家进入模式选择项游戏配置单模式双模式玩家进入音效选择项设置游戏中否启动背景音乐
    玩家游戏系统配置单模式时玩家控制器游戏界面进行操作中控制器中钮功旋转确定钮实现方块旋转左返回级钮实现方块左移右钮实现方块右移钮实现方块快速移动道具钮实现双模式道具功副控制器样具键功外控器两钮功:返回钮实现正运行程序返回功选项界面暂停扭实现游戏界面停止前状态
    玩家游戏系统配置双模式时玩家增加副控制器第二界面进行操作副控制器键功控制器相关介绍中已进行说明
    玩家游戏系统配置开音效时游戏开始方块伴着音乐机出现落
    果玩家想重新设置游戏模式音效模式必须停止前游戏返回功选项界面进入游戏设置选项进行设置
    42 系统性测试
    系统性测试相关结果表1示
    表41
    模式
    旋转
    左移
    右移
    速降

    积分
    道具
    返回
    暂停
    存储
    音效

    实现
    实现
    实现
    实现
    实现
    实现
    ——
    实现
    实现
    实现
    实现

    实现
    实现
    实现
    实现
    实现
    实现
    实现
    实现
    实现
    ——
    实现

    通测试设计成功实现毕业选题求全部功求外扩展道具积分存储等功

    5 结束语
    文讨种基STC12C5A60S2单片机RTX51 Tiny时实操作系统俄罗斯方块游戏系统设计开发通LCD12864液晶显示屏进行显示设计实现智俄罗斯方块游戏项功文着重结合LCD12864硬件特性探讨游戏数结构图形处理游戏控制音乐处理等技术
    该设计实现基8位单片机俄罗斯方块游戏设计开发功包括单模式双模式音乐播放等功界面美化机战等方面加改进完善低端处理器实现功游戏开发具非常鉴意义




























    参考文献

    [1] 阎石数字电子技术基础第五版北京:高等教育出版社2006
    [2] 童诗白模拟电子技术基础第四版北京:高等教育出版社2006
    [3] 谭浩强C语言程序设计北京:清华学出版社2005
    [4] 姜志海单片机原理应北京:电子工业出版社2005
    [5] 张培仁基C语言编程MCS51单片机原理应北京:清华学出版社2002
    [6] 晨风嵌入式实时务软件开发基础[M]北京:请化学出版社2004
    [7] 刘明路王亮生李世煜基RTX51单片机软件设计[J]单片机嵌入式系统2002
    [8] KEIL Software IncRTX51 Realtime Kernel[OL] 2004
    [9] 高凌琴陈青华俄罗斯方块关键技术探讨2005
    [10] 赵东跃俄罗斯方块编程2001
















    致 谢

    次毕业设计中XX老师身学东西老师认真负责工作态度严谨治学精神深厚理水受益匪浅理实践中帮助实践创新力较提升工作学着巨帮助感谢耐心辅导教诲 外游戏开发程中学网友予帮助解决少难点游戏系统时设计完成里表示感谢
    时百忙中抽出时间文进行评审提出宝贵意见位老师表示衷心感谢

























    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 8 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    基于51单片机的智能窗户设计毕业设计

    基于51单片机的智能窗户设计【摘 要】 随着电子技术的发展和人民生活水平的不断提高,智能窗已经越来越多地被用到了现代智能化建筑中,提供住户一个安全、方便的环境。据统计,在未来的几年内,安装智...

    4个月前   
    105    0

    基于AT89S51单片机无线传输系统设计毕业设计

    毕业论文(设计) 题 目: 单片机无线传输系统设计 完 成 人: ...

    3年前   
    866    0

    基于51单片机的数字温度计毕业设计

    数字测温计设计摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。在工业生产中温度是常用的被控参数,而采用单片机来对这些被控参数进行控制...

    3年前   
    1186    0

    基于51单片机压力检测系统设计毕业设计

     学号: xx 大 学 毕业设计(论文) (xxxx届) 题 目 ...

    5年前   
    2680    0

    论文:基于51单片机的智能充电器的设计

    在我们的日常生活中,手机已经变得越来越重要了。我们经常需要使用手机,打电话、发短信、上网、看电影、听歌、玩游戏等等。随着大屏幕和高主频的手机出现,锂离子电池就变得更加重要了,其锂离子电池充电器也...

    5年前   
    1652    0

    学士论文开题报告基于51单片机的数字示波器设计

    XX学院信息工程学院学士学位论文开题报告课题名称 基于51单片机的数字示波器设计 学生姓名 导师姓名 所在系部 信息工程学院 ...

    2年前   
    715    0

    基于51单片机的定时闹钟设计单片机课程设计

    单片机 课 程 设 计 报 告 院系: 信息工程学院 ...

    1年前   
    471    0

    基于单片机的鱼缸控制器设计毕业设计论文

    基于单片机的鱼缸控制器设计 摘 要 本文是基于单片机的鱼缸控制器的设计,目前市场上有各种各样的观赏类的鱼缸,进入了不同的应用场合,如家庭、宾馆和商场等等,但现有的鱼缸一般需要人为的...

    5年前   
    2426    0

    基于单片机智能小车毕业设计

    毕 业 设 计(论 文)设计(论文)题目: 基于单片机的智能小车 ...

    5个月前   
    185    0

    关于单片机毕业设计论文

    关于单片机毕业设计论文  单片机毕业设计论文如下文  第一章 绪 论1. 1 课题的提出及意义  单片机作息时间控制实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的不便,实现代学校必...

    12年前   
    791    0

    基于51单片机的智能窗帘控制系统

     毕业论文(设计) 学 院: 工学院 ...

    3年前   
    1094    0

    基于AT89C51单片机的简易计算器的设计

     毕 业 设 计 题目 简易计算器的制作 ...

    5年前   
    2326    0

    基于51单片机红外迎宾及人数检测报警系统

    红外感应式门铃如今常用于店铺门口用于迎接顾客。它可依据顾客的进出状况作出有所差别的反应。主要研究了红外感应技术在我们日常生活中的应用,即感应式门铃。通过对它的研究,学会红外接近开关的原理、电路设...

    3年前   
    811    0

    基于51单片机的8路智能抢答器

    抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

    6年前   
    2332    0

    基于51单片机数字温度计设计课程设计

    课 题: 基于51单片机数字温度计设计专 业: 电子信息工程班 级: 班学 号: 姓 名: ...

    3年前   
    959    0

    基于51单片机的智能家居报警系统

    随着网络和信息技术的飞速发展以及生活水平的提高,现在的社会有了很大的发展,信息化的概念已经越来越贴近我们的生活。伴随着社会的发展,家庭安全问题也被更加重视了。

    3年前   
    837    0

    基于51单片机的教室智能照明控制系统

    目 录绪论1 教室灯光自动控制整体描述 1.1 灯光控制总体思想 ................................................................

    3年前   
    838    0

    基于51单片机的数码管简易计算器

    基于51/52单片机的简易计算器制作级自动化班一、题目 利用单片机芯片STC89C52、四位八段共阳数码管及已制作好的电路板等器件设计制作一个计算器。 二、任务与要求 要求计算器能实现加减乘除...

    2年前   
    686    0

    基于51单片机音乐盒课程设计

    基于51单片机音乐盒课程设计 课程名称: 微机原理课程设计 题 目: 基于51单片机的音乐盒设计 摘要 随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的...

    5年前   
    1246    0

    基于51单片机超声波测距

     目录摘 要 2ABSTRACT 3目 录 41 绪论 11. 1 概述 11. 2 国内外发展现状 12 系统总体方案设计 22. 1 设计要求 21)可进行距离测量。 22) 采用...

    3个月前   
    89    0

    文档贡献者

    文***享

    贡献于2020-12-26

    下载需要 8 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档