微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > LED灯控制程序问题,有人能帮忙解决一下么?

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

时间:10-02 整理:3721RD 点击:
控制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--);
}

P1 = 1 改为 P1 = 0xFF试一下

成功了,谢谢!

你要分清楚是对IO的操作还有IO位的操作!

P1=~P1;试一下

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top