- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
基于DSP的贪吃蛇游戏设计
班级:13级7班
学号:
姓名:梁检满
一、实验目的
1.熟练掌握C6713的中断结构和对中断的处理过程。
2.熟练掌握C6713定时器的控制和使用方法。
3.熟练掌握键盘的使用原理及编程方法。
4.熟练掌握使用C6713DSP的扩展空间控制外围设备信息的方法;掌握蜂鸣器发声原理和音乐发生方法;掌握液晶显示器的显示控制原理及编程方法。
5.掌握C6713的系统自启动设计方法。
6.熟练掌握C语言开发DSP程序的流程及调试方法。
二、实验设备
计算机,ICETEK-C6713-EDU实验箱,示波器。
三、实验内容
3.1贪吃蛇概述
“贪吃蛇”是一个产生于1970年代中后期的计算机游戏,也叫贪吃蛇。在游戏中,玩家操控一条细长的蛇爬行于一个带边界的平面之上,一路拾起碰到之事物或其他类似的物件,并要防止触到自身或者包围着游戏区的“墙”。每次贪吃蛇吃到一件食物,它的身体便增长一些,这让游戏的难度逐渐变大。操控贪吃蛇时,玩家操控贪吃蛇头部的朝向〔向上、向下、向左或向右〕控制贪吃蛇的进行方向,贪吃蛇的身体将跟着其头部移动。另外,玩家不可在游戏中途停止贪吃蛇的进行。随着贪吃蛇的成功移植到系统,贪吃蛇的操作按键要求与实际按键的完美匹配,使贪吃蛇游戏风行起来。
玩家控制贪吃蛇在屏幕上移动,角色只能向左、右方向90度转弯,一旦碰到墙壁或身任何部位就失败。玩家通过吃随机出现的食物来获取分数,同时贪食蛇的长度也会随着增加。吃的越多,获得的分数越高,同时蛇身也越长。
3.2贪吃蛇设计原理
本次课程设计是基于ICETEK-C6713-A评估板的贪吃蛇设计。
设计关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用一节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。
贪吃蛇的数据结构位数组
#includelimits.h/*forCHAR_BIT*/
#defineBITMASK(b)(128((b)%CHAR_BIT))
#defineBITSLOT(b)((b)/CHAR_BIT)
#defineBITSET(a,b)((a)[BITSLOT(b)]|=BITMASK(b))
#defineBITCLEAR(a,b)((a)[BITSLOT(b)]=~BITMASK(b))
#defineBITTEST(a,b)((a)[BITSLOT(b)]BITMASK(b))
#defineBITNSLOTS(nb)((nb+CHAR_BIT-1)/CHAR_BIT)
//nb从1开始,nb-1从0开始,符合一个字节里的8位在一个CHAR_BIT里的要求。+CHAR_BIT是为了符合C的数组第一个元素都是从0开始的要求。
食物的随机产生
voidfood()
{
srand((unsigned)time(0));
SnakeFoodPosition=rand()%(64*128-1);
while(BITTEST(Ground.bitarray,SnakeFoodPosition))
{
SnakeFoodPosition+=SnakeLong;
SnakeFoodPosition=SnakeFoodPosition%(64*128-1);
}
BITSET(Ground.bitarray,SnakeFoodPosition);
draw(BITSLOT(SnakeFoodPosition));
}
3.3中断原理
外中断区别于计时器等片内设备中断,它来源于DSP片外,属于硬件中断。外中断信号通过DSP器件封装上的专用管脚输入DSP,属于可屏蔽中断。TMS3206713DSP有三个外中断:EXT_INT4~EXT_INT7,如果CPU允许,这四个信号线上的低脉冲信号会中断CPU。
ICETEK-C6713-A板的外中断
在外中断EXT_INT4~EXT_INT7中ICETEK-C6713-A板占用了EXT_INT4,其他中断引脚被引到扩展插座P4上供用户扩展、使用。
3.3.2
您可能关注的文档
最近下载
- 淄博市2025年高三二模政治试卷(含标准答案).pdf
- 公路工程质量自检报告及施工总结.doc
- 材料表征技术PPT课件.pptx
- 第四单元 追求美好人生 大单元教学设计 七年级道德与法治上册2024.docx
- 思维导图丨高中历史必修丨中外历史纲要(上)丨第01课 中华文明的起源与早期国家(竖屏版).pdf
- 2025年贵州专业技术继续教育考试试题及答案公需科目 .pdf VIP
- 个人党性分析材料(党校中青班).doc VIP
- 2025年蓖麻种植行业分析报告及未来五到十年行业发展趋势报告.docx
- 软件开发合同--模板.doc VIP
- 现代餐饮运营与管理实务:中央厨房的运行与管理PPT教学课件.pptx VIP
文档评论(0)