注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

深夜是徘徊在潮湿睫毛上的我的梦以及他的梦

是直到最后都无法放手的一种气息,是我们生命中最后的思念……

 
 
 

日志

 
 

凌阳SPCE061A在游戏贪吃蛇中的应用  

2011-03-25 21:33:31|  分类: 单片机 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

引用 http://www.unsp.com/app/html/200521793539.shtml

SPCE061A在游戏贪吃蛇中的应用
文章来源:凌阳大学计划网站
作者:刘学 发布时间:2005-2-17 9:35:39

  摘要:凌阳十六位单片机的采用凌阳最新推出的μ'nsp(Microcontroller and Signal Processor)位微处理器内核(以下简称 μ'nSP);而μ'nSP内核是一个通用的核结构。SPCE061A内嵌32K字(Word)闪存(FLASH),2K字(Word)SRAM;内置十位ADC、DAC,有多达十四个的中断源等丰富的片内资源。 CPU最高可工作在49MHz的主频下,较高的处理速度使μ'nSP能够非常容易地、快速地处理复杂的数字信号;这使得SPCE061A具有灵活的语音处理能。因此,与其它类型的单片机相比,以 μ'nSP为核心的SPCE061A微控制器是适用于有数字语音功能的应用领域产品的一种最经济的选择。本文讨论了应用SPEC061A精简开发板-61板、SPLC501液晶模组与LED_键盘板实现小游戏贪吃蛇。

  关键词:液晶模组、贪吃蛇

一、引言
  SPCE061A是凌阳科技的一款16位微控制器。SPCE061A内嵌32K的闪存(FLASH)。 SPCE061A为语音产品而集成了ADC、DAC、AGC等。SPCE061A还具有n项内积运算指令, 较高的处理速度使 u'nSP能够非常容易快速地处理复杂的数字信号,是数字语音识别应用领域的一种最经济选择。
SPCE061A精简开发板 — 61板配有在线调试功能;结合集成开发环境不需外界任何仿真、调试器即可以完成在线编程、仿真、调试功能。
  本方案直接使用了SPCE061A精简开发板,利用SPCE061A的语音处理功能,以及其强大的处理能力,再配合SPLC501液晶模组等,很容就可以实现贪吃蛇游戏,而且具有音乐背景;非常好地体现了SPCE061A的优异性能。

二、芯片特性简介SPCE061A介绍
本方案采用凌阳科技公司 16位高性能的微控制器 — SPCE061A作为主控处理器,其CPU硬件资源情况如下:


16位μ'nSP微处理器;
工作电压 (CPU) VDD为2.4~3.6V (I/O) VDDH为2.4~5.5V
CPU时钟:0.32MHz~49.152MHz ;
内置 2K字SRAM;
内置 32K 字FLASH;
系统处于备用状态下 (时钟处于停止状态),耗电仅为2 μ A@3.6V;
2个16位可编程定时器/计数器(可自动预置初始计数值);
2个10位DAC(数-模转换)输出通道;
32位通用可编程输入/输出端口;
14个中断源可来自定时器A / B,时基,2个外部时钟源输入,键唤醒;
具备触键唤醒的功能;
7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;
声音模 -数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;
具备串行设备接口;
具有低电压复位 (LVR)功能和低电压监测(LVD)功能;
内置在线仿真电路 ICE(In- Circuit Emulator)接口;
具有保密能力;
具有 WatchDog功能

  SPCE061A的最显著的特性是其语音特性,为语音产品而集成了ADC、DAC、AGC等。SPCE061A还具有n项内积运算指令,而且凌阳公司在语音产品方面有着丰富的经验,并提供多种语音压缩算法的应用。依靠其强大的处理能力,很容易就可以实现一些一定复杂度的小游戏,同时应用其特殊的语音功能,还可以为小游戏加上背景音乐或音效,增加所设计游戏的趣味性。

三、系统总体方案介绍 贪吃蛇原理:
  游戏贪吃蛇就是在液晶屏幕上画出蛇,同时随机地给出食物。游戏者通过键盘操作控制贪吃蛇的移动,去吃食物,吃到后食物消失,然后再随机给出食物同时蛇的身体增长。画蛇的原理就是利用人眼的视觉效应先将蛇头向前移动一格,然后所有蛇身依次向前移动一格,最后再擦除蛇尾。这样在人眼看来好像蛇在向前移动。食物的给出,首先需要产生一个随机数,然后通过这个随机数计算得到食物的横纵坐标,在液晶屏上显示出来。控制蛇的移动方向,需要扫描键盘,然后根据键值改变蛇的移动方向。
系统的结构 : 系统的结构框图如图 1所示:

凌阳SPCE061A在游戏贪吃蛇中的应用 - 维京人 - 深夜是徘徊在潮湿睫毛上的我的梦以及他的梦
图 1 游戏贪吃蛇系统框图


  系统主要包括SPCE061A精简开发板-61板、SPLC501液晶模组、LED_键盘板三个部分。电源采用5V的DC电源,芯片的I/O电压为3.3V。
  SPCE061A精简开发板是整个设计的核心,主要负责控制液晶的游戏界面输出,键盘信息的采集输入,而且背景音乐也是 SPCE061A在后台进行处理。
  SPLC501液晶模组主要起人机界面的作用,显示游戏的信息,LED_键盘板负责接收游戏者的操作。

四、系统硬件设计
4.1 SPCE061A精简开发板介绍:
  SPCE061A精简开发板,简称61板主要由SPCE061A芯片外加晶振、复位电路、音频电路等构成。61板电路原理图见附录图1。
  在本方案中,直接利用了 61板;板上有一路音频功放电路、一路MIC接口电路(配合芯片内资源)等,并提供了方便的32个I/O接口。这样就可以用61板配套SPLC501液晶模组、LED_键盘板完成本方案的设计。
4.2 SPLC501液晶模组介绍:
  此液晶模组采用的是台湾凌阳科技公司大学计划的一款 128*64点阵的液晶模组,驱动芯片采用的是凌阳SPLC501。模组接口简单,应用方便,功耗低,且可以完成较多液晶特效功能。
该液晶模组可以显示字符、汉字、图形等,且有 4级灰度可调。
特点:
1、 内置 8580 位显示 RAM。RAM中的一位数据控制液晶屏上的一个象素点的亮、暗状态。“1”亮“0”暗。
2、 具有 65行驱动输出和132列驱动输出
3、 可以直接与 80系列和68系列微处理器相连。
4、 内置晶振电路,也可以外接晶振工作温度范围为- 40摄氏度~+85摄氏度
接口端管脚说明
液晶模组与 61板硬件的连接关系见表1所示,其中片选信号CS脚接地。

管脚名
说明
/CS1
片选,低有效
/RES
复位脚
A0
数据命令选择脚
R/W/WR
对于 6800 系列 MPU的读/写信号
对于 8080 系列 MPU的写信号
EP/RD
对于 6800 系列 MPU的时钟信号使能脚
对于 8080 系列 MPU的读信号
DB0 8 位数据总线
DB1
DB2
DB3
DB4
DB5
DB6
DB7
VR
端口输出电压
C 86
C 86 = ' H ' 选择 6800 MPU系列
C86 = ' L ' 选择 8080 MPU系列
Vdd
逻辑电源( 3.3V~5V)
Vss
地( 0V)
‘61'板
液晶模组
描述
IOA8—IOA15
D0—D7
8位数据线
IOB4
AO 地址建立时间 /地址保持时间
IOB5
R/W
读 /写时序
IOB6
EP
数据建立 /数据保持时间

表 1


4.3 LED_键盘板: LED_ 键盘板为普通 1X8键盘。LED_键盘板与61板接口为键盘的一端接高电平,另一端与61板的IOA7-IOA0相接。61板的I/O定义为下拉输入方式。但是软件中只定义了其中的7个键。硬件原理图具体见附录图2。

五、系统软件设计
5.1 游戏主要功能:
开机界面: 开机后显示“Welcome Play Game”字幕3秒钟。
菜单界面 : 开机界面显示后,出现菜单选项。菜单提示为“ Play with music press 1”,“Play without music press 2”。
键盘扫描 :对 1X8键盘进行扫描,并取得键值(只取7个键)。
按键功能 :实现游戏的人机交互。
1. 在开机状态下, K1键的功能为进入游戏并且带有背景音乐,
2. 在游戏状态并且无背景音乐下, K1键的功能为开启背景音乐,
3. 在开机状态下, K2键的功能为进入游戏不带背景音乐,
4. 在游戏状态并且有背景音乐下, K2键的功能为关闭背景音乐。
5. 在游戏状态下, K3键的功能为使贪吃蛇向上移动,
6. 在游戏状态下, K4键的功能为使贪吃蛇向下移动,
7. 在游戏状态下, K5键的功能为使贪吃蛇向左移动,
8. 在游戏状态下, K6键的功能为使贪吃蛇向右移动。
9. 在游戏状态下, K7键的功能为随时退出游戏。
10. K3、K4、K5、K6、K7键在开机状态下无效。
游戏界面 :游戏界面在液晶屏左边显示“ snake”字样,在右边有一个矩形区,为游戏区域,在矩形区中有食物和贪吃蛇。贪吃蛇用一条线表示,开始的时候蛇有3节,每吃到食物一次蛇身加长一节,蛇身最长可以达到200节。食物用一个点表示,并且每次食物的位置是随机出现的。
游戏的具体界面见附录图 3-7。
游戏功能 :游戏功能:游戏中使贪吃蛇尽可能的长,但不能使贪吃蛇撞到四周的墙壁,而且蛇的身体不能撞到一起,否则游戏结束。贪吃蛇的身体节数如果达到 200节则显示“You Win !!”。
5.2 程序流程: 根据以上功能确定程序流程图。

凌阳SPCE061A在游戏贪吃蛇中的应用 - 维京人 - 深夜是徘徊在潮湿睫毛上的我的梦以及他的梦
图 5.1 主程序流程图

  首先要初始化液晶,设置系统时钟以及 I/O口,然后是中断,因为键盘扫描和延时等待需要中断处理,接下来开始绘制游戏界面及贪吃蛇。然后开定时器,取得“随机数”然后进入游戏,如果游戏结束则显示游戏结束画面。
  这里的随机数只是一个概念,在本设计中仅是用定时器为基础而模拟的“随机数”;因为用户每次操作游戏的间隔时间是不定的,所以在本设计中所取的随机数实为用户操作的间隔时间等效值。如需要更佳的游戏效果,可参考伪随机码算法编程,并以此来取“伪随机码”以实现更为合理的随机数。
  关于游戏部分,下面专门介绍游戏的关键是PlayGame这个函数,流程图如下:

凌阳SPCE061A在游戏贪吃蛇中的应用 - 维京人 - 深夜是徘徊在潮湿睫毛上的我的梦以及他的梦
图 3.2 GamePlay程序流程图

  首先,对贪吃蛇的蛇头坐标,蛇身坐标,蛇的节数,蛇的状态,蛇的行动方向进行初始化设定,然后判断是否需要背景音乐,如果需要则初始化放音函数播放音乐,进入游戏循环。由于是循环播放音乐,还要判断是否需要音乐,如果需要,就判断音乐是否播放完,播完的话重新播放,否则直接设置食物。然后通过得到的键值更改蛇的移动方向。判断蛇的状态进行相应的操作。如果蛇死,退出游戏,否则回到游戏循环。
几点说明:
1.由于有关贪吃蛇和食物的数据较多,而且关系密切,贪吃蛇及食物都是定义的结构体数据类型,这样定义便于操作与处理。
2.关于背景音乐。在主循环中调用播放音乐函数,然后利用 FIQ的TimerA中断进行音频输出,这样的好处是在后台处理,相当于双任务。

六、结语
凌阳公司的 SPCE061A的结构特点及其相关的开发平台,为我们开发带语音特色的产品方案带来了很大的方便;本系统仅是SPCE061A的一个基本应用,体现了SPCE061A多种资源对产品开发的极大支持,同时体现了其的语音特色。

七、参考文献
[1] 罗亚非.凌阳16位单片机应用基础[M].北京:北京航空航天大学出版社
[2] 凌阳大学计划网站 www.unsp.com.cn

附录 :

凌阳SPCE061A在游戏贪吃蛇中的应用 - 维京人 - 深夜是徘徊在潮湿睫毛上的我的梦以及他的梦
附录:图 1 SPCE061A精简开发板

凌阳SPCE061A在游戏贪吃蛇中的应用 - 维京人 - 深夜是徘徊在潮湿睫毛上的我的梦以及他的梦
附录:图 2 LED_ 键盘板

游戏界面效果图 :

开机界面如图: 凌阳SPCE061A在游戏贪吃蛇中的应用 - 维京人 - 深夜是徘徊在潮湿睫毛上的我的梦以及他的梦
菜单界面如图: 凌阳SPCE061A在游戏贪吃蛇中的应用 - 维京人 - 深夜是徘徊在潮湿睫毛上的我的梦以及他的梦
游戏界面如图: 凌阳SPCE061A在游戏贪吃蛇中的应用 - 维京人 - 深夜是徘徊在潮湿睫毛上的我的梦以及他的梦
游戏结束界面: 凌阳SPCE061A在游戏贪吃蛇中的应用 - 维京人 - 深夜是徘徊在潮湿睫毛上的我的梦以及他的梦
游戏成功界面: 凌阳SPCE061A在游戏贪吃蛇中的应用 - 维京人 - 深夜是徘徊在潮湿睫毛上的我的梦以及他的梦


相关源代码下载:
   凌阳SPCE061A在游戏贪吃蛇中的应用 - 维京人 - 深夜是徘徊在潮湿睫毛上的我的梦以及他的梦 [凌阳SPCE061A在游戏贪吃蛇中的应用 - 维京人 - 深夜是徘徊在潮湿睫毛上的我的梦以及他的梦 源码下载]
相关文章:
SPCE061A在游戏贪吃蛇中的应用(2005-2-17)

  评论这张
 
阅读(1297)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017