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

📄 main.lst

📁 FLASH读写
💻 LST
字号:
C51 COMPILER V8.01   MAIN                                                                  08/14/2008 21:25:21 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          /*******************************************************************/
   3          //                              Flash读写测试程序                                                                       /
   4          /*******************************************************************/
   5          #include<C8051F000.h>
   6          #include<common.h>
   7          unsigned char xdata* dFls_Byte=0x01000;
   8          unsigned char code*  cFls_Byte=0x01000;
   9          unsigned char            Fls_to_Lcd;
  10          unsigned char code ao[]={
  11          /*--  文字:  奥  --*/
  12          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  13          0x00,0x00,0xFE,0x22,0x2A,0xB2,0x63,0xFE,0x62,0xB2,0xAA,0x22,0xFE,0x00,0x00,0x00,
  14          0x80,0x84,0x45,0x44,0x25,0x14,0x0C,0x07,0x0C,0x14,0x25,0x24,0x45,0xC4,0x44,0x00,
  15          } ;
  16          unsigned char code lin[]={
  17          /*--  文字:  林  --*/
  18          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  19          0x10,0x10,0x90,0xFF,0x90,0x10,0x00,0x10,0x10,0xD0,0xFF,0x90,0x10,0x10,0x10,0x00,
  20          0x08,0x06,0x01,0xFF,0x00,0x13,0x08,0x04,0x03,0x00,0xFF,0x01,0x06,0x18,0x08,0x00,
  21          } ;
  22          unsigned char code pi[]={
  23          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  24          0x00,0xFE,0x02,0x02,0x02,0xFE,0x02,0x02,0x02,0xFE,0x02,0x02,0x02,0x82,0x00,0x00,
  25          0x00,0x3F,0x28,0x24,0x22,0x21,0x20,0x20,0x20,0x23,0x24,0x24,0x24,0x27,0x22,0x00,} ;
  26          unsigned char code ke[]={
  27          /*--  文字:  克  --*/
  28          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  29          0x00,0x04,0x04,0xE4,0x24,0x24,0x24,0x3F,0x24,0x24,0x24,0xE4,0x04,0x04,0x00,0x00,
  30          0x00,0x00,0x80,0x43,0x31,0x0F,0x01,0x01,0x01,0x3F,0x41,0x43,0x40,0x40,0x70,0x00,
  31          };
  32          //------------------------------------------------------------------//
  33          //                                       时钟初始化
  34          //------------------------------------------------------------------//
  35          void SYSCLK_Init()
  36          {
  37   1              OSCICN=OSCICN|0x03;                                                                     
  38   1      
  39   1                                                              //启用内部晶振16MHZ
  40   1      }
  41          //------------------------------------------------------------------//
  42          //                                       端口初始化
  43          //------------------------------------------------------------------//
  44          void PORT_Init()
  45          {
  46   1              XBR0=0x00;                                                                              
  47   1      
  48   1                                                              
  49   1              XBR1=0x00;
  50   1              XBR2=0x40;
  51   1              PRT0CF = 0x00;   
  52   1              PRT1CF = 0x00;
  53   1              PRT2CF = 0x00;                                                                          
  54   1      
  55   1                                                         //三个端口全部为弱上拉,硬件上P0口应接上拉电阻
C51 COMPILER V8.01   MAIN                                                                  08/14/2008 21:25:21 PAGE 2   

  56   1              P3 = 0xFF;                                                                                                                         //三个端口全部为弱上拉,硬件上P0口应接上拉电阻
  57   1      }
  58          
  59          //------------------------------------------------------------------//
  60          //                                       Flash读写控制
  61          //------------------------------------------------------------------//
  62          void Fls_WR_Byte(unsigned int addr,unsigned char byte)
  63          {
  64   1              unsigned  char xdata*  w=addr;
  65   1              PSCTL=0x01;                                                                                                                                             //擦除禁止
  66   1              *w=byte;
  67   1              PSCTL=0x00;                                                                                                                                             //Flash写禁止
  68   1      }
  69          
  70          
  71          unsigned char Fls_RD(unsigned char addr)
  72          {
  73   1              unsigned  char code*  w=addr;
  74   1              return *w;
  75   1      }
  76          //------------------------------------------------------------------//
  77          //                                               主函数
  78          //------------------------------------------------------------------//
  79          void main()
  80          {
  81   1              unsigned int i,addr1=0x2000;
  82   1              unsigned char xdata *y=addr1;
  83   1              unsigned char j;
  84   1              WDTCN=0xde;
  85   1              WDTCN=0xad;
  86   1              SYSCLK_Init();
  87   1              PORT_Init();
  88   1              EA=0;                                                                                   
  89   1      
  90   1                                                                                                      
  91   1      
  92   1              FLSCL=0x89;                                                                                                                                             //允许软件Flash写/擦除总允许(FLWE)                                                                                      
  93   1              PSCTL=0x03;                                                                                                                                             //允许软件Flash写/擦除
  94   1              *y=0;                                                                                                                                                   //擦除扇区
  95   1      //向Flash内写数据
  96   1              for(i=0;i<16;i++)
  97   1              {
  98   2                      Fls_WR_Byte(addr1,ao[i]);
  99   2                      addr1++;
 100   2              }
 101   1              for(i=0;i<16;i++)
 102   1              {
 103   2                      Fls_WR_Byte(addr1,lin[i]);
 104   2                      addr1++;
 105   2              }
 106   1              for(i=0;i<16;i++)
 107   1              {
 108   2                      Fls_WR_Byte(addr1,pi[i]);
 109   2                      addr1++;
 110   2              }
 111   1      
 112   1              for(i=0;i<16;i++)
 113   1              {
 114   2                      Fls_WR_Byte(addr1,ke[i]);
 115   2                      addr1++;
 116   2              }
 117   1              EA=1;  
C51 COMPILER V8.01   MAIN                                                                  08/14/2008 21:25:21 PAGE 3   

 118   1      /*      for(i=0;i<16;i++)                                                                                                                                               //向Flash内写数据
 119   1              Fls_WR(lin[i]);
 120   1              for(i=0;i<16;i++)                                                                                                                                               //向Flash内写数据
 121   1              Fls_WR(pi[i]);
 122   1              for(i=0;i<16;i++)                                                                       
 123   1      
 124   1                                                                              //向Flash内写数据
 125   1              Fls_WR(ke[i]);                                                                          
 126   1      
 127   1                                                                              //Flash写禁止 
 128   1              Fls_Wr_UE(); 
 129   1              for(j=0;j<4;j++)                                                                        
 130   1      
 131   1                                                                              //读Flash数据并送入
 132   1      
 133   1      Lcd
 134   1              for(i=0;i<16;i++)
 135   1              {
 136   1                      Fls_to_Lcd=Fls_RD();
 137   1                      lcd_drawhanzimo(0+10,0,&Fls_to_Lcd);
 138   1              } */
 139   1              while(1);
 140   1      }
*** WARNING C280 IN LINE 83 OF MAIN.C: 'j': unreferenced local variable
*** WARNING C316 IN LINE 140 OF main.c: unterminated conditionals


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    265    ----
   CONSTANT SIZE    =    128    ----
   XDATA SIZE       =      5       3
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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