仿真版本: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)盤下載鏈接
更多單片機仿真設計合集:單片機仿真設計合集