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

📄 eeprom.lst

📁 SPWM三相波形发生器
💻 LST
字号:
C51 COMPILER V7.08   EEPROM                                                                12/25/2004 18:50:53 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE EEPROM
OBJECT MODULE PLACED IN EEPROM.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE EEPROM.C OPTIMIZE(SIZE) REGFILE(.\gprsnew.ORC) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <REG52.h>
   2          #include <absacc.h>
   3          
   4          #define         uchar unsigned char 
   5          #define         uint  unsigned int
   6          
   7          sfr WMCON   = 0x96;     /* Watchdog and Memory Control Register */
   8          #define eeprom_free() ((WMCON&0x02) == 0x02)
   9          
  10          //=================================
  11          //函数功能:对EEPROM进行写操作
  12          //入口参数:Address--目标的首地址,
  13          //                      source--源数据首地址,
  14          //                      Number--待写入的字节个数。
  15          //=================================
  16          void WriteUserBlock(uint Address,uchar idata *source,uchar Number)
  17          {
  18   1              uchar i = 0;
  19   1              if (Number == 0)        return;
  20   1              EA = 0;
  21   1              while(*source)
  22   1              {
  23   2                      if(i>=(Number-1)) break;        
  24   2                 WMCON |= 0x18;                       //Enable write data to eeprom
  25   2                      XBYTE[Address + i] = *source;
  26   2                      i ++;
  27   2                      source ++;
  28   2                      while (!eeprom_free());
  29   2                      WMCON &=~ 0x18;                 //Disable access data from eeprom
  30   2              }
  31   1              WMCON |= 0x18;                  //Enable write data to eeprom
  32   1              XBYTE[Address + i] = 0;
  33   1              while (!eeprom_free());
  34   1              WMCON &=~ 0x18;                 //Disable access data from eeprom
  35   1              EA = 1;
  36   1      }
  37          
  38          //=================================
  39          //函数功能:对EEPROM进行读操作,从Address开始,读Number个字节。
  40          //入口参数:input--目标的首地址,
  41          //                      Address--EEPROM中源数据首地址,
  42          //                      Number--待写入的字节个数。
  43          //=================================
  44          void ReadUserBlock(uchar idata *input,uint Address,uchar Number)
  45          {
  46   1              uchar i = 0;
  47   1              uchar tempchar;
  48   1              if (Number == 0)        return;
  49   1              EA = 0;
  50   1              WMCON |= 0x08;                  //Enable access data to eeprom
  51   1              while(1)
  52   1              {
  53   2                      tempchar = XBYTE[Address +i];   
  54   2                      if(tempchar)
  55   2                      {
C51 COMPILER V7.08   EEPROM                                                                12/25/2004 18:50:53 PAGE 2   

  56   3                              if(i >=(Number-1)) break;
  57   3                              *input = tempchar;
  58   3                              input ++;
  59   3                              i ++;
  60   3                      }
  61   2                      else break;
  62   2              }
  63   1              WMCON &=~ 0x08;                 //Disable access data to eeprom
  64   1              *input = 0;
  65   1              EA = 1;
  66   1      }


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