📄 bank.src
字号:
; .\object\bank.SRC generated from: bank.c
; COMPILER INVOKED BY:
; C:\Keil\C51\BIN\C51.EXE bank.c ROM(SMALL) OPTIMIZE(1,SIZE) BROWSE DEBUG OBJECTEXTEND SRC(.\object\bank.SRC)
$NOMOD51
NAME BANK
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
CKLFCON DATA 0BFH
T0 BIT 080H.5
AC BIT 0D0H.6
SPI_CTRL DATA 0B3H
T1 BIT 080H.6
T2 BIT 090H.0
EA BIT 0A8H.7
CD BIT 0A0H.6
SPI_MISO BIT 0A0H.2
SPI_MOSI BIT 0A0H.1
AM BIT 0A0H.7
HWREV DATA 0FEH
IE DATA 0A8H
DPH1 DATA 085H
DPL1 DATA 084H
DR BIT 0A0H.5
EXF2 BIT 0C8H.6
ES BIT 0A8H.4
IP DATA 0B8H
RI BIT 098H.0
INT0 BIT 080H.3
CY BIT 0D0H.7
TI BIT 098H.1
INT1 BIT 080H.4
RCAP2H DATA 0CBH
PS BIT 0B8H.4
SP DATA 081H
OV BIT 0D0H.2
CK_CTRL DATA 0B6H
RCAP2L DATA 0CAH
TICK_DV DATA 0B5H
RSTREAS DATA 0B1H
C_T2 BIT 0C8H.1
EWDI BIT 0E8H.4
RCLK BIT 0C8H.5
EXIF DATA 091H
SPI_SCK BIT 0A0H.0
TCLK BIT 0C8H.4
P00 BIT 080H.0
P01 BIT 080H.1
SBUF DATA 099H
PCON DATA 087H
P02 BIT 080H.2
P03 BIT 080H.3
P04 BIT 080H.4
SCON DATA 098H
P05 BIT 080H.5
PWDI BIT 0F8H.4
TMOD DATA 089H
TCON DATA 088H
P06 BIT 080H.6
P07 BIT 080H.7
WDTI BIT 0D8H.3
PWMDUTY DATA 0AAH
IE0 BIT 088H.1
IE1 BIT 088H.3
TXEN BIT 0A0H.4
P0_DIR DATA 094H
P1_DIR DATA 096H
B DATA 0F0H
P0_ALT DATA 095H
P1_ALT DATA 097H
CP_RL2 BIT 0C8H.0
ACC DATA 0E0H
SPICLK DATA 0B4H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
ET2 BIT 0A8H.5
TF1 BIT 088H.7
TF2 BIT 0C8H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
P0_DRV DATA 093H
TH1 DATA 08DH
TB8 BIT 098H.3
EX1 BIT 0A8H.2
IT1 BIT 088H.2
REGX_CTRL DATA 0ADH
TH2 DATA 0CDH
EX2 BIT 0E8H.0
P BIT 0D0H.0
EX3 BIT 0E8H.1
SM0 BIT 098H.7
TL0 DATA 08AH
EX4 BIT 0E8H.2
SM1 BIT 098H.6
TL1 DATA 08BH
EX5 BIT 0E8H.3
SM2 BIT 098H.5
TL2 DATA 0CCH
EIE DATA 0E8H
PT0 BIT 0B8H.1
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
PT2 BIT 0B8H.5
TR0 BIT 088H.4
RS1 BIT 0D0H.4
PWMCON DATA 0A9H
EOC BIT 0A0H.4
TR1 BIT 088H.6
TR2 BIT 0C8H.2
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
PX2 BIT 0F8H.0
PX3 BIT 0F8H.1
PX4 BIT 0F8H.2
DPH DATA 083H
PX5 BIT 0F8H.3
EIP DATA 0F8H
DPL DATA 082H
EXEN2 BIT 0C8H.3
SMOD1 BIT 0D8H.7
REN BIT 098H.4
TRX_CE BIT 0A0H.5
T2CON DATA 0C8H
DPS DATA 086H
SPI_DATA DATA 0B2H
MPAGE DATA 092H
EECSN BIT 090H.3
EICON DATA 0D8H
CKCON DATA 08EH
F0 BIT 0D0H.5
F1 BIT 0D0H.1
RACSN BIT 0A0H.3
REGX_LSB DATA 0ACH
REGX_MSB DATA 0ABH
PSW DATA 0D0H
?PR?CopyUserProgram?BANK SEGMENT CODE INBLOCK
?DT?CopyUserProgram?BANK SEGMENT DATA
?PR?SwitchToAppBank?BANK SEGMENT CODE INBLOCK
?DT?SwitchToAppBank?BANK SEGMENT DATA
PUBLIC SwitchToAppBank
PUBLIC CopyUserProgram
RSEG ?DT?CopyUserProgram?BANK
?CopyUserProgram?BYTE:
addr?040: DS 2
ORG 2
i?041: DS 1
RSEG ?DT?SwitchToAppBank?BANK
?SwitchToAppBank?BYTE:
source?142: DS 2
ORG 2
target?143: DS 2
; #include "reg9e5.h"
; #include "PubFunc.h"
; #include <absacc.h>
; #include "25lc320.h"
;
; #define AppBankEnd 0x0400
;
;
; void CopyUserProgram(void)
RSEG ?PR?CopyUserProgram?BANK
CopyUserProgram:
USING 0
; SOURCE LINE # 9
; {
; SOURCE LINE # 10
; WORD data addr;
; BYTE data i;
; addr = 1024;
; SOURCE LINE # 13
MOV addr?040,#04H
MOV addr?040+01H,#00H
; //Wait_25LC320_IDLE; //
;
; EECSN=0;
; SOURCE LINE # 16
CLR EECSN
;
; SPI_DATA =_25LC320_READ; // Move read command to SPI data register
; SOURCE LINE # 18
MOV SPI_DATA,#03H
?C0001:
; while((EXIF & 0x20) == 0x00);
; SOURCE LINE # 19
MOV A,EXIF
JNB ACC.5,?C0001
?C0002:
; EXIF &= ~0x20;
; SOURCE LINE # 20
ANL EXIF,#0DFH
;
; SPI_DATA =04; // Move hi address to SPI data register
; SOURCE LINE # 22
MOV SPI_DATA,#04H
?C0003:
; while((EXIF & 0x20) == 0x00);
; SOURCE LINE # 23
MOV A,EXIF
JNB ACC.5,?C0003
?C0004:
; EXIF &= ~0x20;
; SOURCE LINE # 24
ANL EXIF,#0DFH
;
; SPI_DATA =00; // Move low address to SPI data register
; SOURCE LINE # 26
MOV SPI_DATA,#00H
?C0005:
; while((EXIF & 0x20) == 0x00);
; SOURCE LINE # 27
MOV A,EXIF
JNB ACC.5,?C0005
?C0006:
; EXIF &= ~0x20;
; SOURCE LINE # 28
ANL EXIF,#0DFH
?C0009:
;
; do{
; SOURCE LINE # 30
; SPI_DATA = i; // Move byte to send to SPI data register
; SOURCE LINE # 31
MOV SPI_DATA,i?041
?C0010:
; while((EXIF & 0x20) == 0x00); // Wait until SPI hs finished transmitting
; SOURCE LINE # 32
MOV A,EXIF
JNB ACC.5,?C0010
?C0011:
; XBYTE[addr-1024]=SPI_DATA;
; SOURCE LINE # 33
MOV R6,addr?040
MOV R7,addr?040+01H
CLR A
ADD A,R7
MOV DPL,A
MOV A,#0FCH
ADDC A,R6
MOV DPH,A
MOV A,SPI_DATA
MOVX @DPTR,A
; EXIF &= ~0x20; // Clear SPI interrupt
; SOURCE LINE # 34
ANL EXIF,#0DFH
; addr++;
; SOURCE LINE # 35
INC addr?040+01H
MOV A,addr?040+01H
JNZ ?C0016
INC addr?040
?C0016:
; }while(addr<5024); //4096
; SOURCE LINE # 36
CLR C
MOV A,addr?040+01H
SUBB A,#0A0H
MOV A,addr?040
SUBB A,#013H
JC ?C0009
;
; EECSN=1;
; SOURCE LINE # 38
SETB EECSN
;
; #pragma asm
; LJMP 0000H;
LJMP 0000H;
; #pragma endasm
; }
; SOURCE LINE # 43
RET
; END OF CopyUserProgram
;
; void SwitchToAppBank(void)
RSEG ?PR?SwitchToAppBank?BANK
SwitchToAppBank:
USING 0
; SOURCE LINE # 45
; {
; SOURCE LINE # 46
; #if 0
; #pragma asm
; ;disable interrupt
; CLR EA
; ;
; MOV DPS,#0
; MOV DPTR,#Local
; MOV DPS,#1
; MOV DPTR,#AppBank
; ;get Offset to start of user program
; INC DPTR
; MOVX A,@DPTR
; ADD A,#LOW(AppBank)
; MOV DPL1,A
; CLR A
; ADDC A,#HIGH(AppBank)
; MOV DPH1,A
;
; CODE_LOADER:
; MOVX A,@DPTR
; INC DPTR
;
; MOV DPS,#0
; MOVX @DPTR,A
; INC DPTR
;
; MOV DPS,#1
; MOV A,#HIGH(AppBankEnd)
; CJNE A,DPH1,CODE_LOADER
; EXIT:
; LJMP 0000H;
; #pragma endasm
;
; #else
;
; WORD data source;
; WORD data target;
;
; EA = 0;
; SOURCE LINE # 85
CLR EA
; source = 0x03A0; //AppBank;
; SOURCE LINE # 86
MOV source?142,#03H
MOV source?142+01H,#0A0H
; target = 0x0FA0; //Local;
; SOURCE LINE # 87
MOV target?143,#0FH
MOV target?143+01H,#0A0H
?C0013:
;
; while (source != AppBankEnd) {
; SOURCE LINE # 89
MOV A,source?142+01H
XRL A,#00H
JNZ ?C0017
MOV A,source?142
XRL A,#04H
?C0017:
JZ ?C0014
; XBYTE[target] = XBYTE[source];
; SOURCE LINE # 90
MOV R6,source?142
MOV R7,source?142+01H
MOV DPL,R7
MOV DPH,R6
MOVX A,@DPTR
MOV R7,A
MOV R4,target?143
MOV R5,target?143+01H
MOV DPL,R5
MOV DPH,R4
MOV A,R7
MOVX @DPTR,A
; target++;
; SOURCE LINE # 91
INC target?143+01H
MOV A,target?143+01H
JNZ ?C0018
INC target?143
?C0018:
; source++;
; SOURCE LINE # 92
INC source?142+01H
MOV A,source?142+01H
JNZ ?C0019
INC source?142
?C0019:
; }
; SOURCE LINE # 93
SJMP ?C0013
?C0014:
;
;
; #pragma asm
; LJMP 0FA0H;
LJMP 0FA0H;
; #pragma endasm
; #endif
; }
; SOURCE LINE # 100
RET
; END OF SwitchToAppBank
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -