#include<reg52.h>
#define uint8 unsigned char
#define uint16 unsigned int
#define HOR 24*4
unsigned char Show;
/*code uint8 zi[HOR*3]={
0x9F,0xFF,0xFF,0x1F,0xBF,0xFF,0x3F,0xBE,0xFF,0x3F,0xBE,0xFF,0x7F,0xBE,0xDF,0xFF,
0xBC,0xCF,0xFF,0x9D,0xCF,0xFF,0x9F,0xCF,0x03,0x00,0xEC,0x01,0x00,0xE4,0xE1,0xDF,
0xF5,0xE7,0xCF,0xF7,0xEF,0xCF,0xF7,0xFF,0xEF,0xF0,0x7F,0x04,0xF0,0x1F,0x04,0xF0,
0x0F,0xE7,0xFF,0x8F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xF7,0xFF,0xF7,
0xF7,0xFF,0xE7,0xF7,0xFF,0xE7,0xF7,0xFE,0xC7,0x37,0xFE,0x87,0x07,0xFC,0x8F,0x07,
0xFC,0x1F,0xF6,0xFE,0x7F,0xF0,0xC0,0xFF,0x00,0x80,0xFF,0x00,0x80,0x3F,0x78,0xFF,
0x1F,0x7B,0xFF,0xCF,0x7B,0xFF,0xE7,0xBB,0xFF,0xF3,0x3B,0xFF,0xFB,0x3B,0xE7,0x01,
0x00,0xC0,0x01,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0x83,0xFF,0xFF,0x83,0xFF,0xFF,0xF3,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF,0xFF,0xF3,0xFF,
0xFF,0xF3,0xFF,0xFF,0xF3,0xFF,0xFF,0xF7,0xFF,0xFF,0xF7,0xFE,0xFF,0x77,0xEE,0xFF,
0x77,0xEE,0xFF,0x73,0xE7,0xFF,0x73,0xE3,0x00,0x00,0xE0,0x00,0x00,0xF0,0xFF,0x3B,
0xB7,0xFF,0xBB,0x87,0xFF,0xBB,0x87,0xFF,0x83,0xE3,0xFF,0x81,0xF1,0xFF,0x9D,0xFC,
0xFF,0x7D,0xFE,0xFF,0x7D,0xFF,0xFF,0xFC,0xFF,0xFF,0xFC,0xFF,0xFF,0xFC,0xFF,0xFF,
0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0x7F,
0xFE,0xFF,0x7F,0xFE,0xFF,0x7F,0xCF,0x00,0x00,0xCF,0x00,0x00,0xCF,0xFF,0x1F,0xE7,
0xFF,0x7F,0xF7,0xFF,0x07,0xF0,0xFF,0x01,0xF0,0x7F,0xE0,0xF7,0x3F,0x6E,0xE7,0x9F,
0x6D,0xEB,0xDF,0x69,0xA0,0x3F,0x40,0x20,0x0F,0x00,0x37,0x8F,0x0F,0x74,0xBF,0xA7,
0xF4,0xFF,0xB4,0xF7,0x3F,0xB4,0xF7,0x3F,0xB6,0xFF,0xFF,0xB7,0xFF,0xFF,0xBF,0xFF
}; */
code uint8 zi[HOR*3]={
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0x9E,
0x3F,0xFF,0x9C,0x3F,0x3F,0x99,0xFF,0x1F,0x93,0xFF,0x9F,0x97,0xFF,0xCF,0x9F,0xFF,
0xC8,0x00,0x01,0xC8,0x00,0x01,0xCF,0x9F,0xF9,0xCF,0x93,0xF9,0xE0,0x91,0xF3,0xE0,
0x1C,0xE7,0xFF,0x1E,0x3F,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xCF,
0xF3,0xFF,0xCF,0xF3,0xF8,0x0F,0xE7,0xF8,0x0F,0x8F,0xF9,0xCE,0x3F,0xF9,0xC8,0x7F,
0x00,0x01,0xFF,0x00,0x01,0xFF,0xF9,0xC8,0x7F,0xF9,0xCE,0x3F,0xF9,0x4F,0x8F,0xFE,
0x4F,0xC7,0xFE,0x4F,0xF7,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x1F,0xFF,0xFF,0x0F,
0xFF,0xFF,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x80,0x00,0x01,0x80,0x00,0x01,0xCF,0xE7,0xF3,0xCF,0xE7,0xF3,0xCF,0xE7,0xF3,0xCF,
0xE7,0xF3,0xCF,0xE7,0xF3,0xCF,0xE7,0xF3,0x80,0x00,0x01,0x80,0x00,0x01,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF9,
0xFC,0xFF,0xF9,0xFC,0xF9,0xF9,0xFC,0xF9,0xF9,0xFC,0xF9,0xF9,0xFC,0xF9,0xF9,0xFC,
0xF9,0xF9,0x00,0x00,0x01,0x00,0x00,0x01,0xFC,0xF9,0xF9,0xFC,0xF9,0xF9,0xC0,0xF9,
0xF9,0xC0,0x79,0xF9,0xFE,0x39,0xF9,0xFF,0x9F,0xF9,0xFF,0xDF,0xF9,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
};
void i0(void) interrupt 0 { Show=1; }
void delay_us(unsigned char n) { while(n--); }
void delay_ms(uint16 t)
{
while(t--)
{
delay_us(200);
delay_us(200);
delay_us(200);
}
}
void main(void)
{
unsigned char hor,ver,seg;
Show=0;
EA=0;
EX0=1;
IT1=1;
for (seg=0;seg<3;seg++)
{
P1=~(1<<seg);
for (ver=0;ver<8;ver++)
{
P0=~(1<<ver);
delay_ms(20);
}
}
P0=0xff;
EA=1;
while(1) if (Show)
{
EA=0;
for (hor=0;hor<80;hor++) delay_us(100);
for (hor=0;hor<HOR;hor++)
{
for (ver=0;ver<5;ver++)
{
P1=~(1<<0);
P0=(zi[hor*3+2]);
delay_us(2);
P0=0xff;
P1=~(1<<1);
P0=(zi[hor*3+1]);
delay_us(2);
P0=0xff;
P1=~(1<<2);
P0=(zi[hor*3+0]);
delay_us(2);
P0=0xff;
}
}
Show=0;
EA=1;
}
}