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

📄 des4.asm

📁 盛群USB单片机设计的键盘驱动程序提供下载,以及相关的驱动程序下载
💻 ASM
字号:
;INCLUDE			def.inc

Descript		.Section   at   0F00h		'code'	

;-----BEGIN (Standard descriptor)

;--------------------------------------------------------------------------
;Device descriptor
;*******************************************************************************
DeviceD:
dw		00112H, 00110H,	00000H,	00800H,	01241H, 003f00h, 03fe0h,00100H,	00201H
DW		00100H
		
;bLengthD:           DW  0012H   ;Size of this descriptor in bytes (18)
;bDescriptorTypeD:   DW  0001H   ;Device descriptor type (1)
;bcdUSB:             DW  0001H, 0001H ;USB specification release Number (1.0)
;bDeviceClass:       DW  0000H   ;Class code (assigned by USB) (0 ?)
;bDeviceSubClass:    DW  0000H   ;Subclass code
;bDeviceProtocol:    DW  0000H   ;Protocol code
;wMaxPacketSize0:    DW  0008H   ;Maximum packet size for endpoint zero (8)
;idVendor:           DW  0012H, 0041H ;Vendor ID (assigned by USB) (?)
;idProduct:          DW  00F0H, 0000H ;Product ID (assigned by manufacturer) (?)
;bcdDevice:          DW  0000H, 0001H ;Device release number (1.0 ?)
;iManufacturer:      DW  0001H   ;Index of string descriptor (Manufacturer) (?)
;iProduct:           DW  0002H   ;Index of string descriptor (Product) (?)
;iSerialNumber:      DW  0000H   ;Index of string descriptor (Serial Number) (?)
;iNumConfigurations: DW  0001H   ;Number of possible configuration
;-----------------------------------------------------------------------------
;*******************************************************************************
;Configuration descriptor
ConfigurationD:
DW		00209H
Wtotallength:
DW		003bH
bNumberInterface:
DW		00102H,	03f00h, 032a0h		
;bLengthC:           DW  0009H   ;Size of this descriptor in bytes (9)
;bDescriptorTypeC:   DW  0002H   ;Configur descriptor type (2)
;wTotalLength:       DW  003bH, 0000H
;                    ;Total length of data return for this configuration.
;                    ;Include: Configuration,Interface,Endpoint, and HID)
;                    ;               9           9       7         9
;bNumberInterface:   DW  0002H   ;Number of interfaces supported by this config.
;bConfigurationValue:DW  0001H   ;The value set by Set configuration (1 ?)
;;According to the length of previous string(0 means no support)
;bConfiguration:     DW  0000H   ;Index of string descriptor (Configuration) (0 ?)
;bAttributes:        DW  00A0H   ;D7:BusPowered,D6:Selfpowered,D5:RemoteWakeup
;MaxPower:           DW  0032H   ;Maximum power (50 x 2 mA ?)
;-----------------------------------------------------------------------------
;*******************************************************************************
;Interface descriptor
InterfaceD_1:
DW		00409H,	00001H,	00301H,	00201H,	00000H	
;bLengthI_0_1:           DW  0009H   ;Size of this descriptor in bytes (9)
;bDescriptorTypeI_0_1:   DW  0004H   ;Configur descriptor type (4)
;bInterfaceNumber_0_1:   DW  0001H   ;Number of interface (Zero-based 0)
;bAlternateSetting_0_1:  DW  0000H   ;Value used to select alternate setting (0)
;bNumEndpoints_0_1:      DW  0001H   ;Number of endpoints use by this interface (1)
;bInterfaceClass_0_1:    DW  0003H   ;Class code (HID code assigned by USB) (3)
;bInterfaceSubClass_0_1: DW  0001H   ;Subclass code (Boot interface subclass)
;bInterfaceProtocol_0_1: DW  0002H   ;Protocol coed (MOUSE) (1)
;;According to the length of previous string(0 means no support)
;iInterface_0_1:         DW  0000H   ;Index of string descriptor (Interface) (5 ?)
;-----------------------------------------------------------------------------
InterfaceD_2:
InterfaceD_0:
DW		00409H,	00000H,	00301h,	00101H,	00000H 	
;bLengthI_0_1:           DW  0009H   ;Size of this descriptor in bytes (9)
;bDescriptorTypeI_0_1:   DW  0004H   ;Configur descriptor type (4)
;bInterfaceNumber_0_1:   DW  0000H   ;Number of interface (Zero-based 0)
;bAlternateSetting_0_1:  DW  0000H   ;Value used to select alternate setting (0)
;bNumEndpoints_0_1:      DW  0001H   ;Number of endpoints use by this interface (1)
;bInterfaceClass_0_1:    DW  0003H   ;Class code (HID code assigned by USB) (3)
;bInterfaceSubClass_0_1: DW  0001H   ;Subclass code (Boot interface subclass)
;bInterfaceProtocol_0_1: DW  0001H   ;Protocol coed (kB) (1)
;;According to the length of previous string(0 means no support)
;iInterface_0_1:         DW  0000H   ;Index of string descriptor (Interface) (5 ?)
;-----------------------------------------------------------------------------
;*******************************************************************************
;Endpoint descriptor
EndpointD_1:
DW		00507H,	00382H,	00008H,	00008H
;bLengthE_0_1:           DW  0007H   ;Size of this descriptor in bytes (9)
;bDescriptorTypeE_0_1:   DW  0005H   ;Endpoint descriptor type (5)
;bEndpointAddress_0_1:   DW  0082H   ;The address of endpoint    (81h)
;                                ;bit 0..3: The endpoint number  0001
;                                ;bit 4..6: reserved              000
;                                ;bit 7   : direction (0:Out/1:In)  1
;bmAttribute_0_1:        DW  0003H   ;Endpoint Attribute (03h)
;                                ;bit 0..1: transfer type
;                                ;      00  Control
;                                ;      01  Isochronous
;                                ;      10  Bulk
;                                ;      11  Interrupt
;                                ;All other reserved
;wMaxPacketSize_0_1:     DW  0008H, 0000H    ;Maximum packet size (8)
;
;;bInterval_0:          DW  0008H   ;Interval for polling endpoint (8 ms)
;bInterval_0_1:          DW  PollingTime   ;Interval for polling endpoint (8 ms)
;-------------------------------------------------------------------------------
EndpointD_2:
EndpointD_0:
DW		00507H,	00381H,	00008H,	00008H	
;bLengthE_0_1:           DW  0007H   ;Size of this descriptor in bytes (9)
;bDescriptorTypeE_0_1:   DW  0005H   ;Endpoint descriptor type (5)
;bEndpointAddress_0_1:   DW  0081H   ;The address of endpoint    (81h)
;                                ;bit 0..3: The endpoint number  0001
;                                ;bit 4..6: reserved              000
;                                ;bit 7   : direction (0:Out/1:In)  1
;bmAttribute_0_1:        DW  0003H   ;Endpoint Attribute (03h)
;                                ;bit 0..1: transfer type
;                                ;      00  Control
;                                ;      01  Isochronous
;                                ;      10  Bulk
;                                ;      11  Interrupt
;                                ;All other reserved
;wMaxPacketSize_0_1:     DW  0008H, 0000H    ;Maximum packet size (8)
;bInterval_0:          	 DW  0008H   ;Interval for polling endpoint (8 ms)
;*******************************************************************************
;-----------------------------------------------------------------------------

;-----BIGIN (Class specific discriptor)
;-----------------------------------------------------------------------------
;HID descriptor
HID_1:
DW		02109H,	00110H,	00100H,	03422H,	00000H	
;bLengthH_0:           DW  0009H   ;Size of this descriptor in bytes (8)
;bDescriptor_0:        DW  0021H   ;HID Descriptor type (1)  (MemPhis)
;bDescriptor_0:        DW  0001H   ;HID Descriptor type (1)
;bcdHID_0:             DW  0001H, 0001H  ;HID Class spec. release number (1.00)
;bCountryCode_0:       DW  0000H   ;Hardware target country
;bNumDescriptors_0:    DW  0001h   ;Number of HID class descriptors to follow
;bDescriptorType_0:    DW  0022H   ;Entity descriptor type
;wEntityLength_0:      DW  0034h	
;-----------------------------------------------------------------------------
HID_2:
;Entity_length:
;dw		01D22H, 00000H
;-----------------------------------------------------------------------------
HID_0:
DW		02109H,	00110H,	00100H,	03F22H, 0003fH
;bLengthH_0:           DW  0009H   ;Size of this descriptor in bytes (8)
;bDescriptor_0:        DW  0021H   ;HID Descriptor type (1)  (MemPhis)
;bDescriptor_0:        DW  0001H   ;HID Descriptor type (1)
;bcdHID_0:             DW  0000H, 0001H  ;HID Class spec. release number (1.00)
;bCountryCode_0:       DW  0000H   ;Hardware target country
;bNumDescriptors_0:    DW  0001h   ;Number of HID class descriptors to follow
;bDescriptorType_0:    DW  0022H   ;Entity descriptor type
;wEntityLength_0:      DW  003fh	
;-----------------------------------------------------------------------------
;*******************************************************************************

;Entity descriptor
Entity_1:
;-----------------------------------------------------------------------------
dw		00105H,	00209H,	001A1H,	00109H,	000A1H,	00905H,	00119H,	00529H
DW		00015H,	00125H,	00595H,	00175H,	00281H,	00195H,	00375H,	00181H
DW		00105H,	03009H,	03109H,	03809H,	03f15h,	02581h,	03f7fh,	00875H,	00395H
DW		00681H,	03fC0h, 03fC0H	

;entity_1:
;                    DW  0005H, 0001H    ;Usage Pg(Generic Desktop)
;                    DW  0009H, 0002H    ;Usage (Mouse)
;                    DW  00A1H, 0001H    ;Collection: (Application)
;
;                    DW  0009H, 0001H    ;Usage (Pointer)
;                    DW  00A1H, 0000H    ;Collection (Linked)

;                    DW  0005H, 0009H    ;Usage(Button)
;                    DW  0019H, 0001H    ;Usage Min (#)
;                    DW  0029H, 0005H    ;Usage Max (#)
;                    DW  0015H, 0000H    ;Log Min (0)
;                    DW  0025H, 0001H    ;Log Max (1)
;                    DW  0095H, 0005H    ;Report count (3)
;                    DW  0075H, 0001H    ;Report Size (1)
;                    DW  0081H, 0002H    ;Input: (Data, Variable, Absolute)
;                    DW  0095H, 0001H    ;Report Count (1)
;                    DW  0075H, 0003H    ;Report Size (5)
;                    DW  0081H, 0001H    ;Input: (Constant)

;
;                    DW  0005H, 0001H    ;Usage Pg (Generic Desktop)
;                    DW  0009H, 0030H    ;Usage (X)
;                    DW  0009H, 0031H    ;Usage (Y)
;					 DW  0009H, 0038H	 ;Usage (Wheel)			
;                    DW  0015H, 0081H    ;Log Min (-127)
;                    DW  0025H, 007FH    ;Log Max (127)
;                    DW  0075H, 0008H    ;Report Size (8)
;                    DW  0095H, 0003H    ;Report Count (3)
;                    DW  0081H, 0006H    ;Input: (Data, Variable, Relative)
;
;
;                    DW  00C0H           ;End Collection
;                    DW  00C0H           ;End Collection
;-----------------------------------------------------------------------------
Entity_0:		;63 3FH
DW		00105H,	00609H,	001A1H,	00705H,	03f19h, 03fE0H,	03f29h, 03fE7H,	00015H,	00125H
DW		00175H,	00895H,	00281H,	00195H,	00875H,	00181H,	00395H,	00175H
DW		00805H,	00119H,	00329H,	00291H,	00595H,	00175H,	00191H,	00695H
DW		00875H,	00015H,	03f25h, 03f65H,	00705H,	00019H,	03f29h, 03f65H,	00081H,	000C0H


;                    DW  0005H, 0001H    ;Usage Pg(Generic Desktop)
;                    DW  0009H, 0006H    ;Usage (Keybaord)
;                    DW  00A1H, 0001H    ;Collection: (Application)
;
;                    DW  0005H, 0007H    ;Usage Pg (Key Codes)
;                    DW  0019H, 00E0H    ;Usage Min (#)
;                    DW  0029H, 00E7H    ;Usage Max (#)
;                    DW  0015H, 0000H    ;Log Min (0)
;                    DW  0025H, 0001H    ;Log Max (1)
;                    DW  0075H, 0001H    ;Report Size (1)
;                    DW  0095H, 0008H    ;Report count (8)
;                    DW  0081H, 0002H    ;Input: (Data, Variable, Absolute)
;
;                    DW  0095H, 0001H    ;Report Count (1)
;                    DW  0075H, 0008H    ;Report Size (8)
;                    DW  0081H, 0001H    ;Input: (Constant)
;
;                    DW  0095H, 0003H    ;Report Count (3)
;                    DW  0075H, 0001H    ;Report Size (1)
;                    DW  0005H, 0008H    ;Usage Pg (Pg# for LEDs)
;                    DW  0019H, 0001H    ;Usage Min (#)
;                    DW  0029H, 0003H    ;Usage Max (#)
;                    DW  0091H, 0002H    ;Output: (Data, Variable, Absolute)
;                    DW  0095H, 0005H    ;Report Count (5)
;                    DW  0075H, 0001H    ;Report Size (1)
;                    DW  0091H, 0001H    ;Output: (Constant)
;
;                    DW  0095H, 0006H    ;Report Count (6)
;                    DW  0075H, 0008H    ;Report Size (8)
;                    DW  0015H, 0000H    ;Log Min (0)
;                    DW  0025H, 0065H    ;Log Max (101)
;                    DW  0005H, 0007H    ;Usage Pg (Key Codes)
;                    DW  0019H, 0000H    ;Usage Min (#)
;                    DW  0029H, 0065H    ;Usage Max (#)
;                    DW  0081H, 0000H    ;Input: (Data, Array)
;
;                    DW  00C0H           ;End Collection
;-----------------------------------------------------------------------------
			
USB_mouse_chk:
LANGID:
dw		0304h,	00409h

ManufactureS:
dw		0030eh, 00048h, 0004fh, 0004ch, 00054h, 00045h, 0004bh		;HOLTEK
ProductS:
dw		0031ah
dw 		00055h, 00053h, 00042h, 00020h, 0004Bh, 00065h,00079h		;USB Keyboard
dw		00062h,0006fh, 00061h, 00072h, 00064h
;-----------------------------------------------------------------------------















;-----END (Class specific discriptor)
PUBLIC			DeviceD
PUBLIC			ConfigurationD
PUBLIC			InterfaceD_0
PUBLIC			EndpointD_0
PUBLIC			HID_0
PUBLIC			Entity_0
PUBLIC			InterfaceD_1
PUBLIC			EndpointD_1
PUBLIC			HID_1
PUBLIC			Entity_1
PUBLIC			InterfaceD_2
PUBLIC			EndpointD_2
PUBLIC			HID_2
;PUBLIC			Entity_2



;PUBLIC			bAttributes

;public			wEntityLength_0
public			LANGID
public			ManufactureS
public			ProductS

public			Wtotallength
public			bNumberInterface


END

⌨️ 快捷键说明

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