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

📄 eeprom.lst

📁 nokia5110智能电子钟的设计ds1302+ds18b20+stc12c5a60s2
💻 LST
字号:
C51 COMPILER V9.00   EEPROM                                                                07/01/2013 12:13:31 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE EEPROM
OBJECT MODULE PLACED IN ..\output\EEPROM.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE ..\c_file\EEPROM.C BROWSE INCDIR(..\c_file;..\h_file;..\output;..\project) 
                    -DEBUG OBJECTEXTEND PRINT(.\EEPROM.lst) OBJECT(..\output\EEPROM.obj)

line level    source

   1          #include <intrins.h>
   2          # include "stc12c5a60s2.h"
   3           #define  uchar unsigned char    
   4           #define  uint  unsigned int 
   5          ////以下是ISP/IAP操作时间宏定义选项
   6          //#define  EN_IAP        0x80             //系统时钟 ≤ 30MHz//
   7          //#define  EN_IAP        0x81             //系统时钟 ≤ 24MHz//
   8          //#define  EN_IAP        0x82             //系统时钟 ≤ 20MHz  
   9            #define  EN_IAP        0x83             //系统时钟 ≤ 12MHz//
  10          //#define  EN_IAP        0x84             //系统时钟 ≤ 6MHz//
  11          //#define  EN_IAP        0x85             //系统时钟 ≤ 3MHz//
  12          //#define  EN_IAP        0x86             //系统时钟 ≤ 2MHz//
  13          //#define  EN_IAP        0x87             //系统时钟 ≤ 1MHz
  14          /****************【供用户调用的3个函数】****************/ 
  15          uchar R_EROM(uchar n,uint x);                     //读第n扇区,第x字节的数据 
  16          void  W_EROM(uchar n,uint x,uchar dat);  //向第n扇区,第x字节写入数据dat 
  17          void  C_EROM(uchar n);                                    //擦除第n扇区
  18          /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函数:禁止IAP操作,清IAP相关寄存器┈┈┈┈┈
             -┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/ 
  19          void Q0()
  20          {      
  21   1              IAP_CONTR = 0;          
  22   1              IAP_CMD   = 0;                
  23   1              IAP_TRIG  = 0;                         
  24   1              IAP_ADDRH = 0x80;              
  25   1              IAP_ADDRL = 0;              
  26   1      }
  27          /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函数:读一字节入口:第n扇区,第x字节 出口:d
             -at┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
  28          uchar R_EROM(uchar n,uint x)
  29          {      
  30   1              uchar dat;        
  31   1              uint  addr;       
  32   1              addr =(n-1)*0x0200 + x-1;                              
  33   1              IAP_CONTR = EN_IAP;        
  34   1              IAP_CMD   = 1;                //允许读取EEPROM      
  35   1              IAP_ADDRL = addr;                      
  36   1              IAP_ADDRH = addr >> 8;           
  37   1              IAP_TRIG  = 0x5a;                      
  38   1              IAP_TRIG  = 0xa5;                        
  39   1              _nop_();                                         
  40   1              dat = IAP_DATA;                  
  41   1              Q0();                                   
  42   1              return dat;                        
  43   1      }
  44          /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函数:写一字节入口:第n扇区,第x字节,待写入
             -数据dat┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
  45          void W_EROM(uchar n,uint x,uchar dat)
  46          {         
  47   1              uint  addr;       
  48   1              addr = (n-1)*0x0200 + x-1;       
  49   1              IAP_CONTR = EN_IAP;              
  50   1              IAP_CMD   = 2;                //允许编写EEPROM      
  51   1              IAP_ADDRL = addr;                      
C51 COMPILER V9.00   EEPROM                                                                07/01/2013 12:13:31 PAGE 2   

  52   1              IAP_ADDRH = addr >> 8;                 
  53   1              IAP_DATA  = dat;                        
  54   1              IAP_TRIG  = 0x5a;                      
  55   1              IAP_TRIG  = 0xa5;                        
  56   1              _nop_();                                          
  57   1              Q0();    
  58   1      }
  59          /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函数:擦除某一扇区        入口:第n扇区           ┈┈┈┈┈
             -┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
  60          void C_EROM(uchar n)
  61          {      
  62   1              uint  addr;       
  63   1              addr = (n-1)*0x0200;      
  64   1              IAP_CONTR = EN_IAP;       
  65   1              IAP_CMD   = 3;                //允许擦除EEPROM           
  66   1              IAP_ADDRL = addr;                      
  67   1              IAP_ADDRH = addr >> 8;              
  68   1              IAP_TRIG  = 0x5a;                      
  69   1              IAP_TRIG  = 0xa5;                        
  70   1              _nop_();                                         
  71   1              Q0();
  72   1      }


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