内容发布更新时间 : 2025/7/19 8:48:27星期一 下面是文章的全部内容请认真阅读。
主题:湖南工业大学大学本科毕业设计(论文)
DJNZ R0, TSR1 ;延时520us SETB DQ
MOV R0, #07H TSR2:
DJNZ R0, TSR2
JB DQ, TSR3 ;如DQ为低则复位成功,DS18B20存在 LJMP TSR4 ; 延时 TSR3:
SETB FLAG ;置标志位,表示DS1820存在 LJMP TSR5 TSR4:
CLR FLAG ;清标志位,表示DS1820不存在 LJMP TSR7 TSR5:
MOV R0, #06BH ;200US TSR6:
DJNZ R0, TSR6 ;延时 TSR7: SETB DQ ;拉高总线 RET
;****************************************************** ;读DS18B20的程序
;****************************************************** READ_1820:
MOV R6, #8 ;连续读8个bit RE1: CLR DQ ;读前总线保持为低 MOV R4, #4 NOP
SETB DQ ;开始读总线释放 RE2: DJNZ R4, RE2 ;持续8us
MOV C, DQ ;从ds1820总线读得一个bit RRC A ;把读得的位值环移给 A MOV R5, #30
RE3: DJNZ R5, RE3 ;持续60us DJNZ R6, RE1 ;读下一个bit
SETB DQ ;重新释放ds1820总线 RET
;**************************************************************************** ;写DS18B20的程序
;****************************************************************************** WRITE_1820:
MOV R2, #8 ;控制写8位 CLR C ;进位标志清零 WR1: CLR DQ
MOV R3, # 6 ;写时序要求有一定延时 DJNZ R3, $ RRC A
MOV DQ, C
MOV R3, #23 ;写时序要求有一定延时 DJNZ R3, $ SETB DQ
V
主题:湖南工业大学大学本科毕业设计(论文)
NOP
DJNZ R2, WR1 SETB DQ RET
;**************************************************** ;读DS18B20的程序,从DS18B20中读出两个字节的温度数据 ;**************************************************** READ_18200:
MOV R4, #2 ;将温度高位和低位从DS18B20中读出
MOV R1, #36H ;低位存入36H(TEMPER_L),高位存入35H(TEMPER_H) RE00: MOV R2,