📄 start_xc.lst
字号:
151
152 EXTRN CODE (?C_START)
153 PUBLIC ?C_STARTUP
154
000000 155 CSEG AT 0
000000 020000 F 156 ?C_STARTUP: LJMP STARTUP1
157
------ 158 RSEG ?C_C51STARTUP
159
000000 160 STARTUP1:
161
162 IF XTAL <> 0
; switch to external XTAL
MOV SCU_PAGE,#1
ORL PLL_CON, #0x04 ; OSCDISC = 1 _ _ _ NDIV, VCOBYP, OSCDISC, RES
LD, LOCK
ORL OSC_CON, #0x04 ; OSCSS = 1 0, 0, 0, OSCPD, XPD, OSCSS, ORDR
ES, OSCR
ANL OSC_CON, #0xF7 ; XPD = 0 power xtal
MOV R0,#10 ; delay around 1.5 ms
DelayXTAL:
DJNZ R1,$
DJNZ R0,DelayXTAL
; redetection of osc
OSCR_NOTSET:
ORL OSC_CON, #0x02 ; ORDRES = 1
WAIT_ORDRES_0:
MOV A,OSC_CON
JB ACC.1,WAIT_ORDRES_0
JNB ACC.0,OSCR_NOTSET
; VCOBYP to change N-Divider
ORL PLL_CON, #0x08 ; VCOBYP = 1
ANL PLL_CON, #0xFB ; OSCDISC = 0
MOV PASSWD, #0x98 ; open access to writing protected bit
ANL PLL_CON, #0x0F
ORL PLL_CON, #NDIV*16
ORL PLL_CON, #0x02 ; detect PLL lock
AX51 MACRO ASSEMBLER START_XC 01/01/03 05:11:18 PAGE 4
WAIT_LOCK:
MOV A, PLL_CON
JNB ACC.0, WAIT_LOCK
; reconnect to PLL
ANL PLL_CON, #0xF7 ; VCOBYP = 0
MOV SCU_PAGE,#0
ENDIF
196
197 IF IDATALEN <> 0
000000 787F 198 MOV R0,#IDATALEN - 1
000002 E4 199 CLR A
000003 F6 200 IDATALOOP: MOV @R0,A
000004 D8FD 201 DJNZ R0,IDATALOOP
202 ENDIF
203
204 IF XDATALEN <> 0
000006 90F000 205 MOV DPTR,#XDATASTART
000009 7F00 206 MOV R7,#LOW (XDATALEN)
207 IF (LOW (XDATALEN)) <> 0
MOV R6,#(HIGH (XDATALEN)) +1
ELSE
00000B 7E02 210 MOV R6,#HIGH (XDATALEN)
211 ENDIF
00000D E4 212 CLR A
00000E F0 213 XDATALOOP: MOVX @DPTR,A
00000F A3 214 INC DPTR
000010 DFFC 215 DJNZ R7,XDATALOOP
000012 DEFA 216 DJNZ R6,XDATALOOP
217 ENDIF
218
219 IF PPAGEENABLE <> 0
MOV PPAGE_SFR,#PPAGE
ENDIF
222
223 IF PDATALEN <> 0
MOV R0,#LOW (PDATASTART)
MOV R7,#LOW (PDATALEN)
CLR A
PDATALOOP: MOVX @R0,A
INC R0
DJNZ R7,PDATALOOP
ENDIF
231
232 IF IBPSTACK <> 0
EXTRN DATA (?C_IBP)
MOV ?C_IBP,#LOW IBPSTACKTOP
ENDIF
237
238 IF XBPSTACK <> 0
EXTRN DATA (?C_XBP)
MOV ?C_XBP,#HIGH XBPSTACKTOP
MOV ?C_XBP+1,#LOW XBPSTACKTOP
ENDIF
244
245 IF PBPSTACK <> 0
EXTRN DATA (?C_PBP)
MOV ?C_PBP,#LOW PBPSTACKTOP
ENDIF
249
000014 758100 F 250 MOV SP,#?STACK-1
251
000017 020000 E 252 LJMP ?C_START
253
254 ; Overwrite ?C?DPSEL address for XC866 Device
AX51 MACRO ASSEMBLER START_XC 01/01/03 05:11:18 PAGE 5
255 PUBLIC ?C?DPSEL
00A2 256 ?C?DPSEL DATA 0A2H ; DPSEL address for Mentor M8051EW
257
258 END
259
AX51 MACRO ASSEMBLER START_XC 01/01/03 05:11:18 PAGE 6
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?C?DPSEL . . . . . . . . . . . D ADDR 00A2H A
?C_C51STARTUP. . . . . . . . . C SEG 00001AH REL=UNIT, ALN=BYTE
?C_START . . . . . . . . . . . C ADDR ------- EXT
?C_STARTUP . . . . . . . . . . C ADDR 0000H R SEG=?CO?START_XC?3
?STACK . . . . . . . . . . . . I SEG 000001H REL=UNIT, ALN=BYTE
ACC. . . . . . . . . . . . . . D ADDR 00E0H A
B. . . . . . . . . . . . . . . D ADDR 00F0H 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 0003H R SEG=?C_C51STARTUP
NDIV . . . . . . . . . . . . . N NUMB 0002H A
OSC_CON. . . . . . . . . . . . D ADDR 00B6H A
PASSWD . . . . . . . . . . . . D ADDR 00BBH A
PBPSTACK . . . . . . . . . . . N NUMB 0000H A
PBPSTACKTOP. . . . . . . . . . N NUMB 0100H A
PDATALEN . . . . . . . . . . . N NUMB 0000H A
PDATASTART . . . . . . . . . . N NUMB 0000H A
PLL_CON. . . . . . . . . . . . D ADDR 00B7H A
PPAGE. . . . . . . . . . . . . N NUMB 00F0H A
PPAGE_SFR. . . . . . . . . . . D ADDR 00A0H A
PPAGEENABLE. . . . . . . . . . N NUMB 0000H A
SCU_PAGE . . . . . . . . . . . D ADDR 00BFH A
SP . . . . . . . . . . . . . . D ADDR 0081H A
STARTUP1 . . . . . . . . . . . C ADDR 0000H R SEG=?C_C51STARTUP
XBPSTACK . . . . . . . . . . . N NUMB 0000H A
XBPSTACKTOP. . . . . . . . . . N NUMB 00010000H A
XDATALEN . . . . . . . . . . . N NUMB 0200H A
XDATALOOP. . . . . . . . . . . C ADDR 000EH R SEG=?C_C51STARTUP
XDATASTART . . . . . . . . . . N NUMB F000H A
XTAL . . . . . . . . . . . . . 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 + -