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

📄 startup.lst

📁 RS-485双机通信 RS-485双机通信-
💻 LST
字号:
A51 MACRO ASSEMBLER  STARTUP                                                              10/09/2006 14:14:48 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN STARTUP.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE STARTUP.A51 SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     $nomod51 
                       2     ;------------------------------------------------------------------------------
                       3     ;  This file is part of the C51 Compiler package
                       4     ;  Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
                       5     ;------------------------------------------------------------------------------
                       6     ;  STARTUP.A51:  This code is executed after processor reset.
                       7     ;
                       8     ;  To translate this file use A51 with the following invocation:
                       9     ;
                      10     ;     A51 STARTUP.A51
                      11     ;
                      12     ;  To link the modified STARTUP.OBJ file to your application use the following
                      13     ;  BL51 invocation:
                      14     ;
                      15     ;     BL51 <your object file list>, STARTUP.OBJ <controls>
                      16     ;
                      17     ;------------------------------------------------------------------------------
                      18     ;
                      19     ;  User-defined Power-On Initialization of Memory
                      20     ;
                      21     ;  With the following EQU statements the initialization of memory
                      22     ;  at processor reset can be defined:
                      23     ;
                      24     ;               ; the absolute start-address of IDATA memory is always 0
  0080                25     IDATALEN        EQU     80H     ; the length of IDATA memory in bytes.
                      26     ;
  0000                27     XDATASTART      EQU     0H      ; the absolute start-address of XDATA memory
  0000                28     XDATALEN        EQU     0H      ; the length of XDATA memory in bytes.
                      29     ;
  0000                30     PDATASTART      EQU     0H      ; the absolute start-address of PDATA memory
  0000                31     PDATALEN        EQU     0H      ; the length of PDATA memory in bytes.
                      32     ;
                      33     ;  Notes:  The IDATA space overlaps physically the DATA and BIT areas of the
                      34     ;          8051 CPU. At minimum the memory space occupied from the C51 
                      35     ;          run-time routines must be set to zero.
                      36     ;------------------------------------------------------------------------------
                      37     ;
                      38     ;  Reentrant Stack Initilization
                      39     ;
                      40     ;  The following EQU statements define the stack pointer for reentrant
                      41     ;  functions and initialized it:
                      42     ;
                      43     ;  Stack Space for reentrant functions in the SMALL model.
  0000                44     IBPSTACK        EQU     0       ; set to 1 if small reentrant is used.
  0100                45     IBPSTACKTOP     EQU     0FFH+1  ; set top of stack to highest location+1.
                      46     ;
                      47     ;  Stack Space for reentrant functions in the LARGE model.      
  0000                48     XBPSTACK        EQU     0       ; set to 1 if large reentrant is used.
  0000                49     XBPSTACKTOP     EQU     0FFFFH+1; set top of stack to highest location+1.
                      50     ;
                      51     ;  Stack Space for reentrant functions in the COMPACT model.    
  0000                52     PBPSTACK        EQU     0       ; set to 1 if compact reentrant is used.
  0000                53     PBPSTACKTOP     EQU     0FFFFH+1; set top of stack to highest location+1.
                      54     ;
                      55     ;------------------------------------------------------------------------------
                      56     ;
                      57     ;  Page Definition for Using the Compact Model with 64 KByte xdata RAM
                      58     ;
A51 MACRO ASSEMBLER  STARTUP                                                              10/09/2006 14:14:48 PAGE     2

                      59     ;  The following EQU statements define the xdata page used for pdata
                      60     ;  variables. The EQU PPAGE must conform with the PPAGE control used
                      61     ;  in the linker invocation.
                      62     ;
  0000                63     PPAGEENABLE     EQU     0       ; set to 1 if pdata object are used.
                      64     ;
  0000                65     PPAGE           EQU     0       ; define PPAGE number.
                      66     ;
  00A0                67     PPAGE_SFR       DATA    0A0H    ; SFR that supplies uppermost address byte
                      68     ;               (most 8051 variants use P2 as uppermost address byte)
                      69     ;
                      70     ;------------------------------------------------------------------------------
                      71     
                      72     ; Standard SFR Symbols 
  00E0                73     ACC     DATA    0E0H
  00F0                74     B       DATA    0F0H
  0081                75     SP      DATA    81H
  0082                76     DPL     DATA    82H
  0083                77     DPH     DATA    83H
                      78     
                      79                     NAME    ?C_STARTUP
                      80     
                      81     
                      82     ?C_C51STARTUP   SEGMENT   CODE
                      83     ?STACK          SEGMENT   IDATA
                      84     
----                  85                     RSEG    ?STACK
0000                  86                     DS      1
                      87     
                      88                     EXTRN CODE (?C_START)
                      89                     PUBLIC  ?C_STARTUP
                      90     
----                  91                     CSEG    AT      0
0000 020000   F       92     ?C_STARTUP:     LJMP    STARTUP1
                      93     
----                  94                     RSEG    ?C_C51STARTUP
                      95     
0000                  96     STARTUP1:
                      97     ;在这里插入串行口初始化代码
  2580                98     BaudRate        EQU     9600            ;定义波特率(晶振11.0592MHz)
  0087                99     PCON    DATA    0x87
  0089               100     TMOD    DATA    0x89
  008B               101     TL1     DATA    0x8B
  008D               102     TH1     DATA    0x8D
  008E               103     TR1     BIT     0x8E
  0098               104     SCON    DATA    0x98
0000 759852          105                     MOV     SCON, #0x52     ;串口方式1(8位UART),允许接收,置位TI
0003 438780          106                     ORL     PCON, #0x80     ;波特率加倍
0006 53890F          107                     ANL     TMOD, #0x0F     ;设置T1为8位自动重装定时器,用于产生波特率
0009 438920          108                     ORL     TMOD, #0x20
000C 758BFA          109                     MOV     TL1, #(256-57600/BaudRate)      ;根据波特率设置T1初值
000F 858B8D          110                     MOV     TH1, TL1
0012 D28E            111                     SETB    TR1
                     112     
                     113     IF IDATALEN <> 0
0014 787F            114                     MOV     R0,#IDATALEN - 1
0016 E4              115                     CLR     A
0017 F6              116     IDATALOOP:      MOV     @R0,A
0018 D8FD            117                     DJNZ    R0,IDATALOOP
                     118     ENDIF
                     119     
                     120     IF XDATALEN <> 0
                                             MOV     DPTR,#XDATASTART
                                             MOV     R7,#LOW (XDATALEN)
                               IF (LOW (XDATALEN)) <> 0
                                             MOV     R6,#(HIGH (XDATALEN)) +1
A51 MACRO ASSEMBLER  STARTUP                                                              10/09/2006 14:14:48 PAGE     3

                               ELSE
                                             MOV     R6,#HIGH (XDATALEN)
                               ENDIF
                                             CLR     A
                             XDATALOOP:      MOVX    @DPTR,A
                                             INC     DPTR
                                             DJNZ    R7,XDATALOOP
                                             DJNZ    R6,XDATALOOP
                             ENDIF
                     134     
                     135     IF PPAGEENABLE <> 0
                                             MOV     PPAGE_SFR,#PPAGE
                             ENDIF
                     138     
                     139     IF PDATALEN <> 0
                                             MOV     R0,#LOW (PDATASTART)
                                             MOV     R7,#LOW (PDATALEN)
                                             CLR     A
                             PDATALOOP:      MOVX    @R0,A
                                             INC     R0
                                             DJNZ    R7,PDATALOOP
                             ENDIF
                     147     
                     148     IF IBPSTACK <> 0
                             EXTRN DATA (?C_IBP)
                             
                                             MOV     ?C_IBP,#LOW IBPSTACKTOP
                             ENDIF
                     153     
                     154     IF XBPSTACK <> 0
                             EXTRN DATA (?C_XBP)
                             
                                             MOV     ?C_XBP,#HIGH XBPSTACKTOP
                                             MOV     ?C_XBP+1,#LOW XBPSTACKTOP
                             ENDIF
                     160     
                     161     IF PBPSTACK <> 0
                             EXTRN DATA (?C_PBP)
                                             MOV     ?C_PBP,#LOW PBPSTACKTOP
                             ENDIF
                     165     
001A 758100   F      166                     MOV     SP,#?STACK-1
                     167     ; This code is required if you use L51_BANK.A51 with Banking Mode 4
                     168     ; EXTRN CODE (?B_SWITCH0)
                     169     ;               CALL    ?B_SWITCH0      ; init bank mechanism to code bank 0
001D 020000   F      170                     LJMP    ?C_START
                     171     
                     172                     END
A51 MACRO ASSEMBLER  STARTUP                                                              10/09/2006 14:14:48 PAGE     4

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

?C_C51STARTUP. . .  C SEG    0020H       REL=UNIT
?C_START . . . . .  C ADDR   -----       EXT
?C_STARTUP . . . .  C ADDR   0000H   A   
?STACK . . . . . .  I SEG    0001H       REL=UNIT
ACC. . . . . . . .  D ADDR   00E0H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
BAUDRATE . . . . .  N NUMB   2580H   A   
DPH. . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . .  D ADDR   0082H   A   
IBPSTACK . . . . .  N NUMB   0000H   A   
IBPSTACKTOP. . . .  N NUMB   0100H   A   
IDATALEN . . . . .  N NUMB   0080H   A   
IDATALOOP. . . . .  C ADDR   0017H   R   SEG=?C_C51STARTUP
PBPSTACK . . . . .  N NUMB   0000H   A   
PBPSTACKTOP. . . .  N NUMB   0000H   A   
PCON . . . . . . .  D ADDR   0087H   A   
PDATALEN . . . . .  N NUMB   0000H   A   
PDATASTART . . . .  N NUMB   0000H   A   
PPAGE. . . . . . .  N NUMB   0000H   A   
PPAGEENABLE. . . .  N NUMB   0000H   A   
PPAGE_SFR. . . . .  D ADDR   00A0H   A   
SCON . . . . . . .  D ADDR   0098H   A   
SP . . . . . . . .  D ADDR   0081H   A   
STARTUP1 . . . . .  C ADDR   0000H   R   SEG=?C_C51STARTUP
TH1. . . . . . . .  D ADDR   008DH   A   
TL1. . . . . . . .  D ADDR   008BH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR1. . . . . . . .  B ADDR   0088H.6 A   
XBPSTACK . . . . .  N NUMB   0000H   A   
XBPSTACKTOP. . . .  N NUMB   0000H   A   
XDATALEN . . . . .  N NUMB   0000H   A   
XDATASTART . . . .  N NUMB   0000H   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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