LED灯控制程序问题,有人能帮忙解决一下么?

2019-07-15 14:40发布

控制8个流水灯闪烁。程序1无法实现,程序2可实现。
程序1:实验结果是,8个灯全亮后,仅第一个灯开始闪烁。
#include <reg52.h>
#define uint unsigned int
void delay (uint);
void main ()
{   
         while (1)
     {
          P1=0;
          delay (300);
          P1=1;   
           delay (300);
}
}
void delay (uint c)
{
     uint a,b;
     for (a=100;a>0;a--)
     for (b=c;b>0;b--);
}
程序2:可以实现
#include <reg52.h>
#define uint unsigned int
void delay (uint);
sbit D0=P1^0;
sbit D1=P1^1;
sbit D2=P1^2;
sbit D3=P1^3;
sbit D4=P1^4;
sbit D5=P1^5;
sbit D6=P1^6;
sbit D7=P1^7;
void main ()
{
     while (1)
    {
         P1=0;
        delay (300);
        D0=D1=D2=D3=D4=D5=D6=D7=1;
        delay (300);
}
}
void delay (uint c)
{
      uint a,b;
      for (a=100;a>0;a--)
      for (b=c;b>0;b--);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。