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

📄 one-wire.lst

📁 操作DS18B20器件并且在1602上显示
💻 LST
📖 第 1 页 / 共 3 页
字号:
 193   1              }
 194          /*******************************************************************************
 195          *** 函 数 名: extern void DS18B20_MemCmd(int8u memCmd)
 196          *** 功能描述: DS18B20Memory 操作命令;
 197          *** 全局变量: NO !
 198          *** 输          入: NO !
 199          *** 输          出: NO !
 200          *** 创 建 人:huangtiexiong                       日期:2006-11-28
 201          *** 修 改 人:                                                                          日期:2006-11-28
 202          *** 函数说明: 仅写了ConvertT(0x44) 和0xBE命令;
 203                                                                  0x44:Convert T; 0xbe:Read Scratch-pad;
 204          /******************************************************************************/
 205          extern void DS18B20_MemCmd(int8u memCmd)                
 206          {
 207   1              switch(memCmd)
 208   1              {
 209   2                      case 0x44:              //Start to Convert temperature;
 210   2                              OneWire_WriteByte(0x44);
 211   2                              NOP();
 212   2                              DS18B20_Busy();
 213   2                              Delay_Xms(250);         //延时750ms;
 214   2                              Delay_Xms(250);
 215   2                              Delay_Xms(250);
 216   2                              break;
 217   2                      
 218   2                      case 0xbe:              //Read scratchpad;
 219   2                              OneWire_WriteByte(0xbe);
 220   2                              break;
 221   2                                      
 222   2                      default:
 223   2                              break;  
 224   2                      }
 225   1              }
 226          /*******************************************************************************
 227          *** 函 数 名: extern void DS18B20_ReadDat(int8u len,int8u *buf)
 228          *** 功能描述: 读取DS18B20内部的Scratchpad内容;
 229          *** 全局变量: NO !
 230          *** 输          入: len:将要读取的数据长度;
 231          *** 输          出: buf:数据缓存;
 232          *** 创 建 人:huangtiexiong                       日期:2006-11-28
 233          *** 修 改 人:                                                                          日期:2006-11-28
 234          *** 函数说明: 
 235          /******************************************************************************/
 236          extern void DS18B20_ReadDat(int8u len,int8u *buf)
 237          {
 238   1              int8u i;
 239   1              for(i=0;i<len;i++)
 240   1              {
 241   2                      buf[i] = OneWire_ReadByte();
C51 COMPILER V8.05a   ONE_WIRE                                                             10/07/2008 19:46:55 PAGE 5   

 242   2                      }
 243   1              OneWire_Rst();
 244   1              OneWire_Idle(); 
 245   1              }
 246          /*******************************************************************************
 247          *** 函 数 名: extern void DS18B20_Busy(void)
 248          *** 功能描述: 内部模数转换中,忙
 249          *** 全局变量: NO !
 250          *** 输          入: NO !
 251          *** 输          出: NO !
 252          *** 创 建 人:huangtiexiong                       日期:2006-11-28
 253          *** 修 改 人:                                                                          日期:2006-11-28
 254          *** 函数说明: 
 255          /******************************************************************************/
 256          extern void DS18B20_Busy(void)
 257          {
 258   1              OneWire_Idle();
 259   1              }
 260          
 261          
 262          /*******************************************************************************
 263          ****                              End Of File
 264          *******************************************************************************/
C51 COMPILER V8.05a   ONE_WIRE                                                             10/07/2008 19:46:55 PAGE 6   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION OneWire_Init (BEGIN)
                                           ; SOURCE LINE # 38
                                           ; SOURCE LINE # 39
                                           ; SOURCE LINE # 40
0000 D2A7              SETB    DQ
                                           ; SOURCE LINE # 41
0002 00                NOP     
0003 00                NOP     
                                           ; SOURCE LINE # 42
0004 C2A7              CLR     DQ
                                           ; SOURCE LINE # 43
0006 7F7D              MOV     R7,#07DH
0008 120000      E     LCALL   _Delay_Xus
                                           ; SOURCE LINE # 44
000B 7F7D              MOV     R7,#07DH
000D 120000      E     LCALL   _Delay_Xus
                                           ; SOURCE LINE # 46
0010 D2A7              SETB    DQ
                                           ; SOURCE LINE # 47
0012 7F0F              MOV     R7,#0FH
0014 120000      E     LCALL   _Delay_Xus
0017         ?C0001:
                                           ; SOURCE LINE # 49
0017 30A704            JNB     DQ,?C0002
                                           ; SOURCE LINE # 50
                                           ; SOURCE LINE # 51
001A 00                NOP     
001B 00                NOP     
                                           ; SOURCE LINE # 52
001C 80F9              SJMP    ?C0001
001E         ?C0002:
                                           ; SOURCE LINE # 53
001E 7F3C              MOV     R7,#03CH
0020 120000      E     LCALL   _Delay_Xus
                                           ; SOURCE LINE # 54
0023 D2A7              SETB    DQ
                                           ; SOURCE LINE # 55
0025 22                RET     
             ; FUNCTION OneWire_Init (END)

             ; FUNCTION OneWire_Rst (BEGIN)
                                           ; SOURCE LINE # 66
                                           ; SOURCE LINE # 67
                                           ; SOURCE LINE # 68
0000 C2A7              CLR     DQ
                                           ; SOURCE LINE # 69
0002 7F7D              MOV     R7,#07DH
0004 120000      E     LCALL   _Delay_Xus
                                           ; SOURCE LINE # 70
0007 C2A7              CLR     DQ
                                           ; SOURCE LINE # 71
0009 7F7D              MOV     R7,#07DH
000B 020000      E     LJMP    _Delay_Xus
             ; FUNCTION OneWire_Rst (END)

             ; FUNCTION _OneWire_WriteByte (BEGIN)
                                           ; SOURCE LINE # 83
0000 8F00        R     MOV     cmd,R7
                                           ; SOURCE LINE # 84
C51 COMPILER V8.05a   ONE_WIRE                                                             10/07/2008 19:46:55 PAGE 7   

                                           ; SOURCE LINE # 86
0002 E4                CLR     A
0003 F500        R     MOV     i,A
0005         ?C0005:
                                           ; SOURCE LINE # 87
                                           ; SOURCE LINE # 88
0005 E500        R     MOV     A,cmd
0007 30E00C            JNB     ACC.0,?C0008
                                           ; SOURCE LINE # 89
                                           ; SOURCE LINE # 90
000A C2A7              CLR     DQ
                                           ; SOURCE LINE # 91
000C 00                NOP     
000D 00                NOP     
                                           ; SOURCE LINE # 92
000E 00                NOP     
000F 00                NOP     
                                           ; SOURCE LINE # 93
0010 00                NOP     
0011 00                NOP     
                                           ; SOURCE LINE # 94
0012 D2A7              SETB    DQ
                                           ; SOURCE LINE # 95
0014 8008              SJMP    ?C0009
0016         ?C0008:
                                           ; SOURCE LINE # 97
                                           ; SOURCE LINE # 98
0016 C2A7              CLR     DQ
                                           ; SOURCE LINE # 99
0018 00                NOP     
0019 00                NOP     
                                           ; SOURCE LINE # 100
001A 00                NOP     
001B 00                NOP     
                                           ; SOURCE LINE # 101
001C 00                NOP     
001D 00                NOP     
                                           ; SOURCE LINE # 103
001E         ?C0009:
                                           ; SOURCE LINE # 104
001E 7F1E              MOV     R7,#01EH
0020 120000      E     LCALL   _Delay_Xus
                                           ; SOURCE LINE # 105
0023 D2A7              SETB    DQ
                                           ; SOURCE LINE # 106
0025 00                NOP     
0026 00                NOP     
                                           ; SOURCE LINE # 107
0027 E500        R     MOV     A,cmd
0029 C3                CLR     C
002A 13                RRC     A
002B F500        R     MOV     cmd,A
                                           ; SOURCE LINE # 108
002D 0500        R     INC     i
002F E500        R     MOV     A,i
0031 C3                CLR     C
0032 9408              SUBB    A,#08H
0034 40CF              JC      ?C0005
                                           ; SOURCE LINE # 109
0036         ?C0010:
0036 22                RET     
             ; FUNCTION _OneWire_WriteByte (END)
C51 COMPILER V8.05a   ONE_WIRE                                                             10/07/2008 19:46:55 PAGE 8   


             ; FUNCTION OneWire_ReadByte (BEGIN)
                                           ; SOURCE LINE # 120

⌨️ 快捷键说明

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