#include <reg51.h>
#define SEG P2
#define SCAN P3
#define uchar unsigned char
#define uint unsigned int
uchar shu[] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0x80,0xc0,0xb0,0xc0,0xf8,0xc0,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//18030708
uchar seg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar sel[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char count=0;
unsigned int y,m;
void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x3C;
TL0 = 0x0B0;
count++;
}
void delay_1ms(uint x)
{
uint i,j;
for(i=0; i<x; i++)
for(j=0; j<120; j++);
}
void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x3C;
TL0 = 0x0B0;
EA = 1;
ET0 = 1;
TR0 = 1;
while(1)
{
for(m=0;m<8;m++)
{
SCAN = ~0xff;
SEG = shu[y+m];
SCAN = ~sel[m];
delay_1ms(1);
}
if(count==20){count=0;break;}}
}
void main(void)
{
while(1)
{
for(y=0;y<15;y++)
{
InitTimer0();
}
}}
|