下面是我的源程序,纳闷的是怎么也调不过 请高手看一下,本人感激不尽啊
                 DQ    BIT P1.7  ;数据总线                FLAG1  BIT  F0                TEMPER_L  EQU  29H  ;温度低位                TEMPER_H  EQU  28H   ;温度高位                A_RIT EQU  35H                B_BIT EQU  36H
                 ORG  0000H                LJMP MAIN                ORG  0100H
 
            MAIN:LCALL INT18B20                  LCALL RECON                LCALL GETEM                LJMP  CHANGE?
  //*****1820复位时序********//       INT18B20:SETB  DQ ;拉高                NOP                CLR   DQ  ;拉低                MOV   R0,#0FBH           TSR1:DJNZ  R0,TSR1  ;延时500us                SETB  DQ                MOV   R0,#55H           TSR2:JNB   DQ,TSR3  ;p1.7低则转移                DJNZ  R0,TSR2           TSR3:SETB  FLAG1    ;存在则把标志位置位                CLR   P0.5                AJMP  TSR5           TSR4:CLR   FLAG1   ;不存在则清零                LJMP  TSR7           TSR5:MOV   R0,#06BH             TSR6:DJNZ  R0,TSR6  ;延时           TSR7:SETB  DQ       ;最后拉高                RET
           RECON:JB   FLAG1,RECON                RET          RECON1:MOV  A,#0CCH                LCALL  WRITE                MOV   A,#4EH                LCALL  WRITE                MOV   A,#7DH                LCALL WRITE                MOV   A,#00H                LCALL WRITE                MOV   A,#1FH                LCALL WRITE                RET
          GETEM: SETB  DQ                  LCALL INT18B20                JB    FLAG1,TSS2                RET          TSS2: MOV  A,#0CCH                LCALL WRITE                MOV  A,#44H                LCALL WRITE                            LCALL INT18B20                MOV  A,#0CCH                LCALL  WRITE                MOV  A,#0BEH                LCALL WRITE                LCALL READ                RET
           WRITE:MOV  R2,#8                CLR  C            WR1:CLR  DQ                MOV  R3,#7                DJNZ  R3,$                RRC   A                MOV   DQ,C                MOV   R3,#22                DJNZ   R3,$                SETB   DQ                NOP                DJNZ  R2,WR1                SETB  DQ                RET
 
            READ:MOV  R4,#2                MOV  R1,#29H          RE00: MOV  R2,#8           RE01:CLR   C                               NOP                NOP                SETB  DQ                NOP                NOP                             CLR  DQ                MOV   R3,#3                DJNZ  R3,$                SETB DQ                NOP                NOP                NOP                NOP                 MOV   C,DQ                MOV   R3,#1EH                DJNZ  R3,$                RRC   A                DJNZ  R2,RE01                MOV   @R1,A                DEC   R1                DJNZ  R4,RE00                RET
 
          CHANGE:MOV   A,29H                MOV   C,28H.0                RRC   A                MOV   C,28H.1                RRC   A                MOV   C,28H.2                RRC   A                MOV   C,28H.3                RRC   A                MOV   29H,A                CLR  P0.5                LCALL DISPLAY                CLR  P0.5                LJMP  MAIN
    //****数码管显示子程序*******//        DISPLAY:MOV   A,29H                MOV   B,#10                DIV   AB                MOV   B_BIT,A  ;存十位                MOV   A_RIT,B  ;存个位                MOV   DPTR,#TAB                MOV   R0,#4             DP11:MOV   R1,#250   ;显示1000次          DPLOP:MOV   A,A_RIT                MOVC  A,@A+DPTR;查表                MOV   P0,A     ;开个位断码                MOV   A,#0FBH                MOV   P1,A     ;开位码                LCALL  DIMS    ;延时                MOV   A,B_BIT                MOVC   A,@A+DPTR                MOV    P0,A                MOV    A,#07FH                MOV    P0,A                DJNZ   R1,DPLOP                DJNZ   R0,DP11                RET
 
            DIMS: MOV  R6,#4              DL:MOV  R7,#123             DL1:DJNZ  R7,DL1             DJNZ  R6,DL     ;延时1ms子程序                 RET                                        TAB : DB  0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  |