⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ax_enum.asm

📁 mcs51,2051,x86系列MCU
💻 ASM
📖 第 1 页 / 共 5 页
字号:
$$IFN$ (EPATT14 == 1)

        jnb     FTXD2,  F_EP2_RX
        mov     EPINDEX,#02

        lcall   Ep2TxLoopBack
        jb      RXFIF0, GetEp2RxData        ; If data is pending in the FIFOs go get it.
        jb      RXFIF1, GetEp2RxData        ; This is quicker than calling the routines.
        ljmp    F_EP2_RX                    ; Look at all Interrupt flags again
GetEp2RxData:
        lCall   Ep2RxLoopBack               ; 82930 has received a packet from HC
$$END$
$$END$
$$END$
$$IF$ (BENCFG15 == 1)
$$IF$ (EPADDR15 == 130)
$$IFN$ (EPATT15 == 1)

        jnb     FTXD2,  F_EP2_RX
        mov     EPINDEX,#02

        lcall   Ep2TxLoopBack
        jb      RXFIF0, GetEp2RxData        ; If data is pending in the FIFOs go get it.
        jb      RXFIF1, GetEp2RxData        ; This is quicker than calling the routines.
        ljmp    F_EP2_RX                    ; Look at all Interrupt flags again
GetEp2RxData:
        lCall   Ep2RxLoopBack               ; 82930 has received a packet from HC
$$END$
$$END$
$$END$
$$IF$ (BENCFG16 == 1)
$$IF$ (EPADDR16 == 130)
$$IFN$ (EPATT16 == 1)

        jnb     FTXD2,  F_EP2_RX
        mov     EPINDEX,#02

        lcall   Ep2TxLoopBack
        jb      RXFIF0, GetEp2RxData        ; If data is pending in the FIFOs go get it.
        jb      RXFIF1, GetEp2RxData        ; This is quicker than calling the routines.
        ljmp    F_EP2_RX                    ; Look at all Interrupt flags again
GetEp2RxData:
        lCall   Ep2RxLoopBack               ; 82930 has received a packet from HC
$$END$
$$END$
$$END$
F_EP2_RX:
$$IF$ (BENCFG11 == 1)
$$IF$ (EPADDR11 == 2)
$$IFN$ (EPATT11 == 1)
        jnb     FRXD2,  F_EP3_TX
        mov     EPINDEX,#02
        lCall   Ep2RxLoopBack               ; 82930 has received a packet from HC
        lcall   Ep2TxLoopBack
$$END$
$$END$
$$END$
$$IF$ (BENCFG12 == 1)
$$IF$ (EPADDR12 == 2)
$$IFN$ (EPATT12 == 1)
        jnb     FRXD2,  F_EP3_TX
        mov     EPINDEX,#02
        lCall   Ep2RxLoopBack               ; 82930 has received a packet from HC
        lcall   Ep2TxLoopBack
$$END$
$$END$
$$END$
$$IF$ (BENCFG13 == 1)
$$IF$ (EPADDR13 == 2)
$$IFN$ (EPATT13 == 1)
        jnb     FRXD2,  F_EP3_TX
        mov     EPINDEX,#02
        lCall   Ep2RxLoopBack               ; 82930 has received a packet from HC
        lcall   Ep2TxLoopBack
$$END$
$$END$
$$END$
$$IF$ (BENCFG14 == 1)
$$IF$ (EPADDR14 == 2)
$$IFN$ (EPATT14 == 1)
        jnb     FRXD2,  F_EP3_TX
        mov     EPINDEX,#02
        lCall   Ep2RxLoopBack               ; 82930 has received a packet from HC
        lcall   Ep2TxLoopBack
$$END$
$$END$
$$END$
$$IF$ (BENCFG15 == 1)
$$IF$ (EPADDR15 == 2)
$$IFN$ (EPATT15 == 1)
        jnb     FRXD2,  F_EP3_TX
        mov     EPINDEX,#02
        lCall   Ep2RxLoopBack               ; 82930 has received a packet from HC
        lcall   Ep2TxLoopBack
$$END$
$$END$
$$END$
$$IF$ (BENCFG16 == 1)
$$IF$ (EPADDR16 == 2)
$$IFN$ (EPATT16 == 1)
        jnb     FRXD2,  F_EP3_TX
        mov     EPINDEX,#02
        lCall   Ep2RxLoopBack               ; 82930 has received a packet from HC
        lcall   Ep2TxLoopBack
$$END$
$$END$
$$END$
F_EP3_TX:
$$IF$ (BENCFG11 == 1)
$$IF$ (EPADDR11 == 131)
$$IFN$ (EPATT11 == 1)
        jnb     FTXD3,  F_EP3_RX
        mov     EPINDEX,#03

        lcall   Ep3TxLoopBack
        jb      RXFIF0, GetEp3RxData        ; If data is pending in the FIFOs go get it.
        jb      RXFIF1, GetEp3RxData        ; This is quicker than calling the routines.
        ljmp    F_EP3_RX                    ; Look at all Interrupt flags again
GetEp3RxData:
        lCall   Ep3RxLoopBack               ; 82930 has received a packet from HC
$$END$
$$END$
$$END$
$$IF$ (BENCFG12 == 1)
$$IF$ (EPADDR12 == 131)
$$IFN$ (EPATT12 == 1)
        jnb     FTXD3,  F_EP3_RX
        mov     EPINDEX,#03

        lcall   Ep3TxLoopBack
        jb      RXFIF0, GetEp3RxData        ; If data is pending in the FIFOs go get it.
        jb      RXFIF1, GetEp3RxData        ; This is quicker than calling the routines.
        ljmp    F_EP3_RX                    ; Look at all Interrupt flags again
GetEp3RxData:
        lCall   Ep3RxLoopBack               ; 82930 has received a packet from HC
$$END$
$$END$
$$END$
$$IF$ (BENCFG13 == 1)
$$IF$ (EPADDR13 == 131)
$$IFN$ (EPATT13 == 1)
        jnb     FTXD3,  F_EP3_RX
        mov     EPINDEX,#03

        lcall   Ep3TxLoopBack
        jb      RXFIF0, GetEp3RxData        ; If data is pending in the FIFOs go get it.
        jb      RXFIF1, GetEp3RxData        ; This is quicker than calling the routines.
        ljmp    F_EP3_RX                    ; Look at all Interrupt flags again
GetEp3RxData:
        lCall   Ep3RxLoopBack               ; 82930 has received a packet from HC
$$END$
$$END$
$$END$
$$IF$ (BENCFG14 == 1)
$$IF$ (EPADDR14 == 131)
$$IFN$ (EPATT14 == 1)
        jnb     FTXD3,  F_EP3_RX
        mov     EPINDEX,#03

        lcall   Ep3TxLoopBack
        jb      RXFIF0, GetEp3RxData        ; If data is pending in the FIFOs go get it.
        jb      RXFIF1, GetEp3RxData        ; This is quicker than calling the routines.
        ljmp    F_EP3_RX                    ; Look at all Interrupt flags again
GetEp3RxData:
        lCall   Ep3RxLoopBack               ; 82930 has received a packet from HC
$$END$
$$END$
$$END$
$$IF$ (BENCFG15 == 1)
$$IF$ (EPADDR15 == 131)
$$IFN$ (EPATT15 == 1)
        jnb     FTXD3,  F_EP3_RX
        mov     EPINDEX,#03

        lcall   Ep3TxLoopBack
        jb      RXFIF0, GetEp3RxData        ; If data is pending in the FIFOs go get it.
        jb      RXFIF1, GetEp3RxData        ; This is quicker than calling the routines.
        ljmp    F_EP3_RX                    ; Look at all Interrupt flags again
GetEp3RxData:
        lCall   Ep3RxLoopBack               ; 82930 has received a packet from HC
$$END$
$$END$
$$END$
$$IF$ (BENCFG16 == 1)
$$IF$ (EPADDR16 == 131)
$$IFN$ (EPATT16 == 1)
        jnb     FTXD3,  F_EP3_RX
        mov     EPINDEX,#03

        lcall   Ep3TxLoopBack
        jb      RXFIF0, GetEp3RxData        ; If data is pending in the FIFOs go get it.
        jb      RXFIF1, GetEp3RxData        ; This is quicker than calling the routines.
        ljmp    F_EP3_RX                    ; Look at all Interrupt flags again
GetEp3RxData:
        lCall   Ep3RxLoopBack               ; 82930 has received a packet from HC
$$END$
$$END$
$$END$
F_EP3_RX:
$$IF$ (BENCFG11 == 1)
$$IF$ (EPADDR11 == 3)
$$IFN$ (EPATT11 == 1)
        jnb     FRXD3,  EXIT_FUNCTION_ISR
        mov     EPINDEX,#03
        lCall   Ep3RxLoopBack               ; 82930 has received a packet from HC
        lcall   Ep3TxLoopBack
$$END$
$$END$
$$END$
$$IF$ (BENCFG12 == 1)
$$IF$ (EPADDR12 == 3)
$$IFN$ (EPATT12 == 1)
        jnb     FRXD3,  EXIT_FUNCTION_ISR
        mov     EPINDEX,#03
        lCall   Ep3RxLoopBack               ; 82930 has received a packet from HC
        lcall   Ep3TxLoopBack
$$END$
$$END$
$$END$
$$IF$ (BENCFG13 == 1)
$$IF$ (EPADDR13 == 3)
$$IFN$ (EPATT13 == 1)
        jnb     FRXD3,  EXIT_FUNCTION_ISR
        mov     EPINDEX,#03
        lCall   Ep3RxLoopBack               ; 82930 has received a packet from HC
        lcall   Ep3TxLoopBack
$$END$
$$END$
$$END$
$$IF$ (BENCFG14 == 1)
$$IF$ (EPADDR14 == 3)
$$IFN$ (EPATT14 == 1)
        jnb     FRXD3,  EXIT_FUNCTION_ISR
        mov     EPINDEX,#03
        lCall   Ep3RxLoopBack               ; 82930 has received a packet from HC
        lcall   Ep3TxLoopBack
$$END$
$$END$
$$END$
$$IF$ (BENCFG15 == 1)
$$IF$ (EPADDR15 == 3)
$$IFN$ (EPATT15 == 1)
        jnb     FRXD3,  EXIT_FUNCTION_ISR
        mov     EPINDEX,#03
        lCall   Ep3RxLoopBack               ; 82930 has received a packet from HC
        lcall   Ep3TxLoopBack
$$END$
$$END$
$$END$
$$IF$ (BENCFG16 == 1)
$$IF$ (EPADDR16 == 3)
$$IFN$ (EPATT16 == 1)
        jnb     FRXD3,  EXIT_FUNCTION_ISR
        mov     EPINDEX,#03
        lCall   Ep3RxLoopBack               ; 82930 has received a packet from HC
        lcall   Ep3TxLoopBack
$$END$
$$END$
$$END$

        mov     A, FIFLG                      ; Check to see if any other Interrupts are pending.
        jz      EXIT_FUNCTION_ISR
        ljmp    ProcessFunctionEndpoints    ; Look at all Interrupt flags again

        mov     A, FIFLG                    ; Check to see if any other Interrupts are pending.
        jz      EXIT_FUNCTION_ISR
        ljmp    ProcessFunctionEndpoints    ; Look at all Interrupt flags again

;F_EP2_TX:
;        jnb     FTXD2,  F_EP3_TX
;        mov     EPINDEX,#02
;        lCall   EP2_TX_ISR                  ; 82930 has sent a packet to HC
;        jmp     ProcessFunctionEndpoints    ; Look at all Interrupt flags again

;F_EP3_TX:
;        jnb     FTXD3,  EXIT_FUNCTION_ISR
;        mov     EPINDEX,#03
;        lCall   EP3_TX_ISR                  ; 82930 has sent a packet to HC
;        jmp     ProcessFunctionEndpoints    ; Look at all Interrupt flags again



EXIT_FUNCTION_ISR:
        pop     EPINDEX
        pop     B
        pop     ACC
        pop     PSW1
        pop     PSW
        reti

$$IF$ (EPATT11 == 1) || (EPATT12 == 1) || (EPATT13 == 1) || (EPATT14 == 1) || (EPATT15 == 1) || (EPATT16 == 1)
;----------------------------------------------------------------
;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
;SS                 SOF ISR
;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
;----------------------------------------------------------------
;COMMENT *------------------------------------------------------------
;Function name     : SOF_ISR
;Brief Description : Service the SOF_ISR Interrupt
;                  : This routine simply displays the upper three bytes of the
;                  : SOF in the lower three bits of the LEDs on P1.
;                  : It does not affect the other LEDS.  Very usefull
;                  : in determining when the function is receiveing SOFs
;Regs preserved    : Reg. A is saved
;--------------------------------------------------------------------*


SOF_ISR:
SOF_ISR1:
         push   PSW
         push   PSW1
         push    ACC
         jnb     ASOF,   ExitSofIsr         ; If this ASOF bit not set, the ISR could be a HUB.  Go Check.

SofIsocIsr:
                                            ;-----------------------------------------------------
                                            ; Update LEDs for the Heartbeat
                                            ;-----------------------------------------------------
        clr     ASOF


        mov     A,      P1                  ; Mask off lower three bits
        anl     A,      #0f8h
        mov     P1,     A

        mov     A,      SOFH                ; Put upper 3 bits of SOF in low 3 bits of P1
        anl     A,      #07h
        orl     P1,     A

ExitSofIsr:
        pop     ACC
        pop     PSW1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -