#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uint a,b;
void time0()interrupt 1
{
a++;b++;TL0=0XFF;TH0=0X4B;
}
void main()
{ uchar temp;
P1=0xfe; //1111 1110
TMOD=0X01;
TL0=0XFF; //定时器赋初值50ms
TH0=0X4B;
ET0=1; //开中断
EA=1;
TR0=1; //开定时器
while(1)
{
if(b<420)
{
if(a==20) //设定1s
{
temp=P1;
temp=_crol_(temp,1); //左移动一位
P1=temp;
a=0;
}
if(b==160)
{P1=0x00; } //全亮
if(b==200) //以下依次灭
{P1=0x01;}
if(b==220)
{P1=0x03;}
if(b==240)
{ P1=0x07;}
if(b==260)
{P1=0x0f; }
if(b==280)
{ P1=0x1f;}
if(b==300)
{ P1=0x3f;}
if(b==320)
{ P1=0x7f; }
if(b>340) //3闪
{
P1=0xff;
if(b==344)
{
a=0;
P1=~P1;
while(a!=18);
P1=~P1;
while(a!=18);
}
if(b==364)
{
a=0;
P1=~P1;
while(a!=18);
P1=~P1;
while(a!=18);
}
if(b==384)
{
a=0;
P1=~P1;
while(a!=18);
P1=~P1;
while(a!=18);
}
P1=0xff;
}
if(b>360) //全灭
{ P1=0xff;}
}
else
{ b=0; break;}
}
}

|