P2=1111 1110表示第一个(最低位)LED亮
要实现流水灯效果,只需要把0的位置移动即可。这里我用到循环左移_crol_()和循环右移_cror_()俩函数,定义在intrins.h头文件里面。
#include"reg52.h"
#include<intrins.h>
typedef unsigned int u16;
void delay(u16 i);
void main()
{
int a;
P2=0xfe;
delay(100000000);
while(1)
{ for(a=0;a<7;a++)
{
P2=_crol_(P2,1);
delay(100000000);
}
for(a=0;a<7;a++)
{
P2=_cror_(P2,1);
delay(100000000);
}
}
}
void delay(u16 i)
{
while(i--);
}