ledtemperds18b20.txt

来自「LEDtemperDS18B20是用来读写温度IC的」· 文本 代码 · 共 189 行

TXT
189
字号


      DQ EQU P3.7
      TEMP EQU 27H
      TEMP1 EQU 28H
      TEMP2 EQU 29H
      HB EQU 30H
      LB EQU 31H
      MB EQU 32H
      ORG 0000H
      AJMP MAIN
      ORG 002CH
MAIN: 
      MOV SP,#60H
      ACALL GET_TEMP
      ACALL DISPLAY
      AJMP MAIN
GET_TEMP:
;      CLR PSW.4
;      SETB PSW.3
      CLR EA
      ACALL INT
      MOV A,#0CCH
      ACALL WRITE
      MOV A,#44H
      ACALL WRITE
   
      ACALL INT
      MOV A,#0CCH
      ACALL WRITE
      MOV A,#0BEH
      ACALL WRITE 
      ACALL READ
      MOV TEMP1,TEMP
      ACALL READ
      MOV TEMP2,TEMP
      SETB EA
      RET
INT:
      CLR EA
L0:   
      CLR DQ
      MOV R2,#200
L1:
      CLR DQ
      DJNZ R2,L1
      SETB DQ
      MOV R2,#30
L4:
      DJNZ R2,L4
      CLR C
      ORL C,DQ
      JC L0
      MOV R6,#80
L5:
      ORL C,DQ
      JC L3
      DJNZ R6,L5
      SJMP L0
L3:
      MOV R2,#250
L2:   
      DJNZ R2,L2
      RET


WRITE:
      CLR EA
      MOV R3,#8
WR1:
      SETB DQ
      MOV R4,#8
      RRC A
      CLR DQ
WR2:
      DJNZ R4,WR2
      MOV DQ,C
      MOV R4,#40
WR3:
      DJNZ R4,WR3
      NOP
      DJNZ R3,WR1
      SETB DQ
      RET


READ:
      CLR EA
      MOV R6,#8
RE1:
      SETB DQ
      NOP
      NOP
      CLR DQ
      MOV R4,#5
      NOP
      SETB DQ
RE2:
      DJNZ R4,RE2
      MOV C,DQ
      RRC A
      MOV R5,#40
RE3:
      DJNZ R5,RE3
      DJNZ R6,RE1
      MOV TEMP,A
      SETB DQ
      RET

TR_BCD:
      MOV A,TEMP1
      ANL A,#0F0H
      SWAP A
      MOV 33H,A
      MOV A,TEMP2
      ANL A,#07H
      SWAP A
      NOP
      ORL A,33H
      NOP
      NOP
      MOV B,#0AH
      DIV AB
      MOV HB,A
      MOV LB,B
      MOV A,TEMP1
      ANL A,#0FH
      MOV MB,A
      RET

DISPLAY:
      ACALL TR_BCD
;      MOV P0,#00H
      MOV R0,#4
DP11: 
      MOV R1,#250
DPLOP:
      MOV DPTR,#TAB1
      MOV A,HB
      MOVC A,@A+DPTR
      MOV P2,A
      SETB P0.7
      ACALL DL1MS
      CLR P0.7
      MOV A,LB
      MOV DPTR,#TAB2
      MOVC A,@A+DPTR
      MOV P2,A
      SETB P0.6
      ACALL DL1MS
      CLR P0.6
      MOV DPTR,#TAB5
      MOV A,MB
      MOVC A,@A+DPTR
      MOV P2,A
      SETB P0.5
      ACALL DL1MS
      CLR P0.5
      MOV P2,#63H
      SETB P0.4
      ACALL DL1MS
      CLR P0.4
      DJNZ R1,DPLOP
      DJNZ R0,DP11
      RET

DL1MS:            ;1MS延时
      MOV R7,#80 
      DJNZ R7,$
      RET

;7段数码管0~9数字的共阳显示代码
TAB1:   DB  03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H  ;0~9
TAB2:   DB  02H,9EH,24H,0CH,98H,48H,40H,1EH,00H,08H  ;0.~9.
TAB3:   DB  03H,03H,03H,41H,9FH,0DH,9FH,09H  ;00 06 13 19
        DB  25H,49H,0DH,9FH,0DH,01H,99H,99H  ;25 31 38 44
        DB  49H,03H,49H,41H,41H,25H,41H,09H  ;50 56 62 69
        DB  1FH,49H,01H,9FH,01H,01H,09H,99H  ;75 81 88 94
TAB11:  DB  28H,0EBH,32H,62H,0E1H,64H,24H,0EAH,20H,60H  ;0~9
TAB22:  DB  08H,0CBH,12H,42H,0C1H,44H,04H,0CAH,00H,40H  ;0.~9.
TAB33:  DB  28H,28H,28H,24H,0EBH,62H,0EBH,60H  ;00 06 13 19
        DB  32H,64H,62H,0EBH,62H,20H,0E1H,0E1H ;25 31 38 44
        DB  64H,28H,64H,24H,24H,32H,24H,60H    ;50 56 62 69
        DB  0EAH,64H,20H,0EBH,20H,20H,60H,0E1H ;75 81 88 94
TAB5:   DB  03H,9FH,9FH,25H,0DH,0DH,99H,99H,49H,41H,41H,1FH,01H,01H,09H,09H

      
      END

⌨️ 快捷键说明

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