心芯理工男 2024-08-19 19:29 采纳率: 83.3%
浏览 2
已结题

流水灯控制,有没有人能解答一下为什么不能进入for循环进行时间延迟​​

流水灯控制,有没有人能解答一下为什么不能进入for循环进行时间延迟​​

img

  • 写回答

1条回答 默认 最新

  • 一直免费一直爽 2024-08-19 19:30
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    这个问题可能是因为for循环的条件设置不正确。在图1和图2的代码中,for循环的条件是a>50000,但实际上在进入for循环之前,a的值已经被设置为50000,所以条件不满足,无法进入for循环。

    为了解决这个问题,你可以尝试将for循环的条件改为a>0,并在每次循环时递减a的值。以下是修改后的代码:

    #include <stc89c5xrc.h>
    
    unsigned int a;
    void main()
    {
        while(1)
        {
            P1=0xaa;
            a=50000;
            while(a--);
            P1=0x55;
            a=50000;
            while(a--);
            //P1=0xff;
            //a=50000;
            //while(a--);
            for(a=50000; a>0; a--)
                P1=0xff;
        }
    }
    

    这样,当a的值大于0时,for循环将会执行,并在每次循环时递减a的值。

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

报告相同问题?

问题事件

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