亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chap_9.lst

?? 基于usb開發板的hid鍵盤,使用者可根據此代碼編寫自己的HID設備
?? LST
?? 第 1 頁 / 共 2 頁
字號:
C51 COMPILER V6.12  CHAP_9                                                                 06/06/2004 10:26:10 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE CHAP_9
OBJECT MODULE PLACED IN .\CHAP_9.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\CHAP_9.C LARGE DEBUG OBJECTEXTEND

stmt level    source

   1          ////CHAP9.C
   2          #include "common.h"
   3          #include "chap_9.h"
   4          #include "mainloop.h"
   5          #include "D12CI.h"
   6          #include "usb100.h"
   7          #include "protodma.h"
   8          #include "disp.h"
   9          
  10          extern EPPFLAGS 		bEPPflags;
  11          
  12          CONTROL_XFER 	ControlData;
  13          uchar setupcounter;
  14          
  15          code HID_REPORT_DESCRIPTOR           MyReportDescriptor[] = {	/*添加的report*/
  16              0x05,   0x01,       // Usage Page (Generic Desktop),
  17              0x09,   0x06,       // Usage (Keyboard),
  18              0xA1,   0x01,       // Collection (Application),
  19              0x05,   0x07,       //  Usage Page (Key Codes);
  20              0x19,   0xE0,       //  Usage Minimum (224),
  21              0x29,   0xE7,       //  Usage Maximum (231),
  22              0x15,   0x00,       //  Logical Minimum (0),
  23              0x25,   0x01,       //  Logical Maximum (1),
  24              0x75,   0x01,       //  Report Size (1),
  25              0x95,   0x08,       //  Report Count (8),
  26              0x81,   0x02,       //  Input (Data, Variable, Absolute),;Modifier byte
  27              0x95,   0x01,       //  Report Count (1),
  28              0x75,   0x08,       //  Report Size (8),
  29              0x81,   0x01,       //  Input (Constant),                       ;Reserved byte
  30              0x95,   0x05,       //  Report Count (5),
  31              0x75,   0x01,       //  Report Size (1),
  32              0x05,   0x08,       //  Usage Page (Page# for LEDs),
  33              0x19,   0x01,       //  Usage Minimum (1),
  34              0x29,   0x05,       //  Usage Maximum (5),
  35              0x91,   0x02,       //  Output (Data, Variable, Absolute),      ;LED report
  36              0x95,   0x01,       //  Report Count (1),
  37              0x75,   0x03,       //  Report Size (3),
  38              0x91,   0x01,       //  Output (Constant),                      ;LED report padding
  39              0x95,   0x06,       //  Report Count (6),
  40              0x75,   0x08,       //  Report Size (8),
  41              0x15,   0x00,       //  Logical Minimum (0),
  42              0x25,   0x65,       //  Logical Maximum(101),
  43              0x05,   0x07,       //  Usage Page (Key Codes),
  44              0x19,   0x00,       //  Usage Minimum (0),
  45              0x29,   0x65,       //  Usage Maximum (101),
  46              0x81,   0x00,       //  Input (Data, Array),                    ;Key arrays (6 bytes)
  47              0xC0                // End Collection
  48          };
  49          
  50          code USB_DEVICE_DESCRIPTOR DeviceDescr =
  51          {
  52          	sizeof(USB_DEVICE_DESCRIPTOR),
  53              USB_DEVICE_DESCRIPTOR_TYPE,
  54              SWAP(0x0110),
  55              0,//USB_CLASS_CODE_TEST_CLASS_DEVICE,
C51 COMPILER V6.12  CHAP_9                                                                 06/06/2004 10:26:10 PAGE 2   

  56              0, 0,
  57          	EP0_PACKET_SIZE,
  58          	SWAP(0x0471),
  59          	SWAP(0x0011),//
  60          	SWAP(0x0100),
  61              1, 2, 0,
  62          	1
  63          };
  64          
  65          code USB_CONFIGURATION_DESCRIPTOR ConfigDescr =
  66          {
  67              sizeof(USB_CONFIGURATION_DESCRIPTOR),
  68              USB_CONFIGURATION_DESCRIPTOR_TYPE,
  69              SWAP(CONFIG_DESCRIPTOR_LENGTH),
  70          	1,
  71          	1,
  72             0,
  73          	0x80,//0x60,//
  74          	0x80//0x32
  75          };
  76          
  77          code USB_INTERFACE_DESCRIPTOR InterfaceDescr =
  78          {
  79              sizeof(USB_INTERFACE_DESCRIPTOR),
  80              USB_INTERFACE_DESCRIPTOR_TYPE,
  81              0,
  82              0,
  83          	NUM_ENDPOINTS,
  84          	3,
  85          	1,
  86          	1,
  87          	//USB_CLASS_CODE_TEST_CLASS_DEVICE,
  88          	//USB_SUBCLASS_CODE_TEST_CLASS_D12,
  89          	//USB_PROTOCOL_CODE_TEST_CLASS_D12,
  90          	0
  91          };
  92          
  93          //
  94          //  The HID descriptor has some basic device info and tells how long the report
  95          //  descriptor is.
  96          //
  97          
  98          code USB_HID_DESCRIPTOR  ClassDescriptor = {  /*添加的class descriptor*/
  99              0x09,   // length of HID descriptor
 100              0x21,   // descriptor type == HID
 101              SWAP(0x0100), // hid spec release
 102              0x00,   // country code == Not Specified
 103              0x01,   // number of HID class descriptors
 104              0x22,   // report descriptor type
 105              SWAP(sizeof(MyReportDescriptor))  // total length of report descriptor
 106          };
 107          
 108          code USB_ENDPOINT_DESCRIPTOR EP1_TXDescr =
 109          {
 110          	sizeof(USB_ENDPOINT_DESCRIPTOR),
 111          	USB_ENDPOINT_DESCRIPTOR_TYPE,
 112          	0x81,
 113          	USB_ENDPOINT_TYPE_INTERRUPT,
 114          	SWAP(EP1_PACKET_SIZE),
 115          	10
 116          };
 117          
C51 COMPILER V6.12  CHAP_9                                                                 06/06/2004 10:26:10 PAGE 3   

 118          code USB_ENDPOINT_DESCRIPTOR EP1_RXDescr =
 119          {
 120          	sizeof(USB_ENDPOINT_DESCRIPTOR),
 121          	USB_ENDPOINT_DESCRIPTOR_TYPE,
 122          	0x1,
 123          	USB_ENDPOINT_TYPE_INTERRUPT,
 124          	SWAP(EP1_PACKET_SIZE),
 125          	10
 126          };
 127          
 128          code USB_ENDPOINT_DESCRIPTOR EP2_TXDescr =
 129          {
 130          	sizeof(USB_ENDPOINT_DESCRIPTOR),
 131          	USB_ENDPOINT_DESCRIPTOR_TYPE,
 132          	0x82,
 133          	USB_ENDPOINT_TYPE_BULK,
 134          	SWAP(EP2_PACKET_SIZE),
 135          	10
 136          };
 137          
 138          code USB_ENDPOINT_DESCRIPTOR EP2_RXDescr =
 139          {
 140          	sizeof(USB_ENDPOINT_DESCRIPTOR),
 141          	USB_ENDPOINT_DESCRIPTOR_TYPE,
 142          	0x2,
 143          	USB_ENDPOINT_TYPE_BULK,
 144          	SWAP(EP2_PACKET_SIZE),
 145          	10
 146          };
 147          
 148          code void(* StandardDeviceRequest[])(void)=
 149          {
 150          	get_status,
 151          	clear_feature,
 152          	reserved,
 153          	set_feature,
 154          	reserved,
 155          	set_address,
 156          	get_descriptor,
 157          	reserved,
 158          	get_configuration,
 159          	set_configuration,
 160          	get_interface,
 161          	set_interface,
 162          	reserved,
 163          	reserved,
 164          	reserved,
 165          	reserved
 166          };
 167          
 168          extern code void(*VendorDeviceRequest[])(void);
 169          
 170          void stall_ep0(void)
 171          {
 172   1      	D12_SetEndpointStatus(0, 1);
 173   1      	D12_SetEndpointStatus(1, 1);
 174   1      }
 175          				
 176          void reserved(void)
 177          {
 178   1      	stall_ep0();
 179   1      }
C51 COMPILER V6.12  CHAP_9                                                                 06/06/2004 10:26:10 PAGE 4   

 180          
 181          void control_handler()
 182          {
 183   1      	uchar type,req;
 184   1      	type = ControlData.DeviceRequest.bmRequestType&USB_REQUEST_TYPE_MASK;
 185   1      	req  = ControlData.DeviceRequest.bRequest&USB_REQUEST_MASK;
 186   1      	if(type==USB_STANDARD_REQUEST)
 187   1      		(*StandardDeviceRequest[req])();
 188   1      	else if(type==USB_VENDOR_REQUEST)
 189   1      		(*VendorDeviceRequest[req])();
 190   1      	else
 191   1      		stall_ep0();
 192   1      }
 193          
 194          void init_unconfig(void)
 195          {
 196   1      	D12_SetEndpointEnable(0);	/* Disable all endpoints but EPP0. */
 197   1      }
 198          
 199          void init_config(void)
 200          {
 201   1      	D12_SetEndpointEnable(1);
 202   1      }
 203          void single_transmit(uchar * buf,uchar len)
 204          {
 205   1      	if(len<=EP0_PACKET_SIZE){
 206   2      		D12_WriteEndpoint(1,len,buf);
 207   2      	}
 208   1      }
 209          void code_transmit(uchar code * pRomData,ushort len)
 210          {
 211   1      	ControlData.wCount = 0;
 212   1      	if(ControlData.wLength>len)
 213   1      		ControlData.wLength = len;
 214   1      	ControlData.pData = pRomData;
 215   1      	if(ControlData.wLength >= EP0_PACKET_SIZE)
 216   1      	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜精品一区二区三区视频| 久久久久久久久久久久久久久99 | 日本强好片久久久久久aaa| 丝袜美腿亚洲一区| 国产麻豆91精品| 91热门视频在线观看| 色8久久精品久久久久久蜜| 欧美老年两性高潮| 亚洲伦在线观看| 免费一区二区视频| 99久久精品国产观看| 欧美日韩免费观看一区二区三区 | 欧美日韩三级在线| 国产调教视频一区| 亚洲成人免费看| 成人性生交大片免费看在线播放| 色婷婷国产精品| 26uuu另类欧美| 亚洲国产欧美在线| 粉嫩欧美一区二区三区高清影视| 欧美视频一二三区| 久久久99精品免费观看| 天天综合色天天| 色中色一区二区| 久久久久久一二三区| 日韩av中文在线观看| av亚洲精华国产精华精华| 日韩精品一区二区三区在线播放| 一区二区三区四区中文字幕| 国产一区二区三区观看| 4438x成人网最大色成网站| 国产精品剧情在线亚洲| 狠狠色狠狠色综合系列| 国产精品天干天干在观线| 午夜精品福利一区二区三区蜜桃| 91丨国产丨九色丨pron| 国产日韩欧美综合在线| 国内精品伊人久久久久av影院| 在线视频中文字幕一区二区| 日韩一区有码在线| 激情综合色综合久久| 欧美一区二区视频在线观看2022| 亚洲欧美日韩国产另类专区| 不卡的看片网站| 日韩一级高清毛片| 日本成人在线看| 91精品国产综合久久久久久久久久| 亚洲精品视频在线| 日本高清免费不卡视频| 久久久.com| 国产不卡免费视频| 国产精品麻豆久久久| 国产成人午夜电影网| 国产欧美一区二区三区在线老狼| 激情综合网av| 国产日韩欧美精品一区| 国产不卡视频在线播放| 国产精品全国免费观看高清| av电影在线观看不卡| 亚洲欧洲性图库| 色综合天天综合给合国产| 国产区在线观看成人精品| 风间由美中文字幕在线看视频国产欧美| 久久婷婷一区二区三区| 国产成人在线视频免费播放| 国产精品久久国产精麻豆99网站| 美女网站在线免费欧美精品| 久久久久青草大香线综合精品| 国产成人精品三级| 亚洲精品成人天堂一二三| 欧美在线视频日韩| 首页国产欧美久久| 久久久高清一区二区三区| 国产麻豆精品theporn| 久久激情五月婷婷| 国产精品区一区二区三| 91精品福利视频| 日韩av中文字幕一区二区三区| 欧美变态口味重另类| 不卡在线观看av| 午夜视频久久久久久| 777奇米成人网| 国产91精品久久久久久久网曝门| 亚洲欧美一区二区在线观看| 欧美色图激情小说| 亚洲香肠在线观看| 久久久国产一区二区三区四区小说 | 色婷婷一区二区三区四区| 亚洲精品伦理在线| 91.xcao| 国产成a人亚洲精| 悠悠色在线精品| 日韩欧美一区二区三区在线| www.亚洲精品| 美国三级日本三级久久99| 国产精品久久久99| 91极品视觉盛宴| 国产麻豆一精品一av一免费| 欧美日韩国产另类一区| 天天影视涩香欲综合网| 亚洲免费观看高清在线观看| 亚洲国产精品高清| 精品盗摄一区二区三区| 666欧美在线视频| 精品视频一区三区九区| 欧美天堂亚洲电影院在线播放| 99久久精品免费观看| www.亚洲色图.com| 风间由美一区二区av101| 国产一区视频网站| 国产麻豆91精品| 国产精品白丝jk白祙喷水网站| 美国十次综合导航| 久久99热国产| 国产在线视频精品一区| 国产精选一区二区三区| 国产剧情一区在线| 成人三级伦理片| 91视频com| 欧美亚洲图片小说| 欧美另类z0zxhd电影| 欧美精品成人一区二区三区四区| 欧美日韩国产另类一区| 欧美一卡二卡三卡四卡| 精品日韩99亚洲| 国产精品亲子伦对白| 《视频一区视频二区| 一区二区三区四区亚洲| 亚洲国产精品久久不卡毛片| 日韩精品久久久久久| 精品亚洲成a人| 国产suv精品一区二区883| 91在线丨porny丨国产| 欧美日韩在线观看一区二区| 欧美一级日韩免费不卡| 久久精品日韩一区二区三区| 国产日韩精品一区| 亚洲伦理在线精品| 日本va欧美va瓶| 国产福利精品导航| 色综合色综合色综合色综合色综合 | 欧美日韩视频在线一区二区| 欧美精品久久99久久在免费线| 欧美成人a∨高清免费观看| 日本一区二区三区免费乱视频| 亚洲最快最全在线视频| 美女网站视频久久| 91在线免费看| 日韩一区二区在线看片| 日韩美女啊v在线免费观看| 日韩国产成人精品| 成人久久视频在线观看| 欧美日韩一区国产| 国产女主播一区| 天天色综合成人网| 成人avav影音| 日韩精品一区二区三区中文不卡 | 久久精品国产在热久久| 成a人片国产精品| 日韩欧美一区在线| 亚洲欧美激情一区二区| 老司机一区二区| 欧美色手机在线观看| 国产人成一区二区三区影院| 奇米影视一区二区三区小说| 99久久夜色精品国产网站| 日韩一级精品视频在线观看| 亚洲视频一区在线| 国产精品一区二区果冻传媒| 欧美在线综合视频| 成人欧美一区二区三区小说| 韩国v欧美v日本v亚洲v| 这里只有精品免费| 亚洲线精品一区二区三区八戒| av在线免费不卡| 国产偷国产偷精品高清尤物| 日本免费在线视频不卡一不卡二| 色哟哟日韩精品| 成人欧美一区二区三区1314| 国产成人亚洲综合a∨婷婷图片| 日韩一二三区不卡| 亚洲一二三级电影| 97se亚洲国产综合在线| 国产精品伦理在线| 福利一区在线观看| 国产亚洲美州欧州综合国| 精品无码三级在线观看视频| 日韩一区二区精品在线观看| 日韩国产欧美在线观看| 欧美男男青年gay1069videost| 一区二区欧美国产| 色综合天天综合色综合av | 老司机精品视频导航| 欧美日韩国产天堂| 夜夜亚洲天天久久| 91黄色在线观看| 亚洲综合免费观看高清完整版在线| 91视频.com| 亚洲精品欧美专区| 欧美性猛片xxxx免费看久爱|