基于嵌入式ARM的贪吃蛇游戏论文

更新时间:2024-04-16 11:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

编号:

嵌入式系统开发 实训 (论文)说明书

题 目: 贪吃蛇游戏 院 (系):

专 业: 电子信息工程 学生姓名: 学 号:

指导教师:

2010年1月13日

摘 要

在电脑极大普及的今天,游戏是我们日常生活的重要娱乐方式。随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。随便计算机技术的发展,游戏行业越来越得到人们的关注,特别是在年轻人行列。现行的游戏一般是基于个人计算机的,像贪吃蛇这类小游戏在高档掌上电脑或高档电子消费品,但基于小型掌上低端游戏机在市场上却几乎没有。

本文以飞利浦公司的LPC2124芯片板为平台,在讨论ARM体系结构和游戏开发的同时,设计并实现了贪吃蛇游戏机的软件仿真。

综上所述此类贪吃蛇游戏机具有使用方便,绿色安全,低功耗、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

关键词:ARM;低功耗;游戏;贪吃蛇;LPC2124

Abstract

In the great popularity of computers today, games are important forms of entertainment in our daily lives, With the rapid development of science and technology, the passage of time, from concept to the sun, the electronic clock pendulum clock to now, human constant research, innovation record. Not the development of computer technology, games industry has been growing concern, especially among young people. The current game in general is based on the personal computer, such as Snake game in the high-end high-end Pocket PC or consumer electronics, but based on small-scale low-end handheld game in the market is virtually non-existent.

In this paper, Philips LPC2124 chip board as a platform, in discussing the ARM architecture and game development, design and realization of the Snake game simulation software.

To sum up such a Snake game with easy-to-use, green safe, low-power, low cost and many other advantages, in line with the electronic instrumentation of the development trend of the market prospects are broad.

Key words:ARM; Low power consumption; Game; Greedy snake; LPC2124

桂林电子科技大学

目 录

引言 ...............................................................................................................1 1 ARM概述 .................................................................................................1 2 ARM的开发环境 ......................................................................................2

2.1 2.2 3.1 3.2 3.3 3.3.1 3.3.2

Keil介绍 ......................................................................................................................... 2 ADS介绍 ........................................................................................................................ 2 电路设计框图 .............................................................................................................. 3 系统硬件概述 .............................................................................................................. 3 系统主要硬件 .............................................................................................................. 3 LPC2124 ....................................................................................................................... 3 LP3228显示屏............................................................................................................. 6

3 系统的硬件设计 .......................................................................................3

3.3.3 用户操作接口 .............................................................................................................. 7

4 软件仿真 ..................................................................................................7 5 系统的软件设计与实现............................................................................8

5.1 5.2 5.3 5.3.1 5.3.2 5.3.3 5.3.4

游戏说明 ...................................................................................................................... 8 游戏结构设计 .............................................................................................................. 8 游戏具体设计 .............................................................................................................. 8 矩阵键盘按键扫描子程序 .......................................................................................... 8 矩阵键盘处理子程序 .................................................................................................. 9 LCD显示子程序 ....................................................................................................... 10 主程序流程 ................................................................................................................ 10

6 程序测试 ................................................................................................11

6.1 仿真测试 .......................................................................................................................... 11 6.2 程序的局限性 .................................................................................................................. 11

7 总结........................................................................................................12 谢 辞 .........................................................................................................13 参考文献......................................................................................................14 附 录 .........................................................................................................15

附录一 统仿真电路图 ............................................................................................................ 15 附录二 程序文件清单 ............................................................................................................ 16 附录三 使用说明书 ................................................................................................................ 17

第1页 共21页

桂林电子科技大学

引言

基于ARM芯片的产品凭借其强大的功能、低廉的价格和体积小等优点,在许多领域得到了广泛的应用。而当前在游戏开发中,ARM并没有充分显示出它的这些特点。而彩色液晶显示器具有功耗低、显示信息量大、显示效果逼真等特点。所以若用彩色液晶显示器为游戏提供界面一会受到欢迎。

液晶显示屏LCD作为一种功耗低、体积小、无辐射的显示器件,近几年被广泛应用于各式各样的嵌入式电子产品中,LCD可分为段位式、字符式和点阵式三种,其中,段位式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求,而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动动画功能,分区开窗口、反转、闪烁等功能,用途十分广泛,为了简化液晶显示电路的设计和应用,生产厂家通常将液晶显示单元、显示控制器,显示内存和显示驱动电路等装配在一起,做成液晶显示模块LCD Module(LCM)。

目前,基于ARM芯片的产品遍布人类生活空间,在移动娱乐工具上应用广泛,特别在手机游戏制作方面越来越收人们的欢迎。

1 ARM概述

ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对1991 年ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM 技术知识产权(IP)核的微处理器,即我们通常所说的ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM 技术的微处理器应用约占据了32位RISC 微处理器75%以上的市场份额,ARM 技术正在逐步渗入到我们生活的各个方面。ARM 公司是专门从事基于RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM 微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM 公司的授权,因此既使得ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。

ARM公司出售芯片技术授权给半导体公司,ARM核因为具有高性能、低成本、低功耗的特点而被广采用。这样在全球范围内围绕着ARM技术形成了从一个芯片设计、

第1页 共21页

一类微处理器的通称,还可以认为是一种技术的名字。

桂林电子科技大学

3.3.3 用户操作接口

用户操作接口采用的是4×4矩阵键盘,用户可以通过操纵键盘控制贪吃蛇的游动方向,控制方向如表3-4所示:

表3.4贪吃蛇方向控制

8 2 4 6 5 矩阵键盘原理图如图3.5所示:

贪吃蛇向上运动 贪吃蛇向下运动 贪吃蛇向左运动 贪吃蛇向右运动 暂停/继续游戏 图3.5 矩阵键盘原理图

矩阵键盘的工作原理如下:

(1)先读取键盘的状态,得到按键的特征编码。

先从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状态。再从P1口的低四位输出低电平,高四位输出高电平,从P1口的高四位读取键盘状态。将两次读取结果组合起来就可以得到当前按键的特征编码。使用上述方法我们得到16个键的特征编码。

(2)根据按键的特征编码,查表得到按键的顺序编码。

将16个键的特征编码按顺序排成一张表,然后用当前读得的特征编码来查表,当表中有该特征编码时,它的位置就是对应的顺序编码。

(3)根据特征编码与顺序编码的对应关系就可以确定所按下的是哪一个键。

4 软件仿真

Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特

第7页 共21页

桂林电子科技大学

点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。④具有强大的原理图绘制功能。该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。

本次实中设计的贪吃蛇电路,电路核心是LPC2124,P0端接液晶显示屏,P1端接的是控制按键,具体仿真电路图请见附录一。

5 系统的软件设计与实现

5.1 游戏说明

游戏目标是控制贪吃蛇吃掉画面中的目标豆,每吃掉一个目标豆就会加分,但同时贪吃蛇的尾巴会相应地长上一截,吃得越多,尾巴越长。游戏中,贪吃蛇碰上了自己的身体游戏即结束。分数增加到一定后,贪吃蛇移动的速度增加,从而逐步增加游戏的难度。 5.2 游戏结构设计

游戏主要分为A、B、C三个模块。

A模块主要用于控制游戏的开始、暂停与结束,这些方法与其他程序相同。 B模块主要用于完成游戏的主要功能,包括了蛇体控制,目标豆的摆放,游戏控制,屏幕绘制等。

C模块主要用于完成蛇体在屏幕上的定位。 5.3 游戏具体设计 5.3.1

矩阵键盘按键扫描子程序

用户设计行列键盘接口,一般常采用3种方法读取键值。分别为:中断式,扫描法和反转法。

(1)中断式:在键盘按下时产生一个外部中断通知CPU,并由中断处理程序通过不同的地址读取数据线上的状态,判断哪个按键被按下。

(2)扫描法:对键盘上的某一行送低电平,其他行为高电平,然后读取列值。若列值中有一位是低,则表明该行与低电平对应列的键被按下;否则,扫描下一行。

第8页 共21页

桂林电子科技大学

(3)反转法:先将所有行扫描线输出低电平,读列值。若列值有一位是底,则表明有键按下,读列值;然后所有列扫描线输出低电平,再读行值。根据读到的值组合就可以查表得到键值。

在本次实训中我们采用的是反转法,其硬件连接请见图3.5。 { } 5.3.2

矩阵键盘处理子程序 uint8 keycode = 0xff; uint8 row; uint8 col;

for(col=0;col

Column_Clear(col);

for(row=0;row

if(Row_Status(row)==0) {

keycode = row*KEYBOARD_ROW+col; } }

Column_Set(col); }

return keycode;

关键代码如下所示,具体可见源代码。

Keyboard_Scan(void)

uint8

主要是对键盘扫描子程序返回的键值进行处理,为了程序化模块化,处理返回的键

值时调用了各个键的处理函数,这里就不给出具体的处理函数了,具体可见源代码。 void Key_Process(uint8 num) //num为键盘扫描子程序返回的键值 {

switch(num) {

case 1:up();break;

//向上

case 4:left();break; //向左 case 5:pause();break; //暂停 case 6:right();break; //向右

第9页 共21页

桂林电子科技大学

}

}

case 9:down(); break; //向下

default:move();break; //默认为自动移动

5.3.3 LCD显示子程序

这部分的处理是在文件LOADBIT.C中完成。

子程序的功能为显示单色图形及汉字显示。实现的流程是先将图形转换为对应的点阵数组,然后即可调用LM3228的设备驱动程序中的函数输出驱动。

本次实训中采用LM3228的显示屏,图形液晶模块驱动程序要考虑它的操制器,要参考它的DataSheet来设计,这部分程序具体可见源代码。 5.3.4

主程序流程

主程序 在main.c中,它的程序流程如图5.3所示。

开始初始化GUIGUI_Initialize();初始化矩阵键盘Keyboard_Initialize();设置前景色和背景色GUI_SetColor();蛇死了?YN键盘按键扫描key=Keyboard_Scan();结束按键的处理Key_Process(key);更新显示priout判断蛇是否吃到豆子judge_f();判断蛇是否死亡die_f();图5.3 主程序流程图

第10页 共21页

桂林电子科技大学

6 程序测试

6.1 仿真测试

由于ARM芯片管脚比较多,而且很多元器件都是贴片元件,做成电路板比较困难,由于资源等客观限制,所以在这里只进行仿真测试。测试将粗略检测贪吃蛇游戏的5项基本功能:向上,向下,向左,向右和暂停功能。这里将测试贪吃蛇向右运动的情况,如图6.1所示。

图6.1 贪吃蛇向右运动

测试结果:在按了矩阵键盘的”6”号键之后,贪吃蛇开始向右运动,测试成功。 然后再测试贪吃蛇小游戏的暂停和继续功能,按了一次矩阵键盘的”5”号键之后,贪吃蛇停止运动,再按一次矩阵键盘的”5”号键,贪吃蛇又继续运动,测试成功。 6.2 程序的局限性

由于时间的局限性和个人能力的局限性,这个程序中检测出不少局限性,如下所述。 (1)在算法实现上,未充分考虑贪吃蛇碰壁的情况,只是简单的让贪吃蛇穿过墙壁,没做其他处理。

(2)贪吃蛇在运动时可以改变至相反方向,即存在掉头情况。 (3)贪吃蛇吃到自己尾巴的时候,有时会分成两截,有待改进。

第11页 共21页

本文来源:https://www.bwwdw.com/article/kl1p.html

Top