DS18B20原程序(ASM) 点击:955 | 回复:1



和 尚

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 34回
  • 年度积分:0
  • 历史总积分:66
  • 注册:2002年1月17日
发表于:2005-06-30 17:15:00
楼主
GETWD: CALL INIT MOV A,#0CCH LCALL WRITE ;;;;发跳过ROM命令 MOV A,#44H LCALL WRITE ;;;;发启动转换命令 CALL CYS DDZH: MOV C,DAT MOV WFEED1,#0A5H MOV WFEED2,#05AH JNC DDZH LCALL INIT MOV A,#0CCH LCALL WRITE MOV A,#0BEH LCALL WRITE LCALL READ MOV WDLSB,A ;;;温度值低位字节送WDLSB LCALL READ MOV WDHSB,A ;;温度值高位字节送WDMSB LCALL INIT CALL CY100C16 RET INIT: CLR EA INI10: SETB DAT MOV R2,#200 MOV R3,#04 INI11: CLR DAT DJNZ R2,INI11 ;;;;主机发复位脉冲 MOV R2,#200 DJNZ R3,INI11 MOV R3,#04 SETB DAT ;;;;主机释放总线 MOV R2,#120 INI12: DJNZ R2,INI12 CLR C MOV C,DAT JC INI10 MOV R6,#80 MOV R7,#04 INI13: MOV C,DAT JC INI14 DJNZ R6,INI13 MOV R6,#80 DJNZ R7,INI13 SJMP INI10 INI14: MOV R2,#240 MOV R3,#04 INI15: DJNZ R2,INI15 MOV R2,#240 DJNZ R3,INI15 RET ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; WRITE: CLR EA MOV R3,#8 WR11: SETB DAT MOV R4,#10;8 RRC A CLR DAT WR12: DJNZ R4,WR12 MOV DAT,C MOV R4,#120 WR13: DJNZ R4,WR13 DJNZ R3,WR11 SETB DAT RET ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; READ: CLR EA MOV R6,#8 RD11: CLR DAT MOV R4,#10;4 NOP NOP NOP SETB DAT RD12: DJNZ R4,RD12 MOV C,DAT RRC A MOV R5,#120;30 RD13: DJNZ R5,RD13 DJNZ R6,RD11 SETB DAT RET CYS: 根据转换精度确定延时时间



和 尚

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 34回
  • 年度积分:0
  • 历史总积分:66
  • 注册:2002年1月17日
发表于:2005-06-30 17:23:00
1楼
DS18B20连接时出现85℃一般是由于延时时间不对引起的,延时时间一定要根据转换精度而定

热门招聘
相关主题

官方公众号

智造工程师