这个程序的思路是设置整个P2口,通过延时和左右移位函数实现左右八位顺序依次点亮流水灯。
#include <reg52.h> //调用头文件
#include <intrins.h>
unsigned char k=0x7f,p=0xff;
unsigned int j=0,i=0;n=8;
void delay(unsigned int t); //定义延时函数
void main()
{
while(1)
{
P2=0xff;
p=0xff;
n=8;
for(i=0;i<8;i++) //
{
for(j=0,k=0x7f;j<n;j++)
{
P2|=p;
P2=P2^(~k);
k=_cror_(k,1);
delay(30000);
}
n--;
p<<=1;
}
P2=0xff;
p=0xff;
n=8;
for(i=0;i<8;i++)
{
for(j=0,k=0xfe;j<n;j++)
{
P2|=p;
P2=P2^(~k);
k=_crol_(k,1);
delay(30000);
}
n--;
p>>=1;
}
}
}
void delay(unsigned int t)
{
while(t--);
}