• 方案介紹
    • 1.? 簡介
    • 2.? 主要功能
    • 3.? 源程序(Keil5)
    • 4.? 仿真proteus8.6
    • 5.? 設計報告
    • 6.? 資料清單
    • 7.? 資料獲取鏈接
  • 附件下載
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機的簡易貪吃蛇設計(一)

04/28 09:56
239
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

單片機仿真設計合集資料獲取.pdf

共1個文件

資料清單:C程序+仿真+設計報告+使用說明+元件清單+操作視頻

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

程序編譯:Keil5 C51

編程語言:C語言

設計編號:【Z03】

1.? 簡介

? 本文提出了一種基于51單片機的貪吃蛇設計。本系統(tǒng)由AT89C51單片機為控制核心,制作一個8*8點陣的貪吃蛇游戲,通過LED點陣屏為載體顯示數(shù)據(jù),并用四個輸入端表示四個控制鍵(上下左右)。系統(tǒng)硬件部分由AT89C51片機,8*8點陣屏,4個按鍵,軟件部分在keil環(huán)境下用c51語言編寫,包括游戲初始蛇的段數(shù),以及障礙墻壁,游戲結束時自動復位。

2.? 主要功能

a.支持8*8點陣顯示移動軌跡。

b. 支持按鍵實現(xiàn)啟停、上下左右移動。

3.? 源程序(Keil5)

本設計采用keil5 C51軟件(內附安裝包)實現(xiàn)程序設計。如需用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;              //延時時間,當前蛇長,通用循環(huán)變量,當前速度		
char addx,addy;                // 移動方向,同直角坐標系,addx為橫向,addy為縱向
bit again  ;//再次產(chǎn)生果實變量,
 

//延時程序

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

 }
void delay_1ms(uint xms)//延時函數(shù),有參函數(shù)
{
              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;
}
//顯示函數(shù),按點從頭到尾掃描,周期為SNAKE,掃描k個周期運動一格

void time0 (unsigned char k,unsigned char f)	  //顯示k次
{  
  while(k--)
   {  
     
     for(i=0;i<SNAKE+1;i++)	                       //掃描整個虛擬蛇身
       {
	     P2=mux(x[i]);   P0=255-mux(y[i]);	      //按點依次顯示
		   turnkey();                              //上下左右鍵位處理
         score(f);		                        //顯示延遲
		  P2=0x00;  P0=0xff;	                   	//滅燈
		
       }
    }
}

4.? 仿真proteus8.6

? 本設計采用proteus8.6軟件(內附安裝包)實現(xiàn)仿真設計,如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導出的,所以請盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。

仿真界面:

5.? 設計報告

設計報告主要包括硬件電路、軟件設計、仿真調試等等,僅供參考

6.? 資料清單

設計資料主要包括C程序+仿真+設計報告+使用說明+元件清單+操作視頻等。

7.? 資料獲取鏈接

百度網(wǎng)盤下載鏈接:【Z03】百度網(wǎng)盤下載鏈接

更多單片機仿真設計合集:單片機仿真設計合集

  • 單片機仿真設計合集資料獲取.pdf
    下載

相關推薦