基于51单片机的贪吃蛇游戏设计
表明了我国的单片机应用真正得走上了正规。
至今单片机在我国已经走过了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显示器模块设计方案
由于本次设计的是贪吃蛇小游戏,所以必须要将游戏界面呈现出来,那么,具体使用那种显示器呢?以下给出了三种方案:
方案三:使用LCD12864:相比起LCD1602来说,LCD12864功能更加强大,带有汉字库,可以显示汉字和图形,而且屏幕分辨率较高,用于游戏界面显示比较好。
2.4 本课题的技术指标
2.5 本课题的创新
本次设计采用51单片机作为控制器,在传统贪吃蛇游戏的基础上,采用LCD12864作为游戏显示界面,不仅能实现贪吃蛇游戏的接本操作,而且操作空间更大,可行性更高。
3 系统硬件设计
3.1单片机的选择与其性能分析
3.1.1 单片机概述
3.1.2 单片机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系列单片机来说,最小系统一般应该包括:单片机、晶振电路和复位电路。
出的脉冲周期为脉冲周期,12个脉冲周期为机器周期,单片机工作时间的最小值即为该单片机的机器周期。单片机的最小系统如图3.2所示。
图3.2 单片机最小系统的电路图
3.2 LCD12864简介
3.2.1 LCD12864概述
(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℃
原理图:
程序运行图:
实物图:
资料包括:
需要完整的资料可在我的资源里下载,也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。
纷传点击用微信打开即可,过程有点繁琐请见谅。
基于51单片机的贪吃蛇游戏设计相关推荐
- 基于51单片机的贪吃蛇小程序(8*8LED点阵实现)by_jy
** 基于51单片机的贪吃蛇小程序(8*8LED点阵实现)by_jy ** 一直很想写一个贪吃蛇的小程序,这两天终于抽空完成了,这里把我的思路分享给大家,仅供参考! 代码如下: 先放段主函数压压惊 v ...
- java毕业设计——基于java+J2ME的贪吃蛇游戏设计与实现(毕业论文+程序源码)——贪吃蛇游戏
基于java+J2ME的贪吃蛇游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+J2ME的贪吃蛇游戏设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下载开题报告P ...
- 【STM32单片机】贪吃蛇游戏设计
文章目录 一.主要功能 二.硬件资源 1.硬件准备 2.硬件连接 四.软件设计 1.软件结构 2.主要代码 五.实验现象 联系作者 一.主要功能 系统运行后,TFTLCD触摸屏显示游戏界面,通过按键任 ...
- 基于单片机的贪吃蛇游戏设计_前端入门,基于html,css,javascript的贪吃蛇游戏
源代码: 贪吃蛇 .box1{ font-size: 15px; float:left; display: block; margin-right: 150px; } .box2{ font-size ...
- 基于汇编语言实现的贪吃蛇游戏设计
8086 汇编初学之贪吃蛇 前言 一直没想过要去学习汇编,觉得需要用汇编的场合无非三种: 与硬件结合很紧密高级语言做不到 时空效率要求甚高算法层面已不能优化到 逆向破解等只能用某些途径看其汇编指令 其 ...
- 基于51单片机的贪吃蛇小游戏8X8点阵 proteus仿真原理图程序
硬件设计 基于C51作为MCU 一块8X8点阵作为游戏的显示器 四个按键作为操控按键 仿真图: 程序设计 #include <at89x51.h> #include "18b20 ...
- 基于51单片机的贪吃蛇小游戏
#include <reg52.h>// 点阵寄存器定义 sbit LOAD = P1 ^ 0; sbit CLK = P1 ^ 1; sbit DATA = P1 ^ 2;sbit mK ...
- 基于单片机的贪吃蛇游戏
绪论 1.1 研究背景与意义 随着社会的发展,人们生活的步调日益加快,越来越多的人加入了全球化的世界. 人们不再拘泥于--,J,块天地,加班,出差成了现代人不可避免的公务.而此时一款可以 随时随地娱乐 ...
- 基于verilog贪吃蛇游戏设计
概述 基于verilog贪吃蛇游戏设计.使用verilog语言 小游戏主要分为以下几个模块:顶层模块.VGA显示模块.蛇身控制模块.苹果控制模块. 系统主要分为顶层模块.VGA显示模块.蛇身控制模块. ...
最新文章
- GBDT 和 AdaBoost区别?
- 微信登录电脑,手机接收消息仍有提示音设置方法
- 告诉你,初学网络安全应该怎样去学呢?安排的明明白白的
- Zookeeper的目录结构
- 疯狂的程序员-第三章
- 启明云端分享|sigmastar debug工具使用说明(一)
- 5G NR SRS (R15)
- 第一次使用最新开发的在线编辑器讲课记录笔记
- Oracle Service Bus简介
- 人月神话阅读笔记之二
- [转] 2018年冬流感通知
- 【论文写作】毕业论文该如何选择自己的导师?
- excel函数手册_一个函数高手的成长之路
- html5扫雷代码,使用js开发网页版 扫雷(附代码详解)
- edge浏览器开启ie兼容模式
- 计算机用户原始密码是多少,administrator初始密码是多少
- 无线路由器当无线交换机后,如何进入路由器配置界面
- linux下view如何修改字符串,Linux下view命令的使用
- UWP 禁止Pivot swip 手势
- cocos2d-js的(layer)生命周期,ctor,onEnter,onExit的使用