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

📄 usbjoy32.lst

📁 HID规范和一个基于CYPRESS FX2 的例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
CYASM Version 1.94 
(C) 1998,1999,2000 Cypress Semiconductor Corp.

                ;       Pin Connections
                ;
                ;                        -----------------------
                ;                       | P0[0]         P0[4]   |
                ;                       | P0[1]         P0[5]   |
                ;                       | P0[2]         P0[6]   |
                ;                       | P0[3]                 P0[7]   |
                ;                       | P1[0]         P1[1]   |       
                ;                       | P1[2]         P1[3]   |
                ;                       | P1[4]         P1[5]   |
                ;                       | P1[6]         P1[7]   |
                ;       GND             | VSS               D+/SCLK | USB D+ / PS2 SCLK
                ;       GND             | VPP              D-/SDATA     | USB D- / PS2 SDATA
                ;       PULLUP  | VREG            VCC   | +5
                ;                       | XTALIN            XTALOUT     |
                ;                        -----------------------
                ;
                ;**************** assembler directives ***************** 
                
0000                    CPU     63743                   ; The frameworks is written for
                                                        ; the CY7C63722/23 and CY7C63742/43.
                                                        ; User should change the CPU to the type of
                                                        ; chip being used.
                
0000                    XPAGEON
                
                
                ; processor registers
0000=           Port0:                          equ     00h
0001=           Port1:                          equ     01h
0002=           Port2:                          equ     02h
                
0004=           Port0_Interrupt:                equ     04h
0005=           Port1_Interrupt:                equ     05h
0006=           Port0_Interrupt_Polarity:       equ     06h
0007=           Port1_Interrupt_Polarity:       equ     07h
                
000A=           Port0_Mode0:                    equ     0Ah
000B=           Port0_Mode1:                    equ     0Bh
000C=           Port1_Mode0:                    equ     0Ch
000D=           Port1_Mode1:                    equ     0Dh
                
                
0010=           Usb_Address:                    equ     10h
                
0011=           Ep0_Count:                      equ     11h
0012=           Ep0_Mode:                       equ     12h
0013=           Ep1_Count:                      equ     13h
0014=           Ep1_Mode:                       equ     14h
0015=           Ep2_Count:                      equ     15h
0016=           Ep2_Mode:                       equ     16h
                
001F=           Usb_Status_Control:             equ     1Fh
                
0020=           Global_Interrupt:               equ     20h
0021=           Endpoint_Interrupt:             equ     21h
                
0024=           Timer_Lsb:                      equ     24h
0025=           Timer_Msb:                      equ     25h
                
0026=           Watchdog:                       equ     26h
                
0040=           Capture_TimerA_Rising:          equ     40h
0041=           Capture_TimerA_Falling:         equ     41h
0042=           Capture_TimerB_Rising:          equ     42h
0043=           Capture_TimerB_Falling:         equ     43h
0044=           Capture_Timer_Config:           equ     44h
0045=           Capture_Timer_Status:           equ     45h
                
0060=           SPI_Data:                       equ     60h
0061=           SPI_Control:                    equ     61h
                
00F8=           Clock_Config:                   equ     F8h
00FF=           Processor_Status_Control:       equ     FFh
                
                ; Port 2 Data Register 0x02 bit assignments
0020=           SCLK:                           equ     20h
0020=           DPLUS:                          equ     20h
0010=           SDATA:                          equ     10h
0010=           DMINUS:                         equ     10h
0002=           XTALIN:                         equ     02h
0001=           VREG:                           equ     01h
                
                ; USB Port status and control register 0x1F bit assignments
0080=           PS2_PULLUP:                     equ     80h
0040=           VREG_ENABLE:                    equ     40h
0020=           USB_PS2_MODE:                   equ     20h
0008=           BUS_ACTIVITY:                   equ     08h
0001=           CONTROL0:                       equ     01h
0002=           CONTROL1:                       equ     02h
0004=           CONTROL2:                       equ     04h
                
0000=           NOT_FORCING:                    equ     00h
0001=           FORCE_K:                        equ     01h
0002=           FORCE_J:                        equ     02h
0003=           FORCE_SE0:                      equ     03h
0040=           FORCEBOTH_LOW:                  equ     40h
0005=           FORCESDATA_LOW:                 equ     05h
0006=           FORCESCLK_LOW:                  equ     06h
0007=           FORCE_HIZ:                      equ     07h
                
                ;Port Modes
0000=           MODE0_RESISTIVE_MODE:           equ     00h
00FF=           MODE1_RESISTIVE_MODE:           equ     FFh
                
                ; USB Device Address Registers 0x10 bit assignments
0080=           ADDRESS_ENABLE:                 equ     80h
007F=           ADDRESS_MASK:                   equ     7Fh
                
                ; USB Device EP0 Mode Register 0x12
0080=           EP0_SETUP:                      equ     80h
0040=           EP0_IN:                         equ     40h
0020=           EP0_OUT:                        equ     20h
0010=           EP0_ACK:                        equ     10h
000F=           MODE_MASK:                      equ     0Fh
                
                ; USB Device Endpoint Mode Registers 0x14, 0x16
0080=           EP_STALL:                       equ     80h
0010=           EP_ACK:                         equ     10h
                
                ; USB Device Counter Registers 0x11, 0x13, 0x15
0080=           DATA_TOGGLE:                    equ     80h
0040=           DATA_VALID:                     equ     40h
000F=           BYTE_COUNT:                     equ     0Fh
                
                ;Processor Status and Control Register 0xFF
0080=           IRQ_PENDING:                    equ     80h
0040=           WDR:                            equ     40h
0020=           USB_RESET:                      equ     20h
0010=           POR_RESET:                      equ     10h
0008=           SUSPEND:                        equ     08h
0004=           INT_ENABLE_SENSE:               equ     04h
0001=           RUN:                            equ     01h
                
                ; global interrupt enable register 0x20 bit assignments
0080=           WAKEUP_INT:                     equ     80h
0040=           GPIO_INT:                       equ     40h
0004=           1MS_INT:                        equ     04h
0002=           128US_INT:                      equ     02h
0001=           USB_RESET_INT:                  equ     01h
                
                ; USB Endpoint Interrupt Enable Register 0x21 bit assignments
0004=           EP2_INT:                        equ     04h
0002=           EP1_INT:                        equ     02h
0001=           EP0_INT:                        equ     01h
                
                ; Clock Configuration Register 0xF8 bit assignments
0080=           EXT_DELAY:                      equ     80h
0040=           WAKEUP_ADJUST2:                 equ     40h
0020=           WAKEUP_ADJUST1:                 equ     20h
0010=           WAKEUP_ADJUST0:                 equ     10h
0008=           LVR_ENABLE:                     equ     08h
0004=           PRECISION_CLK_ENABLE:           equ     04h
0002=           INTERNAL_CLK:                   equ     02h
0001=           EXTERNAL_CLK:                   equ     01h
                
                ; USB register mode encoding
0000=           DISABLE:                        equ     00h
0001=           NAK_IN_OUT:                     equ     01h
0002=           STATUS_OUT_ONLY:                equ     02h
0003=           STALL_IN_OUT:                   equ     03h
0004=           IGNORE_IN_OUT:                  equ     04h
0006=           STATUS_IN_ONLY:                 equ     06h
0007=           ISOCHRONOUS_IN:                 equ     07h
0008=           NAK_OUT:                        equ     08h
0009=           ACK_OUT:                        equ     09h
000A=           NAK_OUT_STATUS_IN:              equ     0Ah
000B=           ACK_OUT_NAK_IN:                 equ     0Bh
000C=           NAK_IN:                         equ     0Ch
000D=           ACK_IN:                         equ     0Dh
000E=           NAK_IN_STATUS_OUT:              equ     0Eh
000F=           ACK_IN_STATUS_OUT:              equ     0Fh
                
                ;RAM locations
00FF=           TOP_OF_RAM:                     equ     FFh
0000=           BOTTOM_OF_RAM:                  equ     00h
                
00FF=           SET:                            equ     FFh
0000=           CLEAR:                          equ     00h
                
                
                
                
                
                
                
                
                ;========================================
                ;
                ;       Ram
                ;
                ;========================================
                
0020=           suspend_count:          equ     20h             ; counter for suspend/resume
0021=           ep1_data_toggle:        equ     21h             ; data toggle for INs on endpoint one
0022=           ep0_data_toggle:        equ     22h             ; data toggle for INs on endpoint zero
0023=           data_start:             equ     23h             ; address of request response data, as an offset
0024=           data_count:             equ     24h             ; number of bytes to send back to the host
0025=           maximum_data_count:     equ     25h             ; request response size
0026=           data_pending_flag:      equ     26h
0027=           configuration:          equ     27h
0028=           ep1_stall:              equ     28h
0029=           idle:                   equ     29h
002A=           protocol:               equ     2Ah
002B=           ep0_count_tmp:          equ     2Bh             ; temporary register
002C=           pending_data:           equ     2Ch
002D=           int_temp:               equ     2Dh
002E=           idle_timer:             equ     2Eh
002F=           idle_prescaler:         equ     2Fh
0030=           ep0_transtype:          equ     30h
0031=           data_byte_0:            equ     31h
0032=           data_byte_1:            equ     32h
                
0033=           new_task:               equ     33h
0034=           task_number:            equ     34h
0035=           Dpad_debounce:          equ     35h
0037=           new_y:                  equ     37h
0038=           new_x:                  equ     38h
0039=           old_x:                  equ     39h
003A=           old_y:                  equ     3Ah
003C=           old_buttons:            equ     3Ch
                
                ;========================================
                ;       
                ;       Application Specific aliases
                ;       
                ;========================================
                
0000=           Button_Port:            equ     Port0
0001=           Dpad_Port:              equ     Port1
000F=           DPAD_BITS:              equ     0fh
0003=           Y_BITS:                 equ     03h
00FF=           BUTTON_BITS:            equ     ffh
0003=           EP1_REPORT_LENGTH:      equ     03h
                
                ; STATE MACHINE CONSTANTS
                ;EP0 IN TRANSACTIONS
0000=           EP0_IN_IDLE:            equ     00h
0002=           CONTROL_READ_DATA:      equ     02h
0004=           NO_DATA_STATUS:         equ     04h
0006=           EP0_IN_STALL:           equ     06h
                
                ;******* FLAG CONSTANTS
0000=           NO_CHANGE_PENDING:              equ     00h
0001=           ADDRESS_CHANGE_PENDING:         equ     01h

⌨️ 快捷键说明

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