|
全部是自己一句一句写出来的,不喜勿喷!!
/******************第一个参数为次数n,第二个为时间t(ms)************
qbsszgl 全部顺时逐个亮; qbsszgm 全部顺时逐个灭;
lbtbls(n,t)两边同步流水; ygnsls 一个逆时流水;
ygssls 一个顺时流水; tbnsls 同步逆时流水
tbssls 同步顺时流水;
tbsszgl 同步顺时逐个亮;
tbnszgl 同步逆时逐个亮;
tbsszgm 同步顺时逐个灭;
tbnszgm 同步逆时逐个灭;
yslbtbzgl 由上两边同步逐个亮; yslbtbzgm 由上两边同步逐个灭;
lbtbdj 两边同步叠加;
bgssls 八个顺时流水; bgnsls 八个逆时流水;
llbgssls 两路八个顺时流水;
zjxlbwf 中间向两边往返;
zxytbzg 左向右同步逐个;
zsyxzgl 左上右下逐个亮;
zxyszgl 左下右上逐个亮;
xiaolian 笑脸;
**********************************************************************/
下面这个叠加效果琢磨了好久;
void lbtbdj(uchar n,uint t)两边同步叠加;
{
uchar j,a,i,z=0,z1=0,k=8;
for(j=0;j<n;j++)
{
while(k!=0)
{
i=0;
for(a=0;a<8;a++)
{
led1=led4=ni[a];
delay((t-j*20));
}
led1=led4=0xff;
delay(t);
do
{
led2=~(0x01<<i);
led3=~(0x80>>i);
switch(k)
{
case 8:z=0x00;z1=0x00;break;
case 7:z=0x01;z1=0x80;break;
case 6:z=0x03;z1=0xc0;break;
case 5:z=0x07;z1=0xe0;break;
case 4:z=0x0f;z1=0xf0;break;
case 3:z=0x1f;z1=0xf8;break;
case 2:z=0x3f;z1=0xfc;break;
case 1:z=0x7f;z1=0xfe;break;
case 0:z=0xff;z1=0xff;break;
}
led2=~((0x01<<i)|z1);
led3=~((0x80>>i)|z);
i++;
delay(t);
}
while(i<k);
k--;
}
i=0;z=0;z1=0;k=8;
while(k!=0)
{
i=0;
do
{
led1=led4=~(0x80>>i++);
switch(k)
{
case 8:z=0x00;break;
case 7:z=0x01;break;
case 6:z=0x03;break;
case 5:z=0x07;break;
case 4:z=0x0f;break;
case 3:z=0x1f;break;
case 2:z=0x3f;break;
case 1:z=0x7f;break;
case 0:z=0xff;break;
}
led1=led4=~(~led1+z);
delay(t);
}
while(i<k);
k--;
}
k=8;
led1=led2=led3=led4=0xff;
}
}
|
评分
-
查看全部评分
|