m0_64360118 2022-10-26 00:53 采纳率: 40%
浏览 27
已结题

一键控流水灯咋实现?

img


代码#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();
}

}这咋回事啊,我这咋有问题呀,这个流水灯怎么实现啊,邱邱大老帮解答

  • 写回答

1条回答 默认 最新

  • 智者知已应修善业 2022-10-26 08:05
    关注

    对照

    img

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月26日
  • 已采纳回答 10月26日
  • 创建了问题 10月26日