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

📄 at24c01.lst

📁 使用at89s52单片机
💻 LST
字号:
C51 COMPILER V7.00  AT24C01                                                                10/17/2008 18:29:52 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE AT24C01
OBJECT MODULE PLACED IN G:\MFRC500\AT24C01\AT24C01.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE G:\MFRC500\AT24C01\AT24C01.C DB SB OE

stmt level    source

   1          //=======================================================
   2          //24C01存储器I2C总线接口程序(C语言版本)
   3          //=======================================================
   4          #include "AT24C01.h"
   5          
   6          
   7          
   8          //=======================================================
   9          //i2c_write(地址,数据),写一个字节
  10          //=======================================================
  11          unsigned char i2c_write(unsigned char Address,unsigned char Data)
  12          {
  13   1          i2c_start();
  14   1          i2c_send8bit(0xA0);
  15   1          if (i2c_ack()) return 1;
  16   1      
  17   1              i2c_send8bit(Address);
  18   1          i2c_ack();
  19   1      
  20   1          i2c_send8bit(Data);
  21   1          i2c_ack();
  22   1      
  23   1          i2c_stop();
  24   1          _nop_();_nop_();_nop_();_nop_();_nop_();
  25   1          return 0;
  26   1      }
  27          //=======================================================
  28          //i2c_read(地址,数据),写一个字节
  29          //=======================================================
  30          unsigned char i2c_read(unsigned char Address)
  31          {
  32   1          unsigned char c;
  33   1      
  34   1              i2c_start();
  35   1              i2c_send8bit(0xA0);
  36   1          if (i2c_ack()) return 1;               //=1,表示无确认,再次发送
  37   1      
  38   1              i2c_send8bit(Address);
  39   1          i2c_ack();
  40   1      
  41   1          i2c_start();
  42   1          i2c_send8bit(0xA1);
  43   1          if (i2c_ack()) return 1;
  44   1      
  45   1          c=i2c_receive8bit();
  46   1          i2c_ack();
  47   1      
  48   1          i2c_stop();
  49   1              _nop_();_nop_();_nop_();_nop_();_nop_();
  50   1          return(c);
  51   1      }
  52          //=======================================================
  53          //发送开始信号
  54          //=======================================================
  55          void i2c_start(void)
C51 COMPILER V7.00  AT24C01                                                                10/17/2008 18:29:52 PAGE 2   

  56          {
  57   1              SDA = 1;
  58   1          SCL = 1;
  59   1          _nop_();_nop_();_nop_();_nop_();_nop_();
  60   1      
  61   1          SDA = 0;
  62   1          SCL = 0;
  63   1          _nop_();_nop_();_nop_();_nop_();_nop_();
  64   1      
  65   1          return;
  66   1      }
  67          //========================================================
  68          //发送结束信号
  69          //========================================================
  70          void i2c_stop(void)
  71          {
  72   1          SDA = 0;
  73   1          SCL = 1;
  74   1          _nop_();_nop_();_nop_();_nop_();_nop_();
  75   1      
  76   1          SDA = 1;
  77   1              _nop_();_nop_();_nop_();_nop_();_nop_();
  78   1          return;
  79   1      }
  80          //========================================================
  81          //发送接收确认信号
  82          //========================================================
  83          bit i2c_ack(void)
  84          {
  85   1          bit    ack;
  86   1      
  87   1          SDA = 1;
  88   1          SCL = 1;
  89   1          if (SDA==1)
  90   1             ack = 1;
  91   1          else
  92   1             ack = 0;
  93   1      
  94   1          SCL = 0;
  95   1          return(ack);
  96   1      }
  97          //=========================================================
  98          //送八位数据
  99          //=========================================================
 100          void i2c_send8bit(unsigned char b)
 101          {
 102   1              unsigned  char a;
 103   1              SCL = 0;
 104   1              _nop_();_nop_();_nop_();_nop_();_nop_();
 105   1      
 106   1              for(a=0;a<8;a++)
 107   1              {
 108   2                      SDA = (bit)(b&0x80);
 109   2                      b<<=1;
 110   2                      _nop_();_nop_();_nop_();_nop_();_nop_();
 111   2      
 112   2                      SCL = 1;
 113   2                      _nop_();_nop_();_nop_();_nop_();_nop_();
 114   2                      SCL = 0;
 115   2              }
 116   1              _nop_();_nop_();_nop_();_nop_();_nop_();
 117   1      
C51 COMPILER V7.00  AT24C01                                                                10/17/2008 18:29:52 PAGE 3   

 118   1              return;
 119   1      }
 120          //=========================================================
 121          //接收八位数据
 122          //=========================================================
 123          unsigned char i2c_receive8bit(void)
 124          {
 125   1              unsigned char a;
 126   1              unsigned char b=0;
 127   1      
 128   1              for(a=0;a<8;a++)
 129   1              {
 130   2                      SCL = 1;
 131   2                      b=b<<1;
 132   2                      if (SDA==1)
 133   2                              b=b|0x01;       //按位或
 134   2                      SCL = 0;
 135   2              }
 136   1          _nop_();_nop_();_nop_();_nop_();_nop_();
 137   1        return (b);
 138   1      }
C51 COMPILER V7.00  AT24C01                                                                10/17/2008 18:29:52 PAGE 4   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
T2 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
i2c_ack. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ack. . . . . . . . . . . . . . . . .  AUTO     DATA   BIT      0000H  1
i2c_start. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
EXF2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CEH  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
T2EX . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
i2c_stop . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
C_T2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C9H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
RCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CDH  1
TCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CCH  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
i2c_receive8bit. . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  a. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  b. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
CP_RL2 . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C8H  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
ET2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ADH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
TF2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CFH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
PT2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BDH  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
C51 COMPILER V7.00  AT24C01                                                                10/17/2008 18:29:52 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
SDA. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
TR2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CAH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
_i2c_read. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  Address. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  c. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
SCL. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
EXEN2. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CBH  1
_i2c_send8bit. . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  b. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  a. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
_i2c_write . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  Address. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  Data . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    230    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   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 + -