Ai8051U-32Bit汇编代码调用USB-CDC库函数
-
- $INCLUDE(AI8051U.INC)
-
- ;************************************************
-
- DEVSTATE_ATTACHED EQU 0
- DEVSTATE_POWERED EQU 1
- DEVSTATE_DEFAULT EQU 2
- DEVSTATE_ADDRESS EQU 3
- DEVSTATE_CONFIGURED EQU 4
- DEVSTATE_SUSPENDED EQU 5
-
- EXTRN CODE(USB_INIT)
- EXTRN CODE(USB_OUT_DONE)
- EXTRN CODE(USB_SENDDATA)
- EXTRN CODE(SET_USB_OUT_CALLBACK)
- EXTRN CODE(SET_USB_IN_CALLBACK)
-
- EXTRN EDATA(DEVICESTATE)
- EXTRN EDATA(OUTNUMBER)
-
- EXTRN BIT(BUSBFEATUREREADY)
- EXTRN BIT(BUSBINBUSY)
- EXTRN BIT(BUSBOUTREADY)
- EXTRN XDATA(USBFEATUREBUFFER)
- EXTRN XDATA(USBINBUFFER)
- EXTRN XDATA(USBOUTBUFFER)
-
-
- ;************************************************
-
- CSEG AT 0000H
- LJMP RESET ;复位跳转
-
- ;************************************************
-
- ?PR?MAIN SEGMENT CODE ;定义代码段
- RSEG ?PR?MAIN
- RESET:
- MOV R0,#7FH
- CLR A
- CLEARRAM:
- MOV @R0,A
- DJNZ R0,CLEARRAM
-
- MOV DR60,#0100H
-
- MOV WTST,#00H
- MOV CKCON,#00H
- SETB EAXFR
-
- CLR A
- MOV P0M0,A
- MOV P0M1,A
- MOV P1M0,A
- MOV P1M1,A
- MOV P2M0,A
- MOV P2M1,A
- MOV P3M0,A
- MOV P3M1,A
- MOV P4M0,A
- MOV P4M1,A
- MOV P5M0,A
- MOV P5M1,A
- MOV P6M0,A
- MOV P6M1,A
- MOV P7M0,A
- MOV P7M1,A
-
- MOV DR4, #0
- LCALL SET_USB_OUT_CALLBACK ;清除USB接收中断回调函数
- MOV DR4, #0
- LCALL SET_USB_IN_CALLBACK ;清除USB发送中断回调函数
- LCALL USB_INIT ;初始化USB模块
-
- SETB EA
-
- WAITUSBCFG:
- MOV R11,DEVICESTATE ;等待USB配置完成
- CJNE A,#DEVSTATE_CONFIGURED,WAITUSBCFG
-
- MAIN:
- JNB BUSBOUTREADY,MAIN ;查询是否有接收到数据
-
- MOV WR0,#WORD2 USBOUTBUFFER
- MOV WR2,#WORD0 USBOUTBUFFER
- MOV R6,#00H
- MOV R7,OUTNUMBER
- LCALL USB_SENDDATA ;数据原路返回
-
- LCALL USB_OUT_DONE ;接收的数据处理完成后再调用此函数
-
- JMP MAIN
-
-
- ;************************************************
-
- END
复制代码
Ai8051U-32Bit汇编代码调用USB-HID库函数
-
- $INCLUDE(AI8051U.INC)
-
- ;************************************************
-
- DEVSTATE_ATTACHED EQU 0
- DEVSTATE_POWERED EQU 1
- DEVSTATE_DEFAULT EQU 2
- DEVSTATE_ADDRESS EQU 3
- DEVSTATE_CONFIGURED EQU 4
- DEVSTATE_SUSPENDED EQU 5
-
- EXTRN CODE(USB_INIT)
- EXTRN CODE(USB_OUT_DONE)
- EXTRN CODE(USB_SENDDATA)
- EXTRN CODE(SET_USB_OUT_CALLBACK)
- EXTRN CODE(SET_USB_IN_CALLBACK)
-
- EXTRN EDATA(DEVICESTATE)
-
- EXTRN BIT(BUSBFEATUREREADY)
- EXTRN BIT(BUSBINBUSY)
- EXTRN BIT(BUSBOUTREADY)
- EXTRN XDATA(USBFEATUREBUFFER)
- EXTRN XDATA(USBINBUFFER)
- EXTRN XDATA(USBOUTBUFFER)
-
-
- ;************************************************
-
- CSEG AT 0000H
- LJMP RESET ;复位跳转
-
- ;************************************************
-
- ?PR?MAIN SEGMENT CODE ;定义代码段
- RSEG ?PR?MAIN
- RESET:
- MOV R0,#7FH
- CLR A
- CLEARRAM:
- MOV @R0,A
- DJNZ R0,CLEARRAM
-
- MOV DR60,#0100H
-
- MOV WTST,#00H
- MOV CKCON,#00H
- SETB EAXFR
-
- CLR A
- MOV P0M0,A
- MOV P0M1,A
- MOV P1M0,A
- MOV P1M1,A
- MOV P2M0,A
- MOV P2M1,A
- MOV P3M0,A
- MOV P3M1,A
- MOV P4M0,A
- MOV P4M1,A
- MOV P5M0,A
- MOV P5M1,A
- MOV P6M0,A
- MOV P6M1,A
- MOV P7M0,A
- MOV P7M1,A
-
- MOV DR4, #0
- LCALL SET_USB_OUT_CALLBACK ;清除USB接收中断回调函数
- MOV DR4, #0
- LCALL SET_USB_IN_CALLBACK ;清除USB发送中断回调函数
- LCALL USB_INIT ;初始化USB模块
-
- SETB EA
-
- WAITUSBCFG:
- MOV R11,DEVICESTATE ;等待USB配置完成
- CJNE A,#DEVSTATE_CONFIGURED,WAITUSBCFG
-
- MAIN:
- JNB BUSBOUTREADY,MAIN ;查询是否有接收到数据
-
- MOV WR0,#WORD2 USBOUTBUFFER
- MOV WR2,#WORD0 USBOUTBUFFER
- MOV R6,#00H
- MOV R7,#64
- LCALL USB_SENDDATA ;数据原路返回
-
- LCALL USB_OUT_DONE ;接收的数据处理完成后再调用此函数
-
- JMP MAIN
-
-
- ;************************************************
-
- END
复制代码
Ai8051U-8Bit汇编代码调用USB-CDC库函数
-
- $INCLUDE(AI8051U.INC)
-
- ;************************************************
-
- DEVSTATE_ATTACHED EQU 0
- DEVSTATE_POWERED EQU 1
- DEVSTATE_DEFAULT EQU 2
- DEVSTATE_ADDRESS EQU 3
- DEVSTATE_CONFIGURED EQU 4
- DEVSTATE_SUSPENDED EQU 5
-
- EXTRN CODE(USB_INIT)
- EXTRN CODE(USB_OUT_DONE)
- EXTRN CODE(_USB_SENDDATA)
- EXTRN CODE(_SET_USB_OUT_CALLBACK)
- EXTRN CODE(_SET_USB_IN_CALLBACK)
-
- EXTRN DATA(DEVICESTATE)
- EXTRN DATA(OUTNUMBER)
-
- EXTRN BIT(BUSBFEATUREREADY)
- EXTRN BIT(BUSBINBUSY)
- EXTRN BIT(BUSBOUTREADY)
- EXTRN XDATA(USBFEATUREBUFFER)
- EXTRN XDATA(USBINBUFFER)
- EXTRN XDATA(USBOUTBUFFER)
-
-
- ;************************************************
-
- CSEG AT 0000H
- LJMP RESET ;复位跳转
-
- ;************************************************
-
- ?PR?MAIN SEGMENT CODE ;定义代码段
- RSEG ?PR?MAIN
- RESET:
- MOV R0,#7FH
- CLR A
- CLEARRAM:
- MOV @R0,A
- DJNZ R0,CLEARRAM
-
- MOV SP,#7FH
-
- ORL P_SW2,#80H
- CLR A
- MOV P0M0,A
- MOV P0M1,A
- MOV P1M0,A
- MOV P1M1,A
- MOV P2M0,A
- MOV P2M1,A
- MOV P3M0,A
- MOV P3M1,A
- MOV P4M0,A
- MOV P4M1,A
- MOV P5M0,A
- MOV P5M1,A
- MOV P6M0,A
- MOV P6M1,A
- MOV P7M0,A
- MOV P7M1,A
-
- MOV R3, A
- MOV R2, A
- MOV R1, A
- LCALL _SET_USB_OUT_CALLBACK ;清除USB接收中断回调函数
- MOV R3, A
- MOV R2, A
- MOV R1, A
- LCALL _SET_USB_IN_CALLBACK ;清除USB发送中断回调函数
-
- LCALL USB_INIT ;初始化USB模块
-
- SETB EA
-
- MAIN:
- JNB BUSBOUTREADY,MAIN ;查询是否有接收到数据
-
- MOV R3,#01H
- MOV R2,#HIGH USBOUTBUFFER
- MOV R1,#LOW USBOUTBUFFER
- MOV R5,OUTNUMBER
- MOV R4,#00H
- LCALL _USB_SENDDATA ;数据原路返回
-
- CALL USB_OUT_DONE ;接收的数据处理完成后再调用此函数
-
- JMP MAIN
-
-
- ;************************************************
-
- END
复制代码
Ai8051U-8Bit汇编代码调用USB-HID库函数
-
- $INCLUDE(AI8051U.INC)
-
- ;************************************************
-
- DEVSTATE_ATTACHED EQU 0
- DEVSTATE_POWERED EQU 1
- DEVSTATE_DEFAULT EQU 2
- DEVSTATE_ADDRESS EQU 3
- DEVSTATE_CONFIGURED EQU 4
- DEVSTATE_SUSPENDED EQU 5
-
- EXTRN CODE(USB_INIT)
- EXTRN CODE(USB_OUT_DONE)
- EXTRN CODE(_USB_SENDDATA)
- EXTRN CODE(_SET_USB_OUT_CALLBACK)
- EXTRN CODE(_SET_USB_IN_CALLBACK)
-
- EXTRN DATA(DEVICESTATE)
-
- EXTRN BIT(BUSBFEATUREREADY)
- EXTRN BIT(BUSBINBUSY)
- EXTRN BIT(BUSBOUTREADY)
- EXTRN XDATA(USBFEATUREBUFFER)
- EXTRN XDATA(USBINBUFFER)
- EXTRN XDATA(USBOUTBUFFER)
-
-
- ;************************************************
-
- CSEG AT 0000H
- LJMP RESET ;复位跳转
-
- ;************************************************
-
- ?PR?MAIN SEGMENT CODE ;定义代码段
- RSEG ?PR?MAIN
- RESET:
- MOV R0,#7FH
- CLR A
- CLEARRAM:
- MOV @R0,A
- DJNZ R0,CLEARRAM
-
- MOV SP,#7FH
-
- ORL P_SW2,#80H
- CLR A
- MOV P0M0,A
- MOV P0M1,A
- MOV P1M0,A
- MOV P1M1,A
- MOV P2M0,A
- MOV P2M1,A
- MOV P3M0,A
- MOV P3M1,A
- MOV P4M0,A
- MOV P4M1,A
- MOV P5M0,A
- MOV P5M1,A
- MOV P6M0,A
- MOV P6M1,A
- MOV P7M0,A
- MOV P7M1,A
-
- MOV R3, A
- MOV R2, A
- MOV R1, A
- LCALL _SET_USB_OUT_CALLBACK ;清除USB接收中断回调函数
- MOV R3, A
- MOV R2, A
- MOV R1, A
- LCALL _SET_USB_IN_CALLBACK ;清除USB发送中断回调函数
-
- LCALL USB_INIT ;初始化USB模块
-
- SETB EA
-
- MAIN:
- JNB BUSBOUTREADY,MAIN ;查询是否有接收到数据
-
- MOV R3,#01H
- MOV R2,#HIGH USBOUTBUFFER
- MOV R1,#LOW USBOUTBUFFER
- MOV R5,#64
- MOV R4,#00H
- LCALL _USB_SENDDATA ;数据原路返回
-
- CALL USB_OUT_DONE ;接收的数据处理完成后再调用此函数
-
- JMP MAIN
-
-
- ;************************************************
-
- END
复制代码
|