仿真设计|基于51单片机的贪吃蛇和俄罗斯方块游戏仿真(万年历)
51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。
·
目录
具体实现功能
(1)利用LCD12864显示万年历+贪吃蛇+俄罗斯方块;
(2)两个按键实现游戏的开始、暂停和退出。四个按键控制游戏,可实现贪吃蛇的控制,俄罗斯方块的控制;
(3)万年历界面可显示当前年、月、日、时、分、秒、星期、温度等内容,时间和温度可调整。
仿真演示视频:
69-基于51单片机的贪吃蛇和俄罗斯方块游戏仿真(万年历)
设计介绍
51单片机简介
51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。
本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。
资料内容
仿真实现(protues8.7)
本设计利用protues8.7软件实现仿真设计,具体如图。
程序(Keil5)
本设计利用KEIL5软件实现程序设计。
主函数如下:
///////////////////////////////////////////////////
//////////////////////////////
void main(void)
{
uchar i;
uchar count=0;
P2=0xff;
EA=1; //开CPU中断
//ET0=1; //开定时器中断
EX0=1; //开外部中断
EX1=1;
choose12864(2);
init12864();
clear12864();
////////////////////
play16(0,4,0,tan);
play16(0,6,0,chi);
play16(1,0,0,she);
///////////////////
play16(0,4,1,els);
play16(0,6,1,els+32);
for(i=0;i<3;i++)
{
play16(1,i<<1,1,(els+64+(i<<5)));
}
//////////////////
play16(0,4,2,wnl);
play16(0,6,2,wnl+32);
play16(1,0,2,wnl+64);
//////////////////
for(;;)
{
if((k==0x03)&&((P3&0x04)==0x04))
{
count++;
k=0;
if(count==4)
count=1;
switch(count)
{
case 1:
{
play16(0,4,2,wnl);
play16(0,6,2,wnl+32);
play16(1,0,2,wnl+64);
play16_fb(0,4,0);
play16_fb(0,6,0);
play16_fb(1,0,0);
};break;
case 2: {
play16(0,4,0,tan);
play16(0,6,0,chi);
play16(1,0,0,she);
play16_fb(0,4,1);
play16_fb(0,6,1);
for(i=0;i<3;i++)
{
play16_fb(1,i<<1,1);
}
};break;
case 3:
{
play16(0,4,1,els);
play16(0,6,1,els+32);
for(i=0;i<3;i++)
{
play16(1,i<<1,1,(els+64+(i<<5)));
}
play16_fb(0,4,2);
play16_fb(0,6,2);
play16_fb(1,0,2);
};break;
default:break;
}
}
if(P3&0x04)
first=1;
if(flag5)
{
switch(count)
{
case 1:flag5=0;tanchishe();count=0;flag5=0;k=0;break;
case 2:flag5=0;fangkuai();count=0;flag5=0; k=0;break;
case 3:flag5=0;wannianli();count=0;flag5=0;k=0;break;
default:count=0;k=3;flag5=0;break;
}
choose12864(2);
init12864();
clear12864();
////////////////////
play16(0,4,0,tan);
play16(0,6,0,chi);
play16(1,0,0,she);
///////////////////
play16(0,4,1,els);
play16(0,6,1,els+32);
for(i=0;i<3;i++)
{
play16(1,i<<1,1,(els+64+(i<<5)));
}
//////////////////
play16(0,4,2,wnl);
play16(0,6,2,wnl+32);
play16(1,0,2,wnl+64);
//////////////////
}
}
}
程序运行结果如图:
全部内容
全部资料包括程序(keil5)、protues仿真(protues8.7)、开发资料、资料使用介绍、仿真视频、程序讲解视频、仿真讲解视频、最小系统介绍视频等。
资料获取
https://docs.qq.com/doc/DT2dBZWtMUEJXc3ZF
更多推荐
所有评论(0)