Bootstrap

仿真设计|基于51单片机的贪吃蛇游戏

目录

具体实现功能

设计介绍

51单片机简介

资料内容

仿真实现(protues8.7)

程序(Keil5)

全部内容

资料获取


具体实现功能

利用单片机8*8点阵实现贪吃蛇游戏的控制。

仿真演示视频:

51-基于51单片机的贪吃蛇游戏-仿真视频

设计介绍

51单片机简介

51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。

本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

资料内容

仿真实现(protues8.7)

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

程序(Keil5)

本设计利用KEIL5软件实现程序设计。

主函数如下:

///
/*****************
主程序
*****************/	
void main(void)
{
	e=SPEED;
	P0=0x00;
	P1=0xff;
	P2=0x00;
	P3=0x00;
	while(1)       
	{
		//if(keyenable==1){P1=0x00;P2=0xff;}else{P1=0xff;P2=0x00;}
		for(i=3;i<SNAKE+1;i++)
			x[i]=100;
		for(i=3;i<SNAKE+1;i++)
			y[i]=100;//初始化
			x[0]=4;
			y[0]=4;                                                //果子                            
			n=3;                                                          //蛇长 n=-1
			x[1]=1;
			y[1]=0;                                                //蛇头
			x[2]=0;
			y[2]=0;                                                //蛇尾1
			addx=0;
			addy=0;                                                //位移偏移
	//k=1;
		while(1)
		{
			if(keyenable)
				break;
			timer0(1);
		}
		while(1)         
		{
			timer0(e);
			if(knock())
			{
				e=SPEED;
				break;
			}                          //判断碰撞
			if((x[0]==x[1]+addx)&(y[0]==y[1]+addy))         //是否吃东西
			{
				n++;
				if(n==SNAKE+1)
				{
					n=3;e=e-10;
					for(i=3;i<SNAKE+1;i++)
						x[i]=100;
					for(i=3;i<SNAKE+1;i++)
						y[i]=100;
				}
				x[0]=x[n-2];
				y[0]=y[n-2];
			}
			for(i=n-1;i>1;i--)
			{
				x[i]=x[i-1];
				y[i]=y[i-1];
			}        
			//x[n-1]=x[2];y[n-1]=y[2];
			x[1]=x[2]+addx;y[1]=y[2]+addy;                     //移动
		}						
	}			
}

程序运行结果如图:

全部内容

全部资料包括程序(keil5)、protues仿真(protues8.7)、开发资料、资料使用介绍、仿真视频、程序讲解视频、仿真讲解视频、最小系统介绍视频等。

资料获取

https://docs.qq.com/doc/DT1Jsa2Jkb0VRaU1z

;