|
#include<at89c51.h>
#define uint unsigned int
#define uchar unsigned char
uchar code led[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar num;
void delay(uchar x)
{
uchar y,z;
for(y=x;y>0;y--)
for(z=250;z>0;z--);
}
void display(uchar num)
{
P2_0=0;
P0=~led[num/10];
delay(5);
P2_0=1;
P2_1=0;
P0=~led[num%10];
delay(5);
P2_1=1;
}
void TAKE_SBUF(uchar dat)
{
ES=0;
SBUF=dat;
while(~TI);
TI=0;
ES=1;
}
void main()
{
SCON=0X90;
EA=1;
ES=1;
P2=0xff;
num=0;
if(P1_0==0)
TAKE_SBUF(num+1);
while(1)
{
}
}
void int0rupt() interrupt 4
{
uchar i;
num=SBUF;
if(num>99)
num=0;
for(i=200;i>0;i--)
display(num);
TAKE_SBUF(num+1);
RI=0;
} |
|