找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1344|回复: 4
收起左侧

81b20单片机读出全是1,帮我解决后给10块钱答谢

[复制链接]
ID:301315 发表于 2018-4-9 21:29 | 显示全部楼层 |阅读模式
为了直观,我只接一个ds18b20,使用isis模拟,读出的温度放在30h,31h。读出值全是1。我用的是汇编。
ORG 0000H
        AJMP MAIN

        ORG 0100H
MAIN:

UL:        
        ACALL DS18B20
        AJMP UL
;------------------ 18B20子程序------------
DS18B20:
           LCALL I18B20
        JNB 20H.0,UL          ;判断是否有挂载

        MOV A,0CCH
        LCALL W18B20
        MOV A,44H
        LCALL W18B20
        MOV R7,#1EH
        DJNZ R7,$            
    MOV A,#0cch
          LCALL W18B20
        MOV A,0BEH
        LCALL W18B20
        LCALL R18B20
        RET

;-------------------18b20初始化------------------
I18B20:         
    SETB P3.7
        NOP
        NOP
        CLR P3.7
    MOV R7,#0  ;延时513us               
    DJNZ R7,$
        SETB P3.7
    MOV R7, #25H  ;          延时74us
    DJNZ R7,$
        MOV R7,80H
INIT2:        
    JNB P3.7,INIT1
        DJNZ R7,INIT2
        CLR 20H.0
        SETB P3.7
        MOV 40H,#11H
        RET
INIT1:
    SETB 20H.0
    SETB P3.7
        MOV 40H,#22H
    MOV R7,#0F0H  ;延时
    DJNZ R7,$
        
        RET               
;-------------------18b20写------------------

W18B20:
  MOV R6,#8H
  CLR C
WR1:
  CLR P3.7
  MOV R7,#07H
  DJNZ R3,$
  RRC A
  MOV P3.7,C
  MOV R3,#32H
  DJNZ R3,$
  SETB P3.7
  NOP
  DJNZ R2,WR1
  SETB P3.7
  RET

;-------------------18b20读------------------
R18B20:
  MOV R6,#2
  MOV R1,#30H
RE00:
  MOV R5,#8H
RE01:
  CLR CY
  SETB P3.7
  NOP
  NOP
  CLR P3.7
  NOP
  NOP
  NOP
  SETB P3.7
  MOV R7,#9H
  DJNZ R7,$
  MOV C,P3.7
  MOV R7,#3CH
  DJNZ R7,$
  RRC A
  DJNZ R5,RE01
  MOV @R1,A
  INC R1
  DJNZ R6,RE00
  RET
END

阿里旺旺图片20180409213556.jpg
回复

使用道具 举报

ID:301315 发表于 2018-4-9 21:30 | 显示全部楼层
是什么问题呢?单片机12mhz
回复

使用道具 举报

ID:247159 发表于 2018-4-9 23:53 | 显示全部楼层
MOV R7, #25H  ;          延时74us
    DJNZ R7,$
        MOV R7,80H
INIT2:        
  是否应该,MOV R7,#80H?
回复

使用道具 举报

ID:247159 发表于 2018-4-10 00:13 | 显示全部楼层
MOV R7, #25H  ;          延时74us
    DJNZ R7,$
        MOV R7,80H
INIT2:         上行中应为#80
回复

使用道具 举报

ID:301315 发表于 2018-4-10 08:23 | 显示全部楼层
wxszz 发表于 2018-4-10 00:13
MOV R7, #25H  ;          延时74us
    DJNZ R7,$
        MOV R7,80H

初始化子程序可以正常判断是否挂载18b20,但读和写子程序不知道哪一个出了问题?读出全是1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表