当前位置: 代码迷 >> 单片机 >> 在89C51中用计时0做三次定时再装入初值可以吗?解决方案
  详细解决方案

在89C51中用计时0做三次定时再装入初值可以吗?解决方案

热度:223   发布时间:2016-04-28 16:21:30.0
在89C51中用计时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   计数
  相关解决方案