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

📄 usblib2.lst

📁 82K96E/82M99E开发的USB键盘接收端DEMO程序源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
"File: USBLIB2.ASM   Holtek Cross-Assembler  Version 2.86      Page 1


   1  0000              include		ht82k96e.inc


   2  0000              ;include    	usbrf.inc
   3  0000              include		usbfifo.inc


   4  0000              
   5  0000              
   6  0000              
   7  0000              extern		stall			:byte
   8  0000              extern		FIFO_Type		:byte
   9  0000              extern		FIFO_OUT1 		:byte
  10  0000              extern		int_temp1		:byte
  11  0000              extern		int_temp2		:byte
  12  0000              extern		fifo_sendlen	:byte
  13  0000              extern		bhas_len0		:bit
  14  0000              ;extern		bFLAG_FIFO_REDY		:bit
  15  0000              ;extern		bFLAG_AdrF		:bit
  16  0000              extern		bRmtWakeup		:bit
  17  0000              extern		baddr_state		:bit
  18  0000              
  19  0000              extern		CMD_ADDR		:byte
  20  0000              
  21  0000              FIFO_temp		equ			int_temp1
  22  0000              fifo_no			equ			int_temp2
  23  0000              FIFO_ADDR		equ			int_temp1
  24  0000              
  25  0000              
  26  0000              
  27  0000              USBlib		.Section	AT 280H 'code'   ;AT	USBlib_ADDRESS
  28  0000              ;----------------------------------------------------------------------------
  29  0000              ;FIFO 0 ready to read ?
  30  0000              
  31  0000              FIFO0_Rd_Check:
  32  0000  0F00        				mov		a,00000000b
  33  0001  2A90        				jmp		FIFO_Check
  34  0002              
  35  0002              FIFO1_RD_check:
  36  0002  0F08        				mov		a,00001000b
  37  0003  2A90        				jmp		FIFO_Check
  38  0004              FIFO2_RD_check:
  39  0004  0F10        				mov		a,00010000b
  40  0005  2A90        				jmp		FIFO_Check
  41  0006              FIFO3_RD_check:
  42  0006  0F18        				mov		a,00011000b
  43  0007  2A90        				jmp		FIFO_Check
  44  0008              
  45  0008              				
  46  0008              ;----------------------------------------------------------------------------
  47  0008              ;Len 0 ready to write ?
  48  0008              LEN0_Wr_Check:
  49  0008              ;FIFO 0 ready to write ?
  50  0008              FIFO0_Wr_Check:
  51  0008  0F02        				mov		a,00000010b
  52  0009  2A90        				jmp		FIFO_Check
  53  000A              FIFO1_Wr_check:
  54  000A  0F0A        				mov		a,00001010b
  55  000B  2A90        				jmp		FIFO_Check
"File: USBLIB2.ASM   Holtek Cross-Assembler  Version 2.86      Page 2

  56  000C              FIFO2_Wr_check:
  57  000C  0F12        				mov		a,00010010b
  58  000D  2A90        				jmp		FIFO_Check
  59  000E              FIFO3_Wr_check:
  60  000E  0F1A        				mov		a,00011010b
  61  000F  2A90        				jmp		FIFO_Check
  62  0010              				
  63  0010              FIFO_Check:
  64  0010  0080     E  				mov		FIFO_temp,a
  65  0011  0F46                        MOV     A,USB_MISC
  66  0012  0083                        MOV     MP1,A
  67  0013  0702        				mov		a,r1
  68  0014  0EE0        				and		a,11100000b
  69  0015  0500     E  				or		a,fifo_temp
  70  0016  0082        				mov		r1,a
  71  0017  22F3        				call	wait_4us
  72  0018  3002                        SET     R1.@USB_Req         	;Set request
  73  0019  22F3        				call	wait_4us
  74  001A  22F3        				call	wait_4us
  75  001B  0F40                        MOV     A,(01H SHL @USB_Ready) 	;access ready flag
  76  001C              Check:
  77  001C  22E7        				call	wait_28us
  78  001D  0602                        AND     A,R1        			;Z=0:ready/1:not ready
  79  001E  0003                        RET
  80  001F              
  81  001F              ;----------------------------------------------------------------------------
  82  001F              ;----BEGIN (Read FIFO)
  83  001F              ReadFIFO0:
  84  001F  0F48                        MOV     A,USB_FIFO0
  85  0020  2AA7                        JMP     ReadFIFO
  86  0021              ReadFIFO1:
  87  0021  0F49                        MOV     A,USB_FIFO1
  88  0022  2AA7        				JMP		ReadFIFO	
  89  0023              ReadFIFO2:
  90  0023  0F4A                        MOV     A,USB_FIFO2
  91  0024  2AA7        				JMP		ReadFIFO	
  92  0025              ReadFIFO3:
  93  0025  0F4B                        MOV     A,USB_FIFO3
  94  0026  2AA7        				JMP		ReadFIFO	
  95  0027              
  96  0027              ReadFIFO:
  97  0027  0080     E                  MOV     FIFO_NO,A             	;FIFO NO.
  98  0028  1F00     E                  CLR     FIFO_SendLen            ;Initial length to 0
  99  0029  0F00     E                  MOV     A,OFFSET FIFO_Type      ;set input FIFO buffer pointer
 100  002A  0081                        MOV     MP0,A                   ;
 101  002B              ReadFIFOLoop:
 102  002B  0700     E                  MOV     A,FIFO_NO              	;FIFO NO.
 103  002C  0083                        MOV     MP1,A                   ;
 104  002D  0702                        MOV     A,R1                    ;Read FIFO data
 105  002E  0000        				nop
 106  002F  0080                        MOV     R0,A                    ;
 107  0030  1480     E                  INC     FIFO_SendLen            ;Getting data length++
 108  0031  1481                        INC     MP0                     ;Update to next pointer
 109  0032  0F08                        MOV     A,FIFO_SIZE             ;FIFO full ?
 110  0033  0400     E                  XOR     A,FIFO_SendLen          ;
 111  0034  3D0A                        SZ      Z                       ;
 112  0035  2AD8                        JMP     E1ND_Request             ;Yes
 113  0036  0F46                        MOV     A,USB_MISC              ;Check ready ?
 114  0037  0083                        MOV     MP1,A                   ;
 115  0038  22E7        				call	wait_28us
"File: USBLIB2.ASM   Holtek Cross-Assembler  Version 2.86      Page 3

 116  0039  3F02                        SZ      R1.@USB_Ready           ;
 117  003A  2AAB                        JMP     ReadFIFOLoop            ;Yes
 118  003B  2AD8                        JMP     E1ND_Request             ;No Exit for not 8 bytes data
 119  003C              ;----END (Read FIFO)
 120  003C              
 121  003C              ;----------------------------------------------------------------------------
 122  003C              ;----BEGIN (Write FIFO)
 123  003C              ;Write FIFO_OUT1 Data to FIFO Buffer 
 124  003C              WriteFIFO0:
 125  003C  0F48                        MOV     A,USB_FIFO0
 126  003D  2AC4                        JMP     WriteFIFO
 127  003E              WriteFIFO1:
 128  003E  0F49                        MOV     A,USB_FIFO1
 129  003F  2AC4        				JMP		WriteFIFO
 130  0040              WriteFIFO2:
 131  0040  0F4A                        MOV     A,USB_FIFO2
 132  0041  2AC4        				JMP		WriteFIFO
 133  0042              WriteFIFO3:
 134  0042  0F4B                        MOV     A,USB_FIFO3
 135  0043  2AC4        				JMP		WriteFIFO
 136  0044              
 137  0044              WriteFIFO:
 138  0044  0080     E                  MOV     FIFO_NO,A             	;FIFO NO.
 139  0045  0F00     E                  MOV     A,OFFSET FIFO_OUT1      ;set output FIFO buffer pointer
 140  0046  0081                        MOV     MP0,A                   ;
 141  0047              WriteFIFOLoop:

⌨️ 快捷键说明

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