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

📄 ds18b20.lst

📁 CT107D测试程序(含超声测距)
💻 LST
字号:
C51 COMPILER V9.02   DS18B20                                                               01/01/2006 00:57:23 PAGE 1   


C51 COMPILER V9.02, COMPILATION OF MODULE DS18B20
OBJECT MODULE PLACED IN .\output\ds18b20.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE ds18b20.c BROWSE DEBUG OBJECTEXTEND PRINT(.\list\ds18b20.lst) OBJECT(.\outp
                    -ut\ds18b20.obj)

line level    source

   1          #include "ds18b20.h"
   2          
   3          //延时函数
   4          void delay(unsigned int t)
   5          {
   6   1        while(t--);
   7   1      }
   8          
   9          //DS18B20初始化函数
  10          bit init_ds18b20(void)
  11          {
  12   1        bit initflag = 0;
  13   1        DQ = 1;
  14   1        delay(12);
  15   1        DQ = 0;
  16   1        delay(80); // 延时大于480us
  17   1        DQ = 1;
  18   1        delay(10);  // 14
  19   1        initflag = DQ;     // initflag等于1初始化失败
  20   1        delay(5);
  21   1        
  22   1        return initflag;
  23   1      }
  24          
  25          //通过单总线向从器件写一个字节
  26          void wr_ds18b20(unsigned char byt)
  27          {
  28   1        unsigned char i;
  29   1        for(i=0;i<8;i++)
  30   1        {
  31   2          DQ = 0;
  32   2          DQ = byt&0x01;
  33   2          delay(5);
  34   2          DQ = 1;
  35   2          byt >>= 1;
  36   2        }
  37   1        delay(5);
  38   1      }
  39          
  40          //通过单总线从从器件读一个字节
  41          unsigned char rd_ds18b20(void)
  42          {
  43   1        unsigned char i;
  44   1        unsigned char byt;
  45   1        
  46   1        for(i=0;i<8;i++)
  47   1        {
  48   2          DQ = 0;
  49   2          byt >>= 1;
  50   2          DQ = 1;
  51   2          if(DQ)
  52   2          {
  53   3            byt |= 0x80;
  54   3          }    
C51 COMPILER V9.02   DS18B20                                                               01/01/2006 00:57:23 PAGE 2   

  55   2          delay(5);
  56   2        }
  57   1        return byt;
  58   1      }
  59          
  60          //温度转换、读取及数据处理器函数
  61          unsigned char rd_temperature(void)
  62          {
  63   1        unsigned char low,high;
  64   1        char temp;
  65   1        
  66   1        init_ds18b20();
  67   1        wr_ds18b20(0xCC);
  68   1        wr_ds18b20(0x44); //启动温度转换
  69   1        delay(200);
  70   1      
  71   1        init_ds18b20();
  72   1        wr_ds18b20(0xCC);
  73   1        wr_ds18b20(0xBE); //读取寄存器
  74   1        
  75   1        low = rd_ds18b20(); //低字节
  76   1        high = rd_ds18b20(); //高字节
  77   1        
  78   1        temp = high<<4;
  79   1        temp |= (low>>4);
  80   1        
  81   1        return temp;
  82   1      }
  83          
  84          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    163    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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