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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? usb.lst

?? USB固件編程與驅(qū)動開發(fā)PDIUBD12
?? LST
字號:
C51 COMPILER V6.23a  USB                                                                   03/09/2005 20:46:02 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE USB
OBJECT MODULE PLACED IN usb.OBJ
COMPILER INVOKED BY: G:\Program Files\keil\C51\BIN\C51.EXE usb.c

stmt level    source

   1          //usb.c
   2          #include "head.c"
   3          #include "ADUC812.H"
   4          #include "stdio.h"
   5          //#include "USB_protocol.c""
   6          
   7          
   8          /////////////////////////////////////////////////////////////////////
   9          union rec_data_cache//數(shù)據(jù)接收緩沖 
  10          {
  11           struct setup_package//setup包專用區(qū)
  12           {
  13           unsigned char RequestType;
  14           unsigned char Request;
  15           unsigned char ValueL;       
  16           unsigned char ValueH;  
  17           unsigned char IndexL;
  18           unsigned char IndexH;
  19           unsigned char LengthL;
  20           unsigned char LengthH;       
  21           //int b;
  22           //int c;
  23           //int d;
  24           }setup; 
  25          unsigned char buffer[64];
  26          struct cbw_package//CBW包專用區(qū)
  27          {unsigned long dCBWSignature;//offset 0
  28           unsigned long dCBWTag;//offset 4
  29           unsigned long dCBWDataTransferLength;//offset 8
  30           unsigned char bmCBWFlags;//offset 12 
  31           unsigned char bCBWLUN;
  32           unsigned char bCBWCBLength;//offset 14
  33           unsigned char CBWCB_Operation_Code;                  
  34           unsigned char CBWCB_Logicol_unit_Number;//offset 16                 
  35           unsigned long CBWCB_Logical_block_address;//offset 17                 
  36           unsigned long CBWCB_length;//offset 21               
  37           unsigned char CBWCB10;                 
  38           unsigned char CBWCB_control;                                  
  39           unsigned char CBWCB12;                
  40           unsigned char CBWCB13;               
  41           unsigned char CBWCB14;                
  42           unsigned char CBWCB15;//offset 30         
  43           }CBW;
  44          }USB;
  45          unsigned long dCBWTag;
  46          //unsigned long dCSWDataResidue;
  47          //unsigned char bCSWStatus;
  48          /////////////////////////////////////////
  49           bit bulk_Transfer_data;     //bulk數(shù)據(jù)
  50           bit bulk_Transfer_code;     //bulk命令
  51           bit bsetup                 ;//:1;//收到setup包標(biāo)志位
  52           bit bSuspend               ;//:1;//掛起標(biāo)志位
  53           bit bBusreset              ;//:1;//總線復(fù)位標(biāo)志位
  54           bit bEndpointRequest       ;//:1;//對端點請求處理標(biāo)志位
  55           bit bInterfaceRequest      ;//:1;//對接口請求處理標(biāo)志位
C51 COMPILER V6.23a  USB                                                                   03/09/2005 20:46:02 PAGE 2   

  56           bit bBusDataPID            ;//:1;//設(shè)備端當(dāng)前傳送數(shù)據(jù)pid
  57           bit bDataTransmittal       ;//數(shù)據(jù)傳送狀態(tài)標(biāo)識
  58           bit bconfiguration         ;//;配置標(biāo)志位
  59           bit ADbusy                 ;//AD忙碌
  60          ////////////////////////////////////////////////////
  61          //extern void StandardRuest(void);//標(biāo)準(zhǔn)請求處理 
  62          extern code unsigned char DDescriptor[18];
  63          extern code unsigned char SDescriptor[46];
  64          extern code unsigned char subitID[];
  65          extern code unsigned char subit1[];
  66          extern code unsigned char subit2[];
  67          extern code unsigned char subit3[];
  68          extern code unsigned char subit4[];
  69          extern code unsigned char subit5[];
  70          extern code unsigned char INQUIRYinformation[36];
  71          //extern code unsigned char audio[5360];//={//0x14f0//
  72          void UsbMassStorgeClassRequest(void);
  73          extern void DAC(void);//DA轉(zhuǎn)換
  74          ///////////////////////////////////////////////////////
  75          void T0_initializtion(void);//初始化定時器0
  76          void ADC(void);//AD轉(zhuǎn)換
  77          //////////////////////////////////////////////////////
  78          //公用函數(shù)
  79          unsigned char  read_d12(unsigned int rp)//d12讀函數(shù)
  80          {
  81   1      unsigned char xdata *data p;
  82   1      p=rp;
  83   1      return(*p);
  84   1      }
  85          
  86          void write_d12(unsigned char wd,unsigned int wp)//d12寫函數(shù)     
  87          {
  88   1      unsigned char xdata *data p;
  89   1      p=wp;
  90   1      *p=wd;
  91   1      return ;
  92   1      }
  93          
  94          void AcknonwledgeEndpoint (unsigned char point)//端點應(yīng)答
  95          {
  96   1      write_d12(point,order);
  97   1      write_d12(0xf1,order);
  98   1      if(point==0)
  99   1      write_d12(0xf2,order);
 100   1      return;}
 101          
 102          /*
 103          void EndpointStop(unsigned char point)//停止握手
 104          {
 105          write_d12(point|0x40,order);
 106          write_d12(0x01,digital);
 107          return;} 
 108          */
 109          
 110          /*void UnLinkUSB(void)//斷開usb總線
 111          {
 112          write_d12(0xf3,order);
 113          write_d12(0x0e,digital);
 114          return;}
 115          */
 116          void ReLinkUSB()//重連usb ()(重連后時鐘從4M->16M)12m
 117          {
C51 COMPILER V6.23a  USB                                                                   03/09/2005 20:46:02 PAGE 3   

 118   1      /*unsigned int a;
 119   1       
 120   1      write_d12(0xF3,order);//0xF3
 121   1      write_d12(0x0e,digital);//0x0e
 122   1      write_d12(0x0b,digital);//0x0b
 123   1      for(;a<=0x00ff;)
 124   1      {a++;
 125   1      }*/
 126   1      write_d12(0xF3,order);//0xF3
 127   1      //write_d12(0x0e,digital);//0x0e
 128   1      write_d12(0x16,digital);//0x16
 129   1      write_d12(0x03,digital);//0x03;分頻系數(shù)16
 130   1       
 131   1      return;
 132   1      }
 133          
 134          /*void GetAddress(void)//設(shè)置地址
 135          {
 136          write_d12(0xd0,order);
 137          write_d12(USB.setup.ValueL|0x80,digital);
 138          return;
 139          }*/
 140          
 141          
 142          /*void Rorder(void)//發(fā)送恢復(fù)命令
 143          {
 144          return;}
 145          */
 146          
 147          /*void stall(void)//stall握手
 148          {
 149          write_d12(0x40,order);
 150          write_d12(0x01,digital);
 151          write_d12(0x41,order);
 152          write_d12(0x01,digital);
 153          write_d12(0x42,order);
 154          write_d12(0x01,digital);
 155          write_d12(0x43,order);
 156          write_d12(0x01,digital);
 157          write_d12(0x44,order);
 158          write_d12(0x01,digital);
 159          write_d12(0x45,order);
 160          write_d12(0x01,digital);
 161          return;}
 162          */
 163          void SetEndpointEnable_No(unsigned char i)//普通/同步端點使能_禁止
 164          {
 165   1      write_d12(0xd8,order);
 166   1      write_d12(i,digital);
 167   1      return;}
 168          
 169          
 170          /*void Endpointnew(unsigned char point)//端點刷新
 171          {
 172          write_d12(point|0x40,order);
 173          write_d12(0x00,digital);
 174          return;}
 175          */
 176          
 177          //USB;
 178          unsigned char read_point(unsigned char point)//讀端點
 179          {
C51 COMPILER V6.23a  USB                                                                   03/09/2005 20:46:02 PAGE 4   

 180   1      unsigned char buffer_long=0;
 181   1      unsigned char j;
 182   1      j=0;
 183   1      write_d12(point,order);
 184   1      buffer_long=read_d12(digital);
 185   1      write_d12(point|0x80,order);
 186   1      buffer_long=read_d12(digital);
 187   1      if(buffer_long^2)
 188   1      {bsetup=1;}
 189   1      write_d12(0xf0,order);
 190   1      buffer_long=read_d12(digital);
 191   1      buffer_long=read_d12(digital);
 192   1        if(buffer_long!=0)//
 193   1         {while(j<buffer_long)
 194   2           {
 195   3           USB.buffer[j]=read_d12(digital);
 196   3               j=j+1;
 197   3               }
 198   2               write_d12(0xf2,order);
 199   2         }
 200   1        else
 201   1        {
 202   2        AcknonwledgeEndpoint (0x00);
 203   2        AcknonwledgeEndpoint (0x01);
 204   2        }
 205   1      return buffer_long;
 206   1      }
 207          
 208          void write_point(unsigned char point,buffer_long)//寫端點
 209          {
 210   1      unsigned char nextsendL,j=0;
 211   1      if(/*(point==0x02)||*/(point==0x03))
 212   1        {
 213   2          if(bDataTransmittal==1)
 214   2          {j=USB.setup.RequestType;}
 215   2          if(buffer_long>16)
 216   2          {bDataTransmittal=1;
 217   3               nextsendL=buffer_long-16;
 218   3           buffer_long=16;
 219   3              }
 220   2          else
 221   2          {bDataTransmittal=0;
 222   3              }
 223   2        }
 224   1      write_d12(point,order);
 225   1      write_d12(0xf0,order);
 226   1      write_d12(0x00,digital);
 227   1      write_d12(buffer_long,digital);
 228   1      while(j<buffer_long)
 229   1           {
 230   2           write_d12(USB.buffer[j],digital);
 231   2               j=j+1;
 232   2               }
 233   1      if(bDataTransmittal==1)
 234   1      {USB.setup.RequestType=j;
 235   2      USB.setup.Request=nextsendL;}
 236   1      write_d12(0xfa,order);//寫數(shù)完畢使能緩沖區(qū)
 237   1      write_d12(point+1,order);///發(fā)數(shù)之前將指針切換到out區(qū)
 238   1      return;
 239   1      }
 240          
 241          
C51 COMPILER V6.23a  USB                                                                   03/09/2005 20:46:02 PAGE 5   

 242          ///////////////////////////////////////
 243          ////////////標(biāo)準(zhǔn)設(shè)備請求處理
 244          
 245          /*void GetStatus(void)//獲取狀態(tài)
 246          {
 247          return;}
 248          void ClearFeature(void)//清除特性選擇符
 249          {
 250          return;}
 251          void SetFeature(void)//設(shè)置特性選擇符
 252          {
 253          return;}
 254          
 255          void SetAddress(void)//分配地址
 256          {
 257          return;}
 258          */
 259          /*void GetDescriptor(void)//獲取描述符(類型)
 260          {
 261          return;}*/
 262          
 263          
 264          
 265          void StandardRuest(void)//標(biāo)準(zhǔn)請求處理
 266          {
 267   1      /*if(USB.setup.Request==0x00)
 268   1        {GetStatus();}//獲取狀態(tài)
 269   1      if(USB.setup.Request==0x01)
 270   1        {ClearFeature();}//清除特性選擇符
 271   1      if(USB.setup.Request==0x03)
 272   1        {SetFeature();} //設(shè)置特性選擇符
 273   1      */
 274   1        
 275   1      if(USB.setup.Request==0x05)
 276   1        {/*GetAddress;*/
 277   2        write_d12(0xd0,order);
 278   2        write_d12(USB.setup.ValueL|0x80,digital);
 279   2        write_point(0x01,0);}//分配地址
 280   1      else if(USB.setup.Request==0x06)
 281   1           {/*GetDescriptor;*/
 282   2              if(USB.setup.ValueH==0x01)//獲取設(shè)備描述符
 283   2               { 
 284   3                       unsigned char i=0;
 285   3                       if(USB.setup.LengthL==0x40){USB.buffer[63]=0x10;}
 286   3                   else{USB.buffer[63]=USB.setup.LengthL;}
 287   3                     while (i<18)
 288   3                     {USB.buffer[i]=DDescriptor[i];i=i+1;}
 289   3               write_point(0x01,USB.buffer[63]);
 290   3               }
 291   2               else if(USB.setup.ValueH==0x02)//獲取配置描述符 
 292   2               {
 293   3               unsigned char i=0;
 294   3                       if(USB.setup.LengthL==0xff){USB.buffer[63]=0x2e;}
 295   3                   else{USB.buffer[63]=USB.setup.LengthL;}
 296   3                     while (i<46)
 297   3                     {USB.buffer[i]=SDescriptor[i];i=i+1;}
 298   3               write_point(0x01,USB.buffer[63]);
 299   3               }
 300   2              else if(USB.setup.ValueH==0x03);//獲取字符串描述符
 301   2                      { unsigned char i=0;
 302   3                            if(USB.setup.ValueL==0x00){while(i<subitID[0]){USB.buffer[i]=subitID[i];i=i+1;}
 303   4               write_point(0x01,subitID[0]);}
C51 COMPILER V6.23a  USB                                                                   03/09/2005 20:46:02 PAGE 6   

 304   3               else if(USB.setup.ValueL==0x01){while(i<subit1[0]){USB.buffer[i]=subit1[i];i=i+1;}
 305   4               write_point(0x01,subit1[0]);}
 306   3                       else if(USB.setup.ValueL==0x02){while(i<subit2[0]){USB.buffer[i]=subit2[i];i=i+1;}
 307   4               write_point(0x01,subit2[0]);}
 308   3                       else if(USB.setup.ValueL==0x03){while(i<subit3[0]){USB.buffer[i]=subit3[i];i=i+1;}
 309   4               write_point(0x01,subit3[0]);}
 310   3                       else if(USB.setup.ValueL==0x04){while(i<subit4[0]){USB.buffer[i]=subit4[i];i=i+1;}
 311   4               write_point(0x01,subit4[0]);}
 312   3                       else if(USB.setup.ValueL==0x05){while(i<subit5[0]){USB.buffer[i]=subit5[i];i=i+1;}
 313   4               write_point(0x01,subit5[0]);}
 314   3                       
 315   3                      }
 316   2            }//獲取描述符(類型)
 317   1      if(USB.setup.Request==0x07)
 318   1        {/*SetDescriptor;*/}//;設(shè)置描述符類型
 319   1      if(USB.setup.Request==0x08)
 320   1        {USB.buffer[0]=bconfiguration;
 321   2         write_point(0x01,1);   
 322   2           /*GetConfiguration;*/}//;讀配置值

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91偷拍与自偷拍精品| 蜜臂av日日欢夜夜爽一区| 性做久久久久久| 蜜桃av一区二区三区| 成人高清免费观看| 欧美在线不卡一区| 日韩美女视频在线| 最新国产の精品合集bt伙计| 亚洲一区二区三区爽爽爽爽爽| 日韩成人精品在线| 成人免费视频一区| 欧美日韩国产精选| 中文字幕国产精品一区二区| 亚洲第一精品在线| 国产高清不卡一区二区| 欧美视频在线观看一区| 国产日韩av一区| 亚洲成人精品一区二区| 国产精品99精品久久免费| 欧美日韩一区小说| 日本一区二区三级电影在线观看| 亚洲黄色尤物视频| 国产一区二区三区电影在线观看| 色哟哟在线观看一区二区三区| 欧美电影免费观看高清完整版在| 亚洲欧美日韩电影| 久久99久国产精品黄毛片色诱| 日本高清成人免费播放| 久久久精品天堂| 五月婷婷欧美视频| 本田岬高潮一区二区三区| 欧美一区二区三区在线观看视频| 亚洲日本va在线观看| 国产自产高清不卡| 欧美日韩不卡一区二区| 亚洲欧美一区二区三区孕妇| 久久97超碰色| 欧美精品久久久久久久多人混战| 国产精品久久午夜夜伦鲁鲁| 久久精品国产一区二区| 欧美视频一区二区三区四区| 国产精品―色哟哟| 国产一区二区三区精品视频 | 综合婷婷亚洲小说| 国精产品一区一区三区mba视频| 欧美日韩国产影片| 亚洲精品一二三四区| 成人av网站在线| 国产视频不卡一区| 久久av资源网| 884aa四虎影成人精品一区| 一区二区三区四区蜜桃| k8久久久一区二区三区| 久久久精品国产免费观看同学| 秋霞国产午夜精品免费视频| 欧美三级电影网| 亚洲午夜久久久久久久久电影院| av在线不卡观看免费观看| 久久亚洲综合色一区二区三区| 免费成人在线视频观看| 欧美一级淫片007| 婷婷一区二区三区| 欧美日韩不卡在线| 午夜精品久久久久久久久久| 精品视频1区2区3区| 一区二区三区在线免费观看 | 一区av在线播放| 91在线无精精品入口| 亚洲图片欧美激情| 色综合久久久久综合| 亚洲视频一区二区在线| 色婷婷国产精品久久包臀| 中文字幕一区在线观看| 91在线视频18| 亚洲精品视频在线观看免费| 一本大道久久a久久精品综合| 日韩久久一区二区| 欧洲人成人精品| 亚洲国产精品久久人人爱蜜臀| 欧美色图在线观看| 日本不卡视频在线观看| 精品人在线二区三区| 国产伦精品一区二区三区视频青涩 | 欧美在线三级电影| 天天色天天操综合| 欧美电影免费观看高清完整版在| 狠狠色狠狠色综合系列| 日本一区二区三区免费乱视频| 不卡的电影网站| 一区二区在线观看视频| 欧美日韩亚洲高清一区二区| 日本强好片久久久久久aaa| 精品欧美一区二区在线观看| 国产v综合v亚洲欧| 亚洲视频在线一区| 欧美人妖巨大在线| 久久激情五月激情| 中文字幕精品—区二区四季| 91丨九色porny丨蝌蚪| 亚洲一区影音先锋| 日韩三级高清在线| 国产成人一级电影| 亚洲免费色视频| 欧美高清性hdvideosex| 韩国精品主播一区二区在线观看 | 久久国产乱子精品免费女| 久久久久久电影| 色乱码一区二区三区88 | 欧美精品一区二区三区高清aⅴ| 成人夜色视频网站在线观看| 亚洲九九爱视频| 欧美一级片在线看| 丁香五精品蜜臀久久久久99网站| 亚洲日本va午夜在线电影| 欧美精品三级在线观看| 国产九色精品成人porny| 亚洲激情图片小说视频| 日韩欧美国产一二三区| 成人午夜视频免费看| 亚洲国产精品久久不卡毛片 | 亚洲成人av福利| 欧美成人a∨高清免费观看| 国产不卡高清在线观看视频| 一区二区三区四区不卡在线| 精品1区2区在线观看| 欧洲色大大久久| 国产精品一二三区| 亚洲成人精品一区| 国产精品免费看片| 欧美剧在线免费观看网站 | 欧美国产一区二区在线观看| 欧美午夜电影网| 国产不卡一区视频| 热久久免费视频| 亚洲天堂福利av| 久久久久国产成人精品亚洲午夜| 在线观看视频一区| 成人v精品蜜桃久久一区| 秋霞电影网一区二区| 亚洲精品免费在线| 久久精品欧美一区二区三区不卡 | 日韩精品一二三四| 中文欧美字幕免费| 精品电影一区二区三区| 欧美色图免费看| 99久久国产综合精品色伊| 精品综合免费视频观看| 亚洲一区在线视频| **欧美大码日韩| 国产欧美日韩麻豆91| 欧美一级一区二区| 欧美剧情片在线观看| 97精品视频在线观看自产线路二| 国产乱码精品一区二区三区忘忧草 | 久久国产尿小便嘘嘘尿| 亚洲第一会所有码转帖| 日韩伦理免费电影| 久久久精品2019中文字幕之3| 欧美精品v日韩精品v韩国精品v| 一本到高清视频免费精品| 高清不卡在线观看| 国产乱码精品1区2区3区| 久久电影网站中文字幕| 日本午夜精品一区二区三区电影 | 欧洲色大大久久| 91美女视频网站| 99久久精品国产毛片| 高清不卡一区二区在线| 国产毛片一区二区| 国产在线精品不卡| 久久av中文字幕片| 久久国产精品99精品国产| 日韩综合一区二区| 午夜不卡av在线| 午夜精品一区二区三区免费视频| 亚洲综合久久久久| 亚洲国产综合人成综合网站| 亚洲影视在线播放| 亚洲成人在线观看视频| 亚洲一区二区欧美激情| 亚洲成在人线在线播放| 亚洲一区二区三区自拍| 一区二区三区**美女毛片| 亚洲欧美偷拍另类a∨色屁股| 中文字幕中文字幕一区| 亚洲色欲色欲www| 亚洲男人天堂av网| 亚洲一区二区三区四区五区黄| 亚洲国产欧美在线| 日韩在线一二三区| 精品一区二区精品| 国产精品伊人色| 成人黄色电影在线 | 亚洲香肠在线观看| 午夜伊人狠狠久久| 另类成人小视频在线| 精品一区二区综合| 国产成a人无v码亚洲福利| 97久久超碰国产精品| 欧美午夜影院一区|