其实可以伴随着maksim的kolibre看- -我测出来偏差不大。。至于要设计的多么符合节奏。。原谅我吧。。。。这种事真的想偷懒
没准以后可以对她求婚用- -那样老子绝对就有动力了!!只是如今她还对我没啥感觉,也就只能这样了
#include <reg52.h>
unsigned char code table[]={0x7f,0x5f,0x57,0x55,
0x00,0xff,0xbf,0xaf,
0xab,0xaa,0x00,0xff
};
void delay(int n)
{
int i;
for(i=0;i<n;i++);
}
int main()
{
while(1)
{
int i,circle=250,j=0,k;
P1=0xff;//1s缓慢变亮
delay(6700);
for(i = 0;i < circle;i++)
{
P1 = 0x00;
delay(i);
P1 = 0xff;
delay(circle-i);
}
while(j<3)//单灯循环往返3次
{
P1 = k = 0x7f;//0111 1111
delay(5000);
for(i = 0;i<8;i++)
{
k >>= 1;
k |= 0x80;
P1 = k;
delay(5000);
}
P1= k = 0xfe;//1111 1110
delay(5000);
for(i = 0;i<8;i++)
{
k <<= 1;
k |= 0x01;
P1=k;
delay(5000);
}
j++;
}
j=0;
while(j<3)//双灯循环往返3次
{
P1 = k = 0x3f;//0011 1111
delay(5000);
for(i = 0;i<8;i++)
{
k >>= 1;
k |= 0x80;
P1 = k;
delay(5000);
}
P1= k = 0xfc;//1111 1100
delay(4000);
for(i = 0;i<8;i++)
{
k <<= 1;
k |= 0x01;
P1=k;
delay(5000);
}
j++;
}
j=0;
while(j<3)//三灯往返三次
{
P1 = k = 0x1f;//0001 1111
delay(4000);
for(i = 0;i<8;i++)
{
k >>= 1;
k |= 0x80;
P1 = k;
delay(5000);
}
P1= k = 0xf8;//1111 1000
delay(4000);
for(i = 0;i<8;i++)
{
k <<= 1;
k |= 0x01;
P1=k;
delay(5000);
}
j++;
}
P1=0x00;
for(i=0;i<circle;i++)
{
P1=0xff;//1111 1111
delay(i);
P1=0x00;
delay(circle-i);
}
j=0;
while(j<3)
{
for(i = 0;i < 12;i++)
{
P1 = table[i];
delay(30000);
}
j++;
}
}
}