您当前的位置:五五电子网电子知识单片机-工控设备51单片机DS18B20温度控制lcd1602显示程序 正文
DS18B20温度控制lcd1602显示程序

DS18B20温度控制lcd1602显示程序

点击数:7517 次   录入时间:03-04 11:48:48   整理:http://www.55dianzi.com   51单片机
          SETB  RELAY           ;继电器关闭
          CALL  BEEP_BL
          RET
 CHULI2:
          MOV  DPTR,#BJ4
          CALL  TEMP_BJ3
          CALL  BEEP_BL
          RET
;-----------------------------------------
TEMP_BJ3:
          MOV  A,#0CEH
          CALL WCOM
          MOV  R1,#0
          MOV  R0,#2

BBJJ3:    MOV  A,R1
          MOVC A,@A+DPTR
          CALL  WDATA
          INC R1
          DJNZ  R0,BBJJ3
          RET
BJ3:
      DB  ">H"
BJ4:
      DB  "<L"
BJ5:
      DB  " !"
;==================================================
;显示温度标记子程序
;==================================================
TEMP_BJ:
          MOV  A,#0CBH
          CALL WCOM
          MOV  DPTR,#BJ1  ;指针指到显示消息
          MOV  R1,#0
          MOV  R0,#2

BBJJ1:    MOV  A,R1
          MOVC A,@A+DPTR
          CALL  WDATA
          INC R1
          DJNZ  R0,BBJJ1
          RET
BJ1:
      DB  00H,"C"
;=================================================
MENU_OK:

          MOV  DPTR,#M_OK1  ;指针指到显示消息
          MOV  A,#1          ;显示在第一行
          CALL  LCD_PRINT
          MOV  DPTR,#M_OK2  ;指针指到显示消息
          MOV  A,#2          ;显示在第一行
          CALL  LCD_PRINT

          RET
M_OK1:
    DB   "   DS18B20 OK   ",0
M_OK2:
    DB   " TEMP:          ",0
;-----------------------------------------------
MENU_ERROR:
          MOV  DPTR,#M_ERROR1  ;指针指到显示消息1
          MOV  A,#1          ;显示在第一行
          CALL  LCD_PRINT
          MOV  DPTR,#M_ERROR2  ;指针指到显示消息1
          MOV  A,#2          ;显示在第一行
          CALL  LCD_PRINT
          RET
M_ERROR1:
    DB   " DS18B20 ERROR  ",0
M_ERROR2:
    DB   " TEMP: ----     ",0
;====================================================
reset:  setb date_line
        nop
        clr date_line
        MOV r0,#6bh         ;主机发出延时复位低脉冲
        MOV r1,#04h
tsr1:   djnz r0,$
        MOV r0,#6bh
        djnz r1,tsr1
        setb date_line        ;然后拉高数据线
        nop
        nop
        nop
        MOV r0,#32h
tsr2:   jnb date_line,tsr3   ;等待DS18B20回应
        djnz r0,tsr2
        jmp tsr4             ; 延时
tsr3:   setb flag1           ; 置标志位,表示DS1820存在
        jmp tsr5
tsr4:   clr flag1            ; 清标志位,表示DS1820不存在
        jmp tsr7
tsr5:   MOV r0,#06bh
tsr6:   djnz r0,$            ; 时序要求延时一段时间
tsr7:   setb date_line
        ret
;=======================================================
RE_18B20:
        JB  FLAG1,RE_18B20A
        RET
RE_18B20A:
        CALL  RESET
        MOV  A,#0CCH       ;跳过ROM匹配
        LCALL  WRITE
        MOV  A,#4EH        ;写暂存寄存器
        LCALL  WRITE

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  下一页


本文关键字:程序  51单片机单片机-工控设备 - 51单片机