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

📄 memext.lst

📁 51单片机扩展64K以上数据存储区的源码。 已经过测试
💻 LST
字号:
C51 COMPILER V7.06   MEMEXT                                                                05/27/2008 10:13:21 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MEMEXT
OBJECT MODULE PLACED IN Memext.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE Memext.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg52.h>
   2          #include <absacc.h>
   3          #include "memext.h"
   4          
   5          sbit MEM_CE = P1^4;
   6          
   7          #define TEST_BASE              0x00
   8          
   9          
  10          void delay(unsigned int n)
  11          {
  12   1         unsigned int i;
  13   1         for(i = 0;i<n;i++);
  14   1      }
  15          
  16          uchar Read_Byte(uint address,uchar page)
  17          {
  18   1         uchar c; 
  19   1              //////num always < 8
  20   1         page &= MAX_PAGE_MASK;           /////pages always less than 16
  21   1         
  22   1         EA = 0;                             ////disable the interrupt
  23   1      
  24   1         c = P1 &     MEM_P1_HIGH;
  25   1         P1 = c | (page & MEM_P1_LOW); 
  26   1           
  27   1         MEM_CE = 0;
  28   1         //delay(100);
  29   1         c  =  XBYTE[address];
  30   1         //delay(100);
  31   1         MEM_CE = 1; 
  32   1              
  33   1         P1 &= MEM_P1_HIGH;
  34   1         EA = 1  ;
  35   1         return c;
  36   1      
  37   1      }
  38          
  39          void page_input(uint address,uchar page,uchar num,uchar *pXfer_Buf)
  40          {
  41   1         uchar c,c1; 
  42   1         num &= MAX_NUM_MASK;        //////num always < 8
  43   1         page &= MAX_PAGE_MASK;           /////pages always less than 16
  44   1         
  45   1         EA = 0;                             ////disable the interrupt
  46   1       ////  P1 = page;
  47   1              ////only change the 4LSB of P1
  48   1        /// MEM_CE = 0;
  49   1         c = P1 &     MEM_P1_HIGH;
  50   1         P1 = c | (page & MEM_P1_LOW); 
  51   1         
  52   1        
  53   1         for(c1 = 0;c1 < num; c1++)
  54   1         {
  55   2          MEM_CE = 0;
C51 COMPILER V7.06   MEMEXT                                                                05/27/2008 10:13:21 PAGE 2   

  56   2                pXfer_Buf[c1] =  XBYTE[address+c1];
  57   2                 MEM_CE = 1; 
  58   2               // delay(300);
  59   2         }
  60   1        
  61   1      ///   MEM_CE = 1;       
  62   1         P1 &= MEM_P1_HIGH;
  63   1         EA = 1  ;
  64   1      
  65   1      }
  66          
  67          void main(void)
  68          {
  69   1              char c1,c3;
  70   1              //char c2[1];
  71   1              uint i,j;
  72   1      
  73   1              TMOD = 0x20;
  74   1              TH1 =0xfd;
  75   1              SCON = 0x50;
  76   1              TR1 = 1;
  77   1      
  78   1              while(1)
  79   1              {
  80   2              for(j=0;j<6;j++)
  81   2              {
  82   3                 for(i = 0; i<0xff;i++)
  83   3                {
  84   4                 ///   page_input(TEST_BASE + i,j,1,c2);
  85   4                 c3 = Read_Byte(TEST_BASE+i,j);
  86   4                     delay(10000);
  87   4                    // P1 = ~c1;
  88   4                         c1 = TEST_BASE+i;
  89   4                        SBUF = c1;
  90   4                        while(TI == 0);TI = 0;
  91   4      
  92   4              ////  SBUF = c2[0];
  93   4                SBUF = c3;
  94   4                        while(TI == 0);
  95   4                        TI = 0;
  96   4      
  97   4                 }
  98   3                /// while(1);
  99   3                SBUF = 0xff;
 100   3                while(TI == 0);TI = 0;          SBUF = 0xff;
 101   3                while(TI == 0);TI = 0;                  SBUF = 0xff;
 102   3                while(TI == 0);TI = 0;                  SBUF = 0xff;
 103   3                while(TI == 0);TI = 0;          SBUF = 0xff;
 104   3                while(TI == 0);TI = 0;
 105   3              
 106   3                delay(65535); delay(65535); delay(65535);
 107   3                /// P1 = ~c1; delay(65535); delay(65535);
 108   3              } ///delay(65535); delay(65535);delay(65535); delay(65535);delay(65535); delay(65535);
 109   2      
 110   2      
 111   2                 
 112   2              }
 113   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    258    ----
C51 COMPILER V7.06   MEMEXT                                                                05/27/2008 10:13:21 PAGE 3   

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       9
   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 + -