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

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

?? chap_9.lst

?? 在80C51上實現USB2.0功能的源碼
?? LST
?? 第 1 頁 / 共 5 頁
字號:
 574   2                              {
 575   3                                      D14_Cntrl_Reg.D14_CONTROL_FUNCTION.BITS.STALL = 1;
 576   3                                      while(!USB_Int_Flag.BITS.EP0SETUP)
 577   3                                      {
 578   4                                              //讀取ISP1581中斷寄存器
 579   4                                              USB_Int_Flag.VALUE |= D14_Cntrl_Reg.D14_INT.VALUE;
 580   4                                              //回寫ISP1581中斷寄存器
 581   4                                              D14_Cntrl_Reg.D14_INT.VALUE = USB_Int_Flag.VALUE;
 582   4                                              if(USB_Int_Flag.BITS.SUSP || USB_Int_Flag.BITS.RESET)
 583   4                                                      return;
 584   4                                      }
 585   3                                      USB_Int_Flag.BITS.EP0TX = 0;
 586   3                              }
 587   2                              else
 588   2                              {
 589   3                                      Descriptor_Ptr = &Bulk_Out_Descriptor[0]; //set pointer to Bulk Out endpoint descriptor
 590   3                                      count = *Descriptor_Ptr;        //read in descriptor length
 591   3                                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 1;
 592   3                                      if(count >= USB_Device_Request.wLength)
 593   3                                      {
 594   4                                              Temp = USB_Device_Request.wLength;
 595   4                                              //send endpoint descriptor
 596   4                                              D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB = (UC) Temp;
 597   4                                              D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = (UC) (Temp >> 8);
 598   4                                              for(count = 0 ; count < USB_Device_Request.wLength ; count++)
 599   4                                              {
 600   5                                                      D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 601   5                                                      Descriptor_Ptr++;
 602   5                                              }
 603   4                                              wait_ep0tx();
 604   4                                              ep0out_ack();
 605   4                                      }
 606   3                                      else
 607   3                                      {
 608   4                                              USB_Device_Request.wLength -= count; //send Endpoint descriptor
 609   4                                              Temp += count;
 610   4                                              while(count != 0)
 611   4                                              {
 612   5                                                      D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 613   5                                                      count--;
C51 COMPILER V7.06   CHAP_9                                                                07/02/2003 10:05:13 PAGE 11  

 614   5                                                      Descriptor_Ptr++;
 615   5                                              }
 616   4                                              Descriptor_Ptr = &Bulk_In_Descriptor[0]; //set pointer to Bulk In endpoint descriptor
 617   4                                              count = *Descriptor_Ptr;        //read in descriptor length
 618   4                                              if(count >= USB_Device_Request.wLength)
 619   4                                              {
 620   5                                                      Temp += USB_Device_Request.wLength;
 621   5                                                      //send endpoint descriptor
 622   5                                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB = (UC) Temp;
 623   5                                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = (UC) (Temp >> 8);
 624   5                                                      for(count = 0 ; count < USB_Device_Request.wLength ; count++)
 625   5                                                      {
 626   6                                                              D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 627   6                                                              Descriptor_Ptr++;
 628   6                                                      }
 629   5                                                      wait_ep0tx();
 630   5                                                      ep0out_ack();
 631   5                                              }
 632   4                                              else
 633   4                                              {
 634   5                                                      USB_Device_Request.wLength -= count; //send Endpoint descriptor
 635   5                                                      Temp += count;
 636   5                                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB = (UC) Temp;
 637   5                                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = (UC) (Temp >> 8);
 638   5                                                      while(count != 0)
 639   5                                                      {
 640   6                                                              D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 641   6                                                              count--;
 642   6                                                              Descriptor_Ptr++;
 643   6                                                      }
 644   5                                                      wait_ep0tx();
 645   5                                                      ep0out_ack();
 646   5                                              }       
 647   4                                      }                                       
 648   3                              }
 649   2                              break;
 650   2                              
 651   2                      case  6:  //獲取設備限制描述符
 652   2                              Descriptor_Ptr = &HS_Device_Qualifier[0];               //set pointer to High Speed device descriptor
 653   2                              count = *Descriptor_Ptr;                                                        //read in descriptor length
 654   2                              D14_Cntrl_Reg.D14_ENDPT_INDEX = 1;
 655   2                              if(USB_Device_Request.wLength < count)
 656   2                              {
 657   3                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB = (UC) USB_Device_Request.wLength;
 658   3                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = 0;
 659   3                                      count = USB_Device_Request.wLength;
 660   3                              }
 661   2                              else
 662   2                              {
 663   3                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB = count;
 664   3                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = 0;
 665   3                              }
 666   2                              while(count != 0)
 667   2                              {
 668   3                                      D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;      //fill up FIFO
 669   3                                      Descriptor_Ptr++;
 670   3                                      count--;
 671   3                              };
 672   2                              wait_ep0tx();
 673   2                              ep0out_ack();
 674   2                              break;
 675   2                              
C51 COMPILER V7.06   CHAP_9                                                                07/02/2003 10:05:13 PAGE 12  

 676   2                      case  7  ://獲取速度配置描述符
 677   2                              Temp = 64;
 678   2                              Descriptor_Ptr = &Other_Speed_Config_Descriptor[0];     //set pointer to configuration descriptor
 679   2                              count = *Descriptor_Ptr;                                                        //get configuration Descriptor length
 680   2                              D14_Cntrl_Reg.D14_ENDPT_INDEX = 1;
 681   2                              if(count >= USB_Device_Request.wLength)                         //Send only Configuration descriptor
 682   2                              {
 683   3                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB = (UC) USB_Device_Request.wLength;
 684   3                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = (UC) (USB_Device_Request.wLength >> 8);
 685   3                                      for(count = 0 ; count < USB_Device_Request.wLength ; count++)
 686   3                                      {
 687   4                                              D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 688   4                                              Descriptor_Ptr++;
 689   4                                      }
 690   3                                      wait_ep0tx();
 691   3                                      ep0out_ack();
 692   3                              }
 693   2                              else //send Configuration,Interface and Endpoint descriptor
 694   2                              {
 695   3                                      if(USB_Device_Request.wLength >= 32)
 696   3                                      {
 697   4                                              while(count != 0)
 698   4                                              {
 699   5                                                      D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 700   5                                                      count--;
 701   5                                                      Descriptor_Ptr++;
 702   5                                              }
 703   4                                              Descriptor_Ptr = &Bulk_Interface_Descriptor[0]; //set pointer to interface descriptor
 704   4                                              count = *Descriptor_Ptr;        //get the descriptor count
 705   4                                              while(count != 0)
 706   4                                              {
 707   5                                                      D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 708   5                                                      count--;
 709   5                                                      Descriptor_Ptr++;
 710   5                                              }
 711   4                                              Descriptor_Ptr = &Int_In_Descriptor[0]; //set pointer to interface descriptor
 712   4                                              count = *Descriptor_Ptr;        //read in descriptor length
 713   4                                              while(count != 0)
 714   4                                              {
 715   5                                                      D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 716   5                                                      count--;
 717   5                                                      Descriptor_Ptr++;
 718   5                                              }
 719   4                                              Descriptor_Ptr = &Int_Out_Descriptor[0]; //set pointer to interface descriptor
 720   4                                              count = *Descriptor_Ptr;        //read in descriptor length
 721   4                                              while(count != 0)
 722   4                                              {
 723   5                                                      D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 724   5                                                      count--;
 725   5                                                      Descriptor_Ptr++;
 726   5                                              }
 727   4                                              Descriptor_Ptr = &Bulk_In_Descriptor[0]; //set pointer to interface descriptor
 728   4                                              count = *Descriptor_Ptr;        //read in descriptor length
 729   4                                              while(count != 0)
 730   4                                              {
 731   5                                                      D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 732   5                                                      count--;
 733   5                                                      Descriptor_Ptr++;
 734   5                                              }
 735   4                                              Descriptor_Ptr = &Bulk_Out_Descriptor[0]; //set pointer to interface descriptor
 736   4                                              count = *Descriptor_Ptr;        //read in descriptor length
 737   4                                              while(count != 0)
C51 COMPILER V7.06   CHAP_9                                                                07/02/2003 10:05:13 PAGE 13  

 738   4                                              {
 739   5                                                      D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 740   5                                                      count--;
 741   5                                                      Descriptor_Ptr++;
 742   5                                              }
 743   4                                      }                                       
 744   3                                      D14_Cntrl_Reg.D14_CONTROL_FUNCTION.BITS.VENDP = 1;      //validate FIFO
 745   3                                      wait_ep0tx();
 746   3                                      ep0out_ack();
 747   3                              }
 748   2                              break;
 749   2                              
 750   2                      case  8:  
 751   2                              break;
 752   2                              
 753   2                      default  :
 754   2                              D14_Cntrl_Reg.D14_ENDPT_INDEX = 1;
 755   2                              D14_Cntrl_Reg.D14_CONTROL_FUNCTION.BITS.STALL = 1;
 756   2                              while(!USB_Int_Flag.BITS.EP0SETUP)
 757   2                              {
 758   3                                      //讀取ISP1581中斷寄存器
 759   3                                      USB_Int_Flag.VALUE |= D14_Cntrl_Reg.D14_INT.VALUE;
 760   3                                      //回寫ISP1581中斷寄存器
 761   3                                      D14_Cntrl_Reg.D14_INT.VALUE = USB_Int_Flag.VALUE;
 762   3                                      if(USB_Int_Flag.BITS.SUSP || USB_Int_Flag.BITS.RESET)
 763   3                                              return;
 764   3                              }
 765   2                              USB_Int_Flag.BITS.EP0TX = 0;
 766   2                              break;
 767   2              }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频你懂得一区| 久久久久久久久99精品| 日韩精品一区二区三区视频| 久久综合成人精品亚洲另类欧美| 洋洋成人永久网站入口| 国产一区二区三区av电影| 欧美日韩亚洲综合在线| 久久久久久综合| 麻豆国产一区二区| 欧美在线观看一区二区| 国产日产欧美一区二区三区| 免费成人在线网站| 欧美色图12p| 日本视频免费一区| 91国偷自产一区二区开放时间 | 日韩**一区毛片| 91麻豆国产精品久久| 欧美国产一区视频在线观看| 老司机一区二区| 91精品国产品国语在线不卡| 亚洲成av人片观看| 91国内精品野花午夜精品| 国产精品久久久久久久蜜臀| 国产精品系列在线播放| 欧美精品一区二区不卡| 久久91精品久久久久久秒播| 91麻豆精品国产91久久久使用方法| 一区二区三国产精华液| 99国内精品久久| 中文字幕亚洲精品在线观看| 不卡一区在线观看| 国产精品成人一区二区三区夜夜夜| 国产成人av福利| 国产亚洲精品精华液| 91精品国产综合久久久久| 亚洲bdsm女犯bdsm网站| 欧美三级日韩三级| 日韩精品一二三区| 欧美一区二区三区色| 久久丁香综合五月国产三级网站| 日韩视频在线你懂得| 久久99精品一区二区三区三区| 日韩一级免费观看| 国产一区二区日韩精品| 国产精品乱码妇女bbbb| 91丨porny丨国产入口| 亚洲激情中文1区| 欧美特级限制片免费在线观看| 爽爽淫人综合网网站| 日韩一区二区高清| 成人中文字幕合集| 一区二区三区在线不卡| 欧美精品高清视频| 国产综合色在线| 国产精品第一页第二页第三页| 欧洲一区二区三区免费视频| 日本aⅴ免费视频一区二区三区| 日韩欧美一区二区视频| 粉嫩av一区二区三区在线播放| 1000部国产精品成人观看| 欧美日韩电影在线| 国内不卡的二区三区中文字幕| 国产欧美一区二区精品忘忧草| 91色乱码一区二区三区| 奇米精品一区二区三区四区| 中文在线免费一区三区高中清不卡| 91黄色激情网站| 激情深爱一区二区| 亚洲丝袜另类动漫二区| 欧美一区二区三区喷汁尤物| 成人免费高清在线观看| 天天av天天翘天天综合网色鬼国产| 久久久久久久久蜜桃| 日本道精品一区二区三区| 久久精品国产99久久6| 亚洲欧美日韩国产成人精品影院| 欧美一区二区久久久| 91影院在线免费观看| 久久爱www久久做| 樱桃视频在线观看一区| 久久久精品天堂| 欧美理论电影在线| 99精品在线免费| 国产一区999| 偷拍与自拍一区| 亚洲精品一二三| 久久免费美女视频| 91精品麻豆日日躁夜夜躁| 91老师片黄在线观看| 国产福利一区二区| 日本高清不卡在线观看| 国产乱人伦偷精品视频免下载| 日韩黄色小视频| 亚洲免费观看高清在线观看| 日本一区二区高清| 欧美精品一区二区三区高清aⅴ | 欧美xxxxx牲另类人与| 色婷婷精品久久二区二区蜜臀av| 久久国内精品自在自线400部| 性久久久久久久| 亚洲激情自拍偷拍| 最新日韩在线视频| 亚洲国产精品成人综合| 久久嫩草精品久久久久| 日韩美女一区二区三区四区| 欧美疯狂做受xxxx富婆| 欧美天堂一区二区三区| 在线观看国产日韩| 91色视频在线| 色综合中文字幕国产| 波多野结衣欧美| 国产麻豆欧美日韩一区| 久久国产精品免费| 久久99精品国产.久久久久| 日韩不卡一区二区三区| 欧美aaaaa成人免费观看视频| 午夜不卡av在线| 免费久久99精品国产| 美女在线视频一区| 久久成人麻豆午夜电影| 精品一区二区三区在线观看 | 国产精品每日更新在线播放网址| 国产午夜精品久久久久久久| 国产欧美一区二区三区鸳鸯浴| 久久九九影视网| 国产精品免费看片| 亚洲日本护士毛茸茸| 亚洲自拍偷拍麻豆| 日韩精品一卡二卡三卡四卡无卡| 麻豆成人av在线| 国产精品白丝av| 99久久777色| 欧美少妇性性性| 日韩欧美一区二区在线视频| 久久综合久久综合久久综合| 欧美国产精品久久| 亚洲综合一区二区| 天堂av在线一区| 国产精品99精品久久免费| 99国产精品99久久久久久| 精品污污网站免费看| 日韩欧美在线123| 国产精品视频看| 亚洲成人午夜电影| 国产专区综合网| 91免费观看视频| 欧美一区二区三区视频| 国产精品三级视频| 天涯成人国产亚洲精品一区av| 国产精品一级片在线观看| 色8久久人人97超碰香蕉987| 日韩精品一区二区三区视频播放| 久草这里只有精品视频| 粉嫩av一区二区三区| 欧美日韩五月天| 欧美国产欧美综合| 日本不卡的三区四区五区| 不卡的看片网站| 欧美一级一区二区| 亚洲欧美日韩国产综合在线| 久久99最新地址| 欧洲av一区二区嗯嗯嗯啊| 2019国产精品| 亚洲高清久久久| 成人美女在线观看| 91精品欧美一区二区三区综合在| 中文字幕日本不卡| 极品少妇xxxx精品少妇| 欧美熟乱第一页| 中文字幕在线一区免费| 美国av一区二区| 欧美性videosxxxxx| 中文字幕一区二区三区不卡 | 成人app软件下载大全免费| 日韩一区二区中文字幕| 亚洲激情在线播放| kk眼镜猥琐国模调教系列一区二区| 日韩欧美中文字幕精品| 亚洲18色成人| 在线免费观看日韩欧美| 国产精品成人一区二区艾草| 国产精品2024| 精品国产不卡一区二区三区| 日韩高清一区在线| 欧美日韩亚洲高清一区二区| 一区二区三区欧美| 99视频精品在线| 欧美经典一区二区| 欧美一级淫片007| 一二三区精品视频| 在线观看一区不卡| 亚洲视频一二区| 97久久超碰国产精品电影| 国产精品天天看| 成人综合在线观看| 国产精品网友自拍| 97久久精品人人做人人爽| 国产精品电影一区二区| 一本色道久久综合亚洲精品按摩| 国产精品久久毛片a|