📄 mask_c_f.lst
字号:
A51 MACRO ASSEMBLER MASK_C_F 11/16/2005 11:33:00 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN mask_c_f.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE mask_c_f.a51 SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;$INCLUDE(REG52.INC)
2
3 PUBLIC INIT_UART
4 PUBLIC delay_us
5 PUBLIC delay_us2
6
7 program_dd segment code
8 PUBLIC _program_data ; must add _
9
10 ;ly
11 PUBLIC READ_DATA
12
13 PUBLIC ERS_BLOCK1
14 PUBLIC delay
15 PUBLIC delay_3sec
FFF0 16 PGM_MTP EQU 0FFF0H
17
---- 18 cseg at 08ff0h ; complete
8FF0 19 complete:
8FF0 759055 20 MOV P1, #55h
8FF3 80FB 21 jmp complete
22
---- 23 cseg at 09000h ;data_start_addr
24
25 ;CALL INIT_UART
26 ;go:
9000 90A000 27 mov DPTR,#MSG_toogle
9003 12A038 28 Lcall SHOW2PC
29 ;Lcall --> can be used within 64k, Acall --> only within 2k
30 ; must use "Lcall" here,(because I want to copy this region to 0x1000)
31 ; if use "call", after disassembly --> become Acll, not Lcall, therefore it will not run p
roperly.
32
9006 759000 33 MOV P1, #00h ;1
9009 12A05B 34 Lcall delay
900C 12A05B 35 Lcall delay
900F 12A05B 36 Lcall delay
9012 12A05B 37 Lcall delay
9015 12A05B 38 Lcall delay
9018 12A05B 39 Lcall delay
901B 12A05B 40 Lcall delay
901E 12A05B 41 Lcall delay
42
9021 7590FF 43 MOV P1, #0ffh
9024 12A05B 44 Lcall delay
9027 12A05B 45 Lcall delay
902A 12A05B 46 Lcall delay
902D 12A05B 47 Lcall delay
9030 12A05B 48 Lcall delay
9033 12A05B 49 Lcall delay
9036 12A05B 50 Lcall delay
9039 12A05B 51 Lcall delay
52
903C 759000 53 MOV P1, #000h ;2
903F 12A05B 54 Lcall delay
9042 12A05B 55 Lcall delay
9045 12A05B 56 Lcall delay
9048 12A05B 57 Lcall delay
A51 MACRO ASSEMBLER MASK_C_F 11/16/2005 11:33:00 PAGE 2
904B 12A05B 58 Lcall delay
904E 12A05B 59 Lcall delay
9051 12A05B 60 Lcall delay
9054 12A05B 61 Lcall delay
62
9057 7590FF 63 MOV P1, #0ffh
905A 12A05B 64 Lcall delay
905D 12A05B 65 Lcall delay
9060 12A05B 66 Lcall delay
9063 12A05B 67 Lcall delay
9066 12A05B 68 Lcall delay
9069 12A05B 69 Lcall delay
906C 12A05B 70 Lcall delay
906F 12A05B 71 Lcall delay
72
9072 90A022 73 mov DPTR,#MSG_OK
9075 12A038 74 Lcall SHOW2PC
75 ;jmp go ;data_end_addr
76
77
78
---- 79 cseg at 0A000h
A000 80 MSG_toogle:
A000 0D0A2059 81 DB 0DH, 0AH, ' You will see P1 toogle 2 times','#'
A004 6F752077
A008 696C6C20
A00C 73656520
A010 50312074
A014 6F6F676C
A018 65203220
A01C 74696D65
A020 7323
A022 82 MSG_OK:
A022 0D0A204F 83 DB 0DH, 0AH, ' OK ','#'
A026 4B2023
84
A029 85 INIT_UART:
86
A029 758920 87 MOV TMOD,#020H ; T1 MODE2 auto_reload
88 ; MOV TCON,#000H
A02C 758805 89 MOV TCON,#005H
90 ; MOV TH1, #0F3H ;(243) B.R.=2400 AT CLK=12MHz
91 ; MOV TH1, #253 ;(253) B.R.=19200 AT CLK=22.1184MHz
A02F 758DF5 92 MOV TH1, #245 ;(245) B.R.=4800 AT CLK=20MHz or 10M 2400
93
94 ;MOV TL1, #000H;;
A032 D28E 95 SETB TR1 ; ENABLE TIME1
A034 759852 96 MOV SCON,#052H ; UART MODE1 **********8
A037 22 97 RET
98
99
A038 100 SHOW2PC:
A038 E4 101 CLR A
A039 93 102 MOVC A,@A+DPTR
A03A B42301 103 CJNE A,#23H,SHOW2PC_NEXT
A03D 22 104 RET
A03E 105 SHOW2PC_NEXT:
A03E 12A044 106 LCALL TRANS
A041 A3 107 INC DPTR
A042 80F4 108 JMP SHOW2PC
109
110
111
A044 112 TRANS:
A044 C2AF 113 CLR EA
A046 C299 114 CLR TI
A51 MACRO ASSEMBLER MASK_C_F 11/16/2005 11:33:00 PAGE 3
A048 759938 115 MOV SBUF,#56;ly A
A04B 3099FD 116 JNB TI,$
A04E C299 117 CLR TI
A050 22 118 RET
119
A051 120 delay_us:
A051 7FFA 121 mov r7,#250 ;(r7*2)+1 us
A053 DFFE 122 djnz r7,$
A055 22 123 ret
124
125
A056 126 delay_us2:
A056 7F32 127 mov r7,#50 ;(r7*2)+1 us
A058 DFFE 128 djnz r7,$
A05A 22 129 ret
130
131
A05B 132 delay:
A05B 7D01 133 mov r5,#1
A05D 134 del0:
A05D 7E28 135 mov r6,#40 ;R5*20ms
A05F 136 del:
A05F 7FF6 137 mov r7,#246
A061 DFFE 138 djnz r7,$
A063 DEFA 139 djnz r6,del
A065 DDF6 140 djnz r5,del0
A067 22 141 ret
142
143
A068 144 delay_3sec:
A068 7D96 145 mov r5,#150
A06A 146 del00:
A06A 7E28 147 mov r6,#40 ;R5*20ms
A06C 148 del2:
A06C 7FF6 149 mov r7,#246
A06E DFFE 150 djnz r7,$
A070 DEFA 151 djnz r6,del2
A072 DDF6 152 djnz r5,del00
A074 22 153 ret
154
155
156
---- 157 RSEG program_dd
0000 158 _program_data: ;must add _
159
160 ;ly
0000 12A044 161 LCALL TRANS
162
0003 852083 163 mov DPH,20H;R6
0006 852182 164 mov DPL,21H;R7
165
0009 75F85A 166 MOV 0F8H,#5AH ;ENTER IAP COMMAND KEY
000C 43A220 167 ORL 0A2H,#20H ; enable mask ROM
168
000F 7902 169 MOV R1, #02H ;PROGRAM
170
0011 E522 171 MOV A,22H;R5 ;PROGRAM HI_now_sector_number TO flash
0013 12FFF0 172 CALL PGM_MTP
0016 B40008 173 CJNE A, #00H, PGM_ERR1
174 ;INC DPTR
175
176 ;MOV R1, #02H ;PROGRAM
177 ;MOV A, R3 ;PROGRAM LO_now_sector_number TO flash
178 ;CALL PGM_MTP
179 ;CJNE A, #00H, PGM_ERR2
180 ;MOV 0A2H,#00H ; disable mask ROM
A51 MACRO ASSEMBLER MASK_C_F 11/16/2005 11:33:00 PAGE 4
181 ;MOV 0F8H,#00H
0019 53A2DF 182 ANL 0A2H,#0DFH ; disable mask ROM
001C 53F800 183 ANL 0F8H,#00H
184
185 ;INC DPTR
001F 8006 186 jmp end_p
187
0021 188 PGM_ERR1:
189 ;PGM_ERR2:
0021 900000 F 190 mov DPTR,#PRG_FAIL
0024 12A038 191 call SHOW2PC
192
0027 193 end_p:
0027 22 194 ret;;;;;;;;;
195
0028 196 PRG_FAIL:
0028 0D0A2050 197 DB 0DH, 0AH, ' PRG_FAIL ','#'
002C 52475F46
0030 41494C20
0034 23
198
0035 199 ERS_BLOCK1:
200
201 ;ly
0035 12A044 202 LCALL TRANS
203
0038 75F85A 204 MOV 0F8H,#5AH ;ENTER IAP COMMAND KEY
003B 43A220 205 ORL 0A2H,#20H ; enable mask ROM
206
003E 7901 207 MOV R1, #01H
0040 904000 208 MOV DPTR,#04000H ;ERASE block 1
209
0043 12FFF0 210 CALL PGM_MTP
211
0046 B40008 212 CJNE A, #00H, ERS_ERR
213
0049 53A2DF 214 ANL 0A2H,#0DFH ; disable mask ROM
004C 53F800 215 ANL 0F8H,#00H
216
004F 8006 217 jmp end_ers
218
0051 219 ERS_ERR:
0051 900000 F 220 mov DPTR,#ERS_FAIL
0054 12A038 221 call SHOW2PC
0057 222 end_ers:
0057 22 223 ret
224
0058 225 ERS_FAIL:
0058 0D0A2045 226 DB 0DH, 0AH, ' ERS_BLOCK1_FAIL ','#'
005C 52535F42
0060 4C4F434B
0064 315F4641
0068 494C2023
227
228 ;ly
006C 229 READ_DATA:
006C 12A044 230 LCALL TRANS
231
006F 852083 232 MOV DPH,20H
0072 852182 233 MOV DPL,21H
234
0075 75F85A 235 MOV 0F8H,#5AH
0078 43A220 236 ORL 0A2H,#20H
237
007B 7903 238 MOV R1,#03H
239
A51 MACRO ASSEMBLER MASK_C_F 11/16/2005 11:33:00 PAGE 5
007D 12FFF0 240 CALL PGM_MTP
241
0080 F522 242 MOV 22H,A
243
0082 53A2DF 244 ANL 0A2H,#0DFH
0085 53F800 245 ANL 0F8H,#00H
246
0088 8000 247 jmp end_read
248
008A 249 end_read:
008A 22 250 ret
251
252 END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -