|
全部是自己一句一句寫出來的,不喜勿噴!!
/******************第一個參數為次數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;
}
}
|
評分
-
查看全部評分
|