1 / 31
文档名称:

嵌入式课设实验报告——贪吃蛇.pdf

格式:pdf   大小:4,132KB   页数:31页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

嵌入式课设实验报告——贪吃蛇.pdf

上传人:1781111**** 2024/4/8 文件大小:4.04 MB

下载得到文件列表

嵌入式课设实验报告——贪吃蛇.pdf

相关文档

文档介绍

文档介绍:该【嵌入式课设实验报告——贪吃蛇 】是由【1781111****】上传分享,文档一共【31】页,该文档可以免费在线阅读,需要了解更多关于【嵌入式课设实验报告——贪吃蛇 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..题目:贪吃蛇游戏设计专业:电子信息工程班级:姓名:、成绩:导师签字:年月日:..任务书题目:贪吃蛇游戏设计参数:(20,20)(200,200)蛇的初始位置坐标(40,20)(30,20)(20,20)蛇的每一节为边长为10的矩形要求:利用嵌入式开发系统设计一个贪吃蛇的小游戏。开始显示为初始界面,然后开始进行游戏。游戏开始出现3节的蛇,一个食物,右边显示得分。当进入游戏后,蛇自动向右前行。通过按键上下左右来控制蛇前行的方向,当蛇吃到食物后,得分加100分,蛇身体变长一节。当蛇在游行过程中撞到墙壁或者自身则游戏结束。日程安排:6月30日:选择课设题目、查阅资料、完成第一步。7月1、2日:完成方案设计。即提出设计思路与软硬件的设计方案。7月3、4日:学****硬件原理7月7、8、9日:根据软件设计方案做软件。7月10日:测试7月11日:完成论文:..目录第一章课题研究·············································································································································第二章设计思路及方案设计···································································································································································································································································第三章硬件设计······································································································································································································第四章软件设计·······························第五章调试与测试·················································································································第六章结论···································参考文献······································:..,加强实际应用和动手实践能力,开始为期2周的课程设计。通过本次课程设计,可以培养独立思考和团队协作能力,巩固基础知识,增强实际应用的灵活性和技巧性,掌握嵌入式软件项目的设计流程,锻炼学生应用已学的知识去解决有针对性的课题的能力。能够对uC/OS-II操作系统进一步学****并且有更深的理解,掌握基本程序设计过程和技巧,掌握基本的分析问题、解决问题的能力,为以后的学****以及做其他课题打下一定的基础。,以计算机技术和网络技术为核心的现代网络技术已在现实生活和生产中得以广泛的使用,休闲类网络游戏集趣味性,娱乐性,互动性和益智性于一体,已经成为多数人群的休闲方式。电脑游戏经过短短30年的发展,已经成为影响公众生活,改变公众娱乐方式的重要产业。过去,人们主要是借助电影、电视、音乐等方式来娱乐。而今天,以游戏为代表的电子娱乐正在成为主流娱乐方式。游戏也正在迅速成长为一个庞大的产业。现在存在着各种各样的游戏版本,同样有很多中设计的方法。其设计可以基于多种平台(例如JAVA、Android等)。我们此次是基于Cortex-M3内核进行设计。ARM公司于2006年推出了Cortex‐M3微处理器核。Cortex-M3是较高效率()低功耗()、短中断延时(最少6周期)、低调试成本的32位标准处理器。Cortex-M3采用的V7M架构和指令集,它的速度比ARM7快三分之一,功耗低四分之三。随着嵌入式系统的发展,以及32位嵌入式处理器和图形显示设备的广泛应用,目标产品对嵌入式技术的要求越来越高。尤其是对人机界面的要求日益剧增。因此提供友好的,易操作的人机界面是十分重要与必须的。而LCD液晶显示屏:..恰恰是一种非常方便的人机界面,因此LCD液晶显示屏在出事后达到了非常广泛的应用。目前,嵌入式系统是近年来发展很快的计算机方面的学科方向,并迅速渗透到控制、自动化、仪器仪表等学科。嵌入式方向包括了软硬件协同设计、嵌入式体系结构、实时操作系统、嵌入式产品设计等方面的知识,大于当代大学生,更需要掌握嵌入式系统设计的典型开发工具和开发核心技术。对于嵌入式市场的发展来说,中国市场的意义更加重大。中国市场对于嵌入式互联网这场革命来说非常关键。勃勃的生机,很好的产业互动,良好的协作精神,中国现在正在形成-个健康的嵌入式的发展模式和转型模式。中国可能是-个引发点,嵌入式市场先在中国蓬勃发展,然后辐射到全球其他地区。,同时考虑到游戏开发过程普遍存在时间长了、成本高、效率低等特点,采用最新的Cortex-M3处理器并结合LCD的种种优势可以使游戏开发时间更短、效率高、成本低、同时也能充分利用新型资源设计出智能化,方便化,快捷化的游戏产品从而很快占领市场取得竞争优势。,利用uC/OS-II的任务管理系统对于所有的任务进行管理调度。新建一个工程模板,添加相应的驱动文件。使用uC/OS-II操作系统进行多任务设计。通过各个任务调度以实现贪吃蛇这款小游戏。开始显示为初始界面,然后开始进行游戏。游戏开始出现3节的蛇,一个食物,右边显示得分。当进入游戏后,蛇自动向右前行。通过按键上下左右来控制蛇前行的方向,当蛇吃到食物后,得分加100分,蛇身体变长一节。当蛇在游行过程中撞到墙壁或者自身则游戏结束。:..-II操作系统、Cortex-M3内核,使用多任务管理进行设计贪吃蛇小游戏。所实现功能包括:1)初始化2)蛇移动功能3)产生食物4)控制蛇移动方向5)、初始化初始化包括了硬件初始化和软件初始化。硬件初始化主要是GPIO和LCD的初始化;软件初始化包括了系统初始化,游戏界面的初始化。在main函数中调用OSInit()函数,进行操作系统的初始化,创建一个StartTask任务,在StartTask任务中开启时钟节拍,完成硬件的配置与初始化,并创建需求的几个任务,其中一个任务完成初始界面的显示。2、蛇移动功能蛇的移动功能是游戏的主体部分。要求蛇可以根据按键控制方向进行转弯和移动。当蛇头撞到边界或者自身时,界面显示游戏结束。当蛇吃掉食物后,蛇的身体增长一个矩形的长度,同时显示新的食物。用边长为10的矩形代表蛇的每一节,起始为3节。首先要判断按键所控制的方向,进而根据按键控制让蛇在一定方向上游动,在显示蛇游动的过程中,:..要根据需求计算蛇头的下一个位置,然后将蛇身中每一节的当前坐标给它的后一节,即蛇身的每一块移动到其前一块的位置,接着把新蛇显示在液晶上。当蛇头撞墙或者撞自身时,将蛇移动任务挂起;执行死亡任务时在液晶上显示GAMEOVER!;蛇每次吃到食物后,蛇的长度增加1,所得的分数加100分,将蛇尾的坐标保留,传给新增的那一节,显示新的食物。3、食物的产生在进入游戏界面后就会显示食物跟一条运动的蛇,蛇每次吃到食物后,就会产生新的食物。本次设计采用一个边长为10的绿色矩形当做食物,通过判断蛇头的坐标是否与食物的坐标重合来控制新食物产生的时间,当蛇头的坐标与食物的坐标重合后,产生新的食物。食物的坐标预先存在固定数组中,每次吃到食物后,在数组中取下一个数做为食物的坐标,将其在液晶中画出来。4、蛇运动方向的确定蛇在左右方向运动时,可按键控制蛇头向上或向下转弯;蛇在上下方向运动时,可按键控制蛇头向左或向右转弯。蛇运动方向由按键控制。首先需有一个按键查询的任务,在此任务中先判断蛇运动的方向,然后判断是否有可以执行的控制方向的按键被按下。如果按下了,则蛇按着此键所控制的方向转弯并继续游动。5、计分数用一个计分的任务来实现。蛇每次吃到食物后,分数增加100。,面向广大的企业客户和STM32爱好者。开发板功能强大,外围资源齐全。此外,还预留了丰富的扩展接口,可以灵活的扩展各种功能。而整版尺寸仅仅110mm*150mm,非常小巧,方便携带。神舟三号STM32开发板的产品外观及对应各功能模块说明如图表1所示:..◆STM32F103系列最高端配置芯片STM32F103ZET6。Cortex-M3内核32位处理器,72M主频,LQFP144封装,片内Flash容量:512K,片内SRAM容量:64K◆标配1G比特容量的NandFlash◆标配16M比特容量的NorFlash,最大支持128M比特容量NorFlash◆标配4M比特容量的SRAM◆标配2K比特容量的I2C接口的EEPROM芯片◆标配16M比特容量的SPIFlash芯片◆采用主流收音机模块,提供收音机功能◆采用专用音频解码芯片,提供音频播放功能◆1个USBSLAVE接口,支持USB过流保护与USB接口静电防护,符合ESD防护标注IEC61000-4-2(ESD15kVair,8kVContact)◆1个10M以太网接口,用于以太网通信◆,支持触摸屏,分辨率320X240,26万色◆1个复位按钮,控制整板硬件复位◆1个5V外部电源输入接口(内正外负)◆1个电源开关,控制整个板的电源开关◆1个标准的JTAG/SWD调试下载口,支持JLINK供电:..)开发平台说明KeiluVision4介绍发展历程:2009年2月发布KeiluVision4,KeiluVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。2011年3月ARM公司发布最新集成开发环境RealViewMDK开发工具中集成了最新版本的KeiluVision4,其编译器、调试工具实现与ARM器件的最完美匹配。目前使用KeiluVision4的产品有KeilMDK-ARM,KeilC51,KeilC166和KeilC251。特征功能最新的KeiluVision4IDE,旨在提高开发人员的生产力,实现更快,更有效的程序开发。uVision4引入了灵活的窗口管理系统,能够拖放到视图内的任何地方,包括支持多显示器窗口。uVision4在μVision3IDE的基础上,增加了更多大众化的功能。·多显示器和灵活的窗口管理系统·系统浏览器窗口的显示设备外设寄存器信息·调试还原视图创建并保存多个调试窗口布局·多项目工作区简化与众多的项目技术支持KeiluVision4由国内米尔科技提供销售和技术支持服务,他们是ARM合作伙伴,也是国内领先的工控板以及嵌入式解决方案提供商。2)开发语言说明C语言是由DennisRichie于1972年在AT&Bell实验室研究成功并投入使用的系统编程语言,其设计目标是使C既具有汇编语言的效率,又具有高级语言的易编程性,其最具代表性的应用是UNIX操作系统。从20世纪80年代中期C语言涉足实时系统后,受到了普遍欢迎。目前是使用最广泛的嵌入式系统编程语言。:..)操作系统说明μ是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。μC/OS-II的前身是μC/OS,《嵌入式系统编程》杂志的5月和6月刊上刊登的文章连载,并把μC/OS的源码发布在该杂志的BBS上。μC/OS和μC/OS-II是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU上。用户只要有标准的ANSI的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB。μC/OS-II已经移植到了几乎所有知名的CPU上。严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。uC/OS-II以源代码的形式发布,是开源软件,但并不意味着它是免费软件。你可以将其用于教学和私下研究(peacefulresearch);但是如果你将其用于商业用途,那么你必须通过Micrium获得商用许可。、初始游戏界面任务(MyTask1)、按键查询任务(MyTask2)、蛇移动任务(MoveTask)、死亡任务(DeadTask)、计分任务(ScoreTask)组成。:..初始游戏界面任务:MyTask1液晶显示初始界面NPD3按下?Y进入游戏界面挂起自身任务延时等待按键查询任务:MyTask2判断蛇当前游动方向判断有效的按键是否按下根据按键控制蛇下一步的游行方向延时等待:..MoveTask判断蛇下一步的游行方向根据确定的游行方向来计算蛇的下一个位置坐标清屏、画出游戏的矩形墙壁、食物N吃到食物?Y蛇身长度加一节分数加100分按着新蛇的坐标画蛇N蛇撞墙或者自身?Y游戏结束执行DeadTask本身任务挂起延时:..,最小系统、RTC及调试接口电路如图所示。引脚资源分配如表所示。:..,分别是WAKEUP按键和TAMPER按键及两个用于自动以功能按键,在不使用第二功能的情况下,这四个按键都可以作为通用的按键,由用户自定义其功能。案件分别是PA0,PC13,PA8,PD3,四个GPIO管脚连接,当按键按下时,对应的GPIO管脚为低电平,反之,当没有按键按下时,对应的GPIO管脚为高电平。:..。,LCD模块上有触摸芯片,将电阻式触摸屏的模拟信号转化为数字信号,处理器通过SPI接口读取芯片转换后的数字,支持查询方式和中断方式。此外,。基于ILI9320驱动芯片的TFT液晶显示模块显示驱动原理:320*240显示屏单点26万色(RGB565)接口:I80(并行)系统接口SPI接口垂直扫描VSYNC接口RGB接口通过写入控制命令到寄存器对液晶进行控制通过写入显示数据到内部GRAM实现显示功能硬件连接如下图::..,如图1-6所示。分别是:USB接口供电,最大500mA。外部直流5V供电。JLINKV8供电,。当CON1电源开关拨到1-2位置时,由外部接口供电。,作为处理器和相关外围电路的工作电源。当CON1电源开关拨到2-3位置时,由USB接口供电。,作为处理器和相关外围电路的工作电源。U11为USB接口的ESD防护电路,满足ESD防护标准IEC61000-4-2(ESD15kVair,8kVContact)。:..USB和供电电路原理图:..、主函数:创建启动任务(StartTask)2、启动任务:实现硬件的初始化,开启时钟节拍,创建5个任务MyTask1、MyTask2、MoveTask、DeadTask、ScoreTask,挂起MoveTask、DeadTask、ScoreTask这3个任务,最后删除任务自身。3、MyTask1:液晶显示游戏的初始界面,判断向右方向键是否按下,若按键按下则进入游戏界面。4、MyTask2:根据蛇游动的方向确定哪个按键按下有效,根据按键来控制蛇下一步游动的方向。5、MoveTask:画出食物与蛇,根据下一步方向确定蛇的新位置,若蛇头撞墙壁或者自身则游戏结束,若蛇吃掉食物则蛇身长度长一节,出现新的食物。6、DeadTask:在液晶屏上输出“GAMEOVER!”。7、ScoreTask:在液晶屏上输出“SCORE”和所得的分数。、主函数:进行操作系统的初始化,创建启动任务(StartTask)开启多任务调度开始声明定义任务的优先级、栈空间、函数名称,定义数组、变量操作系统初始化创建启动任务开启多任务调度:..2、启动任务:GPIO的配置与初始化,LCD初始化,开启时钟节拍,创建5个任务MyTask1、MyTask2、MoveTask、DeadTask、ScoreTask,挂起MoveTask、DeadTask、ScoreTask这3个任务,最后删除任务自身。StartTask配置PA0/PA8/PC13/PD3并初始化初始化LCD开启时钟节拍创建5个任务,分别是MyTask1/MyTask2/MoveTask/DeadTask/ScoreTask,挂起任务MoveTask/DeadTask/ScoreTask,删除任务自身3、MyTask1:液晶显示游戏的初始界面,判断向右方向键是否按下,若按键按下则进入游戏界面,即恢复任务MoveTask与ScoreTask,之后挂起自身,否则保持此游戏初始界面。MyTask1定义变量1:..1液晶显示”START”液晶显示矩形墙壁NPD3引脚为低电平?Y延时去抖NPD3引脚为低电平?Yn=4,即方向(右)恢复任务MoveTask,ScoreTask,挂起自身任务延时进入等待态:..4、MyTask2:先判断当前蛇游动的方向,若为上、下方向游动,则判断控制左、右方向的按键是否按下;若向左、右游动,则判断控制上、下方向的按键是否按下,若对应的按键按下则蛇头转弯然后继续游动。MyTask2N当前蛇游动方向当前蛇游动方向为左或右?为上或下?YYNNNNPA0引脚为PC13引脚为PD3引脚为PA8引脚为低电平?低电平?低电平?低电平?YYYY延时去抖延时去抖延时去抖延时去抖PA0引脚为NPC13引脚为NNPD3引脚为NPA8引脚为低电平?低电平?低电平?低电平?YYYY蛇下一个方向蛇下一个方向蛇下一个方向蛇下一个方向为向上(n=1)为向右(n=4)为向左(n=3)为向下(n=2)延时进入等待态5、MoveTask:给蛇身长度、蛇的位置坐标赋初值,判断蛇下一次要运行的方向,然后计算下一步蛇的每一节的位置坐标,清屏、先画出食物的位置和墙壁,再根:..据计算的坐标值画出新蛇,判断蛇头是否与食物坐标重合,如果重合则分数加100分并且蛇身长度加一节(每节是边长为10的矩形),之后判断蛇是否撞上墙壁和自身,如果撞上了则恢复死亡任务、挂起自身任务,否则蛇继续前行。MoveTask定义蛇的长度和蛇的初始位置NN蛇下一个N蛇下一个N蛇下一个蛇下一个方向为向方向为向方向为向方向为向上n==1?下n==2?左n==3?右n==4?YYYYi=length-1i=length-1i=length-1i=length-1i>0?i>0?i>0?i>0?NYNYNYNYX[i]=X[i-1]X[i]=X[i-1]X[i]=X[i-1]X[i]=X[i-1]Y[i]=Y[i-1]Y[i]=Y[i-1]Y[i]=Y[i-1]Y[i]=Y[i-1]i--i--i--i--X[length]=X[length-1];X[length]=X[length-1];X[length]=X[length-1];X[length]=X[length-1];Y[length]=Y[length-1];Y[length]=Y[length-1];Y[length]=Y[length-1];Y[length]=Y[length-1];调用Draw函数21:..21蛇头撞上墙Y壁?恢复DeadTaskN挂起自身任务Y蛇头撞上自身?恢复DeadTaskN延时进入等待态挂起自身任务Draw函数部分画出矩形墙壁清屏显示白色i=0画出食物Ni<length蛇头坐标与食画出矩形(蛇物坐标重合?的一节)Yi++蛇身长度加1节得分加100结束:..6DeadTask:在液晶屏上输出“GAMEOVER!”。DeadTask定义变量并赋值液晶显示“GAMEOVER!”延时进入等待态7、ScoreTask:在液晶屏上输出“SCORE”和所得的分数。ScoreTask定义变量并赋值液晶显示“SCORE”液晶显示当前分数延时进入等待态:..,就改用矩形框来画蛇,要实现蛇的动作需对蛇的每一个矩形框进行控制,通过坐标的传递可以实现,在老师的帮助下决定用数组记录蛇每一节的位置,这样就可以清除尾端,实现蛇的行动。墙壁在游戏过程中是始终存在的,开始把画矩形墙壁的语句放在MoveTask里结果显示闪动的太过明显,经过调整,在Draw函数中画矩形墙壁跟食物使得效果更好。在查询按键的过程中,当蛇运动方向为上下时,控制向上、向下的按键是无效的,当蛇运动方向为左右时,控制向左、向右的按键是无效的,这需要我们先判断蛇的当前运动方向。,按复位键后显示初始界面,在液晶屏上显示一个矩形墙壁内部为游戏范围,其中间显示START!如图5-1所示图5-1游戏初始界面:..USER2按键后,进入游戏界面,游戏界面显示食物、蛇、分数、游戏范围。此时蛇自动的向右游行,蛇每吃到一个食物,蛇身长度增长,分数加100分,并且出现新的食物。如图5-2所示。图5-2、游戏界面当蛇撞到墙壁或者撞到自身后游戏结束,会显示GAMEOVER!如图5-3、图5-4所示。:..图5-3、蛇撞到墙壁游戏结束图5-4、蛇撞到自身游戏结束经过测试,实现了本次设计的要求。:..第六章结论的方向;当蛇吃到食物后身体会增长一个矩形块的长度并且得分增加100;蛇撞到墙或者撞到自身都会使得游戏结束。达到了设计的基本要求。同时也验证了本次设计思路的可行性。由于时间的原因,本次设计的贪吃蛇游戏还有些不足,仍需要有所改善与扩展。因此提出以下几点扩展,希望能够在未来的加工过后更加完善。第一,蛇与食物都仅仅用矩形代表,比较单一;第二,可以设置多个关卡及障碍使得游戏更富有挑战;第三,蛇的运行速度可以随着吃到食物的增多加快,增加游戏的难度和趣味性。心得体会:通过这次课程设计,收获了很多东西。对于已经学过的知识有了新的研究和体会,补充了很多知识点的漏洞。更加深刻的体会了了相关类似的学科应该是理论与实践相结合才能真正的体会,而不能单单了解理论。通过实际应用加深了已学知识的进一步理解,拓宽了新知识的了解范围,体会到了理论在实践中的应用性。:..参考文献嵌入式系统基础沈阳工业大学[2]-II原理及应用[M].北京:航空航天大学出版社,2003.[3]王天苗.《嵌入式系统设计与实例开发——基于ARM微处理器与uC/OS-II实时操作系统(第三版)》清华大学出版社北京2008年1月第三版[4]-II[M].:北京航空航天大学出版社,2003.[5]

最近更新

2024年涤纶DTY项目合作计划书 73页

高中化学必修1第三章第一节第课时 21页

高三物理一轮精品实验十四测定玻璃的折射率课.. 11页

生物进化的基本规律 66页

高性能CoreML模型集成 27页

《市场营销小组作业》课件 28页

高中数学平面向量教案(精选6篇) 25页

《开关电源基本原理》课件 31页

果树的生物学特性调查 99页

重庆市第二外国语学校2024届高考冲刺模拟化学.. 17页

部编版四年级语文下册第五单元测试卷A卷含答案.. 8页

部编版三年级下册道德与法治第三单元《我们的.. 6页

高考生物一轮复习:专题九生物的变异与进化必.. 68页

初中作文寻找4篇 6页

自我陈述报告初中综合素质评价800字7篇 6页

综合素质评价自我陈述报告(热推5篇) 4页

吃年夜饭的小作文收藏(9篇) 9页

初一英语老师的年终详细工作总结大全(5篇) 15页

初一军广播稿14篇 33页

湖南高二高中数学水平会考带答案解析 8页

供应链生态系统中的协同创新 29页

河南省焦作市2024-2024学年七年级上学期期末生.. 8页

荆州汽车零部件研究报告 6页

江苏省扬州市竹西2024学年中考一模语文试题含.. 15页

绘画比赛方案 7页

禁止秸秆焚烧方案 6页

镇司法所规范化建设汇报 5页

《刷子李》PPT(公开课完美版)公开课一等奖省优.. 18页

Vsd伤口负压引流护理技术操作评分标准 4页

传播学概论第十讲传播效果测试题与答案 16页