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

📄 18b20.lst

📁 DS12C887适时时钟
💻 LST
字号:
C51 COMPILER V7.09   18B20                                                                 02/11/2009 12:02:17 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE 18B20
OBJECT MODULE PLACED IN 18b20.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 18b20.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #define uint unsigned int
   3          #define uchar unsigned char
   4          
   5          sbit ds=P2^2;
   6          uint temp,temp1;
   7          float f_temp;
   8          bit flag_b;
   9          void delay(uint z)
  10          {
  11   1              uint x,y;
  12   1              for(x=z;x>0;x--)
  13   1                      for(y=110;y>0;y--);
  14   1      }
  15          void dsreset(void)
  16          {
  17   1              uint i;
  18   1              ds=0;
  19   1              i=103;
  20   1              while(i>0)i--;
  21   1              ds=1;
  22   1              i=4;
  23   1              while(i>0)i--;
  24   1      }
  25          
  26          bit tempreadbit()
  27          {
  28   1              uint i;
  29   1              bit dat;
  30   1              ds=0;
  31   1              i++;
  32   1              ds=1;
  33   1              i++;
  34   1              i++;
  35   1              dat=ds;
  36   1              i=8;
  37   1              while(i>0)i--;
  38   1              return(dat);
  39   1      }
  40          uchar tempread()
  41          {
  42   1              uchar i,j,dat;
  43   1              dat=0;
  44   1              for(i=1;i<=8;i++)
  45   1              {
  46   2                      j=tempreadbit();
  47   2                      dat=(j<<7)|(dat>>1);
  48   2              }
  49   1              return(dat);
  50   1      }
  51          void tempwritebyte(uchar dat)
  52          {
  53   1              uint i;
  54   1              uchar j;
  55   1              bit testb;
C51 COMPILER V7.09   18B20                                                                 02/11/2009 12:02:17 PAGE 2   

  56   1              for(j=1;j<=8;j++)
  57   1              {
  58   2                      testb=dat&0x01;
  59   2                      dat=dat>>1;
  60   2                      if(testb)
  61   2                      {
  62   3                              ds=0;
  63   3                              i++;
  64   3                              i++;
  65   3                              ds=1;
  66   3                              i=8;
  67   3                              while(i>0)i--;
  68   3                      }
  69   2                      else
  70   2                      {
  71   3                              ds=0;
  72   3                              i=8;
  73   3                              while(i>0)i--;
  74   3                              ds=1;
  75   3                              i++;
  76   3                              i++;
  77   3                      }
  78   2              }
  79   1      }
  80          /*void read_rom()
  81          {
  82                  uchar n;
  83                  dsreset();
  84                  delay(1);
  85                  tempwritebyte(0x33);
  86                  for(n=0;n<8;n++)
  87                  {
  88                          rom[n]=tempread();
  89                  }
  90          }*/
  91          void tempchange()
  92          {
  93   1              dsreset();
  94   1              delay(1);
  95   1              tempwritebyte(0xcc);
  96   1              tempwritebyte(0x44);
  97   1      }
  98          uint get_temp()
  99          {
 100   1              uchar a,b,i;
 101   1              dsreset();
 102   1              delay(1);
 103   1              tempwritebyte(0xcc);
 104   1              tempwritebyte(0xbe);
 105   1              a=tempread();
 106   1              b=tempread();
 107   1              
 108   1              i=b;
 109   1              i=i>>4;
 110   1              if(i==0)
 111   1              {
 112   2                      flag_b=1;
 113   2                      temp=b;
 114   2                      temp<<=8;
 115   2                      temp=temp|a;
 116   2                      f_temp=temp*0.0625;
 117   2                      temp=f_temp*10+0.5;     
C51 COMPILER V7.09   18B20                                                                 02/11/2009 12:02:17 PAGE 3   

 118   2              }
 119   1              else
 120   1              {
 121   2                      flag_b=0;
 122   2                      a=~a;
 123   2                      a=a+1;
 124   2                      b=~b;
 125   2                      b=b+1;
 126   2                      temp=b;
 127   2                      temp<<=8;
 128   2                      temp=temp|a;
 129   2                      f_temp=temp*0.0625;
 130   2                      temp=f_temp*10+0.5;     
 131   2              }
 132   1              
 133   1              f_temp=f_temp+0.5;
 134   1              return temp;
 135   1      }


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


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

⌨️ 快捷键说明

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