基于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设计资料
资料获取请关注同名公众号,全部资料包括仿真源文件 、程序(含注释)等。具体内容如下,全网最全! !
可以关注下方公众号!
点赞分享一起学习成长。