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

📄 fram.lst

📁 这是一个
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  FRAM                                                                   01/10/2005 07:10:30 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE FRAM
OBJECT MODULE PLACED IN D:\TEST\FRAM.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\TEST\FRAM.C DB SB OE

stmt level    source

   1          #include "P89C60X2.h"
   2          #include "hicj6.h"
   3          #include "fram.h"
   4          
   5          /* here is the instrution of x25045*/
   6          #define WREN 0x06
   7          #define WRDI 0x04
   8          #define RDSR 0x05
   9          #define WRSR 0x01
  10          #define READ 0x03
  11          #define WRITE 0x02
  12          extern union hdd_long {BYTE Hdd_B[4];unsigned long Hdd_L;} Hdd_Str;
  13          
  14          unsigned char Read8()
  15          {
  16   1        bit bData;
  17   1        BYTE cLoop;
  18   1        BYTE cData;
  19   1        for(cLoop=0;cLoop<8;cLoop++)
  20   1        {
  21   2         SK=1;
  22   2         SK=0;
  23   2         SIO=1;
  24   2         bData=SIO;
  25   2         cData<<=1;
  26   2         if(bData)
  27   2          {
  28   3           cData|=0x01;
  29   3           }
  30   2         }
  31   1         return cData;
  32   1       }
  33          
  34          void Write8(BYTE cData)
  35          {
  36   1        BYTE cLoop;
  37   1        for(cLoop=0;cLoop<8;cLoop++)
  38   1        {
  39   2         if((cData&0x80)==0)    SIO=0;
  40   2          else  SIO=1;
  41   2         SK=0;
  42   2         SK=1;
  43   2         cData<<=1;
  44   2         }
  45   1         SIO=1;
  46   1      }
  47          
  48          BYTE ReadSR()
  49          {
  50   1        BYTE cData;
  51   1        CS=0;
  52   1        Write8(RDSR);
  53   1        cData=Read8();
  54   1        CS=1;
  55   1        return cData;
C51 COMPILER V6.12  FRAM                                                                   01/10/2005 07:10:30 PAGE 2   

  56   1      }
  57           /*
  58          BYTE WriteSR(BYTE cData)
  59          {
  60            BYTE cTemp;
  61            cTemp=ReadSR();
  62            if((cTemp&0x01)==1)
  63            return 0;
  64            CS=0;
  65            Write8(WREN);
  66            CS=1;
  67            CS=0;
  68            Write8(WRSR);
  69            Write8(cData);
  70            CS=1;
  71            return 1;
  72          }
  73             */
  74          
  75          #ifdef Fm25040
              BYTE Read1B(WORD cAddress)
              /* 读入一个字节,cAddress为读入地址 */
              {
                BYTE cData,a;
                EA=0;
                while((ReadSR()&0x01)==1)
                {}
                CS=0;
                short_delay();
                if(cAddress<0x100)
                  {
                   a=READ;
                  }
                 else
                  {
                   a=READ|0x08;
                   }
                Write8(a);
                a=cAddress;
                Write8(a);
                cData=Read8();
                CS=1;
                EA=1;
                return cData;
              }
              
              void Write1B(BYTE cData,WORD cAddress)
              /* 写入一个字节,cData为写入的数,cAddress为写入地址 */
              {
                BYTE a;
                EA=0;
              while((ReadSR()&0x01)==1)
                {}
                CS=0;
                short_delay();
                Write8(WREN);
                SK=0;
                CS=1;
                CS=0;
                if(cAddress<0x100)
                {
                 a=WRITE;
C51 COMPILER V6.12  FRAM                                                                   01/10/2005 07:10:30 PAGE 3   

                }
                else
                {
                 a=WRITE|0x08;
                }
                Write8(a);
                a=cAddress;
                Write8(a);
                Write8(cData);
                SK=0;
                CS=1;
                EA=1;
              }
              #endif
 132          
 133          #ifdef Fm25640
 134          BYTE Read1B(WORD cAddress)
 135          /* 读入一个字节,cAddress为读入地址 */
 136          {
 137   1        BYTE cData,a;
 138   1        EA=0;
 139   1        while((ReadSR()&0x01)==1)
 140   1        {}
 141   1        CS=0;
 142   1        short_delay();
 143   1        Write8(READ);
 144   1        a=cAddress>>8;
 145   1        Write8(a);
 146   1        a=cAddress;
 147   1        Write8(a);
 148   1        cData=Read8();
 149   1        CS=1;
 150   1        EA=1;
 151   1        return cData;
 152   1      }
 153          
 154          void Write1B(BYTE cData,WORD cAddress)
 155          /* 写入一个字节,cData为写入的数,cAddress为写入地址 */
 156          {
 157   1        BYTE a;
 158   1        EA=0;
 159   1      while((ReadSR()&0x01)==1)
 160   1        {}
 161   1        CS=0;
 162   1        short_delay();
 163   1        Write8(WREN);
 164   1        SK=0;
 165   1        CS=1;
 166   1        CS=0;
 167   1      
 168   1        Write8(WRITE);
 169   1      
 170   1        a=cAddress>>8;
 171   1        Write8(a);
 172   1        a=cAddress;
 173   1        Write8(a);
 174   1        Write8(cData);
 175   1        SK=0;
 176   1        CS=1;
 177   1        EA=1;
 178   1      }
 179          
C51 COMPILER V6.12  FRAM                                                                   01/10/2005 07:10:30 PAGE 4   

⌨️ 快捷键说明

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