摘 要
基于AT89S52单片机实现俄罗斯方块游戏的设计,使用keil C集成环境进行软件的编程和调试,通过Proteus绘制仿真电路图,结合keil与Proteus来进行联合调试仿真,结果表明能实现游戏的正常运行。实现应用按键来控制方块的变换与移动;消除一行并计分;消除多行额外奖励记分,方块堆满时结束游戏等俄罗斯方块的基本功能。单片机在手持娱乐设备上的应用具有非常大的潜力,它能将其带入到一个新的阶段。为了解决外部电路图,必须充分了解所用液晶的显示方法和单片机的外部接口功能,和所需要处理的逻辑关系;还要理解LCD液晶的控制原理,来通过数据端口和控制端口来实现画面在液晶上面的显示。
程序则要求对外部电路了解的情况下完成自己所需要的功能,并将所要完成的功能用编程语言的形式来实现。然后通过Protues仿真实现通过外部按键来控制各种不同图形的方块来玩游戏,游戏画面出现后,分别按下左、右、下、旋转等按钮,均能正常在屏幕上做出反应。当方块堆满一行时,方块正确消除,并将分数累计在屏幕右侧,同时消除多行方块时,分数有额外奖励。达到一定分数时,方块下落速度加快,难度提高。当屏幕中方块有触及顶端的时候,游戏结束。
关键词:AT89S52;C语言;Proteus仿真;LCD液晶;俄罗斯方块游戏
ABSTRACT
The design of tetris game based on AT89S52, using keil C integrated environment for software programming and debugging, simulation circuit diagram through Proteus, combined with keil for joint debugging simulation with Proteus, the results show that the normal operation of the game can be realized.Realize the application of keys to control the transformation and movement of blocks; eliminate one line and score; eliminate multiple lines of extra bonus score, and end the basic functions of Tetris when the game is full.The application of single-chip machines on handheld entertainment devices has great potential, which can bring it to a new stage.In order to solve the external circuit diagram, it is necessary to fully understand the display method of the liquid crystal used and the external interface function of the MCU, and the logical relationship needed to be processed; and also understand the control principle of the LCD liquid crystal to realize the picture display on the liquid crystal through the data port and the control port.
The program requires having an understanding of the external circuit, and implementing the functions to be completed in the form of a programming language.Then, Protues simulation is used to control various different graphics blocks through external keys to play games. After the game screen appears, press the left, right, bottom, rotation and other buttons respectively, which can respond on the screen normally.Additional rewards are given when the blocks are filled with one row, and the scores are accumulated with the blocks on the right side of the screen while eliminating multiple lines of blocks.When reaching a certain score, the block falling speed accelerates and the difficulty increases.The game ends when the square in the screen touches the top.
Key Words:AT89S52; C language; Proteus simulation; LCD LCD; Tetris game
目 录
1 绪 论 1
1.1 课题背景 1
1.2 电子游戏及其分类 1
1.3 电子游戏发展现状 2
1.3.1 电子游戏国外发展现状 2
1.3.2 电子游戏国内发展现状 3
2 整体设计方案 5
2.1 系统的核心部分单片机 5
2.1.1 单片机的选择 5
2.1.2 AT89S52引脚功能描述 7
2.1.3 晶振特性 9
2.2 液晶显示模块 10
2.2.1 液晶显示控制驱动器HD61202的特点 10
2.2.2 液晶显示控制驱动器HD61202的引脚功能 10
2.2.3 液晶显示控制驱动器HD61202的指令系统 11
2.2.4 HD61202的软件设计 12
2.2.5 JM12864J的电路结构特点 15
2.2.6 JM12864J的应用 16
2.2.7 键盘电路 17
3 系统程序的设计 18
3.1 俄罗斯方块驱动流程图 18
3.2 俄罗斯方块所有绘图工作流程图 19
3.3 俄罗斯方块中按下键的流程图 20
3.4 俄罗斯方块所有绘图工作流程图 21
4 系统仿真 22
4.1 Proteus软件介绍 22
4.2 Keil软件介绍 22
4.3 俄罗斯方块系统PROTUES仿真 24
5 实物的制作与调试 26
5.1 电路的焊接 26
5.2 系统性能测试与功能说明 27
结 论 28
参考文献 29
附录1:C语言程序 30
附录2:电路原理图 59
致 谢 60