找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

为什么D2灯不亮呢?附单片机程序电路图

查看数: 2578 | 评论数: 18 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-12-11 02:51

正文摘要:

单片机源程序如下: #include<reg51.h> #include<intrins.h> #include<absacc.h>                #define uc unsigned char #define ...

回复

ID:624769 发表于 2022-12-11 23:18
基础太差了!
因为,GM和RT 永远不会 变成 1,所以,亮灯条件永远无法达成, 因此, 你的灯永远也不会亮!
ID:384109 发表于 2022-12-11 22:11
招摇的狗子 发表于 2022-12-11 21:45
这样说我逻辑不严谨  要修改语句吗?

无所谓严谨不严谨,要想有相应的动作,需要满足的要求就都得满足
ID:1055511 发表于 2022-12-11 21:46
hhdsdy 发表于 2022-12-11 20:42
就一个发光二极管,不需要继电器

如果就一个发光二极管灯常亮不灭
ID:1055511 发表于 2022-12-11 21:45
人中狼 发表于 2022-12-11 16:02
sec大于还是小于5,只是逻辑判断的其中一个条件而已,并不是唯一的

这样说我逻辑不严谨  要修改语句吗?
ID:1055511 发表于 2022-12-11 21:43
lkc8210 发表于 2022-12-11 20:54
定时中断内的m是局部变量
每次离开函数后都会清零
请改为static uc m=0;

修改之后并无变化

ID:161164 发表于 2022-12-11 20:54
定时中断内的m是局部变量
每次离开函数后都会清零
请改为static uc m=0;
ID:88256 发表于 2022-12-11 20:42
招摇的狗子 发表于 2022-12-11 20:02
还是说控制灯亮仅仅三极管不行吗 一定要加继电器?

就一个发光二极管,不需要继电器
ID:1055511 发表于 2022-12-11 20:02
还是说控制灯亮仅仅三极管不行吗 一定要加继电器?
ID:1055511 发表于 2022-12-11 19:57
xuyaqi 发表于 2022-12-11 17:17
51单片机检测端口电平前,端口要先置1,你程序没有做到。

置1后通电就亮 不受控制
ID:142045 发表于 2022-12-11 17:28
R5限流电阻太大了吧 1K就够用了
ID:94031 发表于 2022-12-11 17:17
51单片机检测端口电平前,端口要先置1,你程序没有做到。
ID:384109 发表于 2022-12-11 16:02
sec大于还是小于5,只是逻辑判断的其中一个条件而已,并不是唯一的
ID:1055511 发表于 2022-12-11 15:27
ytchfp163 发表于 2022-12-11 03:43
主程序main()空运行了一下,什么都没有执行啊,没有调用T0_time() interrupt 1。将主程序改为下面的试试:
...

中断程序自己就会运行的哈
ID:1055511 发表于 2022-12-11 15:26
人中狼 发表于 2022-12-11 08:32
定时器中断的判断逻辑有问题,sec永远不会大于5

如果这里逻辑错误的话那我的等应该是常亮不灭,但程序运行后灯不亮
ID:88256 发表于 2022-12-11 09:45
ytchfp163 发表于 2022-12-11 03:43
主程序main()空运行了一下,什么都没有执行啊,没有调用T0_time() interrupt 1。将主程序改为下面的试试:
...

中断程序不需要主程序调用的,满足条件自己进入
ID:384109 发表于 2022-12-11 08:32
定时器中断的判断逻辑有问题,sec永远不会大于5
ID:1056573 发表于 2022-12-11 03:43
主程序main()空运行了一下,什么都没有执行啊,没有调用T0_time() interrupt 1。将主程序改为下面的试试:
void main()
{
        init();
        while(1)
       {
            T0_time() interrupt 1;
       }  
}
ID:1056573 发表于 2022-12-11 03:38
void main()
{
        init();
        while(1);
}
主程序什么都没有执行啊,只是空运行了一下,没有调用T0_time() interrupt 1函数。
改为:
void main()
{
        init();
        while(1)
        T0_time() interrupt 1;
}
试试。

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

Powered by 单片机教程网

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