用Proteus仿真这个流水灯,但是运行就流动了一次,然后就定在P2.0不动了,是哪里的循环没写好吗?
#include"reg51.h"
sbit LED0=P2^0;
void delay_ms (unsigned int x)
{
unsigned char i;
while (x--)
{
for (i=0;i<120;i++);
}
}
void led ()
{
int i=0;
for(i=0;i<8;i++)
{
P2=~(0x01<delay_ms (50);
}
}
void mian ()
{
while (1)
{
led();
}
}
不然你试一下这种移位的方法
#include"reg51.h"
sbit LED0=P2^0;
void delay_ms (unsigned int x)
{
unsigned char i;
while (x--)
{
for (i=0;i<120;i++);
}
}
void led ()
{
unsigned int i,temp;
temp = 0xfe;
for(i=0;i<8;i++)
{
P2=temp;
delay_ms(50);
temp =_crol_(temp,1);
}
}
void mian ()
{
while (1)
{
led();
}
}