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, Cod fire, M.CORE等作为 CPU,用 DSP 作为辅助模块集成的单片机也纷纷推出,目前仍是单片机的首选品牌Motorola单片机特点之一是在同样的速度下所用的时钟较Intel 类单片机低的多因而使得高频噪声低,抗干扰能力强,更适合用于工控领域以及恶劣环境.Motorola 8 位单片机过去策略是掩膜为主,最近推出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口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。单片机也称为单片微型计算机(Single Chip Microcomputer)。为了方便使用,它把组成计算机的一些主要功能部件:中央处理器(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.1 STC89C52RC管脚图
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.2 LCD12864简介
3.2.1 LCD12864概述
带中文字库的128*64是一种具有2线与3线串行以及4位/8位并行等多种接口方式,其内部包含有国家标准一级和二级简体的中文字库的点阵的图形液晶显示模块;其屏幕分辨率是128*64, 内含16*16点汉字8192个,和16*8点ASCII码字符集128个。
利用该模块较为灵活的接口方式与简单并且方便的操作指令,可以构建全中文的人机交互图形的界面。此界面可以显示8*4行16*16点阵的汉字,也可以完成图形的显示,低电压且低功耗是它的又一独特的特点。由此模块组成的液晶显示器(LCD)的模块方案,无论硬件电路结构或显示程序都要比同种类型的点阵图形液晶显示模块简洁得多,并且这个模块的价格也均低于同种类型的点阵图形液晶模块。
3.2.2 LCD128*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℃