贪吃蛇游戏设计报告.

  • 格式:doc
  • 大小:96.59 KB
  • 文档页数:13

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

贪吃蛇游戏设计

班级:13级7班

学号:

姓名:

一、实验目的

1.熟练掌握 C6713 的中断结构和对中断的处理过程。

2.熟练掌握 C6713 定时器的控制和使用方法。

3.熟练掌握键盘的使用原理及编程方法。

4.熟练掌握使用C6713DSP的扩展空间控制外围设备信息的方法;掌握蜂鸣器发声原理和音乐发生方法;掌握液晶显示器的显示控制原理及编程方法。

5.掌握C6713的系统自启动设计方法。

6.熟练掌握C语言开发DSP程序的流程及调试方法。

二、实验设备

计算机,ICETEK-C6713-EDU 实验箱,示波器。

三、实验内容(*号为选做内容)

1、在液晶屏上显示游戏背景、初始蛇身及运动、随机产生食物。

2、可以用键盘控制蛇身运动、暂停游戏。

3、游戏烧写到FLASH内,可以上电自启动运行。

四、设计原理

贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个按键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体叉蛇头撞倒自己身体游戏结束。

要想实现贪吃蛇功能,需要应用到键盘,按键中断,和液晶显示。想要正常使用按键,就要调用包含于有文件"ICETEK-C6713-A.h"中的init_emif();和 InitCTR();程序用来

初始化emif和ICETEK-CTR。

中断原理:dsp有三种类型的中断cpu的TMS320C6000:重置、可屏蔽的、不可屏敝的复位中断优先级最高,对应于复位信号。不可屏蔽中断优先级最高,对应于第二敝中断信号。最低优先级中断中断4−15对应INT4−INT15信号。重置,敝中断,一些INT4−INT15信号映射到C6000设备上的别针。一些INT4−INT15中断信号是内部使用的外设和一些可能不可用或在软件的控制下可以使用。

外中断区别于计时器等片内设备中断,它来源于 DSP 片外,属于硬件中断。外中断信号通过DSP 器件封装上的专用管脚输入DSP,属于可屏蔽中断。TMS3206713DSP 有三个外中断:EXT_INT4~EXT_INT7,如果CPU 允许,这四个信号线上的低脉冲信号会中断CPU。

中断是为使 CPU 具有对外界异步事件的处理能力而设置的。通常DSP 工作在包含多个外界异步事件环境中,当这些事件发生时,DSP 应及时执行这些事件所要求的任务。中断就是要求CPU 暂停当前的工作,转而去处理这些事件,处理完成后,再回到原来被中断的地方继续原来的工作。显然,服务一个中断包括保存当前处理现场,完成中断服务,恢复各寄存器和现场,然后返回继续执行被暂时中断的程序。请求CPU 中断的请求源称为中断源。这些中断源可以是片内的,如定时器等,也可以是片外的,如A/D 转换及其他片外装置。片外中断请求连接到芯片的中断管脚,并且在这些管脚处的电平上升沿产生。如果这个中断被使能,则CPU开始处理这个中断,将当前程序流程转向中断服务程序。当几个中断源同时向CPU 请求中断时,CPU 会根据中断源的优先级别,优先响应级别最高的中断请求。TMS320C6000 有11 个寄存器管理中断服务:

*控制状态寄存器CSR 控制全局使能或禁止中断

*中断使能寄存器IER 使能或禁止中断处理

*中断标志寄存器IFR 指示有中断请求但未被响应的中断发生

*中断设置寄存器ISR 手动设置IFR 中的标志位

*中断清除寄存器ICR 手动清除IFR 中的标志位

*中断服务表指针ISTP 指向中断服务表的起始地址

*不可屏蔽中断返回指针NRP 包含从不可屏蔽中断返回的地址,该中断返回通过B NRP 指令完成

*可屏蔽中断返回地址IRP 可屏蔽中断的返回地址

*中断选择寄存器IML 可选择CPU 中断10-15 号对应的中断源

*中断选择寄存器IMH 可选择CPU 中断4-9 号对应的中断源

*外中断极性选择寄存器EIP 选择外中断(INT4-INT7)的触发极性

外设事件要引起 CPU 中断,必须保证:CSR 使能中断,IER 相应位被使能(置1),ST1 寄存器中的INTM 使能(置0),中断服务表相应位置放置服务程序入口地址转移指令,相应中断源放入IML 或IMH 适当位置。当 CPU 响应中断时,PC 指针指向中断向量表中对应中断的地址,进入中断服务子程序。中断向量表是DSP 存放中断服务程序的一段内存区域,大小为80H。在中断向量表中,每一个中断占用32 个字的空间,一般情况是将一条跳转或延时跳转指令存放于此。中断向量表的位置是可以改变的,修改ISTP 寄存器中的中断向量表基地址可以实现这一点。

程序中应包含中断向量表。

向量表中每项为32 个字,存放跳转指令,跳转指令中的地址为相应服务程序入口地址。第一个向量表的首项为复位向量,即CPU 复位操作完成后自动进入执行的程序入口。

程序中包含相应的中断服务程序,应将其入口地址加入相应中断向量表中。

在程序中重定位中断向量表到本程序的中断向量表地址;设置中断源(IML,IMH)、中断屏蔽寄存器IER__·

定时器原理:设备有32位通用定时器,可用于:时间事件、计数事件、产生脉冲、中断cpu、dma发送同步事件

计时器有两个信号模式,由一个内部时钟或externl来源。计时器有输入插口和输出插口。输入和输出。(tinpand兜售)可以作为定时器时钟时钟输入和输出。也可以分别配置为通用的输入和输出。

监视定时器状态:

设置TOUT 管脚功能:

01940004 01980004 定时器周期寄存器PRD 设置定时器的计数周期

决定TSTAT 信号的频率

01940008 01980008 定时器计数寄存器CNT 定时器当前计数值

键盘使用:ICETEK-C6713-EDU 实验箱对TMS320C6713 DSP 存储空间的使用地址范围:0901f0000h—0901fffffh 数据宽度:16 位

0901f0000h: ICETEK-CTR 全局控制寄存器写地址

0901f0002h:读取键盘扫描码地址,液晶命令写地址

0901f0004h:清除键盘缓冲区读地址,液晶控制写地址

0901f0006h:液晶左侧显示数据写地址

0901f0008h:液晶右侧显示数据写地址

0901f000Ah:发光二极管阵列数据写地址