51单片机常见的五种流水灯编写方式(1)

51单片机常见的五种流水灯编写方式(1)
51单片机常见的五种流水灯编写方式(1)

51单片机常见的五种流水灯编写方式通过改变赋值实现流水灯

void main()

{

w hile(1)

{

P2=0xfe;

delay1ms(500);

P2=0xfd;

delay1ms(500);

P2=0xfb;

delay1ms(500);

P2=0xf7;

delay1ms(500);

P2=0xef;

delay1ms(500);

P2=0xdf;

delay1ms(500);

P2=0xbf;

delay1ms(500);

P2=0x7f;

delay1ms(500);

}

}

通过公式运算实现流水灯

void main()

{

while(1)

{

uint a,b=1;

P2=0xfe;

delayms(500);

for(a=0;a<7;a++)

{

P2-=b; // P2=P2-b

delayms(500);

b=b*2; //都化为同一类型进制运算

}

}

}

通过操作符<<与“|”实现流水灯

(通过移位实现流水灯)

void main()

{

uchar a,i;

while(1)

{

a=0xfe; //点亮第一位LED灯

f or(i=0;i<8;i++)

{

P2=a;

a=a<<1; //左移一位

a=a|0x01; //左移一位后与0x01相或,保证左移后最低位为1 delay_ms(500);

}

}

}

通过库函数_crol_(字符左移)实现流水灯

void main()

{

uint a;

a=0xfe;

while(1)

{

P2=a;a=_crol_(a,1);

delay_ms(500);

}

}

采用数组实现流水灯

uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void main(void)

{

uchar i;

while (1)

{

for(i=0;i<8;i++) //循环点亮8只LED灯

{

P2=table[i];

delay_ms(500); //延时500毫秒

}

}

}

相关文档
最新文档