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

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

?? usb_kbd_enum.lst

?? at89c5132,at89c51snd1的usb與keyboard驅動程序。
?? LST
?? 第 1 頁 / 共 3 頁
字號:
C51 COMPILER V7.06   USB_KBD_ENUM                                                          01/29/2008 10:59:25 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE USB_KBD_ENUM
OBJECT MODULE PLACED IN usb_kbd_enum.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE modules\usb_kbd_enum\usb_kbd_enum.c LARGE OPTIMIZE(9,SPEED) INCDIR(.\;.\;.\
                    -) DEFINE(KEIL) DEBUG OBJECTEXTEND PRINT(.\usb_kbd_enum.lst) OBJECT(usb_kbd_enum.obj)

stmt level    source

   1          /*C**************************************************************************
   2          * NAME:         usb_kbd_enum.c
   3          *----------------------------------------------------------------------------
   4          * Copyright (c) 2003 Atmel.
   5          *----------------------------------------------------------------------------
   6          * RELEASE:      c5131-usb-kbd-light-1_0_2      
   7          * REVISION:     1.2     
   8          *----------------------------------------------------------------------------
   9          * PURPOSE: 
  10          * This file contains the USB Endpoint 0 management routines corresponding
  11          * to a USB HID keyboard implementation.
  12          *****************************************************************************/
  13          
  14          /*_____ I N C L U D E S ____________________________________________________*/
  15          
  16          #include "config.h"
  17          #include "lib_mcu\usb\usb_drv.h"
  18          #include "usb_kbd_enum.h"
  19          
  20          /*_____ M A C R O S ________________________________________________________*/
  21          
  22          
  23          /*_____ D E F I N I T I O N ________________________________________________*/
  24          
  25          code struct usb_st_device_descriptor usb_device_descriptor =
  26          {
  27            sizeof(usb_device_descriptor), DEVICE, USB_SPECIFICATION, DEVICE_CLASS,
  28            DEVICE_SUB_CLASS, DEVICE_PROTOCOL, EP_CONTROL_LENGTH, VENDOR_ID, PRODUCT_ID,
  29            RELEASE_NUMBER, MAN_INDEX, PROD_INDEX, SN_INDEX, NB_CONFIGURATION
  30          };
  31          
  32          code struct usb_st_manufacturer usb_manufacturer =
  33          { sizeof(usb_manufacturer),  STRING, USB_MANUFACTURER_NAME };
  34          
  35          code struct usb_st_product usb_product =
  36          { sizeof(usb_product),       STRING, USB_PRODUCT_NAME };
  37          
  38          code struct usb_st_serial_number usb_serial_number =
  39          { sizeof(usb_serial_number), STRING, USB_SERIAL_NUMBER };
  40          
  41          code struct usb_st_language_descriptor usb_language =
  42          { sizeof(usb_language),      STRING, LANGUAGE_ID };
  43          
  44          code struct  
  45          { struct usb_st_configuration_descriptor  cfg;
  46            struct usb_st_interface_descriptor      ifc;
  47            struct usb_st_hid_descriptor            hid ;
  48            struct usb_st_endpoint_descriptor       ep1 ;
  49            Uchar                                   rep[SIZE_OF_REPORT] ;
  50          }
  51            usb_configuration =
  52            {
  53              { 9, CONFIGURATION, CONF_LENGTH, NB_INTERFACE, CONF_NB,
  54                CONF_INDEX, CONF_ATTRIBUTES, MAX_POWER},
C51 COMPILER V7.06   USB_KBD_ENUM                                                          01/29/2008 10:59:25 PAGE 2   

  55              { 9, INTERFACE, INTERFACE_NB, ALTERNATE, NB_ENDPOINT, INTERFACE_CLASS,
  56                INTERFACE_SUB_CLASS, INTERFACE_PROTOCOL, INTERFACE_INDEX },
  57              { 9, HID, 0x1101, 8, 1, REPORT, 0x3B00 },
  58              { 7, ENDPOINT, ENDPOINT_NB_1, EP_ATTRIBUTES_1, EP_SIZE_1, EP_INTERVAL_1 },
  59              { 0x05,0x01,          /* Usage Page (Generic Desktop)      */        
  60                0x09,0x06,          /* Usage (Keyboard)                  */
  61                0xA1,0x01,          /* Collection (Application)          */
  62                0x05,0x07,          /* Usage Page (Keyboard)             */
  63                0x19,224,           /* Usage Minimum (224)               */
  64                0x29,231,           /* Usage Maximum (231)               */
  65                0x15,0x00,          /* Logical Minimum (0)               */
  66                0x25,0x01,          /* Logical Maximum (1)               */
  67                0x75,0x01,          /* Report Size (1)                   */
  68                0x95,0x08,          /* Report Count (8)                  */
  69                0x81,0x02,          /* Input (Data, Variable, Absolute)  */
  70                0x81,0x01,          /* Input (Constant)                  */
  71                0x19,0x00,          /* Usage Minimum (0)                 */
  72                0x29,101,           /* Usage Maximum (101)               */
  73                0x15,0x00,          /* Logical Minimum (0)               */
  74                0x25,101,           /* Logical Maximum (101)             */
  75                0x75,0x08,          /* Report Size (8)                   */
  76                0x95,0x06,          /* Report Count (6)                  */
  77                0x81,0x00,          /* Input (Data, Array)               */
  78                0x05,0x08,          /* Usage Page (LED)                  */
  79                0x19,0x01,          /* Usage Minimum (1)                 */
  80                0x29,0x05,          /* Usage Maximum (5)                 */
  81                0x15,0x00,          /* Logical Minimum (0)               */
  82                0x25,0x01,          /* Logical Maximum (1)               */
  83                0x75,0x01,          /* Report Size (1)                   */
  84                0x95,0x05,          /* Report Count (5)                  */
  85                0x91,0x02,          /* Output (Data, Variable, Absolute) */
  86                0x95,0x03,          /* Report Count (3)                  */
  87                0x91,0x01,          /* Output (Constant)                 */
  88                0xC0                /* End Collection                    */  
  89                }
  90            };
  91          
  92          static  bit     zlp;
  93          static  Uchar   endpoint_status[2];
  94          static  Uchar   hid_idle_duration;
  95          static  Uchar   *pbuffer;
  96          static  Uchar   bmRequestType;
  97          
  98                  Uchar   usb_configuration_nb;
  99          extern  bit     usb_connected;
 100          /*_____ D E C L A R A T I O N ______________________________________________*/
 101          
 102          static  void    usb_get_descriptor (void);
 103          static  void    usb_read_request (void);
 104          static  void    usb_set_address (void);
 105          static  void    usb_set_configuration (void);
 106          static  void    usb_clear_feature (void);
 107          static  void    usb_set_feature (void);
 108          static  void    usb_get_status (void);
 109          static  void    usb_get_configuration (void);
 110          static  void    usb_get_interface (void);
 111          static  void    usb_hid_set_report (void);
 112          static  void    usb_hid_set_idle (void);
 113          static  void    usb_hid_get_idle (void);
 114          
 115          /*F**************************************************************************
 116          * NAME: usb_var_init
C51 COMPILER V7.06   USB_KBD_ENUM                                                          01/29/2008 10:59:25 PAGE 3   

 117          *----------------------------------------------------------------------------
 118          * PARAMS:
 119          *
 120          * return:
 121          *----------------------------------------------------------------------------
 122          * PURPOSE: 
 123          * This function initializes the USB controller and resets the endpoints FIFOs.
 124          *----------------------------------------------------------------------------
 125          * EXAMPLE:
 126          *----------------------------------------------------------------------------
 127          * NOTE: 
 128          *----------------------------------------------------------------------------
 129          * REQUIREMENTS: 
 130          *****************************************************************************/
 131          void usb_var_init (void)
 132          {
 133   1        endpoint_status[EP_CONTROL] = 0x00;
 134   1        endpoint_status[EP_IN] = 0x00;
 135   1        usb_connected = FALSE;
 136   1        usb_configuration_nb = 0x00;
 137   1      }
 138          
 139          
 140          /*F**************************************************************************
 141          * NAME: usb_ep_init
 142          *----------------------------------------------------------------------------
 143          * PARAMS:
 144          *
 145          * return:
 146          *----------------------------------------------------------------------------
 147          * PURPOSE: 
 148          * This function configures the endpoints.
 149          *----------------------------------------------------------------------------
 150          * EXAMPLE:
 151          *----------------------------------------------------------------------------
 152          * NOTE: 
 153          *----------------------------------------------------------------------------
 154          * REQUIREMENTS: 
 155          *****************************************************************************/
 156          void usb_ep_init (void)
 157          {
 158   1        usb_configure_endpoint(EP_IN , INTERRUPT_IN);
 159   1        usb_reset_endpoint(EP_IN);
 160   1      }
 161          
 162          
 163          
 164          /*F**************************************************************************
 165          * NAME: usb_enumeration_process
 166          *----------------------------------------------------------------------------
 167          * PARAMS:
 168          *
 169          * return:
 170          *----------------------------------------------------------------------------
 171          * PURPOSE: 
 172          * This function manages the enumeration process
 173          *----------------------------------------------------------------------------
 174          * EXAMPLE:
 175          *----------------------------------------------------------------------------
 176          * NOTE: 
 177          *----------------------------------------------------------------------------
 178          * REQUIREMENTS: 
C51 COMPILER V7.06   USB_KBD_ENUM                                                          01/29/2008 10:59:25 PAGE 4   

 179          *****************************************************************************/
 180          void usb_enumeration_process (void)
 181          { 
 182   1        Usb_select_ep(EP_CONTROL);
 183   1        usb_read_request();
 184   1      }
 185          
 186          
 187          /*F**************************************************************************
 188          * NAME: usb_read_request
 189          *----------------------------------------------------------------------------
 190          * PARAMS:
 191          *
 192          * return:
 193          *----------------------------------------------------------------------------
 194          * PURPOSE: 
 195          * This function reads the SETUP request sent to the default control endpoint
 196          * and  the appropriate function. When exiting of the usb_read_request
 197          * function, the device is ready to manage the next request.
 198          *----------------------------------------------------------------------------
 199          * EXAMPLE:
 200          *----------------------------------------------------------------------------
 201          * NOTE: list of supported requests:
 202          *               GET_DESCRIPTOR
 203          *               GET_CONFIGURATION
 204          *               SET_ADDRESS
 205          *               SET_CONFIGURATION or SET_REPORT
 206          *               CLEAR_FEATURE
 207          *               SET_FEATURE
 208          *               GET_STATUS
 209          *               GET_MAX_LUN
 210          *               MASS_STORAGE_RESET
 211          *----------------------------------------------------------------------------
 212          * REQUIREMENTS: 
 213          *****************************************************************************/
 214          void usb_read_request (void)
 215          { 
 216   1        bmRequestType = Usb_read_byte();          /* read bmRequestType */
 217   1      
 218   1        switch (Usb_read_byte())                  /* test the bRequest value */
 219   1        {
 220   2          case GET_DESCRIPTOR:
 221   2            usb_get_descriptor();
 222   2            break;
 223   2          case GET_CONFIGURATION:
 224   2            usb_get_configuration();
 225   2            break;
 226   2          case SET_ADDRESS:
 227   2            usb_set_address();
 228   2            break;
 229   2          case SET_CONFIGURATION:  /* or SET_REPORT */
 230   2            if (bmRequestType == 0) { usb_set_configuration(); }
 231   2            else { usb_hid_set_report(); }
 232   2            break;
 233   2          case CLEAR_FEATURE:
 234   2            usb_clear_feature();
 235   2            break;
 236   2          case SET_FEATURE:
 237   2            usb_set_feature();
 238   2            break;
 239   2          case GET_STATUS:
 240   2            usb_get_status();
C51 COMPILER V7.06   USB_KBD_ENUM                                                          01/29/2008 10:59:25 PAGE 5   

 241   2            break;
 242   2          case GET_INTERFACE:      /* HID_SET_IDLE */
 243   2            if (bmRequestType == 0x81) { usb_get_interface(); } 
 244   2            else { usb_hid_set_idle(); }
 245   2            break;
 246   2          case HID_GET_IDLE:
 247   2            usb_hid_get_idle();
 248   2            break;
 249   2          case SET_DESCRIPTOR:
 250   2          case SET_INTERFACE:
 251   2          case SYNCH_FRAME:
 252   2          default:
 253   2            Usb_clear_rx_setup();
 254   2            Usb_set_stall_request();
 255   2            while (!Usb_stall_sent());
 256   2            Usb_clear_stall_request();
 257   2            Usb_clear_stalled();
 258   2            break;
 259   2          }
 260   1          Usb_clear_DIR();
 261   1      }
 262          
 263          
 264          /*F**************************************************************************
 265          * NAME: usb_set_address
 266          *----------------------------------------------------------------------------
 267          * PARAMS:
 268          *
 269          * return:
 270          *----------------------------------------------------------------------------
 271          * PURPOSE: 
 272          * This function manages the SET_ADDRESS request. The new address is stored
 273          * in the USBADDR register
 274          *----------------------------------------------------------------------------
 275          * EXAMPLE:
 276          *----------------------------------------------------------------------------
 277          * NOTE:
 278          *----------------------------------------------------------------------------
 279          * REQUIREMENTS: 
 280          *****************************************************************************/
 281          void usb_set_address (void)
 282          {
 283   1      Uchar add;
 284   1      
 285   1        add = Usb_read_byte();                    /* store the LSB of wValue = address */
 286   1        Usb_clear_rx_setup();
 287   1        Usb_set_tx_ready();                          /* send a ZLP for STATUS phase */
 288   1        Usb_set_FADDEN();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷久久综合九色综合伊人色| 日本一区二区免费在线| 亚洲国产日韩一区二区| 欧美色网一区二区| 同产精品九九九| 欧美一区二区视频在线观看2022 | 99精品久久久久久| 1024成人网色www| 在线日韩av片| 免费xxxx性欧美18vr| 精品人在线二区三区| 丁香婷婷综合激情五月色| 1024成人网| 91精品在线观看入口| 国产精品白丝jk白祙喷水网站| 国产精品久久一卡二卡| 欧美怡红院视频| 激情五月播播久久久精品| 国产精品日韩成人| 欧美年轻男男videosbes| 久久99精品久久久久婷婷| 国产精品免费av| 欧美裸体一区二区三区| 国产伦精品一区二区三区在线观看 | 懂色av噜噜一区二区三区av| 亚洲啪啪综合av一区二区三区| 91精品婷婷国产综合久久性色| 国产一区二区三区综合| 亚洲天堂网中文字| 欧美一二三四区在线| 成人深夜在线观看| 日韩av一区二区三区四区| 国产精品色在线观看| 这里只有精品电影| 北岛玲一区二区三区四区| 免费国产亚洲视频| 亚洲激情自拍视频| 久久精品夜夜夜夜久久| 欧美精品自拍偷拍| www.日韩精品| 狠狠狠色丁香婷婷综合久久五月| 亚洲卡通动漫在线| 国产欧美一区二区精品仙草咪| 欧美日韩国产在线观看| 91免费看`日韩一区二区| 国产在线观看免费一区| 亚洲综合色网站| 欧美国产激情一区二区三区蜜月| 欧美精品粉嫩高潮一区二区| 99视频在线观看一区三区| 久久99精品国产.久久久久久| 亚洲一区二区三区四区五区中文| 欧美国产日韩一二三区| 精品久久久久一区二区国产| 欧美人妇做爰xxxⅹ性高电影| 不卡电影免费在线播放一区| 韩日精品视频一区| 美女一区二区久久| 午夜精品久久一牛影视| 一区二区三区波多野结衣在线观看| 欧美国产日韩在线观看| 亚洲成a人在线观看| 国产精品乱码一区二区三区软件| 欧美精品一区二区蜜臀亚洲| 欧美一区二区三区视频在线观看 | 久久久久国产精品厨房| 欧美一级黄色片| 欧美老人xxxx18| 欧美视频在线不卡| 色哟哟一区二区在线观看| 99久久婷婷国产| 成人av在线网站| 成人av电影在线网| www.一区二区| av在线一区二区| 99久久精品一区| 成人av高清在线| 91丨porny丨国产入口| 99精品在线观看视频| 91在线精品一区二区| 91麻豆产精品久久久久久 | 亚洲中国最大av网站| 一区二区久久久久| 亚洲高清免费观看高清完整版在线观看| 亚洲欧美日韩人成在线播放| 亚洲欧美区自拍先锋| 亚洲精品视频观看| 性做久久久久久| 日韩国产精品大片| 激情国产一区二区| 成熟亚洲日本毛茸茸凸凹| 成人app软件下载大全免费| 99精品久久只有精品| 欧美性视频一区二区三区| 欧美精品电影在线播放| 久久综合999| 国产精品麻豆视频| 一区二区不卡在线播放 | 亚洲男人电影天堂| 亚洲韩国精品一区| 日本韩国精品在线| 欧美视频在线播放| 精品国产不卡一区二区三区| 国产精品丝袜91| 亚洲国产一区二区a毛片| 久久精品999| 不卡欧美aaaaa| 欧美精品乱码久久久久久按摩| 日韩欧美国产综合| 国产精品剧情在线亚洲| 亚洲一二三四在线| 国产在线精品不卡| 欧美综合天天夜夜久久| 日韩欧美综合在线| 一色屋精品亚洲香蕉网站| 午夜精品在线看| 国产福利一区在线| 欧美日韩成人在线| 亚洲国产精品ⅴa在线观看| 亚洲一级二级在线| 成人午夜私人影院| 欧美日韩成人在线一区| 国产精品毛片久久久久久| 日韩专区中文字幕一区二区| 国产成人午夜高潮毛片| 欧美日韩免费观看一区三区| 国产片一区二区| 日韩av中文字幕一区二区三区| 懂色av一区二区夜夜嗨| 日韩一级视频免费观看在线| 亚洲人成在线观看一区二区| 极品尤物av久久免费看| 欧美久久久久久蜜桃| 最新高清无码专区| 国产精品一二三四区| 911精品产国品一二三产区| 亚洲欧洲另类国产综合| 国产综合色产在线精品| 在线91免费看| 亚洲一区二区三区中文字幕| 不卡在线视频中文字幕| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 欧美精品久久久久久久久老牛影院| 精品国产亚洲在线| 日韩精品福利网| 91久久奴性调教| 一区在线观看视频| 成人在线一区二区三区| 欧美精品一区二区三区高清aⅴ | 91福利在线播放| 国产精品午夜免费| 国产在线麻豆精品观看| 欧美一级黄色片| 日本不卡一区二区三区高清视频| 91成人在线免费观看| 亚洲视频免费在线观看| av不卡在线播放| 中文字幕不卡在线播放| 成人手机电影网| 中文字幕不卡三区| 国产成人精品免费在线| 久久久久久久久久久久电影 | 极品少妇xxxx精品少妇偷拍| 51久久夜色精品国产麻豆| 天堂成人国产精品一区| 7777精品伊人久久久大香线蕉经典版下载 | 久久久精品tv| 国产一区二区久久| 日韩精品中文字幕在线不卡尤物| 日韩成人av影视| 日韩精品一区在线观看| 蜜桃精品在线观看| 精品国产乱码久久久久久久久 | 亚洲精品国产成人久久av盗摄| 成人18精品视频| 一区二区三区日韩在线观看| 欧美性极品少妇| 色美美综合视频| 亚洲男人的天堂在线观看| 欧美午夜影院一区| 全国精品久久少妇| 26uuu欧美| 本田岬高潮一区二区三区| 亚洲精品免费在线| 欧美裸体bbwbbwbbw| 久色婷婷小香蕉久久| 国产欧美日韩在线| 97久久超碰国产精品电影| 亚洲观看高清完整版在线观看 | 欧美精品一区男女天堂| 国产乱国产乱300精品| 中文字幕中文字幕在线一区 | 成人美女在线视频| 亚洲色图19p| 欧美一区二区三区免费在线看| 久久超碰97中文字幕| 国产精品伦理在线| 欧美日韩另类一区| 国内精品久久久久影院薰衣草| 中文字幕一区二区三区视频|