📄 isp_mcu.lst
字号:
147
148 00B9 85 38 8C MOV TH0,TH0p ;Tpwp=50us/(12/11.0592us)=46
149 00BC 85 39 8A MOV TL0,TL0p ;
150 00BF D2 8C SETB TR0 ;
151 00C1 75 87 01 MOV PCON,#01h ;enter idle mode
152
153 00C4 E5 83 MOV A,DPH
154 00C6 B5 31 08 CJNE A,file_end_addrH,inc_addrP
155 00C9 E5 82 MOV A,DPL
156 00CB B5 32 03 CJNE A,file_end_addrL,inc_addrP
157 00CE 02 00 DC JMP program_ok
158 00D1 inc_addrP:
159 00D1 05 82 INC DPL
160 00D3 E5 82 MOV A,DPL
161 00D5 B4 00 CF CJNE A,#00h,program
Mon Nov 29 2004 16:01 Page 4
162 00D8 05 83 INC DPH
163 00DA 01 A7 JMP program
164 00DC program_ok:
165 00DC 75 30 5A MOV data,#5Ah ;tell PC: program complete!
166 00DF 12 02 7B CALL send_data_to_PC2 ;
167 ;
168 ;------------------------------------------------------------------------------
169 ; Verify
170 ;------------------------------------------------------------------------------
171 00E2 E5 BF MOV A,CHPCON
172 00E4 20 E1 06 JB A.1,verify_APROM
173 00E7 verify_LDROM:
174 00E7 75 C7 40 MOV SFRCN,#40h ;Verify 4K LDROM
175 00EA 02 00 F0 JMP do_verify
176 00ED verify_APROM:
177 00ED 75 C7 00 MOV SFRCN,#00h ;Verify 64K APROM
178 00F0 do_verify:
179 ;
180 00F0 90 00 00 MOV DPTR,#0000h
181 00F3 verify:
182 00F3 12 02 90 CALL receive_data_from_PC2
183
184 00F6 85 83 C5 MOV SFRAH,DPH ;
185 00F9 85 82 C4 MOV SFRAL,DPL ;
186
187 00FC 75 8C FF MOV TH0,#>(65536-46) ;Tpwr=50us/(12/11.0592us)=46
188 00FF 75 8A D2 MOV TL0,#<(65536-46) ;
189 0102 D2 8C SETB TR0 ;
190 0104 75 87 01 MOV PCON,#01h ;enter idle mode
191
192 0107 E5 C6 MOV A,SFRFD
193 0109 B5 30 26 CJNE A,data,verify_err
194
195 010C 75 30 EE MOV data,#OK
196 010F 12 02 7B CALL send_data_to_PC2
197
198 0112 E5 83 MOV A,DPH
199 0114 B5 31 08 CJNE A,file_end_addrH,inc_addrV
200 0117 E5 82 MOV A,DPL
201 0119 B5 32 03 CJNE A,file_end_addrL,inc_addrV
202 011C 02 01 2A JMP verify_ok
203 011F inc_addrV:
204 011F 05 82 INC DPL
205 0121 E5 82 MOV A,DPL
206 0123 B4 00 CD CJNE A,#00h,verify
207 0126 05 83 INC DPH
208 0128 01 F3 JMP verify
209 012A verify_ok:
210 012A 75 30 A5 MOV data,#A5h ;tell PC: Verify complete!
211 012D 12 02 7B CALL send_data_to_PC2 ;
212 0130 21 30 JMP $
213 0132 verify_err:
214 0132 75 30 FF MOV data,#FAIL
215 0135 12 02 7B CALL send_data_to_PC2
216 0138 01 0E JMP start
217 ;
218 ;------------------------------------------------------------------------------
Mon Nov 29 2004 16:01 Page 5
219 013A TF0_isr:
220 013A 20 00 03 JB chk_PC_flag,TF0_isr_2
221 013D C2 8C CLR TR0
222 013F 32 RETI
223 ;
224 0140 TF0_isr_2:
225 0140 15 35 DEC idle_time
226 0142 E5 35 MOV A,idle_time
227 0144 60 01 JZ time_out
228 0146 32 RETI
229 0147 time_out:
230 0147 75 81 7F MOV SP,#7Fh
231 014A 12 02 68 CALL disable_idle_chk
232 014D 74 C0 MOV A,#<exit ;where to go if time out
233 014F C0 E0 PUSH A ;
234 0151 74 01 MOV A,#>exit ;
235 0153 C0 E0 PUSH A ;
236 0155 32 RETI
237 ;------------------------------------------------------------------------------
238 ;
239 ;******************************************************************************
240 ; To connect to PC
241 ;******************************************************************************
242 0156 connect_to_PC:
243 0156 D2 00 SETB chk_PC_flag
244 ;
245 0158 chk_11_0592MHz:
246 0158 12 01 C7 CALL init_UART_115200a
247 015B 75 35 0E MOV idle_time,#14 ;wait 1sec to check if connect to PC?
248 ; MOV retL,#<chk_18_4320MHz
249 ; MOV retH,#>chk_18_4320MHz
250 015E 75 33 76 MOV retL,#<chk_22_1184MHz
251 0161 75 34 01 MOV retH,#>chk_22_1184MHz
252 0164 02 01 A3 JMP chk_connect_to_PC
253 ;
254 0167 chk_18_4320MHz:
255 0167 12 01 E4 CALL init_UART_115200b
256 016A 75 35 17 MOV idle_time,#23 ;wait 1sec to check if connect to PC?
257 016D 75 33 76 MOV retL,#<chk_22_1184MHz
258 0170 75 34 01 MOV retH,#>chk_22_1184MHz
259 0173 02 01 A3 JMP chk_connect_to_PC
260 ;
261 0176 chk_22_1184MHz:
262 0176 12 02 01 CALL init_UART_115200c
263 0179 75 35 1C MOV idle_time,#28 ;wait 1sec to check if connect to PC?
264 ; MOV retL,#<chk_36_8640MHz
265 ; MOV retH,#>chk_36_8640MHz
266 017C 75 33 58 MOV retL,#<chk_11_0592MHz
267 017F 75 34 01 MOV retH,#>chk_11_0592MHz
268 0182 02 01 A3 JMP chk_connect_to_PC
269 ;
270 0185 chk_36_8640MHz:
271 0185 12 02 1E CALL init_UART_115200d
272 0188 75 35 2F MOV idle_time,#47 ;wait 1sec to check if connect to PC?
273 018B 75 33 94 MOV retL,#<chk_40_5504MHz
274 018E 75 34 01 MOV retH,#>chk_40_5504MHz
275 0191 02 01 A3 JMP chk_connect_to_PC
Mon Nov 29 2004 16:01 Page 6
276 ;
277 0194 chk_40_5504MHz:
278 0194 12 02 3B CALL init_UART_115200e
279 0197 75 35 34 MOV idle_time,#52 ;wait 1sec to check if connect to PC?
280 019A 75 33 58 MOV retL,#<chk_11_0592MHz
281 019D 75 34 01 MOV retH,#>chk_11_0592MHz
282 01A0 02 01 A3 JMP chk_connect_to_PC
283 ;
284 01A3 chk_connect_to_PC:
285 01A3 12 02 58 CALL enable_idle_chk ;
286 01A6 wait_5A_from_PC:
287 01A6 12 02 AF CALL send_DSR_to_PC
288 01A9 10 98 02 JBC RI,data_rcvd
289 01AC 21 A6 JMP wait_5A_from_PC
290 01AE data_rcvd:
291 01AE E5 99 MOV A,SBUF
292 01B0 B4 5A F3 CJNE A,#5Ah,wait_5A_from_PC
293
294 01B3 75 30 A5 MOV data,#A5h
295 01B6 12 02 6F CALL send_data_to_PC
296
297 01B9 12 02 68 CALL disable_idle_chk ;
298 01BC C2 00 CLR chk_PC_flag ;
299 01BE 01 14 JMP start2
300 01C0 exit:
301 01C0 C2 9C CLR REN ;disable reception
302 01C2 C0 33 PUSH retL ;where to go if time out
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -