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

📄 24c02.lst

📁 在STC51上开发的一个电子称程序 KEILUV3环境开发
💻 LST
字号:
C51 COMPILER V8.02   24C02                                                                 03/19/2008 13:58:34 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 24C02
OBJECT MODULE PLACED IN 24c02.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 24c02.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "hardware.h"
   2          #include "iic.h"
*** WARNING C318 IN LINE 2 OF 24c02.c: can't open file 'iic.h'
   3          
   4          /***************************************************************************/
   5          #define WriteDeviceAddress 0xa0
   6          #define ReadDviceAddress 0xa1
   7          
   8          /***************************************************************************/
   9          void DelayMs(unsigned int number)
  10          {
  11   1              unsigned char temp;
  12   1              for(;number!=0;number--) 
  13   1              {
  14   2               for(temp=112;temp!=0;temp--); 
  15   2              }
  16   1      }
  17          
  18          /***************************************************************************/
  19          void Start() 
  20          {
  21   1              I2CSDA=1;
  22   1              I2CSCL=1;
  23   1              I2CSDA=0;
  24   1              I2CSCL=0;
  25   1      }
  26          
  27          /***************************************************************************/
  28          void Stop()
  29           {
  30   1              I2CSCL=0;
  31   1              I2CSDA=0;
  32   1              I2CSCL=1;
  33   1              I2CSDA=1;
  34   1      }
  35          
  36          /***************************************************************************/
  37          void Ack() 
  38          {
  39   1              I2CSDA=0;
  40   1              I2CSCL=1;
  41   1              I2CSCL=0;
  42   1              I2CSDA=1;
  43   1      }
  44          
  45          /***************************************************************************/
  46          void NoAck()
  47           {
  48   1              I2CSDA=1;
  49   1              I2CSCL=1;
  50   1              I2CSCL=0;
  51   1      }
  52          
  53          /***************************************************************************/
  54          bit TestAck()
C51 COMPILER V8.02   24C02                                                                 03/19/2008 13:58:34 PAGE 2   

  55           {
  56   1              bit ErrorBit;
  57   1              I2CSDA=1;
  58   1              I2CSCL=1;
  59   1              ErrorBit=I2CSDA;
  60   1              I2CSCL=0;
  61   1              return(ErrorBit);
  62   1      }
  63          
  64          /***************************************************************************/
  65          void Write8Bit(unsigned char input) 
  66          {
  67   1              unsigned char temp;
  68   1              for(temp=8;temp!=0;temp--) 
  69   1          {
  70   2                      I2CSDA=(bit)(input&0x80);
  71   2                      I2CSCL=1;
  72   2                      I2CSCL=0;
  73   2                      input=input<<1;
  74   2              }
  75   1      }
  76          
  77          
  78          /**************************写入数据的指针,地址,写入数据的数量****************************************/
  79          void Write24c02(unsigned char *Wdata,unsigned char RomAddress,unsigned char number) 
  80          {
  81   1              Start();
  82   1              Write8Bit(WriteDeviceAddress);
  83   1              TestAck();
  84   1              Write8Bit(RomAddress);
  85   1              TestAck();
  86   1              for(;number!=0;number--) 
  87   1         {
  88   2                      Write8Bit(*Wdata);
  89   2                      TestAck();
  90   2                      Wdata++;
  91   2              }
  92   1              Stop();
  93   1              DelayMs(10);
  94   1      }
  95          
  96          /***************************************************************************/
  97          unsigned char Read8Bit() 
  98          {
  99   1              unsigned char temp,rbyte=0;
 100   1              for(temp=8;temp!=0;temp--) 
 101   1          {
 102   2                      I2CSCL=1;
 103   2                      rbyte=rbyte<<1;
 104   2                      rbyte=rbyte|((unsigned char)(I2CSDA));
 105   2                      I2CSCL=0;
 106   2              }
 107   1              return(rbyte);
 108   1      }
 109          
 110          /**************************读出数据的指针,地址,读出数据的数量********************************/
 111          void Read24c02(unsigned char *RamAddress,unsigned char RomAddress,unsigned char bytes) 
 112          {
 113   1          Start();
 114   1              Write8Bit(WriteDeviceAddress);
 115   1              TestAck();
 116   1              Write8Bit(RomAddress);
C51 COMPILER V8.02   24C02                                                                 03/19/2008 13:58:34 PAGE 3   

 117   1              TestAck();
 118   1              Start();
 119   1              Write8Bit(ReadDviceAddress);
 120   1              TestAck();
 121   1              while(bytes!=1)
 122   1          {
 123   2               *RamAddress=Read8Bit();
 124   2               Ack();
 125   2               RamAddress++;
 126   2               bytes--;
 127   2              }
 128   1              *RamAddress=Read8Bit();
 129   1              NoAck();
 130   1              Stop();
 131   1      }
 132          
 133          
 134          


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


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

⌨️ 快捷键说明

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