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

📄 18b20.asm

📁 单片机操作DS18B20读取温度的源程序
💻 ASM
字号:
;DS18B20读写程序
;  6Mhz晶振
start:    lcall reset      ;复位脉冲 480us - 960us
          jnb f0 ,wdjc20a
          mov r7,#10h
          lcall delay15
          mov a,#0CCh     ;跳过号检测
          lcall wr1820
          mov a,#44h      ;convert 命令
          lcall wr1820
wdjc20a:
          ret

;DS18B20读一个字节,出口:A=读入的字节
rd1820:
rd182a: MOV   R2,#8
rd182f: CLR    C
        SETB   DQ
        NOP
        NOP
        CLR    DQ
        NOP
        NOP
        SETB   DQ     ;产生时间片
        MOV    R7,#3
        nop
rd182d: DJNZ   R7, rd182d
        MOV    C,DQ
        MOV    R7,#11
rd182e: DJNZ   R7,rd182e
        RRC    A
        DJNZ   R2,rd182f
        mov   @R0,a
        inc   r0
        djnz  r1,rd182a
        ret

;DS18B20的写一个字节 写入内容在A中
WR1820: MOV    R2,#8
        CLR    C
WR1:    CLR    DQ
        MOV    R7,#3
wr2:    DJNZ   R7,wr2
        RRC    A
        MOV    DQ,C
        MOV    R7,#11
wr3:    DJNZ   R7,wr3
        SETB   DQ
        NOP
        DJNZ   R2,WR1
        SETB   DQ
        RET
reset:    clr dq
          mov r7,#32     ;复位脉冲 480us - 960us 500us
          lcall delay15
          setb dq
          mov r7,#4      ;15us -- 60us  60us
          lcall delay15
          clr f0
          jb dq,rst1    ;1820 应答 将总线拉低 (保持60-240us)
          setb f0      ;应答标志 1 为在线 f0
rst1:     ret
                   ;延时
DELAY15:  MOV R6,#3    ;15us
DEL151:   DJNZ R6,DEL151
          DJNZ R7,DELAY15
          RET
                                    

⌨️ 快捷键说明

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