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

📄 eep.lst

📁 STC89C58单片机的内部32k eeprom读写程序
💻 LST
字号:
C51 COMPILER V8.06   EEP                                                                   08/06/2007 17:24:40 PAGE 1   


C51 COMPILER V8.06, COMPILATION OF MODULE EEP
OBJECT MODULE PLACED IN eep.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE eep.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<math.h>
   2          #include<stdio.h>
   3          #include<reg52.h>
   4          #include <intrins.h>
   5          #define NOP5    _nop_();_nop_();_nop_();
   6          #define uchar unsigned char
   7          #define uint unsigned int
   8          
   9          sfr AUXR = 0x8e;
  10          sfr AUXR1 = 0xa2;
  11          sfr P4 = 0xe8;
  12          sfr XICON = 0xc0;
  13          sfr IPH = 0xb7;
  14          sfr WDT_CONTR = 0xe1;
  15          sfr ISP_DATA = 0xe2;
  16          sfr ISP_ADDRH = 0xe3;
  17          sfr ISP_ADDRL = 0xe4;
  18          sfr ISP_CMD = 0xe5;
  19          sfr ISP_TRIG = 0xe6;
  20          sfr ISP_CONTR = 0xe7;
  21          ISP_IAP_BYTE_READ=1;
  22          ISP_IAP_BYTE_PROGRAM=2;
  23          ISP_IAP_SECTOR_ERASE=3;
  24           WAIT_TIME=1;
  25           int xdata mmdata,nndata,i,EEPROM_DATA[5];
  26           int xdata flash_addres_h,flash_addres_l,isp_command,isp_data;    ///important
  27           long xdata isp_add,temp,temp1,ISP_EEP_ADDRES,ISP_OUT_DATA,ISP_IN_DATA;
  28              
  29                  uchar EEPROM_READ(flash_addres)                           //读取数据
  30                    {      uchar read;
  31   1                   ISP_ADDRH=flash_addres>>8;
  32   1                       ISP_ADDRL=flash_addres;
  33   1                       EA=0;
  34   1                       
  35   1               ISP_CONTR=0x81 ;
  36   1               ISP_CMD=0x01 ;
  37   1                       ISP_TRIG=0x46;
  38   1               ISP_TRIG=0xb9 ;
  39   1                   NOP5;
  40   1                       read=ISP_DATA;
  41   1                        EA=1;
  42   1              return(read); 
  43   1                }
  44                  void EEPROM_WRITE(flash_addres,isp_data)                                   //写入数据
  45                   { 
  46   1                 ISP_ADDRH=flash_addres>>8;
  47   1                 ISP_ADDRL=flash_addres;
  48   1                      ISP_DATA=isp_data;
  49   1                 EA=0;
  50   1                 ISP_CONTR=0x81 ;
  51   1                 ISP_CMD=0x02 ;
  52   1                 ISP_TRIG=0x46;
  53   1             ISP_TRIG=0xb9;
  54   1                 EA=1;
  55   1               } 
C51 COMPILER V8.06   EEP                                                                   08/06/2007 17:24:40 PAGE 2   

  56                   void EEPROM_FORMAT(flash_addres)        //擦除
  57                     {ISP_ADDRH=flash_addres>>8;
  58   1                      ISP_ADDRL=flash_addres;
  59   1                      EA=0;
  60   1                      ISP_CONTR=0x81 ;
  61   1                  ISP_CMD=0x03;
  62   1                      ISP_TRIG=0x46;
  63   1              ISP_TRIG=0xb9;
  64   1                      EA=1;
  65   1                 }
  66           void EEPROM_CONTROL()
  67             {     ISP_EEP_ADDRES=0x8020;
  68   1         
  69   1                  EEPROM_DATA[0]=EEPROM_READ(ISP_EEP_ADDRES);
  70   1                      ISP_EEP_ADDRES++;
  71   1                  EEPROM_DATA[1]=EEPROM_READ(ISP_EEP_ADDRES);
  72   1                       SBUF=EEPROM_DATA[0];
  73   1                                while(TI==0);
  74   1                                 TI=0;
  75   1                                      i++;
  76   1                        SBUF=EEPROM_DATA[1];
  77   1                                while(TI==0);
  78   1                                 TI=0;
  79   1                                      i++;
  80   1                      ISP_OUT_DATA=EEPROM_DATA[0];
  81   1               if(ISP_OUT_DATA<=0xff)
  82   1               { EEPROM_DATA[1]++;
  83   2                if(EEPROM_DATA[1]==0xff)
  84   2                {EEPROM_DATA[0]++;
  85   3                 EEPROM_DATA[1]=0;
  86   3                }
  87   2                        ISP_EEP_ADDRES=0x8020;
  88   2                                                 //format data
  89   2                        EEPROM_FORMAT(ISP_EEP_ADDRES);
  90   2                        EEPROM_WRITE(ISP_EEP_ADDRES,EEPROM_DATA[0]);
  91   2                        ISP_EEP_ADDRES++ ;
  92   2                        EEPROM_FORMAT(ISP_EEP_ADDRES);
  93   2                        EEPROM_WRITE(ISP_EEP_ADDRES,EEPROM_DATA[1]);
  94   2                       }
  95   1         
  96   1         }
  97          main()
  98          { long xdata aa[9]={'-','0','7','8','9','6','c','b',0x0a};
  99   1        int i,j,k;
 100   1        int xdata record1[5]={0,0};
 101   1       // int ii,jj,kk,bbc,cbb;
 102   1       //  long xdata old_data,new_data; //important
 103   1        int xdata record[5]={0x0a,0x0b,0x0c,0x0d,0x0e};
 104   1        
 105   1         TMOD=0X20;
 106   1              TL1=0xff;TH1=0xff;
 107   1              SCON=0x50;PCON=0x80;
 108   1              TR1=1; 
 109   1         temp=0;
 110   1         i=0x00;
 111   1          ISP_EEP_ADDRES=0x8020;
 112   1          EEPROM_FORMAT(ISP_EEP_ADDRES);
 113   1              NOP5;
 114   1          EEPROM_WRITE(ISP_EEP_ADDRES,0x0c);
 115   1              k=EEPROM_READ(ISP_EEP_ADDRES);
 116   1                SBUF=k;
 117   1              while(TI==0);
C51 COMPILER V8.06   EEP                                                                   08/06/2007 17:24:40 PAGE 3   

 118   1                                 TI=0;
 119   1                                      i++;
 120   1                        ISP_EEP_ADDRES++;
 121   1              EEPROM_FORMAT(ISP_EEP_ADDRES);
 122   1              NOP5;
 123   1              EEPROM_WRITE(ISP_EEP_ADDRES,0x0b);
 124   1              k=EEPROM_READ(ISP_EEP_ADDRES);
 125   1                SBUF=k;
 126   1              while(TI==0);
 127   1                                 TI=0;
 128   1                                      i++;
 129   1      
 130   1      
 131   1      
 132   1      // while(i==0)
 133   1        { EEPROM_CONTROL();
 134   2         }
 135   1        
 136   1      
 137   1      
 138   1              TMOD=0X20;
 139   1              TL1=0xff;TH1=0xff;
 140   1              SCON=0x50;PCON=0x80;
 141   1              TR1=1;
 142   1      //      SBUF=0xf0;
 143   1      //      while(TI==0);
 144   1      //      TI=0;
 145   1      
 146   1      while(1)  
 147   1              {
 148   2              
 149   2                      P2=1;
 150   2                      TMOD=0X20;
 151   2                       TL1=0xff;TH1=0xff;
 152   2                       SCON=0x50;PCON=0x80;
 153   2                   TR1=1;
 154   2                       i=0;
 155   2                       j=0;
 156   2                      // PCON=0X08;
 157   2                       while(RI==0);
 158   2                      k=SBUF;
 159   2                      RI=0;
 160   2                      if (k==0x0a)
 161   2              { while(i<9)
 162   3              { SBUF=aa[i];
 163   4                                while(TI==0);
 164   4                                 TI=0;
 165   4                                      i++;
 166   4                      }
 167   3              }
 168   2               
 169   2      }
 170   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    714    ----
   CONSTANT SIZE    =     56    ----
   XDATA SIZE       =     48      56
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8       6
   IDATA SIZE       =   ----    ----
C51 COMPILER V8.06   EEP                                                                   08/06/2007 17:24:40 PAGE 4   

   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 + -