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

📄 main.lst

📁 SM59D04G2_EEPROM读写 其他人不需帐号就可自由下载此源码
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  06/20/2008 14:30:59 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c OPTIMIZE(9,SPEED) REGFILE(.\SM59D04G2.ORC) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<SM59D04G2.h>
   2          void ISP_enable (void);
   3          void ISP_disable (void);
   4          void ISP_Byte_Program (unsigned int DPTR1,unsigned char ONE_DATA1);
   5          void ISP_Sector_erase1(unsigned char block);     //block=1 to 8
   6          //void ISP_512Byte_read_write(unsigned char block);
   7          void ISP_readByte(unsigned char block,unsigned int startplace,unsigned int len);
   8          void ISP_writeByte(unsigned char block,unsigned int startplace,unsigned int len,unsigned char *wrturndata)
             -;
   9          
  10          //void uart_init(void);
  11          //void uart_send(unsigned char val);
  12          //unsigned char code read_buffer[1] _at_ 0x3c00;
  13          unsigned char code g[1] _at_ 0x3000;
  14          unsigned char code g1[8] ={0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e};
  15          unsigned char idata returndata2[21]={1,4,6,7,5,6,7,8,0x0b,0x0a,1,5,0x0c,4,5,6,7,0x0d,9,0x0a};
  16          unsigned char xdata returndata1[512];
  17          unsigned char xdata returndata3[21];
  18          //unsigned char xdata b;
  19          void main()       
  20          { 
  21   1      
  22   1      //uart_init();          
  23   1      ISP_writeByte(1,0,20,returndata2);      
  24   1      ISP_readByte(1,0,20);
  25   1      
  26   1      //b=0x08;
  27   1      //uart_send(b);
  28   1      
  29   1              while(1)
  30   1              {
  31   2              //P2_7 =0; //test
  32   2              //while(1);
  33   2              };
  34   1      }                
  35          
  36          //void uart_init(void) //串口初始化                                             // 正常
  37          //{     
  38                  //RCAP2H=0xff;                  //波特率=9600;
  39                  //RCAP2L=0xdc;
  40                  //TL2=0xff;
  41                  //TH2=0xdc;     
  42                  //SCON=0X50;
  43                  //T2CON=0X34;           
  44          //}
  45          
  46          //void uart_send(unsigned char val)  //功能描述:向串口发送一个字符                     // 正常
  47          //{
  48                  //SBUF=val;
  49                  //while(TI==0);         
  50                  //TI=0;
  51          //}
  52          //***********************//
  53          //功能:打开ISP操作使能
  54          //入口:无
C51 COMPILER V8.02   MAIN                                                                  06/20/2008 14:30:59 PAGE 2   

  55          //出口:无
  56          //调用函数:无
  57          //***********************//
  58          void ISP_enable (void)                          // 正常
  59          {
  60   1              EA =0;
  61   1              ISP_DATA =0x55;
  62   1              ISP_DATA =0xaa;
  63   1              ISP_DATA =0x55;
  64   1              SCONF =SCONF|0x04|0x02;
  65   1      }
  66          //***********************//
  67          //功能:关闭ISP操作使能
  68          //入口:无
  69          //出口:无
  70          //调用函数:无
  71          //***********************//
  72          void ISP_disable (void)                                 // 正常
  73          {
  74   1              SCONF =SCONF&0x0FB|0x02;
  75   1              EA =1;
  76   1      }
  77          //***********************//
  78          //功能:写入任意一字节到EEPROM的数据
  79          //入口:16位地址DPTR1,一字节数据ONE_DATA1
  80          //出口:无
  81          //调用函数:ISP_enable();ISP_disable();
  82          //***********************//
  83          void ISP_Byte_Program (unsigned int DPTR1,unsigned char ONE_DATA1)                      // 正常
  84          {
  85   1              ISP_enable();
  86   1              ISP_DATA =ONE_DATA1;
  87   1          ISP_ADDRH =(unsigned char)(DPTR1>>8);
  88   1          ISP_ADDRL =(unsigned char)DPTR1;
  89   1              ISP_CMD =ISP_IAP_BYTE_PROGRAM;
  90   1              ISP_disable(); 
  91   1      }
  92          //***********************//
  93          //功能:擦除任意EEPROM块的数据
  94          //入口:块block
  95          //出口:无
  96          //调用函数:ISP_enable();ISP_disable();
  97          //***********************//
  98          void ISP_Sector_erase1(unsigned char block)      //block=0 to 7                 // 正常
  99          {
 100   1      unsigned char reblockh;
 101   1      reblockh=g1[block];
 102   1      ISP_enable();
 103   1      ISP_ADDRH=reblockh;
 104   1      //ISP_ADDRH=0x3c;
 105   1      ISP_ADDRL=0x00;
 106   1      ISP_CMD=ISP_IAP_SECTOR_ERASE;
 107   1      ISP_CMD=ISP_IAP_SECTOR_ERASE;
 108   1      ISP_disable();
 109   1      }
 110          //***********************//
 111          //功能:任意写入EEPROM的数据
 112          //入口:块block,初始位置startplace,数据长度len,写入数据wrturndata
 113          //出口:无
 114          //调用函数:ISP_512Byte_read_write(unsigned char block);ISP_Byte_Program (unsigned int DPTR1,unsigned char
             - ONE_DATA1);
 115          //***********************//
C51 COMPILER V8.02   MAIN                                                                  06/20/2008 14:30:59 PAGE 3   

 116          void ISP_writeByte(unsigned char block,unsigned int startplace,unsigned int len,unsigned char *wrturndata)
             -                // 正常
 117          {
 118   1      unsigned int i=0;
 119   1      //long startplace1;
 120   1         //startplace1=512*block+startplace;
 121   1         //ISP_512Byte_read_write(block);
 122   1         SCONF =0x02;          //打开外部RAM
 123   1         for(i=0;i<512;i++)            // 读出任意EEPROM块的全部数据
 124   1         {
 125   2         returndata1[i]=*(g+512*block+i);                     //数据存在数组returndata1中
 126   2         //uart_send(returndata1[i]);
 127   2         }
 128   1         for(i=0;i<len;i++)             //更新数据
 129   1         {
 130   2                returndata1[i+startplace]=*wrturndata;
 131   2                //uart_send(returndata1[i+startplace]);       //
 132   2              wrturndata++;
 133   2         }
 134   1         ISP_Sector_erase1(block);     //     擦除任意EEPROM block块的数据
 135   1         for(i=0;i<512;i++)              //写入更新完的数据
 136   1         {
 137   2        ISP_Byte_Program(g+512*block+i,*(returndata1+i)); 
*** WARNING C214 IN LINE 137 OF MAIN.C: 'Argument': conversion: pointer to non-pointer
 138   2        //uart_send(returndata1[i]);    //
 139   2         }
 140   1      }
 141          //***********************//
 142          //功能:任意读出EEPROM的数据
 143          //入口:块block,初始位置startplace,数据长度len
 144          //出口:数据保存在数组returndata1中
 145          //调用函数:无
 146          //***********************//
 147          void ISP_readByte(unsigned char block,unsigned int startplace,unsigned int len)         // 正常
 148          {
 149   1              unsigned int i=0;
 150   1         //startplace=512*block+startplace;
 151   1         SCONF =0x02;    //打开外部RAM
 152   1            for(i=0;i<len;i++)
 153   1         {
 154   2         returndata3[i]=*(g+512*block+i+startplace);                  //数据存在数组returndata2中
 155   2         //uart_send(returndata3[i]);
 156   2      
 157   2         }
 158   1      }                                                                                                                                                                                          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    337    ----
   CONSTANT SIZE    =      8    ----
   XDATA SIZE       =    533    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      13
   IDATA SIZE       =     21    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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