• 方案介绍
    • 1.  简介
    • 2.  主要功能
    • 3.  源程序(Keil5)
    • 4.  仿真proteus8.6
    • 5.  设计报告
    • 6.  资料清单
    • 7.  资料获取链接
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于51单片机的简易贪吃蛇设计(三)

04/28 10:33
989
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

单片机仿真设计合集资料获取.pdf

共1个文件

资料清单:C程序+仿真+设计报告+使用说明+元件清单+操作视频

仿真版本:Proteus8.6及以上版本

程序编译:Keil5 C51

编程语言:C语言

设计编号:【Z05】

1.  简介

  本文提出了一种基于51单片机的贪吃蛇设计。本系统由AT89C51单片机为控制核心,制作一个8*8点阵的贪吃蛇游戏,通过LED点阵屏为载体显示数据,并用四个输入端表示四个控制键(上下左右)。系统硬件部分由AT89C51片机,8*8点阵屏,4个按键,软件部分在keil环境下用c51语言编写,包括游戏初始蛇的段数,以及障碍墙壁,游戏结束时自动复位。

2.  主要功能

a.支持8*8点阵显示移动轨迹。

b. 支持按键实现启停、上下左右移动。

c. 支持蜂鸣器显示报警信息。

d. 支持数码管显示分数。

3.  源程序(Keil5)

本设计采用keil5 C51软件(内附安装包)实现程序设计。如需用keil4打开程序,可自行通过.c和.h文件新建工程即可。

//定义方向   
sbit  left=P3^3;    //左
sbit  down=P3^4;    //下
sbit right=P3^5;    //右
sbit  up=P3^6;      //上

unsigned char x[SNAKE+1];			 //蛇身的坐标 行
unsigned char y[SNAKE+1];          	   //蛇身的坐标 列
unsigned char time,n,i,e;              //延时时间,当前蛇长,通用循环变量,当前速度		
char addx,addy;                // 移动方向,同直角坐标系,addx为横向,addy为纵向
bit again  ;//再次产生果实变量,
 

//延时程序

void delay(char MS)
{
  while(MS--)
  ;

 }
void delay_1ms(uint xms)//延时函数,有参函数
{
              uint x,y;
              for(x=xms;x>0;x--)
              for(y=124;y>0;y--);
}

//判断碰撞

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()
{
   if(right==0)     {addy=0;   if(addx!=-1)  addx=1;           else   addx=-1;}
     if(left==0)      {addy=0;  if(addx!=1)  addx=-1;         else addx=1;}
       if(down==0)     {addx=0;   if(addy!=1)   addy=-1;       else addy=1;}
        if(up==0)      {addx=0;   if(addy!=-1)   addy=1;   else addy=-1;}
}
 			   

void score(unsigned char j)				
{
       if(j<40)   
	   {
//			 P1=tab1[j%10];
//             gw=1;
           delay(TIME+10) ;
	//	gw=0;
     
          // P1=tab2[j/10];
           // sw=1;
          delay(TIME+10);	 
	//	sw=0;
       }   
	  						 
}	
//判断具体的亮点

char mux(unsigned char 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;
}

4.  仿真proteus8.6

  本设计采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。

仿真界面:

5.  设计报告

设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考

6.  资料清单

设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等。

7.  资料获取链接

百度网盘下载链接:【Z05】百度网盘下载链接

更多单片机仿真设计合集:单片机仿真设计合集

  • 单片机仿真设计合集资料获取.pdf
    下载

相关推荐