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

📄 fm25040.lst

📁 这是一个
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  FM25040                                                                01/03/2005 12:08:21 PAGE 1   


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

stmt level    source

   1          #include "P89C60X2.h"
   2          #include "hicj6.h"
   3          #include "fm25040.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 READ0 0x03
  11          #define READ1 0x0b
  12          #define WRITE0 0x02
  13          #define WRITE1 0x0a
  14          extern union hdd_long {BYTE Hdd_B[4];unsigned long Hdd_L;} Hdd_Str;
  15          
  16          unsigned char Read8()
  17          {
  18   1        bit bData;
  19   1        BYTE cLoop;
  20   1        BYTE cData;
  21   1        for(cLoop=0;cLoop<8;cLoop++)
  22   1        {
  23   2         SK=1;
  24   2         SK=0;
  25   2         SIO=1;
  26   2         bData=SIO;
  27   2         cData<<=1;
  28   2         if(bData)
  29   2          {
  30   3           cData|=0x01;
  31   3           }
  32   2         }
  33   1         return cData;
  34   1       }
  35          
  36          void Write8(BYTE cData)
  37          {
  38   1        BYTE cLoop;
  39   1        for(cLoop=0;cLoop<8;cLoop++)
  40   1        {
  41   2         if((cData&0x80)==0)    SIO=0;
  42   2          else  SIO=1;
  43   2         SK=0;
  44   2         SK=1;
  45   2         cData<<=1;
  46   2         }
  47   1         SIO=1;
  48   1      }
  49          
  50          BYTE ReadSR()
  51          {
  52   1        BYTE cData;
  53   1        CS=0;
  54   1        Write8(RDSR);
  55   1        cData=Read8();
C51 COMPILER V6.12  FM25040                                                                01/03/2005 12:08:21 PAGE 2   

  56   1        CS=1;
  57   1        return cData;
  58   1      }
  59           /*
  60          BYTE WriteSR(BYTE cData)
  61          {
  62            BYTE cTemp;
  63            cTemp=ReadSR();
  64            if((cTemp&0x01)==1)
  65            return 0;
  66            CS=0;
  67            Write8(WREN);
  68            CS=1;
  69            CS=0;
  70            Write8(WRSR);
  71            Write8(cData);
  72            CS=1;
  73            return 1;
  74          }
  75             */
  76          void Write1B(BYTE cData,BYTE cAddress,bit bRegion)
  77          /* 写入一个字节,cData为写入的数,cAddress为写入地址,bRegion为页 */
  78          {
  79   1        EA=0;
  80   1      while((ReadSR()&0x01)==1)
  81   1        {}
  82   1        CS=0;
  83   1        short_delay();
  84   1        Write8(WREN);
  85   1        SK=0;
  86   1        CS=1;
  87   1        CS=0;
  88   1        if(bRegion==0)
  89   1        {
  90   2        Write8(WRITE0);
  91   2        }
  92   1        else
  93   1        {
  94   2         Write8(WRITE1);
  95   2        }
  96   1        Write8(cAddress);
  97   1        Write8(cData);
  98   1        SK=0;
  99   1        CS=1;
 100   1        EA=1;
 101   1      }
 102          
 103          BYTE Read1B(BYTE cAddress,bit bRegion)
 104          /* 读入一个字节,cAddress为读入地址,bRegion为页 */
 105          {
 106   1        BYTE cData;
 107   1        EA=0;
 108   1        while((ReadSR()&0x01)==1)
 109   1        {}
 110   1        CS=0;
 111   1        short_delay();
 112   1        if(bRegion==0)
 113   1        {
 114   2         Write8(READ0);
 115   2         }
 116   1         else
 117   1          {
C51 COMPILER V6.12  FM25040                                                                01/03/2005 12:08:21 PAGE 3   

 118   2           Write8(READ1);
 119   2           }
 120   1        Write8(cAddress);
 121   1        cData=Read8();
 122   1        CS=1;
 123   1        EA=1;
 124   1        return cData;
 125   1      }
 126          
 127          unsigned long Read_Hdd(unsigned char i)
 128          {
 129   1       i<<=2;
 130   1       Hdd_Str.Hdd_B[0]=Read1B(i,0);
 131   1       Hdd_Str.Hdd_B[1]=Read1B(i+1,0);
 132   1       Hdd_Str.Hdd_B[2]=Read1B(i+2,0);
 133   1       Hdd_Str.Hdd_B[3]=Read1B(i+3,0);
 134   1       return Hdd_Str.Hdd_L;
 135   1       }
 136          void Write_Hdd(unsigned char i)
 137          {
 138   1       i<<=2;
 139   1       Write1B(Hdd_Str.Hdd_B[0],i,0);
 140   1       Write1B(Hdd_Str.Hdd_B[1],i+1,0);
 141   1       Write1B(Hdd_Str.Hdd_B[2],i+2,0);
 142   1       Write1B(Hdd_Str.Hdd_B[3],i+3,0);
 143   1       }
 144          
C51 COMPILER V6.12  FM25040                                                                01/03/2005 12:08:21 PAGE 4   

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


P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1

⌨️ 快捷键说明

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