嵌入式系统课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统课程设计报告
课程设计报告
俄罗斯方块游戏
班级: vb
风格
姓名: 发的根本
教师评语:
教师签名:
2013年9月
俄罗斯方块游戏课程设计题目
本次课程设计的主要内容是通过前8次小实验中完成的任务和实现的功能,综合前面的设计方法,利用学到的LCD接口控制、中断控制以及所学的I/O控制的知识等完成本次所选课程设计实验题目----俄罗斯方块游戏,俄罗斯方块游戏是在博创UP-NETARM3000实验平台上综合应用前序课程嵌入式课程实验
主要内容中的串口、键盘、LED接口、A/D、定时器中断、LCD接口及触摸屏驱动控制等模块设计而成,其整体设计包括四个不同层次:功能层、软件层、中间层、硬件层,实验中用到了图形库,并利用多任务嵌入式操作系统对多任务进行有效地调度。同时通过这次课设的体会应该总结到自己在实践中的不足和欠缺的知识,及时的补充和完善个人能力,争取学到更多的知识和实践技能。硬件: ARM嵌入式开发平台、用于 ARM7TDMI的JTAG 仿真器、PC机Pentium100 以上、示波器。
软件:
PC机操作系统win98、Win2000 或WinXP 、ARM SDT 2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。
采用的工具方法
1.第一次实验:俄罗斯方块游戏的需求分析与概要设计
2.第二、三次实验:相关功能模块的划分,及其设计
3.第四至第六次实验:编写各部分代码,与调试各个模块功能
进度安排 4.第七次实验:整体调试并修改BUG
5.第八、九次实验:添加新的功能例如:添加对应动作下的音效,调节游戏速度
1、武俊鹏、张国印、姚爱红、赵国冬,基于ARM的嵌入式系统
设计实验与实践教程,清华大学出版社2011
2、吴学智,基于ARM的嵌入式系统设计与开发,人民邮电出版社2007 参考资料
1. 题目
俄罗斯方块游戏
2. 系统简介
俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,最初由前苏联游戏制作人Alex Pajitnov制作的,无数人进入游戏编程的世界都是从编写俄罗斯方块游戏开始的,它能极大的检验一个人对开发语言、环境和基本数据结构知识的熟练程度,其设计过程涉及到如何使用图形库,如何利用多任务嵌入式操作系统对多任务进行有效地调度等内容。
本次课程设计要求开放一个简单的俄罗斯方块游戏,并达到以下基本要求: 【1】实验台上的小键盘的要求
(1)按“*”键重新开始游戏,随机产生方块并自动下落;
(2)按“/”键可以暂停游戏,再次按键开始游戏;
(3)用“8”键变换方块角度,用“4”实现左移,用“6”实现右移,用“5”实现方块加速下移;
【2】触摸屏上的功能要求
(1)按START键开始游戏,随机产生方块并自动下移。
(2)按PAUSE键可以暂停游戏,再次按键可以重新开始游戏。
(3)按T键可以转换方块角度。
(4)按L、R键实现向左移动和向右移动。
(5)按D键实现方块加速下移。
系统能够正确判断是否满行,并对已经填充满的行进行消行和计分。
以上是基本要求,我们在实现了以上的基本要求后,我们又增加了一些新的功能,首先,我们在游戏中加入了音乐,当你重新开始游戏时、或者游戏得分时、方块下落时都有不同的音乐出现,增加了趣味性。其次,我们设置了不同的游戏级别(级别通过速度来表示),当你觉得太难或者太简单时,都可以根据你的需要通过小键盘上的按键(+、,)来调节游戏难度,使更人性化。
3. 系统设计
3.1体系结构设计
游戏设计的体系结构应分为4个不同的层次:硬件层、功能层、软件层、中间层。整个设计需要完成在不同的层次上完成不同的设计要求。
硬件层:选择博创UP-NETARM3000实验平台。
功能层:在这一层上要实现俄罗斯方块游戏的应用代码、算法实现等,我们组选择了博创UP-NETARM3000的硬件实验平台,那么主要工作就主要集中在这一层次上,因为其他的层次已经由硬件平台的提供商基本实现了。
软件层:提供用户图形几口、实现多任务调度管理、移植一个RTOS(实时操作系统),本设计是基于uC/OS这一嵌入式实时操作系统实现的。
中间层:硬件抽象层和板级支持包,这一般由硬件平台提供商实现。如果选择从头设计一个俄罗斯方块游戏,自己去实现硬件体系结构,还是需要考虑这一部分的,但我们组的设计不需要这一部分。
- 1 -
俄罗斯方块游戏设计
图形用户界面多任务管理
实时操作系统
BSP/HAL板级支持包/硬件抽象包
GPIOD/A
ARMROMA/D处理器
RAMI/O
人机交互界面
图3.1 体系结构图
1) 整个游戏界面的设计和控制:设计一个左边是带有框格的游戏界面。右边为控制和
显示的界面,控制自然是绘制按键图案通过触屏控制来实现。显示的内容有START、
PAUSE、SCORE、LEVEL、L、R、T、D。
2) 方块的移动:通过定时器1,改变方块左右移动的地址来实现。 3) 方块的变形:可通过运用三维数组储存7个基本方块形状,采用线性代数转置的思路改变数组的值并设定一个缓冲区储存变形数组,从而达到变形的效果。 4) 方块的碰边处理:可设定一个二维数组储存整个游戏界面的最新状态,有方块为1,
没有则为0,并在游戏界面周围填入1,通过方块地址和数组位置的转换判定
数组中
的值,为0说明可走,为1则不能通过,从而实现碰边处理。
5) 方块的嵌套:与碰边原理相似,可将之前停止在界面上的方块位置对应数组
中的值
赋1,再判断当前方块每一列的最后一行下是否有方块,实现方块嵌套。 6)
方块的随机出现:当方块到达最后一行或嵌套成功后停止,然后将出现下一个方
块,
可通过定时器取出末尾三位实现随机性。并在右边显示下一个方块的形状。 7) 消行处理:可通过处理界面的数组判断某一行是否都为1,若为1就执行将上一行赋给下一行,并将第一行赋为0。
8) 分数及等级的计算:当方块到达最后一行或嵌套成功后停止分数加1分,当
消一行
成功加1,当分数超过5分时等级加1。
3.2功能层模块
根据需求分析的结果,以及针对在需求分析中总结出来的具体要求,对整个功
能层做出的进一步划分,如图3.2所示:
- 2 -
俄罗斯方块游
戏设计
游戏界面方块处理消息循环绘制
绘制API随机触摸方块接口调动动态键盘产生屏消自动绘制静态刷新消息新方
息落下框架块