《一个led闪烁的代码》由会员分享,可在线阅读,更多相关《一个led闪烁的代码(5页珍藏版)》请在金锄头文库上搜索。
1、$NOMOD51 ;- ; This file is part of the C51 Compiler package ; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc. ; Version 8.01 ; ; * * ;- ; STARTUP.A51: This code is executed after processor reset. ; ; To translate this file use A51 with the following invocation: ; ; A51 STARTUP.A
2、51 ; ; To link the modified STARTUP.OBJ file to your application use the following ; Lx51 invocation: ; ; Lx51 your object file list, STARTUP.OBJ controls ; ;- ; ; User-defined Power-On Initialization of Memory ; ; With the following EQU statements the initialization of memory ; at processor reset c
3、an be defined: ; ; IDATALEN: IDATA memory size ; Note: The absolute start-address of IDATA memory is always 0 ; The IDATA space overlaps physically the DATA and BIT areas. IDATALEN EQU 80H ; ; XDATASTART: XDATA memory start address ; The absolute start address of XDATA memory XDATASTART EQU 0 ; ; XD
4、ATALEN: XDATA memory size ; The length of XDATA memory in bytes. XDATALEN EQU 0 ; ; PDATASTART: PDATA memory start address ; The absolute start address of PDATA memory PDATASTART EQU 0H ; ; PDATALEN: PDATA memory size ; The length of PDATA memory in bytes. PDATALEN EQU 0H ; ; ;- ; ; Reentrant Stack
5、Initialization ; ; The following EQU statements define the stack pointer for reentrant ; functions and initialized it: ; ; Stack Space for reentrant functions in the SMALL model. ; IBPSTACK: Enable SMALL model reentrant stack ; Stack space for reentrant functions in the SMALL model. IBPSTACK EQU 0 ;
6、 set to 1 if small reentrant is used. ; IBPSTACKTOP: End address of SMALL model stack ; Set the top of the stack to the highest location. IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 ; ; ; Stack Space for reentrant functions in the LARGE model. ; XBPSTACK: Enable LARGE model reentrant stack ; Stack spac
7、e for reentrant functions in the LARGE model. XBPSTACK EQU 0 ; set to 1 if large reentrant is used. ; XBPSTACKTOP: End address of LARGE model stack ; Set the top of the stack to the highest location. XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1 ; ; ; Stack Space for reentrant functions in the COMPAC
8、T model. ; PBPSTACK: Enable COMPACT model reentrant stack ; Stack space for reentrant functions in the COMPACT model. PBPSTACK EQU 0 ; set to 1 if compact reentrant is used. ; ; PBPSTACKTOP: End address of COMPACT model stack ; Set the top of the stack to the highest location. PBPSTACKTOP EQU 0xFF +
9、1 ; default 0FFH+1 ; ; ;- ; ; Memory Page for Using the Compact Model with 64 KByte xdata RAM ; Compact Model Page Definition ; Define the XDATA page used for PDATA variables. ; PPAGE must conform with the PPAGE set in the linker invocation. ; ; Enable pdata memory page initalization PPAGEENABLE EQU
10、 0 ; set to 1 if pdata object are used. ; ; PPAGE number ; uppermost 256-byte address of the page used for PDATA variables. PPAGE EQU 0 ; ; SFR address which supplies uppermost address byte ; most 8051 variants use P2 as uppermost address byte PPAGE_SFR DATA 0A0H ; ; ;-; Standard SFR Symbols ACC DAT
11、A 0E0H B DATA 0F0H SP DATA 81H DPL DATA 82H DPH DATA 83HNAME ?C_STARTUP?C_C51STARTUP SEGMENT CODE ?STACK SEGMENT IDATARSEG ?STACKDS 1EXTRN CODE (?C_START)PUBLIC ?C_STARTUPCSEG AT 0 ?C_STARTUP: LJMP STARTUP1RSEG ?C_C51STARTUPSTARTUP1:IF IDATALEN 0MOV DPTR,#XDATASTARTMOV R7,#LOW (XDATALEN)IF (LOW (XDA
12、TALEN) 0MOV PPAGE_SFR,#PPAGE ENDIFIF PDATALEN 0 EXTRN DATA (?C_IBP)MOV ?C_IBP,#LOW IBPSTACKTOP ENDIFIF XBPSTACK 0 EXTRN DATA (?C_PBP)MOV ?C_PBP,#LOW PBPSTACKTOP ENDIFMOV SP,#?STACK-1; This code is required if you use L51_BANK.A51 with Banking Mode 4 ; Code Banking ; Select Bank 0 for L51_BANK.A51 Mode 4 #if 0 ; Initialize bank mechanism to code bank 0 when using L51_BANK.A51 with Banking Mode 4. EXTRN CODE (?B_SWITCH0)CALL ?B_SWITCH0 ; init bank mechanism to code bank 0 #endif ;LJMP ?C_STARTEND