基于51单片机的贪吃蛇游戏
基于单片机的贪吃蛇设计
![基于单片机的贪吃蛇设计](https://img.taocdn.com/s3/m/673e7a1b3b3567ec102d8ab9.png)
基于单片机的贪吃蛇设计本篇论文主要是设计并且着手致力于实现一种基于51单片机的经典的贪吃蛇游戏,主要是研究该游戏的硬件电路和软件编程的设计,同时也简单介绍了应该如何使用Proteus软件进行仿真。
借助仿真软件进行实验测试,可以基本实现游戏一些简单的基本功能。
直至现在,大家都知道且明白了51系列的单片机技术相对而言比较成熟,功能也十分强大,应用较为广泛。
将单片机作为本设计的控制核心,能够使硬件电路大大地简化,用软件来编程控制单片机,来加以实现硬件电路的功能,可以降低能耗,同时也节约成本。
选用C语言编程,比较方便灵活,极大地加快了软件开发的速度,使开发周期缩短了,同时方便移植。
本篇论文比较详细的的介绍了各种硬件的基本特性,贪吃蛇游戏实现的基本功能与详细设计,软件设计的具体说明,每一个模块的细节要求,还有一些功能模块的程序流程图和关键部分代码的详细讲解等。
关键词:Proteus软件仿真;51单片机;Keil;贪吃蛇;LED点阵屏目录1 绪论 (1)1.1研究背景及意义 (1)1.2单片机发展状况 (1)1.3 LED发展状况 (2)1.4 设计特点 (3)2 系统总体设计 (3)2.1设计要求 (3)2.2 系统设计方案 (4)2.2.1硬件设计 (4)2.2.2软件设计 (4)3系统硬件设计 (4)3.18*8LED点阵的原理说明 (4)3.2 LED阵列驱动电路 (4)4系统软件设计 (5)4.1系统主要模块介绍 (5)4.1.1 主函数模块 (6)4.1.2 按键模块 (6)4.1.3 蛇运动控制模块 (6)4.2主程序工作流程 (6)4.3 游戏设计思想 (7)4.4 LED点阵初始化 (8)4.5 贪吃蛇的移动 (9)4.6 食物的随机出现 (9)5联调与测试 (9)5.1软件调试 (9)5.2硬件调试 (10)结论与展望 (13)附录A:系统原理图 (14)附录B:系统PCB图 (15)附录C:系统仿真图 (16)附录D:系统实物图 (16)附录E:系统源程序 (18)1 绪论1.1研究背景及意义时代在不断的进步,人们的生活节奏也因此不断加快,越来越多的人加入了经济化全球化的世界。
毕业设计(论文)-贪吃蛇游戏的设计
![毕业设计(论文)-贪吃蛇游戏的设计](https://img.taocdn.com/s3/m/460c8dcab9f3f90f76c61b2e.png)
本科毕业论文(设计)(2015届)贪吃蛇游戏的设计院 系 电子信息工程学院专 业 电气工程及其自动化姓 名指导教师 副教授2015年4月摘要本篇论文主要是设计并且着手致力于实现一种基于51单片机的经典的贪吃蛇游戏,主要是研究该游戏的硬件电路和软件编程的设计,同时也简单介绍了应该如何使用Proteus软件进行仿真。
借助仿真软件进行实验测试,可以基本实现游戏一些简单的基本功能。
直至现在,大家都知道且明白了51系列的单片机技术相对而言比较成熟,功能也十分强大,应用较为广泛。
将单片机作为本设计的控制核心,能够使硬件电路大大地简化,用软件来编程控制单片机,来加以实现硬件电路的功能,可以降低能耗,同时也节约成本。
选用C语言编程,比较方便灵活,极大地加快了软件开发的速度,使开发周期缩短了,同时方便移植。
本篇论文比较详细的的介绍了各种硬件的基本特性,贪吃蛇游戏实现的基本功能与详细设计,软件设计的具体说明,每一个模块的细节要求,还有一些功能模块的程序流程图和关键部分代码的详细讲解等。
关键词:Proteus软件仿真;51单片机;Keil;贪吃蛇;LED点阵屏AbstractThis paper is mainly committed to the design and begin a 51 microcontroller based on the classic Snake game, is to study the hardware circuit design and software programming of the game, but also a brief introduction to how to use Proteus simulation software . With simulation software experimental tests, the basic realization of the game can be some simple basic functions. Until now, we all know and understand the 51 series of single-chip technology is relatively mature, the function is also very powerful, is widely used. The microcontroller as control core of this design, enabling greatly simplify the hardware circuit with microcontroller programming control software, hardware circuitry to be functional, you can reduce energy consumption, but also cost savings. Selection of the C programming language, more convenient and flexible, which greatly accelerated the pace of software development, shorten the development cycle, while convenient for transplant. This paper a more detailed introduction to the basic characteristics of various hardware realization of the basic functions of the Snake game with detailed design, software design, specify the details of the requirements of each module, there are some functional modules of the program flow chart and explain in detail the critical parts of the code and so on.Keywords:Proteus software simulation;51 microcontroller;Keil;Snake;LED lattice;目录摘要 (I)Abstract (II)目录 (Ⅲ)1 绪论 (1)1.1研究背景及意义 (1)1.2单片机发展状况 (1)1.3 LED发展状况 (2)1.4 设计特点 (3)2 系统总体设计 (3)2.1设计要求 (3)2.2 系统设计方案 (4)2.2.1硬件设计 (4)2.2.2软件设计 (4)3系统硬件设计 (4)3.18*8LED点阵的原理说明 (4)3.2 LED阵列驱动电路 (4)4系统软件设计 (5)4.1系统主要模块介绍 (5)4.1.1 主函数模块 (6)4.1.2 按键模块 (6)4.1.3 蛇运动控制模块 (6)4.2主程序工作流程 (6)4.3 游戏设计思想 (7)4.4 LED点阵初始化 (8)4.5 贪吃蛇的移动 (9)4.6 食物的随机出现 (9)5联调与测试 (9)5.1软件调试 (9)5.2硬件调试 (10)结论与展望 (13)致谢 (14)参考文献 (15)附录A:系统原理图 (16)附录B:系统PCB图 (17)附录C:系统仿真图 (18)附录D:系统实物图 (18)附录E:系统源程序 (20)1 绪论1.1研究背景及意义时代在不断的进步,人们的生活节奏也因此不断加快,越来越多的人加入了经济化全球化的世界。
毕业设计(论文)基于单片机的微型游戏机贪吃的蛇
![毕业设计(论文)基于单片机的微型游戏机贪吃的蛇](https://img.taocdn.com/s3/m/d09d7f9b83d049649b6658af.png)
基于单片机的微型游戏机—贪吃的蛇摘要单片微型机简称单片机,它是在一片芯片上集成了中央处理部件,存储器、定时器/计数器和各种输入输出设备等接口部件。
单片机是微机发展的一个重要的分支,自问世以来,性能不断地改善和提高,加之单片机具有集成度高、功能强、速度快、体积小、功耗小、使用方便、性能可靠、价格便宜等优点,故在工业控制、数据采集和处理、通信系统、家用电器等领域的应用日益广泛。
国内虽然起步较晚,但单片机的潜力越来越被人们所重视,尤其在工业控制、自动化仪器仪表、计算机系统接口、智能化外设等应用领域发展很快。
它的应用对于产品升级换代、机电一体化都具有重要的意义,在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数,被用于各种不同产品的生产。
在通信行业更为广泛利用,手机从只能基本通话,到现在一台手机拥有各种不同的功能,单片机得到了广泛的应用。
手机可以听音乐,听收音机,玩游戏,照相片等等,比较流行的手机游戏贪吃蛇就能用单片机实现。
关键词:51单片机贪吃蛇游戏Based on single chip micro-game - greedy snakeABSTRACTSingle-chip microprocessor referred to as microcontrollers, which is integrated on a chip, a central processing unit, memory, timer / counters and a variety of input and output devices such as Interface Unit. SCM is a microprocessor development, an important branch, since its inception, performance, continuous improvement and increase, coupled with microcontroller with an integrated high, strong function, high speed, small size, power consumption, easy to use, reliable, cheap, etc. advantages, so in the industrial control, data acquisition and processing, communication systems, home appliances and other fields increasingly wide range of applications. Although the domestic late start, but the potential of SCM has been growing attention, especially in industrial control, automation instruments and meters, computer system interface, intelligent peripherals and other applications developed rapidly. Its application for the upgrading of products, mechanical and electrical integration, have important significance in industrial production, current, voltage, temperature, pressure, flow, flow rate and switching capacity are commonly used parameters of the main accused, was used for a variety production of different products. More extensive use of the communications industry, cell phone calls from can only be basic to the present, mobile phones have a variety of functions, single-chip has been widely used. Phone can listen to music, listening to the radio, play games, according to photos, etc., the more popular cell phone game Snake will be able to use SCM.Keyword:51singlechip snake game目录1 第一章绪论 (1)1.1概述 (1)1.2选题背景 (1)1.3课题分析 (1)1.4思路设计 (1)2第二章系统的基本组成和工作原理 (2)2.1系统的基本组成 (2)2.2系统的工作原理 (2)3第三章显示电路的选取和设计 (2)3.1游戏显示的器件选择 (2)3.2显示功能的硬件电路 (3)4第四章键盘扫描的电路设计 (4)4.1键盘扫描思路设计 (4)4.2键盘硬件电路设计 (4)5第五章系统程序设计 (5)5.1编译软件 (5)5.2软件设计工具 (5)5.3C51 优化的 C 语言交叉编译器 (10)5.4系统设计流程图 (11)参考文献 (15)附录 (16)谢辞 (43)1 第一章绪论1.1概述本设计采用80C51核心的单片机最小系统,80C51是MCS—51系列单片机钟CHMOS工艺的一个典型品种。
基于51单片机贪吃蛇游戏设计资料
![基于51单片机贪吃蛇游戏设计资料](https://img.taocdn.com/s3/m/0fa93140be23482fb4da4c89.png)
中文摘要摘要本文设计了一款新颖的以单片机为控制核心的贪食蛇游戏系统。
所设计的贪食蛇能完成移动、吃食物和摆放游戏自动输出的食物、使之默认出现3节蛇身、吃到每个随机点数而得分等功能。
硬件设计包括LED模块、键盘模块、供电模块驱动模块和下载模块。
软件采用C语言编程,方便灵活,大大加快了软件开发速度,缩短了开发周期,并且便于移植。
为提高开发效率和硬件稳定性,采用了功能强大的硬件仿真软件Proteus,依托该软件提供的仿真环境搭配Keil作为软件开发调试环境进行仿真调试成功。
所设计的贪食蛇游戏系统轻巧便携、老少皆宜,且成本较低,具有一定的市场前景。
关键词:贪吃蛇;单片机;游戏I英文摘要AbstractThis paper designs a novel single-chip microcomputer as the snake game control system. The snake can complete mobile, food and put the game automatically output of food, which appears by default 3 snake, eat each random points and scoring functions. The hardware design includes LED module, keyboard module, power supply module and driving module and download module. The software is programmed with C language, convenient and flexible, greatly accelerate the speed of software development, shorten the development cycle, and easy to transplant. In order to improve the development efficiency and stability of the hardware, the powerful hardware simulation software Proteus, based on the simulation environment of the software provided with Keil as the software development environment for debugging simulation debugging success. Snake game system design of the light and portable, suitable for all ages, and the cost is low, has a certain market prospects.KeyWords:Greedy Snake;51MCU;GameI目录目录第一章绪论 (1)1.1课题设计的背景与意义 (1)1.2 贪食蛇游戏的发展及现状 (2)1.2.1贪食蛇游戏发展历史 (2)1.2.2我国单机游戏的现状 (3)1.3 课题设计的内容与要求 (4)1.3.1课题设计的内容 (4)1.3.2课题设计的要求 (4)1.4设计方案 (4)1.4.1硬件设计 (4)1.4.2软件设计 (5)第二章系统总体设计 (6)2.1 系统基本组成及工作原理 (6)2.2 系统的主要元器件介绍 (8)2.2.1 74HC138 (8)2.2.2 74HC154 (10)2.2.3 74HC595 (12)2.3 主控芯片单片机 (14)2.3.1单片机的介绍 (14)2.3.2单片机的应用 (15)2.4 单片机红外无线 (17)2.4.1红外遥控 (17)2.4.2红外遥控发射 (18)2.4.5红外遥控接收 (19)2.4.6红外编码标准 (19)第三章系统硬件的设计 (21)3.1单片机控制模块的设计 (21)3.1.1 单片机的选择 (21)3.1.2 时钟电路 (24)I目录3.1.3 复位电路 (26)3.1.4 最小系统 (27)3.2 供电电路设计 (27)3.3 显示模块设计 (28)3.3.1 点阵模块 (28)3.3.2 驱动电路设计 (31)3.3.3 行驱动电路 (32)3.3.4 列驱动电路 (33)3.3.5 扫描显示过程 (34)3.3.6 显示模块原理图 (35)3.4下载模块设计 (35)第四章系统软件的设计 (37)4.1软件的整体设计思想 (37)4.2 软件开发环境 (37)4.2.1 keil软件的介绍 (37)4.2.2 软件功能 (38)4.2.3 软件应用流程 (39)4.3系统主函数的设计 (40)4.3.1按键检测模块 (42)4.3.2 显示模块 (43)4.3.3分数模块 (44)第五章系统调试 (46)5.1软件调试 (46)5.2硬件调试 (46)5.3作品展示 (48)总结 (49)参考文献 (50)致谢 (51)附录一:原理图 (I)附录二:原程序 (I)II第一章绪论第一章绪论“贪食蛇”又称为“贪吃蛇”,是一种益智小游戏。
基于51单片机的贪食蛇游戏机开发-精品
![基于51单片机的贪食蛇游戏机开发-精品](https://img.taocdn.com/s3/m/bc48101f76c66137ee0619ce.png)
第ChpNum章基于51单片机的贪食蛇游戏机开发1 本设计的特点和目的本设计以51系列单片机STC89C52为控制核心,以点阵液晶显示模块、键盘为人机接口,实现了一个贪食蛇游戏机。
通过本设计,令读者掌握利用单片机开发简单电子产品的基本技能,熟悉原理图绘制、仿真、软件设计、优化以及系统调试的基本方法,为进一步设计开发更为复杂的嵌入式模拟/数字混合系统打下一定的基础。
2产品简介“贪食蛇”又称为“贪吃蛇”,是一种益智小游戏。
其游戏规则比较简单,就是一条小蛇,不停地在屏幕上游走去吃屏幕上出现的蛋,越吃越长,只要蛇头碰到屏幕四周或者碰到自己的身子,小蛇就立即毙命并结束游戏。
本作品有上下左右四个按键来控制蛇头的移动方向,另有一个复位按键控制程序的重启,游戏界面采用分辨率为128×64的液晶显示屏。
3 硬件设计3.1 人机接口电路本游戏机游戏界面由液晶显示模块呈现。
液晶显示模块中,最主要的就是LCD液晶屏。
根据LCD液晶屏显示内容的不同,液晶显示模块可以分为数显液晶模块、点阵字符液晶模块和点阵图形液晶模块3种。
本设计使用点阵图形液晶模块OCM12864。
OCM12864液晶显示模块是128×64点阵型液晶显示模块,可显示各种字符及图形,可与CPU直接连接,具有8位标准数据总线、6条控制线及电源线,各引脚的信号说明参见表ChpNum-1。
表ChpNum-1 OCM12864引脚说明管脚名称方向引脚说明VSS - 逻辑电源地。
VDD - 逻辑电源+5V。
V0 I LCD调整电压,应用时接10K电位器可调端RS I 数据\指令选择:高电平:数据D0-D7将送入显示RAM;低电平:数据D0-D7将送入指令寄存器执行。
R/W I 读\写选择:高电平:读数据;低电平:写数据。
E I 读写使能,高电平有效,下降沿锁定数据。
DB0 I/O 数据输入输出引脚。
DB1 I/O 数据输入输出引脚。
DB2 I/O 数据输入输出引脚。
基于51单片机8x8点阵贪吃蛇综合课程设计报告-图文
![基于51单片机8x8点阵贪吃蛇综合课程设计报告-图文](https://img.taocdn.com/s3/m/b061e5f777a20029bd64783e0912a21615797f57.png)
基于51单片机8x8点阵贪吃蛇综合课程设计报告-图文基于51单片机8x8点阵贪吃蛇综合课程设计报告-图文《电子线路综合》课程设计报告设计课题:贪吃蛇掌上游戏机毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
基于51单片机贪吃蛇游戏设计
![基于51单片机贪吃蛇游戏设计](https://img.taocdn.com/s3/m/ac883d1f2bf90242a8956bec0975f46527d3a7e8.png)
基于51单片机贪吃蛇游戏设计贪吃蛇游戏是一种经典的游戏,也是很多人小时候玩过的游戏,其玩法简单,但却能够让人沉迷其中。
本文将介绍如何基于51单片机设计贪吃蛇游戏。
一、功能需求1. 界面设计贪吃蛇游戏的界面应简洁美观,可以利用点阵或LCD显示屏来呈现。
应包括游戏画面、分数、游戏难度等。
2. 操作方式游戏的操作主要包括上下左右移动贪吃蛇头部,进行输入、开始游戏、结束游戏等操作。
游戏可以使用按键、遥控器或者手柄等方式进行控制。
3. 游戏规则游戏正常进行时,贪吃蛇必须不断吃到食物,同时不能碰到墙壁或自己的身体。
每吃到一个食物,分数就会增加一点。
当贪吃蛇碰到墙壁或自己的身体时,游戏结束。
4. 难度等级游戏可以设置不同的难度等级,难度等级越高,贪吃蛇的速度就会越快,游戏难度也会相应提高。
二、设计思路本设计采用51单片机作为控制器,通过点阵或者LCD显示屏实现游戏界面的显示,通过按键、遥控器或手柄等方式进行游戏的操作。
具体设计思路如下:LCD显示屏:同样可以实现游戏画面的显示,但是可以显示更丰富的内容,如文字、动画等。
2. 游戏逻辑处理游戏逻辑处理主要包括游戏规则的实现和贪吃蛇的移动控制。
在实现游戏规则时,需要判断贪吃蛇是否碰到墙壁或自己的身体,同时需要计算分数;在实现贪吃蛇的移动控制时,需要通过按键、遥控器或者手柄等方式实现上下左右的移动。
可以通过按键或者遥控器等方式设置游戏难度等级,从而实现游戏难度的调整。
4. 硬件设计硬件设计包括主控芯片的选择、显示屏的选择、按键、遥控器或手柄等外设的选择。
主控芯片可以选择51单片机,同时可以选择点阵或LCD显示屏,按键、遥控器和手柄等外设可以根据需要进行选择。
三、实现步骤1. 硬件搭建搭建硬件时需要将主控芯片、显示屏、按键、遥控器或手柄等外设连接起来,并进行电路调试。
2. 程序设计程序设计包括游戏界面的设计、游戏逻辑的实现和难度等级的设置。
其中游戏界面的设计可以根据实际需要进行调整,游戏逻辑的实现需要考虑到游戏规则和贪吃蛇的移动控制,难度等级的设置可以通过按键或遥控器等方式实现。
登峰杯范文。基于51单片机与点阵的贪食蛇游戏机开发
![登峰杯范文。基于51单片机与点阵的贪食蛇游戏机开发](https://img.taocdn.com/s3/m/5a5d1a274b35eefdc8d3338b.png)
基于51单片机与8*8点阵的贪吃蛇游戏机开发物理与电子信息工程学院 07电信本一蘧孝泼摘要:设计并实现了一种基于51单片机的贪吃蛇游戏,主要讨论了游戏机的硬件电路与软件编程的设计方案,并介绍了如何使用Proteus进行软件仿真。
通过软件测试,可实现贪吃蛇游戏的基本功能。
关键词:单片机;贪吃蛇;LED点阵Abstract:Designed and implemented a microcomputer-based Snake games, mainly discussed the console hardware design and software programming, and describes how to use the Proteus to software emulation. Software testing, can be realized Snake game's basic functions.Key words:Single chip microcomputer;Snake;LED lattice引言贪吃蛇,是一种益智小游戏。
其游戏背景:蛇引诱夏娃吃了苹果之后,就被贬为毒虫,阴险的象征,而蛇吃东西是整只动物吞进去的,大概在文艺复兴的时候就有人发明了这么一种游戏,是现在贪吃蛇的前身,后来慢慢地发展成了现有的贪吃蛇游戏。
其游戏规则比较简单,就是一条小蛇,不停地在屏幕上游走去吃屏幕上出现的食物,越吃越长,到了一定的长度之后,就可以进入下一关,越到后面的关卡蛇移动的速度越快,只要蛇头碰到四周的墙壁或者碰到自己的身体,小蛇就立即毙命并结束游戏。
本文根据贪吃蛇的游戏规则,以ATMEL AT89S52单片机为控制核心,使用8*8点阵为显示模块,设计并实现贪吃蛇最基本的功能。
一、硬件设计1、8*8LED点阵的原理说明本设计采用的点阵显示模块是ARK-SZ411288K,其原理结构图如图1所示。
基于51单片机与点阵的贪食蛇游戏机开发
![基于51单片机与点阵的贪食蛇游戏机开发](https://img.taocdn.com/s3/m/ad458eb00b4c2e3f572763e5.png)
基于51单片机与8*8点阵的贪吃蛇游戏机开发目录一、硬件设计1、8*8LED点阵的原理说明本设计采用的点阵显示模块是ARK-SZ411288K,其原理结构图如图1所示。
ARK-SZ411288K显示模块是8*8点阵的显示模块,从图1中可以看出,8*8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的图1 8*8LED点阵的原理图二极管就亮。
ARK-SZ411288K可与CPU直接连接,根据引脚说明,将其各个引脚与相应的I/O 口连接。
2、LED阵列驱动电路正向点亮一颗LED,至少也得10~20毫安,若电流不够大,则LED不够亮。
而不管是8051的输入/输出口,还是TTL、CMOS的输出端,其高态输出电流都不是很高,不过1~2毫安而已,因此,很难直接高态驱动LED。
这时候就需要额外的驱动电路,本设计采用的是74HC595,用74HC595芯片驱动LED有以下特点:速度较快,功耗较小,LED的数目多少随意,既可以控制共阴极的LED显示器,也可以控制共阳极的LED显示器,可以软件控制LED的亮度,还可以在必要的时候关断显示(数据保留),以减小功耗,并可随时唤醒显示。
用它设计的电路,不仅软硬件设计简单,而且功耗低,驱动能力强,占用的I/O口线较少,是一种造价低廉,应用灵活的设计方案。
图2 74HC595管脚图74HC595内含8位串入、串/并出移位寄存器和8位三态输出锁存器。
寄存器和锁存器分别有各自的时钟输入(SCLK和SLCK),都是上升沿有效。
当SCLK从低到高电平跳变时,串行输入数据(SDA)移入寄存器;当SLCK从低到高电平跳变时,寄存器的数据置入锁存器。
清除端(CLR) 的低电平只对寄存器复位(QS为低电平),而对锁存器无影响。
当输出允许控制(EN)为高电平时, 并行输出(Q0~Q7)为高阻态,而串行输出(QS)不受影响。
基于51单片机的贪吃蛇游戏设计
![基于51单片机的贪吃蛇游戏设计](https://img.taocdn.com/s3/m/c1bfbf77f4335a8102d276a20029bd64783e62f0.png)
基于51单⽚机的贪吃蛇游戏设计本科时候做的⼀个课程作业,⾃⼰搭⼀个很简易的电路,⽐较有意思且易上⼿,故将之记录下来。
(全套的仿真及代码,演⽰视频,课程报告以及PPT展⽰上传在。
)⼀. 实验⽬的(1)通过对C51语⾔的理解,编写程序实现对贪吃蛇的有效控制;(2)通过对51单⽚机硬件的学习,学会运⽤⾯包板,独⽴按键、点阵屏等,完成对完整电路的搭建过程;(3)通过对Proteus仿真软件的学习,实现基于STC89C52单⽚机的8*8点阵贪吃蛇的硬件电路仿真。
⼆. 实验介绍贪吃蛇是⼀款经典⼩游戏,其游戏的规则是:玩家通过四个⽅向键来控制蛇的移动,控制其在地图上吃⾖⼦。
吃掉⾖⼦后蛇⾝相应加长,蛇⾝速度加快。
蛇运动过程中撞到墙壁或蛇⾝,则⽴即结束本轮游戏。
三. 实现功能(1)制作⼀个8*8点阵的贪吃蛇游戏;(2)通过LED点阵屏为载体显⽰数据;(3)外接4个独⽴按键作为输⼊端,分别控制蛇的移动⽅向(上、下、左、右);(4)蛇头与墙壁或蛇⾝相撞,随即结束游戏并复位。
四. ⽅案设计在该系统中,硬件部分包括STC89C52单⽚机,8*8点阵屏,4个按键;软件部分是在keil环境下⽤C51语⾔编写,设置蛇的初始段数为2点,并设置有障碍墙壁,游戏结束后⾃动复位。
(1)贪吃蛇的移动在贪吃蛇的移动过程中,每次需要将蛇头要到的下⼀个LED灯点亮,对应蛇尾的LED灯熄灭。
在程序中即是先把蛇尾位置的值传给蛇头的下⼀个位置,然后改变蛇尾的值即可。
蛇头下⼀个位置的确定由蛇头和偏移量来确定,每次通过操作四个独⽴按键来控制蛇步进的偏移量。
因⽽只要将蛇头的位置加上其偏移量的值,即可得到新的蛇头位置。
(2)⾷物的出现在市场上所流⾏的贪吃蛇游戏中,⾷物的出现是⼀种随机⾏为,这在程序中需要做⼀个随机数来⽀撑该过程。
我们组在实验过程中也尝试了该过程,最终选择让⾷物出现在蛇尾的后⼀步,来执⾏整个程序。
与此同时,⾷物出现的位置不能与蛇的位置重合,也不能超出墙外,否则需要重置⾷物。
基于51单片机的贪吃蛇游戏设计(Proteus仿真含完整程序)
![基于51单片机的贪吃蛇游戏设计(Proteus仿真含完整程序)](https://img.taocdn.com/s3/m/be8585ecfab069dc51220104.png)
中北大学硬件大型实验说明书学生姓名:学号:学院: 计算机与控制工程学院专业: 计算机科学与技术题目: “贪吃蛇”游戏设计指导教师:职称:2016 年 9 月 14 日目录一、需求分析 (1)二、工具 (1)三、概要设计 (1)四、详细设计(硬件设计和连接部分) (2)1.组件介绍 (2)1)AT89C55单片机 (2)2)Matrix-8X8点阵屏幕 (3)3)74LS154译码器 (3)4)CMOS反相器 (4)5)按键 (4)6)7-SEG BCD (5)2.硬件设计 (5)五、心得体会 (7)附录I(程序) (9)附录II(运行截图) (16)一、需求分析我们的课程设计题目是基于51单片机和一些基础组件设计出一个贪吃蛇游戏。
游戏的实现需要一个16x16的屏幕(由4个8x8的点阵屏组成)和5个按键,其中4个按键控制贪吃蛇的前进方向,另外一个按键可以使游戏重新开始。
另外还需要一个显示BCD码的数字型LED灯组用于记录得分。
贪吃蛇游戏需要实现的功能是:游戏开始时会出现一个长度为init_length的贪吃蛇,和一个随机出现的苹果(必须是贪吃蛇蛇身以外的一个点)。
玩家可以通过按键控制贪吃蛇的前进方向,但是只能转向,而不能向前或者向后,例如:当贪吃蛇向上行走时,只能通过左键和右键来让它左转或者右转,另外两个按键将失灵。
当贪吃蛇吃到苹果后,贪吃蛇尾部将会增加一个点,而屏幕上又会随机出现一个不与贪吃蛇重合的点。
此时积分器加一。
当贪吃蛇马上就要“撞向”屏幕边缘时,会从相反的一边钻出来。
所以“撞墙”并不会导致游戏结束。
而当贪吃蛇吃到自身时则会使游戏结束,并且会自动回到游戏初始化时的状态。
任何时候按下“重新开始”按键都将使游戏回到初始状态。
二、工具51单片机开发板,Keil uVision3,ISIS 7 Professional。
三、概要设计根据我们要实现的功能,我们决定把这次课程设计分成三个部分。
第一个部分为硬件设计和连接部分。
基于51单片机的贪吃蛇游戏
![基于51单片机的贪吃蛇游戏](https://img.taocdn.com/s3/m/6bec454b3a3567ec102de2bd960590c69ec3d8ef.png)
基于 51单片机的贪吃蛇游戏063210摘要:本文讲的是基于STC89C51单片机为微处理器的贪吃蛇游戏,实现功能有随机产生果实,初始时为2节蛇身,吃到果实然后变长,然后通过数码管显示吃掉的个数即分数,通过16*16的1588BS显示蛇身和果实。
软件用C语言进行编写,硬件采用键盘,点阵显示单片机最小系统。
事先还通过Proteus进行仿真,仿真成功之后进行硬件搭建。
关键词:单片机;贪吃蛇;仿真引言如今虽然51是8位微处理器,已经落伍了,但是现在各大高校,仍然对51进行开设课程讲解。
51作为一个入门级的单片机,确实比较好理解,对51也将继续应用下去1.游戏实现功能贪吃蛇通过4个8*8点阵组成的16*16点阵显示,然后通过stc89c51单片机作为MCU 进行控制,通过c语言进行编写,通过下载电路将hex文件下载到单片机里面。
此游戏,通道8个键盘,实现上下左右,左上右上左下右下,八个方向进行移动。
然后通过数码管进行显示吃到的果实的个数,也是得到的分数。
用8个键控制蛇运动的方向,设置边缘为墙壁。
当头碰到墙壁或者自己时死亡,死亡之后,恢复到初始状态。
1.1588BS点阵1588BS内部就是一个8*8个发光二极管连接起来。
一排8个二极管,有个共阳极,如果把共阳极置1,剩下8个引脚只有置零就会亮,通过这种方式对某个位置的点阵进行控制。
3.实现贪吃蛇的算法实现贪吃蛇的基本过程为,就是通过点阵点亮蛇身,然后随机产生果实,也点亮,通过键盘控制使得蛇身进行移动,吃到果实,蛇身变长。
当头碰到墙壁或者自己时,游戏结束。
我通过一个一维数组存储蛇身的位置信息和果实的位置信息,当移动时,蛇头根据计算得到移动后的距离,而后面的每一节等于上次上一节的数据。
来实现移动的效果。
当吃到过果实时,将果实的位置赋值为蛇头,依次执行之前的操作,接着再随机产生果实。
移动主要实现代码如下:for(i=n-1;i>1;i--){x[i]=x[i-1];y[i]=y[i-1];}x[1]=x[2]+addx;y[1]=y[2]+addy;判断撞墙或者撞自己代码bit knock(){bit k;k=0;if(x[1]>15||y[1]>15)k=1;for(i=2;ireturn k;}4.系统仿真设计因为stc89c51的引脚过少,所以为了节省引脚,用了74ls138译码器,进行对1588BS进行控制,由于译码器只是一个引脚输出为1其余为0,所以为了和1588BS搭配使用,我又采用了非门进行取反。
基于51单片机的贪吃蛇游戏的开题报告
![基于51单片机的贪吃蛇游戏的开题报告](https://img.taocdn.com/s3/m/fdfd5073777f5acfa1c7aa00b52acfc788eb9f78.png)
基于51单片机的贪吃蛇游戏的开题报告
一、项目背景
贪吃蛇是一个经典的游戏,深受广大玩家的喜爱。
本项目基于51单片机实现贪吃蛇游戏,旨在通过此项目掌握嵌入式系统设计及单片机编程技术。
二、项目概述
本项目的主要功能是实现贪吃蛇游戏。
通过51单片机实现游戏中的各种功能,包括蛇的移动,食物的产生,得分统计等。
同时,还需要设计合适的硬件电路,包括数码管、按键等,实现游戏的交互。
三、项目计划
1. 硬件设计
设计所需硬件电路,包括数码管、按键等,以实现游戏的交互。
2. 软件设计
(1)初始化
初始化游戏画面,初始化蛇的位置和方向,初始化食物位置,初始化得分等变量。
(2)蛇的移动
实现蛇的移动,根据按键输入确定蛇的方向,并判断是否碰到边界或自己的身体,以及是否吃到食物等。
(3)食物的产生
通过随机函数产生食物的位置,并将其显示在屏幕上。
(4)得分统计
统计蛇吃到的食物数量,每吃一个食物得分加一。
(5)游戏结束
当蛇碰到边界或自己的身体时,游戏结束,显示得分。
3. 调试测试
完成软硬件设计后,进行测试调试,确保游戏功能正常。
四、预期成果
通过本项目,期望掌握51单片机编程技术,熟练掌握嵌入式系统设计,实现一个基于51单片机的贪吃蛇游戏。
五、参考文献
1.《51单片机原理与应用》
2.《嵌入式系统开发技术详解》
3.《C语言程序设计实践》。
贪吃蛇游戏单片机程序
![贪吃蛇游戏单片机程序](https://img.taocdn.com/s3/m/71bedfd2d15abe23482f4d4d.png)
摘要本文基于单片机设计的贪吃蛇游戏,具有传统意义上的贪吃蛇游戏的特点:吃豆子蛇身增长,得分;分数达到一定等级进行升级以后,蛇运动速度加快等。
为节省存储空间,游戏算法上进行了新的设计,定义一个一维数组,利用位操作存储读取蛇头的运动状态信息。
具体实现上,硬件系统平台采用51系列单片机,搭载LCD,构成了一个轻巧便携的游戏机系统。
文中具体介绍了使用到的各种硬件的特性,游戏的各种功能与详细设计,软件的具体设计思路,各模块的详细介绍,部分模块的程序流程图,状态迁移图,关键部分代码的详细讲解等。
关键词:贪吃蛇游戏;单片机;LCD12864In this paper,the Snake game is such a game based on single chip,with the traditional Snake game features: Snake body grows and scores with eating a bean;Scores reached a certain number to upgrade the level and speed.In order to save the storage space,the algorithms of game makes anew design.By defining a one-dimensional array,snake head's motion states are stored and read in this array with bit operation.The hardware system uses single chip platform with LCD, ultimately forming a compact portable game system.The article introduces the use of a variety of hardware features,the game features and the detailed design,software design of the specific ideas,details of various modules,some modules of the program flow chart,state transition graph,a key part of the code details and so on.Keywords:Greedy Snake Game; single chip; LCD12864摘要 (I)目录 (III)第一章绪论1.1手持游戏介绍 (1)1.2研究背景与意义 (1)1.3手持游戏的发展状况 (1)第二章单片机简介 (4)2.1单片机的定义 (4)2.2单片机的基本结构 (4)2.3单片机执行指令的过程 (5)2.4单片机的特点 (6)第三章 LCD12864原理 (7)3.1 LCD12864概述 (7)3.2 LCD12864主要硬件构成说明 (8)3.3 LCD12864外部接口 (9)3.4 LCD12864指令说明 (10)3.5 LCD12864读写操作时序 (12)3.6 LCD12864的应用说明 (14)第四章系统硬件设计 (14)4.1系统结构框图 (15)4.2系统原理图 (15)4.3主要模块介绍及其功能 (16)第五章系统软件设计 (18)5.1游戏设计思想 (18)5.2系统软件设计流程图 (19)5.3贪吃蛇游戏系统实现主程序 (20)第六章系统运行结果 (26)第七章结束语..................................... ,30参考文献.. (31)致谢 (32)第一章绪论1.1手持游戏介绍手持游戏起源于1976年,由美国Mattel公司开发的Mattel Electronics Handheld Games系列。
51贪吃蛇课程设计
![51贪吃蛇课程设计](https://img.taocdn.com/s3/m/d42e97794a35eefdc8d376eeaeaad1f34793110a.png)
51贪吃蛇课程设计一、教学目标本课程旨在通过学习“贪吃蛇”游戏的设计与制作,让学生掌握以下知识目标:1.理解编程基本概念和流程。
2.熟悉“贪吃蛇”游戏的规则和逻辑。
3.掌握一种或多种编程语言的基本语法。
4.能够运用编程语言实现简单的游戏逻辑。
5.学会使用调试工具,能够独立解决问题。
6.学会团队合作,能够分工协作完成项目。
情感态度价值观目标:1.培养学生对计算机科学的兴趣和热情。
2.培养学生面对挑战,解决问题的决心和勇气。
3.培养学生团队合作,分享成功的喜悦。
二、教学内容本课程的教学内容将围绕“贪吃蛇”游戏的设计与制作展开,具体包括以下几个部分:1.编程基础:介绍编程语言的基本语法和概念。
2.游戏规则与逻辑:讲解“贪吃蛇”游戏的规则和逻辑。
3.游戏设计与制作:引导学生如何设计游戏,并通过编程实现游戏的各种功能。
4.调试与优化:教授学生如何使用调试工具,找出并解决问题。
5.团队合作:学生进行小组合作,共同完成一个“贪吃蛇”游戏项目。
三、教学方法为了提高教学效果,我们将采用以下教学方法:1.讲授法:用于讲解编程基础和游戏规则与逻辑。
2.讨论法:用于探讨游戏设计和制作中的问题,以及团队合作中的沟通和协作。
3.案例分析法:分析已有的“贪吃蛇”游戏案例,引导学生理解游戏设计和制作的要点。
4.实验法:学生在实验室进行编程实践,制作自己的“贪吃蛇”游戏。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用合适的编程教材,为学生提供学习编程基础知识的支持。
2.参考书:提供相关的编程参考书籍,丰富学生的知识体系。
3.多媒体资料:制作教学PPT,视频教程等,帮助学生更好地理解和掌握知识。
4.实验设备:提供计算机实验室,让学生能够进行编程实践。
五、教学评估本课程的评估方式将分为以下几个部分:1.平时表现:包括课堂参与度、小组讨论和合作等,占总成绩的30%。
2.作业:包括编程练习和小游戏设计等,占总成绩的30%。
贪吃蛇程序总结
![贪吃蛇程序总结](https://img.taocdn.com/s3/m/b343060652ea551810a68760.png)
基于51单片机12864显示贪吃蛇游戏及其算法姓名:吴云强班级:自动化101班学号:7021310052 程序流程图如下:游戏算法如下:void GamePlay(void){unsigned char n;InitRandom(TL0);food.yes=1;//1表示需要出现新事物,0表示已经存在食物尚未吃掉snake.life=0;//表示蛇还活着snake.direction=DOWN;snake.x[0]=6;snake.y[0]=6;snake.x[1]=3;snake.y[1]=6;snake.node=2;PrintScore();PrintSpeed();while(1){if(food.yes==1){while(1){food.x=Random()*85+3;food.y=Random()*55+3;//获得随机数while(food.x%3!=0)food.x++;while(food.y%3!=0)food.y++;for(n=0;n<snake.node;n++)//判断产生的食物坐标是否和蛇身重合{if((food.x==snake.x[n])&&(food.y==snake.y[n]))break;}if(n==snake.node){food.yes=0;break;//产生有效的食物坐标}}}if(food.yes==0){Lcd_Rectangle(food.x,food.y,food.x+2,food.y+2,1);}for(n=snake.node-1;n>0;n--){snake.x[n]=snake.x[n-1];snake.y[n]=snake.y[n-1];}switch(snake.direction){case DOWN:snake.x[0]+=3;break;case UP:snake.x[0]-=3;break;case RIGHT:snake.y[0]-=3;break;case LEFT:snake.y[0]+=3;break;default:break;}for(n=3;n<snake.node;n++)//从第三节开始判断蛇头是否咬到自己{if(snake.x[n]==snake.x[0]&&snake.y[n]==snake.y[0]){GameOver();snake.life=1;break;}}if(snake.x[0]<3||snake.x[0]>=90||snake.y[0]<3||snake.y[0]>=60)//判蛇头是否撞到墙壁{GameOver();snake.life=1;}if(snake.life==1)break;//蛇死,则跳出while(1)循环if(snake.x[0]==food.x&&snake.y[0]==food.y)//判蛇是否吃到食物{Lcd_Rectangle(food.x,food.y,food.x+2,food.y+2,0);//消隐食物snake.x[snake.node]=200;snake.y[snake.node]=200;//产生蛇新的节坐标先放在看不见的位置snake.node++;//蛇节数加1food.yes=1;//食物标志置1if(++Score>=PASSSCORE){PrintScore();GameOver();break;}PrintScore();}for(n=0;n<snake.node;n++){Lcd_Rectangle(snake.x[n],snake.y[n],snake.x[n]+2,snake.y[n]+2,1);}//根据蛇的节数画出蛇delay(Speed*1000);Lcd_Rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node -1]+2,snake.y[snake.node-1]+2,0);switch(KeyBuffer){case FUNC:KeyBuffer=0;if(++Speed>=10)Speed=1;PrintSpeed();break;case DOWN:KeyBuffer=0;if(snake.direction!=UP)snake.direction=DOWN;break;case UP:KeyBuffer=0;if(snake.direction!=DOWN)snake.direction=UP;break;case RIGHT:KeyBuffer=0;if(snake.direction!=LEFT)snake.direction=RIGHT;break;case LEFT:KeyBuffer=0;if(snake.direction!=RIGHT)snake.direction=LEFT;break;default:break;}}//结束while(1)}PCB板图:实物图:12864运行游戏图:。
51贪吃蛇课程设计
![51贪吃蛇课程设计](https://img.taocdn.com/s3/m/3c0ff725178884868762caaedd3383c4bb4cb422.png)
51贪吃蛇课程设计一、课程目标知识目标:1. 学生理解并掌握编程基本概念,如变量、循环和条件语句;2. 学生能够运用所学的编程知识,设计并实现一个简单的“51贪吃蛇”游戏;3. 学生了解游戏开发中的基本算法和逻辑。
技能目标:1. 学生培养逻辑思维能力,能够将复杂问题分解为简单的子问题,并逐步解决;2. 学生掌握编程技巧,能够使用合适的编程语言实现自己的想法;3. 学生通过编写代码,培养动手实践能力和解决问题的能力。
情感态度价值观目标:1. 学生在编程学习过程中,培养耐心、细心和专注的品质;2. 学生学会合作和分享,通过团队协作共同完成任务;3. 学生增强自信心,勇于面对挑战,敢于尝试和创新。
课程性质:本课程为信息技术课程,旨在让学生通过实践操作,掌握编程基本知识,培养解决问题的能力。
学生特点:五年级学生具有一定的认知能力和逻辑思维,对新事物充满好奇,喜欢动手实践。
教学要求:教师需结合学生特点,采用任务驱动法,引导学生自主探究,注重培养学生的动手实践能力和团队合作精神。
通过本课程的学习,使学生在知识、技能和情感态度价值观方面均有所提高。
二、教学内容1. 理解编程基本概念:- 引导学生回顾并巩固已学的编程知识,如变量、数据类型、运算符等;- 通过实例讲解循环结构(for循环、while循环)和条件语句(if-else)的应用。
2. 设计“51贪吃蛇”游戏:- 分析游戏规则和逻辑,引导学生将问题分解为小模块,如移动、转向、吃食物、长度增加等;- 介绍游戏开发中常用的算法,如碰撞检测、路径寻找等;- 结合教材相关章节,教授如何使用编程语言(如Scratch或Python)实现游戏功能。
3. 实践操作与团队协作:- 学生分组进行实践操作,每组共同设计并实现一个“51贪吃蛇”游戏;- 教师巡回指导,解答学生遇到的问题,引导学生进行自主探究和团队合作;- 学生在实践过程中,逐步掌握编程技巧,提高解决问题的能力。