请问大家我可以在遥控解码程式中用计时器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 计 L1: CALL DEL JB IRIN, N1 ;等 IR 变为高电平,若IRIN等于1则跳转 ;IR=0,检查R2中的计数值 MOV A,#8 CLR C SUBB A,R2 ;判断高低位 A=8-0-1=7H 大于1有进位,小于1无进位 P126 看I5: MOV R2,#0 ;IF C=0 BIT=0 MOV A,@R0 ;A=20H,R0的内容不变 P114 IR_IN: MOV R0,#IRCOM RRC A ;00100000 |