sp;     LCALL  WRITE
         MOV  A,#0B8H        ;把EEROM里的温度报警值拷贝回暂存器
         CALL  WRITE
         RET
 ;--------------------------------------------------------------
 ;将自定义字符写入LCD1602的CGRAM中
 ;--------------------------------------------------------------
 STORE_DATA:
         MOV  A,#40H
         CALL  WCOM
         MOV  R2,#08H
         MOV  DPTR,#D_DATA
         MOV  R3,#00H
 S_DATA:
         MOV  A,R3
         MOVC  A,@A+DPTR
         CALL  WDATA      ;写入数据
         INC  R3
         DJNZ  R2,S_DATA
         RET
 
 D_DATA:
     DB  0CH,12H,12H,0CH,00H,00H,00H,00H
 ;==============================================================
 write:  mov r2,#8            ;一共8位数据
         CLR  C
 wr1:
         clr date_line        ;开始写入DS18B20总线要处于复位(低)状态
         mov r3,#07
         djnz r3,$            ;总线复位保持16微妙以上
         rrc a                ;把一个字节DATA 分成8个BIT环移给C
         mov date_line,c      ;写入一个BIT
         mov r3,#3CH
         djnz r3,$            ;等待100微妙
         setb date_line       ;重新释放总线
         nop
         djnz r2,wr1          ;写入下一个BIT
         setb date_line
         ret
 ;--------------------------------------------------------------------
 read:    mov r4,#4          ; 将温度低位、高位、TH、TL从DS18B20中读出
       &nbs
基于80C51的温湿度控制系统.(十三)相关范文

