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

📄 chenxu.c

📁 这是多个18B20传感器挂接C程序
💻 C
字号:
  初始化DS18B20
INITDS1820:  SETB    TEMPDIN
              NOP
              NOP
              CLR     TEMPDIN
              MOV     R6,#0A0H              ;
              DJNZ    R6,$
              MOV     R6,#0A0H
              DJNZ    R6,$
              SETB    TEMPDIN
              MOV     R6,#32H                ;
              DJNZ    R6,$
              MOV     R6,#3CH
LOOP1820:     MOV     C,TEMPDIN
              JC      INITDS1820OUT
              DJNZ    R6,LOOP1820
              MOV     R6,#064H                 ;
              DJNZ    R6,$
              SJMP    INITDS1820
              RET
;
INITDS1820OUT:SETB    TEMPDIN
              RET

;读DS18B20的程序,从DS18B20读出一个字节的数据
READDS1820:   MOV     R7,#08H
              SETB    TEMPDIN
              NOP
              NOP
READDS1820LOOP:  CLR    TEMPDIN
                 NOP
                 NOP
                 NOP
                 SETB   TEMPDIN
                 MOV    R6,#07H          ;
                 DJNZ   R6,$
                 MOV    C,TEMPDIN
                 MOV    R6,#3CH           ;
                 DJNZ   R6,$
                 RRC    A
                 SETB   TEMPDIN
                 DJNZ   R7,READDS1820LOOP
                 MOV    R6,#3CH
                 DJNZ   R6,$
                 RET
;
;写DS18B20的程序,从DS18B20中写一个字节的数据
WRITEDS1820:     MOV    R7,#08H
                 SETB   TEMPDIN
                 NOP
                 NOP
WRITEDS1820LOP:  CLR    TEMPDIN
                 MOV    R6,#07H            ;
                 DJNZ   R6,$
                 RRC    A
                 MOV    TEMPDIN,C
                 MOV    R6,#34H             ;
                 DJNZ   R6,$
                 SETB   TEMPDIN
                 DJNZ   R7,WRITEDS1820LOP
                 RET
;读取温度子程序
READTEMP:      LCALL    INITDS1820
               MOV      A,#0CCH
               LCALL    WRITEDS1820                 ;
               MOV      R6,#34H                     ;
               DJNZ     R6,$
               MOV      A,#44H
               LCALL    WRITEDS1820                 ;
               MOV      R6,#34H                      ;
               DJNZ     R6,$
               RET
;
READTEMP1:     LCALL    INITDS1820
               MOV      A,#0CCH
               LCALL    WRITEDS1820                 ;
               MOV      R6,#34H                      ;
               DJNZ     R6,$
               MOV      A,#0BEH
               LCALL    WRITEDS1820                  ;
               MOV      R6,#34H                       ;
               DJNZ     R6,$
               MOV      R5,#09H
               MOV      R0,#TEMPHEAD
               MOV      B,#00H
READTEMP2:     LCALL    READDS1820
               MOV      @R0,A
               INC      R0
READTEMP21:    LCALL    CRC8CAL
               DJNZ     R5,READTEMP2
               MOV      A,B
               JNZ      READTEMPOUT
               MOV      A,TEMPHEAD+0
               MOV      TEMPL,A
               MOV      A,TEMPHEAD+1
               MOV      TEMPH,A
READTEMPOUT:   RET

⌨️ 快捷键说明

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