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

📄 eerom.lst

📁 可编程继电器模块
💻 LST
字号:
C51 COMPILER V9.00   EEROM                                                                 03/08/2012 22:00:15 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE EEROM
OBJECT MODULE PLACED IN eerom.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE eerom.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /********************************************************************
   2                                      汇诚科技
   3          
   4          实现功能:EEPROM应用程序
   5          使用芯片:STC15F104E
   6          晶振:12MHZ
   7          编译环境:Keil
   8          作者:zhangxinchunleo
   9          网站:www.ourhc.cn
  10          淘宝店:汇诚科技 http://shop36330473.taobao.com
  11          【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!     
  12          
  13          *********************************************************************/
  14          /********************************************************************/
  15          #include "reg52.h" 
  16          #include <intrins.H>
  17          #define uchar unsigned char //宏定义字符型变量
  18          #define uint  unsigned int      //宏定义整型变量
  19          /********************************************************************
  20                                      寄存器设置
  21          *********************************************************************/ 
  22          sfr IAP_DATA  =0xc2;     //数据寄存器
  23          sfr IAP_ADDRH =0xc3;     //地址寄存器
  24          sfr IAP_ADDRL =0xc4;     //地址寄存器
  25          sfr IAP_CMD   =0xc5;     //命令寄存器
  26          sfr IAP_TRIG  =0xc6;     //触发寄存器
  27          sfr IAP_CONTR =0xc7;     //擦除寄存器
  28          /********************************************************************
  29                                      命令定义
  30          *********************************************************************/
  31          #define CMD_IDLE     0   //EEPROM无操作
  32          #define CMD_READ     1   //读取字节
  33          #define CMD_PROGRAM  2   //写入字节
  34          #define CMD_ERASE    3   //擦除字节
  35          /********************************************************************
  36                                 编程周期由晶振决定
  37          *********************************************************************/
  38          //#define ENABLE_IAP 0X80        //编程周期由晶振决定(如果<30MHZ选用此项)
  39          //#define ENABLE_IAP 0X81        //编程周期由晶振决定(如果<24MHZ选用此项)
  40          //#define ENABLE_IAP 0X82        //编程周期由晶振决定(如果<20MHZ选用此项)
  41            #define ENABLE_IAP 0X83        //编程周期由晶振决定(如果<12MHZ选用此项)
  42          //#define ENABLE_IAP 0X84        //编程周期由晶振决定(如果<6MHZ选用此项)
  43          //#define ENABLE_IAP 0X85        //编程周期由晶振决定(如果<3MHZ选用此项)
  44          //#define ENABLE_IAP 0X86        //编程周期由晶振决定(如果<2MHZ选用此项)
  45          //#define ENABLE_IAP 0X87        //编程周期由晶振决定(如果<1MHZ选用此项)
  46          
  47          #define IAP_ADDRESS 0X0000                    //内部EEPROM地址
  48          /********************************************************************
  49                                 函数初始化
  50          *********************************************************************/
  51          void IapIdle();                                       //操作函数
  52          uchar IapReadByte(uint addr);             //读取函数
  53          void IapProgramByte(uint addr,uchar dat); //写入函数
  54          void IapEraseSector(uint addr);           //擦除函数
  55          
C51 COMPILER V9.00   EEROM                                                                 03/08/2012 22:00:15 PAGE 2   

  56          /********************************************************************
  57                                      操作函数
  58          *********************************************************************/
  59          void IapIdle()
  60          {
  61   1      IAP_CONTR=0;
  62   1      IAP_CMD=0;
  63   1      IAP_TRIG=0;
  64   1      IAP_ADDRH=0X80;
  65   1      IAP_ADDRL=0;
  66   1      }
  67          
  68          /********************************************************************
  69                                      读取一个字节函数
  70          *********************************************************************/
  71          uchar IapReadByte(uint addr)
  72          {
  73   1      uchar dat;  
  74   1      IAP_CONTR=ENABLE_IAP;
  75   1      IAP_CMD=CMD_READ;
  76   1      IAP_ADDRL=addr;
  77   1      IAP_ADDRH=addr>>8;
  78   1      IAP_TRIG=0X5A;
  79   1      IAP_TRIG=0XA5;
  80   1      _nop_();
  81   1      _nop_();
  82   1      _nop_();
  83   1      dat=IAP_DATA;
  84   1      IapIdle();
  85   1      return dat;
  86   1      }
  87          
  88          /********************************************************************
  89                                      写入一个字节函数
  90          *********************************************************************/
  91          void IapProgramByte(uint addr,uchar dat)
  92          {
  93   1      
  94   1      IAP_CONTR=ENABLE_IAP;
  95   1      IAP_CMD=CMD_PROGRAM;
  96   1      IAP_ADDRL=addr;
  97   1      IAP_ADDRH=addr>>8;
  98   1      IAP_DATA=dat;
  99   1      IAP_TRIG=0X5A;
 100   1      IAP_TRIG=0XA5;
 101   1      _nop_();
 102   1      _nop_();
 103   1      _nop_();
 104   1      IapIdle();
 105   1      }
 106          /********************************************************************
 107                                      擦除一个字节函数
 108          *********************************************************************/
 109          void IapEraseSector(uint addr)
 110          {
 111   1      IAP_CONTR=ENABLE_IAP;
 112   1      IAP_CMD=CMD_ERASE;
 113   1      IAP_ADDRL=addr;
 114   1      IAP_ADDRH=addr>>8;
 115   1      IAP_TRIG=0X5A;
 116   1      IAP_TRIG=0XA5;
 117   1      _nop_();
C51 COMPILER V9.00   EEROM                                                                 03/08/2012 22:00:15 PAGE 3   

 118   1      _nop_();
 119   1      _nop_();
 120   1      IapIdle();
 121   1      }
 122           
 123          /********************************************************************
 124                                      结束
 125          *********************************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     84    ----
   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 + -