代码#include <REG51.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uint i;j;a;b;k;
sbit P00=P0^0;
sbit P01=P0^1;
sbit P02=P0^2;
sbit P03=P0^3;//定义
void Delay(uint xms) //@12.000MHz
{
unsigned char i, j;
i = 2;
j = 239;
while(xms)
{
do
{
while (--j);
} while (--i);
xms--;
}}
void xs()
{
while(1)
{
if(a==1)
{
P2=0x80; //重新赋值
for(i=0;i<4;i++)
{
P2=cror(P2,1);
Delay(500);
if(P2==0x01)
a=1; //从下到上点亮
}
}
}
}
void sx()
{
{ while(1)
{
if(b==1)
{
P2=0x01; //重新赋值
for(i=0;i<4;i++)
{
P2=crol(P2,1);
Delay(500);
if(P2==0x80)
b=1; //从上到下点亮
}
}
}
}
}
void main()
{
P2=0x00;
if(P00==0) //开启k1
sx();k=1;
if(P01==0) //关闭k2
{
Delay(1);
if(P01==0)
k=2;
P2=0x00;
}
if(P02==0) //从上到下k3
{
Delay(1);
if(P02==0&&k==1)
sx();
}
if(P03==0) //从下到上k4
{
Delay(1);
if(P03==0&&k==1)
xs();
}
}这咋回事啊,我这咋有问题呀,这个流水灯怎么实现啊,邱邱大老帮解答