基础太差了! 因为,GM和RT 永远不会 变成 1,所以,亮灯条件永远无法达成, 因此, 你的灯永远也不会亮! |
招摇的狗子 发表于 2022-12-11 21:45 无所谓严谨不严谨,要想有相应的动作,需要满足的要求就都得满足 |
hhdsdy 发表于 2022-12-11 20:42 如果就一个发光二极管灯常亮不灭 |
人中狼 发表于 2022-12-11 16:02 这样说我逻辑不严谨 要修改语句吗? |
lkc8210 发表于 2022-12-11 20:54 修改之后并无变化 |
定时中断内的m是局部变量 每次离开函数后都会清零 请改为static uc m=0; |
招摇的狗子 发表于 2022-12-11 20:02 就一个发光二极管,不需要继电器 |
还是说控制灯亮仅仅三极管不行吗 一定要加继电器? |
xuyaqi 发表于 2022-12-11 17:17 置1后通电就亮 不受控制 |
R5限流电阻太大了吧 1K就够用了 |
51单片机检测端口电平前,端口要先置1,你程序没有做到。 |
sec大于还是小于5,只是逻辑判断的其中一个条件而已,并不是唯一的 |
ytchfp163 发表于 2022-12-11 03:43 中断程序自己就会运行的哈 |
人中狼 发表于 2022-12-11 08:32 如果这里逻辑错误的话那我的等应该是常亮不灭,但程序运行后灯不亮 |
ytchfp163 发表于 2022-12-11 03:43 中断程序不需要主程序调用的,满足条件自己进入 |
定时器中断的判断逻辑有问题,sec永远不会大于5 |
主程序main()空运行了一下,什么都没有执行啊,没有调用T0_time() interrupt 1。将主程序改为下面的试试: void main() { init(); while(1) { T0_time() interrupt 1; } } |
void main() { init(); while(1); } 主程序什么都没有执行啊,只是空运行了一下,没有调用T0_time() interrupt 1函数。 改为: void main() { init(); while(1) T0_time() interrupt 1; } 试试。 |