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

📄 usb_hid_led_et.asm

📁 Hid Led Tester is a simple USB(interrupt mode)device tester package. There are firmware and software
💻 ASM
📖 第 1 页 / 共 2 页
字号:
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (258)
;  }
	RET	
; exit point of _AddUsbBmRequestType
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _AddUsbGetReportSub:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbGetReportSub:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (251)
;  }
	RET	
; exit point of _AddUsbGetReportSub
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _AddUsbRt0xA3Request:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbRt0xA3Request:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (243)
;  }
	RET	
; exit point of _AddUsbRt0xA3Request
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _AddUsbRt0xA1Request:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbRt0xA1Request:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (236)
;  }
	RET	
; exit point of _AddUsbRt0xA1Request
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _AddUsbRt0xA0Request:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbRt0xA0Request:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (229)
;  }
	RET	
; exit point of _AddUsbRt0xA0Request
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _AddUsbRt0x23Request:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbRt0x23Request:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (222)
;  }
	RET	
; exit point of _AddUsbRt0x23Request
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _AddUsbRt0x21Request:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbRt0x21Request:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (215)
;  }
	RET	
; exit point of _AddUsbRt0x21Request
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _AddUsbRt0x20Request:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbRt0x20Request:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (209)
;  }
	RET	
; exit point of _AddUsbRt0x20Request
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _AddUsbRt0x82Request:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbRt0x82Request:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (203)
;  }
	RET	
; exit point of _AddUsbRt0x82Request
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _AddUsbRt0x80Request:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbRt0x80Request:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (196)
;  }
	RET	
; exit point of _AddUsbRt0x80Request
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _AddUsbRt0x00Request:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbRt0x00Request:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (190)
;  }
	RET	
; exit point of _AddUsbRt0x00Request
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _AddUsbRt0x02Request:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbRt0x02Request:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (183)
;  }
	RET	
; exit point of _AddUsbRt0x02Request
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _AddUsbRt0x01Request:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbRt0x01Request:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (177)
;  }
	RET	
; exit point of _AddUsbRt0x01Request
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _AddUsbInitialWorkSub:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbInitialWorkSub:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (170)
;  }
	RET	
; exit point of _AddUsbInitialWorkSub
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _AddUsbSetReportSub:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbSetReportSub:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (163)
;  }
	RET	
; exit point of _AddUsbSetReportSub
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _DelayNs:	;Function start
; 1 exit point 
;Using Bank: Bank0
;has an exit
;2 compiler assigned registers:
;   r0xAB
;   r0xAC
;; Starting pCode block
_DelayNs:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (143)
;  //;============================================================
	MOV	r0xAB,A
	MOV	A,r0xAB
	MOV	r0xAC,A
_00169_DS_usb_hid_led_DelayNs:
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (150)
;  while(nNs)
	ZCHK	r0xAC
	JBS	_STTS,2,_00172_DS_usb_hid_led_DelayNs
	NOP 			;inline asm
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (153)
;  nNs--;   
	DEC	r0xAC
	JMP	_00169_DS_usb_hid_led_DelayNs
_00172_DS_usb_hid_led_DelayNs:
	RET	
; exit point of _DelayNs
;***
;  pBlock Stats: dbName = C
;***
;entry:  _DelayMs:	;Function start
; 1 exit point 
;Using Bank: Bank0
;has an exit
;functions called:
;   _DelayNs
;   _DelayNs
;   _DelayNs
;   _DelayNs
;2 compiler assigned registers:
;   r0xA9
;   r0xAA
;; Starting pCode block
_DelayMs:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (106)
;  //;============================================================
	MOV	r0xA9,A
	MOV	A,r0xA9
	MOV	r0xAA,A
_00161_DS_usb_hid_led_DelayMs:
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (137)
;  while(nMs)
	ZCHK	r0xAA
	JBS	_STTS,2,_00164_DS_usb_hid_led_DelayMs
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (139)
;  DelayNs(250);
	MOV	A,#0xfa
	CALL	_DelayNs
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (140)
;  DelayNs(250);
	MOV	A,#0xfa
	CALL	_DelayNs
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (141)
;  DelayNs(250);
	MOV	A,#0xfa
	CALL	_DelayNs
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (142)
;  DelayNs(250);
	MOV	A,#0xfa
	CALL	_DelayNs
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (143)
;  nMs--;   
	DEC	r0xAA
	JMP	_00161_DS_usb_hid_led_DelayMs
_00164_DS_usb_hid_led_DelayMs:
	RET	
; exit point of _DelayMs
;***
;  pBlock Stats: dbName = C
;***
;entry:  _ScanButton:	;Function start
; 1 exit point 
;Using Bank: Bank0
;has an exit
;8 compiler assigned registers:
;   r0xA0
;   r0xA2
;   r0xA3
;   r0xA4
;   r0xA5
;   r0xA6
;   r0xA7
;   r0xA8
;; Starting pCode block
_ScanButton:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (102)
;  IOCC = 0x0F;  
	MOV	A,#0x0f
	MOV	_IOCC,A
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (103)
;  PUCC = 0x0F; // col   
	MOV	A,#0x0f
	MOV	_PUCC,A
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (104)
;  IOCB = 0;
	CLR	_IOCB
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (105)
;  BtnRow =0; 
	CLR	_PORTB
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (106)
;  for(byi=0;byi<4;byi++)
	CLR	_byi
_00133_DS_usb_hid_led_ScanButton:
	MOV	A,#0x04
	SUB	A,_byi
	JBS	_STTS,0,_00137_DS_usb_hid_led_ScanButton
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (108)
;  IOCB = 0;
	CLR	_IOCB
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (109)
;  BtnRow =0; 
	CLR	_PORTB
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (110)
;  if(M_ISBC(BtnCol,byi))
	MOV	A,#0x01
	MOV	r0xA0,A
	COMA	_byi
	RRC	r0xA0,1
_00148_DS_usb_hid_led_ScanButton:
	RLC	r0xA0,1
	ADD	A,#0x01
	JBC	_STTS,0,_00148_DS_usb_hid_led_ScanButton
	MOV	A,r0xA0
	AND	A,_PORTC
	JBC	_STTS,2,_00135_DS_usb_hid_led_ScanButton
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (112)
;  for(byj=0;byj<4;byj++)
	CLR	_byj
_00129_DS_usb_hid_led_ScanButton:
	MOV	A,#0x04
	SUB	A,_byj
	JBS	_STTS,0,_00135_DS_usb_hid_led_ScanButton
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (114)
;  BtnRow = 15-(0x01<<byj);
	MOV	A,#0x01
	MOV	r0xA2,A
	COMA	_byj
	RRC	r0xA2,1
_00151_DS_usb_hid_led_ScanButton:
	RLC	r0xA2,1
	ADD	A,#0x01
	JBC	_STTS,0,_00151_DS_usb_hid_led_ScanButton
	MOV	A,r0xA2
	SUB	A,#0x0f
	MOV	_PORTB,A
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (115)
;  if(M_ISBC(BtnCol,byi))
	MOV	A,r0xA0
	AND	A,_PORTC
	JBC	_STTS,2,_00131_DS_usb_hid_led_ScanButton
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (117)
;  byOffset = byi*4 + byj;
	MOV	A,_byi
	CLR	r0xA3
	CLR	r0xA4
	ADD	r0xA4,A
	RRC	r0xA4,1
	RRC	r0xA3,1
	RRC	r0xA4,1
	RRC	r0xA3,1
	RRC	r0xA4,1
	RRC	r0xA3,1
	RRC	r0xA4,1
	RRC	r0xA3,1
	RRC	r0xA4,1
	RRC	r0xA3,1
	RRC	r0xA4,1
	RRC	r0xA3,1
	MOV	A,_byj
	MOV	r0xA5,A
	CLR	r0xA6
	MOV	A,r0xA5
	ADD	A,r0xA3
	MOV	_byOffset,A
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (118)
;  byOffset &= 0x0f;
	MOV	A,#0x0f
	AND	_byOffset,A
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (119)
;  if(byOffset < 8)
	MOV	A,#0x08
	SUB	A,_byOffset
	JBS	_STTS,0,_00123_DS_usb_hid_led_ScanButton
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (121)
;  M_BS(byData1,byOffset);          
	MOV	A,#0x01
	MOV	r0xA7,A
	COMA	_byOffset
	RRC	r0xA7,1
_00155_DS_usb_hid_led_ScanButton:
	RLC	r0xA7,1
	ADD	A,#0x01
	JBC	_STTS,0,_00155_DS_usb_hid_led_ScanButton
	MOV	A,r0xA7
	OR	_byData1,A
	JMP	_00131_DS_usb_hid_led_ScanButton
_00123_DS_usb_hid_led_ScanButton:
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (125)
;  byOffset -= 8;
	MOV	A,#0xf8
	ADD	_byOffset,A
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (126)
;  M_BS(byData2,byOffset);                
	MOV	A,#0x01
	MOV	r0xA8,A
	COMA	_byOffset
	RRC	r0xA8,1
_00156_DS_usb_hid_led_ScanButton:
	RLC	r0xA8,1
	ADD	A,#0x01
	JBC	_STTS,0,_00156_DS_usb_hid_led_ScanButton
	MOV	A,r0xA8
	OR	_byData2,A
_00131_DS_usb_hid_led_ScanButton:
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (112)
;  for(byj=0;byj<4;byj++)
	INC	_byj
	JMP	_00129_DS_usb_hid_led_ScanButton
_00135_DS_usb_hid_led_ScanButton:
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (106)
;  for(byi=0;byi<4;byi++)
	INC	_byi
	JMP	_00133_DS_usb_hid_led_ScanButton
_00137_DS_usb_hid_led_ScanButton:
	RET	
; exit point of _ScanButton
;***
;  pBlock Stats: dbName = C
;***
;entry:  _LedStart:	;Function start
; 1 exit point 
;Using Bank: Bank1
;has an exit
;functions called:
;   _AddUsbEp1Sub
;   _ScanButton
;   _DelayMs
;   _DelayMs
;; Starting pCode block
_LedStart:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (52)
;  AddUsbEp1Sub();
	CALL	_AddUsbEp1Sub
_00117_DS_usb_hid_led_LedStart:
	NOP			;inline asm
	NOP			;inline asm
	NOP 			;inline asm
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (56)
;  byData1 =0;
	CLR	_byData1
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (57)
;  byData2 = 0;
	CLR	_byData2
	BANK	0
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (58)
;  ScanButton();
	CALL	_ScanButton
	BANK	1
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (61)
;  M_BS(EP1CSR,RXTXEN); 
	BS	_EP1CSR,0
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (63)
;  DelayMs(4);
	MOV	A,#0x04
	BANK	0
	CALL	_DelayMs
	BANK	1
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (65)
;  M_BS(EP2CSR,RXTXEN);    
	BS	_EP2CSR,0
	NOP			;inline asm
	NOP			;inline asm
	NOP 			;inline asm
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (68)
;  if(M_ISBS(RegState,LedGet))
	JBC	_RegState,2,_00115_DS_usb_hid_led_LedStart
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (70)
;  M_BC(RegState,LedGet);
	BC	_RegState,2
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (71)
;  PORTLED = byLedData;      
	MOV	A,_byLedData
	MOV	_PORTA,A
_00115_DS_usb_hid_led_LedStart:
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (73)
;  DelayMs(5);      
	MOV	A,#0x05
	BANK	0
	CALL	_DelayMs
	BANK	1
	JMP	_00117_DS_usb_hid_led_LedStart
	RET	
; exit point of _LedStart
	BANK	0
;***
;  pBlock Stats: dbName = C
;***
;entry:  _LedInitial:	;Function start
; 1 exit point 
;Using Bank: Bank0
;has an exit
;; Starting pCode block
_LedInitial:	;Function start
; 1 exit point 
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (36)
;  byLedData = 0;
	CLR	_byLedData
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (37)
;  byData1 = 0;
	CLR	_byData1
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (38)
;  byData2 = 0;
	CLR	_byData2
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (40)
;  PORTA = 0;
	CLR	_PORTA
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (41)
;  PORTB = 0;
	CLR	_PORTB
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (42)
;  PORTC = 0;
	CLR	_PORTC
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (43)
;  PUCB = 0;
	CLR	_PUCB
	BANK	1
;#CSRC	E:\Usb_Hid\Interrupt\HID_LED\firmware_c_led\usb_hid_led.c (45)
;  M_BC(EP1CSR,RXTXEN);       
	BC	_EP1CSR,0
	BANK	0
	RET	
; exit point of _LedInitial
;	end
;Code Option Setting Value:0x4010
;Protect :DISABLE
;USBClock:ENABLE
;RFClock :6M
;MCUClock:6M
	ORG	0x3FFF
	DW	0x4010
	ENDO

⌨️ 快捷键说明

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