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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课设报告

题目:飞机大战

班级:

姓名:

学号:

指导老师:

日期:年月日

目录

1摘要 (3)

2.1 功能需求 (3)

2.2 设计要求 (4)

3 硬件设计及描述 (5)

3.1 总体描述 (5)

3.2 系统总体框图 (5)

3.3 各部分硬件介绍 (5)

3.31输入模块 (5)

3.32输入模块 (6)

4 软件设计流程及描述 (7)

4.1 程序流程图 (7)

4.2 主要函数模块及功能 (8)

4.2.1控制飞机模块 (8)

4.2.2 碰撞检测模块 (9)

5 功能实现 (11)

液晶显示 (11)

6 心得体会 (13)

1摘要

三星公司推出的16/32 位RISC 处理器S3C44B0X 为手持设备和一般类型的提供了一种高性能低成本的解决方案。为了降低整个系统的成本,S3C44B0X 内部集成了丰富的片内外设,包括: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(三星 ARM CPU 嵌入式微处理器总线结构)S3C44B0X 通过集成全面、通用的片内外设,大大减少了系统电路中除处理器外的器件需求,从而最小化系统成本。

2.1 功能需求

1.以动漫的形式显示开机界面和加载游戏进入。

2.以位图的方式显示不同飞机的图像,开机界面。

3.使用碰撞检测机制,实现飞机与飞机,飞机与子弹的检测。

4.实现按键的控制,对子弹的发送和飞机的上下左右的自由控制。

5.敌机的随机出现,并实现无限架敌机,且游戏主界面需每次出现三架飞

机,供我机击落。

6.对击落的敌机实现计数,随着敌机击落的不同数量设置不同的难度级别。

7.飞机实现三次的生命值,即有三次机会。

2.2 设计要求

1.界面流畅,操控飞机灵活。

2.碰撞检测的算法设计

3 硬件设计及描述

3.1 总体描述

在实验开发板上,根据功能需求,设定了控制模块由ARM7为控制核心,具有在线编程功能,低功耗,输入模块由按键和触屏控制,通过触屏实现游戏的加载,通过按键实现飞机的上下移动,避开与敌机的相撞,子弹的发射可以将敌机击毁。

3.2 系统总体框图

按键模块

信号输入

ARM7

信号输出

液晶显示

3.3 各部分硬件介绍

3.31输入模块

矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。如图6—7所示,一个3 X 3的行、列结构可以构成一个有9个按键的键盘。同理一个4 X 4的行、列结构可以构成一个含有16个按键的键盘

等等。很明显,在按键数量较多的场合,矩阵键盘与独立式按键键盘相比,要节省很多的I/O口。

按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到VCC上。平时无按键动作时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。列线电平如果为低,则行线电平为低;列线电平如果为高,则行线电平亦为高。这一点是识别矩阵键盘按键是否被按下的关键所在。由于矩阵键盘中行、列线为多键共用,各按键均影响该键所在行和列的电平。因此各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。

3.32输入模块

LCD屏是中间夹有一些液晶材料的两块玻璃板,在此夹层的各个节点上通以微小的电流,就能够让液晶显现出图案,诸如计算器上的数字、PDA上的文本、笔记本电脑显示器上的图像之类的东西。LCD的主要特点:首要的是它们体积轻而且薄,只有几英寸厚。LCD第二大优点就是能耗少,比CRT显示器少90%。其三,LCD 的文本和图表显示要比CRT 显示器上的清晰。目前的不足之处也是显而易见的,如视角窄,颜色表现力欠佳。

图为S3C44BOX中内置的LCD控制器的逻辑框图,它用于传输显示数据并产生必要的控制信号,如VFRAME,VLINE,VCLK,和VM。除了控制信号,还有显示数据的数据端口VD[7:0]。LCD控制器包含REGBANK,LCDCDMA,VIDPRCS,和TIMEGEN。REGBANK 具有18 个可编程寄存器,用于配置LCD 控制器。LCDCDMA 为专用DMA,以自动地将显示数据从帧内存中传送到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+40, planeY+40); planeX -= 10;break;

相关文档
最新文档