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

📄 flash_eeprom.lst

📁 液晶显示屏12232的驱动程序.内包含了EEPROM及AD7705的驱动程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
                      /* 将该扇区数据 0 - (USED_BYTE_QTY_IN_ONE_SECTOR-1) 字节数据读入缓冲区保护 */
                      sector_addr             =       (begin_addr & 0xfe00);  /* 1111,1110,0000,0000; 取扇区地址              */
                      byte_addr               =   sector_addr;                        /* 扇区地址为扇区首字节地址                             */
              
                      ISP_IAP_enable();
                      for(i = 0; i < USED_BYTE_QTY_IN_ONE_SECTOR; i++)
                      {
                              ISP_ADDRH       =       (INT8U)(byte_addr >> 8);
                              ISP_ADDRL       =       (INT8U)(byte_addr & 0x00ff);
              
                              ISP_CMD         =       ISP_CMD &       0xf8;        /* 1111,1000 */
                              ISP_CMD         =       ISP_CMD |       READ_AP_and_Data_Memory_Command;        /* 0000,0001 */
              
                              ISP_TRIG        =       0x46;
                              ISP_TRIG        =       0xb9;
                              _nop_();
              
                              protect_buffer[i]       =       ISP_DATA;
                              byte_addr++;
                      }
              
                      /* 将要写入的数据写入保护缓冲区的相应区域,其余部分保留 */
                      for(i = 0; i < counter; i++)
                      {
                              protect_buffer[in_sector_begin_addr] = array[i];
                              in_sector_begin_addr++;
                      }
              
                      /* 擦除 要修改/写入 的扇区 */
                      ISP_ADDRH       =       (INT8U)(sector_addr >> 8);
                      ISP_ADDRL       =       0x00;
                      ISP_CMD         =       ISP_CMD &       0xf8;        /* 1111,1000 */
                      ISP_CMD         =       ISP_CMD |       SECTOR_ERASE_AP_and_Data_Memory_Command;        /* 0000,0011 */
              
                      ISP_TRIG        =       0x46;        /* 触发ISP_IAP命令 */
                      ISP_TRIG        =       0xb9;        /* 触发ISP_IAP命令 */
                      _nop_();
              
                      /* 将保护缓冲区的数据写入 Data Flash, EEPROM */
                      byte_addr       =   sector_addr;                        /* 扇区地址为扇区首字节地址     */
                      for(i = 0; i< USED_BYTE_QTY_IN_ONE_SECTOR; i++)
                      {
                              /* 写一个字节 */
                              ISP_ADDRH       =       (INT8U)(byte_addr >> 8);
                              ISP_ADDRL       =       (INT8U)(byte_addr & 0x00ff);
                              ISP_DATA        =       protect_buffer[i];
C51 COMPILER V7.50   FLASH_EEPROM                                                          05/28/2007 15:49:31 PAGE 5   

                              ISP_CMD         =       ISP_CMD &       0xf8;        /* 1111,1000 */
                              ISP_CMD         =       ISP_CMD |       PROGRAM_AP_and_Data_Memory_Command;             /* 0000,0010 */
              
                              ISP_TRIG        =       0x46;        /* 触发ISP_IAP命令 */
                              ISP_TRIG        =       0xb9;        /* 触发ISP_IAP命令 */
                              _nop_();
              
                              /* 读回来 */
                              ISP_DATA        =       0x00;
              
                              ISP_CMD         =       ISP_CMD &       0xf8;        /* 1111,1000 */
                              ISP_CMD         =       ISP_CMD |       READ_AP_and_Data_Memory_Command;        /* 0000,0001 */
              
                              ISP_TRIG        =       0x46;        /* 触发ISP_IAP命令 */
                              ISP_TRIG        =       0xb9;        /* 触发ISP_IAP命令 */
                              _nop_();
              
                              /*  比较对错 */
                              if(ISP_DATA != protect_buffer[i])
                              {
                                      ISP_IAP_disable();
                                      return ERROR;
                      }
                      byte_addr++;
                      }
                      ISP_IAP_disable();
                      return OK;
              }
              #endif
 271          
 272          /* 测试常量数组 */
 273          INT8U code Test_array_total[512]        =
 274          {
 275                  0x00,        0x01,        0x02,        0x03,        0x04,        0x05,        0x06,        0x07,
 276                  0x08,        0x09,        0x0a,        0x0b,        0x0c,        0x0d,        0x0e,        0x0f,
 277                  0x10,        0x11,        0x12,        0x13,        0x14,        0x15,        0x16,        0x17,
 278                  0x18,        0x19,        0x1a,        0x1b,        0x1c,        0x1d,        0x1e,        0x1f,
 279                  0x20,        0x21,        0x22,        0x23,        0x24,        0x25,        0x26,        0x27,
 280                  0x28,        0x29,        0x2a,        0x2b,        0x2c,        0x2d,        0x2e,        0x2f,
 281                  0x30,        0x31,        0x32,        0x33,        0x34,        0x35,        0x36,        0x37,
 282                  0x38,        0x39,        0x3a,        0x3b,        0x3c,        0x3d,        0x3e,        0x3f,
 283                  0x40,        0x41,        0x42,        0x43,        0x44,        0x45,        0x46,        0x47,
 284                  0x48,        0x49,        0x4a,        0x4b,        0x4c,        0x4d,        0x4e,        0x4f,
 285                  0x50,        0x51,        0x52,        0x53,        0x54,        0x55,        0x56,        0x57,
 286                  0x58,        0x59,        0x5a,        0x5b,        0x5c,        0x5d,        0x5e,        0x5f,
 287                  0x60,        0x61,        0x62,        0x63,        0x64,        0x65,        0x66,        0x67,
 288                  0x68,        0x69,        0x6a,        0x6b,        0x6c,        0x6d,        0x6e,        0x6f,
 289                  0x70,        0x71,        0x72,        0x73,        0x74,        0x75,        0x76,        0x77,
 290                  0x78,        0x79,        0x7a,        0x7b,        0x7c,        0x7d,        0x7e,        0x7f,
 291                  0x80,        0x81,        0x82,        0x83,        0x84,        0x85,        0x86,        0x87,
 292                  0x88,        0x89,        0x8a,        0x8b,        0x8c,        0x8d,        0x8e,        0x8f,
 293                  0x90,        0x91,        0x92,        0x93,        0x94,        0x95,        0x96,        0x97,
 294                  0x98,        0x99,        0x9a,        0x9b,        0x9c,        0x9d,        0x9e,        0x9f,
 295                  0xa0,        0xa1,        0xa2,        0xa3,        0xa4,        0xa5,        0xa6,        0xa7,
 296                  0xa8,        0xa9,        0xaa,        0xab,        0xac,        0xad,        0xae,        0xaf,
 297                  0xb0,        0xb1,        0xb2,        0xb3,        0xb4,        0xb5,        0xb6,        0xb7,
 298                  0xb8,        0xb9,        0xba,        0xbb,        0xbc,        0xbd,        0xbe,        0xbf,
 299                  0xc0,        0xc1,        0xc2,        0xc3,        0xc4,        0xc5,        0xc6,        0xc7,
 300                  0xc8,        0xc9,        0xca,        0xcb,        0xcc,        0xcd,        0xce,        0xcf,
 301                  0xd0,        0xd1,        0xd2,        0xd3,        0xd4,        0xd5,        0xd6,        0xd7,
 302                  0xd8,        0xd9,        0xda,        0xdb,        0xdc,        0xdd,        0xde,        0xdf,
 303                  0xe0,        0xe1,        0xe2,        0xe3,        0xe4,        0xe5,        0xe6,        0xe7,
C51 COMPILER V7.50   FLASH_EEPROM                                                          05/28/2007 15:49:31 PAGE 6   

 304                  0xe8,        0xe9,        0xea,        0xeb,        0xec,        0xed,        0xee,        0xef,
 305                  0xf0,        0xf1,        0xf2,        0xf3,        0xf4,        0xf5,        0xf6,        0xf7,
 306                  0xf8,        0xf9,        0xfa,        0xfb,        0xfc,        0xfd,        0xfe,        0xff,
 307                  0xff,        0xfe,        0xfd,        0xfc,        0xfb,        0xfa,        0xf9,        0xf8,
 308                  0xf7,        0xf6,        0xf5,        0xf4,        0xf3,        0xf2,        0xf1,        0xf0,
 309                  0xef,        0xee,        0xed,        0xec,        0xeb,        0xea,        0xe9,        0xe8,
 310                  0xe7,        0xe6,        0xe5,        0xe4,        0xe3,        0xe2,        0xe1,        0xe0,
 311                  0xdf,        0xde,        0xdd,        0xdc,        0xdb,        0xda,        0xd9,        0xd8,
 312                  0xd7,        0xd6,        0xd5,        0xd4,        0xd3,        0xd2,        0xd1,        0xd0,
 313                  0xcf,        0xce,        0xcd,        0xcc,        0xcb,        0xca,        0xc9,        0xc8,
 314                  0xc7,        0xc6,        0xc5,        0xc4,        0xc3,        0xc2,        0xc1,        0xc0,
 315                  0xbf,        0xbe,        0xbd,        0xbc,        0xbb,        0xba,        0xb9,        0xb8,
 316                  0xb7,        0xb6,        0xb5,        0xb4,        0xb3,        0xb2,        0xb1,        0xb0,
 317                  0xaf,        0xae,        0xad,        0xac,        0xab,        0xaa,        0xa9,        0xa8,
 318                  0xa7,        0xa6,        0xa5,        0xa4,        0xa3,        0xa2,        0xa1,        0xa0,
 319                  0x9f,        0x9e,        0x9d,        0x9c,        0x9b,        0x9a,        0x99,        0x98,
 320                  0x97,        0x96,        0x95,        0x94,        0x93,        0x92,        0x91,        0x90,
 321                  0x8f,        0x8e,        0x8d,        0x8c,        0x8b,        0x8a,        0x89,        0x88,
 322                  0x87,        0x86,        0x85,        0x84,        0x83,        0x82,        0x81,        0x80,
 323                  0x7f,        0x7e,        0x7d,        0x7c,        0x7b,        0x7a,        0x79,        0x78,
 324                  0x77,        0x76,        0x75,        0x74,        0x73,        0x72,        0x71,        0x70,
 325                  0x6f,        0x6e,        0x6d,        0x6c,        0x6b,        0x6a,        0x69,        0x68,
 326                  0x67,        0x66,        0x65,        0x64,        0x63,        0x62,        0x61,        0x60,
 327                  0x5f,        0x5e,        0x5d,        0x5c,        0x5b,        0x5a,        0x59,        0x58,
 328                  0x57,        0x56,        0x55,        0x54,        0x53,        0x52,        0x51,        0x50,
 329                  0x4f,        0x4e,        0x4d,        0x4c,        0x4b,        0x4a,        0x49,        0x48,
 330                  0x47,        0x46,        0x45,        0x44,        0x43,        0x42,        0x41,        0x40,
 331                  0x3f,        0x3e,        0x3d,        0x3c,        0x3b,        0x3a,        0x39,        0x38,
 332                  0x33,        0x36,        0x35,        0x34,        0x33,        0x32,        0x31,        0x30,
 333                  0x2f,        0x2e,        0x2d,        0x2c,        0x2b,        0x2a,        0x29,        0x28,
 334                  0x27,        0x26,        0x25,        0x24,        0x23,        0x22,        0x21,        0x20,
 335                  0x1f,        0x1e,        0x1d,        0x1c,        0x1b,        0x1a,        0x19,        0x18,
 336                  0x17,        0x16,        0x15,        0x14,        0x13,        0x12,        0x11,        0x10,
 337                  0x0f,        0x0e,        0x0d,        0x0c,        0x0b,        0x0a,        0x09,        0x08,
 338                  0x07,        0x06,        0x05,        0x04,        0x03,        0x02,        0x01,        0x00
 339          };
 340          #ifdef delay
              #define delay
              void delay(INT16U counter)
              {
                      INT16U  temp    =       0;
                      for(temp = counter; temp>0; temp--)
                      {
                              _nop_();
                              _nop_();
                              _nop_();
                      }
              }
              #endif
 353          
 354          //void main()
 355          //{
 356          //sbit        Begin_LED =       P1^0;
 357          //sbit        ERROR_LED =       P1^3;
 358          //sbit        OK_LED    =       P1^7;
 359          
 360          /*      display_Begin_LED();
 361                  delay(DELAY_CONST);
 362          
 363                  sector_erase(DEBUG_Data_Memory_Begin_Sector_addr);
 364                  if(byte_program_and_verify(DEBUG_Data_Memory_Begin_Sector_addr,0x55) == OK)
 365                          display_OK_LED();
C51 COMPILER V7.50   FLASH_EEPROM                                                          05/28/2007 15:49:31 PAGE 7   

 366                  else
 367                          display_ERROR_LED();  */
 368          
 369          /*
 370                  if(sequential_write_flash_in_one_sector(DEBUG_Data_Memory_Begin_Sector_addr, USED_BYTE_QTY_IN_ONE_SECTOR,
             - Test_array_total))
 371                          display_OK_LED();
 372                  else
 373                          display_ERROR_LED();
 374          */
 375          /*
 376                  if(write_flash_with_protect_in_one_sector(DEBUG_Data_Memory_Begin_Sector_addr+0x3, USED_BYTE_QTY_IN_ONE_S
             -ECTOR-0x30, Test_array_total))
 377                          display_OK_LED();
 378                  else
 379                          display_ERROR_LED();
 380          */
 381          //      while(1);
 382          //}


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    328    ----
   CONSTANT SIZE    =    512    ----
   XDATA SIZE       =    128       9
   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 + -