嵌入式ARM的贪吃蛇游戏_第1页
嵌入式ARM的贪吃蛇游戏_第2页
嵌入式ARM的贪吃蛇游戏_第3页
嵌入式ARM的贪吃蛇游戏_第4页
嵌入式ARM的贪吃蛇游戏_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成 绩 评 定 表学生姓名王超班级学号1003020330专 业测控课程设计题目基于ARM的贪吃蛇游戏设计评语组长签字:成绩日期 20 年 月 日课程设计任务书学 院信息科学与工程学院专 业测控学生姓名王超班级学号1003020330课程设计题目基于ARM的贪吃蛇游戏设计实践教学要求与任务:要求:1、设计电路,选择器件。2、利用Protel画原理图。3、软件编程、调试。4、焊接硬件电路,并调试。任务: 1、 设计基于ARM的贪吃蛇游戏 2、通过按键能进行调整及在电子屏上显示工作计划与进度安排:1、查找资料。(2天)2、设计电路、画电路图。(2天)3、软件编程与调试。(2天)4、系统调试。(2天

2、) 5、撰写报告。(2天)指导教师: 201 年 月 日专业负责人:201 年 月 日学院教学副院长:201 年 月 日摘 要在电脑极大普及的今天,游戏是我们日常生活的重要娱乐方式。随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。随便计算机技术的发展,游戏行业越来越得到人们的关注,特别是在年轻人行列。现行的游戏一般是基于个人计算机的,像贪吃蛇这类小游戏在高档掌上电脑或高档电子消费品,但基于小型掌上低端游戏机在市场上却几乎没有。本文以飞利浦公司的LPC2124芯片板为平台,在讨论ARM体系结构和游戏开发的同时,设计并实现了贪吃蛇游戏机的软件仿真。综上所述

3、此类贪吃蛇游戏机具有使用方便,绿色安全,低功耗、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。关键词:ARM;低功耗;游戏;贪吃蛇;LPC2124AbstractIn 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, t

4、he 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

5、 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 s

6、oftware. 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目 录引言11 ARM概述12 AR

7、M的开发环境22.1Keil介绍22.2ADS介绍23 系统的硬件设计33.1电路设计框图33.2系统硬件概述33.3系统主要硬件33.3.1LPC212433.3.2LP3228显示屏63.3.3用户操作接口74 软件仿真75 系统的软件设计与实现85.1游戏说明85.2游戏结构设计85.3游戏具体设计85.3.1矩阵键盘按键扫描子程序85.3.2矩阵键盘处理子程序95.3.3LCD显示子程序105.3.4主程序流程106 程序测试116.1 仿真测试116.2 程序的局限性117 总结12谢 辞13参考文献14附 录15附录一 统仿真电路图15附录二 程序文件清单16附录三 使用说明书17

8、 第15页 共20页引言基于ARM芯片的产品凭借其强大的功能、低廉的价格和体积小等优点,在许多领域得到了广泛的应用。而当前在游戏开发中,ARM并没有充分显示出它的这些特点。而彩色液晶显示器具有功耗低、显示信息量大、显示效果逼真等特点。所以若用彩色液晶显示器为游戏提供界面一会受到欢迎。液晶显示屏LCD作为一种功耗低、体积小、无辐射的显示器件,近几年被广泛应用于各式各样的嵌入式电子产品中,LCD可分为段位式、字符式和点阵式三种,其中,段位式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求,而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可

9、以实现屏幕上下左右滚动动画功能,分区开窗口、反转、闪烁等功能,用途十分广泛,为了简化液晶显示电路的设计和应用,生产厂家通常将液晶显示单元、显示控制器,显示内存和显示驱动电路等装配在一起,做成液晶显示模块LCD Module(LCM)。目前,基于ARM芯片的产品遍布人类生活空间,在移动娱乐工具上应用广泛,特别在手机游戏制作方面越来越收人们的欢迎。1 ARM概述ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1991 年ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM 技术知识

10、产权(IP)核的微处理器,即我们通常所说的ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM 技术的微处理器应用约占据了32位RISC 微处理器75以上的市场份额,ARM 技术正在逐步渗入到我们生活的各个方面。ARM 公司是专门从事基于RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM 微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都

11、使用ARM 公司的授权,因此既使得ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。ARM公司出售芯片技术授权给半导体公司,ARM核因为具有高性能、低成本、低功耗的特点而被广采用。这样在全球范围内围绕着ARM技术形成了从一个芯片设计、生产、销售,工具软件设计与开发,系统软件开发以及应用软件开发的庞大产业链。说ARM代表着以ARM为核心的软硬件开发技术也不为过。2 ARM的开发环境2.1 Keil介绍uVision3集成开发环境(uVision3 IDE)是一个窗口化的软件开发平台,它集成了功能强大的编辑器、工程管理器以及

12、各种编译工具(包括C编译器、宏编译器、链接/装载器和十六进制文件转换器)。uVision3包括以下功能组件,能加速嵌入式应用程序的开发过程:(1)功能强大的源代码编辑器;(2)可根据开发工具配置的设备数据库;(3)用于创建和维护工程的工程管理器;(4)集汇编、编译和链接过程于一体的编译工具;(5)用于设置开发工具配置的对话框;(6)真正集成高速CPU及片上外设模拟器的源码级调试器;(7)高级GDI接口;可用于目标硬件的软件调试和KEIL ULINK仿真器的连接;(8)用于下载应用程序到FLASH ROM中的FLASH编程器;(9)完善的开发工具手册、设备数据手册和用户向导。uVision3 I

13、DE使用简单、功能强大,是设计者完成设计任务的重要保证。uVision3 IDE还提供了大量的例程及相关信息,有助于开发人员快速开发嵌入式应用程序。2.2 ADS介绍ADS 集成开发环境是 ARM 公司推出的 ARM 核微控制器集成开发工具,英文全称为ARM Developer Suite,成熟版本为 ADS1.2。ADS1.2 支持 ARM10 之前的所有 ARM 系列微控制器,支持软件调试及 JTAG 硬件仿真调试,支持汇编、C、C+源程序,具有编译效率高、 系统库功能强等特点, 可以在 Windows98、 Windows XP、 Windows2000 以及 RedHat Linux上

14、运行。这里将简单介绍使用 ADS1.2 建立工程,编译连接设置,调试操作等等。最后还介绍了基于 LPC2200 系列 ARM7 微控制器的工程模板的使用,EasyJTAG 仿真器的安装与使用。ADS 1.2 由 6 个部分组成,如表2.1所示。表 2.1 ADS1.2组成表名称描述使用方式代码生产工具ARM汇编去,ARM的C、C+编译器,Thumb的C、C+编译器,ARM连接器由CodeWarrior IDE 调用集成开发环境CodeWarrior IDE工程管理,编译连接调试器AXD,ADW/ADU,armsd仿真调试指令模拟器ARMulator由AXD调用ARM开发包一些底层的例程,实用程

15、序(如fromELF)一些实用程序由CodeWarrior IDE 调用ARM应用库C、C+函数库等用户程序使用3 系统的硬件设计3.1 电路设计框图系统以LPC2124ARM芯片作为核心控制器件,外围只有液晶显示和键盘操作,且均为串行通信器件,使得系统线路简单可靠性高。系统结构框图3.1所示。ARMLPC212主控液晶显示键盘输入 图3.1系统结构框图3.2 系统硬件概述本电路由ARM芯片LPC2124为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;液晶显示部份由LM2124液晶显示器作为显示,因其具有很多优点,被广泛使用;按键部分我们使用矩阵键盘,因其使用方便,且便于记住,所以我

16、们使用矩阵键盘而不是用独立键盘。3.3 系统主要硬件3.3.1 LPC2124LPC2124 是基于一个支持实时仿真和跟踪的 16/32 位 ARM7TDMI-STM CPU 的微控制器,并带有128/256 k字节(kB)嵌入的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用 16 位 Thumb 模式将代码规模降低超过30%,而性能的损失却很小。 由于LPC2124较小的 64脚封装、极低的功耗、多个 32 位定时器、4 路 10 位ADC以及多达9个外部中断使它们特别适用于工业控制、医疗系统、访问控制和P

17、OS机。 在 64 脚的封装中,最多可使用 46 个 GPIO。由于内置了宽范围的串行通信接口,它们也非常适合于通信网关、协议转换器、嵌入式软modern以及其它各种类型的应用。LPC2124是64管脚封装的,其封装图如图3.3所示。图3.3 LPC2124封装图LPC2124里面最重要的组成部分是寄存器,其部分寄存器功能如表3-1所示。表3.1 管脚连接映射名称描述访问复位值地址PINSEL0管脚选择寄存器0读/写0x0000 00000xE002C000PINSEL1管脚选择寄存器读/写0x1540 00000xE002C004PINSEL2管脚选择寄存器读/写见表63和640xE002C

18、014其管脚功能选择寄存器如表3-2和表3-3所示。表3.2 PINSEL0管脚选择功能PINSEL0管脚名称00011011复位值1:0P0.0GPIO P0.0TXD(UART0)PWM1保留003:2P0.1GPIO P0.1RXD(UART0)PWM3EINT0005:4P0.2GPIO P0.1SCL(C)捕获0.0(TIMER0)保留007:6P0.3GPIO P0.3SDA(C)匹配0.0(TIMER0)EINT1009:8P0.4GPIO P0.4SCK(SPI0)捕获0.1(TIMER0)保留0011:10P0.5GPIO P0.5MIS0(SPI0)匹配0.1(TIMER0

19、)保留0013:12P0.6GPIO P0.6MOSI(SPI0)捕获0.2(TIMER0)保留0015:14P0.7GPIO P0.7SSEL(SPI0)PWM2EINT20017:16P0.8GPIO P0.8TXD(UART1)PWM4保留0019:18P0.9GPIO P0.9RXD(UART1)PWM8保留0021:20P1.0GPIO P1.0RTS(UART1)捕获1.0(TIMER1)保留0023:22P1.1GPIO P1.1CTS(UART1)捕获1.1(TIMER1)保留0025:24P1.2GPIO P1.2DSR(UART1)匹配1.0(TIMER1)保留0027:2

20、6P1.3GPIO P1.3DTR(UART1)匹配1.1(TIMER1)保留0029:28P1.4GPIO P1.4CD(UART1)EINT1保留0031:30P1.5GPIO P1.5RI(UART1)EINT2保留00表3.3 PINSEL1管脚选择功能PINSEL1管脚名称00011011复位值1:0P0.16GPIO P0.16EINT0PWM1捕获0.2(TIMER0)003:2P0.17GPIO P0.17捕获1.2(TIMER1)PWM3匹配1.2(TIMER1)005:4P0.18GPIO P0.18捕获1.3(TIMER1)捕获0.0(TIMER0)匹配1.3(TIMER

21、1)007:6P0.19GPIO P0.19匹配1.2(TIMER1)匹配0.0(TIMER0)匹配1.3(TIMER1)009:8P0.20GPIO P0.20匹配1.3(TIMER1)捕获0.1(TIMER0)EINT30011:10P0.21GPIO P0.21PWM5保留捕获1.3(TIMER1)0013:12P0.22GPIO P0.22保留捕获0.0(TIMER0)匹配0.0(TIMER0)0015:14P0.23GPIO P0.23保留保留保留0017:16P0.24GPIO P0.24保留保留保留0019:18P0.25GPIO P0.25保留保留保留0021:20P1.26保

22、留0023:22P1.27GPIO P1.27AIN0(A/D转换器)捕获0.1(TIMER0)匹配0.1(TIMER0)0125:24P1.28GPIO P1.28AIN1(A/D转换器)匹配0.2(TIMER0)匹配0.2(TIMER0)0127:26P1.29GPIO P1.29AIN2(A/D转换器)匹配0.3(TIMER0)匹配0.3(TIMER0)0129:28P1.30GPIO P1.30AIN3(A/D转换器)EINT3捕获0.0(TIMER0)0131:30P1.31保留003.3.2 LP3228显示屏采用LM3228液晶显示,其拥有微功耗无电磁辐射,寿命长,价格低,接口方

23、便等一系列显著特点,被广泛应用于各种仪器仪表,测量显示装置,计算机显示终端等方面。它是以点阵为单位组成的液晶显示器,内部CMOS驱动,由日本东芝公司T6963C 控制集成电路,印制电路板和金属支持框架所组成。LM3228液晶可以用来显示字母,数字,汉字等,因此可以用LM3228液晶形象的模拟出贪吃蛇的形状和它运动的情况。LM3228的硬件结构图如图3.3所示。图3.3 LM3228的硬件结构图3.3.3 用户操作接口用户操作接口采用的是4×4矩阵键盘,用户可以通过操纵键盘控制贪吃蛇的游动方向,控制方向如表3-4所示:表3.4贪吃蛇方向控制8贪吃蛇向上运动2贪吃蛇向下运动4贪吃蛇向左运

24、动6贪吃蛇向右运动5暂停/继续游戏矩阵键盘原理图如图3.5所示:图3.5 矩阵键盘原理图矩阵键盘的工作原理如下:(1)先读取键盘的状态,得到按键的特征编码。先从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状态。再从P1口的低四位输出低电平,高四位输出高电平,从P1口的高四位读取键盘状态。将两次读取结果组合起来就可以得到当前按键的特征编码。使用上述方法我们得到16个键的特征编码。(2)根据按键的特征编码,查表得到按键的顺序编码。将16个键的特征编码按顺序排成一张表,然后用当前读得的特征编码来查表,当表中有该特征编码时,它的位置就是对应的顺序编码。(3)根据特征编码与顺序编

25、码的对应关系就可以确定所按下的是哪一个键。4 软件仿真 Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系

26、列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本次实中设计的贪吃蛇电路,电路核心是LPC2124,P0端接液晶显示屏,P1端接的是控制按键,具体仿真电路图请见附录一。5 系统的软件设计与实现5.1 游戏说明游戏目标是控制贪吃蛇吃掉画面中的目标豆,每吃掉一

27、个目标豆就会加分,但同时贪吃蛇的尾巴会相应地长上一截,吃得越多,尾巴越长。游戏中,贪吃蛇碰上了自己的身体游戏即结束。分数增加到一定后,贪吃蛇移动的速度增加,从而逐步增加游戏的难度。5.2 游戏结构设计游戏主要分为A、B、C三个模块。A模块主要用于控制游戏的开始、暂停与结束,这些方法与其他程序相同。B模块主要用于完成游戏的主要功能,包括了蛇体控制,目标豆的摆放,游戏控制,屏幕绘制等。C模块主要用于完成蛇体在屏幕上的定位。5.3 游戏具体设计5.3.1 矩阵键盘按键扫描子程序用户设计行列键盘接口,一般常采用3种方法读取键值。分别为:中断式,扫描法和反转法。(1)中断式:在键盘按下时产生一个外部中断

28、通知CPU,并由中断处理程序通过不同的地址读取数据线上的状态,判断哪个按键被按下。(2)扫描法:对键盘上的某一行送低电平,其他行为高电平,然后读取列值。若列值中有一位是低,则表明该行与低电平对应列的键被按下;否则,扫描下一行。(3)反转法:先将所有行扫描线输出低电平,读列值。若列值有一位是底,则表明有键按下,读列值;然后所有列扫描线输出低电平,再读行值。根据读到的值组合就可以查表得到键值。在本次实训中我们采用的是反转法,其硬件连接请见图3.5。关键代码如下所示,具体可见源代码。uint8Keyboard_Scan(void)uint8 keycode = 0xff;uint8 row;uint

29、8 col;for(col=0;col<KEYBOARD_COLUMN;col+) Column_Clear(col); for(row=0;row<KEYBOARD_ROW;row+) if(Row_Status(row)=0) keycode = row*KEYBOARD_ROW+col; Column_Set(col);return keycode;5.3.2 矩阵键盘处理子程序主要是对键盘扫描子程序返回的键值进行处理,为了程序化模块化,处理返回的键值时调用了各个键的处理函数,这里就不给出具体的处理函数了,具体可见源代码。void Key_Process(uint8 num)

30、 /num为键盘扫描子程序返回的键值 switch(num) case 1:up();break; /向上case 4:left();break; /向左case 5:pause();break; /暂停case 6:right();break; /向右case 9:down(); break; /向下 default:move();break; /默认为自动移动 5.3.3 LCD显示子程序这部分的处理是在文件LOADBIT.C中完成。子程序的功能为显示单色图形及汉字显示。实现的流程是先将图形转换为对应的点阵数组,然后即可调用LM3228的设备驱动程序中的函数输出驱动。本次实训中采用LM32

31、28的显示屏,图形液晶模块驱动程序要考虑它的操制器,要参考它的DataSheet来设计,这部分程序具体可见源代码。5.3.4 主程序流程主程序 在main.c中,它的程序流程如图5.3所示。图5.3 主程序流6 程序测试6.1 仿真测试由于ARM芯片管脚比较多,而且很多元器件都是贴片元件,做成电路板比较困难,由于资源等客观限制,所以在这里只进行仿真测试。测试将粗略检测贪吃蛇游戏的5项基本功能:向上,向下,向左,向右和暂停功能。这里将测试贪吃蛇向右运动的情况,如图6.1所示。图6.1 贪吃蛇向右运动测试结果:在按了矩阵键盘的”6”号键之后,贪吃蛇开始向右运动,测试成功。然后再测试贪吃蛇

32、小游戏的暂停和继续功能,按了一次矩阵键盘的”5”号键之后,贪吃蛇停止运动,再按一次矩阵键盘的”5”号键,贪吃蛇又继续运动,测试成功。6.2 程序的局限性由于时间的局限性和个人能力的局限性,这个程序中检测出不少局限性,如下所述。(1)在算法实现上,未充分考虑贪吃蛇碰壁的情况,只是简单的让贪吃蛇穿过墙壁,没做其他处理。(2)贪吃蛇在运动时可以改变至相反方向,即存在掉头情况。(3)贪吃蛇吃到自己尾巴的时候,有时会分成两截,有待改进。7 总结本次实践,我选的题目是基于LPC2124实现的贪吃蛇游戏机。因为课题贪吃蛇游戏比较难,此次实践我多方请教同学。这次实践,我们可谓历经重重困难。第一阶段是方案确定,我们花了大量时间采集资料,整理资料,首先是确定自己的课题,最后着手设计。在第二阶段将我们的原理图设计好。然后进入第三阶段软件的编程。但是在编写程序时,困难时刻困扰着我,可能是因为自己平时不太注重动手能力的培养,在实践过程中遇到了好多问题。我们通过虚心请教计算机专业的同学和老师,用自己所学的知识分析后及时改正错误,通过再次不断的修改原理图,请教,再修改程序,但是在程序编写部分我还是困难重重。当自己着手编写程序时,通过采集到的资料进行修改,通过不断的运行调试,仿真。按照自己的设计构思,经过一系列的测试工作,我们终于解决了贪吃蛇小游戏中发生的部分错误,完善该小游戏的基本功能。在测试过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论