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

📄 usb_int2.lst

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


   1  0000              
   2  0000              include		ht82k96e.inc


   3  0000              ;include 	usbrf.inc
   4  0000              include		usbFIFO.inc


   5  0000              
   6  0000              
   7  0000              
   8  0000              ;"FIFO_type"
   9  0000              @Setup_D    EQU     7               	;direction
  10  0000              @INTERFACE	EQU		0
  11  0000              Setup_Type  EQU     60H             	;Type
  12  0000              Setup_Rev   EQU     1FH             	;Recipient  (Just use 2 bits)
  13  0000              wValueH_Typ EQU     60H     			;D6..5  Type: 0-Standard, 1-Class, 2-Vendor
  14  0000              wValueH_Dst EQU     1FH     			;
  15  0000              
  16  0000              
  17  0000              
  18  0000              extern		bFLAG_SndFC		:bit			;has control pipe data to transmitter
  19  0000              extern		bFLAG_Setup		:bit
  20  0000              ;extern		bFLAG_FIFO_REDY		:bit
  21  0000              extern		bFLAG_RsqF		:bit
  22  0000              ;extern		bFLAG_AdrF		:bit
  23  0000              extern		bRmtWakeup		:bit 
  24  0000              extern		bhas_data_out_previous	:bit
  25  0000              extern		bhas_data_out_previous1	:bit
  26  0000              extern		bhas_data_out_previous2	:bit
  27  0000              
  28  0000              
  29  0000              extern		bsetup_flag		:bit			;there are setup cmd received	
  30  0000              extern		bCMD_INDEX		:bit
  31  0000              extern		baddr_state		:bit
  32  0000              extern		bKB_KeyUpt		:bit
  33  0000              extern		btime_out_KB	:bit
  34  0000              ;extern		bacpi_key_chg	:bit
  35  0000              ;extern		bmulti_key_chg	:bit
  36  0000              extern		breseume_s		:bit
  37  0000              extern		bwait_setup		:bit
  38  0000              
  39  0000              
  40  0000              
  41  0000              
  42  0000              extern		fifo_out1				:byte
  43  0000              extern		fifo_out2				:byte
  44  0000              extern		fifo_out3				:byte
  45  0000              extern		fifo_out4				:byte
  46  0000              extern		fifo_out5				:byte
  47  0000              extern		fifo_out6				:byte
  48  0000              extern		fifo_out7				:byte
  49  0000              extern		fifo_out8				:byte
  50  0000              
  51  0000              extern		FIFO0_Wr_Check			:near
  52  0000              extern		FIFO0_Rd_Check			:near
  53  0000              extern		FIFO1_Rd_Check			:near
  54  0000              extern		FIFO2_Rd_Check			:near
  55  0000              ;extern		LEN0_Rd_Check			:near
"File: USB_INT2.ASM  Holtek Cross-Assembler  Version 2.86      Page 2

  56  0000              extern		LEN0_Wr_Check			:near
  57  0000              ;extern		ReadLen0				:near
  58  0000              extern		WriteLen0				:near
  59  0000              extern		ReadFIFO0				:near
  60  0000              extern		ReadFIFO1				:near
  61  0000              extern		ReadFIFO2				:near
  62  0000              extern		WriteFIFO0				:near
  63  0000              extern		FIFO1_Wr_Check 			:near
  64  0000              extern		WriteFIFO1				:near
  65  0000              extern		FIFO2_Wr_Check			:near
  66  0000              extern		WriteFIFO2				:near
  67  0000              ;extern		moveacpidata			:near
  68  0000              ;extern		movemultidata			:near
  69  0000              
  70  0000              
  71  0000              
  72  0000              
  73  0000              extern		GetPipeBit				:near
  74  0000              extern		clearstall				:near
  75  0000              extern		setstall				:near
  76  0000              
  77  0000              
  78  0000              extern		GetEnd						:near
  79  0000              extern		StandardRequest				:near
  80  0000              extern		ClassRequest				:near
  81  0000              extern		ReadNextCnf					:near
  82  0000              
  83  0000              extern		SetLED						:near
  84  0000              extern		MoveKeyboardData			:near
  85  0000              
  86  0000              extern		ReturnAddr					:byte
  87  0000              extern		FIFO_SendLen				:byte
  88  0000              extern		FIFO_Type					:byte
  89  0000              extern		KB_LED						:byte
  90  0000              extern		TempKBTime					:byte
  91  0000              extern		TempKBTime_L				:byte
  92  0000              extern		CMD_ADDR					:byte
  93  0000              extern		int_temp1					:byte
  94  0000              
  95  0000              
  96  0000              FIFO_addr		equ			int_temp1
  97  0000              
  98  0000              
  99  0000              usbint_var		.section		'data'
 100  0000  00          isr_usb_acc			db			?
 101  0001  00          isr_usb_status		db			?
 102  0002  00          isr_usb_mp1			db			?
 103  0003  00          isr_usb_mp0			db			?
 104  0004  00          isr_usb_tblp		db			?
 105  0005  00          int_reg_temp		db			?				;for store USB pipe int register
 106  0006              
 107  0006              
 108  0006              
 109  0006              
 110  0006              ;**************************************************************************
 111  0006              ;*			External INT subroutine
 112  0006              ;**************************************************************************
 113  0006              
 114  0000              usbExt			.Section	 AT 350H 'code'
 115  0000              ;External interrupt service routine
"File: USB_INT2.ASM  Holtek Cross-Assembler  Version 2.86      Page 3

 116  0000              EXT_START:
 117  0000  0001        				clr		wdt	
 118  0001  0080     R  				MOV     ISR_USB_ACC,A          	;Save ACC
 119  0002  070A                        MOV     A,STATUS               	;Save STATUS
 120  0003  0080     R                  MOV     isr_usb_status,A        
 121  0004              
 122  0004  0F01                        MOV     A,USB_REG_BANK      	;Set bank pointer to USB control
 123  0005  0084                        MOV     BP,A                	;register bank	
 124  0006              
 125  0006              
 126  0006              
 127  0006  0703        				MOV		A,MP1
 128  0007  0080     R  				MOV		isr_usb_mp1,A
 129  0008  0701        				mov		a,mp0
 130  0009  0080     R  				mov		isr_USB_mp0,a
 131  000A  0707        				mov		a,tblp
 132  000B  0080     R  				mov		isr_usb_tblp,a
 133  000C              
 134  000C  348B        				clr		intc.1
 135  000D  300B        				set		intc.0
 136  000E              
 137  000E  379B        				clr		FIFO_w_c_b				;use in Bread Board only
 138  000F              ;-----------------------------------------------------------------------------------
 139  000F  381A        				snz		suspend_line
 140  0010  2B77        				jmp		check_Access_FIFO
 141  0011              
 142  0011  0FF0        				mov		a,11110000b				;clear Int_reg within suspend state
 143  0012  069B        				andm	a,Int_reg
 144  0013              
 145  0013  3D9A        				sz		resume_line
 146  0014  2B66        				jmp		turn_on_usb
 147  0015              ;turn_off_usb:
 148  0015              ;				clr		on_usb_clk			 	;turn on USB CLK	
 149  0015              ;				set		regulator_off
 150  0015  2B69        				jmp		Exit_of_Ext_start
 151  0016              turn_on_usb:
 152  0016  3000     E  				set		breseume_s
 153  0017  319C        				set		on_usb_clk				;turn on USB CLK	
 154  0018  361C        				clr		regulator_off
 155  0019              ;-----------------------------------------------------------------------------------
 156  0019              ;ExitExt:
 157  0019              Exit_of_Ext_start:
 158  0019              
 159  0019  0700     R  				mov		a,isr_usb_tblp
 160  001A  0087        				mov		tblp,a
 161  001B  0700     R  				mov		a,isr_usb_mp0
 162  001C  0081        				mov		mp0,a
 163  001D  0700     R  				MOV		A,isr_usb_mp1
 164  001E  0083        				MOV		MP1,A	
 165  001F              
 166  001F  0F00                        MOV     A,0				      	;Set bank pointer to UC
 167  0020  0084                        MOV     BP,A                	;register bank	
 168  0021              
 169  0021  0700     R                  MOV     A,Isr_usb_status        ;Restore STATUS
 170  0022  008A                        MOV     STATUS,A               	;
 171  0023  0700     R                  MOV     A,isr_usb_acc          	;Restore ACC
 172  0024  340B        				clr		intc.0
 173  0025  308B        				set		intc.1
 174  0026  0004                        RETI   
 175  0027              ;-----------------------------------------------------------------------------------
"File: USB_INT2.ASM  Holtek Cross-Assembler  Version 2.86      Page 4

 176  0027              ;-----------------------------------------------------------------------------------
 177  0027              check_Access_FIFO:
 178  0027  3400     E  				clr		breseume_s
 179  0028  319C        				set		on_usb_clk				;turn on USB CLK	
 180  0029  361C        				clr		regulator_off
 181  002A              
 182  002A  3C1B        				sz		Int_reg.@int0			
 183  002B  2B88        				jmp		AccessFIFO0
 184  002C              
 185  002C              ;other pipe except pipe0 interrupt
 186  002C  071B        				mov		a,Int_reg
 187  002D  1080     R  				sz		Int_reg_temp
 188  002E  2B81        				jmp		examine_int123
 189  002F  0E0E        				and		a,00001110b
 190  0030  0080     R  				mov		Int_reg_temp,a
 191  0031              examine_int123:	
 192  0031  3C00     R  				sz		Int_reg_temp.@int1				
 193  0032  2C0E        				jmp		AccessFIFO1
 194  0033  3C00     R  				sz		Int_reg_temp.@int2
 195  0034  2C23        				jmp		AccessFIFO2
 196  0035  3C00     R  				sz		Int_reg_temp.@int3
 197  0036  2C28        				jmp		AccessFIFO3		
 198  0037  2B69        				jmp		Exit_of_Ext_start
 199  0038              ;-----------------------------------------------------------------------------------
 200  0038              ;-----------------------------------------------------------------------------------
 201  0038              Check_Pipe0:				
 202  0038              AccessFIFO0:
 203  0038  311A        				set		chk_usb_reset_event		;set usb mode flag
 204  0039  341B        				clr		Int_reg.@int0			;clr pipe0 int flag	
 205  003A              
 206  003A  0F46                        MOV     A,USB_MISC          	;MP1 point to Misc. register
 207  003B  0083                        MOV     MP1,A               	;
 208  003C              
 209  003C              
 210  003C              ;------------------------------------------------------------------------------------
 211  003C  3C00     E  				sz		bwait_setup
 212  003D  2B90        				jmp		wait_next_setup
 213  003E              
 214  003E  3B82        				snz		r1.@usb_len0
 215  003F  2B97        				jmp		AccessFIFO0_cont		;out, in
 216  0040              ;------------------------------------------------------------------------------------
 217  0040              wait_next_setup:
 218  0040  0F46                        MOV     A,USB_MISC          	;MP1 point to Misc. register
 219  0041  0083                        MOV     MP1,A               	;
 220  0042  0000        				nop
 221  0043  0000        				nop
 222  0044  3E82        				sz		r1.@USB_Setup
 223  0045  2B97        				jmp		AccessFIFO0_cont		;seup
 224  0046  2C0C                        JMP     ExitExt0
 225  0047              
 226  0047              ;--------------------------------------------------------------------------------------	
 227  0047              AccessFIFO0_cont:
 228  0047              ;examine FIFO0 IN, SETUP, OUT Intterupt
 229  0047              
 230  0047  3800     E  				snz		bhas_data_out_previous1
 231  0048  2B9B        				jmp		AccessFIFO0_cont1
 232  0049  3400     E  				clr		bhas_data_out_previous1
 233  004A  2C0C        				jmp		ExitExt0
 234  004B              ;-------------------------------------------------------------------------------
 235  004B              AccessFIFO0_cont1:				
"File: USB_INT2.ASM  Holtek Cross-Assembler  Version 2.86      Page 5

 236  004B  3800     E  				snz		bhas_data_out_previous2
 237  004C  2B9F        				jmp		AccessFIFO0_cont11

⌨️ 快捷键说明

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