基于单片机的贪吃蛇游戏

绪论
1.1 研究背景与意义
随着社会的发展,人们生活的步调日益加快,越来越多的人加入了全球化的世界。
人们不再拘泥于--,J,块天地,加班,出差成了现代人不可避免的公务。而此时一款可以
随时随地娱乐的游戏成了必需品。贪吃蛇这一游戏简单易行,操作方便,娱乐性较强,
吸引了不少人。这一款游戏紧紧地抓住了人们的心理,虽然简单,却其乐无穷,在人们
不断追求更多的欲望下,该游戏给人们带来了追逐的快感,以及成功后的满足感,对于
一直处于高压下的现代人是很好的放松工具。
当前科学技术飞速发展,特别是微电子技术,计算机软件与应用技术的发展,使得
人们的日常生活丰富多彩。单片微型计算机(简称单片机)作为微型计算机家族的一员,
以其独特的结构,良好的稳定性,便宜的价格在嵌入式领域广泛应用。与传统的PC上
设计的贪吃蛇游戏不同,本次作者利用Proteus硬件仿真软件,采用单片机、液晶显示
屏、扬声器、按键等搭建硬件平台,C语言编程,实现便携地贪吃蛇游戏。
传统的贪吃蛇游戏只有单纯的吃豆子,得分,升级以后蛇运动的速度加快等功能。
本次作者对贪吃蛇游戏进行了升级,出上述基本功能外,针对现有硬件条件,加入地图
选择,游戏中途暂停与退出,各种背景音的播放(包括吃豆子背景音、错误提示背景音、
升级背景音、游戏结束背景音、游戏通关背景音等),背景音静音与否的选择等,使玩
家的游戏体验更上一层楼。
1.2单片机发展状况
单片微型计算机(Single.Chip Microcomputer)简称单片机(MCU)。它是在一块
芯片上集成了中央处理单元(CPU)、振荡器电路、只读存储器(ROM)、随机存取存
储器(RAM)、并行/串行I/O接口、可编程定时器/计数器等,有的甚至包含了A/D转
换器。总之,这么一块小小的单片机芯片,就相当于一台微型计算机,它具有体积小、
重量轻、单一电源、低功耗、功能强、价格低廉、运算速度快、抗干扰能力强、可靠性
高等特点。1974年,美国仙童(Fairchild)公司生产出世界上第一块单片机,短短几十
年的时间,单片机如雨后春笋一般,大量涌现出来。目前,已经出现了4位、8位和16
位单片机,甚至32位超大规模集成电路单片机也已问世,性能也在不断地提高。
国内从80年代起开始了单片机的热潮,二十多年过去了,单片机从研究所走出来,
成为与日常生活中的一个不可缺少的部件。早些时候单片机种类稀少,开发工具奇缺。
8035、8048、Z80等在现在主流市场上基本已没有踪影,用汇编语言开发产品的艰苦工
基于51单片机的贪吃蛇游戏
作也逐步被C语言取代。硬件方面日趋多样化,4位、8位、16位、32位等型号共同并
存,在不同的领域存在,如家电、玩具、工业设备、仪器、通讯。价格也从几元到几百
元不等。每一种单片都有它所擅长的领域,如PIC系列较多用于电话机、玩具,51系
列较多用于设备控制和仪器,DSP较多用于DVD、通讯等。软件方面发展主要为汇编
语言、C语言、嵌入式操作系统。速度、稳定性特别要求的场合较多采用汇编语言和C
语言,如电机控制,UPS控制、信号处理等。功能复杂、内容较多的系统多采用嵌入式
操作系统,如PDA、电子词典、游戏机等。以后的发展中,各类型号的单片机种类会进
一步增加,而开发工具和过程会逐步趋向于统一,软件和硬件差别会更加难以区分IlJ。
1.3 LCD发展状况
液晶显示器TFT LCD,全称为薄膜晶体管液晶显示器(Thin Film Transistor Liquid
Crystal Displayer),一般简称LCD(Liquid Crystal Display)。超薄体形、低功耗、低
辐射、无闪烁、完全物理平面、低反光、清晰的字符显示等等,都是大家非常熟悉的液
晶显示器LCD优点。最简单的液体晶体管就是我们常见的小型计算器以及电子手表上
面的液晶字符屏幕。他是把有机液晶原料夹在两片透明的玻璃或者有机玻璃中。没有电
流通过的时候,长棒状的原料晶体分子是无规则排列的,光线无法随意透过玻璃,外表
看上去就是黑色。通电的时候,液晶原料排列顺序随电流极向改变,光线在规则排列的
晶体分子中可以透过,液晶管由原来的非透明状态变成透明状态。通过把液晶材料进行
不同的排列,组成不同的字符形状,就能通过电流控制其开关显示,以显示出我们说需
要的字符。液晶技术发展的早期,由于液晶管的稳定性以及生产技术,还不能大量大规
模的生产,直到了英国的科学家发明了用“联苯(Biphenyl)一作为液晶管的原料,这
个问题才得以解决。1970年,弗格森制造了第一台能够工作的LCD,而在此之前的所
谓LCD都是耗电量大而且对比度极低的昂贵设备。到了1971年,这种新的液晶显示器
开始普遍地为人们接受。当然,那时候的LCD还是单色产品,但是已经不是简单的字
符型液晶屏幕了。LCD技术是把液晶灌入两片偏振玻璃之间。所谓偏振玻璃,就是光线
通过这样的玻璃之后,就会从球面波或者高斯球面波,变成只在一个平面上振动的波,
称为偏振光。偏振光只能通过相应方向的偏振玻璃,如果偏振玻璃的偏振方向和偏振光
线的有一定的夹角,就会减弱偏振光强度,甚至偏振光无法通过。如果大家对这方面有
兴趣,可以参阅有关的大学物理书籍。夹住液晶的两片偏振玻璃,假设为a、b,他们的
偏振方向会设置为90度夹角。光线通过第一片偏振玻璃a后,假设这X方向偏振,通
过液晶后,液晶通电流之后,在电场极化作用下,呈规则排列,X偏振光不会有任何改
一2一
大连理工大学专业学位硕士学位论文
变,投射到b玻璃上。而b玻璃的偏振方向为Y,就是X+90度,X偏振的光线无法通
过,在b玻璃外面看上去就是黑色了。而如果液晶没有电场作用,就是没有通电流,通
过无规则排列的液晶,X偏振光的偏振方向会发生改变,旋转90度,旋转后X偏振光
的偏振方向刚好和b偏振玻璃的偏振方向一样,就是X+90=Y,光线就能通过b玻璃了
【2】
o
1.4作者的主要工作
贪吃蛇游戏是一款经典的小游戏,前人根据不同的需求,使用不同的编程语言和算
法实现过该游戏。本次作者基于51单片机这一常用的硬件平台,充分发挥其性能,在
嵌入式平台利用C语言编程实现这款经典游戏。
由于嵌入式平台对于硬件资源有着相对于PC机开发的应用软件更为苛刻的要求,
特别是在RAM/ROM的存储空间大小上,所以本次作者将重点放在如何处理蛇的运动
轨迹方面,采用了一个无符号char型一维数组来存放蛇头的运动轨迹,并考虑到蛇身的
最大长度,将该数组定义为54,充分节省了有限的存储空间,通过处理按键,完成了对
蛇运动的控制以及游戏控制。显示游戏信息和游戏运行画面的LCDl602和LCDl2864
使用广泛,技术相对成熟,故LCD底层驱动采用前人成果,并在此基础上设计了游戏
的运行界面。单片机背景音的产生于播放也参考了许多他人的思想。
1.5本文结构
本文按照整个系统的开发流程,首先进行游戏的需求分析,然后介绍系统的架构设
计,包括论文使用的硬件结构设计,软件的结构设计与模块划分,最后是各模块的软件
详细设计与实现。
基丁51单片机的贪吃蛇游戏
2贪吃蛇游戏需求分析
贪吃蛇足一款经典小游戏,游戏的规则是:玩家通过方向键(上,下,左,右)来
控制蛇移动,在地图上吃豆子。吃掉豆子后蛇身加长,并且会增加相应分数,达到一定
分数以后升级,升级后,蛀身运动速度加快。蛇运动时撞到墙壁(屏幕框),障碍物或
者蛇身结束游戏。
奉次贪吃蛇游戏主要功能如下:选择游戏地图(4幅地图);蛇控制(移动、吃豆
子等):游戏信息(游戏时间、级别、分数、背景音开关等):游戏界面(游戏运行、
暂停、通芙等界面):游戏背景音(吃豆子、升级、通关,失败等背景音)。
2 1 游戏信息显示界面与分数等级计算规则
游戏时恻显示游戏已经运行时间,以分钟:秒形式显示(00:00)。
游戏分数显不是根据等级、蛇吃豆子的多少增加分数、显示分数。蛇吃一个豆子,
分数加lo。分数从0开始,通关后分数为2100。
游戏等级显示是根据蛇吃豆子增加分数到某个特定值增加等级数。本次设计默认等
级从1开始,吃10个豆子升到第二级,在此基础吃20个豆子升级到第三级,以此类推。
升级到第六级吃60个豆子即可通关(共吃210个豆子)。
坩广选择背景音,则屏幕右上方有喇叭图标处于打开状态显示;用户选择静音模式,
则屏幕右l一方喇叭图标处于静音状态显示。霍蚓2 1游戒信息显示界面
Fig 2】Game Information Display Interface
2 2游戏界面状态显示
上电开机后,LCDl2864界面全屏显示游戏的欢迎信息”Welcometo Snake World!”
蛇的图像,以及点击”start”键的提示信息。通过单击开始键可以进入游戏地图选择界面
丌机界面如图所示:
大连理[火学专业学位硕十学伉论文
圈2 2开机界面
FiE 2.2 Bcot Interface
游戏地图选择界面以图形的方式显示,一共4个地图。用键盘按键选择地图,单击
开始键进入游戏界面。游戏地图选择界面如图所示:
酗2 3游戏地蚓选择界面
Fig 2.3 Game Map Selection interface
游戏界面划分成游戏区与信息区。游戏开始时,游戏区中央显示有一个长为3个单
位的蛇,豆子以及选择的地图。信息区显示一个蛇图片。游戏准各运行界面如图所示:
幽2 4游戏准蔷远行界面
Fig 2 4 Game Read3+Interface
基于5l单片机的贪吃蛇游戏
游戏时游戏区由键盘控制蛇的运动方向吃豆子。信息区显示”COME ON!”及蛇图片。
游戏运行界面如图所示:
图2 5游戏运行界面
Fig 2.5 Game Running Interface
游戏暂停时,游戏区蛇的运动停止。信息区显示“EXITYESNO”。可以选择退出
游戏暂停界面如图所示:
图2 6游戏暂停界面
Fig 2.6 GmaePauseInterface
游戏通关时,蛇的运动停止,全屏显示“Congratulation!”及礼花背景。游戏通关界面
如图所示;
图2 7游戏通关界面
Fig 2.7 GameClearInterface
人连理1.大学专业学忙碗1‘学何论文
游戏结束时,全屏显不”GAME OVER!”。游戏结束界面如图所示
目2 8游戏结柬界面
Fig 2.8 GameOverlmerface
2 3游戏处理
上电以后,初始化游戏。根据玩家选择的游戏地图,柳始化地图,并且在游戏医域
崮定位置出现蛇,蛇的长度为三个单位。在随机位置出现第一个豆子。
蛇的移动:使蛇按照方向键的方向移动。
开始游戏时,蛇头和蛇尾已经固定,按丌始键游戏开始,蛇只能向左或者向右转,
不能向后。
刷新豆子:再子被吃掉后在随机位置出现豆子。豆子不能出现在和蛇身或者障碍物
重含,否则重新刷新豆子。
吃豆子:蛇头吃到豆了,蛇身变K格(在蛇头加)。
分数、等级和蛇身运动速度:游戏等级是高是六缴,默认等级从l丌始,吃1个豆
子增加10分。第一级吃10个豆子爿到第二级,第一级吃20个豆了引绒到第三级,咀
此类推,第六级吃60个豆子,Bll,,d-通关。随着等级的增加,蛇运动速度电逐渐加快
判定死亡:当蛇头碰到屏幕边缘,碰到障碍物,或者碰到蛇自己的身体时,蛇死亡,
游戏结束。
2 4背景音处理块
游戏通芙,播放游戏通关背景音。
游戏结束,播放游戏结束背景音。
游戏州绂,播放游戏升级背景音。
吃到豆子.播放吃再子背景音。
错误提示,播放无效按键背摄音。
基丁51单片机的贪吃蛇游戏
2.5键盘控制块
启动/暂停控制:点击开始键进入地图选择界面,再点开始键进入游戏界面;游戏中,
使用该键,实现暂停/开始控制。
方向控制:用上、下、左、右键选择地图。用上、下、左、右键控制蛇头运动方向。
游戏中暂停时,上、下键选择”EXIT YES NO”,左右键无效。
声音控制:用静音键控制背景音是否打开。
大连理工大学专业学位硕士学位论文
3系统架构设计
3.1软件开发环境
在本次开发中,采用了专门用于MCS.51系列单片机软件开发的C51语言,这种语
言与普通C语言相同,并提供了针对单片机的常量定义、库函数等等。C是一种源于编
写UNIX操作系统的语言,它是一种结构化语言,可产生紧凑代码。由于汇编语言程序
的可读性和可移植性都较差,用汇编语言编写单片机应用系统程序的周期长,且调试和
排错也比较困难。而一般效率高的高级语言难以实现汇编语言对于计算机硬件直接进行
操作(如对内存地址的操作移位操作等的功能)而C语言既具有一般高级语言的特点,
又能直接对计算机的硬件进行操作,并且采用C语言编写的程序能够很容易地在不同类
型的计算机之间进行移植【3】’因此许多以前只能采用汇编语言来解决的问题现在可以改
用C语言来解决。
开发环境选择了Keil uVision2编译调试,硬件仿真软件Proteus 7.1仿真运行。这样
做的目的是节省成本和缩短开发调试时间。Keil软件是目前最流行开发MCS.51系列单
片机的软件,提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调
试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起,
全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到
Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解14J。
在开发大型软件时更能体现高级语言的优势。Proteus软件是英国Labcenter公司开发的
电路分析与实物仿真软件。它运行于Windows操作系统上,可以绘制电路原理图,仿
真、分析各种模拟器件和集成电路,支持主流单片机系统和多种外围芯片的仿真,提供
软件调试功能,支持第三方的软件编译和调试环境,如Keil C51 uVision2pJ。
3.2硬件结构设计
针对第二章的需求分析,系统采用的硬件设备主要包括51系列单片机,LCDl602,
LCDl2864,按键,扬声器。
51系列单片机采用了飞利浦(PHILIPS)公司生产的型号为P87C51RD2的低功耗
高性能CMOS型8位单片机。选择该型号单片机的原因是,它内置了64K bytes的OTP
只读程序存储器(ROM)和1K bytes的随机存取数据存储器(RAM),能满足游戏对存储空
间的要求。另外配备了32个可编程的I/O端口,3个16位定时器/计数器,一个7中断
源4优先级嵌套中断结构,一个全双工串行通信口,片内震荡器及时钟电路【6l。系统利
用51单片机作为总的控制驱动单元,两个LCD分别显示游戏信息和游戏界面。LCDl602
基丁jl单片机的贪吃蛇游戒
显示游戏相关信息,包括游戏运行时间,游戏等级,游戏得分,静音图标:LCDl2864
显示游戏运行界面。按键分为六个.包括控制上下左右蛇运动方向的四键,游戏开始、
暂停键,游戏静音键。扬声器用于发出背景音。依据上述设计的总体硬件电路幽如下陶
所示。
剀31总体硬件电路幽
Fig 3 I Total Hardware Circuit Diagram
其主要运行原理是使用单片机的]/O口驱动LCD,向LCD的数据口写数据或指令,
使LCD硅示相应的游戏信息和游戏界面。单片机采用查询方式扫描键盘,肖有键按卜
的时候,单片机读取键值,按照按键的功能进入不同的游戏状态。背景音利用定时器0
和定时器1的中断,查询方式产生。蛇的运动和游戏时钟则是采用定时器2中断产生的,
当满足一定条件时通过单片机I/O F3送到LCD上进行显示I”。洋细实现将在软件详细设
大连理工大学专业学位硕士学位论文
计中介绍。
3.3软件结构设计
针对第

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值