#include<reg52.h>
#include<intrins.h>
void delay(unsigned int i)
{
while(i--);
}
void main()
{
P0=0xfe;
P1=0xfe;
P2=0xfe;
delay(10000);
while(1)
{
int k;
for(k=0;k<27;k++)
{
if (k>0&&k<9)
{
P0=_crol_(P0,1);
delay(15000);
}
if (k>9&&k<18)
{
P1=_crol_(P1,1);
delay(15000);
}
if (k>18&&k<27)
{
P2=_crol_(P2,1);
delay(15000);
}
}
}
}
怎么修改啊 这个 不是从上到下一次了亮的 分成了3个8个的流水灯
void main()中修改试看
P1=P2=P3=0;
while(1)
{
++k;
if(k>0&&k<9){if(k==1){P3=0;P1=128;}P1=_crol_(P1,1);delay(47000);}
else if(k>8&&k<17){if(k==9){P1=0;P2=128;}P2=_crol_(P2,1);delay(47000);}
else if(k>16&&k<25){if(k==17){P2=0;P3=128;}P3=_crol_(P3,1); delay(47000);}
}
用个长整数来保存状态就不用写那么多判断了
#include<reg52.h>
void delay(unsigned int i)
{
while(i--);
}
void main()
{
P1=P2=P3=0;
long val = 1;
while(1)
{
P1 = val & 0xff;
P2 = (val >> 8) & 0xff
P3 = (val >> 16)& 0xff;
val <<= 1;
if(val > 0x00800000) val = 1;
}
}