单片机定时器T0中断服务程序不能执行是怎么回事

2025-06-27 07:01:49
推荐回答(1个)
回答1:

你的程序,我运行了下,本身就不能进入中断,原因是:
IE设置时没有使能T0中断。
------------------------------------------------------------
建议在设置中断的时候,使用类似下面的方法,不会记错:
SETB
ET0
;使能T0中断(IE寄存器中的位)
SETB
EA
;使能全局中断(IE寄存器中的位)
------------------------------------------------------------
还有,你的定时器初始化部分,建议做成子程序,就像这样子:
Timer0_Init:
MOV
TMOD,#11H
MOV
IP,#02H
SETB
ET0
;设置中断,使用这种方法比较好,不会记错
SETB
EA
SETB
TR0
;启动定时器
ret
main:
call
Timer0_Init
;初始化T0
MainLoop:
call
DoSomething
;主循环
jmp
MainLoop
Good
luck!