mutliceshi.asm

来自「实现DS18B20多个的检测和显示! 用途非常广泛啊!」· 汇编 代码 · 共 122 行

ASM
122 行
字号
    ORG 0000H
    AJMP MAIN
    ORG 0020H
MAIN:MOV SP,#60H
     LCALL INT1
     MOV A,#0CCH  ;跳过ROM,告诉DS1820这是针对所有的对象的
     LCALL WRITE
     MOV A,#44H
     LCALL WRITE
     LCALL DELAY1S
     LCALL INT1
     MOV B,#2
     MOV R1,#70H
     MOV R5,#0
AGAIN:MOV R0,#8
      MOV A,#55H
      LCALL WRITE
NEXT: LCALL XILEI
      LCALL WRITE
      DJNZ R0,NEXT
      MOV A,#0BEH
      LCALL WRITE
      LCALL READ
      MOV @R1,A
      INC R1
      LCALL READ
      MOV @R1,A
      INC R1
      LCALL INT1
      DJNZ B,AGAIN
      SJMP $



INT:  CLR EA
  L0: CLR P3.4
      MOV R2,#255  ;这边可以改高点
  L1: CLR P3.4
      DJNZ R2,L1
      SETB P3.4
      MOV R2,#30
  L4: DJNZ R2,L4
      CLR C
      ORL C,P3.4
      JC L0
      MOV R6,#80
  L5: ORL C,P3.4
      JC L3
      DJNZ R6,L5
      SJMP L0
  L3: MOV R2,#240
  L2: DJNZ R2,L2
      RET


WRITE:CLR EA
      MOV R3,#8
 WR1: SETB P3.4
      MOV R4,#8
      RRC A
      CLR P3.4
 WR2: DJNZ R4,WR2
      MOV P3.4,C
      MOV R4,#20
 WR3: DJNZ R4,WR3
      DJNZ R3,WR1
      SETB P3.4
      RET


DELAY1S:MOV R4,#4
   DE0: MOV R3,#250
   DE1: MOV R2,#2
   DE2: MOV R1,#250
   DE3: DJNZ R1,DE3
        DJNZ R2,DE2
        DJNZ R3,DE1
        DJNZ R4,DE0
        RET


XILEI:MOV DPTR,#TAB
      MOV A,R5
      MOVC A,@A+DPTR
      INC R5
      RET

TAB: DB 28H,8DH,0C8H,0C1H,00H,00H,00H,14H
     DB 28H,0C2H,55H,0C1H,00H,00H,00H,1EH


READ: MOV A,R5
      PUSH A
      CLR EA
      MOV R6,#8
 RE1: CLR P3.4
      MOV R4,#4
      NOP
      SETB P3.4
 RE2: DJNZ R4,RE2
      MOV C,P3.4
      RRC A
      MOV R5,#30
 RE3: DJNZ R5,RE3
      DJNZ R6,RE1
      SETB P3.4
      POP A
      MOV R5,A
      RET
INT1:MOV R2,255
     CLR P3.4
  S1:DJNZ R2,S1
     SETB P3.4
     MOV R6,250
  S2:DJNZ R6,S2
     RET




     END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?