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--);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
风_轻_云淡
1楼-- · 2019-07-15 18:19
P1 = 1 改为 P1 = 0xFF试一下 最佳答案
发烧吃下火药
2楼-- · 2019-07-15 23:32
风_轻_云淡 发表于 2016-3-22 20:44
P1 = 1 改为 P1 = 0xFF试一下

成功了,谢谢!
cxz961
3楼-- · 2019-07-15 23:59
你要分清楚是对IO的操作还有IO位的操作!
857795020
4楼-- · 2019-07-16 00:29
 精彩回答 2  元偷偷看……

一周热门 更多>