基于单片机的贪吃蛇游戏设计Word文档下载推荐.docx
《基于单片机的贪吃蛇游戏设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的贪吃蛇游戏设计Word文档下载推荐.docx(53页珍藏版)》请在冰豆网上搜索。
![基于单片机的贪吃蛇游戏设计Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-11/23/2c26cd35-7c7c-4e74-863d-2c4e72cbbe15/2c26cd35-7c7c-4e74-863d-2c4e72cbbe151.gif)
afterthesnaketoeatbeans,scoresandsnake-bodyvariablelength;
Scoretoreachacertainnumberaftertheupgrade,thesnake'
smovementspeed.Playersneedtousethedirectionkey"
↑,up,down,left,right,tochangetherunningdirectionofsnake,andcanachievethepurposeofentertainment,theoperationisvery
simple.
显示对应的拉丁字符的拼音
朗读
字典-查看字典详细内容
1.名词
1.summary
2.abstract
Keywords:
GreedySnakeGame,STC89C52RCSinglechipmicrocomputer,LCD12864,Clanguage
1绪论
1.1本课题研究的背景及意义
随着当今社会的发展,人们的生活节奏变得越来越快,人们开始逐渐的融入全球化的世界。
人们已经不再局限于一小块天地,加班,出差已经占据了现代人生活的绝大部分。
这个时候,一款简单易携带、随时随地都可以玩耍的小游戏似乎成了生活必需品,无论是上下班途中,还是闲暇的工作之余,像贪吃蛇这样的小游戏都是不错的放松选择。
贪吃蛇作为一款经典的小游戏,相信绝大部分的人都玩过。
因为这款游戏牢牢地抓住了大部分人的心理,虽然简单,但趣味无穷,该游戏既能让人们体会玩游戏的快感,也能满足人们强烈的满足感,对于现代高工作量,高压力的白领一族是一种很好放松的一款游戏。
现代科技飞速发展,使得各大电子产品开始融入人们的生活,而微电子技术、计算机软件与应用技术的发展,加快了电子产品的发展更新速度,使得人们的日常生活变得更加丰富多彩。
而单片机作为电子产品的核心部件,以其独特的构造,优良的稳定性,便宜的价格在嵌入式领域广泛运用。
与以往手机上的贪吃蛇游戏不同的是:
本次设计,采用单片机作为基础,LCD12864液晶显示屏作为显示器,和扬声器、按键一起搭建硬件平台,再运用C语言编写程序,实现整个贪吃蛇游戏。
1.2国内外研究现状、水平
在国内,我国在1986年开始对单片机就行研究、发展。
此后,单片机越来越吸引人们的关注,随着1987年10月我国正式成立了国内第一个全国性单片机学会,频繁的全国性单片机学术交流会与展示会吸引了更多的人员加入单片机开发应用的行列。
我国单片机的应用也开始真正的起步了。
随着单片机在我国应用的深入,单片机的普及也得到了广泛的开展,出版了各类单片机书刊。
全国各地的单片机培训基地如雨后的春笋一般地涌出,各地也逐渐成立了当地的单片机分会。
到了1995年,已有北京、上海、深圳、江苏和天津等20多个省、市相继建立了单片机研究分会,单片机的应用技术也日趋成熟,改变了以前应用单片机一味地追求总线外接存储器与I/O的方式(这种方式虽然使用起来比较方便,但并没有真正地发挥出单片机的“单片”特点),开始逐步接受了单片机应该姓“单”的思维模式。
尤其从1991年在天津就单片机召开全国学术交流会之后,国内也逐步适应潮流,开始推广国际上流行的单片机(如摩托罗拉,NEC和飞利浦公司单片机)的应用,从而改变了Intel公司单片机一手遮天的局面。
这也
表明了我国的单片机应用真正得走上了正规。
至今单片机在我国已经走过了19个年头,虽然时间不算长,但发展是很快的。
从对单片机一无所知,到能独立设计、自行生产和批量应用,这是一个巨大的飞跃。
而在国外,Motorola是世界上最大的单片机厂商,品种全,选择余地大,新产品多,在8位机方面有68HC05和升级产品68HC08,68HC05有30多个系列200多个品种,产量超过20亿片,8位增强型的单片机68HC11也有30多个类型,年产量在1亿片以上,升级的单片机产品有68HC12,16位单片机68HC16也拥有十多个品种.32的位单片机683xx系列也有几十个品种.近年来以PowerPC,Codfire,M.CORE等作为CPU,用DSP作为辅助模块集成的单片机也纷纷推出,目前仍是单片机的首选品牌Motorola单片机特点之一是在同样的速度下所用的时钟较Intel类单片机低的多因而使得高频噪声低,抗干扰能力强,更适合用于工控领域以及恶劣环境.Motorola8位单片机过去策略是掩膜为主,最近推出OTP计划以适应单片机的发展,在32位机上,M.CORE在性能和功耗上都胜过ARM7。
1.3本课题的发展趋势
虽然目前市面上拥有各式各样的游戏,但是作为比较经典的一块游戏,贪吃蛇的市场价值还是相当大的。
原因在于它虽然简单,但是很具有诱惑力,能够让人爱不释手。
随着的进行,游戏的速度也在不断加快,能够给人越来越刺激的感受。
另外,这款游戏适合的人群范围非常广,大到70、80岁的老人,小到几岁的小孩都可以玩。
这款游戏的优势在于它简单易携带,操作性强,无论是手机,还是小的游戏机,都能够很顺利的运行。
而对于经常在外忙碌的人来说,花费大量时间在游戏、娱乐上几乎是不可能的,大型游戏对他们是行不通的,那么像贪吃蛇这样简单易行的小游戏恰好符合他们的需求。
1.4本课题的研究内容和达到的要求
本次设计主要研究的内容是通过按键输入信息到控制器单片机,再由单片机控制后面的电路,从而使显示屏显示我们需要显示的游戏界面。
需要达到的设计要求是:
①改变贪吃蛇运动方向的设计;
②贪吃蛇吃到食物后,自身的变化设计;
③食物随机产生设计;
④游戏成绩的记录设计。
2方案分析与选择
2.1系统方案设计
根据系统设计的任务和要求,设计框图如图2.1所示,图中控制器(AT89C52)位整个系统的核心部件,输入模块和显示模块用来实现人机交互的功能,其中,通过键盘输入将需要设置的参数和状态输入到单片机中,并且通过控制器显示到显示器上。
主要硬件包括STC89C52RC单片机、时钟电路、复位电路、键盘、LCD12864液晶显示屏、蜂鸣器。
图2.1系统设计框图
2.2显示器模块设计方案
由于本次设计的是贪吃蛇小游戏,所以必须要将游戏界面呈现出来,那么,具体使用那种显示器呢?
以下给出了三种方案:
方案一:
使用七段数码管(LED)显示。
虽然数码管具有亮度高、工作电压低、易于集成、驱动简单、耐冲击且性能稳定等特点,并且它可采用BCD编码显示数字,编程容易,硬件电路调试简单,但是用于显示,太消耗系统性能,而且不能显示文字等更多的提示信息,所以不宜选用。
方案二:
使用LCD1602:
通过电压对其显示区域进行控制,通电就会显示,比较方便,LCD1602具有显示质量高、数字式接口、体积小、重量轻、成本低、功耗低等优点,但通常用于显示字母和数字,不能显示游戏界面,故不采纳。
方案三:
使用LCD12864:
相比起LCD1602来说,LCD12864功能更加强大,带有汉字库,可以显示汉字和图形,而且屏幕分辨率较高,用于游戏界面显示比较好。
综上三种方案,在本次系统中,我们采用LCD12864液晶显示屏。
2.3按键输入模块设计方案
在系统中,我们需要通过按键来实现改变贪吃蛇的运动方向,以及菜单项的选择。
那么,键盘就是整个系统中不可缺少的一部分。
具体有以下两种方案以供选择:
矩阵式键盘,这种键盘I/O口利用率高,但电路连接复杂,软件编
程也比较复杂,适用于需要大量使用案件的系统。
独立式键盘,这种键盘每个按键之间是相互独立的,每个按键占用一条I/O线,当按键数量较多时,I/O口利用率不高,但程序编写简单,适用于所需按键较少的场合。
根据以上两种方案的描述,再结合我们的系统设计,显而易见,我们需要独立式键盘,所以,这里我们选择方案一。
2.4本课题的技术指标
①电源电压≥5.0V
②缓冲时间≤0.1s
2.5本课题的创新
本次设计采用51单片机作为控制器,在传统贪吃蛇游戏的基础上,采用LCD12864作为游戏显示界面,不仅能实现贪吃蛇游戏的接本操作,而且操作空间更大,可行性更高。
3系统硬件设计
3.1单片机的选择与其性能分析
3.1.1单片机概述
单片机是一种集成电路芯片,它是一种把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。
单片机也称为单片微型计算机(SingleChipMicrocomputer)。
为了方便使用,它把组成计算机的一些主要功能部件:
中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM、EPROM、E2PROM或FLASH)、定时/计数器和各种输入/输出接口电路等都集成在一块半导体芯片上,构成了一个完整的计算机系统。
与通用的计算机不同,单片机的指令功能是按照工业控制的要求设计,因此它又被称为微控制器(Microcontroller)。
3.1.2单片机STC89C52RC的介绍
STC89C52RC是由STC公司生产的新一代的高速度、抗干扰强、低功耗的单片机,它能够完全兼容传统的51单片机且其容量更大,价格更加低廉,所以在实际应用中常常使用。
其工作频率一般在0-40MHz之内,相当于一般51单片机的0-80MHz,但实际的工作频率可达到48MHz左右,用户的应用程序空间在8K字节,片上集成512字节RAM,同时该单片机无需专用的编程器和仿真器,可通过串口直接下载用户程序。
STC89C52RC单片机的工作模式如下:
正常工作模式:
典型功耗为4mA-7mA;
空闲模式:
典型功耗为2mA。
STC89C52RC单片机各管脚分配图如图3.1所示。
图3.1STC89C52RC管脚图
各引脚功能简单介绍如下:
1.VCC:
供电电压;
2.GND:
接地;
3.P0口:
P0口为一个8位漏级开路双向I/O口。
作为输出端口,每个管脚可驱动8个TTL负载,对P0口写“1”时,可以作为高阻抗输入。
4.P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口的输出缓冲器能驱动(输出或者吸收电流方式)4个TTL输入。
5.P2口:
P2口为一个内部提供上拉电阻的8位双向I/O口,P2口的输出缓冲器可驱动(输出或者吸收电流方式)4个TTL输入,当P2口写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入口。
作为输入口使用时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。
6.P3口:
P3口是一个带内部上拉电阻的8为双向I/O端口,其输出缓冲器可驱动(输出或者吸收电流方式)4个TTL输入。
7.RST:
复位输入。
当输入两个连续机器周期以上高电平时为有效,用来完成单片机的复位初始化操作。
8.ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存低8位地址的输出脉冲。
9.PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取址期间,每个机器周期PSEN两次有效。
但在访问内部数据存储器时,这两次有效的PSEN信号将不会出现;
10.EA/VPP:
当EA保持低电平时,访问外部ROM;
加密方式1时,EA将内部锁定为RESET;
当EA端保持高电平时,访问内部ROM。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP);
11.XTAL1:
内部时钟工作电路和反向振荡放大器的输入端;
12.XTAL2:
反向振荡器的输入端。
3.1.3单片机最小系统的介绍
单片机最小系统,或者称为单片机的最小应用系统,是指用最少的元件组成的单片机可以工作的系统。
对51系列单片机来说,最小系统一般应该包括:
单片机、晶振电路和复位电路。
复位电路:
单片机中的复位电路就好像是电脑的重启部分,当电脑在使用过程中出现死机时,按下电脑的重启按钮即可恢复。
单片机在使用中也一样,当单片机系统在运行过程中受到环境干扰出现程序出错的时候,按下复位按钮即可使内部的程序自动从头开始执行。
晶振电路:
51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
在51单片机中,晶振输
出的脉冲周期为脉冲周期,12个脉冲周期为机器周期,单片机工作时间的最小值即为该单片机的机器周期。
单片机的最小系统如图3.2所示。
图3.2单片机最小系统的电路图
3.2LCD12864简介
3.2.1LCD12864概述
带中文字库的128*64是一种具有2线与3线串行以及4位/8位并行等多种接口方式,其内部包含有国家标准一级和二级简体的中文字库的点阵的图形液晶显示模块;
其屏幕分辨率是128*64,内含16*16点汉字8192个,和16*8点ASCII码字符集128个。
利用该模块较为灵活的接口方式与简单并且方便的操作指令,可以构建全中文的人机交互图形的界面。
此界面可以显示8*4行16*16点阵的汉字,也可以完成图形的显示,低电压且低功耗是它的又一独特的特点。
由此模块组成的液晶显示器(LCD)的模块方案,无论硬件电路结构或显示程序都要比同种类型的点阵图形液晶显示模块简洁得多,并且这个模块的价格也均低于同种类型的点阵图形液晶模块。
3.2.2LCD128*64的基本特性
(1)低电压(VDD:
+3.0——+5.5V)
(2)屏幕分辨率:
128*64点
(3)内置8192个16*16点阵汉字的字库(繁简体可任选)
(4)内置16*8点阵字符128个
(5)2MHZ时钟频率
(6)显示方式:
半透、STN、正显
(7)驱动方式:
1/5BIAS,1/32DUTY
(8)视角方向:
6点
(9)背光方式:
侧部为高亮白色LED,功耗仅仅为普通LED的1/5—1/10
(10)通讯方式:
并口、串行可任选
(11)内置DC-DC转换电路,不需要外加负压
(12)不需要片选信号,简化软件的设计
(13)储存温度:
-20℃—+60℃,工作温度:
0℃—+55℃
3.2.3模块接口说明
表3.3.1模块接口
管脚号
管脚名称
电平
管脚功能的描述
1
VSS
0V
电源地
2
VCC
3.0+5V
电源电压
3
V0
-
对比度调整
4
RS(CS)
H/L
RS=“H”,DB7—DB0表示显示数据
RS=“L”,DB7—DB0表示显示指令数据
5
R/W(SID)
R/W=“H”,E=“H”,DDRAM数据读取到DB7—DB0
R/W=“L”,E=“H→L”,DB7—DB0的数据将会被写入IR或DR
6
E(SCLK)
使能信号
7
DB0
数据线
8
DB1
9
DB2
10
DB3
11
DB4
12
DB5
13
DB6
14
DB7
15
PSB
H:
4位/8位并口方式,L:
串口方式(见注释1)
16
NC
空脚
17
/RESET
复位端,低电平有效(见注释2)
18
VOUT
LCD负电压驱动
19
A
VDD
背光源正端(+5V)(见注释3)
20
K
背光源负端(见注释3)
*注释1:
若在实用中只使用串口通讯的模式,可将PSB接通固定低电平,也可以把模块中的“GND”和J8用焊锡焊接。
*注释2:
模块的内部接有上电复位电路,因此可以把该端悬空在不用经常性复位的地方。
*注释3:
如果背光与模块共用同一个电源的话,可以将模块上的JK、JA用焊锡短接起来。
控制器接口信号的说明:
表3.3.2RS,R/W的选择配合确定控制界面的4种模式
RS
R/W
功能说明
L
MPU写指令进入指令暂存器(IR)
H
读出忙标志(BF)及地址记数器(AC)的状态
MPU写入数据进入数据暂存器(DR)
MPU从数据暂存器(DR)中读取数据
表3.3.3E信号
E状态
执行动作
结果
高—>
低
I/O缓冲—>
DR
配合/W进行写指令与数据
高
DR—>
I/O缓冲
配合R进行读指令与数据
低/低—>
无动作
●忙标志:
BF
BF标志提供内部的工作情况.BF=1表示模块正在进行内部的操作,此刻模块不接收外部数据和指令.当BF=0时,模块此刻为准备状态,可随时接收外部数据和指令.使用STATUSRD指令,能够将BF读到DB7总线,从而测试模块的工作状态.
●字型产生ROM(CGROM)字型产生ROM(CGROM)提供8192个该触发器,可以对模块屏幕开关显示进行控制。
当DFF=1时为开显示(DISPLAYON),此时DDRAM的内容将显示在屏幕上,当DFF=0时为关显示(DISPLAYOFF)。
此时DFF的状态是由RST信号和指令DISPLAYON/OFF来控制的。
●显示数据RAM(DDRAM)模块的内部会显示数据RAM提供64*2个位元组的空间,最多可以控制4行16字(64个字)的中文字符显示,当写入显示数据RAM时,能够分别显示CGROM和CGRAM的字型;
该模块能够显示三种字型,分别是半角英数字型(16*8)、CGRAM字型以及CGROM的中文字型,根据在DDRAM中写入的编码选择这三种字型,在0000H—0006H的编码中(其代码分别为0000、0002、0004、0006,总共4个)将会选择CGRAM的自定义字型,在02H—7FH的编码中将选择半角英数字字型,而A1以上的编码将会自动的结合下一个位元组,组成两个位元组的编码而形成中文字型的编码BIG5(A140—D75F),GB(A1A0-F7FFH)。
●字型产生RAM(CGRAM)字型产生RAM能提供图象定义(造字)的功能,可以提供4组16*6点的自定义的图象空间,用户可以将内部没有提供的图象字型自行定义到CGRAM中,便可以和CGROM中的定义一样地通过DDRAM显示在屏幕上。
●地址计数器AC地址计数器是用来储存DDRAM/CGRAM之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CGRAM的值时,地址计数器的值就会自动加一,当RS为“0”时而R/W为“1”时,地址计数器的值会被读取到DB6——DB0中。
●光标/闪烁电路此模块提供硬体光标以及闪烁控制电路,由地址计数器AC的值来决定DDRAM中的光标和闪烁位置。
3.2.4指令说明
模块控制芯片提供两种控制命令,基本指令与扩充指令,具体如下:
表3.4.1指令表1:
(RE=0:
基本指令)
指令
指令码
功能
D7
D6
D5
D4
D3
D2
D1
D0
清除
显示
将DDRAM装满"
20H"
而且设置DDRAM的地址计数器(AC)为"
00H"
地址
归位
X
设定DDRAM的地址计数器(AC)为"
然后将游标换到开始原点的位置;
此指令不影响DDRAM的内容
显示状态开