为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

嵌入式ARM的贪吃蛇游戏

2019-09-20 25页 doc 133KB 30阅读

用户头像

is_153723

暂无简介

举报
嵌入式ARM的贪吃蛇游戏编号:                嵌入式系统说明书 题    目:          贪吃蛇游戏          院 (系):                    专    业:              学生姓名:                        学    号:              指导教师:                    摘  要 在电脑极大普及的今天,游戏是我们日常生活的重要娱乐方式。随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪...
嵌入式ARM的贪吃蛇游戏
编号:                嵌入式系统书 题    目:          贪吃蛇游戏          院 (系):                    专    业:              学生姓名:                        学    号:              指导教师:                    摘  要 在电脑极大普及的今天,游戏是我们日常生活的重要娱乐方式。随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。随便计算机技术的发展,游戏行业越来越得到人们的关注,特别是在年轻人行列。现行的游戏一般是基于个人计算机的,像贪吃蛇这类小游戏在高档掌上电脑或高档电子消费品,但基于小型掌上低端游戏机在市场上却几乎没有。 本文以飞利浦公司的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    Keil介绍    2 2.2    ADS介绍    2 3  系统的硬件设计    3 3.1    电路设计框图    3 3.2    系统硬件概述    3 3.3    系统主要硬件    3 3.3.1    LPC2124    3 3.3.2    LP3228显示屏    6 3.3.3    用户操作接口    7 4  软件仿真    7 5  系统的软件设计与实现    8 5.1    游戏说明    8 5.2    游戏结构设计    8 5.3    游戏具体设计    8 5.3.1    矩阵键盘按键扫描子程序    8 5.3.2    矩阵键盘处理子程序    9 5.3.3    LCD显示子程序    10 5.3.4    主程序流程    10 6  程序测试    11 6.1 仿真测试    11 6.2 程序的局限性    11 7  总结    12 谢  辞    13 参考文献    14 附  录    15 附录一 统仿真电路图    15 附录二 程序文件清单    16 附录三 使用说明书    17 引言 基于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技术形成了从一个芯片设计、生产、销售,工具软件设计与开发,系统软件开发以及应用软件开发的庞大产业链。说ARM代表着以ARM为核心的软硬件开发技术也不为过。 2 ARM的开发环境 2.1 Keil介绍 uVision3集成开发环境(uVision3 IDE)是一个窗口化的软件开发平台,它集成了功能强大的编辑器、工程管理器以及各种编译工具(包括C编译器、宏编译器、链接/装载器和十六进制文件转换器)。uVision3包括以下功能组件,能加速嵌入式应用程序的开发过程: (1)功能强大的源代码编辑器; (2)可根据开发工具配置的设备数据库; (3)用于创建和维护工程的工程管理器; (4)集汇编、编译和链接过程于一体的编译工具; (5)用于设置开发工具配置的对话框; (6)真正集成高速CPU及片上外设模拟器的源码级调试器; (7)高级GDI接口;可用于目标硬件的软件调试和KEIL ULINK仿真器的连接; (8)用于下载应用程序到FLASH ROM中的FLASH编程器; (9)完善的开发工具手册、设备数据手册和用户向导。 uVision3 IDE使用简单、功能强大,是设计者完成设计任务的重要保证。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上运行。这里将简单介绍使用 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开发包 一些底层的例程,实用程序(如fromELF) 一些实用程序由CodeWarrior IDE 调用 ARM应用库 C、C++函数库等 用户程序使用       3系统的硬件设计 3.1 电路设计框图 系统以LPC2124ARM芯片作为核心控制器件,外围只有液晶显示和键盘操作,且均为串行通信器件,使得系统线路简单可靠性高。系统结构框图3.1所示。 图3.1系统结构框图 3.2 系统硬件概述 本电路由ARM芯片LPC2124为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;液晶显示部份由LM2124液晶显示器作为显示,因其具有很多优点,被广泛使用;按键部分我们使用矩阵键盘,因其使用方便,且便于记住,所以我们使用矩阵键盘而不是用独立键盘。 3.3 系统主要硬件 3..1 LPC2124 LPC2124 是基于一个支持实时仿真和跟踪的 16/32 位 ARM7TDMI-STM CPU 的微控制器,并带有128/256 k字节(kB)嵌入的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用 16 位 Thumb 模式将代码规模降低超过30%,而性能的损失却很小。 由于LPC2124较小的 64脚封装、极低的功耗、多个 32 位定时器、4 路 10 位ADC以及多达9个外部中断使它们特别适用于工业控制、医疗系统、访问控制和POS机。 在 64 脚的封装中,最多可使用 46 个 GPIO。由于内置了宽范围的串行通信接口,它们也非常适合于通信网关、协议转换器、嵌入式软modern以及其它各种类型的应用。 LPC2124是64管脚封装的,其封装图如图3.3所示。 图3.3 LPC2124封装图 LPC2124里面最重要的组成部分是寄存器,其部分寄存器功能如表3-1所示。 表3.1 管脚连接映射 名称 描述 访问 复位值 地址 PINSEL0 管脚选择寄存器0 读/写 0x0000 0000 0xE002C000 PINSEL1 管脚选择寄存器 读/写 0x1540 0000 0xE002C004 PINSEL2 管脚选择寄存器 读/写 见表63和64 0xE002C014           其管脚功能选择寄存器如表3-2和表3-3所示。 表3.2 PINSEL0管脚选择功能 PINSEL0 管脚名称 00 01 10 11 复位值 1:0 P0.0 GPIO P0.0 TXD(UART0) PWM1 保留 00 3:2 P0.1 GPIO P0.1 RXD(UART0) PWM3 EINT0 00 5:4 P0.2 GPIO P0.1 SCL( C) 捕获0.0(TIMER0) 保留 00 7:6 P0.3 GPIO P0.3 SDA( C) 匹配0.0(TIMER0) EINT1 00 9:8 P0.4 GPIO P0.4 SCK(SPI0) 捕获0.1(TIMER0) 保留 00 11:10 P0.5 GPIO P0.5 MIS0(SPI0) 匹配0.1(TIMER0) 保留 00 13:12 P0.6 GPIO P0.6 MOSI(SPI0) 捕获0.2(TIMER0) 保留 00 15:14 P0.7 GPIO P0.7 SSEL(SPI0) PWM2 EINT2 00 17:16 P0.8 GPIO P0.8 TXD(UART1) PWM4 保留 00 19:18 P0.9 GPIO P0.9 RXD(UART1) PWM8 保留 00 21:20 P1.0 GPIO P1.0 RTS(UART1) 捕获1.0(TIMER1) 保留 00 23:22 P1.1 GPIO P1.1 CTS(UART1) 捕获1.1(TIMER1) 保留 00 25:24 P1.2 GPIO P1.2 DSR(UART1) 匹配1.0(TIMER1) 保留 00 27:26 P1.3 GPIO P1.3 DTR(UART1) 匹配1.1(TIMER1) 保留 00 29:28 P1.4 GPIO P1.4 CD(UART1) EINT1 保留 00 31:30 P1.5 GPIO P1.5 RI(UART1) EINT2 保留 00               表3.3 PINSEL1管脚选择功能 PINSEL1 管脚名称 00 01 10 11 复位值 1:0 P0.16 GPIO P0.16 EINT0 PWM1 捕获0.2(TIMER0) 00 3:2 P0.17 GPIO P0.17 捕获1.2(TIMER1) PWM3 匹配1.2(TIMER1) 00 5:4 P0.18 GPIO P0.18 捕获1.3(TIMER1) 捕获0.0(TIMER0) 匹配1.3(TIMER1) 00 7:6 P0.19 GPIO P0.19 匹配1.2(TIMER1) 匹配0.0(TIMER0) 匹配1.3(TIMER1) 00 9:8 P0.20 GPIO P0.20 匹配1.3(TIMER1) 捕获0.1(TIMER0) EINT3 00 11:10 P0.21 GPIO P0.21 PWM5 保留 捕获1.3(TIMER1) 00 13:12 P0.22 GPIO P0.22 保留 捕获0.0(TIMER0) 匹配0.0(TIMER0) 00 15:14 P0.23 GPIO P0.23 保留 保留 保留 00 17:16 P0.24 GPIO P0.24 保留 保留 保留 00 19:18 P0.25 GPIO P0.25 保留 保留 保留 00 21:20 P1.26 保留 00 23:22 P1.27 GPIO P1.27 AIN0(A/D转换器) 捕获0.1(TIMER0) 匹配0.1(TIMER0) 01 25:24 P1.28 GPIO P1.28 AIN1(A/D转换器) 匹配0.2(TIMER0) 匹配0.2(TIMER0) 01 27:26 P1.29 GPIO P1.29 AIN2(A/D转换器) 匹配0.3(TIMER0) 匹配0.3(TIMER0) 01 29:28 P1.30 GPIO P1.30 AIN3(A/D转换器) EINT3 捕获0.0(TIMER0) 01 31:30 P1.31 保留 00               3.3.2 LP3228显示屏 采用LM3228液晶显示,其拥有微功耗无电磁辐射,寿命长,价格低,接口方便等一系列显著特点,被广泛应用于各种仪器仪表,测量显示装置,计算机显示终端等方面。它是以点阵为单位组成的液晶显示器,内部CMOS驱动,由日本东芝公司T6963C 控制集成电路,印制电路板和金属支持框架所组成。LM3228液晶可以用来显示字母,数字,汉字等,因此可以用LM3228液晶形象的模拟出贪吃蛇的形状和它运动的情况。 LM3228的硬件结构图如图3.3所示。 图3.3 LM3228的硬件结构图 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)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和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)扫描法:对键盘上的某一行送低电平,其他行为高电平,然后读取列值。若列值中有一位是低,则表明该行与低电平对应列的键被按下;否则,扫描下一行。 (3)反转法:先将所有行扫描线输出低电平,读列值。若列值有一位是底,则表明有键按下,读列值;然后所有列扫描线输出低电平,再读行值。根据读到的值组合就可以查表得到键值。 在本次实训中我们采用的是反转法,其硬件连接请见图3.5。 关键代码如下所示,具体可见源代码。 uint8    Keyboard_Scan(void) { uint8 keycode = 0xff; uint8 row; uint8 col; for(col=0;col声明
文件 lcmdrv.h 液晶模块驱动程序声明文件 Loadbit.h 显示单色图形及汉字显示声明文件 keyboard.h 键盘驱动程序声明文件 LPC2124.h LPC2124寄存器定义文件 target.h 目标板特殊的代码头文件 GUI_StockC.C 设置前景色及背景色变量实现文件 loadbit.c 显示单色图形及汉字显示实现文件 lcmdrv.c 液晶模块驱动程序实现文件 resource.c 资源定义文件 keyboard.c 键盘驱动程序实现文件 main.c 主函数所在的文件 IRQ.s 中断处理代码文件 Startup.s LPC2124启动代码文件 Target.c 目标板特殊的代码实现文件     附录三 使用说明书 贪吃蛇小游戏简单易玩,矩阵键盘的2 ,4,6, 8键分别使蛇向下,左,右,上方运动,按5键为暂停/继续游戏,在游戏过程中贪吃蛇吃到东西身体会变长,身体长度长到一定程序贪吃蛇运动的速度就加快,游戏的难度就增加,总的来说这款贪吃蛇小游戏比其他的更简单更容易上手。
/
本文档为【嵌入式ARM的贪吃蛇游戏】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索