历史上的今天
今天是:2025年01月15日(星期三)
2020年01月15日 | 单片机成长之路(51基础篇) - 018 keil51的STARTUP.A51
2020-01-15 来源:eefocus
STARTUP.A51原始文件:
1 $NOMOD51;Ax51宏汇编器控制命令,禁止预定义的8051。使编译器不使能预定义的;8051符号,避免产生重复定义的错误。
2 ;------------------------------------------------------------------------------
3 ; This file is part of the C51 Compiler package
4 ; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc.
5 ; Version 8.01
6 ;
7 ; *** <<< Use Configuration Wizard in Context Menu >>> ***
8 ;------------------------------------------------------------------------------
9 ; STARTUP.A51: This code is executed after processor reset.
10 ;
11 ; To translate this file use A51 with the following invocation:
12 ;
13 ; A51 STARTUP.A51
14 ;
15 ; To link the modified STARTUP.OBJ file to your application use the following
16 ; Lx51 invocation:
17 ;
18 ; Lx51 your object file list, STARTUP.OBJ controls
19 ;
20 ;------------------------------------------------------------------------------
21 ;
22 ; User-defined 23 ; 24 ; With the following EQU statements the initialization of memory 25 ; at processor reset can be defined: 26 ; 27 ; 28 ; Note: The absolute start-address of IDATA memory is always 0 29 ; The IDATA space overlaps physically the DATA and BIT areas. 30 IDATALEN EQU 80H 31 ; 32 ; 33 ; The absolute start address of XDATA memory 34 XDATASTART EQU 0 35 ; 36 ; 37 ; The length of XDATA memory in bytes. 38 XDATALEN EQU 0 39 ; 40 ; 41 ; The absolute start address of PDATA memory 42 PDATASTART EQU 0H 43 ; 44 ; 45 ; The length of PDATA memory in bytes. 46 PDATALEN EQU 0H 47 ; 48 ;
49 ;------------------------------------------------------------------------------
50 ;
51 ; 52 ; 53 ; The following EQU statements define the stack pointer for reentrant 54 ; functions and initialized it: 55 ; 56 ; 57 ; 58 ; Stack space for reentrant functions in the SMALL model. 59 IBPSTACK EQU 0 ; set to 1 if small reentrant is used. 60 ; 61 ; Set the top of the stack to the highest location. 62 IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 63 ; 64 ; 65 ; 66 ; 67 ; Stack space for reentrant functions in the LARGE model. 68 XBPSTACK EQU 0 ; set to 1 if large reentrant is used. 69 ; 70 ; Set the top of the stack to the highest location. 71 XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1 72 ; 73 ; 74 ; 75 ; 76 ; Stack space for reentrant functions in the COMPACT model. 77 PBPSTACK EQU 0 ; set to 1 if compact reentrant is used. 78 ; 79 ; 80 ; Set the top of the stack to the highest location. 81 PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 82 ; 83 ; IBPSTACK: Enable SMALL model reentrant stack
XBPSTACK: Enable LARGE model reentrant stack
PBPSTACK: Enable COMPACT model reentrant stack
84 ;------------------------------------------------------------------------------
85 ;
86 ; Memory Page for Using the Compact Model with 64 KByte xdata RAM
87 ; 88 ; 89 ; Define the XDATA page used for PDATA variables. 90 ; PPAGE must conform with the PPAGE set in the linker invocation. 91 ; 92 ; Enable pdata memory page initalization 93 PPAGEENABLE EQU 0 ; set to 1 if pdata object are used. 94 ; 95 ; 96 ; uppermost 256-byte address of the page used for PDATA variables. 97 PPAGE EQU 0 98 ; 99 ; 100 ; most 8051 variants use P2 as uppermost address byte 101 PPAGE_SFR DATA 0A0H 102 ; 103 ;
104 ;------------------------------------------------------------------------------
105
106 ; Standard SFR Symbols
107 ACC DATA 0E0H
108 B DATA 0F0H
109 SP DATA 81H
110 DPL DATA 82H
111 DPH DATA 83H
112
113 NAME ?C_STARTUP
114
115
116 ?C_C51STARTUP SEGMENT CODE
117 ?STACK SEGMENT IDATA
118
119 RSEG ?STACK
120 DS 1
121
122 EXTRN CODE (?C_START)
123 PUBLIC ?C_STARTUP
124
125 CSEG AT 0
126 ?C_STARTUP: LJMP STARTUP1
史海拾趣
|
在科学技术的进步和人们对移动通信服务需求的双重推动下,楼宇门禁对讲系统正应用到各小区中。目前楼宇门禁对讲移动通信网络仍将继续不断地向前发展,以后将能更完美地实现广大楼宇对讲移动通信用户的通信服务需求。 无线接口中的不安全因素 &nbs ...… 查看全部问答> |
|
如何检验“ADC转换后的数据通过UART传送时是否遗漏”,请教 大家好,小弟最近在用ADI公司的ADuC7060芯片,要实现ADC转换后的数据通过UART传送到超级终端。 CPU是32位,ADC精度为24位。 我程序的总体思路是,ADC连续转换模式,每转换完一组24位数据,就触发中断,随后交给UART发送。(我现在的UART波特率大 ...… 查看全部问答> |
|
dwRet=RasDial(NULL,NULL,&RasDialParams,0xFFFFFFFF,this->m_hWnd,&m_hRasConn); 拨号,第五个参数为NULL是阻塞拨号成功。现在想实现异步的方式,工程是基于对话框的,所以hWnd句柄直接用this->m_hWnd // 注册WM_RASDIALEVENT消息 ...… 查看全部问答> |
|
组成原理的一道题,不明白为什么要加一个门电路,麻烦讲解一下,谢谢! CPU的地址总线16根(A15—A0,A0为低位),双向数据总线8根(D7—D0),控制总线中与主存有 关的信号有MREQ(允许访存, 低电平有效),R/W(高电平为读命令,低电平为写命令)。主存地址空间分 配如下:0—8191为系统程序区,由只读存储芯片组成;8192— ...… 查看全部问答> |
|
PXA270核心板方案: CPU:PXA270 SDRAM:128M FLASH:32M 接口:USB、SDCARD、SERIAL等 LCD+TOUCH:3.5‘ 支持WIFI 方案可提供:SCH + PCB + BOOM + WINCE ...… 查看全部问答> |
|
小弟采用的是ixp425的cpu,vxworks操作系统。使用两个通用定时器,实现优先级高定的时器中断打断优先级低的定时器中断服务程序,而优先级低的不能打断高优先级的中断。 但是小弟做的试验结果是两个定时器中断没有相互打断:任何一个进入中断服务程 ...… 查看全部问答> |
|
板子跑的linux,我在调spi的时候遇到一个问题就是读写外设的寄存器的时间开销太大。 static void transfer (int fd) { int ret; uint8_t tx[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,   ...… 查看全部问答> |
|
首先说这个电路是正常运行的,UC2844内部的误差放大器反相端直接接地,反馈直接接到了误差放大器的输出,常规的这种用法都是在COMP端加一个类似上拉电阻的形式,然后与光耦的副边串联,通过控制分压的值来反馈到COMP端,而这里是直接连到光耦的副边 ...… 查看全部问答> |




