用汇编写同时使用T0、T1中断计数程序

同时使用T0、T1两个计数器计数,当计数器溢出后跳转到相应中断程序,总是不能正常中断;当只是用其中一个时,中断正常
相关代码如下

ORG 0000H
LJMP MAIN
ORG 001BH
AJMP SUBT_1
ORG 000BH
AJMP SUBT_0

MAIN:
SETB P0.0
MOV TMOD,#55H //定时器T0、T1均工作在方式1计数器状态
SETB EA //打开总中断
WAIT: AJMP WAIT //等待中断信号

D1: //T1初始化
MOV TH1,#0FFH
MOV TL1,#0FBH //按键5次T1溢出
SETB ET1 //允许T1中断
SETB TR1 //启动T1

D0: //T0初始化
MOV TH0,#0FFH
MOV TL0,#0FFH //按键1次T0溢出
SETB ET0 //允许T0中断
SETB TR0 //启动T0

SUBT_1: //T1中断程序
CLR P0.0 //P0.0端口清零,LED灯亮
LCALL D1 //再次初始化T1
RETI //跳出中断

SUBT_0: //T1中断程序
SETB P0.0 //P0.0端口置1,LED灯灭
LCALL D0 //再次初始化T0
RETI //跳出中断
END

仿真电路如下

img

编译器无报错
尝试将其中一个计数器相关代码注释后,测试另一个计数器及其中断程序,测试结果正常

ORG 001BH
AJMP SUBT_1
ORG 000BH
AJMP SUBT_0

你为什么不按顺序写?
ORG 0100H;需要设定下MAIN的位置
MAIN:
SETB P0.0
MOV TMOD,#55H //定时器T0、T1均工作在方式1计数器状态
SETB EA //打开总中断