首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

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

2012-02-14 
在89C51中用计时0做三次定时再装入初值可以吗?请问大家我可以在遥控解码程式中用计时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   计数


  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   \00010000   C=0   P=124   即A=10H                                
                    MOV     @R0,A                   ;处理完一位     地址20H的内容10H,R0和A的内容都不变   P116       这句注释对吗??
                    INC     R3                         ;R3内容加1
                    CJNE     R3,#8,LL           ;需处理完8位,寄存器与立即数不相等则跳转
                    MOV     R3,#0
                    INC     R0                         ;20H+1
                    CJNE     R0,#24H,LL       ;收集到4字节了即32位,1字节8位                         JMP     IR_SHOW
  N1:             INC     R2
                    CJNE     R2,#30,L1         ;0.14ms   计数过长则时间到自动离开,寄存器与立即数不相等即跳转
                    RET

[解决办法]
定时器为了安全,只要遵守以下规则:

停止 -> 配置 -> 开启(使用)

其它的爱怎么用怎么用.

热点排行