51单片机的俄罗斯方块Word格式.docx

上传人:b****4 文档编号:7798316 上传时间:2023-05-09 格式:DOCX 页数:37 大小:74.98KB
下载 相关 举报
51单片机的俄罗斯方块Word格式.docx_第1页
第1页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第2页
第2页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第3页
第3页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第4页
第4页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第5页
第5页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第6页
第6页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第7页
第7页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第8页
第8页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第9页
第9页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第10页
第10页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第11页
第11页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第12页
第12页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第13页
第13页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第14页
第14页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第15页
第15页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第16页
第16页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第17页
第17页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第18页
第18页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第19页
第19页 / 共37页
51单片机的俄罗斯方块Word格式.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

51单片机的俄罗斯方块Word格式.docx

《51单片机的俄罗斯方块Word格式.docx》由会员分享,可在线阅读,更多相关《51单片机的俄罗斯方块Word格式.docx(37页珍藏版)》请在冰点文库上搜索。

51单片机的俄罗斯方块Word格式.docx

ucharcodecube[]=

{

/*■

■■■

*/

0,4,0xe,0,0,2,6,2,0,7,2,0,4,6,4,0,

/*■

■■■

0,8,0xe,0,0,4,4,0xc,0,0,0xe,2,0,6,4,4,

/*■■■

0,0xe,8,0,0,4,4,6,0,1,7,0,6,2,2,0,

/*■■

■■

0,0xc,6,0,0,2,6,4,0,6,3,0,2,6,4,0,

/*■■

■■

0,6,0xc,0,0,4,6,2,0,3,6,0,4,6,2,0,

/*■■■■

0,0xf,0,0,4,4,4,4,0,0,0xf,0,2,2,2,2,

0,6,6,0,0,6,6,0,0,6,6,0,0,6,6,0

};

ucharcodeasii[]=

0x3E,0x51,0x49,0x45,0x3E,//-0-

0x00,0x42,0x7F,0x40,0x00,//-1-

0x62,0x51,0x49,0x49,0x46,//-2-

0x21,0x41,0x49,0x4D,0x33,//-3-

0x18,0x14,0x12,0x7F,0x10,//-4-

0x27,0x45,0x45,0x45,0x39,//-5-

0x3C,0x4A,0x49,0x49,0x31,//-6-

0x01,0x71,0x09,0x05,0x03,//-7-

0x36,0x49,0x49,0x49,0x36,//-8-

0x46,0x49,0x49,0x29,0x1E,//-9-

0x00,0x36,0x36,0x00,0x00,//-:

-10

//next

0x7F,0x04,0x08,0x10,0x7F,//-N-11

0x7F,0x49,0x49,0x49,0x41,//-E-12

0x63,0x14,0x08,0x14,0x63,//-X-13

0x01,0x01,0x7F,0x01,0x01,//-T-14

//speed

0x26,0x49,0x49,0x49,0x32,//-S-15

0x7F,0x09,0x09,0x09,0x06,//-P-16

0x7F,0x49,0x49,0x49,0x41,//-E-17

0x7F,0x41,0x41,0x41,0x3E,//-D-18

//score

0x3E,0x41,0x41,0x41,0x22,//-C-19

0x3E,0x41,0x41,0x41,0x3E,//-O-20

0x7F,0x09,0x19,0x29,0x46,//-R-21

0x00,0x00,0x00,0x00,0x00,//--22

//GAMEOVER

0x3E,0x41,0x51,0x51,0x72,//-G-23

0x7C,0x12,0x11,0x12,0x7C,//-A-24

0x7F,0x02,0x0C,0x02,0x7F,//-M-25

0x1F,0x20,0x40,0x20,0x1F,//-V-26

//TIME

//0x00,0x41,0x7F,0x41,0x00//-I-27

////////////////////////////////////////////////////////////////////////////////

voidlcdCmd(ucharcmd)

bitea;

ea=EA;

EA=0;

EN=0;

RW=0;

RS=0;

LCD=cmd;

EN=1;

EA=ea;

}

//-------------------------------------------------------------------------------

voidlcdWriteByte(ucharch)

RS=1;

LCD=ch;

//--------------------------------------------------------------------------------

voidlcdSetPage(ucharpage)

page&

=0x7;

page+=0xb8;

lcdCmd(page);

voidlcdSetColumn(ucharcolumn)

column&

=0x3f;

column+=0x40;

lcdCmd(column);

//characterfron=5*8

voidlcdPlayChar(ucharindex,ucharpage,ucharcolume)

uchari,temp;

uintp;

p=5*index;

for(i=colume;

i<

colume+5;

i++)

{

if(i<

64)

CS1=1;

CS2=0;

temp=i;

}

else

CS1=0;

CS2=1;

temp=i-64;

lcdSetPage(page);

lcdSetColumn(temp);

lcdWriteByte(asii[p++]);

//---------------------------------------------------------------------------------

//rectangle(3,0,50,60)

voidrectangle(void)

uchari,page;

lcdSetPage(0);

lcdSetColumn

(2);

LCD=0xff;

for(i=3;

51;

LCD=0x1;

//---------------------------

for(page=1;

page<

7;

page++)

{

LCD=0x0;

lcdSetPage(7);

LCD=0x1f;

LCD=0x10;

//--------------------------------------------------------------------

//x:

列;

y行,页3*3

voidlcdPutPix(ucharx,uchary,ucharflag)

uchari,dat,bitmask,nextbit;

bitbflag,pflag,ea;

x=x*MAXPIX;

y=y*MAXPIX;

bflag=0;

pflag=0;

i=y%8;

if(i==0)

bitmask=0x7;

elseif(i==1)

bitmask=0xe;

elseif(i==2)

bitmask=0x1c;

elseif(i==3)

bitmask=0x38;

elseif(i==4)

bitmask=0x70;

elseif(i==5)

bitmask=0xe0;

elseif(i==6)

bflag=1;

bitmask=0xc0;

nextbit=1;

elseif(i==7)

bitmask=0x80;

nextbit=3;

if(x<

62)

elseif(x>

63)

x-=64;

pflag=1;

lcdSetPage(y/8);

for(i=x;

x+MAXPIX;

if(pflag)

if(i==62||i==63)

elseif(pflag&

&

i==64)

}

lcdSetColumn(i);

RW=1;

dat=LCD;

if(flag==1)

dat|=bitmask;

dat&

=~bitmask;

LCD=dat;

if(bflag)

lcdSetPage(y/8+1);

dat|=nextbit;

=~nextbit;

//------------------------------------------------------------------

voidlcdClear(void)

for(page=0;

8;

lcdSetColumn(0);

for(i=0;

64;

lcdWriteByte(0);

//-----------------------------------------------------------------

#defineSTAR53

#defineWIDE6

voidlcdIni(void)

lcdCmd(0x3f);

lcdCmd(0xc0);

lcdClear();

rectangle();

//NEXT

lcdPlayChar(11,0,STAR);

lcdPlayChar(12,0,STAR+1*WIDE);

lcdPlayChar(13,0,STAR+2*WIDE);

lcdPlayChar(14,0,STAR+3*WIDE);

//SPEED

lcdPlayChar(15,3,STAR);

lcdPlayChar(16,3,STAR+1*WIDE);

lcdPlayChar(17,3,STAR+2*WIDE);

lcdPlayChar(17,3,STAR+3*WIDE);

lcdPlayChar(18,3,STAR+4*WIDE);

//01

lcdPlayChar(0,4,STAR+2*WIDE);

lcdPlayChar(1,4,STAR+3*WIDE);

//SCORE

lcdPlayChar(15,5,STAR);

lcdPlayChar(19,5,STAR+1*WIDE);

lcdPlayChar(20,5,STAR+2*WIDE);

lcdPlayChar(21,5,STAR+3*WIDE);

lcdPlayChar(12,5,STAR+4*WIDE);

lcdPlayChar(0,6,STAR+1*WIDE);

lcdPlayChar(0,6,STAR+2*WIDE);

lcdPlayChar(0,6,STAR+3*WIDE);

lcdPlayChar(0,6,STAR+4*WIDE);

lcdPlayChar(0,7,STAR);

lcdPlayChar(0,7,STAR+1*WIDE);

lcdPlayChar(10,7,STAR+2*WIDE);

lcdPlayChar(0,7,STAR+3*WIDE);

lcdPlayChar(0,7,STAR+4*WIDE);

voidshowScoreSpeed(void)

ucharnum[5];

chari;

uinttemp;

temp=score;

5;

num[i]=temp%10;

temp=temp/10;

for(i=4;

i>

0;

i--)

if(num[i]==0)

num[i]=22;

break;

-1;

lcdPlayChar(num[i],6,STAR+(4-i)*WIDE);

lcdPlayChar(speed/10,4,STAR+2*WIDE);

lcdPlayChar(speed%10,4,STAR+3*WIDE);

//-------------------------------------------------------------------

voidtimeServer(void)

if(timeupdate)

timeupdate=0;

lcdPlayChar(fen/10,7,STAR);

lcdPlayChar(fen%10,7,STAR+1*WIDE);

lcdPlayChar(miao/10,7,STAR+3*WIDE);

lcdPlayChar(miao%10,7,STAR+4*WIDE);

if(fashionupdate)

fashionupdate=0;

lcdPlayChar(22,7,STAR+2*WIDE);

//===================================================================

voidt0isr(void)interrupt1

ucharkey;

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

downtimegap++;

t0ms=++t0ms%100;

if(t0ms==0)

timeupdate=1;

miao=++miao%60;

if(miao==0)

fen=++fen%60;

if(t0ms==50)

fashionupdate=1;

//----------------------------

key=0xff;

KEYLEFT=1;

KEYRIGH=1;

KEYROTATION=1;

KEYDOWN=1;

if(!

KEYLEFT)

key=0;

KEYRIGH)

key=1;

KEYROTATION)

key=2;

KEYDOWN)

key=3;

switch(keystate)

case0:

if(key!

=gkey)

gkey=key;

keystate=1;

}

break;

case1:

if(key==gkey)

t0ms1=0;

keystate=2;

if(key!

=0xff)

keyflag=1;

else

keystate=0;

break;

case2:

if(t0ms1<

PUSHON)

t0ms1++;

{

keystate=0;

keyflag=0;

gkey=0xff;

voidshowNextCube(ucharcode*p,ucharx,uchary)

uchari,j,temp;

4;

temp=1;

for(j=0;

j<

j++)

if(p[i]&

temp)

lcdPutPix(x+j,y+i,1);

lcdPutPix(x+j,y+i,0);

temp<

<

=1;

voidcreateCube(void)

staticucharnext;

this.cube=next;

next=TL0%7;

this.row=0;

this.column=6;

this.state=0;

this.box=cube+16*this.cube;

showNextCube(cube+16*next,19,3);

voidshowCubeMap(void)

unsignedcharhang,lie,temp;

for(hang=MAXHANG-1;

hang>

hang--)

if(cubeMap[hang][0]==0&

cubeMap[hang][1]==0)

for(lie=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2