mov column2,#40
       mov pagef2,#2             ;.
       mov code,#11
       lcall writeright
       mov column2,#48
       mov pagef2,#2
       mov code,56H
       lcall writeright
      MOV A,29H
      MOV C,40H  ;28的位地址
      RRC A
      MOV C,41H
      RRC A
      MOV C,42H
      RRC A
      MOV C,43H
      RRC A
      MOV 51H,A
      ANL 29H,#0FH
      MOV A,29H
      MOV B,#6
      MUL AB
      MOV 50H,A
      mov a,51H
      mov b,#10
      div ab
      mov 43H,a
      mov 42H,b
      MOV A,50H
      MOV B,#10
      DIV AB
      MOV 41H,A
      MOV 40H,B
       mov column2,#24            ;实际温度
       mov pagef2,#4
       mov code,43h
       lcall writeright
       mov column2,#32
       mov pagef2,#4
       mov code,42h
       lcall writeright
       mov column2,#40
       mov pagef2,#4             ;.
       mov code,#11
       lcall writeright
       mov column2,#48
       mov pagef2,#4
       mov code,41h
       lcall writeright
       RET
;***********************DS18B20复位初始化子程序***********
INIT_1820:       
      SETB P3.1
      NOP
      CLR P3.1;主机发出延时537微秒的复位低脉冲
      MOV R1,#3
TSR1: MOV R0,#107
      DJNZ R0,$
      DJNZ R1,TSR1
      SETB P3.1       ;然后拉高数据线
      NOP
      NOP
      NOP
      MOV R0,#25H
TSR2: JNB P3.1,TSR3  ;等待DS18B20回应
      DJNZ R0,TSR2
      www.751com.cn表示DS1820存在
      LJMP TSR5
TSR4: CLR FLAG1      ; 清标志位,表示DS1820不存在
      LJMP TSR7
TSR5: MOV R0,#117
TSR6: DJNZ R0,TSR6 ; 时序要求延时一段时间
TSR7: SETB P3.1
      RET    ; 读出转换后的温度值
      
      
      
;***********************读温度子程序*****************      
GET_TEMPER:
      SETB P3.1
      LCALL INIT_1820;先复位DS18B20
      JB FLAG1,TSS2
      RET ; 判断DS1820是否存在?若DS18B20不存在则返回
TSS2:
      MOV A,#0CCH ; 跳过ROM匹配
      LCALL WRITE_1820
      MOV A,#44H ; 发出温度转换命令
      LCALL WRITE_1820;通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒
      LCALL DISPLAY
      LCALL INIT_1820;准备读温度前先复位
      MOV A,#0CCH ; 跳过ROM匹配
      LCALL WRITE_1820
      MOV A,#0BEH ; 发出读温度命令
      LCALL WRITE_1820
      LCALL READ_18200
      RET
;*************************写命令子程序**********
WRITE_1820:
      MOV R2,#8
      CLR C
WR1:  CLR P3.1
      MOV R3,#6
      DJNZ R3,$
      RRC A
      MOV P3.1,C
      MOV R3,#23
      DJNZ R3,$
      SETB P3.1
      NOP
      DJNZ R2,WR1
      SETB P3.1
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>