版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编号:嵌入式系统开发实训(论文)说明书题目:贪吃蛇游戏院〔系〕:专业:电子信息工程学生姓名:学号:指导教师:20摘要在电脑极大普及的今天,游戏是我们日常生活的重要娱乐方式。随着科技的快速开展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。随便计算机技术的开展,游戏行业越来越得到人们的关注,特别是在年轻人行列。现行的游戏一般是基于个人计算机的,像贪吃蛇这类小游戏在高档掌上电脑或高档电子消费品,但基于小型掌上低端游戏机在市场上却几乎没有。本文以飞利浦公司的LPC2124芯片板为平台,在讨论ARM体系结构和游戏开发的同时,设计并实现了贪吃蛇游戏机的软件仿真。综上所述此类贪吃蛇游戏机具有使用方便,绿色平安,低功耗、本钱低廉等诸多优点,符合电子仪器仪表的开展趋势,具有广阔的市场前景。关键词:ARM;低功耗;游戏;贪吃蛇;LPC2124AbstractInthegreatpopularityofcomputerstoday,gamesareimportantformsofentertainmentinourdailylives,Withtherapiddevelopmentofscienceandtechnology,thepassageoftime,fromconcepttothesun,theelectronicclockpendulumclocktonow,humanconstantresearch,innovationrecord.Notthedevelopmentofcomputertechnology,gamesindustryhasbeengrowingconcern,especiallyamongyoungpeople.Thecurrentgameingeneralisbasedonthepersonalcomputer,suchasSnakegameinthehigh-endhigh-endPocketPCorconsumerelectronics,butbasedonsmall-scalelow-endhandheldgameinthemarketisvirtuallynon-existent.
Inthispaper,PhilipsLPC2124chipboardasaplatform,indiscussingtheARMarchitectureandgamedevelopment,designandrealizationoftheSnakegamesimulationsoftware.
TosumupsuchaSnakegamewitheasy-to-use,greensafe,low-power,lowcostandmanyotheradvantages,inlinewiththeelectronicinstrumentationofthedevelopmenttrendofthemarketprospectsarebroad.Keywords:ARM;Lowpowerconsumption;Game;Greedysnake;LPC2124目录引言11ARM概述12ARM的开发环境22.1Keil介绍22.2ADS介绍23系统的硬件设计33.1电路设计框图33.2系统硬件概述33.3系统主要硬件3LPC21243LP3228显示屏6用户操作接口74软件仿真75系统的软件设计与实现85.1游戏说明85.2游戏结构设计85.3游戏具体设计8矩阵键盘按键扫描子程序8矩阵键盘处理子程序9LCD显示子程序10主程序流程106程序测试116.1仿真测试116.2程序的局限性117总结12谢辞13参考文献14附录15附录一统仿真电路图15附录二程序文件清单16附录三使用说明书17引言基于ARM芯片的产品凭借其强大的功能、低廉的价格和体积小等优点,在许多领域得到了广泛的应用。而当前在游戏开发中,ARM并没有充分显示出它的这些特点。而彩色液晶显示器具有功耗低、显示信息量大、显示效果逼真等特点。所以假设用彩色液晶显示器为游戏提供界面一会受到欢送。液晶显示屏LCD作为一种功耗低、体积小、无辐射的显示器件,近几年被广泛应用于各式各样的嵌入式电子产品中,LCD可分为段位式、字符式和点阵式三种,其中,段位式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求,而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动动画功能,分区开窗口、反转、闪烁等功能,用途十分广泛,为了简化液晶显示电路的设计和应用,生产厂家通常将液晶显示单元、显示控制器,显示内存和显示驱动电路等装配在一起,做成液晶显示模块LCDModule〔LCM〕。目前,基于ARM芯片的产品遍布人类生活空间,在移动娱乐工具上应用广泛,特别在游戏制作方面越来越收人们的欢送。ARM概述ARM〔AdvancedRISCMachines〕,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权〔IP〕核的微处理器,即我们通常所说的ARM微处理器,已普及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供给商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购置其设计的ARM微处理器核,根据各自不同的应用领域,参加适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统本钱降低,使产品更容易进入市场被消费者所接受,更具有竞争力。ARM公司出售芯片技术授权给半导体公司,ARM核因为具有高性能、低本钱、低功耗的特点而被广采用。这样在全球范围内围绕着ARM技术形成了从一个芯片设计、生产、销售,工具软件设计与开发,系统软件开发以及应用软件开发的庞大产业链。说ARM代表着以ARM为核心的软硬件开发技术也不为过。ARM的开发环境Keil介绍uVision3集成开发环境〔uVision3IDE〕是一个窗口化的软件开发平台,它集成了功能强大的编辑器、工程管理器以及各种编译工具〔包括C编译器、宏编译器、链接/装载器和十六进制文件转换器〕。uVision3包括以下功能组件,能加速嵌入式应用程序的开发过程:〔1〕功能强大的源代码编辑器;〔2〕可根据开发工具配置的设备数据库;〔3〕用于创立和维护工程的工程管理器;〔4〕集汇编、编译和链接过程于一体的编译工具;〔5〕用于设置开发工具配置的对话框;〔6〕真正集成高速CPU及片上外设模拟器的源码级调试器;〔7〕高级GDI接口;可用于目标硬件的软件调试和KEILULINK仿真器的连接;〔8〕用于下载应用程序到FLASHROM中的FLASH编程器;〔9〕完善的开发工具手册、设备数据手册和用户向导。uVision3IDE使用简单、功能强大,是设计者完成设计任务的重要保证。uVision3IDE还提供了大量的例程及相关信息,有助于开发人员快速开发嵌入式应用程序。ADS介绍ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具,英文全称为ARMDeveloperSuite,成熟版本为ADS1.2。ADS1.2支持ARM10之前的所有ARM系列微控制器,支持软件调试及JTAG硬件仿真调试,支持汇编、C、C++源程序,具有编译效率高、系统库功能强等特点,可以在Windows98、WindowsXP、Windows2000以及RedHatLinux上运行。这里将简单介绍使用ADS1.2建立工程,编译连接设置,调试操作等等。最后还介绍了基于LPC2200系列ARM7微控制器的工程模板的使用,EasyJTAG仿真器的安装与使用。ADS1.2由6个局部组成,如表2.1所示。表2.1ADS1.2组成表名称描述使用方式代码生产工具ARM汇编去,ARM的C、C++编译器,Thumb的C、C++编译器,ARM连接器由CodeWarriorIDE调用集成开发环境CodeWarriorIDE工程管理,编译连接调试器AXD,ADW/ADU,armsd仿真调试指令模拟器ARMulator由AXD调用ARM开发包一些底层的例程,实用程序〔如fromELF〕一些实用程序由CodeWarriorIDE调用ARM应用库C、C++函数库等用户程序使用系统的硬件设计电路设计框图系统以LPC2124ARM芯片作为核心控制器件,外围只有液晶显示和键盘操作,且均为串行通信器件,使得系统线路简单可靠性高。系统结构框图3.1所示。ARMARMLPC212主控液晶显示键盘输入液晶显示键盘输入图3.1系统结构框图系统硬件概述本电路由ARM芯片LPC2124为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;液晶显示部份由LM2124液晶显示器作为显示,因其具有很多优点,被广泛使用;按键局部我们使用矩阵键盘,因其使用方便,且便于记住,所以我们使用矩阵键盘而不是用独立键盘。系统主要硬件LPC2124LPC2124是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-STMCPU的微控制器,并带有128/256k字节(kB)嵌入的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小。由于LPC2124较小的64脚封装、极低的功耗、多个32位定时器、4路10位ADC以及多达9个外部中断使它们特别适用于工业控制、医疗系统、访问控制和POS机。在64脚的封装中,最多可使用46个GPIO。由于内置了宽范围的串行通信接口,它们也非常适合于通信网关、协议转换器、嵌入式软modern以及其它各种类型的应用。LPC2124是64管脚封装的,其封装图如图3.3所示。图3.3LPC2124封装图LPC2124里面最重要的组成局部是存放器,其局部存放器功能如表3-1所示。表3.1管脚连接映射名称描述访问复位值地址PINSEL0管脚选择存放器0读/写0x000000000xE002C000PINSEL1管脚选择存放器读/写0x154000000xE002C004PINSEL2管脚选择存放器读/写见表63和640xE002C014其管脚功能选择存放器如表3-2和表3-3所示。表3.2PINSEL0管脚选择功能PINSEL0管脚名称00011011复位值1:0P0.0GPIOP0.0TXD(UART0)PWM1保存003:2P0.1GPIOP0.1RXD(UART0)PWM3EINT0005:4P0.2GPIOP0.1SCL(C)捕获0.0〔TIMER0〕保存007:6P0.3GPIOP0.3SDA(C)匹配0.0〔TIMER0〕EINT1009:8P0.4GPIOP0.4SCK(SPI0)捕获0.1〔TIMER0〕保存0011:10P0.5GPIOP0.5MIS0(SPI0)匹配0.1〔TIMER0〕保存0013:12P0.6GPIOP0.6MOSI(SPI0)捕获0.2〔TIMER0〕保存0015:14P0.7GPIOP0.7SSEL(SPI0)PWM2EINT20017:16P0.8GPIOP0.8TXD(UART1)PWM4保存0019:18P0.9GPIOP0.9RXD(UART1)PWM8保存0021:20P1.0GPIOP1.0RTS(UART1)捕获1.0〔TIMER1〕保存0023:22P1.1GPIOP1.1CTS(UART1)捕获1.1〔TIMER1〕保存0025:24P1.2GPIOP1.2DSR(UART1)匹配1.0〔TIMER1〕保存0027:26P1.3GPIOP1.3DTR(UART1)匹配1.1〔TIMER1〕保存0029:28P1.4GPIOP1.4CD(UART1)EINT1保存0031:30P1.5GPIOP1.5RI(UART1)EINT2保存00表3.3PINSEL1管脚选择功能PINSEL1管脚名称00011011复位值1:0P0.16GPIOP0.16EINT0PWM1捕获0.2〔TIMER0〕003:2P0.17GPIOP0.17捕获1.2〔TIMER1〕PWM3匹配1.2〔TIMER1〕005:4P0.18GPIOP0.18捕获1.3〔TIMER1〕捕获0.0〔TIMER0〕匹配1.3〔TIMER1〕007:6P0.19GPIOP0.19匹配1.2〔TIMER1〕匹配0.0〔TIMER0〕匹配1.3〔TIMER1〕009:8P0.20GPIOP0.20匹配1.3〔TIMER1〕捕获0.1〔TIMER0〕EINT30011:10P0.21GPIOP0.21PWM5保存捕获1.3〔TIMER1〕0013:12P0.22GPIOP0.22保存捕获0.0〔TIMER0〕匹配0.0〔TIMER0〕0015:14P0.23GPIOP0.23保存保存保存0017:16P0.24GPIOP0.24保存保存保存0019:18P0.25GPIOP0.25保存保存保存0021:20P1.26保存0023:22P1.27GPIOP1.27AIN0(A/D转换器)捕获0.1〔TIMER0〕匹配0.1〔TIMER0〕0125:24P1.28GPIOP1.28AIN1(A/D转换器)匹配0.2〔TIMER0〕匹配0.2〔TIMER0〕0127:26P1.29GPIOP1.29AIN2(A/D转换器)匹配0.3〔TIMER0〕匹配0.3〔TIMER0〕0129:28P1.30GPIOP1.30AIN3(A/D转换器)EINT3捕获0.0〔TIMER0〕0131:30P1.31保存00LP3228显示屏采用LM3228液晶显示,其拥有微功耗无电磁辐射,寿命长,价格低,接口方便等一系列显著特点,被广泛应用于各种仪器仪表,测量显示装置,计算机显示终端等方面。它是以点阵为单位组成的液晶显示器,内部CMOS驱动,由日本东芝公司T6963C控制集成电路,印制电路板和金属支持框架所组成。LM3228液晶可以用来显示字母,数字,汉字等,因此可以用LM3228液晶形象的模拟出贪吃蛇的形状和它运动的情况。LM3228的硬件结构图如图3.3所示。图3.3LM3228的硬件结构图用户操作接口用户操作接口采用的是4×4矩阵键盘,用户可以通过操纵键盘控制贪吃蛇的游动方向,控制方向如表3-4所示:表3.4贪吃蛇方向控制8贪吃蛇向上运动2贪吃蛇向下运动4贪吃蛇向左运动6贪吃蛇向右运动5暂停/继续游戏矩阵键盘原理图如图3.5所示:图3.5矩阵键盘原理图矩阵键盘的工作原理如下:〔1〕先读取键盘的状态,得到按键的特征编码。先从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状态。再从P1口的低四位输出低电平,高四位输出高电平,从P1口的高四位读取键盘状态。将两次读取结果组合起来就可以得到当前按键的特征编码。使用上述方法我们得到16个键的特征编码。〔2〕根据按键的特征编码,查表得到按键的顺序编码。将16个键的特征编码按顺序排成一张表,然后用当前读得的特征编码来查表,当表中有该特征编码时,它的位置就是对应的顺序编码。〔3〕根据特征编码与顺序编码的对应关系就可以确定所按下的是哪一个键。软件仿真ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、存放器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。④具有强大的原理图绘制功能。该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本次实中设计的贪吃蛇电路,电路核心是LPC2124,P0端接液晶显示屏,P1端接的是控制按键,具体仿真电路图请见附录一。系统的软件设计与实现游戏说明游戏目标是控制贪吃蛇吃掉画面中的目标豆,每吃掉一个目标豆就会加分,但同时贪吃蛇的尾巴会相应地长上一截,吃得越多,尾巴越长。游戏中,贪吃蛇碰上了自己的身体游戏即结束。分数增加到一定后,贪吃蛇移动的速度增加,从而逐步增加游戏的难度。游戏结构设计游戏主要分为A、B、C三个模块。A模块主要用于控制游戏的开始、暂停与结束,这些方法与其他程序相同。B模块主要用于完成游戏的主要功能,包括了蛇体控制,目标豆的摆放,游戏控制,屏幕绘制等。C模块主要用于完成蛇体在屏幕上的定位。游戏具体设计矩阵键盘按键扫描子程序用户设计行列键盘接口,一般常采用3种方法读取键值。分别为:中断式,扫描法和反转法。〔1〕中断式:在键盘按下时产生一个外部中断通知CPU,并由中断处理程序通过不同的地址读取数据线上的状态,判断哪个按键被按下。〔2〕扫描法:对键盘上的某一行送低电平,其他行为高电平,然后读取列值。假设列值中有一位是低,那么说明该行与低电平对应列的键被按下;否那么,扫描下一行。〔3〕反转法:先将所有行扫描线输出低电平,读列值。假设列值有一位是底,那么说明有键按下,读列值;然后所有列扫描线输出低电平,再读行值。根据读到的值组合就可以查表得到键值。在本次实训中我们采用的是反转法,其硬件连接请见图3.5。关键代码如下所示,具体可见源代码。uint8 Keyboard_Scan(void){ uint8keycode=0xff; uint8row; uint8col; 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); } returnkeycode;}矩阵键盘处理子程序 主要是对键盘扫描子程序返回的键值进行处理,为了程序化模块化,处理返回的键值时调用了各个键的处理函数,这里就不给出具体的处理函数了,具体可见源代码。voidKey_Process(uint8num)//num为键盘扫描子程序返回的键值{switch(num){ case1:up();break; //向上 case4:left();break;//向左 case5:pause();break;//暂停 case6:right();break;//向右 case9:down();break;//向下 default:move();break;//默认为自动移动 }}LCD显示子程序这局部的处理是在文件LOADBIT.C中完成。子程序的功能为显示单色图形及汉字显示。实现的流程是先将图形转换为对应的点阵数组,然后即可调用LM3228的设备驱动程序中的函数输出驱动。本次实训中采用LM3228的显示屏,图形液晶模块驱动程序要考虑它的操制器,要参考它的DataSheet来设计,这局部程序具体可见源代码。主程序流程 主程序在main.c中,它的程序流程如图5.3所示。图5.3主程序流程图程序测试仿真测试由于ARM芯片管脚比拟多,而且很多元器件都是贴片元件,做成电路板比拟困难,由于资源等客观限制,所以在这里只进行仿真测试。测试将粗略检测贪吃蛇游戏的5项根本功能:向上,向下,向左,向右和暂停功能。这里将测试贪吃蛇向右运动的情况,如图6.1所示。图6.1贪吃蛇向右运动测试结果:在按了矩阵键盘的〞6〞号键之后,贪吃蛇开始向右运动,测试成功。然后再测试贪吃蛇小游戏的暂停和继续功能,按了一次矩阵键盘的〞5〞号键之后,贪吃蛇停止运动,再按一次矩阵键盘的〞5〞号键,贪吃蛇又继续运动,测试成功。程序的局限性由于时间的局限性和个人能力的局限性,这个程序中检测出不少局限性,如下所述。〔1〕在算法实现上,未充分考虑贪吃蛇碰壁的情况,只是简单的让贪吃蛇穿过墙壁,没做其他处理。〔2〕贪吃蛇在运动时可以改变至相反方向,即存在掉头情况。〔3〕贪吃蛇吃到自己尾巴的时候,有时会分成两截,有待改良。总结本次实训的主题是基于LPC2124实现的贪吃蛇游戏机。因为课题贪吃蛇游戏比拟难,此次实训我多方请教同学。这次实训,我们可谓历经重重困难。第一阶段是方案确定,我们花了大量时间采集资料,整理资料,首先是确定自己的课题,最后着手设计。在第二阶段将我们的原理图设计好。然后进入第三阶段软件的编程。但是在编写程序时,困难时刻困扰着我,可能是因为自己平时不太注重动手能力的培养,在实训过程中遇到了好多问题。我们通过虚心请教计算机专业的同学和老师,用自己所学的知识分析后及时改正错误,通过再次不断的修改原理图,请教,再修改程序,但是在程序编写局部我还是困难重重。当自己着手编写程序时,通过采集到的资料进行修改,通过不断的运行调试,仿真。按照自己的设计构思,经过一系列的测试工作,我们终于解决了贪吃蛇小游戏中发生的局部错误,完善该小游戏的根本功能。在测试过程中,面对所遇到的问题,认真分析流程图,根据原理图,认真检查程序流程,并观察各存放器的变化情况,最终能根本实现贪吃蛇小游戏的功能。由于此次实训期间不是考试期间,时间不是很紧迫,但是我们还是分秒必争,有时呆在科协一呆就是一天,经常晚上凌晨两三点才回宿舍。这次实训真的是对我们最大的考验,困难问题的不断出现,让我们应付不过来,因为我们的坚持不懈,相信失败是成功之母,功夫不负有心人,最后终于成功了,成功的喜悦让人舒心。通过这次实训,我觉得对我来说本身就是一个提升。真理正是靠实践而证明的,而成功就是靠自己的摸索而成功的。当自己遇到失败的时候,不要心灰气馁,沉着冷静,认真分析原理,实在不懂虚心向老师和同学学习请教,终会有所收获。在做作品的过程中我学到了很多在课堂上学不到的东西,虽然说这次实训很累。但是在这期间,我感觉真
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年家电维修及保养服务合同书版B版
- 2024年度授权合同授权标的详细描述与授权服务条款3篇
- 2024年度战略合作合同标的商业机密保密协议2篇
- 2024年度保险合同标的保险范围与理赔程序3篇
- 2024年度物业服务合同标的及服务标准2篇
- 2024年度智能家居系统开发服务合同
- 2024年度房地产企业建筑设备租赁合同3篇
- 2024-2025学年新教材高中数学 第4章 概率与统计 4.2 随机变量 4.2.3 第1课时 n次独立重复试验与二项分布说课稿 新人教B版选择性必修第二册
- 2024年度商务代理合同标的为产品代理销售2篇
- 2024年度居间承诺工程项目合同2篇
- 系统集成项目实施方案
- 高中物理知识模型探究与实践-电磁学篇
- 小学数学《比例》大单元教学设计
- 2023-2024学年上海市嘉定区嘉定二中高考语文二模试卷含解析
- 分娩期子宫破裂的健康宣教
- 2024-2025年第一学期秋季学期少先队活动记录
- 永川区实验小学校教师教学述评实施方案
- 《心脏超声基础知识》课件
- 《meta分析入门》课件
- 县城园区招商方案
- 信息技术八年级下册教案全册
评论
0/150
提交评论