📄 1111.c
字号:
#include <at89x52.h>
unsigned char dispbuf[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D ,0x07,0x7F,0x6F};
unsigned char bitselect[]={ 0xF7,0xFB,0xFD,0xFE};
unsigned char disp[4];
/*void t0init(void)
{
TMOD=1;
TL0=-50000;
TH0=(-50000)>>8;
ET0=1;
TR0=1;
EA=1;
}*/
void dispmove(unsigned char dat)
{ unsigned char i;
for(i=4;i>=1;i--)
disp[i-1]=disp[i-2];
disp[0]=dat;
}
unsigned char keydriver(void)
{
unsigned char x,y;
P3=0xf0;
x=P3;
x=x&0xf0;
P3=0x0f;
y=P3;
y=y&0x0f;
y=x|y;
return(y);
}
void DispGame()
{
static unsigned char ii=0;
P0=0;
P0=dispbuf[disp[ii]];
P2=bitselect[ii];
if(++ii>3) ii=0;
}
unsigned char key()
{
unsigned char i,keyvalue;
i=keydriver();
if(i!=0xff)
{
while((keydriver()!=0xff));
switch(i)
{
case 0x7d: keyvalue=0; break;
case 0xeb: keyvalue=1; break;
case 0xed: keyvalue=2; break;
case 0xee: keyvalue=3; break;
case 0xdb: keyvalue=4; break;
case 0xdd: keyvalue=5; break;
case 0xde: keyvalue=6; break;
case 0xbb: keyvalue=7; break;
case 0xbd: keyvalue=8; break;
case 0xbe: keyvalue=9; break;
default: return(-1);
}
dispmove(keyvalue);
}
}
/*void t0interrupt(void) interrupt 1
{
TL0=-50000;
TH0=(-50000)>>8;
key();
}*/
void delay(unsigned char i)
{
unsigned char j,k;
for(j=0;j<i;j++)
for(k=0;k<255;k++);
}
main()
{ //t0init();
while(1)
{
DispGame();
delay(2);
key();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -