#include<reg51.h>
#include<intrins.h>
void delay(void)
{
unsigned int i,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
void main()
{
int temp;
temp=0x01;
while(1)
{
P1=~temp;
delay();
P1=0xff;
temp=temp<<1;
if (temp==0x00)
temp=0x01;
}
}
想要用单片机左位移指令实现流水灯,程序正确,调试也显示正确,在单片机上运行了一遍也是可以实现,问题在于,当第八个LED熄灭后,要等很长时间后第一个LED才会重新亮起, |