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

📄 memory.lst

📁 基于MST-G240128点阵液晶的 状态机机制 人机界面四级滚屏菜单 源代码 ,带时间片机制模拟操作系统
💻 LST
字号:
C51 COMPILER V7.20   MEMORY                                                                01/31/2007 10:20:43 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE MEMORY
OBJECT MODULE PLACED IN memory.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\c51.exe memory.c DB OE

line level    source

   1          /****************************************************************************
   2           **
   3           ** 文件名:  momery.c
   4           ** 功能:    C8051Fxxx的SRAM驱动;
   5           ** 创建时间:2005.08.05
   6          
   7           ** 修改时间:2005.12.01
   8           ** 修改说明:
   9          
  10           ** 作者:    李立学
  11           ** 版权申明:可以拷贝,可以修改,但必须保留修改时间和作者信息
  12           ** 
  13           ****************************************************************************/
  14          
  15          
  16          #include "LZK.H"
  17          
  18          
  19          /****************************************************************************
  20          ** 函数名称: ExInSRAM_Select()
  21          ** 功能描述: 片外/片内SRAM选择
  22          ** 入口参数: ExInSRAM,
  23                       0:选择片内SRAM;
  24                                           1:选择片外SRAM;
  25          ** 出口参数: 无
  26          ** 全局变量: 无
  27          ** 调用模块: 无
  28          ** 说明:
  29          ****************************************************************************/
  30          void ExInSRAM_Select(bit ExInSRAM)
  31          {
  32   1         SFRPAGE = 0x00;
  33   1         if( ExInSRAM )         // ExInSRAM = 1: Use External SRAM,800k/S.
  34   1         {
  35   2            EMI0CF = 0x25;      // 0010_1101,  ALE: 2SYSCLK. External SRAM Only.     
  36   2            EMI0TC = 0x49;      // 01_0010_01: AST:1,nWR/nRd:3SYSCLK,AHT:1. 
  37   2         }
  38   1         else                   // ExInSRAM = 0: Use Internal SRAM,900k/S.
  39   1         {
  40   2            EMI0CF = 0x00;      // 0000 0000,  ALE: 1SYSCLK. Internal SRAM Only.    
  41   2            EMI0TC = 0x00;      // 00 0000 00: AST:0,nWR/nRd:0SYSCLK,AHT:0. 
  42   2         }
  43   1      }
  44          
  45          /****************************************************************************
  46          ** 函数名称: ExSRAM_PageSetting()
  47          ** 功能描述: 片外SRAM页选择,每页64kB
  48          ** 入口参数: PageNum,片外SRAM页号,0~31;
  49          ** 出口参数: 无
  50          ** 全局变量: ucP4DATA
  51          ** 调用模块: 无
  52          ** 说明:
  53          ****************************************************************************/
  54          void ExSRAM_PageSetting(uint8 PageNum)
  55          {
C51 COMPILER V7.20   MEMORY                                                                01/31/2007 10:20:43 PAGE 2   

  56   1         uint8 ucTMP;
  57   1      
  58   1         if( PageNum >= 16 )
  59   1                return;
  60   1         /*******************************
  61   1               *** Switch to ExSRAM ***
  62   1               *******************************/ 
  63   1         SFRPAGE = 0x00;
  64   1         EMI0CF  = 0x2d;      // 0010 1101,  ALE: 2SYSCLK. External SRAM Only.      
  65   1         EMI0TC  = 0x49;      // 01 0010 01: AST:1,nWR/nRd:3SYSCLK,AHT:1. 
  66   1      
  67   1         SFRPAGE = 0x0f;
  68   1         ucTMP = ucP4DATA & 0xC0 | PageNum;  // ExSRAM Page Caculate,nMCS = 0; 
  69   1         P4 = ucTMP;                         // ExSRAM Page Setting.
  70   1         SFRPAGE = 0x00;
  71   1      }
  72          
  73          /****************************************************************************
  74          ** 函数名称: InSRAM_SelfTest()
  75          ** 功能描述: 片内SRAM自检测试
  76          ** 入口参数: 无
  77          ** 出口参数: 0/1:自检错误/自检正常
  78          ** 全局变量: 无
  79          ** 调用模块: 无
  80          ** 说明:
  81          ****************************************************************************/
  82          bit InSRAM_SelfTest(void)      // Toatal bytes: 4k( from 0x0000~0x0fff)
  83          {
  84   1         uint16 data  i;  
  85   1         uint8  data  j,ucTMP;
  86   1         uint8  xdata *idata p1;
  87   1           
  88   1         p1 = 0x0000;
  89   1         for(i=0x0000;i<0x0fff;i++)
  90   1         {
  91   2            j = i >> 8;              // 256 bytes every SmallPage.
  92   2            *p1 = j;
  93   2            p1++;                    // Address Increase 1. 
  94   2         } 
  95   1         p1 = 0x0000;
  96   1         for(i=0x0000;i<0x0fff;i++)
  97   1         {
  98   2            j = i >> 8;
  99   2            ucTMP = *p1;
 100   2                p1++;
 101   2                if(ucTMP != j)
 102   2                  return 1;
 103   2         }
 104   1         p1 = 0x0000;
 105   1         for(i=0;i<0x0fff;i++)
 106   1         {
 107   2            *p1 = 0x55;
 108   2            p1++;
 109   2         }
 110   1         p1 = 0x0000;
 111   1         for(i=0;i<0x0fff;i++)
 112   1         {
 113   2            ucTMP = *p1;
 114   2            if(ucTMP != 0x55)
 115   2              return 1;
 116   2         }
 117   1         p1 = 0x0000;
C51 COMPILER V7.20   MEMORY                                                                01/31/2007 10:20:43 PAGE 3   

 118   1         for(i=0;i<0x0fff;i++)
 119   1         {
 120   2            *p1 = 0xaa;
 121   2            p1++;
 122   2         }
 123   1         p1 = 0x0000;
 124   1         for(i=0;i<0x0fff;i++)
 125   1         {
 126   2            ucTMP = *p1;
 127   2                if(ucTMP != 0xaa)
 128   2              return 1;
 129   2         }
 130   1         j=0;
 131   1         p1 = 0x0000;
 132   1         for(i=0x0000;i<0x0fff;i++)
 133   1         {
 134   2            *p1 = j;
 135   2                p1++;
 136   2            j++;
 137   2         }
 138   1         j=0;
 139   1         p1 = 0x0000;
 140   1         for(i=0x0000;i<0x0fff;i++)
 141   1         {
 142   2            ucTMP = *p1;
 143   2                p1++;
 144   2                if(ucTMP != j)
 145   2              return 1;        // Testing fail
 146   2            j++;
 147   2         } 
 148   1         return 0;             // Testing success
 149   1      }
 150          
 151          /****************************************************************************
 152          ** 函数名称: ExSRAM_SelfTest()
 153          ** 功能描述: 片外SRAM自检测试
 154          ** 入口参数: 无
 155          ** 出口参数: 0/1:自检错误/自检正常
 156          ** 全局变量: 无
 157          ** 调用模块: ExSRAM_PageSetting();
 158          ** 说明:
 159          ****************************************************************************/
 160          bit ExSRAM_SelfTest(void)
 161          {
 162   1         uint16 data i;  
 163   1         uint8  data j, ucTMP, PageNum;
 164   1      
 165   1         uint8  xdata *idata p1;
 166   1           
 167   1         for(PageNum=0;PageNum<8;PageNum++)  // Step 1;
 168   1         { 
 169   2            ExSRAM_PageSetting(PageNum);
 170   2            p1 = 0x0000;
 171   2            for(i=0x0000;i<0xffff;i++)
 172   2            {
 173   3                   j = i >> 8;              // 256 bytes every SmallPage.
 174   3               *p1 = j;
 175   3               p1++;                    // Address Increase 1. 
 176   3            } 
 177   2            p1 = 0x0000;
 178   2                for(i=0x0000;i<0xffff;i++)
 179   2                {
C51 COMPILER V7.20   MEMORY                                                                01/31/2007 10:20:43 PAGE 4   

 180   3                   j = i >> 8;
 181   3               ucTMP = *p1;
 182   3                       p1++;
 183   3                       if(ucTMP != j)
 184   3                         return 1;
 185   3            }
 186   2         }
 187   1         for(PageNum=0;PageNum<8;PageNum++)  // Step 2; 
 188   1         {
 189   2            ExSRAM_PageSetting(PageNum);
 190   2            p1 = 0x0000;
 191   2            for(i=0;i<0xffff;i++)
 192   2                {
 193   3                  *p1 = 0x55;
 194   3              p1++;
 195   3            }
 196   2            p1 = 0x0000;
 197   2            for(i=0;i<0xffff;i++)
 198   2            {
 199   3              ucTMP = *p1;
 200   3              if(ucTMP != 0x55)
 201   3                 return 1;
 202   3            }
 203   2         }
 204   1         for(PageNum=0;PageNum<8;PageNum++)  // Step 3;
 205   1         {
 206   2            ExSRAM_PageSetting(PageNum);
 207   2            p1 = 0x0000;
 208   2            for(i=0;i<0xffff;i++)
 209   2                {
 210   3                   *p1 = 0xaa;
 211   3               p1++;
 212   3            }
 213   2            p1 = 0x0000;
 214   2            for(i=0;i<0xffff;i++)
 215   2            {
 216   3               ucTMP = *p1;
 217   3               if(ucTMP != 0xaa)
 218   3                 return 1;
 219   3            }
 220   2         }
 221   1         for(PageNum=0;PageNum<8;PageNum++)  // Step 4;
 222   1         {
 223   2            ExSRAM_PageSetting(PageNum);
 224   2            j=0;
 225   2            p1 = 0x0000;
 226   2            for(i=0x0000;i<0xffff;i++)
 227   2            {
 228   3               *p1 = j;
 229   3                       p1++;
 230   3               j++;
 231   3            }
 232   2            j=0;
 233   2                p1 = 0x0000;
 234   2            for(i=0x0000;i<0xffff;i++)
 235   2            {
 236   3               ucTMP = *p1;
 237   3                       p1++;
 238   3                       if(ucTMP != j)
 239   3                 return 1;     // Testing fail
 240   3               j++;
 241   3            }
C51 COMPILER V7.20   MEMORY                                                                01/31/2007 10:20:43 PAGE 5   

 242   2         } 
 243   1         ExSRAM_PageSetting(0);
 244   1         return 0;             // Testing success
 245   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    741    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----       4
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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