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

📄 24lc02.lst

📁 C8051F120 _AD开发过程中的一些代码和文档
💻 LST
字号:
C51 COMPILER V7.06   24LC02                                                                01/02/2000 11:14:26 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 24LC02
OBJECT MODULE PLACED IN 24LC02.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 24LC02.c LARGE OPTIMIZE(0,SPEED) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "24LC02.h"
   2          #include "C8051f.h"
   3          
   4          #define WriteDeviceAddress   0xa2
   5          #define ReadDviceAddress     0xa3
   6          
   7          sbit E2P_SCL = P2^3;
   8          sbit E2P_SDA = P2^2;
   9          sbit E2P_DOG = P3^7;
  10          
  11          static void AT02DelayMs(unsigned int number) 
  12          {
  13   1              unsigned char temp;
  14   1              for( ; number != 0; number--,E2P_DOG =! E2P_DOG)
  15   1              {
  16   2                      for(temp = 112; temp != 0; temp--)
  17   2                      {
  18   3                      }
  19   2              }
  20   1      }
  21          
  22          
  23          static void AT02Start()
  24          {
  25   1              E2P_SDA = 1;
  26   1              E2P_SCL = 1;
  27   1              E2P_SDA = 0;
  28   1              E2P_SCL = 0;
  29   1      }
  30          
  31          /***************************************************************************/
  32          static void AT02Stop()
  33          {
  34   1              E2P_SCL = 0;
  35   1              E2P_SDA = 0;
  36   1              E2P_SCL = 1;
  37   1              E2P_SDA = 1;
  38   1      }
  39          
  40          /***************************************************************************/
  41          static void AT02Ack()
  42          {
  43   1              E2P_SDA = 0;
  44   1              E2P_SCL = 1;
  45   1              E2P_SCL = 0;
  46   1              E2P_SDA = 1;
  47   1      }
  48          
  49          /***************************************************************************/
  50          static void AT02NoAck()
  51          {
  52   1              E2P_SDA = 1;
  53   1              E2P_SCL = 1;
  54   1              E2P_SCL = 0;
  55   1      }
C51 COMPILER V7.06   24LC02                                                                01/02/2000 11:14:26 PAGE 2   

  56          
  57          /***************************************************************************/
  58          static bit AT02TestAck()
  59          {
  60   1              bit ErrorBit;
  61   1      
  62   1              E2P_SDA = 1;
  63   1              E2P_SCL = 1;
  64   1              ErrorBit = E2P_SDA;
  65   1              E2P_SCL = 0;
  66   1              return(ErrorBit);
  67   1      }
  68          
  69          /***************************************************************************/
  70          static void AT02Write8Bit(unsigned char input)
  71          {
  72   1              unsigned char temp;
  73   1      
  74   1              for(temp=8;temp!=0;temp--)
  75   1              {
  76   2                      E2P_SDA = (bit)(input&0x80);
  77   2                      E2P_SCL = 1;
  78   2                      E2P_SCL = 0;
  79   2                      input = input<<1;
  80   2              }
  81   1      }
  82          
  83          static unsigned char AT02Read8Bit()
  84          {
  85   1              unsigned char temp;
  86   1              unsigned char rbyte = 0;
  87   1      
  88   1              for(temp = 8; temp != 0; temp--)
  89   1              {
  90   2                      E2P_SCL = 1;
  91   2                      rbyte = rbyte << 1;
  92   2                      rbyte = rbyte|((unsigned char)(E2P_SDA));
  93   2                      E2P_SCL = 0;
  94   2              }
  95   1              return(rbyte);
  96   1      }
  97          
  98          static void Write24c02(unsigned char *Wdata,unsigned char RomAddress,unsigned char number)
  99          {
 100   1              AT02Start();
 101   1              AT02Write8Bit(WriteDeviceAddress);
 102   1              AT02TestAck();
 103   1              AT02Write8Bit(RomAddress);
 104   1              AT02TestAck();
 105   1              for( ; number != 0; number--)
 106   1              {
 107   2                      AT02Write8Bit(*Wdata);
 108   2                      AT02TestAck();
 109   2                      Wdata++;
 110   2              }
 111   1              AT02Stop();
 112   1              AT02DelayMs(10);
 113   1      }
 114          
 115          static void Read24c02(unsigned char *RamAddress,unsigned char RomAddress,unsigned char bytes)
 116          {
 117   1              AT02Start();
C51 COMPILER V7.06   24LC02                                                                01/02/2000 11:14:26 PAGE 3   

 118   1              AT02Write8Bit(WriteDeviceAddress);
 119   1              AT02TestAck();
 120   1              AT02Write8Bit(RomAddress);
 121   1              AT02TestAck();
 122   1              AT02Start();
 123   1              AT02Write8Bit(ReadDviceAddress);
 124   1              AT02TestAck();
 125   1              while(bytes != 1)
 126   1              {
 127   2                      *RamAddress = AT02Read8Bit();
 128   2                      AT02Ack();
 129   2                      RamAddress++;
 130   2                      bytes--;
 131   2              }
 132   1              *RamAddress = AT02Read8Bit();
 133   1              AT02NoAck();
 134   1              AT02Stop();
 135   1      }
 136          
 137          void E2PWrite02(unsigned char Addr,unsigned char Val)
 138          {
 139   1              Write24c02(&Val,Addr,1);
 140   1      }
 141          
 142          unsigned char E2PRead02(unsigned char Addr)
 143          {
 144   1              unsigned char Temp;
 145   1              Read24c02(&Temp,Addr,1);
 146   1              return(Temp);
 147   1      }


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


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

⌨️ 快捷键说明

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