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

📄 usb_int2.lst

📁 82K96E/82M99E开发的USB键盘接收端DEMO程序源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
 238  004D  3400     E  				clr		bhas_data_out_previous2
 239  004E  2C0C        				jmp		ExitExt0
 240  004F              
 241  004F              ;-------------------------------------------------------------------------------
 242  004F              AccessFIFO0_cont11:				
 243  004F              
 244  004F              
 245  004F  3000     E  				set		bFLAG_Setup
 246  0050              CheckSetup:
 247  0050  0F46                        MOV     A,USB_MISC          	;MP1 point to Misc. register
 248  0051  0083                        MOV     MP1,A               	;
 249  0052  0000        				nop
 250  0053  0000        				nop
 251  0054  3A82        				snz		r1.@USB_Setup
 252  0055  3400     E  				clr		bFlag_setup
 253  0056              
 254  0056  3800     E  				snz		bFLAG_Setup
 255  0057  2BAD                        JMP     AccessFIFO0_cont2          	;No (data stage(Host to device)
 256  0058              Setup_stage:
 257  0058  3682        				clr		r1.@USB_Setup			;clear USB setup bit
 258  0059  3782        				clr		r1.@USB_Len0
 259  005A  3400     E  				clr		bwait_setup
 260  005B  3000     E  				set		bsetup_flag
 261  005C  2C0C        				jmp		Exitext0
 262  005D              ;-------------------------------------------------------------------------------
 263  005D              AccessFIFO0_cont2:
 264  005D  2000     E                  CALL    FIFO0_Rd_Check      	;Any data in FIFO 0 ?
 265  005E  3402                        CLR     R1.@USB_Req         	;No: Clear request for FIFO0_Rd_Check
 266  005F  390A                        SNZ     Z                  		;
 267  0060  2BB2                        JMP     HaveDataInFIFO0     	;Yes
 268  0061              
 269  0061              ;Host read out data from FIFO 0
 270  0061              ;Send next transaction data
 271  0061  2BCE                        JMP     SendFIFO0
 272  0062              ;----------------------------------------------------------------------------
 273  0062              
 274  0062              
 275  0062              HaveDataInFIFO0:
 276  0062  2BDA                        JMP     DataStage           	;No (data stage(Host to device)
 277  0063              ;-----------------------------------------------------------------------------------------
 278  0063              get_cmd_data:
 279  0063  3400     E  				clr		bsetup_flag
 280  0064  2000     E                  CALL    FIFO0_Rd_Check      	;Any data in FIFO 0 ?
 281  0065  2000     E                  CALL    ReadFIFO0           	;Read FIFO 0
 282  0066              
 283  0066  1F05        				clr		acc
 284  0067  2000     E  				call	GetPipeBit
 285  0068  2000     E  				call	clearstall				;clear pipe0 stall status
 286  0069              
 287  0069  3400     E                  CLR     bFLAG_SndFC 			;No Continue Send(ReadNextCnf)
 288  006A              ;				clr		bFLAG_FIFO_REDY			;ignore address write
 289  006A              ;				clr		bFLAG_AdrF
 290  006A  3400     E  				CLR		bFLAG_RsqF				;Clear re_send Flag
 291  006B  3400     E                  CLR     bCMD_INDEX          	;set Return address to 0
 292  006C  3400     E  				clr		bhas_data_out_previous
 293  006D  3400     E  				clr		bhas_data_out_previous1
 294  006E  3400     E  				clr		bhas_data_out_previous2
 295  006F              
"File: USB_INT2.ASM  Holtek Cross-Assembler  Version 2.86      Page 6

 296  006F              
 297  006F  0F00     E                  MOV     A,LOW GetEnd        	;Set Defaut Return Address
 298  0070  0080     E                  MOV     ReturnAddr,A      		;to ReturnAddr 
 299  0071              ;parsing request command & set command index
 300  0071  0F08                        MOV     A,08H               	;Request structure == 8 bytes ?
 301  0072  0400     E                  XOR     A,FIFO_SendLen      	;
 302  0073  390A                        SNZ     Z                   	;
 303  0074  2C09                        JMP		ToStallPipe0			;No: data length is invalid
 304  0075              ;Parsing command                            	;Yes: Parsing  command
 305  0075  0F60                        MOV     A,Setup_Type        	;Type
 306  0076  0600     E                  AND     A,FIFO_Type        		;Request Type
 307  0077              ;!!!!! Need in same page
 308  0077  1185                        SWAP    ACC                 	;Need be change when Setup_Type
 309  0078  1985                        RR      ACC                 	;changed
 310  0079              usb_request_pcl_5:
 311  0079  0386                        ADDM    A,PCL
 312  007A  2800     E                  JMP     StandardRequest     	;Standard Request
 313  007B  2800     E                  JMP     ClassRequest        	;Class Specific Request
 314  007C  2C09                        JMP		ToStallPipe0        	;No support Vendor Request
 315  007D  2C09                        JMP		ToStallPipe0        	;Illegal
 316  007E              ;----------------------------------------------------------------------------
 317  007E              
 318  007E              ;Host has read data out from FIFO 0
 319  007E              SendFIFO0:
 320  007E  3C00     E  				sz		bsetup_flag
 321  007F  2C0C                        JMP     ExitExt0
 322  0080              
 323  0080  2000     E                  CALL    FIFO0_Wr_Check       	;examine whether FIFO0 has data?
 324  0081  3402        				clr		r1.@USB_Req 
 325  0082  3D0A                        SZ      Z                   	;
 326  0083  2C0C        				JMP		ExitExt0
 327  0084              
 328  0084              ;examine whehter has data output
 329  0084                												;Write address to USB_ADDR_WAKE
 330  0084              
 331  0084              NoneTag:
 332  0084  3800     E                  SnZ     bFLAG_SndFC 				;Continue Send (ReadNextCnf)
 333  0085  2C0C                        JMP     ExitExt0
 334  0086  3800     E  				snz		bhas_data_out_previous
 335  0087  2800     E  	            JMP     ReadNextCnf				;
 336  0088  3400     E  				clr		bhas_data_out_previous
 337  0089  2C0C        				jmp		ExitExt0
 338  008A              ;----------------------------------------------------------------------------
 339  008A              DataStage:
 340  008A  3C00     E  				sz		bsetup_flag
 341  008B  2BB3                        JMP     get_cmd_data
 342  008C  2000     E                  CALL    FIFO0_Rd_Check      	;Any data in FIFO 0 ?
 343  008D  2000     E                  CALL    ReadFIFO0           	;Read FIFO 0
 344  008E  3C00     E                  sz		bCMD_INDEX            	;
 345  008F  2BE2        				jmp		Set_SetOutput
 346  0090  2BE1        				jmp		RedundantData
 347  0091              
 348  0091              RedundantData:
 349  0091  2C0C                        JMP     ExitExt0
 350  0092              Set_SetOutput:
 351  0092  0700     E                  MOV     A,FIFO_SendLen         	;Is length == 1 ?
 352  0093  0C01                        XOR     A,01H                   ;
 353  0094  390A                        SNZ     Z                       ;
 354  0095  2C09                        JMP		ToStallPipe0            ;No
 355  0096  0700     E                  MOV     A,FIFO_TYPE            	;Output report (LED)
"File: USB_INT2.ASM  Holtek Cross-Assembler  Version 2.86      Page 7

 356  0097  0080     E                  MOV     KB_LED,A                ;
 357  0098  2000     E  	            CALL    SetLED                  ;Set all keyboard LED
 358  0099  3400     E  				clr     bCMD_INDEX             	;Reset to 0
 359  009A  2BFA                        JMP     SendHandShake
 360  009B              ;----------------------------------------------------------------------------
 361  009B              RequestResponse:
 362  009B  3400     E                  CLR     bFLAG_RsqF
 363  009C  2000     E                  CALL    FIFO0_Wr_Check  		;Ready to response ?
 364  009D  390A                        SNZ     Z               		;
 365  009E  2BF5        				JMP		CanResponse
 366  009F  3402        				clr		r1.@USB_Req 
 367  00A0              
 368  00A0  3F82        				sz		r1.@usb_len0
 369  00A1  2C0C                        JMP     ExitExt0    			;continue to scan keyboard				
 370  00A2  3E82        				sz		r1.@USB_Setup
 371  00A3  2C0C        				jmp		ExitExt0    			;continue to scan keyboard
 372  00A4  2BEB        				jmp		RequestResponse
 373  00A5              CanResponse:
 374  00A5  2000     E                  CALL    WriteFIFO0
 375  00A6  3000     E  				set		bhas_data_out_previous
 376  00A7  3000     E  				set		bhas_data_out_previous1
 377  00A8  3000     E  				set		bhas_data_out_previous2
 378  00A9  2C0C        				jmp		ExitExt0
 379  00AA              
 380  00AA              ;----------------------------------------------------------------------------
 381  00AA              SendHandShake:
 382  00AA  2000     E                  CALL    LEN0_Wr_Check       	;FIFO0 ready ?
 383  00AB  390A                        SnZ     Z                   	;
 384  00AC  2C03        				jmp		sendHandShake_continue
 385  00AD  3402        				clr		r1.@USB_Req 
 386  00AE              
 387  00AE  3F82        				sz		r1.@usb_len0
 388  00AF  2C0C                        JMP     ExitExt0    			;continue to scan keyboard				
 389  00B0  3E82        				sz		r1.@USB_Setup
 390  00B1  2C0C        				jmp		ExitExt0    			;continue to scan keyboard
 391  00B2  2BFA        				jmp		sendHandshake
 392  00B3              sendHandshake_continue:
 393  00B3  2000     E                  CALL    WriteLen0           	;ACK (Write 0 length)
 394  00B4              ;				SZ		bFLAG_FIFO_REDY
 395  00B4              ;				SET		bFLAG_AdrF				;the address response is written to FIFO
 396  00B4              ;				CLR		bFLAG_FIFO_REDY
 397  00B4  3000     E  				set		bwait_setup
 398  00B5  2C0C                        JMP     ExitExt0    			;continue to scan keyboard
 399  00B6              
 400  00B6              ;----------------------------------------------------------------------------
 401  00B6              SendFIFOOut:
 402  00B6  0080     E                  MOV     FIFO_SendLen ,A    		;data length to send
 403  00B7  3000     E  				set		bwait_setup
 404  00B8  2BEB        				jmp		RequestResponse
 405  00B9              ;----------------------------------------------------------------------------
 406  00B9              ToStallPipe0:
 407  00B9  1F05        				clr		acc
 408  00BA  2000     E  				call	GetPipeBit
 409  00BB  2000     E  				call	setstall
 410  00BC              ExitExt:
 411  00BC              ExitExt0:
 412  00BC  341B        				clr		Int_reg.@int0			;clr pipe0 int flag	
 413  00BD  2B69        				jmp		Exit_of_Ext_start
 414  00BE              ;----------------------------------------------------------------------------
 415  00BE              Check_Pipe1:
"File: USB_INT2.ASM  Holtek Cross-Assembler  Version 2.86      Page 8

 416  00BE              AccessFIFO1:
 417  00BE              
 418  00BE  3C00     E  				sz     	bCMD_INDEX             	;Reset to 0
 419  00BF  2C20        				jmp		ExitExt1
 420  00C0              
 421  00C0  2000     E                  CALL    FIFO1_Wr_Check       	;FIFO0 ready ?
 422  00C1  3402        				clr		r1.@USB_Req 
 423  00C2  3D0A                        SZ      Z                   	;
 424  00C3  2C20        				JMP		ExitExt1
 425  00C4              
 426  00C4  3C00     E  				sz		bKB_KeyUpt
 427  00C5  2C17        				jmp		report_pipe1_data
 428  00C6  2C20        				jmp		ExitExt1
 429  00C7              
 430  00C7              
 431  00C7              report_pipe1_data:
 432  00C7  3400     E  				clr		bKB_KeyUpt				
 433  00C8  2000     E  	            CALL    MoveKeyboardData   	;Update it
 434  00C9              
 435  00C9              out_fifo1_data:
 436  00C9  2000     E                  CALL    FIFO1_Wr_Check       	;FIFO0 ready ?
 437  00CA  0F08        				mov		a,8
 438  00CB  0080     E  				mov		FIFO_SendLen,a	
 439  00CC  2000     E  	            CALL    WriteFIFO1
 440  00CD              
 441  00CD  3400     E  				clr		btime_out_KB
 442  00CE  1F00     E  				clr		TempKBTime
 443  00CF  1F00     E  				clr		tempkbtime_L
 444  00D0              
 445  00D0              
 446  00D0              ExitExt1:
 447  00D0  349B        				clr		int_reg.@int1
 448  00D1  3400     R  				clr		int_reg_temp.@int1	
 449  00D2  2B69        				JMP		Exit_of_Ext_start	
 450  00D3              
 451  00D3              ;----------------------------------------------------------------------------
 452  00D3              Check_Pipe2:
 453  00D3              AccessFIFO2:
 454  00D3  3C00     E  				sz     	bCMD_INDEX             	;Reset to 0
 455  00D4  2C25        				jmp		ExitExt2
 456  00D5              
 457  00D5              ExitExt2:
 458  00D5  351B        				clr		int_reg.@int2
 459  00D6  3400     R  				clr		int_reg_temp.@int2	
 460  00D7  2B69        				JMP		Exit_of_Ext_start	
 461  00D8              
 462  00D8              ;----------------------------------------------------------------------------
 463  00D8              Check_Pipe3:
 464  00D8              AccessFIFO3:
 465  00D8  359B        				clr		int_reg.@int3
 466  00D9  3400     R  				clr		int_reg_temp.@int3	
 467  00DA  2B69        				JMP		Exit_of_Ext_start	
 468  00DB              ;----------------------------------------------------------------------------
 469  00DB              
 470  00DB              
 471  00DB              public	ToStallPipe0
 472  00DB              public	SendFIFOOut
 473  00DB              public	SendHandShake
 474  00DB              public	RequestResponse
 475  00DB              public	usb_request_pcl_5
"File: USB_INT2.ASM  Holtek Cross-Assembler  Version 2.86      Page 9

 476  00DB              public	ext_start
 477  00DB              public	ExitExt	
 478  00DB              END


        0 Errors

⌨️ 快捷键说明

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