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

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

?? chap_9.lst

?? 在80C51上實現USB2.0功能的源碼
?? LST
?? 第 1 頁 / 共 5 頁
字號:
 186   1              //端點0接收到setup包處理      
 187   1              if(USB_Int_Flag.BITS.EP0SETUP)
 188   1              {
 189   2                      EA_DISABLE;
 190   2                      USB_Setup();
 191   2                      EA_ENABLE;
 192   2              }
 193   1              
 194   1              //掛起處理
 195   1              if(USB_Int_Flag.BITS.SUSP)
 196   1              {               
 197   2                      //清除掛起標志
 198   2                      EA_DISABLE;
 199   2                      USB_Int_Flag.BITS.SUSP = 0;
 200   2                      EA_ENABLE;
 201   2                      //ISP1581進入掛起狀態           
 202   2                      D14_Cntrl_Reg.D14_MODE.BITS.GOSUSP = 1;
 203   2                      D14_Cntrl_Reg.D14_MODE.BITS.GOSUSP = 0;
 204   2              }
 205   1              
 206   1              //掛起恢復處理
 207   1              if(USB_Int_Flag.BITS.RESUME)
 208   1              {
 209   2                      //清除恢復標志
 210   2                      EA_DISABLE;
 211   2                      USB_Int_Flag.BITS.RESUME = 0;         
 212   2                      EA_ENABLE;
 213   2                      //產生一個恢復信號
 214   2                      D14_Cntrl_Reg.D14_MODE.BITS.SNDRSU = 1;
 215   2                      D14_Cntrl_Reg.D14_MODE.BITS.SNDRSU = 0;
 216   2              }
 217   1              
 218   1              //高速狀態
 219   1              if(USB_Int_Flag.BITS.HS_STAT)
 220   1              {
 221   2                      //清除高速狀態標志
 222   2                      EA_DISABLE;
 223   2                      USB_Int_Flag.BITS.HS_STAT = 0;
 224   2                      EA_ENABLE;
 225   2                      if(Kernel_Flag.BITS.HS_FS_State == FULL_SPEED)
 226   2                      {
 227   3                              //切換高速指示
 228   3                              HS_FS_LED = HIGH_SPEED_LED;
 229   3                              //設置高速模式狀態
 230   3                              Kernel_Flag.BITS.HS_FS_State = HIGH_SPEED;
 231   3                              //重新配置高速端點
 232   3                              Init_Endpoint();
 233   3      
 234   3      //                      PIO_Count = 64;
 235   3                              PIO_Count = 512;
 236   3                      }
 237   2              }
 238   1      }
 239          
 240          
 241          //***********************************************************************
C51 COMPILER V7.06   CHAP_9                                                                07/02/2003 10:05:13 PAGE 5   

 242          //*                                                                                                                                     *
 243          //*     Routine         :                                                               *
 244          //*     Input           : None                                                                                  *
 245          //*     Output          : None                                                                  *
 246          //*     Function        :                                                               *
 247          //*                                                                                                                                             *
 248          //***********************************************************************
 249          //建立包處理
 250          void USB_Setup(void)
 251          {
 252   1              unsigned char type, req;
 253   1      
 254   1              //清除EP0SETUP中斷標志
 255   1              USB_Int_Flag.BITS.EP0SETUP = 0;   
 256   1              //清除總線復位標志
 257   1              Kernel_Flag.BITS.Bus_Reset = 0;
 258   1              //選擇端點0SETUP緩沖區
 259   1              D14_Cntrl_Reg.D14_ENDPT_INDEX = 0x20;
 260   1              
 261   1              //讀取USB請求
 262   1              //讀取請求類型
 263   1              USB_Device_Request.bmRequestType =  D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 264   1              //讀取請求號
 265   1              USB_Device_Request.bRequest = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 266   1              //讀取16bit請求數據
 267   1              USB_Device_Request.wValue = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 268   1              USB_Device_Request.wValue <<= 8;
 269   1              USB_Device_Request.wValue |= D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 270   1              //讀取16bit請求索引
 271   1              USB_Device_Request.wIndex = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 272   1              USB_Device_Request.wIndex <<= 8;
 273   1              USB_Device_Request.wIndex |= D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 274   1              //讀取16bit長度
 275   1              USB_Device_Request.wLength = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 276   1              USB_Device_Request.wLength <<= 8;
 277   1              USB_Device_Request.wLength |= D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 278   1              
 279   1              //長度處理(高低8位對調)
 280   1              Temp = USB_Device_Request.wLength;
 281   1              USB_Device_Request.wLength = 0;
 282   1              USB_Device_Request.wLength = (UC) Temp;
 283   1              USB_Device_Request.wLength <<= 8;
 284   1              Temp >>= 8;
 285   1              USB_Device_Request.wLength |= Temp;
 286   1              
 287   1              type = USB_Device_Request.bmRequestType & 0x60;
 288   1              req = USB_Device_Request.bRequest & 0x0f;
 289   1      
 290   1              //廠商請求
 291   1              if (type == 0x40)
 292   1              {
 293   2                      Vendor_Specific_Command();//廠商請求處理
 294   2              }
 295   1              else if (type == 0x00)
 296   1                      (*StandardDeviceRequest[req])();//調用標準請求
 297   1      }
 298          
 299          //***********************************************************************
 300          //*                                                                                                                                     *
 301          //*     Routine         :                                                               *
 302          //*     Input           : None                                                                                  *
 303          //*     Output          : None                                                                  *
C51 COMPILER V7.06   CHAP_9                                                                07/02/2003 10:05:13 PAGE 6   

 304          //*     Function        :                                                               *
 305          //*                                                                                                                                             *
 306          //***********************************************************************
 307          //廠商請求處理
 308          void Vendor_Specific_Command(void)
 309          {
 310   1              if(USB_Device_Request.bRequest == 0x0C)
 311   1              {
 312   2                      switch (USB_Device_Request.wIndex)
 313   2                      {
 314   3                      case GET_FIRMWARE_VERSION  ://獲取固件版本
 315   3                              if(USB_Device_Request.wLength == 1)
 316   3                              {
 317   4                                      //select endpoint
 318   4                                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 1;
 319   4                                      //set the data length to 1 byte
 320   4                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB = 1;
 321   4                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = 0;
 322   4                                      //sent 0x21 as data
 323   4                                      D14_Cntrl_Reg.D14_DATA_PORT_LSB = 0x22;//版本號
 324   4                                      wait_ep0tx();
 325   4                                      ep0out_ack();
 326   4      //                              ep0in_ack();
 327   4                                      break;
 328   4                              }
 329   3                              
 330   3                      case SETUP_DMA_REQUEST :
 331   3                              //Out Token Ack detected
 332   3                              wait_ep0rx();
 333   3                              D14_Cntrl_Reg.D14_ENDPT_INDEX = 0;
 334   3                              //
 335   3                              FileSize.Size.Address[0] = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 336   3                              FileSize.Size.Address[1] = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 337   3                              FileSize.Size.Address[2] = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 338   3                              //讀取傳輸字節數
 339   3                              Temp = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 340   3                              bytecount = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 341   3                              bytecount <<= 8;
 342   3                              bytecount |= Temp;
 343   3                              //讀取傳輸方式
 344   3                              FileSize.Size.DIR = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 345   3                              ep0in_ack();
 346   3                              Kernel_Flag.BITS.Transfer_Start = 1;//標志傳輸數據開始
 347   3                              break;
 348   3                      
 349   3                      case GET_SET_EEPROM_REQUEST  ://對EEPROM操作的請求
 350   3                              //Out Token Ack detected
 351   3                              wait_ep0rx();
 352   3                              D14_Cntrl_Reg.D14_ENDPT_INDEX = 0;
 353   3                              //
 354   3                              FileSize.Size.Address[0] = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 355   3                              FileSize.Size.Address[1] = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 356   3                              FileSize.Size.Address[2] = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 357   3                              //讀取傳輸字節數
 358   3                              Temp = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 359   3                              bytecount = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 360   3                              bytecount <<= 8;
 361   3                              bytecount |= Temp;
 362   3                              bytecouter=(UC)bytecount;
 363   3                              //讀取傳輸方式
 364   3                              FileSize.Size.DIR = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 365   3                              ep0in_ack();
C51 COMPILER V7.06   CHAP_9                                                                07/02/2003 10:05:13 PAGE 7   

 366   3                              Kernel_Flag.BITS.Transfer_Start = 1;//標志傳輸數據開始
 367   3                              break;
 368   3                      default :
 369   3                              if(USB_Device_Request.bmRequestType == 0xC0)
 370   3                              {
 371   4                                      ep0in_ack();
 372   4                                      break;                          
 373   4                              }
 374   3                              if(USB_Device_Request.bmRequestType == 0x40)
 375   3                              {       
 376   4                                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 0;
 377   4                                      D14_Cntrl_Reg.D14_CONTROL_FUNCTION.BITS.STALL = 1;
 378   4                                      while(!USB_Int_Flag.BITS.EP0SETUP)
 379   4                                      {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
wwwwxxxxx欧美| 一区二区三区四区亚洲| 中文字幕一区二区三中文字幕| 一区二区三区在线视频播放| 狠狠色狠狠色综合日日91app| 国产91高潮流白浆在线麻豆| 欧美日韩精品欧美日韩精品| 中文字幕乱码一区二区免费| 男人操女人的视频在线观看欧美| 99久久er热在这里只有精品15| 日韩一二三区视频| 亚洲一区二区五区| 成人免费高清在线| 精品对白一区国产伦| 日韩影院免费视频| 在线精品视频免费播放| 自拍偷自拍亚洲精品播放| 国产乱码精品一品二品| 日韩色视频在线观看| 偷拍一区二区三区四区| 欧美天堂一区二区三区| 国产精品初高中害羞小美女文| 国产一区二区中文字幕| 日韩美女在线视频| 日韩国产在线观看| 欧美日韩mp4| 亚洲国产综合91精品麻豆| jizzjizzjizz欧美| 国产精品日韩精品欧美在线| 国产一区二区三区精品欧美日韩一区二区三区| 精品视频在线视频| 亚洲综合一区二区三区| 欧美三级中文字幕在线观看| 国产欧美一区二区三区沐欲| 韩国毛片一区二区三区| 欧美成人一区二区三区| av高清久久久| 欧美国产综合色视频| 国产精品一区免费视频| 国产欧美一区二区三区沐欲| 国产91对白在线观看九色| 国产欧美日本一区视频| 高潮精品一区videoshd| 中文字幕第一区二区| 不卡的av电影在线观看| 国产精品久久久久9999吃药| 91亚洲精华国产精华精华液| 伊人婷婷欧美激情| 欧美精品一二三区| 国产真实精品久久二三区| 久久久99精品久久| 99久久精品国产毛片| 亚洲一区二区在线视频| 日韩免费视频一区| 成人一区二区在线观看| 亚洲欧美日本在线| 337p亚洲精品色噜噜狠狠| 蜜桃av噜噜一区| 欧美国产欧美亚州国产日韩mv天天看完整 | 欧美午夜一区二区三区| 亚洲成av人片一区二区三区| 欧美zozo另类异族| 成人深夜在线观看| 五月综合激情网| 国产日韩欧美精品在线| 色国产综合视频| 久久97超碰色| 亚洲色图视频网站| 日韩免费高清av| 91香蕉视频污| 韩国av一区二区| 伊人夜夜躁av伊人久久| 欧美精品一区视频| 在线免费观看日本一区| 国产资源精品在线观看| 亚洲免费在线看| 久久影院午夜论| 欧美日产国产精品| 99久久精品费精品国产一区二区| 男女男精品视频| 亚洲乱码中文字幕| 久久一二三国产| 欧美精品自拍偷拍| 91丨九色丨尤物| 国产九色精品成人porny | 久久一日本道色综合| 色综合久久88色综合天天6| 久热成人在线视频| 亚洲人成亚洲人成在线观看图片| 日韩美一区二区三区| 欧美中文一区二区三区| 春色校园综合激情亚洲| 久久精品国产99| 日本va欧美va瓶| 亚洲午夜激情网站| 亚洲欧美色图小说| 国产精品福利av| 亚洲a一区二区| 国产精品久久久一区麻豆最新章节| 欧美久久高跟鞋激| 欧美主播一区二区三区美女| 成a人片亚洲日本久久| 国产精品一区二区在线观看网站| 秋霞午夜av一区二区三区| 亚洲一区视频在线观看视频| ...xxx性欧美| 国产精品国产三级国产普通话蜜臀| 日韩美一区二区三区| 日韩一区二区在线看片| 在线综合+亚洲+欧美中文字幕| 在线观看国产91| 欧美视频在线一区| 欧美色区777第一页| 欧洲另类一二三四区| 91香蕉视频黄| 欧美综合久久久| 欧美性猛片aaaaaaa做受| 欧美吻胸吃奶大尺度电影| 91黄色免费看| 欧美三电影在线| 日韩欧美中文字幕精品| 日韩电影免费一区| 亚洲丝袜另类动漫二区| 亚洲欧美日韩人成在线播放| 中文字幕一区二区三区乱码在线| 国产精品传媒在线| 亚洲丝袜自拍清纯另类| 亚洲在线视频一区| 亚洲午夜免费电影| 日韩精品乱码av一区二区| 日韩电影在线看| 久久精品99国产精品日本| 国模冰冰炮一区二区| 国产精品18久久久久久vr| 国内久久精品视频| 国产99久久久久| 色视频成人在线观看免| 91麻豆精品国产91久久久使用方法| 在线不卡免费av| 久久久久高清精品| 亚洲少妇30p| 日本伊人色综合网| 国产v日产∨综合v精品视频| 91成人免费电影| 日韩欧美中文字幕制服| 国产精品欧美久久久久一区二区| 曰韩精品一区二区| 久久狠狠亚洲综合| gogogo免费视频观看亚洲一| 欧美日韩激情一区二区三区| 精品久久久久99| 亚洲欧美日韩国产综合在线| 日韩av一级片| 成人va在线观看| 欧美一区二区三区白人| 国产精品久久久久影院色老大| 亚洲曰韩产成在线| 豆国产96在线|亚洲| 精品视频一区三区九区| 国产亚洲欧美中文| 午夜视频一区二区| 成人av手机在线观看| 欧美精品 日韩| 自拍视频在线观看一区二区| 青青草伊人久久| 日本高清无吗v一区| 久久久精品欧美丰满| 香蕉成人啪国产精品视频综合网| 国产乱对白刺激视频不卡| 欧美日韩在线播放三区四区| 国产精品欧美精品| 狠狠色狠狠色合久久伊人| 欧美日韩二区三区| 亚洲欧美偷拍三级| 成人性生交大片免费| 日韩免费成人网| 日韩中文字幕亚洲一区二区va在线| 成人av午夜影院| 久久久久久综合| 麻豆国产欧美日韩综合精品二区| 91美女福利视频| 国产精品久久久久一区二区三区| 老司机午夜精品| 欧美一区二区三区喷汁尤物| 亚洲午夜久久久久久久久电影院 | 午夜精品福利一区二区蜜股av| 大桥未久av一区二区三区中文| 日韩精品一区二区三区在线观看| 亚洲一区二区三区美女| 欧洲日韩一区二区三区| 亚洲人成网站影音先锋播放| 大尺度一区二区| 国产精品久久久久久一区二区三区| 久久99久久99| 日韩欧美电影一二三| 日韩va欧美va亚洲va久久| 777亚洲妇女| 日韩电影免费在线观看网站| 欧美肥大bbwbbw高潮| 日韩主播视频在线|