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

📄 i2c_slaver.lst

📁 I2C slaver 的8051源码
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.50   I2C_SLAVER                                                            03/02/2009 14:25:10 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE I2C_SLAVER
OBJECT MODULE PLACED IN I2C_slaver.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE I2C_slaver.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include        "STC11L60XE.h"
   2          #include  "INTRINS.H"
   3          #include "globe.h"
   4          
   5          bit     SDA_LEVEL;
   6          bit     CLK_LEVEL;
   7          bit     SDA_LEVEL_BAK;
   8          
   9          bit     Buffer_Return = 0;
  10          
  11          
  12          extern unsigned char  xdata SDA_DATA[];
  13          
  14          
  15          void Recevie_Byte( unsigned char *Recevie_Pointer);
  16          
  17          unsigned int Byte_var1 = 0;
  18          unsigned int var = 0;
  19          
  20          void Recevie_Byte1(void)
  21          {               
  22   1              TH0 =0xed;//18.432MHz晶体,16位方式3ms
  23   1              TL0 =0xef;                      
  24   1              TF0 = 0;
  25   1              while(CLK_PIN == 0)//等待CLK 的0完成
  26   1              {
  27   2                      if(TF0 == 1)
  28   2                              {                               
  29   3                                      return;
  30   3                              }
  31   2                              
  32   2              }       
  33   1              //读 BYTE1 的第1 位                     
  34   1              SDA_LEVEL = SDA_PIN;//读SDA数据 
  35   1              
  36   1              if(SDA_LEVEL == 1)
  37   1                      {
  38   2                              SDA_DATA[var]  |= 0x01;
  39   2                              SDA_DATA[var] = SDA_DATA[var] << 1;
  40   2                      }
  41   1              else
  42   1                      {
  43   2                              SDA_DATA[var]  &= 0xfe;
  44   2                              SDA_DATA[var] = SDA_DATA[var] << 1;
  45   2                      }                               
  46   1      
  47   1              TH0 =0xed;//18.432MHz晶体,16位方式3ms
  48   1              TL0 =0xef;                      
  49   1              TF0 = 0;
  50   1              while(CLK_PIN == 1)//等待CLK 的 1完成
  51   1              {
  52   2                      if(TF0 == 1)
  53   2                              {                               
  54   3                                      return;
  55   3                              }
C51 COMPILER V7.50   I2C_SLAVER                                                            03/02/2009 14:25:10 PAGE 2   

  56   2                              
  57   2              }
  58   1              
  59   1              TH0 =0xed;//18.432MHz晶体,16位方式3ms
  60   1              TL0 =0xef;                      
  61   1              TF0 = 0;
  62   1              while(CLK_PIN == 0)//等待CLK 的0完成
  63   1              {
  64   2                      if(TF0 == 1)
  65   2                              {                               
  66   3                                      return;
  67   3                              }
  68   2                              
  69   2              }       
  70   1      
  71   1              //读 BYTE1 的第2 位
  72   1              SDA_LEVEL = SDA_PIN;//读SDA数据
  73   1              if(SDA_LEVEL == 1)
  74   1                      {
  75   2                              SDA_DATA[var]  |= 0x01;
  76   2                              SDA_DATA[var] = SDA_DATA[var] << 1;
  77   2                      }
  78   1              else
  79   1                      {
  80   2                              SDA_DATA[var]  &= 0xfe;
  81   2                              SDA_DATA[var] = SDA_DATA[var] << 1;
  82   2                      }       
  83   1              
  84   1              TH0 =0xed;//18.432MHz晶体,16位方式3ms
  85   1              TL0 =0xef;                      
  86   1              TF0 = 0;
  87   1              while(CLK_PIN == 1)//等待CLK 的 1完成
  88   1              {
  89   2                      if(TF0 == 1)
  90   2                              {                               
  91   3                                      return;
  92   3                              }
  93   2                              
  94   2              }               
  95   1              TH0 =0xed;//18.432MHz晶体,16位方式3ms
  96   1              TL0 =0xef;                      
  97   1              TF0 = 0;
  98   1              while(CLK_PIN == 0)//等待CLK 的0完成
  99   1              {
 100   2                      if(TF0 == 1)
 101   2                              {                               
 102   3                                      return;
 103   3                              }
 104   2                              
 105   2              }
 106   1              
 107   1              //读 BYTE1 的第3 位
 108   1              SDA_LEVEL = SDA_PIN;//读SDA数据
 109   1              if(SDA_LEVEL == 1)
 110   1                      {
 111   2                              SDA_DATA[var]  |= 0x01;
 112   2                              SDA_DATA[var] = SDA_DATA[var] << 1;
 113   2                      }
 114   1              else
 115   1                      {
 116   2                              SDA_DATA[var]  &= 0xfe;
 117   2                              SDA_DATA[var] = SDA_DATA[var] << 1;
C51 COMPILER V7.50   I2C_SLAVER                                                            03/02/2009 14:25:10 PAGE 3   

 118   2                      }       
 119   1              TH0 =0xed;//18.432MHz晶体,16位方式3ms
 120   1              TL0 =0xef;                      
 121   1              TF0 = 0;
 122   1              while(CLK_PIN == 1)//等待CLK 的1完成
 123   1              {
 124   2                      if(TF0 == 1)
 125   2                              {                               
 126   3                                      return;
 127   3                              }
 128   2                              
 129   2              }       
 130   1              
 131   1              TH0 =0xed;//18.432MHz晶体,16位方式3ms
 132   1              TL0 =0xef;                      
 133   1              TF0 = 0;
 134   1              while(CLK_PIN == 0)//等待CLK 的0完成
 135   1              {
 136   2                      if(TF0 == 1)
 137   2                              {                               
 138   3                                      return;
 139   3                              }
 140   2                              
 141   2              }
 142   1              
 143   1              //读 BYTE1 的第4 位
 144   1              SDA_LEVEL = SDA_PIN;//读SDA数据
 145   1              if(SDA_LEVEL == 1)
 146   1                      {
 147   2                              SDA_DATA[var]  |= 0x01;
 148   2                              SDA_DATA[var] = SDA_DATA[var] << 1;
 149   2                      }
 150   1              else
 151   1                      {
 152   2                              SDA_DATA[var]  &= 0xfe;
 153   2                              SDA_DATA[var] = SDA_DATA[var] << 1;
 154   2                      }       
 155   1              
 156   1              TH0 =0xed;//18.432MHz晶体,16位方式3ms
 157   1              TL0 =0xef;                      
 158   1              TF0 = 0;
 159   1              while(CLK_PIN == 1)//等待CLK 的1完成
 160   1              {
 161   2                      if(TF0 == 1)
 162   2                              {
 163   3                                      
 164   3                                      return;
 165   3                              }
 166   2                              
 167   2              }
 168   1              
 169   1              TH0 =0xed;//18.432MHz晶体,16位方式3ms
 170   1              TL0 =0xef;                      
 171   1              TF0 = 0;
 172   1              while(CLK_PIN == 0)//等待CLK 的0完成
 173   1              {
 174   2                      if(TF0 == 1)
 175   2                              {                               
 176   3                                      return;
 177   3                              }
 178   2                              
 179   2              }
C51 COMPILER V7.50   I2C_SLAVER                                                            03/02/2009 14:25:10 PAGE 4   

 180   1              
 181   1              //读 BYTE1 的第5 位
 182   1              SDA_LEVEL = SDA_PIN;//读SDA数据
 183   1              if(SDA_LEVEL == 1)
 184   1                      {
 185   2                              SDA_DATA[var]  |= 0x01;
 186   2                              SDA_DATA[var] = SDA_DATA[var] << 1;
 187   2                      }
 188   1              else
 189   1                      {
 190   2                              SDA_DATA[var]  &= 0xfe;
 191   2                              SDA_DATA[var] = SDA_DATA[var] << 1;
 192   2                      }       
 193   1              
 194   1              TH0 =0xed;//18.432MHz晶体,16位方式3ms
 195   1              TL0 =0xef;                      
 196   1              TF0 = 0;
 197   1              while(CLK_PIN == 1)//等待CLK 的 1完成
 198   1              {
 199   2                      if(TF0 == 1)
 200   2                              {                               
 201   3                                      return;
 202   3                              }
 203   2                              
 204   2              }
 205   1              
 206   1              
 207   1              TH0 =0xed;//18.432MHz晶体,16位方式3ms
 208   1              TL0 =0xef;                      
 209   1              TF0 = 0;
 210   1              while(CLK_PIN == 0)//等待CLK 的0完成
 211   1              {
 212   2                      if(TF0 == 1)
 213   2                              {                               
 214   3                                      return;
 215   3                              }
 216   2                              
 217   2              }
 218   1              
 219   1              //读 BYTE1 的第6 位
 220   1              SDA_LEVEL = SDA_PIN;//读SDA数据
 221   1              if(SDA_LEVEL == 1)
 222   1                      {
 223   2                              SDA_DATA[var]  |= 0x01;
 224   2                              SDA_DATA[var] = SDA_DATA[var] << 1;
 225   2                      }
 226   1              else
 227   1                      {
 228   2                              SDA_DATA[var]  &= 0xfe;
 229   2                              SDA_DATA[var] = SDA_DATA[var] << 1;
 230   2                      }       
 231   1              TH0 =0xed;//18.432MHz晶体,16位方式3ms
 232   1              TL0 =0xef;                      
 233   1              TF0 = 0;
 234   1              while(CLK_PIN == 1)//等待CLK 的1完成
 235   1              {
 236   2                      if(TF0 == 1)
 237   2                              {                               
 238   3                                      return;
 239   3                              }
 240   2                              
 241   2              }       
C51 COMPILER V7.50   I2C_SLAVER                                                            03/02/2009 14:25:10 PAGE 5   

 242   1              
 243   1              TH0 =0xed;//18.432MHz晶体,16位方式3ms
 244   1              TL0 =0xef;                      
 245   1              TF0 = 0;
 246   1              while(CLK_PIN == 0)//等待CLK 的0完成
 247   1              {
 248   2                      if(TF0 == 1)
 249   2                              {                               
 250   3                                      return;
 251   3                              }                       
 252   2              }       
 253   1              
 254   1              //读 BYTE1 的第7 位
 255   1              SDA_LEVEL = SDA_PIN;//读SDA数据
 256   1              if(SDA_LEVEL == 1)
 257   1                      {
 258   2                              SDA_DATA[var]  |= 0x01;
 259   2                              SDA_DATA[var] = SDA_DATA[var] << 1;
 260   2                      }
 261   1              else
 262   1                      {
 263   2                              SDA_DATA[var]  &= 0xfe;
 264   2                              SDA_DATA[var] = SDA_DATA[var] << 1;
 265   2                      }       
 266   1              
 267   1              TH0 =0xed;//18.432MHz晶体,16位方式3ms
 268   1              TL0 =0xef;                      
 269   1              TF0 = 0;
 270   1              while(CLK_PIN == 1)//等待CLK 的 1完成
 271   1              {
 272   2                      if(TF0 == 1)
 273   2                              {                               
 274   3                                      return;
 275   3                              }
 276   2                              
 277   2              }       

⌨️ 快捷键说明

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