#include<reg51.h>
unsigned char a,b,c,aa,bb,cc;
sbit R=P3^5;
sbit G=P3^4;
sbit BB=P3^3; //共阳RGB LED
sbit RK=P3^0;
sbit GK=P3^1;
sbit BK=P3^2;
void delay1()
{
unsigned char i,j;
for(i=a;i>0;i--)
for(j=50;j>0;j--)
{;}
}
void delay2()
{
unsigned char i,j;
for(i=b;i>0;i--)
for(j=50;j>0;j--)
{;}
}
void delay3()
{
unsigned char i,j;
for(i=c;i>0;i--)
for(j=50;j>0;j--)
{;}
}
void delay4()
{
unsigned char i,j;
for(i=aa;i>0;i--)
for(j=50;j>0;j--)
{;}
}
void delay5()
{
unsigned char i,j;
for(i=bb;i>0;i--)
for(j=50;j>0;j--)
{;}
}
void delay6()
{
unsigned char i,j;
for(i=cc;i>0;i--)
for(j=50;j>0;j--)
{;}
}
void delay()
{
unsigned char i,j;
for(i=50;i>0;i--)
for(j=40;j>0;j--)
{;}
}
void main()
{
P3=0xff; //初始化
aa=11;
bb=11;
cc=11;
while(1)
{
if(a>0&&a<11){R=0;delay1();R=1;delay4();}
if(b>0&&b<11){G=0;delay2();G=1;delay5();}
if(c>0&&c<11){BB=0;delay3();BB=1;delay6();}
if(RK==0){delay();if(RK==0){a++;aa--;while(!RK);}}
if(GK==0){delay();if(GK==0){b++;bb--;while(!GK);}}
if(BK==0){delay();if(BK==0){c++;cc--;while(!BK);}}
if(a>10){a=0;aa=11;}
if(b>10){b=0;bb=11;}
if(c>10){c=0;cc=11;}
}
}
unsigned char a,b,c,aa,bb,cc;
sbit R=P3^5;
sbit G=P3^4;
sbit BB=P3^3; //共阳RGB LED
sbit RK=P3^0;
sbit GK=P3^1;
sbit BK=P3^2;
void delay1()
{
unsigned char i,j;
for(i=a;i>0;i--)
for(j=50;j>0;j--)
{;}
}
void delay2()
{
unsigned char i,j;
for(i=b;i>0;i--)
for(j=50;j>0;j--)
{;}
}
void delay3()
{
unsigned char i,j;
for(i=c;i>0;i--)
for(j=50;j>0;j--)
{;}
}
void delay4()
{
unsigned char i,j;
for(i=aa;i>0;i--)
for(j=50;j>0;j--)
{;}
}
void delay5()
{
unsigned char i,j;
for(i=bb;i>0;i--)
for(j=50;j>0;j--)
{;}
}
void delay6()
{
unsigned char i,j;
for(i=cc;i>0;i--)
for(j=50;j>0;j--)
{;}
}
void delay()
{
unsigned char i,j;
for(i=50;i>0;i--)
for(j=40;j>0;j--)
{;}
}
void main()
{
P3=0xff; //初始化
aa=11;
bb=11;
cc=11;
while(1)
{
if(a>0&&a<11){R=0;delay1();R=1;delay4();}
if(b>0&&b<11){G=0;delay2();G=1;delay5();}
if(c>0&&c<11){BB=0;delay3();BB=1;delay6();}
if(RK==0){delay();if(RK==0){a++;aa--;while(!RK);}}
if(GK==0){delay();if(GK==0){b++;bb--;while(!GK);}}
if(BK==0){delay();if(BK==0){c++;cc--;while(!BK);}}
if(a>10){a=0;aa=11;}
if(b>10){b=0;bb=11;}
if(c>10){c=0;cc=11;}
}
}