資源簡介
里面包含源程序與hex文件,如果需要更改引腳則要編譯hex文件。LCD12864需要有帶PSB引腳,注意區分兩種類型的LCD12864。可用51最小系統,LCD12864和四個獨立按鍵即可實現。程序經過本人實踐過,切實可用。簡單,易操作,好玩。

代碼片段和文件信息
#include?“reg51.h“?
#include?“12864.h“?
#define?uchar?unsigned?char?
#define?uint?unsigned?int?
?
static?unsigned?long?Seed?=?1;?
#define?A?48271L?
#define?M?2147483647L?
#define?Q?(M?/?A)?
#define?R?(M?%?A)?
sbit?K1=P3^4;?
sbit?K2=P3^5;?
sbit?K3=P3^6;?
sbit?K4=P3^7;?
unsigned?int?idata?num[19+2]={?
0xfff//第1行,最下面?
0x8010x8010x8010x8010x8010x8010x8010x8010x8010x801?
0x8010x8010x8010x8010x8010x8010x8010x8010x801//第2行到第20行共19行?
0xfff//第21行,最上面?
?
};//定義共21行,其中num[0]為下墻壁行,num[20]為上墻壁行每行12格,最左一格為左?
unsigned?char?code?Block[28][2]={?
/*?
*???口?????口口口???口口?
*???口?????口?????????口??????口?
*???口口??????????????口??口口口???????
*/?
{0x880xc0}{0xe80x00}{0x620x20}{0x020xe0}?
/*?
*???口????????口口?口口口?
*???口?口?????口???????口?
*?口口?口口口?口?????
*/?
{0x220x60}{0x080xe0}{0xc80x80}{0xe20x00}???
/*?
*???口?
*???口口?????????口口?
*?????口???????口口?
*/?
{0x8c0x40}{0x6c0x00}{0x8c0x40}{0x6c0x00}??/*?
*???口????????口口?
*?口口??????????口口?
*?口?
*/?
{0x4c0x80}{0xc60x00}{0x4c0x80}{0xc60x00}???
/*?
*??????????口????????????????口?
*???口?????口口???口口口???口口?
*?口口口???口???????口???????口?
*/?
{0x040xe0}{0x8c0x80}{0xe40x00}{0x260x20}?
/*口?
*?口?
*?口???????口口口口?
*?口?
*/?
{0x440x44}{0x0f0x00}{0x440x44}{0x0f0x00}???
/*?
*?口口?
*?口口?
*/???
{0x060x60}{0x060x60}{0x060x60}{0x060x60}?
};?
?
#define?PASSSCORE?20?
struct?Jimu?
{?
?unsigned?int?dat;?
??char?x;?
?unsigned?char?y;?
?unsigned?char?type;?
?unsigned?char?change;?
}Sign[3];//積木結構體?
?
unsigned?char?SysFlag=0;?
#define?NEWSIGNFLAG?0?
#define?DEADFLAG?1?
#define?PAUSEFLAG?2?
?
unsigned?char?Score=0;?
unsigned?char?Level=1;?
unsigned?char?DelayCnt=5;?
/*********************************************************/??
#define?N?25?
/************************************?
偽隨機數發生器?
*************************************/?
double?Random(void)?
{?
?long?TmpSeed;?
?TmpSeed=A*(Seed%Q)-R*(Seed/Q);?
?if(TmpSeed>=0)?
?? Seed=TmpSeed;?
?else?
?? Seed=TmpSeed+M;?
?return?(double)Seed/M;?
}?
?
/**************************************?
為偽隨機數發生器播種?
***************************************/?
void?InitRandom(unsigned?long?InitVal)?
{?
?Seed=InitVal;?
}?
?
//延時子程序?
void?Delay(unsigned?int?t)?
{???
?unsigned?int?ij;?
?for(i=0;i
??for(j=0;j<10;j++);?????
}?
/*********************************?
初始化MPU?
**********************************/?
void?InitCpu(void)?
{?
?TMOD=0x0;?
?TH0=0;?
?TL0=0;?
?TR0=1;?
?ET0=1;???
?EX1=1;?
?EA=1;?
?TCON|=0x04;?
}
/*************俄羅斯方塊部分??
/******************************?
畫墻壁,初始化界面?
*******************************/?
void?DrawBoard(void)?
{?
?unsigned?char?n;?
?for(n=0;n<12;n++)?
?{?
??Lcd_Rectangle(3*n03*n+221);?
??Lcd_Rectangle(3*n603*n+2621);?
?}?
?for(n=0;n<20;n++)?
?{?
??Lcd_Rectangle(0
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-04-09?15:15??code\
?????文件????????6910??2016-04-09?14:59??code\12864.h
?????文件???????30719??2016-04-09?14:59??code\test
?????文件???????26347??2016-04-09?14:59??code\test.LST
?????文件???????38443??2016-04-09?14:59??code\test.M51
?????文件???????36445??2016-04-09?14:59??code\test.OBJ
?????文件???????10882??2016-04-09?14:59??code\test.c
?????文件???????13439??2016-04-09?14:59??code\test.hex
?????文件??????????25??2016-04-09?14:59??code\test.lnp
?????文件?????????159??2016-04-09?15:15??code\test.plg
?????文件???????56984??2016-04-09?15:15??code\test.uvopt
?????文件???????13224??2016-04-07?23:24??code\test.uvproj
?????文件???????56992??2016-04-09?14:59??code\test_uvopt.bak
?????文件???????13220??2016-04-07?21:12??code\test_uvproj.bak
評論
共有 條評論