基于s3c44b0ARM飞机游戏课程设计报告

上传人:博****1 文档编号:499181471 上传时间:2023-06-19 格式:DOC 页数:32 大小:1.21MB
返回 下载 相关 举报
基于s3c44b0ARM飞机游戏课程设计报告_第1页
第1页 / 共32页
基于s3c44b0ARM飞机游戏课程设计报告_第2页
第2页 / 共32页
基于s3c44b0ARM飞机游戏课程设计报告_第3页
第3页 / 共32页
基于s3c44b0ARM飞机游戏课程设计报告_第4页
第4页 / 共32页
基于s3c44b0ARM飞机游戏课程设计报告_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《基于s3c44b0ARM飞机游戏课程设计报告》由会员分享,可在线阅读,更多相关《基于s3c44b0ARM飞机游戏课程设计报告(32页珍藏版)》请在金锄头文库上搜索。

1、课设报告题 目: 飞机大战班 级: 姓 名: 学 号: 指导老师: 日 期: 年 月 日 目录1摘要32.1功能需求32.2设计要求33硬件设计与描述43.1总体描述43.2系统总体框图43.3各部分硬件介绍43.31输入模块43.32输入模块54软件设计流程与描述64.1程序流程图64.2主要函数模块与功能74.2.1控制飞机模块74.2.2 碰撞检测模块85功能实现10液晶显示106心得体会121摘要三星公司推出的 16/32 位 RISC 处理器 S3C44B0X 为手持设备和一般类型的提供了一种高性能低成本的解决方案。为了降低整个系统的成本,S3C44B0X 部集成了丰富的片外设,包括

2、:8K 的 cache,可选的片 SRAM,LCD 控制器,带有握手信号的双同道 UART,4 同道 DMA,系统管理器(片选逻辑,FP/EDO/SDRAM 控制器),带有 PWM 功能的 5 通道定时器,I/O 端口,RTC 实时时钟,8 通道 10 位 ADC,IIC、IIS 总线接口,同步 SIO 接口以与用于时钟管理的PLL 锁相环。S3C44B0X极低的功耗以与简单,只能的全静态设计使其非常适合对成本和功耗敏感的项目。同时S3C44B0X还采用了一种新的总线结构,即SAMBAII(三星ARMCPU嵌入式微处理器总线结构)S3C44B0X通过集成全面、通用的片外设,大大减少了系统电路中

3、除处理器外的器件需求,从而最小化系统成本。2.1功能需求1. 以动漫的形式显示开机界面和加载游戏进入。2. 以位图的方式显示不同飞机的图像,开机界面。3. 使用碰撞检测机制,实现飞机与飞机,飞机与子弹的检测。4. 实现按键的控制,对子弹的发送和飞机的上下左右的自由控制。5. 敌机的随机出现,并实现无限架敌机,且游戏主界面需每次出现三架飞机,供我机击落。6. 对击落的敌机实现计数,随着敌机击落的不同数量设置不同的难度级别。7. 飞机实现三次的生命值,即有三次机会。2.2设计要求1. 界面流畅,操控飞机灵活。2. 碰撞检测的算法设计3硬件设计与描述3.1总体描述在实验开发板上,根据功能需求,设定了

4、控制模块由ARM7为控制核心,具有在线编程功能,低功耗,输入模块由按键和触屏控制,通过触屏实现游戏的加载,通过按键实现飞机的上下移动,避开与敌机的相撞,子弹的发射可以将敌机击毁。3.2系统总体框图3.3各部分硬件介绍3.31输入模块矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。如图67所示,一个3 X 3的行、列结构可以构成一个有9个按键的键盘。同理一个4 X 4的行、列结构可以构成一个含有16个按键的键盘等等。很明显,在按键数量较多的场合,矩阵键盘与独立式按键键盘相比,要节省很多的IO口。 按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通

5、过上拉电阻接到VCC上。平时无按键动作时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。列线电平如果为低,则行线电平为低;列线电平如果为高,则行线电平亦为高。这一点是识别矩阵键盘按键是否被按下的关键所在。由于矩阵键盘中行、列线为多键共用,各按键均影响该键所在行和列的电平。因此各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。 3.32输入模块LCD屏是中间夹有一些液晶材料的两块玻璃板,在此夹层的各个节点上通以微小的电流,就能够让液晶显现出图案,诸如计算器上的数字、PDA上的文本、笔记本电脑显示器上的图像之类的东西。

6、 LCD的主要特点:首要的是它们体积轻而且薄,只有几英寸厚。LCD第二大优点就是能耗少,比CRT显示器少 90%。其三,LCD 的文本和图表显示要比 CRT 显示器上的清晰。目前的不足之处也是显而易见的,如视角窄,颜色表现力欠佳。图为S3C44BOX中置的LCD控制器的逻辑框图,它用于传输显示数据并产生必要的控制信号,如VFRAME,VLINE,VCLK,和VM。除了控制信号,还有显示数据的数据端口 VD7:0。LCD控制器包含REGBANK,LCDCDMA,VIDPRCS,和TIMEGEN。REGBANK 具有 18 个可编程寄存器,用于配置 LCD 控制器。LCDCDMA 为专用DMA,以

7、自动地将显示数据从帧存中传送到 LCD 驱动器中。4软件设计流程与描述4.1程序流程图图4-1 系统程序流程图4.2主要函数模块与功能4.2.1控制飞机模块 采用扫描法判断按键的按下,根据对按键的不同键值实现对飞机的上下左右控制,每按一次,飞机均移动十个像素的位置。部分实现代码如下:key = Key_Get(); switch(key) case 2:LCD_Clear_Plane(planeX, planeY, planeX+40, planeY+40); planeY -= 10;break; case *:LCD_Clear_Plane(planeX, planeY, planeX+4

8、0, planeY+40); planeX -= 10;break; case 0:LCD_Clear_Plane(planeX, planeY, planeX+40, planeY+40); planeY += 10;break; case #:LCD_Clear_Plane(planeX, planeY, planeX+40, planeY+40); planeX += 10;break; case 1:OrnotDrawBullet();break; 4.2.2 碰撞检测模块分别实现飞机与飞机的碰撞检测和飞机和子弹的碰撞检测。下图分别为两个检测的流程图。飞机与飞机的碰撞采用矩阵相交的方法

9、,实现算法如下:假定矩形是用一对点表达的(minx, miny) (maxx, maxy),那么两个矩形rect1(minx1, miny1)(maxx1, maxy1)rect2(minx2, miny2)(maxx2, maxy2) 相交的结果一定是个矩形,构成这个相交矩形rect(minx, miny) (maxx, maxy)的点对坐标是: minx = max(minx1, minx2) miny = max(miny1, miny2) maxx = min(maxx1, maxx2) maxy = min(maxy1, maxy2) 如果两个矩形不相交,那么计算得到的点对坐标必然满

10、足: ( minx maxx ) 或者 ( miny maxy ) 玩家游戏的飞机默认设置为三次机会,即有三次生命值,当判断生命值0 时候 游戏结束,并且跳出框显示击毁敌机的数量。 子弹的发射靠按键的按下实现,与敌机碰撞同样采用飞机与飞机的碰撞,当子弹与飞机碰撞的时候,接触部分会出现局部的爆炸,继而出现大爆炸,同时随着击毁敌机的数量增多,游戏的难度增加,敌机下落的速度增加。5功能实现液晶显示游戏初始化后,开机界面的显示。 进入游戏界面,实现对敌机的打击。生命值的统计,击毁敌机数6心得体会这次课程设计最大的收获就是只有把理论运用到实践中我们才能真正掌握所学的知识,在实践中,通过一系列问题的出现与

11、解决,我对ARM有了更好的认识和理解,同时让我的动手能力有了一定的提高。本次课程设计是以小组合作的形式进行,在这个过程中我们小组成员之间互相学习,互相帮助,团结协作,弥补彼此的不足,经过成员间的讨论与请教其他小组成员,我们的问题迎刃而解。7源代码/* Copyright (c) 2004 双实科技* All rights reserved. * 文件名称:main_lcd.c* 文件标识:程序实现体* 摘 要:本文件是对lcd功能的测试* 当前版本:1.0* 作 者:征* 完成日期:2004.8.17* 取代版本:* 作 者:* 完成日期:*/* bmp头文件*/#include 44b0x.

12、h#include 44bConfig.h#include define.h#include LCD_Control.h #include LCD_BMP.h#include bmp_Color256.h /* key头文件*/#include uart.h#include key.h#include #include /* Touch头文件*/#include TouchPanel.h#define DISABLE_TIMER2(rTCON &= 0x1000)#define ENABLE_TIMER2(rTCON |= 0x1000)#define ENABLE_TOUCH (rPDATE &= 0xfe);/* 变量*/extern GUI_BITMAP *pBitmap;char key = 0;/键值int planeX=145,planeY=200;/初始飞机坐标int a5,b5,c5,d5;int i = 0 ,m = 0;int color2;int ArmyX3 ,ArmyY3,live_Army3;int live_

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号