📄 prg.lst
字号:
MCS-51 MACRO ASSEMBLER PRG 11/06/:1 PAGE 1
DOS 7.10 (038-N) MCS-51 MACRO ASSEMBLER, V2.2
OBJECT MODULE PLACED IN PRG.OBJ
ASSEMBLER INVOKED BY: D:\PRG\51\ASM51.EXE PRG.ASM
LOC OBJ LINE SOURCE
1 ;OBN;;z--program the flash HY29LV1620 //89C52
2
3 ;M(Q64+Jd5DJ}>]8qJ=N*#:88H#(M(Q6FpJ<1jJ6#)+ LEN #(J}>]3$6H#)+ CMD + #(LEN-28vJ}>]#)+ P#Qi:M
#;LEN<=60
4 ;=SJUJ}>]4f7ETZ80H:MC0H?*J<5DN;VC#,7"KMJ}>]7ETZ40H?*J<5DN;VC#,TZ6AFLASHJ1#,7"KMJ}>]7ETZ40H:
MC0H?*J<5DN;VC#,SIRD_FLAG1jV>>v6(
5 ;;;;;;;;;;;;;;B--BACKUP =SJUJ}>]5D4f7E5XV7
6 ;C_RX_ADDR0 EQU 80h ;4.PP=SJUJ}>]5D4f7E5XV70
7 ;C_RX_ADDR1 EQU C0h ;4.PP=SJUJ}>]5D4f7E5XV71
8 ;REG BANK0:
9 ;R2--6AFLASHJ}>]J1#:J5<J6AH!5D3$6H#(WV=ZJ}#)
10 ;R3--6AFLASHJ}>]J1#:@[<S:M
11 ;R4--6AFLASHJ}>]J1#:6AH!5DWn4sWV=ZJ}#;/1`3LJ1#:4f4"=SJU5=5DWV=ZJ}
12 ;R5--ERASE: DELAY REG
13 ;R6,R7--DELAY REG;
14 ;REG BANK1:
15 ;R0(08H),R1(09H)--COMM-ADDRESSING;
16 ;R2-R3-R4(0AH-0BH-0CH)---FLASH START-ADDR FOR READ/PROGRAM(H---L),
17 ;R5-R6-R7(0DH-0EH-0FH)---NUMBERS OF BYTES TO BE PROGRAMED/READ(H---L)
18 ;REG BANK2:
19 ;R0-R1-R2(10H-11H-12H, CB0-CB1-CB2)---TMP REG FOR COUNTING;
20 ;13H-14H-15H-16H-17H---TMP REG USED IN COUNTING ROUTING;???????????????????
21 ;REG BANK3:
22 ;18H-19H -- ID_MC(MANUFACTURER CODE),
23 ;1AH-1BH -- ID_DC(DEVICE CODE),
24 ;1CH--BACK A;
25 ;1DH--RTMP
26
27 ;REG DEF <D4fFw6(Re
0087 28 PCON EQU 87H ;SMOD ADDR
002D 29 SPX EQU 2DH ;IhVCU;V8Uk(2EH~3FH)
30
0020 31 RX_COUNT EQU 20H ;4.PP=SJUWV=Z5D8vJ}(<FJ})
0021 32 RX_LEN EQU 21H ;4.PP=SJUWV=Z5DW\J}
0022 33 RX_ADDRC EQU 22H ;4.PP=SJUJWWV=Z5D4f7E5XV7(5XV7N*: 80H;rC0H, SIBIT16
HH76()
0023 34 TX_COUNT EQU 23H ;4.PP7"KMWV=Z5D8vJ}(<FJ})
0024 35 TX_LEN EQU 24H ;4.PP7"KMWV=Z5DW\J}
0025 36 TX_ADDRC EQU 25H ;4.PP7"KMJWWV=Z5D4f7E5XV7#(JWWV=Z5XV7#:40H#)
0026 37 ERR_CODE0 EQU 26H ;1#4f4mNs4zBk(30H~37H)
0027 38 ERR_CODE1 EQU 27H ;1#4f4mNs4zBk(38H~3FH)
39
0028 40 PRC_LEN EQU 28H ;U}TZ4&@m5DJ}>]5D3$6H
0029 41 PRC_ADDR EQU 29H ;U}TZ4&@m5DJ}>]5D5XV7
002A 42 PRC_COUNT EQU 2AH ;U}TZ4&@m5DJ}>]5D<FJ}
002B 43 PRC_ADDRX EQU 2BH ;OBR;WiR*4&@m5DJ}>]5DFpJ<5XV7(514.PPM(Q63LPrJU5=MjU
{5DJ}>]J1#,=+4.PP=SJUJWWV=Z5D4f7E5XV74fHk8C<D4fFw#,M,J1VCRXEND1jV>)
44
0009 45 TX_INDEX EQU 09H ;7"KM<dV7<D4fFwBANK1--R1
000A 46 ADDR2 EQU 0AH ;THE HIGHT BYTE OF THE ADDR
MCS-51 MACRO ASSEMBLER PRG 11/06/:1 PAGE 2
LOC OBJ LINE SOURCE
000B 47 ADDR1 EQU 0BH ;
000C 48 ADDR0 EQU 0CH ;THE LOWER BYTE OF THE ADDR
000D 49 LEN2 EQU 0DH ;THE HIGHT BYTE OF THE LEN
000E 50 LEN1 EQU 0EH ;
000F 51 LEN0 EQU 0FH ;THE LOWER BYTE OF THE LEN
52
0010 53 CB2 EQU 10H ;THE HIGHT BYTE OF THE NUMBER FOR COUNTING DOWN
0011 54 CB1 EQU 11H ;
0012 55 CB0 EQU 12H ;THE LOWERST BYTE OF THE NUMBER FOR COUNTING DOWN
0018 56 ID_MCL EQU 18H ;LOWERE BYTE OF THE ID_MC
0019 57 ID_MCH EQU 19H ;HIGHER BYTE OF THE ID_MC
001A 58 ID_DCL EQU 1AH ;LOWERE BYTE OF THE ID_DC
001B 59 ID_DCH EQU 1BH ;HIGHER BYTE OF THE ID_DC
001C 60 ABAK EQU 1CH ;BACKUP A
001D 61 RTMP EQU 1DH
62 ;ERR_NUM EQU 1EH ;1#4f4mNs4zBk
63
0090 64 DXL EQU 90H ;P1: 16N;J}>]5D5M8N;
00A0 65 DXH EQU 0A0H ;P2--16N;J}>]5D8_8N;
66
67 ;
68 ;4mNsBk : BIT REG -- 26H,27H (30H~3FH)
0030 69 ERR_IC_READY EQU 30H ;FLASH NOT READY
0031 70 ERR_LEN EQU 31H ;6AP4WV=Z3$6H#(8vJ}#)4mNs#(=0#)
0032 71 ERR_ID EQU 32H ;6AP>F,ID4mNs
0033 72 ERR_PERITY EQU 33H ;=SJU9}3LVPFfE<P#Qi4m
0034 73 ERR_SUM EQU 34H ;@[<S:M4m
0035 74 ERR_ADDR EQU 35H ;5XV74m#:3,3v76N'#(0--0FFFFF#)
0036 75 ERR_STATE EQU 36H ;W4L,4mNs#:Hg--TZV4PP6AFLASHV8An9}3LVPJU5=2A3}V8An
0037 76 ERR_TIMEOUT EQU 37H ;1`3LJ13,J1
0038 77 ERR_ERASE EQU 38H ;P>F,2A3}J1P#Qi4m#(#!=0FFH#)
0039 78 ERR_CMD EQU 39H ;V8An4mNs
003A 79 ERR_PRG_DATALEN EQU 3AH ;1`3LJ1J}>]3$6H=0
80
81 ;BIT REG DEFINE(2CH~2DH: 60H~6FH)
0060 82 RET_ERR EQU 60H ;PhR*OrPC;X4p#:=SJU4mNs#(P#Qi:M/FfE<P#Qi#)
0061 83 RD_FLAG EQU 61H ;6AFLASH9}3LVP#,7"KM;:3eGx5XV71jV>: 0--TRANSMITTING
ADDR=40H; 1--TRANSMITTING ADDR=C0H;
0062 84 CALL_RET EQU 62H ;:/J}5wSC75;XV5#:1--error, 0-- normal
0063 85 FLAG0 EQU 63H ;M(SC1jV>
0064 86 FLAG1 EQU 64H ;M(SC1jV>
87 ;IC-NORDY EQU 62H ;1--FLASH READY FOR OPERATING
88 ;ERR_CODE EQU 63H ;1--2YWw9}3LVP7"Iz4mNs
89 ;ERR_RD_ID EQU 64H ;1--6AP>F,ID4mNs
90 ;ERR_LEN EQU 65H ;1--6AP4WV=Z3$6H#(8vJ}#)4mNs#(=0#)
0069 91 CBAK EQU 69H ;BACKUP C
006A 92 RX_END EQU 6AH ;1--RECEIVED ALL DATA
006B 93 RX_FLAG EQU 6BH ;1--COMM_START RECEIVED(M(Q6FpJ<1jJ6)
006C 94 IN_RX EQU 6CH ;1--IN RECEIVING
006D 95 TX_FLAG EQU 6DH ;1--IN TRANSMITTING
006E 96 IN_PROG EQU 6EH ;1--IN PROGRAM
006F 97 IN_READ EQU 6FH ;1--IN READING FLASH
98
0016 99 RX_ADDR_X EQU 16H ;0--RX_ADDRC=80H, 1--RX_ADDRC=C0H
100
MCS-51 MACRO ASSEMBLER PRG 11/06/:1 PAGE 3
LOC OBJ LINE SOURCE
00B3 101 _DX_EN EQU 0B3H ;P3.3 ;DXL/DXHJ}>]O_J9D\: 5MSPP'
00B4 102 _DX_RD EQU 0B4H ;P3.4 ;4SJ}>]O_6AJ}>]DXL/DXH: 5MSPP'; 1--OrJ}>]O_
P4J}>]
00B5 103 _ADDR_INC EQU 0B5H ;P3.5 ;5XV7Tv1J1VS: OB=5QXSPP'
00B6 104 ADDR_CLR EQU 0B6H ;P3.6 ;5XV7GeAc: 8_SPP'
00B7 105 IC_READY EQU 0B7H ;P3.7 ;FLASH P>F,W<18:C
0080 106 _FLASH_BYTE EQU 80H ;P0.0 ;FLASH2YWwN*WV=Z7=J=(2;JGWORDWV7=J=): 5MSPP
'(WV=Z7=J=), 8_N*WV7=J=
0081 107 _FLASH_OE EQU 81H ;P0.1 ;FLASHJ}>]O_Jd3vSPP', <4: 4SFLASH6AJ}>]
0082 108 _FLASH_CE EQU 82H ;P0.2 ;FLASH P>F,F,Q!: 5MSPP'
0083 109 _FLASH_RST EQU 83H ;P0.3 ;FLASH P>F,84N;: 5MSPP', 84N;:sFLASH P>F,N*
6AW4L,
0084 110 _FLASH_WE EQU 84H ;P0.4 ;FLASH P>F,P4?XVF: 5MSPP'
0085 111 _FLASH_BUSY EQU 85H ;P0.5 ;FLASH C&(U}TZV4PP2YWw): 5MSPP'
0087 112 _FLASH_PWR EQU 87H ;P0.7 ;N*FLASH 9)5g: 5MSPP'
113
114 ;M(Q6C|An(3#J})6(Re
0088 115 COMM_START EQU 88H ;M(Q6FpJ<1jJ6
0011 116 CMD_CHIP_ERASE EQU 11H ;V8An: 2A3}
0022 117 CMD_SECT_ERASE EQU 22H ;V8An: 2A3}
0033 118 CMD_PROG EQU 33H ;1`3LV8An: 4+KM1`3L5XV7!"3$6H
0044 119 CMD_PROGX EQU 044H ;1`3LV8An: 4+KM1`3LJ}>]
0055 120 CMD_READ EQU 55H ;V8An: 6AFLASH
0066 121 CMD_RSTFLASH EQU 66H ;FLASH84N;
0077 122 CMD_ERR EQU 77H ;4mNs75;X#:SI4mNsBkH76(
0099 123 CMD_OK EQU 99H ;=SJUU}H7#:4mNsBk=0
00AA 124 CMD_CHIP_ID EQU 0AAH ;V8An: FLASH ID
00BB 125 CMD_ERR_PRG EQU 0BBH ;1`3L4mNs#:CMD+ADDR(3 byteS)+SOURCE DATA+REAL DATA+
SUM
00CC 126 CMD_END EQU 0CCH ;1`3L!"6AFLASHV8AnV4PPMj1O
127 ;CMD_SHKHND EQU 0DDH ;M(Q6NUJV#:75;XCMD_OK
128
0014 129 T_RESET EQU 20 ;FLASH84N;QS3YJ1<d#:20us
003C 130 RD_BYTES EQU 60 ;C?4N6A60WV=Z
131
132
0000 133 ORG 0000H
0000 0150 134 AJMP INIT ;84N;:sW*3uJ<;/3LPr
135
000B 136 ORG 000BH ;6(J1FwT0VP6O
000B 0204C1 137 LJMP TIMER ;W*6(J13LPr
138
0023 139 ORG 0023H ;4.?ZVP6O
0023 020433 140 LJMP TX_RX
141
0050 142 ORG 0050H
0050 75812D 143 INIT: MOV SP,#SPX ;IhVCU;V8Uk
0053 1200A3 144 LCALL INITX
145
146 LOOP:
147 ; MOV C,IC_READY ;********************
148 ; CPL C ;********************
149 ; MOV _FLASH_PWR,C
0056 20B705 150 JB IC_READY,LOOP0
0059 120085 151 LCALL CLR_INTERFACE
MCS-51 MACRO ASSEMBLER PRG 11/06/:1 PAGE 4
LOC OBJ LINE SOURCE
005C 0167 152 AJMP LOOP01
005E 206F06 153 LOOP0: JB IN_READ,LOOP01
0061 206E03 154 JB IN_PROG,LOOP01
0064 120096 155 LCALL SET_INTERFACE
156 LOOP01:
0067 206013 157 JB RET_ERR,L0
006A 306F08 158 LOOP1: JNB IN_READ,LOOP2 ;TZ6AFLASH9}3LVP#:Hg9{IOR;WiJ}>]7"KMMj1O#(TX_FLAG=0#)#,Tr5w
SCREADTX6AH!OBR;WiJ}>]
006D 206D05 159 JB TX_FLAG,LOOP2
0070 120549 160 LCALL READTX ;=+FLASHJ}>]6AHk7"KM;:3eGx#,
0073 0156 161 AJMP LOOP
0075 306ADE 162 LOOP2: JNB RX_END,LOOP ;<l2iJG7qJU5=J}>]
0078 120105 163 LCALL TRXPRO
007B 0156 164 AJMP LOOP
007D 206DEA 165 L0: JB TX_FLAG,LOOP1
0080 1200D8 166 LCALL RETERR
0083 0156 167 AJMP LOOP
168
169
170 CLR_INTERFACE:
0085 D287 171 SETB _FLASH_PWR
0087 759000 172 MOV DXL,#0
008A 75A000 173 MOV DXH,#0
008D C2B4 174 CLR _DX_RD ;J}>]O_7=Or#:FLASH --> HOST
008F C2B3 175 CLR _DX_EN ;J}>]O_J9D\
0091 C2B6 176 CLR ADDR_CLR ;CLR THE ADDR TO ZERO
0093 C2B5 177 CLR _ADDR_INC ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -