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

📄 startup.a51

📁 网络单片机 让嵌入式系统上网,基于keil C. 文件名:microweb-keil-0.1
💻 A51
字号:
;------------------------------------------------------------------------------;  This file is part of the C51 Compiler package;  Copyright (c) 1995-1997 Keil Software, Inc.;------------------------------------------------------------------------------;  STARTUP.A51:  This code is executed after processor reset.;;  To translate this file use A51 with the following invocation:;;     A51 STARTUP.A51;;  To link the modified STARTUP.OBJ file to your application use the following;  BL51 invocation:;;     BL51 <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 can be defined:;; the absolute start-address of IDATA memory is always 0IDATALEN	EQU	0H	; the length of IDATA memory in bytes.;XDATASTART	EQU	0D000H	; the absolute start-address of XDATA memoryXDATALEN	EQU	02000H	; the length of XDATA memory in bytes.;PDATASTART	EQU	0H	; the absolute start-address of PDATA memoryPDATALEN	EQU	0H	; the length of PDATA memory in bytes.;;  Notes:  The IDATA space overlaps physically the DATA and BIT areas of the;          8051 CPU. At minimum the memory space occupied from the C51 ;          run-time routines must be set to zero.;------------------------------------------------------------------------------;;  Reentrant Stack Initilization;;  The following EQU statements define the stack pointer for reentrant;  functions and initialized it:;;  Stack Space for reentrant functions in the SMALL model.IBPSTACK	EQU	1	; set to 1 if small reentrant is used.IBPSTACKTOP	EQU	0FFH+1	; set top of stack to highest location+1.;;  Stack Space for reentrant functions in the LARGE model.	XBPSTACK	EQU	0	; set to 1 if large reentrant is used.XBPSTACKTOP	EQU	0FFFFH+1; set top of stack to highest location+1.;;  Stack Space for reentrant functions in the COMPACT model.	PBPSTACK	EQU	0	; set to 1 if compact reentrant is used.PBPSTACKTOP	EQU	0FFFFH+1; set top of stack to highest location+1.;;------------------------------------------------------------------------------;;  Page Definition for Using the Compact Model with 64 KByte xdata RAM;;  The following EQU statements define the xdata page used for pdata;  variables. The EQU PPAGE must conform with the PPAGE control used;  in the linker invocation.;PPAGEENABLE	EQU	0	; set to 1 if pdata object are used.PPAGE		EQU	0	; define PPAGE number.;;------------------------------------------------------------------------------$include	(bit515.inc)		NAME	?C_STARTUP?C_C51STARTUP	SEGMENT   CODE?STACK		SEGMENT   IDATA		RSEG	?STACK		DS	1		EXTRN CODE (?C_START,keypadi)		PUBLIC	?C_STARTUP$IF RISM <> 0                CSEG    AT      8000h$ELSE		CSEG	AT	0$ENDIF;$IF RISM <> 0;	stard	EQU	8100H;$ELSE;	stard	EQU	0000H;$ENDIF;		CSEG	AT	stard?C_STARTUP:	LJMP	STARTUP1		CSEG	AT	8013h 		ljmp	ext1srv  		ext1srv:;		clr	EX1		call	keypadi 		setb	EX1		reti		RSEG	?C_C51STARTUPSTARTUP1:; Initilization Specific To The EMAC MicroPac 535 SBC				clr	P5_5		setb	P5_5		; reset SC26C92 DUART		clr	P5_5		; bring DUART out of reset		setb	P5_0		; make A16 of 128K Ram, hi 		clr	P5_1		; enable memory mapped IO   ; End Of MicroPac 535 InitilizationIF IDATALEN <> 0		MOV	R0,#IDATALEN - 1		CLR	AIDATALOOP:	MOV	@R0,A		DJNZ	R0,IDATALOOPENDIFIF XDATALEN <> 0		MOV	DPTR,#XDATASTART		MOV	R7,#LOW (XDATALEN)  IF (LOW (XDATALEN)) <> 0		MOV	R6,#(HIGH XDATALEN) +1  ELSE		MOV	R6,#HIGH (XDATALEN)  ENDIF		CLR	AXDATALOOP:	MOVX	@DPTR,A		INC	DPTR		DJNZ	R7,XDATALOOP		DJNZ	R6,XDATALOOPENDIFIF PPAGEENABLE <> 0		MOV	P2,#PPAGEENDIFIF PDATALEN <> 0		MOV	R0,#PDATASTART		MOV	R7,#LOW (PDATALEN)		CLR	APDATALOOP:	MOVX	@R0,A		INC	R0		DJNZ	R7,PDATALOOPENDIFIF IBPSTACK <> 0EXTRN DATA (?C_IBP)		MOV	?C_IBP,#LOW IBPSTACKTOPENDIFIF XBPSTACK <> 0EXTRN DATA (?C_XBP)		MOV	?C_XBP,#HIGH XBPSTACKTOP		MOV	?C_XBP+1,#LOW XBPSTACKTOPENDIFIF PBPSTACK <> 0EXTRN DATA (?C_PBP)		MOV	?C_PBP,#LOW PBPSTACKTOPENDIF		MOV	SP,#?STACK-1		LJMP	?C_START		END

⌨️ 快捷键说明

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