仿真版本:Proteus8.6及以上版本
程序編譯:Keil5 C51
編程語言:C語言
設(shè)計(jì)編號:【Z04】
1.? 簡介
? 本文提出了一種基于51單片機(jī)的貪吃蛇設(shè)計(jì)。本系統(tǒng)由AT89C51單片機(jī)為控制核心,制作一個8*8點(diǎn)陣的貪吃蛇游戲,通過LED點(diǎn)陣屏為載體顯示數(shù)據(jù),并用四個輸入端表示四個控制鍵(上下左右)。系統(tǒng)硬件部分由AT89C51片機(jī),8*8點(diǎn)陣屏,4個按鍵,軟件部分在keil環(huán)境下用c51語言編寫,包括游戲初始蛇的段數(shù),以及障礙墻壁,游戲結(jié)束時自動復(fù)位。
2.? 主要功能
a.支持8*8點(diǎn)陣顯示移動軌跡。
b. 支持按鍵實(shí)現(xiàn)啟停、上下左右移動。
c. 支持蜂鳴器顯示報(bào)警信息。
3.? 源程序(Keil5)
本設(shè)計(jì)采用keil5 C51軟件(內(nèi)附安裝包)實(shí)現(xiàn)程序設(shè)計(jì)。如需用keil4打開程序,可自行通過.c和.h文件新建工程即可。
//定義方向
sbit left=P3^3; //左
sbit down=P3^4; //下
sbit right=P3^5; //右
sbit up=P3^6; //上
unsigned char x[SNAKE+1]; //蛇身的坐標(biāo) 行
unsigned char y[SNAKE+1]; //蛇身的坐標(biāo) 列
unsigned char time,n,i,e; //延時時間,當(dāng)前蛇長,通用循環(huán)變量,當(dāng)前速度
char addx,addy; // 移動方向,同直角坐標(biāo)系,addx為橫向,addy為縱向
bit again ;//再次產(chǎn)生果實(shí)變量,
//延時程序
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;}
}
4.? 仿真proteus8.6
? 本設(shè)計(jì)采用proteus8.6軟件(內(nèi)附安裝包)實(shí)現(xiàn)仿真設(shè)計(jì),如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導(dǎo)出的,所以請盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。
仿真界面:
5.? 設(shè)計(jì)報(bào)告
設(shè)計(jì)報(bào)告主要包括硬件電路、軟件設(shè)計(jì)、仿真調(diào)試等等,僅供參考。
6.? 資料清單
設(shè)計(jì)資料主要包括C程序+仿真+設(shè)計(jì)報(bào)告+使用說明+元件清單+操作視頻等。
7.? 資料獲取鏈接
百度網(wǎng)盤下載鏈接:【Z04】百度網(wǎng)盤下載鏈接
更多單片機(jī)仿真設(shè)計(jì)合集:單片機(jī)仿真設(shè)計(jì)合集