|
#include "reg52.h"
#include "intrins.h"
unsigned char green,red,biue;
bit oneep;
sbit out=P1^2;
void Delay2us() //@11.0592MHz
{
unsigned char i;
i = 3;
while (--i);
}
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 10;
j = 3;
k = 50;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
/////发送1码///////////////////
void one()
{
out=1;
Delay2us();
out=0;
_nop_();
_nop_();
}
//////发送0码////////////
void zero()
{
out=1;
_nop_();
_nop_();
out=0;
Delay2us();
}
//复位码//////////////
void convert()
{
unsigned char i,g,b,r;
g=green;
r=red;
b=biue;
for(i=0;i<8;i++)
{oneep=(r>>1);
if(oneep==1)
one();
if(oneep==0)
zero();
}
for(i=0;i<8;i++)
{oneep=(g>>1);
if(oneep==1)
one();
if(oneep==0)
zero();
}
for(i=0;i<8;i++)
{oneep=(b>>1);
if(oneep==1)
one();
if(oneep==0)
zero();
}
}
//////////////发送5组数函数/////////////////
void fasong()
{
unsigned char i;
for(i=0;i<15;i++)
{ convert();
}
}
////////////发送//////////////////////////
void reddd()
{
unsigned char i;
red=0;
green=0;
biue=0;
for(i=0;i<15;i++)
{ convert();
}
red=200;
convert();
}
///////////////发送4组数////////////////////////////////
void fasongsirun()
{ unsigned char i;
red=0;
green=0;
biue=0;
for(i=0;i<3;i++)
{ convert();
}
red=200;
convert();
}
///////////////发送3组数//////////////////////
void fasong3()
{ unsigned char i;
red=0;
green=0;
biue=0;
for(i=0;i<2;i++)
{ convert();
}
red=200;
convert();
}
//////////////发送2组数/////////////////
void faone()
{
unsigned char i;
red=0;
green=0;
biue=0;
for(i=0;i<1;i++)
{ convert();
}
red=200;
convert();
}
////////////////////////////
void oeoo()
{ red=200;
convert();
}
//////////////////////////////////
void greengg()
{
unsigned char i;
red=0;
green=0;
biue=0;
for(i=0;i<4;i++)
{ convert();
}
green=200;
convert();
out=0;
Delay500ms();
green=0;
for(i=0;i<3;i++)
{ convert();
}
green=200;
convert();
out=0;
Delay500ms();
green=0;
for(i=0;i<2;i++)
{ convert();
}
green=200;
convert();
out=0;
Delay500ms();
green=0;
for(i=0;i<1;i++)
{ convert();
}
green=200;
convert();
out=0;
Delay500ms();
green=200;
convert();
out=0;
Delay500ms();
}
void lanlan()
{
unsigned char i;
red=0;
green=0;
biue=0;
for(i=0;i<4;i++)
{ convert();
}
biue=200;
convert();
out=0;
Delay500ms();
biue=0;
for(i=0;i<3;i++)
{ convert();
}
biue=200;
convert();
out=0;
Delay500ms();
biue=0;
for(i=0;i<2;i++)
{ convert();
}
biue=200;
convert();
out=0;
Delay500ms();
biue=0;
for(i=0;i<1;i++)
{ convert();
}
biue=200;
convert();
out=0;
Delay500ms();
biue=200;
convert();
out=0;
Delay500ms();
}
void baibai()
{
unsigned char i;
red=0;
green=0;
biue=0;
for(i=0;i<4;i++)
{ convert();
}
red=200;
biue=200;
green=200;
convert();
out=0;
Delay500ms();
biue=0;
green=0;
biue=0;
for(i=0;i<3;i++)
{ convert();
}
red=200;
biue=200;
green=200;
convert();
out=0;
Delay500ms();
biue=0;
green=0;
biue=0;
for(i=0;i<2;i++)
{ convert();
}
red=200;
biue=200;
green=200;
convert();
out=0;
Delay500ms();
biue=0;
green=0;
biue=0;
for(i=0;i<1;i++)
{ convert();
}
red=200;
biue=200;
green=200;
convert();
out=0;
Delay500ms();
biue=200;
green=200;
biue=200;
convert();
out=0;
Delay500ms();
}
/////////////////红 绿 蓝 白////////////
void rgb()
{
red=100;
fasong();
out=0;
Delay500ms();
red=0;
green=100;
fasong();
out=0;
Delay500ms();
green=0;
biue=100;
fasong();
out=0;
Delay500ms();
red=100;
green=100;
biue=100;
fasong();
out=0;
Delay500ms();
}
//////////////////////////////////////
void shunn()
{
unsigned char i;
red=200;
convert();
out=0;
Delay500ms();
for(i=0;i<2;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<3;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<4;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<5;i++)
{convert();}
out=0;
Delay500ms();
red=0;
green=0;
biue=0;
for(i=0;i<5;i++)
{convert();}
out=0;
Delay500ms();
}
void shunng()
{
unsigned char i;
green=200;
convert();
out=0;
Delay500ms();
for(i=0;i<2;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<3;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<4;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<5;i++)
{convert();}
out=0;
Delay500ms();
red=0;
green=0;
biue=0;
for(i=0;i<5;i++)
{convert();}
out=0;
Delay500ms();
}
void shunnl()
{
unsigned char i;
biue=200;
convert();
out=0;
Delay500ms();
for(i=0;i<2;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<3;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<4;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<5;i++)
{convert();}
out=0;
Delay500ms();
red=0;
green=0;
biue=0;
for(i=0;i<5;i++)
{convert();}
out=0;
Delay500ms();
}
void shunnlv()
{
unsigned char i;
biue=200;
green=200;
convert();
out=0;
Delay500ms();
for(i=0;i<2;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<3;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<4;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<5;i++)
{convert();}
out=0;
Delay500ms();
red=0;
green=0;
biue=0;
for(i=0;i<5;i++)
{convert();}
out=0;
Delay500ms();
}
void shunnhl()
{
unsigned char i;
red=200;
green=200;
convert();
out=0;
Delay500ms();
for(i=0;i<2;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<3;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<4;i++)
{convert();}
out=0;
Delay500ms();
for(i=0;i<5;i++)
{convert();}
out=0;
Delay500ms();
red=0;
green=0;
biue=0;
for(i=0;i<5;i++)
{convert();}
out=0;
Delay500ms();
}
void main()
{
red=0;
green=0;
biue=0;
while(1)
{
red=0;
rgb();
fasong();
out=0;
Delay500ms();
reddd();
out=0;
Delay500ms();
fasongsirun();
out=0;
Delay500ms();
fasong3();
out=0;
Delay500ms();
faone();
out=0;
Delay500ms();
oeoo();
out=0;
Delay500ms();
fasong();
out=0;
Delay500ms();
lanlan();
baibai();
shunn();
shunng();
shunnl;
shunnlv();
shunnhl();
}
} |
|