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

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

?? usb.lst

?? usb接口的移動硬盤
?? LST
?? 第 1 頁 / 共 3 頁
字號:
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE USB
OBJECT MODULE PLACED IN USB.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE USB.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /******************************************************************
   2             本程序只供學習使用,未經作者許可,不得用于其它任何用途
   3                我的郵箱:computer-lov@tom.com
   4                  歡迎訪問我的blog:  http://computer00.21ic.org
   5          
   6          USB.C  file
   7          
   8          Created by Computer-lov
   9          Date: 2004.9.21
  10          
  11          Edit date:2006.3.2
  12          
  13          Version V1.1
  14          Copyright(C) Computer-lov 2004-2014
  15          All rigths reserved
  16                       
  17          *******************************************************************/
  18          
  19          #include<AT89x52.H>
  20          #include "USB.H"
  21          #include "PDIUSBD12.H"
  22          #include "MASS_STORAGE.H"
  23          //#include<serial.h>
  24          #include "ide.h"
  25          
  26          #define USB_COMMAND_ADD           1
  27          #define USB_DATA_ADD              0
  28          
  29          #define USB_DATA                  P0
  30          #define USB_A0                    P3_5
  31          #define USB_WR                    P3_6
  32          #define USB_RD                    P3_7
  33          #define USB_INT                   P3_2
  34          
  35          
  36          #define ENDPOINT_NUMBER           2
  37          #define MAX_CONTROL_DATA_SIZE     16
  38          #define MAX_LUN                    0
  39          #define MAX_BULK_DATA_SIZE        64
  40          
  41          CONTROL_DATA_BUFF idata Control_Data;
  42          
  43          unsigned char idata buffer[64];
  44          
  45          CBW idata cbw;
  46          CSW idata csw;
  47          
  48          
  49          /*union 
  50          {
  51           unsigned char Register;
  52           struct
  53            {
  54             unsigned char Command                :1;
  55             unsigned char Data                   :1;
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 2   

  56            }Status;
  57          }SCSI;*/
  58          
  59          
  60          unsigned char bdata SCSI_Register;
  61          sbit SCSI_Command    =   SCSI_Register^0;
  62          sbit SCSI_Data       =   SCSI_Register^1;
  63          
  64          
  65          unsigned char *pData;
  66          
  67          unsigned char code DISK_INF[36]
  68          =                                      //磁盤信息
  69          {
  70           0x00,
  71           0x00,
  72           0x02,
  73           0x02,
  74           0x1F,
  75           0x00,0x00,0x00,
  76           0x49,0x44,0x45,0xA1,0xFA,0x55,0x53,0x42, 
  77           0xD7,0xD4,0xBC,0xBA,0xD7,0xF6,0xB5,0xC4,0xD2,0xC6,0xB6,0xAF,0xD3,0xB2,0xC5,0xCC,
  78           0x31,0x2E,0x30,0x31
  79          };
  80          
  81          unsigned char DISK_CAPACITY[8]=                                  //磁盤容量
  82          {
  83           0x00,0x01,0xff,0x00,
  84           0x00,0x00,0x02,0x00
  85          };
  86          
  87          code unsigned char SENSE[0x12]=                                      //模式探測返回數據
  88          {
  89          0x70, 0x00, 0x05, 0x00, 0x00, 0x00,
  90          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00
  91          };
  92          
  93          
  94          unsigned int SWAP(unsigned int temp)                                //高低字節交換
  95          {
  96   1       unsigned char i;
  97   1       i=((unsigned char *)&temp)[0];
  98   1       ((unsigned char *)&temp)[0]=((unsigned char *)&temp)[1];
  99   1       ((unsigned char *)&temp)[1]=i;
 100   1       return temp;
 101   1      }
 102          
 103          unsigned char LSB(unsigned int temp)                                //取一個整數的低字節
 104          {
 105   1       return (unsigned char)temp;
 106   1      }
 107          
 108          unsigned char MSB(unsigned int temp)                                //取一個整數的高字節
 109          {
 110   1       return (unsigned char)(temp>>8);
 111   1      }
 112          
 113          code unsigned char LANGUAGE_ID[4]={0x04,0x03,0x09,0x04};            //字符串描述符所用的語言種類        
 114          
 115          code unsigned char device_serial_number[18]=                         //設備序列號
 116           {0x12,0x03,0x32,0x00,0x30,0x00,0x37,0x00,0x31,0x00,0x30,0x00,0x39,0x00,0x38,0x00,0x32,0x00};
 117          
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 3   

 118          code DEVICE_DESCRIPTOR_STRUCT device_descriptor=     //設備描述符
 119          {
 120           sizeof(DEVICE_DESCRIPTOR_STRUCT),                   //設備描述符的字節數大小
 121           DEVICE_DESCRIPTOR,                                  //設備描述符類型編號
 122           0x1001,                                             //USB版本號
 123           0x00,                                               //USB分配的設備類代碼
 124           0x00,                                               //USB分配的子類代碼
 125           0x00,                                               //USB分配的設備協議代碼
 126           0x10,                                               //端點0的最大包大小
 127           0x7104,                                             //廠商編號
 128           0xf0ff,                                             //產品編號
 129           0x0100,                                             //設備出廠編號
 130           0x00,                                               //設備廠商字符串的索引
 131           0x00,                                               //描述產品字符串的索引
 132           0x02,                                               //描述設備序列號字符串的索引
 133           0x01                                                //可能的配置數量
 134          };
 135          
 136          typedef struct _CON_INT_ENDP_DESCRIPTOR_STRUCT
 137          {
 138           CONFIGURATION_DESCRIPTOR_STRUCT configuration_descriptor;
 139           INTERFACE_DESCRIPTOR_STRUCT  interface_descritor;
 140           ENDPOINT_DESCRIPTOR_STRUCT  endpoint_descriptor[ENDPOINT_NUMBER];
 141          }CON_INT_ENDP_DESCRIPTOR_STRUCT;
 142          
 143          code CON_INT_ENDP_DESCRIPTOR_STRUCT con_int_endp_descriptor=
 144          {
 145          //configuration_descriptor                                          //配置描述符
 146          {
 147           sizeof(CONFIGURATION_DESCRIPTOR_STRUCT),                           //配置描述符的字節數大小
 148           CONFIGURATION_DESCRIPTOR,                                          //配置描述符類型編號
 149           (sizeof(CONFIGURATION_DESCRIPTOR_STRUCT)+sizeof(INTERFACE_DESCRIPTOR_STRUCT)+sizeof(ENDPOINT_DESCRIPTOR_S
             -TRUCT)*ENDPOINT_NUMBER)*256+
 150           (sizeof(CONFIGURATION_DESCRIPTOR_STRUCT)+sizeof(INTERFACE_DESCRIPTOR_STRUCT)+sizeof(ENDPOINT_DESCRIPTOR_S
             -TRUCT)*ENDPOINT_NUMBER)/256,
 151           0x01,                                                            //只包含一個接口
 152           0x01,                                                            //該配置的編號
 153           0x00,                                                            //iConfiguration字段
 154           0x80,                                                            //采用總線供電,不支持遠程喚醒
 155           0xC8                                                            //從總線獲取最大電流400mA
 156          },
 157          //interface_descritor                                             //接口描述符
 158          {
 159           sizeof(INTERFACE_DESCRIPTOR_STRUCT),                             //接口描述符的字節數大小
 160           INTERFACE_DESCRIPTOR,                                            //接口描述符類型編號
 161           0x00,                                                            //接口編號為0
 162           0x00,                                                            //該接口描述符的編號
 163           ENDPOINT_NUMBER,                                                 //非0端點數量為2,只使用端點主端點輸入和
             -輸出
 164           0x08,                                                            //USB大容量存儲設備
 165           0x06,                                                            //使用的子類,為簡化塊命令
 166           0x50,                                                            //使用的協議,這里使用單批量傳輸協議
 167           0x00                                                             //接口描述符字符串索引
 168          },
 169          
 170          //endpoint_descriptor[]
 171          {
 172           {                                                                  //主端點輸入描述
 173            sizeof(ENDPOINT_DESCRIPTOR_STRUCT),                             //端點描述符的字節數大小
 174            ENDPOINT_DESCRIPTOR,                                            //端點描述符類型編號
 175            MAIN_POINT_IN,                                                  //端點號,主輸入端點
 176            ENDPOINT_TYPE_BULK,                                             //使用的傳輸類型,批量傳輸
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 4   

 177            0x4000,                                                         //該端點支持的最大包尺寸,64字節
 178            0x00                                                            //中斷掃描時間,對批量傳輸無效
 179           },
 180            
 181           {                                                                  //主端點輸出描述
 182            sizeof(ENDPOINT_DESCRIPTOR_STRUCT),                             //端點描述符的字節數大小
 183            ENDPOINT_DESCRIPTOR,                                            //端點描述符類型編號
 184            MAIN_POINT_OUT,                                                 //端點號,主輸出端點
 185            ENDPOINT_TYPE_BULK,                                             //使用的傳輸類型,批量傳輸
 186            0x4000,                                                         //該端點支持的最大包尺寸,64字節
 187            0x00                                                            //中斷掃描時間,對批量傳輸無效
 188           }
 189          }
 190          };
 191          
 192          /*union                                          //程序標志位
 193          {
 194          unsigned int Register;
 195          struct 
 196          {
 197           unsigned char bus_reset        :1;
 198           unsigned char suspend          :1;
 199           unsigned char remote_wakeup    :1;
 200           unsigned char int_isr          :1;
 201           unsigned char not_end          :1;
 202           unsigned char usb_idle         :1;
 203           unsigned char usb_busy         :1;
 204           unsigned char setup_packet_in  :1;
 205           unsigned char setup_packet_out :1;
 206           unsigned char set_addr         :1;
 207           unsigned char usb_endp0_in     :1;
 208           unsigned char usb_endp2_in     :1;
 209           unsigned char usb_endp2_out    :1;
 210          }flags;
 211          }usb_flags;
 212          */
 213          
 214          unsigned int bdata usb_flags_Register;
 215          //unsigned bdata usb_flags_Register2;
 216          
 217          sbit USB__bus_reset        = usb_flags_Register^0;
 218          sbit USB_suspend          = usb_flags_Register^1;
 219          sbit USB_remote_wakeup    = usb_flags_Register^2;
 220          sbit USB_int_isr          = usb_flags_Register^3;
 221          sbit USB_not_end          = usb_flags_Register^4;
 222          sbit USB_usb_idle         = usb_flags_Register^5;
 223          sbit USB_usb_busy         = usb_flags_Register^6;
 224          sbit USB_setup_packet_in  = usb_flags_Register^7;
 225          sbit USB_setup_packet_out = usb_flags_Register^8;
 226          sbit USB_set_addr         = usb_flags_Register^9;
 227          sbit USB_usb_endp0_in     = usb_flags_Register^10;
 228          sbit USB_usb_endp2_in     = usb_flags_Register^11;
 229          sbit USB_usb_endp2_out    = usb_flags_Register^12;
 230          
 231          /*union                                         //中斷寄存器
 232          {
 233           unsigned char Register[2];
 234           struct 
 235            {
 236             unsigned char control_out_port  :1;
 237             unsigned char control_in_port   :1;
 238             unsigned char port_out_1        :1;
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 5   

 239             unsigned char port_in_1         :1;
 240             unsigned char main_out_port     :1;
 241             unsigned char main_in_port      :1;
 242             unsigned char bus_reset         :1;
 243             unsigned char suspend_change    :1;
 244             unsigned char DMA_EOT           :1;
 245             unsigned char not_use           :7;
 246            }Interrupt;
 247          }Interrupt_Register;
 248          */
 249          
 250          unsigned char bdata Interrupt_Register[2];
 251          
 252          sbit Interrupt_control_out_port   =  Interrupt_Register[0]^0;
 253          sbit Interrupt_control_in_port    =  Interrupt_Register[0]^1;
 254          sbit Interrupt_port_out_1         =  Interrupt_Register[0]^2;
 255          sbit Interrupt_port_in_1          =  Interrupt_Register[0]^3;
 256          sbit Interrupt_main_out_port      =  Interrupt_Register[0]^4;
 257          sbit Interrupt_main_in_port       =  Interrupt_Register[0]^5;
 258          sbit Interrupt_bus_reset          =  Interrupt_Register[0]^6;
 259          sbit Interrupt_suspend_change     =  Interrupt_Register[0]^7;
 260          sbit Interrupt_DMA_EOT            =  Interrupt_Register[1]^0;
 261          
 262          
 263          /*union                                    //端點最后處理狀態
 264          {
 265           unsigned char Register;
 266           struct
 267           {
 268            unsigned char successful          :1;
 269            unsigned char error_code          :4;
 270            unsigned char setup_packet        :1;
 271            unsigned char data_1              :1;
 272            unsigned char prestatus_not_read  :1;
 273           }Status;
 274          }Last_Status;*/
 275          
 276          unsigned char bdata Last_Status_Register;
 277          
 278          sbit Last_Status_successful          =   Last_Status_Register^0;
 279          sbit Last_Status_error_code0         =   Last_Status_Register^1;
 280          sbit Last_Status_error_code1         =   Last_Status_Register^2;
 281          sbit Last_Status_error_code2         =   Last_Status_Register^3;
 282          sbit Last_Status_error_code3         =   Last_Status_Register^4;
 283          sbit Last_Status_setup_packet        =   Last_Status_Register^5;
 284          sbit Last_Status_data_1              =   Last_Status_Register^6;
 285          sbit Last_Status_prestatus_not_read  =   Last_Status_Register^7;
 286          
 287          //*****************   延時x毫秒函數 ***********
 288          void delay(unsigned int x)                
 289          {
 290   1       unsigned int i;
 291   1       unsigned int j;
 292   1       for(i=0;i<x;i++)
 293   1       for(j=0;j<230;j++);
 294   1      }
 295          //********************************************
 296          
 297          
 298          void write_usb_command(unsigned char usb_command)       //寫USB命令
 299          {
 300   1       USB_A0=USB_COMMAND_ADD;
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 6   

 301   1       USB_DATA=usb_command;
 302   1       USB_WR=0;
 303   1       USB_WR=1;
 304   1       USB_DATA=0xFF;
 305   1      }
 306          
 307          void write_a_usb_data(unsigned char usb_data)        //寫一字節USB數據
 308          {
 309   1       USB_A0=USB_DATA_ADD;
 310   1       USB_DATA=usb_data;
 311   1       USB_WR=0;
 312   1       USB_WR=1;
 313   1       USB_DATA=0XFF;
 314   1      }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97超碰欧美中文字幕| 麻豆国产精品777777在线| 日韩免费电影网站| 91视视频在线直接观看在线看网页在线看 | 亚洲三级理论片| 日韩一二三区视频| 欧洲av一区二区嗯嗯嗯啊| 国产成人精品免费在线| 免费日韩伦理电影| 亚洲国产毛片aaaaa无费看| 国产欧美精品日韩区二区麻豆天美| 91久久久免费一区二区| 国产成人午夜精品5599 | 久久99国产精品免费| 亚洲国产你懂的| 亚洲激情av在线| 国产精品久久久久久久久动漫| 欧美精品一区二区三区高清aⅴ| 欧美色综合影院| 日本精品一区二区三区高清| 成人免费毛片嘿嘿连载视频| 国产一区二区在线电影| 美女一区二区视频| 蜜臀91精品一区二区三区| 亚洲电影视频在线| 亚洲午夜久久久久久久久电影网| 国产精品久久久久久久第一福利 | 三级亚洲高清视频| 亚洲国产aⅴ成人精品无吗| 亚洲精品乱码久久久久久日本蜜臀| 久久亚洲综合色| 久久久久久免费网| 久久先锋影音av鲁色资源| 久久一区二区视频| 国产亚洲欧美一区在线观看| 欧美精品一区二区精品网| 精品久久一二三区| 久久精品一区四区| 欧美激情中文字幕一区二区| 国产日韩在线不卡| 中文一区一区三区高中清不卡| 欧美激情一区二区三区四区| 国产精品免费免费| 亚洲天堂a在线| 一级特黄大欧美久久久| 亚洲高清视频在线| 亚洲va韩国va欧美va精品| 日韩av电影天堂| 美女视频黄频大全不卡视频在线播放| 日本美女一区二区三区视频| 久久黄色级2电影| 国产精品一级黄| 99精品视频一区| 欧美三级欧美一级| 日韩欧美资源站| 久久精品视频在线免费观看| 国产精品精品国产色婷婷| 亚洲欧美激情小说另类| 首页欧美精品中文字幕| 久久不见久久见免费视频1| 国产91精品精华液一区二区三区| 波多野结衣中文一区| 欧美午夜精品久久久久久孕妇| 欧美一级国产精品| 日本一区二区在线不卡| 亚洲综合色自拍一区| 免费观看一级欧美片| 高清shemale亚洲人妖| 在线观看日韩高清av| 日韩你懂的电影在线观看| 国产区在线观看成人精品| 亚洲自拍偷拍av| 精品一区二区三区久久久| av资源站一区| 91精品国产91久久久久久一区二区| 精品处破学生在线二十三| 中文字幕亚洲不卡| 人禽交欧美网站| 成人国产精品免费观看动漫| 欧美美女一区二区三区| 久久精品日产第一区二区三区高清版 | 久久综合一区二区| 亚洲欧洲综合另类| 精品午夜久久福利影院| 91久久国产综合久久| 精品久久久久久久久久久院品网| 1区2区3区国产精品| 免费黄网站欧美| 在线观看av一区| 欧美不卡一区二区三区四区| 亚洲免费观看高清完整版在线| 狠狠色丁香婷综合久久| 色av综合在线| 久久久亚洲午夜电影| 五月婷婷久久丁香| caoporen国产精品视频| 精品国产一区二区三区久久久蜜月 | 蜜臀精品久久久久久蜜臀| 在线不卡免费av| 国产精品夫妻自拍| 国产精品综合久久| 欧美夫妻性生活| 亚洲激情图片一区| zzijzzij亚洲日本少妇熟睡| 欧美大白屁股肥臀xxxxxx| 一区二区三区四区精品在线视频| 国产乱人伦偷精品视频不卡 | 国产精品一线二线三线精华| 欧美日韩在线播放三区| 亚洲天堂免费看| 成人一区二区三区视频| 欧美成人午夜电影| 日韩av一区二区三区四区| 在线观看一区二区视频| 亚洲欧美在线视频观看| 国产二区国产一区在线观看| 日韩视频国产视频| 天涯成人国产亚洲精品一区av| 色吧成人激情小说| 一区二区三区在线视频免费观看| 不卡的av网站| 中文字幕亚洲综合久久菠萝蜜| 国产成人精品aa毛片| 国产午夜精品福利| 国产精品亚洲人在线观看| 欧美xfplay| 国精品**一区二区三区在线蜜桃| 欧美一区二区啪啪| 老司机精品视频导航| 精品国产乱码久久久久久免费 | 九色综合国产一区二区三区| 欧美一区二区在线视频| 日韩福利视频导航| 欧美一级艳片视频免费观看| 日韩精品亚洲专区| 欧美电影一区二区| 视频一区免费在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 91美女在线观看| 亚洲一级片在线观看| 精品视频在线免费| 日韩不卡一区二区| 精品久久久三级丝袜| 国产麻豆视频一区| 国产精品色一区二区三区| 成人性生交大片免费看在线播放| 欧美高清在线视频| 色婷婷激情久久| 亚洲国产中文字幕在线视频综合| 欧美高清性hdvideosex| 老司机精品视频线观看86| 国产亚洲精品精华液| 91一区一区三区| 亚洲成在人线在线播放| 日韩欧美中文一区二区| 国产精品一区二区x88av| 国产精品成人一区二区三区夜夜夜| 日本精品免费观看高清观看| 亚洲h动漫在线| 精品女同一区二区| 丁香激情综合五月| 一区二区在线看| 欧美成va人片在线观看| av中文字幕不卡| 日日摸夜夜添夜夜添亚洲女人| 久久亚洲影视婷婷| 色美美综合视频| 日本成人在线电影网| 久久九九久久九九| 精品视频在线看| 国产一区二区精品久久99| 久久久久久97三级| 在线免费观看一区| 韩国欧美国产1区| 国产精品久久久久久久久免费相片| 欧美日韩在线播放| 国产精品1区二区.| 一二三四社区欧美黄| 久久久欧美精品sm网站| 99久久精品费精品国产一区二区| 五月天激情综合| 久久欧美中文字幕| 欧美日韩在线综合| 国产成a人亚洲| 偷窥国产亚洲免费视频| 国产精品视频麻豆| 欧美一区二区三区爱爱| 色视频一区二区| 国产综合成人久久大片91| 亚洲综合色丁香婷婷六月图片| 久久久久久久久久电影| 欧美日韩一级片网站| 国产成人精品免费| 美脚の诱脚舐め脚责91 | 亚洲欧美日韩国产手机在线| 精品国产一区二区在线观看| 欧美性大战久久久| 盗摄精品av一区二区三区| 美国毛片一区二区三区| 洋洋av久久久久久久一区|