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

📄 tx.lst

📁 keil uvision 写24c02
💻 LST
字号:
C51 COMPILER V6.23a  TX                                                                    12/03/2003 13:59:02 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE TX
OBJECT MODULE PLACED IN tx.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE tx.c ROM(SMALL) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*
   2          *  Copyright (c) 2000, By hao taizhong
   3          *
   4          *  $Workfile:   AT24CXX.c  $
   5          *  $Revision:   3.2  $
   6          *  $Modtime:   2000-8-6  $
   7          *
   8          *  Purpose:
   9          *
  10          *  Compiler: Franklin_C 3.96 Compiler      
  11          *  Ext Packages:   
  12          *
  13          */
  14          
  15          #include"mcu-define.h"
*** ERROR C318 IN LINE 15 OF tx.c: can't open file 'mcu-define.h'
  16          #include"macro.h"
*** ERROR C318 IN LINE 16 OF tx.c: can't open file 'macro.h'
  17          #include "at24cxxa.h"
*** ERROR C318 IN LINE 17 OF tx.c: can't open file 'at24cxxa.h'
  18          #include"max813l.h"
*** ERROR C318 IN LINE 18 OF tx.c: can't open file 'max813l.h'
  19          
  20          #define AT24C512  1
  21          //#define AT24C256  1
  22          //#define AT24C128  1
  23          //#define AT24C64   1
  24          //#define AT24C32   1
  25          
  26          #ifdef AT24C512
  27          #define SIZEPERCHIP 0x10000
  28          #endif
  29          
  30          #ifdef AT24C256
              #define SIZEPERCHIP 0x8000
              #endif
  33          
  34          #ifdef AT24C128
              #define SIZEPERCHIP 0x4000
              #endif
  37          #ifdef AT24C64
              #define SIZEPERCHIP 0x2000
              #endif
  40          
  41          #ifdef AT24C32
              #define SIZEPERCHIP 0x1000
              #endif
  44          
  45          static code BYTE CHIP_READ_ID = 1;
*** ERROR C129 IN LINE 45 OF TX.C: missing ';' before 'CHIP_READ_ID'
  46          static code BYTE CHIP_WRITE_ID= 0;
  47          static code BYTE CONTROL_CODE =0xa0;
  48          
  49          static BYTE     A_AT24XXShIn(void) ;
  50          static void A_AT24XXShOut(BYTE  ch);
C51 COMPILER V6.23a  TX                                                                    12/03/2003 13:59:02 PAGE 2   

  51          static void    A_AT24XXStart( void );
  52          static void    A_AT24XXStop(void)  ;
  53          static BYTE     A_AT24XXCurRead(BYTE chipid);
  54          static void  A_AT24XXWait(BYTE chipid) ;
  55          static void   A_AT24XXBitIn(void) ;
  56          
  57          
  58          sbit A_SCL=P2^1;
  59          sbit A_SDA=P2^0;
  60          
  61          static bdata BYTE A_i2data;
  62          sbit A_i2b0=A_i2data^0;
  63          sbit A_i2b7=A_i2data^7;
  64          
  65          static void A_AT24XXStart(void)
  66          {
  67          A_SDA=1;
  68          A_SCL=0;
  69          A_SCL=1;
  70          A_SDA=0;
  71          A_SCL=0;
  72          
  73          }
  74          
  75          static void A_AT24XXStop(void) 
  76          {
  77          A_SDA=0;
  78          A_SCL=1;
  79          A_SDA=1;
  80          
  81          }
  82          static void A_AT24XXShOut(BYTE  ch) {
  83                BYTE i;
  84                A_i2data=ch;
  85                for (i=0;i<8;i++){
  86                          A_SDA=A_i2b7;
  87                          A_SCL=1; 
  88                          A_SCL=0;
  89                          A_i2data<<=1;
  90                }
  91          }
  92          
  93          static BYTE  A_AT24XXCurRead(BYTE chipid)  
  94          {
  95          BYTE ret;
  96          
  97          A_AT24XXStart();
  98          A_AT24XXShOut(CONTROL_CODE | chipid | CHIP_READ_ID);//0xa1
  99          A_AT24XXBitIn();
 100          ret=A_AT24XXShIn();
 101              A_AT24XXBitIn();
 102          return ret;
 103          }
 104          
 105          
 106          BYTE A_AT24XXReadRandByte(DWORD addr)  
 107          {
 108          BYTE ret;
 109          BYTE chipid;
 110          WORD subaddr;
 111          
 112          subaddr =addr &(SIZEPERCHIP-1);
C51 COMPILER V6.23a  TX                                                                    12/03/2003 13:59:02 PAGE 3   

 113          
 114          chipid=addr/SIZEPERCHIP;
 115          chipid <<=1;
 116          
 117              A_AT24XXStart() ;       // write start 
 118          
 119              A_AT24XXShOut(CONTROL_CODE | chipid | CHIP_WRITE_ID);//AT24xx device chip 
 120          address and write mark 
 121              A_AT24XXWait(chipid);
 122              A_AT24XXBitIn();
 123              A_AT24XXShOut(HIBYTE(subaddr));
 124              A_AT24XXBitIn();
 125              A_AT24XXShOut(LOBYTE(subaddr));
 126              A_AT24XXBitIn();
 127              ret = A_AT24XXCurRead(chipid);
 128              A_AT24XXStop();      // read stop 
 129          return ret;
 130          }
 131          
 132          
 133          void A_AT24XXWriteByte(DWORD addr,BYTE dat) 
 134          {
 135          BYTE chipid;
 136          WORD subaddr;
 137          
 138          subaddr =addr &(SIZEPERCHIP-1);
 139          
 140          chipid=addr/SIZEPERCHIP;
 141          
 142          chipid<<=1;
 143          
 144          A_AT24XXStart();    
 145          A_AT24XXShOut(CONTROL_CODE | chipid | CHIP_WRITE_ID);  
 146          A_AT24XXWait(chipid);
 147          A_AT24XXBitIn();
 148          A_AT24XXShOut(HIBYTE(subaddr));
 149          A_AT24XXBitIn();
 150          A_AT24XXShOut(LOBYTE(subaddr));
 151          A_AT24XXBitIn();
 152          A_AT24XXShOut(dat);
 153          A_AT24XXBitIn();
 154          A_AT24XXStop();      //  stop 
 155          }
 156          
 157          
 158          static BYTE   A_AT24XXShIn(void) 
 159          {
 160          register BYTE  i;
 161                  A_i2data=0;
 162                  for (i=0;i<8;i++) {
 163                          A_i2data <<=1;
 164                          A_SDA=1;
 165                          A_i2b0=A_SDA;
 166                          A_SCL = 1 ;
 167                          A_SCL=0;   
 168                  }
 169          return A_i2data;
 170          }
 171          
 172          /*
 173          WORD  A_AT24XXReadRandWord(DWORD  addr)
 174          {
C51 COMPILER V6.23a  TX                                                                    12/03/2003 13:59:02 PAGE 4   

 175                  register WORD ret;
 176                  ret=A_AT24XXReadRandByte(addr);
 177                  ret<<=8;
 178                  addr++;
 179                  ret+=A_AT24XXReadRandByte(addr);
 180          
 181          return ret;
 182          }
 183          */
 184          /*
 185          void A_AT24XXWriteWord(DWORD addr,WORD dat)
 186          {   
 187              BYTE dl,dh;
 188              dl = dat;
 189              dh = dat>>8;
 190              A_AT24XXWriteByte(addr, dh);
 191              addr++;
 192              A_AT24XXWriteByte(addr,dl);
 193          }
 194          */
 195          static void A_AT24XXWait(BYTE chipid)
 196          { BYTE i;
 197              for(i=5;;i++) {
 198                      A_SDA=1;
 199          clr_WDT();
 200          if(i==0) return;
 201                      if(A_SDA) {
 202                         A_AT24XXStart();
 203                         A_AT24XXShOut(CONTROL_CODE | chipid | CHIP_WRITE_ID);
 204                      }
 205                      else return;
 206              }
 207          }
 208          static void  A_AT24XXBitIn(void) {
 209                  A_SDA=1;
 210                  A_i2b0=A_SDA;        
 211                  A_SCL=1;
 212                  A_SCL=0;
 213          }
 214          
 215          /*end of AT24Cxx utilities */ 
 216          

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

⌨️ 快捷键说明

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