基于51单片机的贪吃蛇游戏设计

news2024/11/24 2:08:32

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.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)的模块方案,无论硬件电路结构或显示程序都要比同种类型的点阵图形液晶显示模块简洁得多,并且这个模块的价格也均低于同种类型的点阵图形液晶模块。

(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℃

原理图:

 程序运行图:



 实物图:

资料包括: 

 

需要完整的资料可在我的资源里下载,也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/64817.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT 体验和思考

一、体验 1、辅助写代码 2、检查代码(遗憾的是,不一定是对的) 3、分析代码 4、帮你了解/入门一项陌生的技术 小结: AI 会慢慢成为程序员的得力帮手,但目前来看,似乎还是不够成熟。 当然,大多…

《软件工程》2013年期末试卷

北京信息科技大学《软件工程》2013年期末试卷

青岛山水新城二期景观设计 全套设计

目录 1前言 2 1.1 青岛市地理位置与自然概况 2 1.2 山水新城小区概况 3 1.3设计的目的和意义 4 1.4小区园林景观设计现状和发展趋势 5 2本论 6 2.1设计依据 6 2.1.1 平面规划图 6 2.1.2 国家及地方有关规定及标准 6 2.2 设计指导思想 6 2.2.1 “以人为本”的设计理念 6 2.2.2 “…

PHP毕业设计毕设辅导课(1):PHP 基础语法

PHP 基础语法 PHP 脚本在服务器上执行&#xff0c;然后将纯 HTML 结果发送回浏览器。 PHP 基本的语法和输出 PHP 脚本可以放在文档中的任何位置。 <?php // PHP 代码 ?>PHP 脚本以 <?php 开始&#xff0c;以 ?> 结束&#xff0c;代码示例如下&#xff1a; …

[附源码]Python计算机毕业设计Django天狗电子商城系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

用Prophet在Python中进行时间序列预测

预测通常被认为是报告的发展。报告可以帮助我们回答&#xff0c;发生了什么事&#xff1f;预测有助于回答下一个逻辑问题&#xff0c;将会发生什么&#xff1f; 最近我们被客户要求撰写关于时间序列预测的研究报告&#xff0c;包括一些图形和统计输出。 Prophet的目的是“使专…

[附源码]Python计算机毕业设计Django酒店客房管理信息系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;我…

问题解决:记录一次Linux服务器根目录突然爆满

一、出问题了 过了个双休来到公司&#xff0c;同时发现Linux终端的服务器状态中根目录空间直接爆满100%&#xff0c;周五走之前根目录仅仅使用了59%&#xff0c;同时项目服务的后台不停的有日志打印&#xff0c;而且测试的小伙伴说系统登录不上去了。下面记录一下个人排查并解…

CORTEX-A7芯片中断系统基本原理与控制方法

大家好&#xff0c;今天主要和大家聊一聊&#xff0c;如何使用高端芯片的中断系统的方法。 目录 第一&#xff1a;中断的基本简介 ​第二&#xff1a;GIC控制器介绍 第一&#xff1a;中断的基本简介 中断系统是一个处理器重要的组成部分&#xff0c;中断系统极大的提高了CPU的…

Webpack5 快速入门

1. webpack 介绍 2. webpack 基本使用 3. webpack 5大核心概念 4. webpack 配置文件 5. webpack 运行脚本 6. webpack 处理样式资源 一、处理 css 资源 二、处理 less 资源 三、处理 scss 资源 四、处理 stylus 资源 7. webpack 处理图片资源 8. webpack 文件输出目录…

[附源码]计算机毕业设计基于Springboot校园租赁系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【STM32学习(4)】STM32简述定时器

一、什么是定时器 有计时和定时功能的仪器组件——对于芯片来说&#xff0c;定时器含有计时和定时功能&#xff0c;片内模块——TIM 二、STM32F4xx系列定时器分类 片内外设定时器&#xff08;14个&#xff09; 高级定时器&#xff1a;TIM1、TIM8通用定时器&#xff1a;TIM2…

SASE和零信任--傻傻分不清楚

零信任和SASE&#xff0c;分别来自于两家世界级咨询公司Forrester与Gartner。 首先&#xff0c;Forrester提出零信任&#xff0c;成为近十年来最重要的安全创新理念。然后&#xff0c;Gartner提出SASE&#xff08;安全访问服务边缘&#xff09;&#xff0c;在零信任的基础上面…

[附源码]计算机毕业设计天狗电子商城系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【浅学Java】SpringBoot 配置文件

SpringBoot 配置文件1. 配置文件的作用2. 配置文件的格式.properties配置文件的格式.properties配置文件的缺点.yml配置文件的格式.yml配置文件的优点3. 配置文件的分类3.1 两种类型配置文件3.2 用户自定义配置项4. 配置信息读取4.1 自定义配置信息读取4.2 系统配置信息读取4.3…

MySQL高可用方案之MHA

目录 一、简介 二、MHA特点 三、搭建MySQL MHA 1、安装MHA 2、在所有服务器上配置无密码认证 3、在manager节点上配置MHA 4、 manager节点编辑配置文件&#xff0c;管理 mysql 节点服务器 5、在Master服务器上手动开启vip 6、在 manager 节点上测试 ssh 无密码认证 7、…

安装JDK8绿色版

前言&#xff1a;官网提供的JDK8只有安装包&#xff0c;没有绿色免安版&#xff0c;而我们开发时需要根据需求使用不同的JDK版本&#xff0c;使用安装包安装过程会写入注册表&#xff0c;不方便便携式使用&#xff0c;还会附带安装Java 8 Update&#xff0c;会自动更新。而绿色…

详细介绍NLP中文分词原理及分词工具

基于词表的分词方法 正向最大匹配算法FMM 从左到右扫描文本&#xff0c;得到词的最大匹配。 案例分析&#xff1a; 用正向最大匹配法对“秦皇岛今天晴空万里”进行中文分词&#xff0c;见下表。 词典 &#xff1a;“秦皇岛”“岛”“今天”“天晴”“晴空万里”“万里”………

《数据在外设中的存储》

【一】磁盘的物理结构 我们现在很少看到磁盘了&#xff0c;我们电脑使用的大部分使用的是nvme协议的固态硬盘&#xff0c;差一点的使用的是sata固态接口的硬盘了&#xff0c;磁盘在我们电脑上尤其是笔记本电脑上是很少存在的&#xff0c;难道磁盘真的穷途末路了吗&#xff1f;显…

confluence 6.7.1-x64.bin安装

confluence数据库的配置文件&#xff1a;# cat /var/atlassian/application-data/confluence/confluence.cfg.xml 1&#xff1a; 安装包 jdk 2&#xff1a; 执行./atlassian-confluence-6.7.1-x64.bin 设置安装目录和数据目录 启动 service confluence start 3&#xff…