#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delays(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
uint i,j,n; uchar a,b,c,d;
for(i=0;i<1;i++) // 所有灯闪1下
{
P0=P1=P2=P3=0x00;delays(1000);
P0=P1=P2=P3=0xff;delays(1000);
}
P3=P2=0xff; //两边一起向下流水
for(j=0;j<=8;j++)
{
P1=0xff<<j;P0=0xff<<j;delays(40);
}
for(j=0;j<=8;j++)
{
P3=0xff<<j; P2=0xff>>j;delays(40);
}
P0=P1=P2=P3=0x00;delays(500);
for(j=0;j<8;j++)
{P3=0xff<<(7-j);P2=0xff>>(7-j);delays(40);
}
for(j=0;j<8;j++)
{
P0=0xff<<(7-j);P1=0xff<<(7-j);delays(40);
}
P3=P2=0xff; //两边 杂乱 闪烁
for(j=0;j<=8;j++)
{P1=0xff<<j; P0=0xff<<j; delays(40);
}
for(j=0;j<=8;j++)
{P3=0xff>>j;P2=0xff<<j; delays(40);
}
P0=P1=P2=P3=0x00;delays(500);
for(j=0;j<8;j++)
{P1=0xff>>(7-j);P0=0xff>>(7-j);delays(40);
}
for(j=0;j<8;j++)
{P2=0xff>>(7-j);P3=0xff<<(7-j);delays(40);
}
P0=P1=P2=P3=0xff; //一边向下流水
for(j=0;j<=8;j++)
{ P1=0xff<<j;delays(30);
}
for(j=0;j<=8;j++)
{
P3=0xff<<j;delays(30);
}
for(j=0;j<=8;j++)
{
P2=0xff<<j;delays(30);
}
for(j=0;j<=8;j++)
{
P0=0xff>>j;delays(30);
}
P0=P1=P2=P3=0x00;
delays(500) ;
for(j=0;j<8;j++)
{
P0=0xff>>(7-j);delays(30);
}
for(j=0;j<8;j++)
{
P2=0xff<<(7-j);delays(30);
}
for(j=0;j<8;j++)
{
P3=0xff<<(7-j);delays(30);
}
for(j=0;j<8;j++)
{
P1=0xff<<(7-j);delays(30);
}
P0=P1=P2=P3=0xff;
for(j=0;j<=8;j++)
{
P0=0xff<<j; delays(30);
}
for(j=0;j<=8;j++)
{
P2=0xff>>j; delays(30);
}
for(j=0;j<=8;j++)
{
P3=0xff>>j;delays(30);
}
for(j=0;j<=8;j++)
{
P1=0xff>>j;delays(30);
}
P0=P1=P2=P3=0x00;
delays(500) ;
for(j=0;j<8;j++)
{
P1=0xff>>(7-j);delays(30);
}
for(j=0;j<8;j++)
{
P3=0xff>>(7-j);delays(30);
}
for(j=0;j<8;j++)
{
P2=0xff>>(7-j);delays(30);
}
for(j=0;j<8;j++)
{
P0=0xff<<(7-j);delays(30);
} //2
P0=P2=P3=0xff ;
for(i=0;i<=8;i++)
{ P1=0xff<<i;delays(50);
} delays(800);
for(i=0;i<8;i++)
{ P1=0xff>>(7-i);delays(50);
} P0=P1=P2=0xff;
for(i=0;i<=8;i++)
{ P3=0xff<<i;delays(50);
} delays(800);
for(i=0;i<8;i++)
{ P3=0xff>>(7-i);delays(50);
}P0=P1=P3=0xff;
for(i=0;i<=8;i++)
{ P2=0xff<<i;delays(50);
} delays(800);
for(i=0;i<8;i++)
{ P2=0xff>>(7-i);delays(50);
} P1=P2=P3=0xff;
for(i=0;i<=8;i++)
{ P0=0xff>>i;delays(50);
} delays(800);
for(i=0;i<8;i++)
{ P0=0xff<<(7-i);delays(50);
}
P2=P3=0xff;for(i=0;i<=8;i++)
{
P0=0xff<<i;P1=0xff<<i;delays(50);
}delays(800);
for(i=0;i<8;i++)
{
P0=0xff>>(7-i);P1=0xff>>(7-i);delays(50);
}P0=P1=0xff;
for(i=0;i<=8;i++)
{
P3=0xff<<i;P2=0xff>>i;delays(50);
}delays(800);
for(i=0;i<8;i++)
{
P3=0xff>>(7-i);P2=0xff<<(7-i);delays(50);
}
for(i=0;i<3;i++)
{
P1=P3=P2=0xcc;P0=0x33;delays(500);P1=P3=P2=0x33;P0=0xcc;delays(500);
}
P1=P3=P2=0xcc; P0=0x33; //首先逆时针
for(i=0;i<120;i++)
{
delays(100);P0=_cror_(P0,1);P1=_crol_(P1,1);P3=_crol_(P3,1);P2=_crol_(P2,1);
}
delays(1500) ;
for(i=0;i<120;i++)
{
delays(100); P0=_crol_(P0,1);P1=_cror_(P1,1);P3=_cror_(P3,1);P2=_cror_(P2,1);
} delays(1000);
P1=P3=P2=0x0f; P0=0xf0; //首先逆时针
for(i=0;i<80;i++)
{
delays(120);P0=_cror_(P0,1);P1=_crol_(P1,1);P3=_crol_(P3,1);P2=_crol_(P2,1);
}
delays(1500) ;
for(i=0;i<80;i++)
{
delays(120); P0=_crol_(P0,1);P1=_cror_(P1,1);P3=_cror_(P3,1);P2=_cror_(P2,1);
}
P1=P3=P0=0x77;P2=0xee;
for(i=0;i<50;i++) //四口来回转
{
delays(100);P0=_crol_(P0,1);P1=_crol_(P1,1);P3=_crol_(P3,1);P2=_cror_(P2,1);
}
P0=P3=0xff;P1=P2=0xfe;
for(i=0;i<8;i++)
{ delays(30);
P1=_crol_(P1,1);P2=_crol_(P2,1);
}P1=P2=0xff;P3=0xfe;P0=0x7f;
for(i=0;i<8;i++)
{ delays(30);
P3=_crol_(P3,1);P0=_cror_(P0,1);
}P0=0xfe;P3=0x7f;a=0x7f; b=0xfe;
for(j=1;j<8;j++)
{ c=0xff<<j;d=0xff>>j;
P1=P2=0xfe;
for(i=0;i<=7;i++)
{ delays(30);
P1=_crol_(P1,1);P2=_crol_(P2,1);
}P1=P2=0xff;
for(i=0;i<7;i++)
{
P0=a&c;P3=b&d;delays(30);
a=_cror_(a,1);b=_crol_(b,1);
}
} P0=P3=0x00;b=0xfe;
for(j=1;j<8;j++)
{ d=0xff>>j;
for(i=0;i<7;i++)
{
P1=b&d;P2=b&d;delays(30);b=_crol_(b,1);
}
}
n=2; while(n)
{
P1=P2=P3=0x7f;P0=0xfe;
for(i=0;i<7;i++)
{ delays(100);P1=_cror_(P1,1);P2=_cror_(P2,1);P3=_cror_(P3,1);P0=_crol_(P0,1);
} delays(100);
c=0xfe;d=0x7f;a=0x7f;b=0xfe;
for(j=0;j<9;j++)
{
for(i=0;i<=8;i++)
{
P1=P2=P3=c&a;P0=b&d;delays(100);
a=_cror_(a,1);b=_crol_(b,1);
} c=_cror_(c,1);d=_crol_(d,1); a=c;b=d;
}n--;
}
P3=P2=0xff; //两边一起向下亮
for(j=0;j<=8;j++)
{
P1=0xff<<j;P0=0xff<<j;delays(40);
}
for(j=0;j<=8;j++)
{
P3=0xff<<j; P2=0xff>>j;delays(40);
}
while(1) //一心调频率接近的跳动
{
P0=P1=P2=P3=0x00;delays(800);
P0=P1=P2=P3=0xff;delays(800);
}
}
如果喜欢的话可以直接在淘宝里面搜索“成长路DIY”