#include<reg51.h>
unsigned char code image[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xC3,0xE7,0xE7,0xE7,0xE7,0xE7,0xC3,0xFF,
0x99,0x00,0x00,0x00,0x81,0xC3,0xE7,0xFF,
0x99,0x99,0x99,0x99,0x99,0x81,0xC3,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; //24個
unsigned char code TAB[8] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
void main(){
EA=1;
TMOD=0x01;
TH0=0xfc;
TL0=0x67;
ET0=1;
TR0=1;
while(1);
}
void int0() interrupt 1{
static unsigned char i=0;
static unsigned char tmr=0;
static unsigned char index=0;
TH0=0xfc;
TL0=0x67;
P0=0xff;
switch(i){
case 0: P1=TAB[7];i++;P0=image[index+0]; break;
case 1: P1=TAB[6];i++;P0=image[index+1]; break;
case 2: P1=TAB[5];i++;P0=image[index+2]; break;
case 3: P1=TAB[4];i++;P0=image[index+3]; break;
case 4: P1=TAB[3];i++;P0=image[index+4]; break;
case 5: P1=TAB[2];i++;P0=image[index+5]; break;
case 6: P1=TAB[1];i++;P0=image[index+6]; break;
case 7: P1=TAB[0];i=0;P0=image[index+7]; break;
default: break;
}
tmr++;
if(tmr>=250){
tmr=0;
index++;
if(index>=32){
index=0;
}
}
}
|