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

📄 c_block1.lst

📁 一个用SST单片机实现单字节FLASH数据存储代替EEPROM的实用例子
💻 LST
字号:
C51 COMPILER V7.50   C_BLOCK1                                                              11/04/2005 23:41:37 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE C_BLOCK1
OBJECT MODULE PLACED IN C_BLOCK1.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE C_BLOCK1.c OPTIMIZE(4,SPEED) BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS

line level    source

   1          /*********************************************************************************************************
             -**
   2          * C_BLOCK1.c - 如何在C51中实现绝对地址定位的一个文件例子
   3          *            弘微科技(SPAC)  田伯运    
   4          *               WEB: www.spacltd.com.cn         TEL:0755-26010579   E-MAIL:andy.tian@spacltd.com.cn
   5          *
   6          * 功能介绍: 
   7          *                 如何使用地址定位指令,将C_BLOCK1.C文件中的所有程序定位到0XF800的地址空间内
   8          *         使SST的单片机第2个存储块也可作为统一的程序存储区
   9          *                 将原本8K的程序存储区的SST89E/V52RD2变为16K的程序存储区
  10          *
  11          *                 解决方法:在连接选项"KEIL C51/PROJECT/OPTIONS FOR TARGET/BL51 LOCATE/CODE"中
  12          *                                       加入模块定位命令:"*C_BLOCK1(0XF800)"
  13          *                  *C_BLOCK1(0XF800)---使C_BLOCK1.C文件中所有的函数都连续定位到0XF800后面的区域
  14          *                  ?PR?_DELAYMS?C_BLOCK1(0XF800)---表示只将C_BLOCK1.C文件中的DELAYMS函数定位到0XF800后面的区域
  15          **********************************************************************************************************
             -*/
  16          
  17          
  18          
  19          
  20          /*********************************************************************************************************
             -**
  21          * 本文件中用到的函数声明列表
  22          **********************************************************************************************************
             -*/
  23          void DelayUs(unsigned char n);
  24          void DelayMs(unsigned char n);
  25          void delay_100ms(unsigned char n);
  26          
  27          //***********************************************************
  28          // 本文件中函数定义
  29          //***********************************************************
  30          void DelayUs(unsigned char n)
  31          {
  32   1              while(n--);
  33   1      }
  34          
  35          //Using 12M
  36          void DelayMs(unsigned char n)
  37          {
  38   1              unsigned char i;
  39   1              for(;n>0;n--)
  40   1              {
  41   2                      for(i=0;i<160;i++);
  42   2                      for(i=0;i<165;i++);
  43   2              }
  44   1      }
  45          
  46          //******************************************************
  47          //      delay_100ms:延时100毫秒的函数;按照晶振为12MHZ计算
  48          //******************************************************
  49          void delay_100ms(unsigned char n)
  50          {
  51   1              unsigned int i; 
C51 COMPILER V7.50   C_BLOCK1                                                              11/04/2005 23:41:37 PAGE 2   

  52   1              for(;n>0;n--)
  53   1              {
  54   2                      for(i=0;i<2000;i++);    
  55   2              }
  56   1      }       
C51 COMPILER V7.50   C_BLOCK1                                                              11/04/2005 23:41:37 PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _DelayUs (BEGIN)
                                           ; SOURCE LINE # 30
;---- Variable 'n' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 31
0000         ?C0001:
                                           ; SOURCE LINE # 32
0000 AE07              MOV     R6,AR7
0002 1F                DEC     R7
0003 EE                MOV     A,R6
0004 70FA              JNZ     ?C0001
                                           ; SOURCE LINE # 33
0006         ?C0003:
0006 22                RET     
             ; FUNCTION _DelayUs (END)

             ; FUNCTION _DelayMs (BEGIN)
                                           ; SOURCE LINE # 36
;---- Variable 'n' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 37
                                           ; SOURCE LINE # 39
0000         ?C0004:
0000 EF                MOV     A,R7
0001 D3                SETB    C
0002 9400              SUBB    A,#00H
0004 4019              JC      ?C0013
                                           ; SOURCE LINE # 40
                                           ; SOURCE LINE # 41
;---- Variable 'i' assigned to Register 'R6' ----
0006 E4                CLR     A
0007 FE                MOV     R6,A
0008         ?C0007:
0008 EE                MOV     A,R6
0009 C3                CLR     C
000A 94A0              SUBB    A,#0A0H
000C 5003              JNC     ?C0008
000E 0E                INC     R6
000F 80F7              SJMP    ?C0007
0011         ?C0008:
                                           ; SOURCE LINE # 42
0011 E4                CLR     A
0012 FE                MOV     R6,A
0013         ?C0010:
0013 EE                MOV     A,R6
0014 C3                CLR     C
0015 94A5              SUBB    A,#0A5H
0017 5003              JNC     ?C0006
0019 0E                INC     R6
001A 80F7              SJMP    ?C0010
                                           ; SOURCE LINE # 43
001C         ?C0006:
001C 1F                DEC     R7
001D 80E1              SJMP    ?C0004
                                           ; SOURCE LINE # 44
001F         ?C0013:
001F 22                RET     
             ; FUNCTION _DelayMs (END)

             ; FUNCTION _delay_100ms (BEGIN)
                                           ; SOURCE LINE # 49
C51 COMPILER V7.50   C_BLOCK1                                                              11/04/2005 23:41:37 PAGE 4   

;---- Variable 'n' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 50
                                           ; SOURCE LINE # 52
0000         ?C0014:
0000 EF                MOV     A,R7
0001 D3                SETB    C
0002 9400              SUBB    A,#00H
0004 4016              JC      ?C0020
                                           ; SOURCE LINE # 53
                                           ; SOURCE LINE # 54
;---- Variable 'i' assigned to Register 'R4/R5' ----
0006 E4                CLR     A
0007 FD                MOV     R5,A
0008 FC                MOV     R4,A
0009         ?C0017:
0009 C3                CLR     C
000A ED                MOV     A,R5
000B 94D0              SUBB    A,#0D0H
000D EC                MOV     A,R4
000E 9407              SUBB    A,#07H
0010 5007              JNC     ?C0016
0012 0D                INC     R5
0013 ED                MOV     A,R5
0014 7001              JNZ     ?C0021
0016 0C                INC     R4
0017         ?C0021:
0017 80F0              SJMP    ?C0017
                                           ; SOURCE LINE # 55
0019         ?C0016:
0019 1F                DEC     R7
001A 80E4              SJMP    ?C0014
                                           ; SOURCE LINE # 56
001C         ?C0020:
001C 22                RET     
             ; FUNCTION _delay_100ms (END)

C51 COMPILER V7.50   C_BLOCK1                                                              11/04/2005 23:41:37 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


_DelayMs . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  n. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
_DelayUs . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  n. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
_delay_100ms . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  n. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0004H  2


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     68    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   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 + -