📄 isr.ls1
字号:
199 ; ClockTicks++;
200 ; SOURCE LINE # 53
000B E500 F 201 MOV A,ClockTicks+03H
000D 2401 202 ADD A,#01H
000F F500 F 203 MOV ClockTicks+03H,A
0011 E4 204 CLR A
0012 3500 F 205 ADDC A,ClockTicks+02H
0014 F500 F 206 MOV ClockTicks+02H,A
0016 E4 207 CLR A
0017 3500 F 208 ADDC A,ClockTicks+01H
0019 F500 F 209 MOV ClockTicks+01H,A
001B E4 210 CLR A
001C 3500 F 211 ADDC A,ClockTicks
001E F500 F 212 MOV ClockTicks,A
213 ; bEPPflags.bits.timer = 1;
214 ; SOURCE LINE # 54
0020 AF00 F 215 MOV R7,bEPPflags
0022 EF 216 MOV A,R7
0023 4401 217 ORL A,#01H
0025 F500 F 218 MOV bEPPflags,A
219 ; ENABLE;
220 ; SOURCE LINE # 55
0027 D2AF 221 SETB EA
222 ; }
223 ; SOURCE LINE # 56
0029 D007 224 POP AR7
002B D0D0 225 POP PSW
002D D0E0 226 POP ACC
002F 32 227 RETI
228 ; END OF timer_isr
229
---- 230 CSEG AT 00003H
0003 020000 F 231 LJMP usb_isr
232
233 ;
234 ; usb_isr() interrupt INTERRUPT_INT0_Overflow
235
---- 236 RSEG ?PR?usb_isr?ISR
237 USING 0
0000 238 usb_isr:
0000 C0E0 239 PUSH ACC
0002 C0F0 240 PUSH B
0004 C083 241 PUSH DPH
0006 C082 242 PUSH DPL
0008 C0D0 243 PUSH PSW
000A 75D000 244 MOV PSW,#00H
000D C000 245 PUSH AR0
000F C001 246 PUSH AR1
0011 C002 247 PUSH AR2
0013 C003 248 PUSH AR3
0015 C004 249 PUSH AR4
0017 C005 250 PUSH AR5
0019 C006 251 PUSH AR6
001B C007 252 PUSH AR7
253 USING 0
254 ; SOURCE LINE # 58
255 ; {
256 ; DISABLE;
A51 MACRO ASSEMBLER ISR 04/22/2005 11:54:50 PAGE 5
257 ; SOURCE LINE # 60
001D C2AF 258 CLR EA
259 ; fn_usb_isr();
260 ; SOURCE LINE # 61
001F 120000 F 261 LCALL fn_usb_isr
262 ; ENABLE;
263 ; SOURCE LINE # 62
0022 D2AF 264 SETB EA
265 ; }
266 ; SOURCE LINE # 63
0024 D007 267 POP AR7
0026 D006 268 POP AR6
0028 D005 269 POP AR5
002A D004 270 POP AR4
002C D003 271 POP AR3
002E D002 272 POP AR2
0030 D001 273 POP AR1
0032 D000 274 POP AR0
0034 D0D0 275 POP PSW
0036 D082 276 POP DPL
0038 D083 277 POP DPH
003A D0F0 278 POP B
003C D0E0 279 POP ACC
003E 32 280 RETI
281 ; END OF usb_isr
282
283 ;
284 ; /* Interrupt service subroutine */
285 ; void fn_usb_isr()
286
---- 287 RSEG ?PR?fn_usb_isr?ISR
0000 288 fn_usb_isr:
289 USING 0
290 ; SOURCE LINE # 66
291 ; {
292 ; SOURCE LINE # 67
293 ; unsigned int i_st;
294 ;
295 ; bEPPflags.bits.in_isr = 1;
296 ; SOURCE LINE # 70
0000 AF00 F 297 MOV R7,bEPPflags
0002 EF 298 MOV A,R7
0003 4420 299 ORL A,#020H
0005 F500 F 300 MOV bEPPflags,A
301 ;
302 ; i_st = D12_ReadInterruptRegister();
303 ; SOURCE LINE # 72
0007 120000 F 304 LCALL D12_ReadInterruptRegister
000A 8E00 F 305 MOV i_st?241,R6
000C 8F00 F 306 MOV i_st?241+01H,R7
307 ;
308 ; if(i_st != 0) {
309 ; SOURCE LINE # 74
000E E500 F 310 MOV A,i_st?241+01H
0010 4500 F 311 ORL A,i_st?241
0012 6061 312 JZ ?C0003
313 ; if(i_st & D12_INT_BUSRESET) {
314 ; SOURCE LINE # 75
0014 E500 F 315 MOV A,i_st?241+01H
0016 30E60A 316 JNB ACC.6,?C0004
317 ; bus_reset();
318 ; SOURCE LINE # 76
0019 120000 F 319 LCALL bus_reset
320 ; bEPPflags.bits.bus_reset = 1;
321 ; SOURCE LINE # 77
001C AF00 F 322 MOV R7,bEPPflags
A51 MACRO ASSEMBLER ISR 04/22/2005 11:54:50 PAGE 6
001E EF 323 MOV A,R7
001F 4402 324 ORL A,#02H
0021 F500 F 325 MOV bEPPflags,A
326 ; }
327 ; SOURCE LINE # 78
0023 328 ?C0004:
329 ; if(i_st & D12_INT_EOT)
330 ; SOURCE LINE # 79
0023 331 ?C0005:
332 ; ;
333 ; if(i_st & D12_INT_SUSPENDCHANGE)
334 ; SOURCE LINE # 81
0023 E500 F 335 MOV A,i_st?241+01H
0025 30E707 336 JNB ACC.7,?C0006
337 ; bEPPflags.bits.suspend = 1;
338 ; SOURCE LINE # 82
0028 AF00 F 339 MOV R7,bEPPflags
002A EF 340 MOV A,R7
002B 4404 341 ORL A,#04H
002D F500 F 342 MOV bEPPflags,A
002F 343 ?C0006:
344 ;
345 ; if(i_st & D12_INT_ENDP0IN)
346 ; SOURCE LINE # 84
002F E500 F 347 MOV A,i_st?241+01H
0031 30E103 348 JNB ACC.1,?C0007
349 ; /* Control Endpoint IN Interrupt */
350 ; ProcessCtrlInEP();
351 ; SOURCE LINE # 86
0034 120000 F 352 LCALL ProcessCtrlInEP
0037 353 ?C0007:
354 ; if(i_st & D12_INT_ENDP0OUT)
355 ; SOURCE LINE # 87
0037 E500 F 356 MOV A,i_st?241+01H
0039 30E003 357 JNB ACC.0,?C0008
358 ; /* Control Endpoint OUT Interrupt */
359 ; ProcessCtrlOutEP();
360 ; SOURCE LINE # 89
003C 120000 F 361 LCALL ProcessCtrlOutEP
003F 362 ?C0008:
363 ; if(i_st & D12_INT_ENDP1IN) {
364 ; SOURCE LINE # 90
003F E500 F 365 MOV A,i_st?241+01H
0041 30E30C 366 JNB ACC.3,?C0009
367 ; /* Endpoint 1 IN Interrupt (generic input) */
368 ; D12_ReadLastTransactionStatus(3); /* Clear interrupt flag */
369 ; SOURCE LINE # 92
0044 7F03 370 MOV R7,#03H
0046 120000 F 371 LCALL _D12_ReadLastTransactionStatus
372 ; /* send data back to host */
373 ; bEPPflags.bits.ep1_sxdone = 1; //host request to send data
374 ; SOURCE LINE # 94
0049 AF00 F 375 MOV R7,bEPPflags+01H
004B EF 376 MOV A,R7
004C 4408 377 ORL A,#08H
004E F500 F 378 MOV bEPPflags+01H,A
379 ; }
380 ; SOURCE LINE # 95
0050 381 ?C0009:
382 ; if(i_st & D12_INT_ENDP1OUT)
383 ; SOURCE LINE # 96
0050 E500 F 384 MOV A,i_st?241+01H
0052 30E220 385 JNB ACC.2,?C0003
386 ; { /* Endpoint 1 OUT Interrupt (generic output) */
387 ; SOURCE LINE # 97
388 ; unsigned char len;
A51 MACRO ASSEMBLER ISR 04/22/2005 11:54:50 PAGE 7
389 ;
390 ; D12_ReadLastTransactionStatus(2); /* Clear interrupt flag */
391 ; SOURCE LINE # 100
0055 7F02 392 MOV R7,#02H
0057 120000 F 393 LCALL _D12_ReadLastTransactionStatus
394 ; len = D12_ReadEndpoint(2, GenEpBuf, sizeof(GenEpBuf));
395 ; SOURCE LINE # 101
005A 7B00 396 MOV R3,#00H
005C 7A00 F 397 MOV R2,#HIGH (GenEpBuf)
005E 7900 F 398 MOV R1,#LOW (GenEpBuf)
0060 750010 F 399 MOV ?_D12_ReadEndpoint?BYTE+04H,#010H
0063 7F02 400 MOV R7,#02H
0065 120000 F 401 LCALL _D12_ReadEndpoint
0068 8F00 F 402 MOV len?240,R7
403 ; if(len != 0)
404 ; SOURCE LINE # 102
006A E500 F 405 MOV A,len?240
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -