基于单片机的贪吃蛇设计
单片机游戏设计及贪吃蛇程序
刚才有位同志上传上老外的贪吃蛇网页,并称赞老外的大方。咱们中华民族的大虾们也应提倡共享精神!!今天由本白菜带头,以有限的能力献丑献丑,以望能抛砖引玉,激起各位大虾的爱国爱民的精神,救菜鸟于水深火热之中!单片机游戏设计1。概念对于大部分单片机+LCD的游戏设计,基本采用前后台方式,就是一个台中断,一个台循环(哪个前哪个后忘了),LCD部分基本是以固定点阵形式设计,什么叫固定点阵??首先先明确,我们设计的游戏不是什么魔兽争霸或CS,而是黑白形式的固定点阵游戏,例如常见著名游戏贪吃蛇或俄罗斯方块。他们的每个点都是预先就固定下来的,而且是比较大的点,这类专门的游戏机玻璃是经过厂家开模出来的,有固定的COM,SEG线,然后接到专门的单片机上,例如常用的6502指令集合的单片机,呵呵,我以前就用6502设计过一个。对于业余设计的游戏,我们一般用如128*64的LCD来显示,那么我们设计的时候首先应该把这个128*64的LCD分块,也就是分出固定点阵出来。LCD的基本点阵是128*64,就是·¥##¥总之就是好多个点啦,但我们事实上不一定要运算这么多个点,除非你做的游戏很有看头。例如你只用左边64*64的地方来做贪吃蛇,那么你打算你的贪吃蛇的活动空间是多少呢?如果是8*8个点的话,算一下就是每个点64/8,64/8,也就是8*8个基本点阵,不过想好玩一点,当然就是要有16*16个点的活动空间啦,那么每个固定点阵就要占4*4的基本点阵了。要注意,这些4*4的东西在64*64LCD上共16*16个,每个都要用来独立运算。2。时钟这个其实是游戏的速度,对于一般的弱智类游戏机,他也代表了难度,物体在每个时钟到达的时候就传动一次,例如俄罗斯方块没个时刻向下跑一层。赛车游戏每个时刻想前走一步。一般这类时钟的时间在0.X秒到1秒之间,物体有规律地匀速运动,让人看到感觉是连动。3。运动在这里,我先介绍两种比较普遍的弱智游戏机的物体运动规则:柔体传动,刚体传动。刚体传动代表作是俄罗斯方块,所谓刚体,就是硬硬的一个东东,运动的时候也不怎么旋转(注意,俄罗斯方块是会旋转,但其实他是没有经过算法的旋转,纯提取数组的方式,也就是把一个放块做成4个模式的点阵结构,其实就是4个方向,呵呵)对于刚体的传动,在每个时钟到达的时候向一个方向(很可能是用户输入的)运动一个固定点阵。如果以坐标来表达,就是物体的所有基本点阵同时向一个方向(X或Y)移动一个单位。柔体传动代表作是贪吃蛇,贪吃蛇跑动的时候并不
基于51单片机实现的贪吃蛇游戏机开题报告
• 设计意义
贪吃蛇是一款简单的益智游戏,我们可以以51单片机为 核心来设计一个简单的贪吃蛇游戏机,这只是单片机应 用的一个点,由点及面,希望可以更好的将理性与感性 相结合,深入了解和应用相关的专业技术,将之前理论 学习的知识运用到实际中,提高实践动手能力,为将来 科研道路打下坚实基础。
• 预期实现目标
电子工艺实习
基于51单片机实现的贪吃蛇游戏机 Greedy Snake Game Based on 51 MCU
• 设想
在课程设计期间,我们学习了以MPS430单片机为核心的 DC/DC降压器的设计,因而想要进一步了解单片机的使 用,而单片机的基础入门必备的就是51单片机,所以我 们就设想通过51单片机来实现一些有意思的功能。于是 我们就想到了用51单片机来实现小时候的益智游戏—— 贪吃蛇。
LCD1604显示游戏信息
TIME: 00:56 LEVEL: EASY SCORE:65
LCD1604
LCD12864显示游戏状态 按键由玩家控制游戏进行
LCD12864
• 工作大体流程
首先进行软件模块分析与硬件模块设想。接下来,使用 Altium Designer软件构件系统的硬件图,确定各部分模块对 应实现的功能,进行画PCB版,制板。使用Keil软件编写程 序,对应各模块功能模块化编写,同时依照电路图焊接电 路板,完成系统实物设计。最后,连接单片机,调试程序 ,整体改进完善。
单片机贪吃蛇的原理和应用
单片机贪吃蛇的原理和应用
1. 简介
贪吃蛇是一款非常经典的游戏,它在过去的几十年里一直深受玩家们的喜爱。
在单片机领域,我们也可以使用单片机来实现贪吃蛇游戏。本文将介绍单片机贪吃蛇的原理以及其应用领域。
2. 原理
单片机贪吃蛇游戏的实现原理如下: 1. 使用单片机控制蛇头和食物的移动。 2. 使用矩阵键盘或者其他输入设备控制蛇的移动方向。 3. 利用LED点阵或者LCD显
示屏来展示游戏界面。 4. 使用定时器来控制游戏的帧率,使得蛇头和食物能够以
一定的速度移动。 5. 利用碰撞检测算法判断蛇头是否与食物相撞,以及是否与自
身或者墙壁相撞。
3. 应用领域
单片机贪吃蛇游戏可以应用于以下领域: - 教育培训:通过搭建单片机贪吃蛇
游戏平台,可以帮助学生学习单片机的原理和应用,提高他们的程序设计能力和逻辑思维能力。 - 娱乐产品:通过将单片机贪吃蛇游戏制作为嵌入式娱乐产品,可以
提供给用户一个简单而有趣的游戏体验。 - 科普展示:在科普展览或者科技馆中,
通过展示单片机贪吃蛇游戏平台,可以向大众普及单片机的工作原理和应用。
4. 总结
单片机贪吃蛇游戏是一种基于单片机的嵌入式应用,通过单片机控制蛇头和食
物的移动,利用定时器来控制游戏的帧率,同时使用碰撞检测算法判断游戏的结果。该游戏在教育培训、娱乐产品和科普展示等领域都有着广阔的应用前景。通过深入了解单片机贪吃蛇的原理和应用,我们可以更好地运用单片机技术,开发出更多有趣和实用的嵌入式应用。
51单片机贪吃蛇代码
#include
#include
#include
typedef unsigned int uint;
typedef unsigned char uchar;
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;
sbit k1=P3^1; //up
sbit k2=P3^0; //down
sbit k3=P3^2; //left
sbit k4=P3^3; //right
uchar xz[]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff}; uchar yz[]={0x00,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff}; uchar len,flag,x0,y0,r,p,f;
void send(uchar dat);
void keyboard();
struct point
{
uchar x,y;
}s[40];
void int0()
{
len=3;
s[0].x=3,s[0].y=1;
s[1].x=2,s[1].y=1;
s[2].x=1,s[2].y=1;
flag=0;//????
p=1; //???????
f=1;
r=0; //????
}
void delay(uint c) //c=1,1ms
{
uint a,b,t;
for(t=0;t
for(b=102;b>0;b--)
for(a=3;a>0;a--);
}
void show(uchar x,uchar y)
{
STM32课程设计贪吃蛇
STM32大作业报告
学生姓名:
学号:
所在院系:光电信息与计算机工程学院专业班级:
授课教师:
完成时间:2016年
前言
随着科学技术的不断进步,嵌入式近些年来逐渐兴起,其领域比较新,发展非常迅速,由于它属于新兴领域,接触的人并不是很多,但是嵌入式在各种电子设备上的应用越来越越广泛,并且各种电子设备也在朝着嵌入式微系统,智能化的方向前进。STM32系列是基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核。作为21世纪的人才,为了与社会实际需要相衔接,提高我们的学习兴趣,利用STM32系列单片机进行了一次嵌入式系统设计。
摘要
在本次作业中采用STM32系列中的STM32F103RCT6微控制器芯片,采用ALIENTEK战舰STM32开发板,使用MiniSTM32开发板上的LCD 接口,来点亮TFTLCD,实现触摸屏功能。
一、课程设计任务要求
本次的课程设计目的是实现一个经典的贪吃蛇游戏,整个游戏实现功能分别为:
1、初始化程序。
2、随机红点、左转、右转、判断边框。
二、系统硬件设计
硬件设计原理图
根据此硬件设计图再结合软件设计就能做出此游戏。
三、系统软件实现
此次的课程设计在于开发个贪吃蛇游戏,其流程图如下图所示。
程序流程图
为方便介绍,此软件实现只给出主要程序部分:
1、本例程提供了硬件平台的初始化
GPIO是常规输入/输出端口,STM32F103RCT6有PA、PB、PC、PD、PE 共5个16位的GPIO。STM32的GPIO都可编程,具有很多复用功能。GPIO 可以配置为很多总模式,这些模式有:输入浮空、输入上拉、输入下拉、模拟输入、开漏输入、推挽输出、推挽复用、开漏复用。通过对GPIO寄存器编程,可以设置每个端口的工作模式。
贪吃蛇设计
《C51程序设计》期末项目考核
项目设计报告
题目:点阵贪吃蛇设计
学院:
专业:
班级:
学号:
姓名:
目录
1项目要求及功能 (2)
1.1电路要求 (2)
1.2 程序要求 (2)
2项目设计 (2)
2.1整体设计思路及原理 (2)
2.1.1蛇的运动处理 (3)
2.1.2点阵屏的原理图 (4)
2.2贪吃蛇的设计的基本思路 (4)
2.3硬件电路设计 (4)
2.4单片机最小系统图模块 (5)
2.5点阵屏显示模块 (5)
2.6按键控制电路模块 (5)
2.7贪吃蛇程序流程图 (5)
3项目仿真 (6)
3.1仿真效果图及电路图 (6)
3.11仿真效果图 (6)
3.2测试结果分析 (6)
4贪吃蛇设计总结 (7)
5 参考文献 (8)
附录 (8)
附录Ⅰ整体电路图 (8)
1.1按键控制电路 (8)
1.2单片机最小系统图及点阵屏显示电路仿真图 (9)
附录Ⅱ源程序清单 (9)
1项目要求及功能
项目要求:通过使用C51单片机和点阵显示屏,制作贪吃蛇并通过KEI软件写出程序,运用PROTUES仿真软件测试其功能
1.1电路要求
通过使用单片机和点阵屏完成电路的各部分并实现贪吃蛇所需的全部功能。通过仿真软件实现对电路和软件设计的检查和验收。
1.2 程序要求
通过使用KEIL软件,使用C语言并结合硬件电路,实现硬件所需要的功能,要求程序简单易懂,代码效率高,无错误,生成HEX,文件并将文件烧入仿真软件中。
2项目设计
2.1 整体设计思路及原理
随着科技的发展,现代生活节奏越来越快,人们的工作生活压力也随之加大。设计一款操作简单,生动新颖,娱乐性强,便于携带的小游戏,在繁忙的工作生活之余玩玩这款小游戏,不仅可以调节人们的情绪,使人心情舒畅,还能健脑益智,为更好地投入工作学习做好准备。
贪吃蛇游戏单片机程序
贪吃蛇游戏单片机程序贪吃蛇游戏是一款经典的游戏,其简洁的规则和有趣的玩法使其成为了许多人喜爱的游戏之一。在单片机中实现贪吃蛇游戏需要利用单片机的输入输出功能以及控制算法来完成游戏的控制和显示。下面是一个简单的贪吃蛇游戏单片机程序的实现。
首先,我们需要定义一些常量和变量来表示游戏中的一些参数和状态。比如,我们可以定义一个常量来表示屏幕的宽度和高度,以及一个变量来表示蛇的长度和当前的移动方向。
c
#define SCREEN_WIDTH 16
#define SCREEN_HEIGHT 8
#define SNAKE_MAX_LENGTH 64
int snake_length;
int snake_direction;
接着,我们需要定义一个数据结构来表示蛇的身体,可以使用一个数组来表示蛇的每一节身体的位置。同时,我们还需要定义一个数据结构来表示食物的位置。
c
struct point {
int x;
int y;
};
struct point snake[SNAKE_MAX_LENGTH];
struct point food;
然后,我们可以编写一个函数来初始化游戏的状态。在这个函数中,我们需要初始化蛇的位置和长度,以及随机生成食物的位置。
void init_game{
// 初始化蛇的位置和长度
snake[0].x = SCREEN_WIDTH / 2;
snake[0].y = SCREEN_HEIGHT / 2;
snake_length = 1;
// 随机生成食物的位置
food.x = rand% SCREEN_WIDTH;
基于51单片机贪吃蛇游戏设计
基于51单片机贪吃蛇游戏设计
贪吃蛇游戏是一种经典的游戏,也是很多人小时候玩过的游戏,其玩法简单,但却能
够让人沉迷其中。本文将介绍如何基于51单片机设计贪吃蛇游戏。
一、功能需求
1. 界面设计
贪吃蛇游戏的界面应简洁美观,可以利用点阵或LCD显示屏来呈现。应包括游戏画面、分数、游戏难度等。
2. 操作方式
游戏的操作主要包括上下左右移动贪吃蛇头部,进行输入、开始游戏、结束游戏等操作。游戏可以使用按键、遥控器或者手柄等方式进行控制。
3. 游戏规则
游戏正常进行时,贪吃蛇必须不断吃到食物,同时不能碰到墙壁或自己的身体。每吃
到一个食物,分数就会增加一点。当贪吃蛇碰到墙壁或自己的身体时,游戏结束。
4. 难度等级
游戏可以设置不同的难度等级,难度等级越高,贪吃蛇的速度就会越快,游戏难度也
会相应提高。
二、设计思路
本设计采用51单片机作为控制器,通过点阵或者LCD显示屏实现游戏界面的显示,通过按键、遥控器或手柄等方式进行游戏的操作。具体设计思路如下:
LCD显示屏:同样可以实现游戏画面的显示,但是可以显示更丰富的内容,如文字、
动画等。
2. 游戏逻辑处理
游戏逻辑处理主要包括游戏规则的实现和贪吃蛇的移动控制。在实现游戏规则时,需
要判断贪吃蛇是否碰到墙壁或自己的身体,同时需要计算分数;在实现贪吃蛇的移动控制时,需要通过按键、遥控器或者手柄等方式实现上下左右的移动。
可以通过按键或者遥控器等方式设置游戏难度等级,从而实现游戏难度的调整。
4. 硬件设计
硬件设计包括主控芯片的选择、显示屏的选择、按键、遥控器或手柄等外设的选择。主控芯片可以选择51单片机,同时可以选择点阵或LCD显示屏,按键、遥控器和手柄等外设可以根据需要进行选择。
基于51单片机与点阵的贪食蛇游戏机开发
基于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)不受影响。74HC595最多需要5根控制线,即SDA、SCLK、SLCK、CLR和EN。其中CLR可以直接接到高电平,用软件来实现寄存器清零;如果不需要软件改变亮度,EN可以直接接到低电平,而用硬件来改变亮度。把其余三根线和单片机的I/O口相接,即可实现对LED的控制。
单片机贪食蛇课程设计报告
单片机课程设计报告
目录
1设计任务及要求 (1)
2总体设计思路及功能描述 (1)
3 各部分软硬件设计原理及方案详细说明 (3)
3.1 人机接口电路 (3)
3.2单片机与PC机通信电路 (5)
3.3 其他部分电路说明 (5)
3.4 软件模块设计 (6)
3.4.1 LCD初始化 (6)
3.4.2 键盘扫描程序 (7)
3.4.3 显示16*16点阵汉字 (8)
3.4.4 食物的随机出现 (8)
3.4.58X8点阵LED工作原理说明 (9)
3.4.6锁存器(74HC573) (9)
3.5软件编译 (11)
4 调试的步骤及调试过程中出现的问题以及解决方法 (11)
4.1 PROTEUS仿真 (11)
4.2 硬件的安装 (12)
4.3 调试注意事项 (12)
4.3.1 硬件调试注意事项 (12)
4.3.2 软件调试注意事项 (12)
5 设计心得体会 (13)
6 附录 (14)
6.1总原理图 (14)
6.2单片机程序代码 (14)
7 参考文献 (23)
正文:
1设计任务及要求
本设计以51系列单片机STC89C52为控制核心,以点阵液晶显示模块、键盘为人机接口,实现了一个贪食蛇游戏机。通过本设计,令读者掌握利用单片机开发简单电子产品的基本技能,熟悉原理图绘制、仿真、软件设计、优化以及系统调试的基本方法,为进一步设计开发更为复杂的嵌入式模拟/数字混合系统打下一定的基础。
“贪食蛇”又称为“贪吃蛇”,是一种益智小游戏。其游戏规则比较简单,就是一条小蛇,不停地在屏幕上游走去吃屏幕上出现的蛋,越吃越长,只要蛇头碰到屏幕四周或者碰到自己的身子,小蛇就立即毙命并结束游戏。本作品有上下左右四个按键来控制蛇头的移动方向,另有一个复位按键控制程序的重启,
基于51单片机的贪吃蛇游戏设计(Proteus仿真含完整程序)
中北大学
硬件大型实验说明书
学生姓名:学号:
学院: 计算机与控制工程学院
专业: 计算机科学与技术
题目: “贪吃蛇”游戏设计
指导教师:职称:
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单片机的贪吃蛇游戏设计
基于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灯熄灭。在程序中即是先把蛇尾位置的值传给蛇头的下⼀个位置,然后改变蛇尾的值即可。蛇头下⼀个位置的确定由蛇头和偏移量来确定,每次通过操作四个独⽴按键来控制蛇步进的偏移量。因⽽只要将蛇头的位置加上其偏移量的值,即可得到新的蛇头位置。
单片机课程设计贪吃蛇说明书
单片机课程实训作品说明书
姓名:李兆基
完成时间:2016年7月3日
一、 作品说明介绍
1. 作品名称:贪吃蛇简易游戏机
2. 作品实现功能:
a) 按上、下、左、右键控制蛇身改变方向;
b) 蛇头与食物碰撞时“吃掉”食物,使蛇身变长; c) 复位键使游戏重新开始;
d) 暂停/继续键可以暂停、继续游戏
3. 选择目的:巩固单片机课程所学知识,真正做到学有所用
二、 作品操作介绍
1. 作品外观图
① ②点阵屏:显示地图、蛇以及食物
③STC12C5A60S2单片机:控制整个作品,可以烧录不同的程序 ④微动开关1:向上的按键,用于改变蛇的方向 ⑤微动开关2:向下的按键,用于改变蛇的方向 ⑥微动开关3:向左的按键,用于改变蛇的方向
①
②
③
④
⑤
⑥
⑦ ⑧ ⑨
⑩ ⑪
⑫
⑬
⑭
⑮
⑦微动开关4:向右的按键,用于改变蛇的方向
⑧微动开关5:复位按键,按下后游戏复位,重新开始
⑨微动开关6:暂停/继续按键,控制游戏暂停/继续
⑩自锁开关:实现整体的电源总控制(断负)
⑪晶振、电容:用于单片机起振,单片机的最小时钟电路
⑫排针:用于连接电源正负极以及RXD和TXD
⑬电源指示灯:通电时点亮
⑭8个1KΩ电阻:限制电流大小
⑮10个0Ω电阻:做跳线用
2.作品功能介绍及操作说明
a)给游戏机上电
①将电源正极接在排针处标有VCC的位置
②将电源负极接在排针处标有GND的位置
③按下自锁开关完成上电
b)让贪吃蛇改变方向
①按向上键:蛇身向上
②按向下键:蛇身向下
③按向左键:蛇身向左
④按向右键:蛇身向右
c)游戏暂停/继续、复位
①按暂停/继续键:游戏暂停/继续
②按复位键:游戏复位,重新开使
单片机课程设计(贪吃蛇)
单片机课程设计报告(贪吃蛇)
院校:
专业:
班级:
姓名:
学号:
指导老师:
设计日期:
一、选题的背景与意义
单片微型机简称单片机,它是在一片芯片上集成了中央处理部件,存储器、定时器/计数器和各种输入输出设备等接口部件。单片机是微机发展的一个重要的分支,自问世以来,性能不断地改善和提高,加之单片机具有集成度高、功能强、速度快、体积小、功耗小、使用方便、性能可靠、价格便宜等优点,故在工业控制、数据采集和处理、通信系统、家用电器等领域的应用日益广泛。国虽然起步较晚,但单片机的潜力越来越被人们所重视,尤其在工业控制、自动化仪器仪表、计算机系统接口、智能化外设等应用领域发展很快。它的应用对于产品升级换代、机电一体化都具有重要的意义,在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数,被用于各种不同产品的生产。在通信行业更为广泛利用,手机从只能基本通话,到现在一台手机拥有各种不同的功能,单片机得到了广泛的应用。手机可以听音乐,听收音机,玩游戏,照相片等等,比较流行的手机游戏贪吃蛇就能用单片机实现。
二、研究的基本容与拟解决的主要问题
贪吃蛇游戏设计主要硬件由单片机最小系统,8*8点阵,4个方向按键,7805稳压电路,整个的游戏设计外围电路比较少,主要核心在于游戏的程序设计,本设计的游戏规则也参照现在手机流行的贪吃蛇游戏的规则去设计,当蛇吃到食物时,蛇身就会自动增加一格,食物随机出现在屏幕上,当蛇碰到墙壁时,游戏结束。
本设计需要考虑的问题有以下几个:
1.8*8点阵的选择
2.保证游戏的流畅性和及时响应性
基于STC89C52单片机贪吃蛇做法(可编辑修改word版)
#ifndef _glb_h_
#define _glb_h_
#define uchar unsigned char
#define uint unsigned int
#define LOW 0
#define HIGH 1
//初始化指令
#define CLEAR_SCREEN 0x01 //清屏指令:清屏且AC 值为00H
#define AC_INIT 0x02 //将AC 设置为00H。且游标移到原点位置
#define CURSE_ADD 0x06 //设定游标移到方向及图像整体移动方向(默认游标右移,图像整体不动)
#define FUN_MODE 0x30 //工作模式:8 位基本指令集
#define DISPLAY_ON 0x0c //显示开,显示游标,且游标位置反白
#define DISPLAY_OFF 0x08 //显示关
#define CURSE_DIR 0x14 //游标向右移动:AC=AC+1
#define SET_CG_AC 0x40 //设置AC,范围为:00H~3FH
#define SET_DD_AC 0x80
#define FUN_MODEK 0x36 //扩展指令集,8 位指令
#define X1address 0x80 //上半屏X 轴起始地址
#define X2address 0x88 //下半屏X 轴起始地址
#define Yaddress 0x80 //Y 轴起始地址
/*---------------------------------------------------------------------------------------------------
基于51单片机的贪吃蛇游戏
基于 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.实现贪吃蛇的算法
实现贪吃蛇的基本过程为,就是通过点阵点亮蛇身,然后随机产生果实,也
点亮,通过键盘控制使得蛇身进行移动,吃到果实,蛇身变长。当头碰到墙壁或
者自己时,游戏结束。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的贪吃蛇设计
本篇论文主要是设计并且着手致力于实现一种基于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研究背景及意义
时代在不断的进步,人们的生活节奏也因此不断加快,越来越多的人加入了经济化全球化的世界。人们不再只需要保持自己的小世界,加班、旅游已逐渐代替了人们的正常工作,成为我们必然的公务。同时,我们可以供随时随地的休闲娱乐,因而休闲类的小游戏已经逐渐成为生活的必需品,渐渐得变得无所不在,渗入我们日常生活的各个部分。贪食蛇这款经典的小游戏具有可塑性强、简单易行、通俗易懂、操作方便、娱乐性强等特点,因此引来了不少人们的青睐。这款小游戏牢牢地把握住了人们追求娱乐的心理,看起来很简单,但真正接触的时候毫无违和感,甚至会感觉到其乐无穷,在人们不断寻求探索更多的开心和乐趣下,游戏的到来给了追逐快乐的人,和现代人满意的成功后,在巨大的压力之下是一种很好的放松工具。当今的世界,科技在不断地发展,尤其是微电子技术方面,计算机软件技术和其应用技术的发展,将人们的生活变得多姿多彩,不在单调无趣。单片作为微型计算机大家族中不可或缺的一员,微型计算机以其良好的稳定性,独特的构造,较低的成本在嵌入式领域中得到了广泛应用。
我希望可以通过这些年来所学的知识将它剖析出来,使它立体的呈现在面前,真正意义上的了解它的实质,明白它的精髓所在。在编程方面,能力不强的我,更应该努力地借助这次机会,通过研究,从实践中提升自己的编程能力。故而,我选定了这个比较有意思的课题。
1.2单片机发展状况
单片微型计算机,简称单片机(MCU)。它是在一块半导体硅片上集成了振荡器电路、中央处理单元、随机存取存储器、只读存储器、可编程定时器/计数器、并/串行I/O接口等,有的还包含了A/D转换器。总言之,一个巴掌大小的单片机,具有一台计算机的所有属性,直接相当于一台微型计算机。由于使用单片机时其通常在测控系统的核心部分并嵌入其中。所以,单片机也被称作为嵌入式控制器EMCU(Embedded MicroController Unit)。单片机拥有集成度高、体积小、重量轻、处理功能强、电源简单、低功耗、可靠性高、价格低廉、运算速度快、易扩展、易于使用、抗干扰能力强等特点。因此,在工业控制、通信系统等涉及到的一些领域,基本是到处都可以见到单片机的踪影,其技术的开发和高水平的应用已逐渐变成一个国家工业化成就取得高低的关键。
早在1974年,世界上第一块单片机被美国的仙童公司研究生产出来,历经短短数几十年的光阴,单片机便与日俱增,成批地涌现出来。截至现在,4位、8位、16位单片机都已经被研究出现了,甚至32位的超大规模集成电路单的片机也已经问世了,其性能也
在不断的升高,不断被改善。在国内的单片机,起步虽然比较晚,但其潜力已经受到越来越多人的关注,特别是在工业控制、自动化仪器仪表、计算机系统接口、智能化外设等应用领域发展较为快速。单片机的应用,对于产品的升级,还有机电一体化都有重要的意义。在工业控制中的应用也十分广泛,例如,用单片机可以构成形式多样的控制系统、数据采集系统,各种报警系统,工厂流水线的智能化管芯片理与计算机联网构成的二级控制系统等。单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。在通信行业,这种应用显得更加广泛,手机从最初的只能实现基本通话,没有其他任何功能,到现在任何一部手机都拥有各种强大的功能,含有各种不同的应用,单片机的功效被发挥的淋漓尽致。可以用手机来听音乐,玩游戏,摄影等等,而手机游戏上贪吃蛇游戏就可以利用单片机来实现。即使最新型MCS-51单片机各种基本的内核核心扩张和持续改进,但是51系列的单片机的应用依旧是我们国家的主流模式。
纵观几十年的单片机发展历程,它的未来将向高性能,高速度,低电压,低价格和闪存的方向发展。我们可以预见的是,单片机的未来将变得更加强大、集成度更高、可靠性更高、功耗更低、使用更方便,总之,它的未来是无可限量的。
1.3 LED发展状况
LED,也就是发光二极管的英文缩写,是一种固态的,能够直接地把电转变成光的半导体电子元件。这种电子元件最早出现在1962年,刚开始的时候只能发出低光度的红光,之后慢慢地发展出其他的单色光,到现在,能发出的光已经遍及可见光、红外线还有紫外线,光度也得到了较大地提高。而其用途从最开始的作为指示灯、显示板等,到现在被广泛地应用于显示器、电视机采光装饰和照明等。它由含镓(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个“P-N”结。当电流通过导线作用于这个晶片的时候,电子就会被推向P 区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED 发光的原理。半导体照明具有绿色环保的特点,使用寿命长,效率高,节能,抗恶劣环境,结构简单,体积小,重量轻,响应速度快,工作电压低,安全性好的特点。因此,LED成为白炽灯、日光灯和节能灯后的第四代照明电光源,同时也被称为21世纪绿色光源。由于LED具有单向导电性,因此它只能往一个方向导通,这种现象被称为正向偏置,也叫正向偏压。LED的优点是:节能、寿命长、防水、不易破损、低功耗、开关具有高速度、微型、高可靠性、光束集中等。它的不足是:显色性较差、需要专门的驱动电路、起始的成本较高等,因此,传统的照明也相对存在一些不足。近年来白光LED的发光效率有了显著提高。