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

📄 at24c02.lst

📁 自动生升旗系统程序
💻 LST
字号:
C51 COMPILER V7.06   AT24C02                                                               05/29/2008 00:25:40 PAGE 1   


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

stmt level    source

   1          
   2          #include <AT89X52.H>
   3          
   4          //24c02驱动      
   5          sbit sclk_ = P1^4;  //定义时钟线
   6          sbit sdat_ = P1^5;  //定义数据线
   7          
   8          //sbit sclk_ = P1^1;  //定义时钟线
   9          //sbit sdat_ = P1^2;  //定义数据线
  10          
  11          // Start condition
  12          void ee_start(void)
  13          {
  14   1              sdat_ = 1;
  15   1              sclk_ = 1;
  16   1              sclk_ = 1;
  17   1              sdat_ = 0;
  18   1              sclk_ = 0;
  19   1      }
  20          // Stop condition
  21          void ee_stop(void)
  22          {
  23   1              sdat_ = 0;
  24   1              sclk_ = 1;
  25   1              sclk_ = 1;
  26   1              sdat_ = 1;
  27   1      }
  28          // Send byte to AT24C16.
  29          // SCL, SDA expected low on entry.
  30          // Return with SCL low and C=Ack.
  31          bit ee_bout(unsigned char outdat)
  32          {
  33   1              unsigned char i;
  34   1      
  35   1              for(i = 0; i < 8; i++) {
  36   2                      outdat <<= 1;
  37   2                      sdat_ = CY;
  38   2                      sclk_ = 1;                                              // ** latch bit
  39   2                      sclk_ = 1;
  40   2                      sclk_ = 0;
  41   2              }
  42   1      
  43   1              sdat_ = 1;                                                      // ** release sdat_ for ACK
  44   1              sclk_ = 1;
  45   1              sclk_ = 1;
  46   1              CY = sdat_;
  47   1              sclk_ = 0;
  48   1              return (CY);
  49   1      }
  50          // AT24C16 Byte Write Function.
  51          // Called with Address in addr, Data in outdat
  52          void ee_write(unsigned int addr, unsigned char outdat)
  53          {
  54   1              unsigned char i;
  55   1      
C51 COMPILER V7.06   AT24C02                                                               05/29/2008 00:25:40 PAGE 2   

  56   1              ee_start();
  57   1              i = (unsigned char)(addr/256);
  58   1              i &= 0x7;       
  59   1              i <<= 1;
  60   1              i |= 0xa0;
  61   1              ee_bout(i);
  62   1              ee_bout((unsigned char)(addr%256));
  63   1              ee_bout(outdat);
  64   1              ee_stop();
  65   1      
  66   1              while(1) {                                                      // ** wait for internal write cycle complete
  67   2                      ee_start();
  68   2                      if(!ee_bout(i)) break;
  69   2                 }
  70   1      }
  71          // AT24C16 Random Read Function.
  72          // Called with Byte Address in addr
  73          unsigned char ee_read(unsigned int addr)
  74          {
  75   1              unsigned char i, j;
  76   1      
  77   1              ee_start();
  78   1              i = (unsigned char)(addr/256);
  79   1              i &= 0x7;       
  80   1              i <<= 1;
  81   1              i |= 0xa0;
  82   1              ee_bout(i);
  83   1              ee_bout((unsigned char)(addr%256));
  84   1      
  85   1              i++;
  86   1              ee_start();
  87   1              ee_bout(i);
  88   1      
  89   1              sdat_ = 1;              // make SDA an input
  90   1              for(i = 0; i < 8; i++)
  91   1                      {
  92   2                              sclk_ = 1;
  93   2                              j <<= 1;
  94   2                              if(sdat_) j |= 0x1;
  95   2                              sclk_ = 0;
  96   2                      }
  97   1              ee_stop();
  98   1              return (j);
  99   1      }
 100          
 101          /*
 102          void main (void)
 103          {
 104                  ee_write(1,0xaa);       
 105          
 106                  P2 = ee_read(1) ; //    unsigned char ee_read(unsigned int addr)
 107                  
 108                  while (1);
 109          }
 110          */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    139    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V7.06   AT24C02                                                               05/29/2008 00:25:40 PAGE 3   

   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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