基于单片机的俄罗斯方块游戏
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实际运行表明,该设计可以实现基本的游戏功能,达到游戏的目的。
【关键词】12C5A60SR;LCD液晶;C语言
Tetris game based on single chip microcomputer
Abstract
Tetris is one of the most classic electronic game, it had caused a sensation is really can not be underestimated. This design is the use of C programming language based on 12C5A60SR microcontroller, design the physical circuit diagrams to model the Tetris game. The game needs to use the keys to control block movement, game player can be 90 degrees rotate, by a lattice units moving boxes around, when the region in a row are filled by the box, the guild to disappear and score, the number of columns, and eliminate scores more; when the box at the top of pile to areas not to eliminate, the end of the game.
12C5A60SR单片机的由8位CPU和在系统可编程Flash、晶片内部具时钟振荡器(工作频率高达12MHz)、8KB的内部程序存储器(Read-Only Memory,ROM)、256字节的内部数据存储器(Ramdom Access Memory,RAM)、32个可编程I/O口线、8个中断向量源、三个16位定时器/计数器、三级加密程序存储器以及全双工异步串行通信口等组成[8]。
电子游戏的发展与计算机是分不开的。现如今的计算机系统正朝着三个方向发展:巨型化、网络化和单片化,用以解决复杂系统计算和高速数据处理的依然是巨型机,所以,巨型机目前努力在朝高速及处理能力方向发展[3]。单片机刚出现时,英特尔公司为其命名为嵌入式微控制器(Embedded Microcontroller Unit,EMCU),因为它可以嵌入到各种仪器、设备中区,这也是单片机最明显的优势,这一点巨型机和网络是做不到的。
1绪论1
致谢19
1
1.1
随着科技的进步,电脑、手机、掌上游戏机(Play Station Portable , PSP)PSP等电子产品性能越来越好的同时,电子游戏已经成为越来越受欢迎的娱乐方式,现在几乎成了一个不可或缺的精神食粮,甚至有许多人认为,电子游戏已经不仅是一种娱乐,也成为了一种文化现象。电子游戏是一个组合动画,音乐,故事情节为一体的游戏,涉及多个行业。电子游戏有着多种分类方式,一般分为网络游戏、电脑游戏、电视游戏、街机游戏、便携游戏和电子竞技等。一般来说电子游戏具有模拟性和互动性两种性质,模拟性指人们对现实世界或思维世界的模拟,互动性则指人与机器之间产生的一种关系。凡事都有两面性,电子游戏也不例外,它有利也有弊,只要不沉迷其中,还是能作为一种很好的娱乐方式的。
游戏设计主要分为硬件电路设计和源代码编写两部分。对于硬件电路,有必要充分了解核心单片机的外部接口功能,液晶显示器需要处理的逻辑关系和它控制原理,以及键盘设置所需的程序。而对于编程方面首先定义一个二维数组确定整个区域,了解游戏中所需要用到的一些特殊的函数,然后判断区域是否有方块,还要判断方块落下后,一行的空格是否填满或者整个区域是否填满等,不断的按照这样的方法循环扫描。
2.2俄罗斯方块工作流程图
游戏开始后,屏幕最顶端会随机产生一个方块图形,将其交给图形变量,再对图形进行变化,再判断图形的位置,没有到底就逐次下降一行直到最底端;如果图形到底了就检测一行是否被方块填满,填满了进行清除并记分,没有就检测整个屏幕是否被方块填满,填满了就进行清屏游戏结束,没有填满就回到进行图形变化的步骤即可。
1.2
电子游戏诞生于20世纪末,这种娱乐方式已经成为新世纪不可或缺的时尚生活。根据整个世界的娱乐性行业来说,游戏产业已经显示出优于其他娱乐业的发展势头。电子游戏最初产生于美国,1971年,一个麻省理工学院的学生设计了世界上第一个服务游戏机(俗称街机的街机游戏),被称为“计算机室”[2]。虽然刚开始由于市场原因这款游戏最终以失败告终,但它还是开启了电子游戏的发展之旅。电子游戏在中国出现至今已20多载,期间经历过许多风风雨雨,一路坎坷,现在与电子游戏发达的韩国、日本、美国等国家相比仍然存在着比较大的差距。
3
3.1
单片机全称单片微型计算机,又称微控制器,是把中央处理器、存储器、定时器、计数器、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机,它是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机主要用于测试和控制领域,按它的适用范围可分为通用性和专用型两大类。通用性就是没有限制,都可以兼容,二专用型是针对特定的要求来设计的,目前,单片机经过三代的发展,正在向低电压,低功耗,低成本,多功能,高性能,大容量存储,强大的I / O功能和良好的结构相容性方向。单片机应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设计方法,以前,必须使用模拟或数字电路才可以实现,现在只需要微型单片机就可以实现[5]。本次论文的重点就在于单片机的最小系统部分,这次选用的是Atmel公司推出的常用芯片12C5A60SR,主要是它不仅价格便宜,而且是采用高密度非易失性存储器技术制造而成,与工业80C51产品指令及引脚完全兼容,下面详细介绍一下这款单片机:
俄罗斯方块作为最经典的电子游戏之一,它曾经引起的轰动真是不容小觑。它上手极其简单,规则很简单却又变化无穷,要熟练地掌握其中的操作与摆放技巧还是需要一定时间的,作为家喻户晓的游戏,它的受欢迎程度可以说是史上任何一款游戏不能比拟的[1]。顾名思义,俄罗斯方块自然是俄罗斯人发明的,这位伟大的发明家名叫做Alex Pajitnov。现在玩的人虽然很少了,但目前流行的许多游戏上都有它的身影,而且对我们90年代的人来说就是整个童年。因此,对它的研究,无论从技术上还是社会意义上都是很有价值的。
Game design is divided into hardware circuit design and source code in two parts. For the hardware circuit, it is necessary to fully understand the external interface functions of the core MCU, LCD need logic processing and its control principle, and procedures required for keyboard settings. For programming the entire region defined first determine a two-dimensional array, understand some special function required in the game, and then determine whether to judge the regional block, block falls, a row space is filled or the whole area is filled, circular in accordance with this method of scanning time.
1) 12C5A60SR单片机的主要特点
12C5A60SR是一种低功耗、高性能的半导体集成电路8位微控制器,具有8K字节在系统可编程Flash存储器[6]。它是用Atmel公司高密度非易失性存储器的技术制造而成,与工业80C51产品指令及引脚完全兼容。片上的Flash允许程序存储器在系统可编程,也适于常规编程器,单芯片拥有8位中心处理器(Central Processing Unit,CPU)和在系统可编程的Flash,这使得12C5A60SR为众多嵌入式控制应用系统提供高灵活、超有效的解决方案[7]。它具有双列直插式封装、特殊引脚芯片封装、薄塑封四角扁平封装三种封装方式,本设计选用双列直插封装的单片机,此种封装适合印制线路板(Printed Circuit Board,PCB)的穿孔安装,也容易布线,操作起来很方便。
基于单片机的俄罗斯方块游戏
摘要
俄罗斯方块作为最经典的电子游戏之一,它曾经引起的轰动真是不容小觑。本设计是在12C5A60SR单片机的基础上利用C语言编程,做出实物电路图来模拟俄罗斯方块小游戏的设计。游戏需要利用按键控制方块运动,玩家可以以90度为单位旋转方块,以格子为单位左右移动方块,当区域中某一行全部由方块填满时,则该行会消失并记分,同时消除的列数越多,得分越多;当方块堆到区域最上方而无法消除时,游戏结束。
2)12C5A60SR单片机的引脚简介
图3-1 12C5A60SRቤተ መጻሕፍቲ ባይዱ片机引脚图
表3.1 12C5A60SR单片机引脚功能表
3) 12C5A60SR的晶振电路
顾名思义,晶振也就是晶体振荡器,它在单片机中充当着心脏的角色。它的主要作用就是通过晶振来产生时钟周期,时钟周期越小那么他对应的时钟频率就越大,时钟频率一大那么单片机的运行速率也就越快,简单来说,没有晶体就无法产生晶振,没有晶振就无法产生时钟频率,没有时钟频率就无法执行程序代码,无法执行程序单片机不能工作。所以通常为了保持各模块保持同步,一个系统共用一个晶振。
单片机的应用很广泛,家用电器、办公室自动化、智能产品、商业营销、工业自动化等都有它的身影,如今在游戏领域里单片机的作用也愈发明显。虽然用单片机来设计一个简单的俄罗斯方块游戏程序似乎有点大材小用,但这仅仅是一个单片机在嵌入式游戏方面的简单应用,正因为它的前景无可预计,所以才有这个设计,此次设计仅仅是为了举一个单片机在游戏上应用的一个简单例子,它就可以很好的说明单片机功能的强大,更高的可控性和集成度高的好处,随着计算机技术、通信技术和软件技术的迅猛发展[3]。再加上3C产业(计算机、通讯、消费电子)的合成及3G移动通信时代的到来,嵌入式软件发挥了更加重要的作用,它的发展为绝大多数电子设备注入了新的活力,各种装备与设备上由于有了嵌入式系统软件的加入,大大地推动了其行业渗透性应用,嵌入式技术不仅提高了产品的技术含量,更成为产品增值的关键,在整个软件产业中占据了重要地位,并受到世界各国的广泛关注,如今已成为信息产业中最为耀眼的“明星”之一。
The actual operation shows that, the design can achieve the basic game functions, achieve the goal of the game.
【Key words】12C5A60SR; LCD liquid cryst; C language
2游戏需求及流程分析
2.1游戏组成及规则
1)游戏组成
一个用于摆放方块的平面虚拟场地,其标准大小:长为12,高为20(以每个小正方形为单位)[4];一组由四个小正方形组成的规则图形,总共有七种;一个由四个按键组成的键盘,上下左右分别控制变化、左移、右移和下落。
2)游戏规则
游戏需要使用按键控制方块运动,方块不仅可以以90°为单位旋转,还能在格子单元内左右移动;方块移到区域最底端或落到其他方块上时,就会固定在该处,新的方块出现在区域顶端开始落下;当区域中某一行被方块填满,则该行会消失并记分,同时消除的列数越多,得分越高;当屏幕被方块填满时片消除不了了,游戏结束。游戏还会提示下一个方块,如果玩家比较厉害可以根据提示来判断本次方块如何放置。
【关键词】12C5A60SR;LCD液晶;C语言
Tetris game based on single chip microcomputer
Abstract
Tetris is one of the most classic electronic game, it had caused a sensation is really can not be underestimated. This design is the use of C programming language based on 12C5A60SR microcontroller, design the physical circuit diagrams to model the Tetris game. The game needs to use the keys to control block movement, game player can be 90 degrees rotate, by a lattice units moving boxes around, when the region in a row are filled by the box, the guild to disappear and score, the number of columns, and eliminate scores more; when the box at the top of pile to areas not to eliminate, the end of the game.
12C5A60SR单片机的由8位CPU和在系统可编程Flash、晶片内部具时钟振荡器(工作频率高达12MHz)、8KB的内部程序存储器(Read-Only Memory,ROM)、256字节的内部数据存储器(Ramdom Access Memory,RAM)、32个可编程I/O口线、8个中断向量源、三个16位定时器/计数器、三级加密程序存储器以及全双工异步串行通信口等组成[8]。
电子游戏的发展与计算机是分不开的。现如今的计算机系统正朝着三个方向发展:巨型化、网络化和单片化,用以解决复杂系统计算和高速数据处理的依然是巨型机,所以,巨型机目前努力在朝高速及处理能力方向发展[3]。单片机刚出现时,英特尔公司为其命名为嵌入式微控制器(Embedded Microcontroller Unit,EMCU),因为它可以嵌入到各种仪器、设备中区,这也是单片机最明显的优势,这一点巨型机和网络是做不到的。
1绪论1
致谢19
1
1.1
随着科技的进步,电脑、手机、掌上游戏机(Play Station Portable , PSP)PSP等电子产品性能越来越好的同时,电子游戏已经成为越来越受欢迎的娱乐方式,现在几乎成了一个不可或缺的精神食粮,甚至有许多人认为,电子游戏已经不仅是一种娱乐,也成为了一种文化现象。电子游戏是一个组合动画,音乐,故事情节为一体的游戏,涉及多个行业。电子游戏有着多种分类方式,一般分为网络游戏、电脑游戏、电视游戏、街机游戏、便携游戏和电子竞技等。一般来说电子游戏具有模拟性和互动性两种性质,模拟性指人们对现实世界或思维世界的模拟,互动性则指人与机器之间产生的一种关系。凡事都有两面性,电子游戏也不例外,它有利也有弊,只要不沉迷其中,还是能作为一种很好的娱乐方式的。
游戏设计主要分为硬件电路设计和源代码编写两部分。对于硬件电路,有必要充分了解核心单片机的外部接口功能,液晶显示器需要处理的逻辑关系和它控制原理,以及键盘设置所需的程序。而对于编程方面首先定义一个二维数组确定整个区域,了解游戏中所需要用到的一些特殊的函数,然后判断区域是否有方块,还要判断方块落下后,一行的空格是否填满或者整个区域是否填满等,不断的按照这样的方法循环扫描。
2.2俄罗斯方块工作流程图
游戏开始后,屏幕最顶端会随机产生一个方块图形,将其交给图形变量,再对图形进行变化,再判断图形的位置,没有到底就逐次下降一行直到最底端;如果图形到底了就检测一行是否被方块填满,填满了进行清除并记分,没有就检测整个屏幕是否被方块填满,填满了就进行清屏游戏结束,没有填满就回到进行图形变化的步骤即可。
1.2
电子游戏诞生于20世纪末,这种娱乐方式已经成为新世纪不可或缺的时尚生活。根据整个世界的娱乐性行业来说,游戏产业已经显示出优于其他娱乐业的发展势头。电子游戏最初产生于美国,1971年,一个麻省理工学院的学生设计了世界上第一个服务游戏机(俗称街机的街机游戏),被称为“计算机室”[2]。虽然刚开始由于市场原因这款游戏最终以失败告终,但它还是开启了电子游戏的发展之旅。电子游戏在中国出现至今已20多载,期间经历过许多风风雨雨,一路坎坷,现在与电子游戏发达的韩国、日本、美国等国家相比仍然存在着比较大的差距。
3
3.1
单片机全称单片微型计算机,又称微控制器,是把中央处理器、存储器、定时器、计数器、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机,它是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机主要用于测试和控制领域,按它的适用范围可分为通用性和专用型两大类。通用性就是没有限制,都可以兼容,二专用型是针对特定的要求来设计的,目前,单片机经过三代的发展,正在向低电压,低功耗,低成本,多功能,高性能,大容量存储,强大的I / O功能和良好的结构相容性方向。单片机应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设计方法,以前,必须使用模拟或数字电路才可以实现,现在只需要微型单片机就可以实现[5]。本次论文的重点就在于单片机的最小系统部分,这次选用的是Atmel公司推出的常用芯片12C5A60SR,主要是它不仅价格便宜,而且是采用高密度非易失性存储器技术制造而成,与工业80C51产品指令及引脚完全兼容,下面详细介绍一下这款单片机:
俄罗斯方块作为最经典的电子游戏之一,它曾经引起的轰动真是不容小觑。它上手极其简单,规则很简单却又变化无穷,要熟练地掌握其中的操作与摆放技巧还是需要一定时间的,作为家喻户晓的游戏,它的受欢迎程度可以说是史上任何一款游戏不能比拟的[1]。顾名思义,俄罗斯方块自然是俄罗斯人发明的,这位伟大的发明家名叫做Alex Pajitnov。现在玩的人虽然很少了,但目前流行的许多游戏上都有它的身影,而且对我们90年代的人来说就是整个童年。因此,对它的研究,无论从技术上还是社会意义上都是很有价值的。
Game design is divided into hardware circuit design and source code in two parts. For the hardware circuit, it is necessary to fully understand the external interface functions of the core MCU, LCD need logic processing and its control principle, and procedures required for keyboard settings. For programming the entire region defined first determine a two-dimensional array, understand some special function required in the game, and then determine whether to judge the regional block, block falls, a row space is filled or the whole area is filled, circular in accordance with this method of scanning time.
1) 12C5A60SR单片机的主要特点
12C5A60SR是一种低功耗、高性能的半导体集成电路8位微控制器,具有8K字节在系统可编程Flash存储器[6]。它是用Atmel公司高密度非易失性存储器的技术制造而成,与工业80C51产品指令及引脚完全兼容。片上的Flash允许程序存储器在系统可编程,也适于常规编程器,单芯片拥有8位中心处理器(Central Processing Unit,CPU)和在系统可编程的Flash,这使得12C5A60SR为众多嵌入式控制应用系统提供高灵活、超有效的解决方案[7]。它具有双列直插式封装、特殊引脚芯片封装、薄塑封四角扁平封装三种封装方式,本设计选用双列直插封装的单片机,此种封装适合印制线路板(Printed Circuit Board,PCB)的穿孔安装,也容易布线,操作起来很方便。
基于单片机的俄罗斯方块游戏
摘要
俄罗斯方块作为最经典的电子游戏之一,它曾经引起的轰动真是不容小觑。本设计是在12C5A60SR单片机的基础上利用C语言编程,做出实物电路图来模拟俄罗斯方块小游戏的设计。游戏需要利用按键控制方块运动,玩家可以以90度为单位旋转方块,以格子为单位左右移动方块,当区域中某一行全部由方块填满时,则该行会消失并记分,同时消除的列数越多,得分越多;当方块堆到区域最上方而无法消除时,游戏结束。
2)12C5A60SR单片机的引脚简介
图3-1 12C5A60SRቤተ መጻሕፍቲ ባይዱ片机引脚图
表3.1 12C5A60SR单片机引脚功能表
3) 12C5A60SR的晶振电路
顾名思义,晶振也就是晶体振荡器,它在单片机中充当着心脏的角色。它的主要作用就是通过晶振来产生时钟周期,时钟周期越小那么他对应的时钟频率就越大,时钟频率一大那么单片机的运行速率也就越快,简单来说,没有晶体就无法产生晶振,没有晶振就无法产生时钟频率,没有时钟频率就无法执行程序代码,无法执行程序单片机不能工作。所以通常为了保持各模块保持同步,一个系统共用一个晶振。
单片机的应用很广泛,家用电器、办公室自动化、智能产品、商业营销、工业自动化等都有它的身影,如今在游戏领域里单片机的作用也愈发明显。虽然用单片机来设计一个简单的俄罗斯方块游戏程序似乎有点大材小用,但这仅仅是一个单片机在嵌入式游戏方面的简单应用,正因为它的前景无可预计,所以才有这个设计,此次设计仅仅是为了举一个单片机在游戏上应用的一个简单例子,它就可以很好的说明单片机功能的强大,更高的可控性和集成度高的好处,随着计算机技术、通信技术和软件技术的迅猛发展[3]。再加上3C产业(计算机、通讯、消费电子)的合成及3G移动通信时代的到来,嵌入式软件发挥了更加重要的作用,它的发展为绝大多数电子设备注入了新的活力,各种装备与设备上由于有了嵌入式系统软件的加入,大大地推动了其行业渗透性应用,嵌入式技术不仅提高了产品的技术含量,更成为产品增值的关键,在整个软件产业中占据了重要地位,并受到世界各国的广泛关注,如今已成为信息产业中最为耀眼的“明星”之一。
The actual operation shows that, the design can achieve the basic game functions, achieve the goal of the game.
【Key words】12C5A60SR; LCD liquid cryst; C language
2游戏需求及流程分析
2.1游戏组成及规则
1)游戏组成
一个用于摆放方块的平面虚拟场地,其标准大小:长为12,高为20(以每个小正方形为单位)[4];一组由四个小正方形组成的规则图形,总共有七种;一个由四个按键组成的键盘,上下左右分别控制变化、左移、右移和下落。
2)游戏规则
游戏需要使用按键控制方块运动,方块不仅可以以90°为单位旋转,还能在格子单元内左右移动;方块移到区域最底端或落到其他方块上时,就会固定在该处,新的方块出现在区域顶端开始落下;当区域中某一行被方块填满,则该行会消失并记分,同时消除的列数越多,得分越高;当屏幕被方块填满时片消除不了了,游戏结束。游戏还会提示下一个方块,如果玩家比较厉害可以根据提示来判断本次方块如何放置。