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

📄 ds18b20.lst

📁 针对STC8051单片机的开发包
💻 LST
字号:
C51 COMPILER V7.50   DS18B20                                                               09/30/2006 21:59:33 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE DS18B20
OBJECT MODULE PLACED IN DS18B20.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LIB\DS18B20.c BROWSE DEBUG OBJECTEXTEND PRINT(.\DS18B20.lst) OBJECT(DS18B20
                    -.obj)

line level    source

   1          /****************************************************************
   2          //MCS-51单片机扩展DS18B20底层操作库。
   3          //只在STC89C52单片机上实验过
   4          //硬件接口见hardmap.h文件
   5          //create by changshengwuji 
   6          //email: netspider@163.com
   7          //qq:    450353168
   8          //2006.05.03
   9          ****************************************************************/
  10          
  11          
  12          
  13          
  14          #include "../inc/MCS_X51.H"
  15          #include "../inc/hardmap.h"
  16          #include "../inc/MCS_X51LIB.H"
  17          extern bit bit_10ms;
  18          extern bit bit_10ms_over;
  19          extern bit bit_400ms;
  20          extern bit bit_400ms_over;
  21          
  22          //************************************************************************
  23          
  24          void  delay(UINT8  t){   //call  first 24us,after 16us
  25   1        int s;
  26   1        for(s=0;s<=t;s++);
  27   1      }
  28          
  29          void  delay10ms(){
  30   1      UINT8  i;
  31   1        for(i=0;i<12;i++){
  32   2          
  33   2              delay(60);
  34   2              }
  35   1              }
  36          
  37          UINT8  ibus_reset(){
  38   1      UINT8  answer;
  39   1        iwire=0;
  40   1        delay(29);
  41   1        iwire=1;
  42   1        delay(3);
  43   1        answer=iwire;
  44   1        delay(25);
  45   1        return(answer);
  46   1      }
  47          
  48          UINT8  read_bit(void){
  49   1      UINT8 i;
  50   1        iwire=0;
  51   1       
  52   1        iwire=1;
  53   1        for(i=0;i<3;i++);
  54   1        
C51 COMPILER V7.50   DS18B20                                                               09/30/2006 21:59:33 PAGE 2   

  55   1        return(iwire);
  56   1      }
  57          
  58          void  write_bit(UINT8  b){
  59   1        iwire=0;
  60   1        
  61   1        if  (b==1)
  62   1            iwire=1;
  63   1        delay(5);       //delay 104uS
  64   1        iwire=1;
  65   1      }
  66          //------------------------------
  67          UINT8  read_byte(){
  68   1      UINT8  i;
  69   1      UINT8  value=0;
  70   1        for(i=0;i<8;i++){
  71   2           if(read_bit())
  72   2              value|=0x01<<i;
  73   2           delay(6);        //wait for rest line
  74   2        }
  75   1        return(value);
  76   1      }
  77          //------------------------------
  78          void  write_byte(UINT8 byt){
  79   1      UINT8  i;
  80   1      
  81   1      UINT8  temp;
  82   1        for ( i=0;i<8;i++){
  83   2            temp=byt>>i;
  84   2            temp=temp&0x01;
  85   2            write_bit(temp);
  86   2            }
  87   1        delay(5);
  88   1      }
  89          //-----------------------------------------------------------------------------------------
  90          void  read_rom(UINT8 *p){                                       //读ROM
  91   1      UINT8  i;
  92   1      
  93   1        write_byte(0x33);
  94   1        for (i=0;i<8;i++){
  95   2            *p=read_byte();
  96   2                p++;
  97   2          }
  98   1      }
  99          //-----------------------------------
 100          void    write_skip(){                           //跳过ROM指令
 101   1              write_byte(0xcc);
 102   1      }
 103          //-----------------------------------
 104          void  write_scratchpad(UINT8 *p){                               //写缓存
 105   1      UINT8  i;
 106   1        write_byte(0x4e);
 107   1        for(i=0;i<3;i++){
 108   2            write_byte(*p);
 109   2                p++;
 110   2            }
 111   1      }
 112          //-----------------------------------
 113          void  read_scratchpad(UINT8 *p){                                //读缓存
 114   1      UINT8  i;
 115   1        write_byte(0xbe);
 116   1        for(i=0;i<5;i++){
C51 COMPILER V7.50   DS18B20                                                               09/30/2006 21:59:33 PAGE 3   

 117   2              *p=read_byte();
 118   2              p++;
 119   2        }
 120   1      }
 121          
 122          //-----------------------------------
 123          void  read_temperature(UINT8 *p){                               //读转换结果
 124   1      UINT8  i;
 125   1        write_byte(0xbe);
 126   1        for(i=0;i<3;i++){
 127   2              *p=read_byte();
 128   2              p++;
 129   2        }
 130   1      }
 131          //-----------------------------------
 132          void copy_scratchpad(){ //使用直接电源。
 133   1              write_byte(0x48);
 134   1              bit_10ms=1;
 135   1              while(!bit_10ms_over);
 136   1              bit_10ms_over = 0;
 137   1      
 138   1      }
 139          //-----------------------------------
 140          void convert_t(){
 141   1              write_byte(0x44);
 142   1              //while(read_byte()!=0xff);
 143   1              bit_400ms = 1;
 144   1              while(!bit_400ms_over);
 145   1              bit_400ms_over = 0;
 146   1      }
 147          //-----------------------------------
 148          void    recall_eeprom(){
 149   1              write_byte(0xb8);
 150   1              while(read_byte()!=0xff);
 151   1      }


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


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

⌨️ 快捷键说明

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