m0_59824362 2021-06-30 08:45 采纳率: 0%
浏览 56

c51实现LED灯完成3次逆向流水灯

每次灯流水的切换时间均为5S,直接调用delay5s()函数,无需另行编写,这个怎么做

  • 写回答

1条回答 默认 最新

  • 泡沫o0 C/C++ 领域优质创作者 2023-06-10 19:42
    关注

    在这个问题中,你需要实现一个LED灯完成三次逆向流水灯的效果。我们需要明确逆向流水灯的效果:假设我们有8个LED灯,那么逆向流水灯的效果就是灯从右向左依次点亮。

    你可以使用下面的代码实现此效果,我们在这里使用P1口来控制LED。假设LED灯接在P1口,我们首先将右边第一颗灯(P1_0)点亮,然后逐步向左移动。以下是C语言实现的代码:

    #include <REG51.h>
    
    void shiftLED() {
        unsigned char i;
        P1 = 0x01; // 将右边第一颗灯点亮
    
        for (i = 0; i < 8; i++) {
            delay5s(); // 每次切换前延迟5秒
            P1 = P1 << 1; // 将灯向左移动一位
        }
    }
    
    void main() {
        unsigned char i;
    
        for (i = 0; i < 3; i++) { // 执行三次逆向流水灯
            shiftLED();
        }
    
        while (1); // 程序结束后,进入无限循环
    }
    

    在这个代码中,我们首先定义了一个shiftLED()函数来实现一次逆向流水灯效果。然后在main()函数中调用这个函数三次,以实现三次逆向流水灯。最后,我们让程序进入一个无限循环,以防止程序运行结束。

    这只是一个基础的实现,你可能需要根据具体的硬件配置和需求来修改这段代码。例如,你可能需要调整控制LED灯的IO口,或者调整LED灯流动的方向等。

    评论

    报告相同问题?

    悬赏问题

    • ¥30 如何隐藏Tornado版本号
    • ¥15 PCL注册的选点等函数如何取消注册
    • ¥15 问一下各位,为什么我用蓝牙直接发送模拟输入的数据,接收端显示乱码呢,米思齐软件上usb串口显示正常的字符串呢?
    • ¥15 Python爬虫程序
    • ¥15 crypto 这种的应该怎么找flag?
    • ¥15 设计一个时序电路,使其状态按2421(B)循环,并能自启动
    • ¥15 代码已写好,求帮我指出错误,有偿!
    • ¥15 matlab+波形匹配算法
    • ¥15 转录组分析做聚类树图时癌旁组被分到了癌组
    • ¥15 大一Python字典