找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 183|回复: 5
打印 上一主题 下一主题
收起左侧

帮忙看下用九齐IC使LED闪烁两次后关闭为何失效

[复制链接]
跳转到指定楼层
楼主
ID:1125252 发表于 2024-10-6 09:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用以下代码,LED一直闪烁,没有闪烁两次停止
void main(void)
{
    while(1)
    {
        if(on_power==0)  /标志位,初始值位0
            {
                LED_POWER();
                on_power=1;
            }    }
}
void LED_POWER(void)
{
    LED1=0;LED2=0;  //点亮LED
    Delay(1000);
    LED1=1;LED2=1;   //关闭LED
    Delay(1000);
    LED1=0;LED2=0;
    Delay(1000);
    LED1=1;LED2=1;
    Delay(1000);
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:291549 发表于 2024-10-6 11:04 | 只看该作者
程序一直在循环执行,所以一直闪烁。做个for语句,LED一亮一灭,为一个循环,两个循环停止运行即可。
回复

使用道具 举报

板凳
ID:161164 发表于 2024-10-6 11:54 | 只看该作者
代码逻辑正确,请检查on_power有没有其他地方清零了
回复

使用道具 举报

地板
ID:1125252 发表于 2024-10-6 13:49 | 只看该作者
jinyudz 发表于 2024-10-6 11:04
程序一直在循环执行,所以一直闪烁。做个for语句,LED一亮一灭,为一个循环,两个循环停止运行即可。

这个我试过,没起效果哦
for(i=0;i<2;i++)
{
    LED1=0;LED2=0;  //点亮LED
    Delay(1000);
    LED1=1;LED2=1;   //关闭LED
    Delay(1000);
}
回复

使用道具 举报

5#
ID:1125252 发表于 2024-10-6 13:54 | 只看该作者
lkc8210 发表于 2024-10-6 11:54
代码逻辑正确,请检查on_power有没有其他地方清零了

谢谢!这个没有其他地方清零的,后面我用定时器试了一下,是可以闪烁两次关闭的
回复

使用道具 举报

6#
ID:69115 发表于 2024-10-7 18:12 | 只看该作者
闪灯程序,不能放在主循环里面,应该放在主循环之前,先闪两次灯,然后while(1){}.另外注意:要关闭了看门狗,如果开了看门狗,就要在延时程序中不停的清看门狗,在最后的主循环(或是叫死循环中不停的清看门狗)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表