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

📄 i2c.lst

📁 x9852的应用工程
💻 LST
字号:
C51 COMPILER V7.06   I2C                                                                   09/06/2007 17:33:49 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE I2C
OBJECT MODULE PLACED IN i2c.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE i2c.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <i2c.h>
   2          void Delay(unsigned char i)
   3          {
   4   1              while(i>0)
   5   1              i--;    
   6   1      }
   7          void Start()
   8          {
   9   1              SDA=1;
  10   1              SCL=1;
  11   1              Delay(TIME);
  12   1              SDA=0;
  13   1              Delay(TIME);
  14   1              SCL=0;
  15   1              Delay(TIME);
  16   1      }
  17          void Stop()
  18          {
  19   1              SDA=0;
  20   1              SCL=1;
  21   1              Delay(TIME);
  22   1              SDA=1;
  23   1              Delay(TIME);
  24   1              SCL=0;
  25   1              Delay(TIME);
  26   1      }
  27          void Sent1()
  28          {
  29   1              SDA=1;
  30   1              SCL=1;
  31   1              Delay(TIME);
  32   1              SCL=0;
  33   1              Delay(TIME);
  34   1      }
  35          void Sent0()
  36          {
  37   1              SDA=0;
  38   1              SCL=1;
  39   1              Delay(TIME);
  40   1              SCL=0;
  41   1              Delay(TIME);
  42   1      }
  43          bit ACK_chack()
  44          {
  45   1              bit F0;
  46   1              SDA=1;
  47   1              SCL=1;
  48   1              Delay(TIME/2);
  49   1              F0=SDA;
  50   1              Delay(TIME/2);
  51   1              SCL=0;
  52   1              Delay(TIME);
  53   1              if(F0==0) return 1;
  54   1              else return 0;
  55   1      }
C51 COMPILER V7.06   I2C                                                                   09/06/2007 17:33:49 PAGE 2   

  56          void Write_c(unsigned char sent)
  57          {
  58   1              unsigned char i; 
  59   1          for(i=0;i<8;i++) 
  60   1            if((sent<<i)&0x80) 
  61   1               Sent1(); 
  62   1            else 
  63   1               Sent0(); 
  64   1      }
  65          bit Write_nc(unsigned char  *buffer,unsigned char n)
  66          {  
  67   1              unsigned char i; 
  68   1              Start(); 
  69   1              for(i=0;i<n;i++) 
  70   1              { 
  71   2                  Write_c(*buffer); 
  72   2                  if(!ACK_chack()) 
  73   2                      { 
  74   3                          Stop(); 
  75   3                          return 0; 
  76   3                      } 
  77   2                              buffer=buffer+1;
  78   2              } 
  79   1              Stop(); 
  80   1              return 1; 
  81   1      } 
  82          unsigned char Read_c()
  83          {
  84   1              unsigned char b=0,i;
  85   1              bit F0;
  86   1              for(i=0;i<8;i++)
  87   1              {
  88   2                      SDA=1;
  89   2                      SCL=1;
  90   2                      Delay(TIME/2);
  91   2                      F0=SDA;
  92   2                      Delay(TIME/2);
  93   2                      SCL=0;
  94   2                      if(F0==1)
  95   2                      {
  96   3                              b=b<<1;
  97   3                              b=b|0x01;
  98   3                      }       
  99   2                      else b=b<<1;                    
 100   2              }
 101   1              return b;
 102   1      }
 103          bit Read_nc(unsigned char SlaveAdr,unsigned char n,unsigned char *buffer)
 104          {
 105   1              unsigned char i;
 106   1              Start();
 107   1              Write_c(SlaveAdr);
 108   1              if(!ACK_chack())
 109   1                      return 0;
 110   1              for(i=0;i<n;i++) 
 111   1          { 
 112   2                      *buffer=Read_c(); 
 113   2              if(i!=n) 
 114   2                              Sent0();    //发送应答 
 115   2              else 
 116   2                               Sent1();    //发送非应答 
 117   2                      buffer=buffer+1;
C51 COMPILER V7.06   I2C                                                                   09/06/2007 17:33:49 PAGE 3   

 118   2           } 
 119   1               Stop(); 
 120   1               return 1; 
 121   1      }


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


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

⌨️ 快捷键说明

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