1、完整版)51单片机流水灯 程序 1。第一个发光管以间隔200ms闪烁。 2. 8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms。 3. 8个发光管来回流动,第个管亮100ms。 4。 用8个发光管演示出8位二进制数累加过程。 5. 8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程. 6。 间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。 7. 间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从
2、中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止.
1
#include
3、
}
2
#include
4、55000;b>0;b--);
}
3
#include
5、i++)
{
P1=a;
delay(100);
a=_crol_(a,1);
}
a=0x7f;
for(i=0;i<8;i++)
{
P1=a;
delay(100);
a=_cror_(a,1);
}
}
}
4
#include 6、ay(uint a)
{
uint x,y;
for(x=a;x〉0;x-—)
for(y=110;y〉0;y-—);
}
void main()
{
uchar b;
while(1)
{
b++;
P1=~b;
delay(200);
}
}
5
#include 7、n()
{
uchar a,i,j;
while(1)
{
for(j=0;j〈2;j++)
{
a=0xfe;
for(i=0;i<8;i++)
{
P1=a;
delay(200);
a=_crol_(a,1);
}
a=0x7f;
for(i=0;i<8;i++)
{
P1=a;
delay(200);
a=_cror_(a,1);
}
} 8、
P1=0xff;
for(j=0;j<10;j++)
{
delay(300);
P1=~P1;
}
}
}
void delay()
{
uint x,y;
for(x=200;x>0;x--)
for(y=110;y>0;y—-);
}
6
#include 9、
{
uint x,y;
for(x=300;x>0;x—-)
for(y=110;y〉0;y--);
}
void main()
{
uchar a,i,j;
while(1)
{
a=0xfe;
for(j=0;j〈8;j++)
{
for(i=0;i<8—j;i++)
{
P1=a;
delay(200);
a=_crol_(a,1);
}
a=_crol_(a,j);
10、
P1=0xff;
a=a<<1;
}
}
}
7
#include 11、)
{
P1=0x55;
delay(300);
P1=0xaa;
delay(300);
}
for(j=0;j<3;j++)
{
a=0xfe;
for(i=0;i〈8;i++)
{
P1=a;
delay(300);
a=_crol_(a,1);
}
}
P1=0xff;
for(j=0;j〈3;j++)
{
P1=0x7e;
delay(300);
P1=0xb 12、d;
delay(300);
P1=0xdb;
delay(300);
P1=0xe7;
delay(300);
}
P1=0xff;
for(j=0;j<3;j++)
{
P1=0xe7;
delay(300);
P1=0xdb;
delay(300);
P1=0xbd;
delay(300);
P1=0x7e;
delay(300);
}
P1=0xff;
for(j=0;j<6;j++)
{
P1=~P1;
delay(300);
}
P1=0xff;
while(1);
}






