如下程序是遥控解码的程序,我用计时器0做3次定时,装入初值,每用一次是不是要先关计时器0,设置后再开了它吗?这样运用计时器0可以吗?
IR_IN:
MOV R0,#IRCOM
I1: JNB IRIN,I2 ;等待 IR 信号出现,IRIN=0则跳转到I2
JMP I1
I2: MOV R4,#20
I20: DJNZ R4,I20 ;寄存器-1不为0则跳转
JNB IRIN,I1 ;确认IR信号出现,IRIN等于1则跳到I1
JMP $+2
I21: JB IRIN,I3 ;等 IR 变为高电平
CLR TR0
MOV TH0, #0DEH ;设置9.2MS计数初值
MOV TL0, #0E1H
SETB TR0
I3: MOV R3,#0 ;8位数清为0
LL: JNB IRIN,I4 ;等 IR 变为低电平
JMP LL
CLR TR0
MOV TH0, #0EFH ;设置4.5MS计数初值
MOV TL0, #0CDH
SETB TR0
I4: JB IRIN,I5 ;等 IR 变为高电平
CLR TR0
MOV TH0, #0FCH ;0.84MS
MOV TL0, #0FAH
SETB TR0
JMP I4
I5: MOV C,IRIN
MOV R2,#0 ;0.14ms 计数