⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 18b20.c

📁 这是18B20传感器C程序
💻 C
字号:
/
--------------------------------------------------------------------------------
 
数字温度传感器DS18B20程序

--------------------------------------------------------------------------------
   ORG  0000H
START: MOV  SP,#60H     ;开机初始化
    MOV  P0,#0FFH
    MOV  P1,#0FEH
    MOV  P2,#0FFH
    MOV  P3,#0FFH 

MAIN:  LCALL  GET_TEMPER   ;调用读温度子程序
    LCALL  DISP      ;调用数码管显示子程序
    AJMP  MAIN      ;重复循环 
;------ 读DS18B20传感器的温度值 ------
GET_TEMPER:
    SETB  P3.3
    LCALL  RST18B20    ;复位DS18B20
    JB    00H,DSS2
    RET
DSS2:  MOV   A,#0CCH    ;跳过ROM匹配
    LCALL  WR18B20
    MOV   A,#44H     ;向DS18B20发出温度转换命令
    LCALL  WR18B20
    LCALL  RST18B20    ;准备读温度前先复位DS18B20
    MOV   A,#0CCH    ;跳过ROM匹配
    LCALL  WR18B20
    MOV   A,#0BEH    ;向DS18B20发出读温度命令
    LCALL  WR18B20
    LCALL  RE18B20    ;读出温度数据
    RET

;------ DS18B20复位初始化程序 ------
RST18B20:
    SETB  P3.3
    NOP
    CLR   P3.3
    MOV   R0,#06BH    ;主机发出复位低脉冲
    MOV   R1,#03H
DSR1:  DJNZ  R0,DSR1 
    MOV   R0,#6BH
    DJNZ  R1,DSR1
    SETB  P3.3      ;拉高数据线
    NOP
    NOP
    NOP
    MOV   R0,#25H
DSR2:  JNB   P3.3,DSR3    ;等待DS18B20回应
    DJNZ  R0,DSR2
    LJMP  DSR4
DSR3:  SETB  00H       ;置标志位,表示DS1820存在
    LJMP  DSR5
DSR4:  CLR   00H        ;清标志位,表示DS1820不存在
    LJMP  DSR7
DSR5:  MOV   R0,#06BH
DSR6:  DJNZ  R0,DSR6     ;延时一段时间
DSR7:  SETB  P3.3
    RET

;------ 写DS18B20的子程序 ------
WR18B20:
    MOV   R2,#8
    CLR   C
WR1:  CLR   P3.3
    MOV   R3,#6
    DJNZ  R3,$
    RRC   A
    MOV   P3.3,C
    MOV   R3,#23
    DJNZ  R3,$
    SETB  P3.3
    NOP
    DJNZ  R2,WR1
    SETB  P3.3
    RET

;------ 从DS18B20中读温度数据程序 ------
RE18B20:
    MOV   R4,#2
    MOV   R1,#2FH
RE00:  MOV   R2,#8
RE01:  CLR   C
    SETB  P3.3
    NOP
    NOP
    CLR   P3.3
    NOP
    NOP
    NOP
    SETB  P3.3
    MOV   R3,#09
RE10:  DJNZ  R3,RE10
    MOV   C,P3.3
    MOV   R3,#23
RE20:  DJNZ  R3,RE20
    RRC   A
    DJNZ  R2,RE01
    MOV   @R1,A
    DEC   R1
    DJNZ  R4,RE00
    RET

;-------- 显示子程序 --------
DISP:  MOV   A,2FH
    MOV   C,70H
    RRC   A
    MOV   C,71H
    RRC   A
    MOV   C,72H
    RRC   A
    MOV   C,73H
    RRC   A
    MOV 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -