📄 text1.c
字号:
if ((P2&0xf0)!=0xf0)
{
scancode = 0xfe;
while((scancode&0x10)!=0)
{
P2 = scancode;
if ((P2&0xf0)!=0xf0)
{
tmpcode = (P2&0xf0)|0x0f;
return((~scancode)+(~tmpcode));
}
else scancode = (scancode<<1)|0x01;
}
}
}
return(0);
}
void refresh(void)
{
uchar i;
row=row_12864;
col=col_12864;
write_command_12864(row);
write_command_12864(col);
for(i=0;i<64;i++)
{
if(a[i]==0)
out(kong);
else if(a[i]==1)
out(she);
}
}
void ding(void)
{
if(col>col_12864+55)
{
col=col_12864;
row++;
}
else
col+=8;
}
void out(uchar *pz)
{
uchar i;
for(i=0;i<8;i++)
write_data_12864(pz[i]);
ding();
write_command_12864(row);
write_command_12864(col);
}
void outh(uchar *pz,uchar n)
{
uchar i,j,k;
j=0;
for(k=0;k<n;k++)
{
write_command_12864(row);
write_command_12864(col);
for(i=0;i<16;i++)
write_data_12864(pz[j++]);
row++;
write_command_12864(row);
write_command_12864(col);
for(i=0;i<16;i++)
write_data_12864(pz[j++]);
col+=16;
row--;
}
}
void init(void)
{
uchar i;
for(i=0;i<64;i++)
a[i]=0;
if(guan==0)
{
longe=2;
towads=0;
b[0]=36;
b[1]=35;
b[2]=34;
for(i=0;i<longe+1;i++)
a[b[i]]=1;
}
v=8-3*hard;
TR0=1;
}
void lxy(void)
{
if(guan>din)
din=guan;
else if(guan<din-3)
din=guan+3;
}
void caidan(void)
{
uchar i;
init_lcd_12864();
lxy();
for(i=din-3;i<=din;i++)
{
col=col_12864;
row=row_12864+2*(i-(din-3));
if(i==guan)
outhf(diyiguan+i*96,3);
else
outh(diyiguan+i*96,3);
}
}
void outhf(uchar *pz,uchar n)
{
uchar i,j,k;
j=0;
for(k=0;k<n;k++)
{
write_command_12864(row);
write_command_12864(col);
for(i=0;i<16;i++)
write_data_12864(~pz[j++]);
row++;
write_command_12864(row);
write_command_12864(col);
for(i=0;i<16;i++)
write_data_12864(~pz[j++]);
col+=16;
row--;
}
}
void caidana(void)
{
uchar i;
init_lcd_12864();
for(i=0;i<=2;i++)
{
col=col_12864;
row=row_12864+2*i;
if(i==hard)
outhf(nandu+i*64,2);
else
outh(nandu+i*64,2);
}
}
main()
{
state=0;
din=3;
guan=0;
hard=0;
x=0;
row=row_12864;
col=col_12864;
init_lcd_12864();
cs1_12864=0;
cs2_12864=1;
TMOD=0x01;
IE=0x82;
TH0=0;
TL0=0;
TR0=0;
caidan();
while(1)
{
key=0;
while(key==0)
key=keyscan();
while(P2!=0xf0)
P2=0xf0;
if(state==0)
{
if(key==0x14)
{
if(guan>0)
{
guan--;
caidan();
}
}
else if(key==0x44)
{
if(guan<9)
{
guan++;
caidan();
}
}
else if(key==0x24)
{
state=1;
caidana();
}
}
else if(state==1)
{
if(key==0x14)
{
if(hard>0)
{
hard--;
caidana();
}
}
else if(key==0x44)
{
if(hard<2)
{
hard++;
caidana();
}
}
else if(key==0x24)
{
state=2;
init();
refresh();
}
}
else if(state==2)
{
if(key==0x14)
{
if(towads!=3)
towads=1;
}
else if(key==0x44)
{
if(towads!=1)
towads=3;
}
else if(key==0x22)
{
if(towads!=0)
towads=2;
}
else if(key==0x28)
{
if(towads!=2)
towads=0;
}
else if(key==0x24)
{
state=3;
TR0=0;
init_lcd_12864();
yn=0;
col=col_12864;
row=row_12864+2;
outh(shifoutuichu,4);
col=col_12864;
row=row_12864+4;
outhf(shi,1);
col=col_12864+48;
row=row_12864+4;
outh(fou,1);
}
}
else if(state==3)
{
if(key==0x28)
{
if(yn==0)
{
yn=1;
row=row_12864+4;
col=col_12864;
outh(shi,1);
row=row_12864+4;
col=col_12864+48;
outhf(fou,1);
}
}
else if(key==0x22)
{
if(yn==1)
{
yn=0;
row=row_12864+4;
col=col_12864;
outhf(shi,1);
row=row_12864+4;
col=col_12864+48;
outh(fou,1);
}
}
else if(key==0x24)
{
if(yn==0)
{
state=0;
init_lcd_12864();
caidan();
}
else if(yn==1)
{
state=2;
init_lcd_12864();
refresh();
TR0=1;
}
}
}
}
}
void job() interrupt 1 using 1
{
uchar i;
x++;
if(x==v)
{
a[b[longe]]=0;
for(i=longe;i>0;i--)
b[i]=b[i-1];
if(towads==0)
{
b[0]++;
if((b[0]%8)==0)
b[0]-=8;
}
else if(towads==1)
{
if(b[0]<8)
b[0]+=56;
else
b[0]-=8;
}
else if(towads==2)
{
if(b[0]%8==0)
b[0]+=7;
else
b[0]--;
}
else if(towads==3)
{
b[0]+=8;
if(b[0]>63)
b[0]-=64;
}
a[b[0]]=1;
x=0;
refresh();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -