基于51单片机贪吃蛇小游戏
(仿真+程序)
功能介绍
具体功能:
1.用74HC573驱动点阵显示游戏画面;
2.上电后贪吃蛇会自动寻食;
3.按下四个按键中的任何一个就手动寻食了;
演示视频:
基于51单片机贪吃蛇小游戏
添加图片注释,不超过 140 字(可选)
程序
#include <reg51.h>
/***公众号:木子单片机****
************************************/
#define uchar unsigned char
#define SNAKE 20 //最大长度
#define TIME 50 //显示延时时间
#define SPEED 71 //速度控制
sbit keyenable=P3^6; //方向使能
sbit up=P3^3; //down
sbit down=P3^1;
sbit right=P3^2;
sbit left=P3^4;
uchar x[SNAKE+1]; // 声明20个
uchar y[SNAKE+1];
uchar guozix[20]={4,5,7,4,3,6,1,0,3,6,2,1,0,4,5,7,0,6,1,7};
uchar guoziy[20]={4,7,1,0,2,1,1,6,3,2,4,3,5,1,5,3,1,2,7,0};
uchar time,n,i,e; //延时时间,当前蛇长,通用循环变量,当前速度
char addx,addy; //位移偏移量
/********************
延时程序
*********************/
void delay(char MS)
{
char us,usn;
while(MS!=0)
{
usn = 0;
while(usn!=0)
{
us=0xff;
while (us!=0){us--;};
usn--;
}
MS--;
}
}
/*******************************************
判断碰撞
*******************************************/
bit knock()
{
bit k;
k=0;
if(x[1]>7||y[1]>7)
{
k=1; //撞墙
}
for(i=2;i<n;i++)
{
if((x[1]==x[i])&(y[1]==y[i]))
{
k=1; //撞自己
}
}
return k;
}
/*****************
上下左右键位处理
*****************/
void turnkey()// interrupt 0 using 2
{//up=1;
if(keyenable)
{
if(left) // 控制左移动
{
addy=0;
if(addx!=1)
addx=-1;
else
addx=1;
}
if(right) // 控制右移动
{
addy=0;
if(addx!=-1)
addx=1;
else
addx=-1;
}
if(up) // 控制上移动
{
addx=0;
if(addy!=-1)
addy=1;
else
addy=-1;
}
if(down) // 控制下移动
{
addx=0;
if(addy!=1)
addy=-1;
else
addy=1;
}
}
}
/*****************
乘方程序
*****************/
uchar mux(uchar temp)
{
if(temp==7)return 128;
if(temp==6)return 64;
if(temp==5)return 32;
if(temp==4)return 16;
if(temp==3)return 8;
if(temp==2)return 4;
if(temp==1)return 2;
if(temp==0)return 1; // 在这个的范围之内
return 0;
}
/*****************
显示时钟 显示程序
*****************/
void timer0(uchar k)
{
while(k--)
{
for(i=0;i<SNAKE+1;i++)
{
// 显示具体的点了
P2=mux(x[i]); // 每个都在变化的
P0=255-mux(y[i]);
turnkey(); //上下左右键位处理
// 按键处理
delay(TIME); //显示延迟
P2=0x00;
P0=0xff;
}
}
}
硬件设计
使用元器件:
单片机:STC89C52;
(注意:单片机是通用的,无论51还是52、无论stc还是at都一样,引脚功能都一样。程序也是一样的。)
添加图片注释,不超过 140 字(可选)
设计资料
01仿真图
本设计使用proteus7.8和proteus8.9两个版本设计!具体如图!
添加图片注释,不超过 140 字(可选)
02程序
本设计使用软件keil5版本编程设计!具体如图!
添加图片注释,不超过 140 字(可选)
03设计资料
资料获取请关注同名公众号,全部资料包括仿真源文件 、程序(含注释)等。具体内容如下,全网最全! !
可以关注下方公众号!
点赞分享一起学习成长。