⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds18b20.txt

📁 ds18b20 可用的程序
💻 TXT
字号:
;*****************************************************
; SAMPLE TEMPRATURE PROGRAM BY DS18B20
; 12.000MHZ OR 11.0592MHZ
;*****************************************************
   DQ BIT P3.0
 FLAG BIT P0.0
;ERR_FLAG BIT 40H
  DT1 EQU 30H
DATAL EQU 31H
DATAH EQU 32H
  DAT EQU 33H 
  DT2 EQU 34H
  DT3 EQU 35H
;------------------------------------
ORG 0000H
AJMP START
ORG 0100H
START:
    LCALL D800MS
    LCALL D800MS
LOOP_SAMPLE:
    LCALL INITIAL_DS18B20
    MOV R7,#0CCH    ;WRITE SKIP ROM
    LCALL WRITE_CHAR
    MOV R7,#44H     ;WRITE TEMPRATURE CONVERSION
    LCALL WRITE_CHAR
    NOP
    NOP
    LCALL D800MS    ;TIME OF DS18B20 TEMPERATURE CONVERSION,IF NO DELAY TIME 800MS,WILL READ 85 DEGREE

    ;LCALL INITIAL_DS18B20
    ;MOV R7,#0CCH
    ;LCALL WRITE_CHAR
    ;MOV R7,#48H    ;COPY
    ;LCALL WRITE_CHAR
    ;NOP
    ;NOP
    ;NOP
    ;LCALL D800MS
    
    LCALL INITIAL_DS18B20
    MOV R7,#0CCH    ;WRITE SKIP ROM
    LCALL WRITE_CHAR
    MOV R7,#0BEH    ;WRITE READ DATA COMMAND
    LCALL WRITE_CHAR
    LCALL READ_CHAR ;READ FIRST TEMPRATURE DATA
    MOV DATAL,DAT
    LCALL READ_CHAR ;READ SECOND DATA
    MOV DATAH,DAT
    ;LCALL READ_CHAR
    ;LCALL READ_CHAR
    ;LCALL READ_CHAR
    ;LCALL READ_CHAR
    LCALL INITIAL_DS18B20
    MOV A,DATAL
    SWAP A
    ANL A,#0FH
    MOV DAT,A
    MOV A,DATAH
    SWAP A
    ANL A,#0F0H
    ORL A,DAT
    MOV P0,DATAL
    LCALL D800MS
    ;LCALL D800MS
    ;MOV P0,#00H
    LCALL D800MS
    LJMP LOOP_SAMPLE
;------------------------------------
INITIAL_DS18B20:
      SETB DQ
      NOP
      NOP
      NOP
      CLR DQ
      MOV R0,#0FAH
LOOP1:DJNZ R0,$  ;delay 500us
      MOV R0,#50
LOOP3:DJNZ R0,$
      SETB DQ     
LOOP2:JB DQ,$
      MOV R0,#120
      DJNZ R0,$  ;delay 240us
      SETB DQ
      RET
;------------------------------------
WRITE_CHAR:
    MOV R6,#8
    CLR C
    MOV A,R7
WRITE_BIT:
    CLR DQ
    MOV R3,#6
    DJNZ R3,$
    RRC A
    MOV DQ,C
    MOV R3,#23
    DJNZ R3,$
    SETB DQ
    NOP
    DJNZ R6,WRITE_BIT
    SETB DQ
    RET   
;------------------------------------
READ_CHAR:
    MOV R6,#8
    CLR C
READ_BIT:
    SETB DQ
    NOP
    CLR DQ
    NOP
    SETB DQ
    MOV R3,#7
    DJNZ R3,$
    MOV C,DQ
    MOV R3,#23
    DJNZ R3,$
    RRC A
    DJNZ R6,READ_BIT
    MOV DAT,A
    RET
;------------------------------------
D480US:MOV DT1,#245
    DJNZ DT1,$
    RET
D130US:MOV DT1,#65
    DJNZ DT1,$
    RET
D60US:MOV DT1,#30
    DJNZ DT1,$
    RET 
D15US:MOV DT1,#5
    DJNZ DT1,$
    RET 
D800MS:MOV DT1,#50
DEL1:MOV DT2,#100
DEL2:MOV DT3,#100
    DJNZ DT3,$
    DJNZ DT2,DEL2
    DJNZ DT1,DEL1
    RET
    END 

⌨️ 快捷键说明

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