基于NiosII贪吃蛇的游戏设计电子综合设计.docx

上传人:b****5 文档编号:28575555 上传时间:2023-07-19 格式:DOCX 页数:9 大小:20.80KB
下载 相关 举报
基于NiosII贪吃蛇的游戏设计电子综合设计.docx_第1页
第1页 / 共9页
基于NiosII贪吃蛇的游戏设计电子综合设计.docx_第2页
第2页 / 共9页
基于NiosII贪吃蛇的游戏设计电子综合设计.docx_第3页
第3页 / 共9页
基于NiosII贪吃蛇的游戏设计电子综合设计.docx_第4页
第4页 / 共9页
基于NiosII贪吃蛇的游戏设计电子综合设计.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

基于NiosII贪吃蛇的游戏设计电子综合设计.docx

《基于NiosII贪吃蛇的游戏设计电子综合设计.docx》由会员分享,可在线阅读,更多相关《基于NiosII贪吃蛇的游戏设计电子综合设计.docx(9页珍藏版)》请在冰豆网上搜索。

基于NiosII贪吃蛇的游戏设计电子综合设计.docx

基于NiosII贪吃蛇的游戏设计电子综合设计

基于NiosII和LED点阵的贪吃蛇游戏设计

一、摘要………………………………………………………2

二、设计目的…………………………………………………2

三、贪吃蛇设计预期目标……………………………………2

四、方案整体设计……………………………………………2

五、硬件系统的设计及实现…………………………………3

六、软件系统的设计及实现…………………………………11

七、心得体会…………………………………………………14

八、参考文献…………………………………………………15

九、附录………………………………………………………15

一、摘要

基于NiosII软核处理器和LED点阵显示屏的贪吃蛇游戏内容是:

一条蛇在封闭的围墙里,围墙里随机出现一个食物。

玩家通过4个按键控制蛇上下左右移动,且蛇只能沿着头运动的轨迹移动。

蛇头撞到食物,则食物被吃掉,蛇身体增长一节,同时记1分,又出现食物,等待蛇来吃,如果蛇头在移动中出界或咬到自己的身体则游戏结束。

关键字:

贪吃蛇NiosIILED点阵SOPC

二、设计目的

1、掌握按键扫描电路的设计

2、掌握用VHDL语言设计按键扫描电路的方法

3、掌握16*16LED点阵的控制原理和用VHDL语言设计LED点阵扫描电路的方法;

4、掌握SOPCBuilder的设计流程;

5、掌握在NiosII中进行编程的方法;

三、贪吃蛇设计预期目标

1、基本功能

(1)、完成按键扫描电路的设计;

(2)、完成16*16LED点阵的扫描电路设计;

(3)、完成SOPCBuilder中的系统设计;

(4)、完成单色贪吃蛇游戏的基本设计(蛇移动方向的改变,吃到果子后蛇身变长,咬到自己或者出界时的失败处理等);

(5)、完成游戏图形信息提示(游戏目前所处的等级等)。

2、提高功能

(1)、能进行汉字动态显示(显示内容自动更新,形式自定,如百叶窗等);

(2)、蛇头颜色与蛇身区别显示,并与果实颜色区别显示;

(3)、游戏过程中加入声音提示和表情提示;

(4)、所得分数在数码管上显示;

(5)、能进行游戏难度的切换(不同难度下,蛇吃到相应数量的果子后升级)。

四、方案整体设计

为了实现游戏的控制、显示、设置等功能,系统需要具有控制模块,动态扫描显示模块,按键识别模块。

本设计中采用NiosII软核CPU作为游戏的主控制单元,按键识别模块中的每个按键通过产生中断的方式,在中断处理函数中完成按键的标识,并在在软件程序的主体部分完成按键的识别。

动态扫描显示模块又分为LED点阵屏动态扫描显示和LED数码管显示扫描两部分,两部分均采用VHDL语言设计相应的硬件扫描模块来实现。

五、硬件系统的设计及实现

整个硬件系统的设计包括NiosII片上系统的设计和外设驱动电路的设计。

1、硬件整体框架

2、NiosII片上系统的设计

片上系统的设计核心是NiosII嵌入式CPU软核的定制。

根据游戏的功能要求和实现的方案,片上系统应当包括:

NiosII嵌入式CPU软核、一组PIO输入\输出口、定时器、SRAM、JTAGUART、EPCS_FLASH_CONTROLLER。

NiosII系统的结构如下:

(1)、NiosII嵌入式CPU软核

NiosII嵌入式CPU软核作为整个系统的主控制单元,完成对按键信息的接收、识别、处理;此外还要输出相关的控制信息,实现对外设的控制。

(2)、PIO输入\输出口

在定制的一组PIO输入\输出口中,PIO输入口用于接收按键信号,PIO输出口用于输出对DPRAM写数据操作的控制和数据信号以及LED数码管的数据信号;

(3)、定时器

在系统中定制定时器,主要是为了通过定时器的计数产生周期性的中断,通过中断处理函数实现贪吃蛇的移动显示效果。

由于定时器中具有几个软件可操作的寄存器,通过对这些寄存器的操作可以很方便地实现定时器的启停、定时时间设置、中断产生控制等操作。

只要更改定时器产生中断的周期就可以实现贪吃蛇运动速度的控制,从而进行游戏等级的控制。

(4)、SRAM和EPCS_FLASH_CONTROLLER

SRAM在系统中起到了相当于计算机中内存的作用,主要用于存放正在运行的软件程序。

它的特点主要是速度快。

EPCS_FLASH_CONTROLLER作为EPCS_FLASH的控制器。

整个系统的硬件设计都下载固化在EPCS_FLASH上,当程序烧写到了EPCS_FLASH上的时候,就可以实现脱机运行了。

3、外设驱动电路的设计

外设驱动电路的设计包括:

双口DPRAM的定制、DPRAM读数据控制电路的设计、LED点阵屏扫描电路的设计、七段数码管动态扫描电路的设计、整个系统中所用到的时钟信号产生电路以及按键去抖电路。

(1)、双口DPRAM定制

双口DPRAM在系统中作为LED点阵显示屏的显示数据缓存,其中存储了256个LED灯的颜色控制数据。

存放在其中的数据只有四个值有效,分别为0、1、2、3。

送这四个数去控制一个LED灯,分别对应LED灯的颜色为:

黄色、绿色、红色、黑色。

双口DPRAM可以定制成一个输入口和一个输出口的形式。

其中,输入口用于接收NiosII嵌入式软核CPU的数据,输出口在DPRAM读数据控制电路的控制下输出数据用于驱动LED点阵屏扫描显示电路。

该模块的仿真波形如下图:

(2)、DPRAM读数据控制电路

DPRAM读数据控制电路在外部时钟信号的作用下,产生0到255共256个数作为DPRAM的地址,在DPRAM读数据时钟到来的时候使得DPRAM输出对应地址的数据。

此外,DPRAM读数据控制电路还要产生像素同步信号和行同步信号,实现LED点阵屏扫描电路的时序。

产生的时序要求是:

在外部时钟的作用下产生DPRAMD的地址,接着像素同步时钟出现一个上升沿,16个像素同步时钟后,产生一个行同步信号,在该行同步信号作用下行扫描信号从第一行顺序扫到最后一行,这样就完成了一个周期的扫描。

该模块的仿真波形如下图:

(3)、七段数码管

七段数码管动态扫描电路,接收外部送来的显示数据,通过动态扫描的方式在两个数码管上显示出来。

该模块的仿真波形如下图:

(4)、按键去抖电路

按键去抖电路用于消除按键动作中产生的高频抖动,防止产生误动作,提高按键的稳定性,和可靠性。

该模块的仿真波形如下图:

(5)、时钟信号产生电路

整个系统中使用到了几个不同频率的时钟信号,通过时钟信号产生电路进行不同频率的分频产生所需的时钟信号。

该模块的仿真波形如下图:

(6)、LED点阵屏扫描电路的设计

LED显示系统有两种基本的显示控制方式,即静态显示和动态显示。

对于静态显示方式,每一个像素都需要一套驱动电路,因而这种方式没有扫描过程,显示控制简单,亮度很好。

但是,采用静态显示方式将大大增加驱动电路的复杂程度,这不仅使系统成本很高,而且增加了生产、安装、调试以及日常维护工作的难度,故障率也较高。

对于动态扫描显示,由于采用多路复用显示方式,每路显示的时间大为减少,这不仅使LED显示亮度受到一定程度的影响,而且增加了显示控制的复杂性和现实的稳定性。

本系统采用动态扫描控制显示方式。

a、显示屏的列驱动

列驱动采用带输出锁存的8Bit移位寄存器74LS595。

本系统采的LED点阵是RG双色的,所以送入点阵的列驱动信号是RG两组。

以红灯为例,两片74LS595级联用作红灯列驱动。

每16个时钟控制器传送的两个字节的数据移位到两片595中,16个列驱动信号都移位到两片595中后,控制器给出一个STB信号的上升沿,使一行数据锁存输出到LED屏。

LED对应的列驱动数据为1时,被其驱动的LED不能被点亮;对应的列驱动数据为0时,被其驱动的点被点亮。

绿灯的点亮控制和红灯一样,需要用到另外一套相同的595级联电路。

但具体点亮哪一个点,则由行驱动来指定。

因此行驱动用来进行扫描控制,任一瞬时16行中只有1行被选通,换句话说一行中每一个点被点亮的时间只有不到1/16的时间,因为传送数据和控制也需要时间。

本系统采用的LED点阵是RG双色灯,具体哪个灯则由FPGA传递的参数决定。

需要注意的是,红灯数据在送入LED点阵前要加电阻限流。

b、显示屏的行驱动

为方便控制,行信号采用四位控制16行,行扫描信号的最高位用于选择要译码的三八译码器。

行扫描信号最高位为0时,三八译码器U7工作,译码后的信号作为前八行的行选择信号;行扫描信号的最高位为1时,三八译码器U14工作,译码后的信号作为后八行的行选择信号。

行选择信号在送入LED点阵前,要先送入专用的电源控制芯片APM4953,APM4953的输出作为点阵的行驱动信号。

更大的屏由多套这样的电路拼接而成,每一部分的工作原理是一致的。

这里仅以此电路来讨论其工作的原理。

c、具体扫描过程

扫描过程:

首先是FPGA通过接口送来第一行要显示的2个字节的红色灯信号R和2个字节的绿灯信号G,两个字节的红灯数据分别锁存于U1和U6中,两个字节的绿灯数据分别锁存于U10和U15中。

随后送出行扫描信号,行扫描信号经三八译码器译码后为IH0-IH15,IH0-IH15经过专用的电源控制芯片APM4953,成为LED点阵的行驱动信号TH0-TH15。

第一次送来的扫描信号应使TH0为1,其余为0。

这意味着只有第1行被选通,第1行的16个点,32个LED灯按4片595的输出数据点亮或熄灭相应的LED灯,而其余15列由于不被选通将全部不发光。

为防止数据串显,经过一段时间的延时后,要再送出一组绿灯均为1的数据,即熄灭所有的灯,至此第1行扫描显示完毕。

随后依次进行第2行的扫描显示。

同样,先送第2行的16个红色LED灯的显示数据分别锁存于595

(1)和595

(2)中,第2行的16个绿色LED灯的显示数据分别锁存于595(3)和595(4)中,再送扫描信号SEL,且只使TH1为1,并延时显示,最后熄灭所有的灯。

这样逐列进行扫描显示,当最后一列扫描完后,FPGA可进行适当的数据加工处理,接着又进行下一扫描周期的工作。

必须指出,扫描周期应小于或等于20ms以克服图像的闪烁现象,但也不能太高,要考虑595工作的频率范围。

电路如下图:

六、软件系统的设计及实现

1、系统的主程序设计

(1)、算法描述

运动:

根据用户输入按键进行柔体传动。

吃到食物:

置没有食物的标志,蛇长大一个点阵。

放新食物:

判断食物标志,如果没有食物,就要放食物,判断放的食物是否和蛇身重叠,重叠了要重放。

死亡处理:

判断是否撞中自己或撞墙。

游戏具体的流程是:

蛇向一个固定方向进行柔体传动,每个运动时钟到达要做的工作有

a、判断食物标志,没有食物了就放一个,放的时候判断,不能和蛇身重叠。

b、得到用户按键值,根据键值设置方向标识,并判断是否撞死了,没撞死和是否吃到自己,再判断是否吃到东西了,没有吃到,就等下一个运动时钟;吃了,就增长一点。

置一个没有食物的标志。

然后等待下一个时刻的来临。

(2)、流程图

2、源程序

(见附录)

七、心得体会

本次电子综合设计从9月6日开始,到9月30日结束,为将近一个月。

整个设计工作的安排是:

前期,接受电子综合设计任务,阅读、收集相关资料,学习NiosII嵌入式设计方法。

进行简单的包含NiosII嵌入式CPU的SOPC系统验证性试验,熟悉定时器的使用,PIO口的操作,以及中断的实现操作。

学习LED点阵显示屏的动态扫描显示原理,并据此确定所需的元件,做好准备工作。

中期,研究贪吃蛇游戏的实现方法,根据要求的功能,和现有的资源确定总体设计方案。

研究软件算法和硬件电路的具体实现,绘制LED点阵屏动态扫描电路,完成布局、布线,紧接着进行硬件电路的焊接制作。

后期,对硬件电路进行测试,软件设计调试。

这个阶段中,对硬件的测试很重要,必须保证所设计的硬件平台的每一个部分都能正确无误地工作,这样才能调试所设计到的软件。

这次电子综合设计检验了我们对这三年所学知识掌握程度,同时也是一个学习新知识的过程。

通过这次电子综合设计,我们对几种中规模集成电路芯片有了更多的了解,能根据我们的要求正确地使用这几种芯片;在硬件电路的设计制作方面,我们的流程和方法更加的规范化,在制作硬件电路的过程中积累了一些经验,也从中总结了一些教训。

比如说,在硬件电路的布局上,应该考虑到布线的问题,应该围绕着LED点阵显示屏来展开,尽量使得布局后布线尽量地简洁,布线的数量应该尽量的少。

布线时,尽量走90度的直角,减少电磁干扰现象。

在SOPC系统的构建过程中,我们对其设计流程从陌生变得熟悉了。

能够在FPGA上构建简单的SOPC系统。

也感受到了这种设计理念的魅力,感受到了这种技术的生机和力量。

本次电子综合设计中存在的问题是,硬件设计制作的时间太长,这使得软件调试的时间很紧张,以至于有些提高功能在最后都没有时间去实现,这也是设计作品质量不高的原因。

八、参考文献

1、SOPC嵌入式系统基础教北京航空航天大学出版社周立功

2、程序设计技术重庆大学出版社熊壮

3、EDA技术使用教程科学出版社潘松

4、现代数字系统实验及设计重庆大学出版社何伟

九、附录

1、元件清单

序号

名称

数量

1

74LS245

1片

2

SN74HC138D

3片

3

74LS595

4片

4

APM4953

8片

5

10K电阻

6只

6

LED8*8_1588RG

4块

7

20欧电阻

16只

8

按键

8个

9

IDE40排线

1条

2、系统设计电路

3、实物效果图

(1)、开机画面

(2)按开始键开始游戏

(3)、按方向键控制蛇的移动

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1