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

📄 main.lst

📁 基于at89c51单片机的mp3 flash芯片读写实验代码
💻 LST
字号:
C51 COMPILER V7.50   MAIN                                                                  01/15/2006 18:33:14 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE main.c LARGE ROM(COMPACT)

line level    source

   1          #include "AT89C51SND1_REG.H"
   2          #include "MCU_UART.H"
   3          #include "Flash_RW.H"
   4          
   5          void delay()
   6          {
   7   1        unsigned char data i=200;
   8   1        while(i--);
   9   1      }
  10          
  11          main()
  12          {
  13   1              unsigned int data i,Block,Page,BlockPage,BlockPage2;
  14   1          unsigned char data MID,DID;
  15   1              unsigned char PageBuf[512];
  16   1              init_uart();
  17   1              printu("JMBIE MP3 EXP 7 Flash..\n");
  18   1              
  19   1              Flash_Reset();
  20   1              ReadFlashID(&MID,&DID);
  21   1              printuf("The Flash MID is 0x%x   ",MID);
  22   1              printuf("DID is 0x%x\n",DID);
  23   1      
  24   1              for(Block=0;Block<16;Block++)
  25   1                 {
  26   2                      BlockPage = Block<<5;
  27   2                      BlockErase(BlockPage);
  28   2                      printuf("Erase Block 0x%x\r",Block);
  29   2                      for(i=0;i<200;i++)
  30   2                              delay();
  31   2                 }
  32   1              printu("\n----------Erase BLOCK 0-15 OK!\n");
  33   1      
  34   1              for(Block=0;Block<16;Block++)
  35   1                      for(Page=0;Page<32;Page++)
  36   1                              {
  37   2                               BlockPage = (Block<<5)|Page;
  38   2                               ReadPage(BlockPage,PageBuf);
  39   2                               for(i=0;i<512;i++)
  40   2                                  if(PageBuf[i]!=0xff) break;
  41   2                               if(i==512)
  42   2                                  {
  43   3                                       printuf("Block 0x%x ",Block);
  44   3                                       printuf("Page 0x%x Blank Check OK!\r",Page);
  45   3                                       }
  46   2                               else
  47   2                                  {
  48   3                                       printuf("Block 0x%x ",Block);
  49   3                                       printuf("Page 0x%x Blank Check Error at ",Page);
  50   3                                       printuf("Byte 0x%x\n",i);
  51   3                                       }                                      
  52   2                               delay();
  53   2                              }       
  54   1              printu("\n----------Blank Check OK!\n");
  55   1      
C51 COMPILER V7.50   MAIN                                                                  01/15/2006 18:33:14 PAGE 2   

  56   1              for(Block=0;Block<8;Block++)
  57   1                      for(Page=0;Page<32;Page++)
  58   1                      {
  59   2                              for(i=0;i<512;i++)
  60   2                                      PageBuf[i]=Block*32+Page;
  61   2                              BlockPage = (Block<<5)|Page;
  62   2                              WritePage(BlockPage,PageBuf);
  63   2                              printuf("Write Block 0x%x ",Block);
  64   2                              printuf("Page 0x%x ",Page);
  65   2                              printuf("of %x\r",PageBuf[0]);
  66   2                              delay();
  67   2                      }
  68   1              
  69   1              printu("\n----------Write BLOCK 0-7 OK!\n");
  70   1      
  71   1              for(Block=0;Block<8;Block++)
  72   1                      for(Page=0;Page<32;Page++)
  73   1                      {
  74   2                              BlockPage = (Block<<5)|Page;;
  75   2                              ReadPage(BlockPage,PageBuf);
  76   2                              for(i=0;i<512;i++)
  77   2                                      if(PageBuf[i]!=Block*32+Page) break;
  78   2                              if(i==512)
  79   2                                  {
  80   3                                       printuf("Read and Check Block 0x%x ",Block);
  81   3                                       printuf("Page 0x%x OK!\r",Page);
  82   3                                       }
  83   2                              else
  84   2                                  {
  85   3                                       printuf("Read and Check Block 0x%x ",Block);
  86   3                                       printuf("Page 0x%x Error at ",Page);
  87   3                                       printuf("Byte 0x%x\n",i);                      
  88   3                                      }
  89   2                              delay();
  90   2                      }
  91   1      
  92   1              printu("\n----------Read BLOCK 0-7 and Data Check OK!\n");
  93   1              
  94   1              for(Block=0;Block<8;Block++)
  95   1                      for(Page=0;Page<32;Page++)
  96   1                      {
  97   2                              BlockPage = (Block<<5)|Page;
  98   2                              BlockPage2 = ((Block+8)<<5)|Page;
  99   2                              CopyBack(BlockPage,BlockPage2);
 100   2                              printuf("Copy Block 0x%x ",Block);
 101   2                              printuf("Page 0x%x to ",Page);
 102   2                              printuf("Block 0x%x ",Block+8);
 103   2                              printuf("Page 0x%x\r",Page);
 104   2                              delay();
 105   2                      }
 106   1              
 107   1              printu("\n----------COPY-BACK from BLOCK 0-7 to BLOCK 8-15 OK!\n");
 108   1      
 109   1              for(Block=0;Block<8;Block++)
 110   1                      for(Page=0;Page<32;Page++)
 111   1                      {
 112   2                              BlockPage = ((Block+8)<<5)|Page;;
 113   2                              ReadPage(BlockPage,PageBuf);
 114   2                              for(i=0;i<512;i++)
 115   2                                      if(PageBuf[i]!=Block*32+Page) break;
 116   2                              if(i==512)
 117   2                                  {
C51 COMPILER V7.50   MAIN                                                                  01/15/2006 18:33:14 PAGE 3   

 118   3                                       printuf("Read and Check Block 0x%x ",Block+8);
 119   3                                       printuf("Page 0x%x OK!\r",Page);
 120   3                                       }
 121   2                              else
 122   2                                  {
 123   3                                       printuf("Read and Check Block 0x%x ",Block+8);
 124   3                                       printuf("Page 0x%x Error at ",Page);
 125   3                                       printuf("Byte 0x%x\n",i);                      
 126   3                                      }
 127   2                              delay();
 128   2                      }
 129   1      
 130   1              printu("\n----------Read BLOCK 8-15 and Data Check OK!\n");
 131   1      
 132   1              while(1);
 133   1      
 134   1      }


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