实现目标:流水灯左移到头后,进入右移,右移到头后,进入左移
注意点:两次for()循环的范围并不同,第一次for循环结束时。led为0b1000_0000,如果第二次for()循环以从0开始,则led = ~(0x80 >> 0)
,实际上重复了一次0b1000_0000的状态,结束条件同理。
#include "reg52.h"
#define led P2
void delay(unsigned int i)
{
while(i--)
{
}
}
void main()
{
unsigned char count;
delay(300000);
while(1)
{
for(count = 0; count < 8; count++)
{
led = ~(0x01 << count);
delay(300000);
}
for(count = 1; count < 7; count++)
{
led = ~(0x80 >> count);
delay(300000);
}
}
}