基于8086贪吃蛇游戏系统方恨设计

news2024/11/26 6:19:14

**单片机设计介绍,基于8086贪吃蛇游戏系统方恨设计

文章目录

  • 一 概要
  • 二、功能设计
  • 三、 软件设计
    • 原理图
  • 五、 程序
  • 六、 文章目录

一 概要

  基于8086的贪吃蛇游戏系统设计是一个结合了微处理器控制、游戏逻辑以及图形显示技术的综合性项目。该系统旨在通过8086微处理器实现贪吃蛇游戏的基本功能和玩法,让玩家能够在计算机上体验到经典游戏的乐趣。以下是对该设计的概要描述:

一、设计目标与要求

设计一个基于8086微处理器的贪吃蛇游戏系统,实现贪吃蛇游戏的核心功能。
游戏界面应简洁明了,贪吃蛇的移动、食物的生成以及碰撞检测等应准确无误。
游戏应具备良好的用户体验,包括合理的按键控制、流畅的游戏流程以及适中的游戏难度。
二、系统构成与工作流程

硬件构成:系统主要由8086微处理器、显示器、键盘输入模块以及可能的音频输出模块组成。显示器用于显示游戏界面,键盘输入模块用于接收玩家的控制指令,音频输出模块用于播放游戏音效(如果有的话)。
工作流程:
系统上电后,8086微处理器初始化游戏界面,包括设置游戏边界、生成初始的贪吃蛇和食物等。
玩家通过键盘输入模块控制贪吃蛇的移动方向。
8086微处理器根据玩家的指令更新贪吃蛇的位置,并检测是否吃到食物或撞到边界/自身。
如果贪吃蛇吃到食物,则食物消失并生成新的食物,同时贪吃蛇变长;如果撞到边界或自身,则游戏结束。
游戏过程中,8086微处理器实时更新显示器上的游戏界面,以反映贪吃蛇的移动和食物的变化。
三、软件设计

游戏界面设计:设计一个简洁明了的游戏界面,包括贪吃蛇、食物以及游戏边界等元素。可以使用简单的图形和颜色来表示这些元素。
游戏逻辑设计:编写游戏逻辑代码,实现贪吃蛇的移动、食物的生成以及碰撞检测等功能。确保游戏逻辑的准确性和稳定性。
按键控制设计:设计合理的按键控制方案,使玩家能够方便地控制贪吃蛇的移动方向。可以选择常见的键盘按键作为控制键。
四、优化与扩展

性能优化:对游戏代码进行优化,提高游戏的运行速度和响应速度,确保玩家获得流畅的游戏体验。
功能扩展:可以考虑添加一些扩展功能,如增加游戏难度级别、添加音效和背景音乐、实现多人对战等,以增加游戏的趣味性和可玩性。
综上所述,基于8086的贪吃蛇游戏系统设计是一个结合了微处理器控制、游戏逻辑以及图形显示技术的综合性项目。通过合理的设计和实现,我们可以得到一个既经典又有趣的游戏系统,让玩家在8086微处理器上重温贪吃蛇游戏的乐趣。

二、功能设计

微机原理-基于8086贪吃蛇游戏系统方恨设计-protues仿真设计资料,通过lcd12864做显示,通过四个按键上下左右来控制贪吃蛇。

三、 软件设计

本系统原理图设计采用Altium Designer19,具体如图。在本科单片机设计中,设计电路使用的软件一般是Altium Designer或proteus,由于Altium Designer功能强大,可以设计硬件电路的原理图、PCB图,且界面简单,易操作,上手快。Altium Designer19是一款专业的整的端到端电子印刷电路板设计环境,用于电子印刷电路板设计。它结合了原理图设计、PCB设计、多种管理及仿真技术,能够很好的满足本次设计需求。

————————————————

仿真实现
本设计利用protues8.7软件实现仿真设计,具体如图。

Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。另外,protues还能实现PCB的设计,在仿真中也可以与KEIL实现联调,便于程序的调试,且支持多种平台,使用简单便捷。
————————————————

原理图

在这里插入图片描述

五、 程序

本设计利用KEIL5软件实现程序设计,具体如图。作为本科期间学习的第一门编程语言,C语言是我们最熟悉的编程语言之一。当然,由于其功能强大,C语言是当前世界上使用最广泛、最受欢迎的编程语言。在单片机设计中,C语言已经逐步完全取代汇编语言,因为相比于汇编语言,C语言编译与运行、调试十分方便,且可移植性高,可读性好,便于烧录与写入硬件系统,因此C语言被广泛应用在单片机设计中。keil软件由于其兼容单片机的设计,能够实现快速调试,并生成烧录文件,被广泛应用于C语言的编写和单片机的设计。
在这里插入图片描述

————————————————

在这里插入图片描述

六、 文章目录

目 录

摘 要 I
Abstract II
引 言 1
1 控制系统设计 2
1.1 主控系统方案设计 2
1.2 传感器方案设计 3
1.3 系统工作原理 5
2 硬件设计 6
2.1 主电路 6
2.1.1 单片机的选择 6
2.2 驱动电路 8
2.2.1 比较器的介绍 8
2.3放大电路 8
2.4最小系统 11
3 软件设计 13
3.1编程语言的选择 13
4 系统调试 16
4.1 系统硬件调试 16
4.2 系统软件调试 16
结 论 17
参考文献 18
附录1 总体原理图设计 20
附录2 源程序清单 21
致 谢 25

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

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

相关文章

JAVA----线程

线程 上回说到 进程 > 运行起来的程序 > 并发编程 > 多核 CPU 操作系统管理进程: 先描述 > PCB 结构体 来把进程的各种属性都表示出来再组织 > 通过链表数据结构把多个 PCB 串起来. PCB 核心属性(进程调度) pid 进程标识符内存指针, 该进程依赖的 指令…

NIKKI DENSO伺服驱动器维修NCR-CAB1A2D-801B

NEXSRT伺服驱动器维修NPSA-MU日机电装伺服维修ACTUS POWER,NCS-ZE12MDA/ZE1MDA-601A,NEXSRT日机电装伺服维修NCS-ZE12MDB-401A/NCS-ZAMDA-401AG。 NIKKI常见故障原因及处理方法: 1、电机在一个方向上比另一个方向跑得快; (1) 故…

Keil MDK 5.37 及之后版本 安装 AC5(ARMCC) 编译器详细步骤

由于 Keil 5.37 及之后版本不再默认安装 AC5(ARMCC) 编译器,这就会导致由 AC5 编译的工程无法正常编译,往往输出窗口会提示以下信息:*** Target ‘STM32xxxx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available. —…

Redis数据库:概念、安装及常用操作命令

目录 前言 一、数据库概述 1、关系型数据库(RDBMS) 1.1 产生背景 1.2 概念 1.3 特点 1.4 优缺点 1.5 常见主流关系型数据库 2、非关系型数据库(NoSQL) 2.1 产生背景 2.2 概念 2.3 特点 2.4 优缺点 2.5 常见主流非关…

实验三 Java类的继承与派生(计算机专业)

实验三 Java类的继承与派生(头歌) 制作不容易,点个关注!给大家带来更多的价值! 目录 实验三 Java类的继承与派生(头歌)** 制作不容易,点个关注!给大家带来更多的价值&…

HBase(超级无敌详细PROMAX讲解版)

简介 概述 图-1 HBase图标 HBase原本是由Yahoo!公司开发的后来贡献给了Apache的一套开源的、基于Hadoop的、分布式的、可扩展的非关系型数据库(Non-Relational Database),因此HBase不支持SQL(非关系型数据库基本上都不支持SQL),而是提供了一套单独的命…

文件搜索案列 --java

目标: 搜索盘符下面符合要求的文件名,并可以选择是否打开该文件 代码: import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.Scanner;public class findQQ {public static void main(String[] a…

Node.js-------初识Node.js与内置模块

能够知道什么是 Node.js能够知道 Node.js 可以做什么能够说出 Node.js 中的 JavaScript 的组成部分能够使用 fs 模块读写操作文件能够使用 path 模块处理路径能够使用 http 模块写一个基本的 web 服务器 一.初识Node.js 1.浏览器中的 JavaScript 的组成部分 2.Node.js 简介 …

vscode安装通义灵码

作为vscode的插件,直接使用 通义灵码-灵动指间,快码加编,你的智能编码助手 通义灵码,是一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研…

【日常记录】【JS】createNodeIterator 遍历DOM节点

文章目录 1、介绍2、createNodeIterator3、nodeType4、参考链接 1、介绍 createNodeIterator() 方法是 DOM API 中的一个方法,用于创建一个 NodeIterator 对象,可以用于遍历文档树中的一组 DOM 节点。就是可以把DOM 变成可遍历的 2、createNodeIterator …

SVM简介 详细推导 核函数 线性可分 非线性可分

SVM(Support Vector Machine) Vapnik发明用于解决二分类问题的机器学习算法。 线性可分与非线性可分 在二维平面中,线性可分指的是可以通过一条直线对平面上的点进行划分使得标签相同的点在直线的同一侧,标签不同的点在直线的不同侧。 在二维平面中&…

Linux:基本指令篇

文章目录 前言1.ls 指令2.pwd命令3.cd 指令4.touch指令5.mkdir指令(重要)6.rmdir指令 && rm 指令(重要)7.man指令(重要)8.cp指令(重要)9.mv指令(重要&#xff09…

时序数据库IoTDB:功能详解与行业应用

一文读懂时序数据库 IoTDB。 01 为什么需要时序数据库 解释时序数据库前,先了解一下何谓时序数据。 时序数据,也称为时间序列数据,是指按时间顺序记录的同一统计指标的数据集合。这类数据的来源主要是能源、工程、交通等工业物联网强关联行业…

【Java面试题系列】基础篇

目录 基本常识标识符的命名规则八种基本数据类型的大小,以及他们的封装类3*0.10.3返回值是什么short s1 1; s1 s1 1;有什么错? short s1 1; s1 1;有什么错?简述&&与&的区别?简述break与continue、return的区别?Arrays类的…

直方图均衡化的本质

Rafael C. Gonzalez “Digital Image Processing”的错误 直方图均衡化的本质是灰度级分布的近邻映射,这部分的内容全错。总有些人崇洋媚外。 我修改了相关的内容,参阅禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程…

如何在Linux系统运行RStudio Server并实现无公网IP远程访问【内网穿透】

文章目录 推荐 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…

【Leetcode】top 100 二分查找

35 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。 基础写法!!!牢记…

【算法刷题day14】Leetcode:144.二叉树的前序遍历、94.二叉树的中序遍历、145.二叉树的后序遍历

文章目录 二叉树递归遍历解题思路代码总结 二叉树的迭代遍历解题思路代码总结 二叉树的统一迭代法解题思路代码总结 草稿图网站 java的Deque 二叉树递归遍历 题目: 144.二叉树的前序遍历 94.二叉树的中序遍历 145.二叉树的后序遍历 解析:代码随想录解析…

RN实现全局数据共享(非Redux,使用原生内置的方法实现)

下面这个方法是在RN使用全局数据共享的,使用原生React的方式搞得,相对于Redux配置相对简单,适合小型项目 项目内创建MyContext.js // MyContext.jsimport React from react;const MyContext React.createContext();export default MyContext;App.js引入 // App.jsimport Rea…

在c# 7.3中不可用,请使用9.0或更高的语言版本

参考连接:在c# 7.3中不可用,请使用8.0或更高的语言版本_功能“可为 null 的引用类型”在 c# 7.3 中不可用。请使用 8.0 或更高的语言版本-CSDN博客https://blog.csdn.net/liangyely/article/details/106163660 [踩坑记录] 某功能在C#7.3中不可用,请使用 8.0 或更高的…