基于s3c44b0ARM飞机游戏课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;