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

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

?? usb.lst

?? usb接口的移動硬盤
?? LST
?? 第 1 頁 / 共 3 頁
字號:
 315          
 316          unsigned char read_a_usb_data(void)                  //讀一字節USB數據
 317          {
 318   1       unsigned char temp;
 319   1       USB_A0=USB_DATA_ADD;
 320   1       USB_RD=0;
 321   1       temp=USB_DATA;
 322   1       USB_RD=1;
 323   1       return temp;
 324   1      }
 325          
 326          
 327          void read_interrupt_register(void)             //讀USB中斷寄存器
 328          {
 329   1       write_usb_command(Read_Interrupt_Register);
 330   1       Interrupt_Register[0]=read_a_usb_data();
 331   1       Interrupt_Register[1]=read_a_usb_data();
 332   1      }
 333          
 334          void set_usb_addr(unsigned char addr)          //設置USB地址
 335          {
 336   1       write_usb_command(Set_Address);
 337   1       write_a_usb_data(0x80|addr);
 338   1      }
 339          
 340          void set_endpoint_enable(void)                  //端點使能
 341          {
 342   1       write_usb_command(Set_Endpoint_Enable);
 343   1       write_a_usb_data(0x01);
 344   1      }
 345          
 346          unsigned char select_endpoint(unsigned char endp)   //選擇終端點
 347          {
 348   1       write_usb_command(Select_EndPoint+endp);
 349   1       return read_a_usb_data();
 350   1      }
 351          
 352          unsigned char  read_last_status(unsigned char endp)   //讀端點最后狀態
 353          {
 354   1       write_usb_command(Read_Last_Status+endp);
 355   1       return read_a_usb_data();
 356   1      }
 357          
 358          void set_endpoint_status(unsigned char endp,unsigned char status)  //設置端點狀態
 359          {
 360   1       write_usb_command(0x40+endp);
 361   1       write_a_usb_data(!status);
 362   1      }
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 7   

 363          
 364          unsigned char read_endpoint_status(unsigned char endp)           //讀端點狀態
 365          {
 366   1       write_usb_command(0x80+endp);
 367   1       return read_a_usb_data();
 368   1      }
 369          
 370          void clear_buffer(void)                        //清緩沖,在讀取緩沖數據后調用
 371          {
 372   1       write_usb_command(Clear_Buffer);
 373   1      }
 374          
 375          void validate_buffer(void)                    //緩沖區數據有效,在寫緩沖后調用
 376          {
 377   1       write_usb_command(Validate_Buffer);
 378   1      }
 379          
 380          void ack_setup(unsigned char endp)            //應答建立包
 381          {
 382   1       select_endpoint(endp);
 383   1       write_usb_command(Ack_Setup);
 384   1      }
 385          
 386          void error(unsigned char number)             //出錯處理
 387          {
 388   1      // unsigned char Error[]={"ERROR: "};
 389   1      // prints(Error);
 390   1      // printc(number);
 391   1       number=0;
 392   1      }
 393          
 394          unsigned char read_endpoint_buff(unsigned char endp,unsigned char len,unsigned char * buff)   //讀終端點緩
             -沖
 395          {
 396   1       unsigned char i,j;
 397   1       read_last_status(endp);
 398   1       if(!(select_endpoint(endp))&0x01){error(0); return 0;}
 399   1       read_endpoint_status(endp);
 400   1       write_usb_command(Read_Buffer);
 401   1       read_a_usb_data();
 402   1       j=read_a_usb_data();
 403   1       if(j>len)
 404   1        j=len;
 405   1       for(i=0;i<j;i++)
 406   1        {
 407   2         USB_RD=0;
 408   2         buff[i]=USB_DATA;
 409   2         USB_RD=1;
 410   2        }
 411   1       clear_buffer();
 412   1       return j;
 413   1      }
 414          
 415          unsigned char write_endpoint_buff(unsigned char endp,unsigned char len,unsigned char * buff)    //寫終端點
             -緩沖
 416          {
 417   1       unsigned char i;
 418   1       read_last_status(endp);
 419   1       select_endpoint(endp);
 420   1       write_usb_command(Write_Buffer);
 421   1       write_a_usb_data(0);
 422   1       write_a_usb_data(len);
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 8   

 423   1       for(i=0;i<len;i++)
 424   1        {
 425   2         USB_DATA=*(buff+i);
 426   2         USB_WR=0;
 427   2         USB_WR=1;
 428   2        }
 429   1       USB_DATA=0XFF;
 430   1       validate_buffer();
 431   1       return len;
 432   1      }
 433          
 434          void disconnect_usb(void)
 435          {
 436   1       write_usb_command(0xf3);
 437   1       write_a_usb_data(0x0e);
 438   1       write_a_usb_data(0x47);
 439   1       delay(100);
 440   1      }
 441          
 442          void connect_usb(void)                            //連接USB
 443          {
 444   1       write_usb_command(0xf3);                         //初始化USBD12
 445   1       write_a_usb_data(0x1e);                          //連接USB
 446   1       write_a_usb_data(0x47);                          //設置頻率
 447   1      }
 448          
 449          void init_usb(void)                              //初始化USB
 450          {
 451   1       set_usb_addr(0);
 452   1       set_endpoint_enable();
 453   1      }
 454          
 455          void usb_bus_reset(void)                         //USB總線復位處理
 456          {
 457   1      // code unsigned char Usb_Bus_Reset[]={"USB BUS RESET"};
 458   1      // prints(Usb_Bus_Reset);
 459   1       usb_flags_Register=0;
 460   1       set_endpoint_enable();
 461   1       SCSI_Command=1;
 462   1       SCSI_Data=0;
 463   1       csw.dCSWSignature=0x55534253;
 464   1      
 465   1      }
 466          
 467          void usb_bus_suspend(void)                       //USB總線掛起處理
 468          {
 469   1      // code unsigned char Usb_Bus_Suspend[]={"USB BUS SUSPEND"};
 470   1      // prints(Usb_Bus_Suspend);
 471   1      // send_to_comport(10);
 472   1      }
 473          
 474          void set_usb_address(void)                       //設置地址
 475          {
 476   1       USB_set_addr=1;
 477   1       while(select_endpoint(1)&0x01);
 478   1       write_endpoint_buff(1,0,0);
 479   1       set_usb_addr(Control_Data.DeviceRequest.wValue);
 480   1       USB_usb_endp0_in=0;
 481   1       USB_setup_packet_out=0;
 482   1      }
 483          
 484          void get_status(unsigned char receiver)           //獲取狀態響應
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 9   

 485          {
 486   1       unsigned char status[2];
 487   1       switch (receiver)
 488   1        {
 489   2         case 0:                        //獲取設備狀態
 490   2          status[0]=0x00;
 491   2          status[1]=0x00;
 492   2          break;
 493   2         case 1:                        //獲取接口狀態
 494   2          status[0]=0x00;
 495   2          status[0]=0x00;
 496   2          break;
 497   2         case 2:                        //獲取端點狀態
 498   2          status[0]=0x00;
 499   2          status[1]=0x00;
 500   2          break;
 501   2         }
 502   1        write_endpoint_buff(1,2,status);
 503   1        USB_usb_endp0_in=0;
 504   1      }
 505          
 506          void clear_feature(unsigned char receiver)    
 507          {
 508   1       receiver=0;
 509   1       write_endpoint_buff(1,0,0);
 510   1       USB_usb_endp0_in=0;
 511   1       USB_setup_packet_out=0;
 512   1      }
 513          
 514          void set_feature(unsigned char receiver)
 515          {
 516   1       receiver=0;
 517   1       write_endpoint_buff(1,0,0);
 518   1       USB_usb_endp0_in=0;
 519   1       USB_setup_packet_out=0;
 520   1      }
 521          
 522          void set_descriptor(void)
 523          {
 524   1       USB_usb_endp0_in=0;
 525   1       USB_setup_packet_out=0;
 526   1      }
 527          
 528          void set_configuration(void)
 529          {
 530   1       write_endpoint_buff(1,0,0);
 531   1       USB_usb_endp0_in=0;
 532   1       USB_setup_packet_out=0;
 533   1      }
 534          
 535          void get_configuration(void)               //獲取配置狀態
 536          {
 537   1       unsigned char value=0x01;
 538   1       write_endpoint_buff(1,1,&value);
 539   1       USB_usb_endp0_in=0;
 540   1      }
 541          
 542          void set_interface(void)                   //設置接口
 543          {
 544   1       write_endpoint_buff(1,0,0);
 545   1       USB_usb_endp0_in=0;
 546   1       USB_setup_packet_out=0;
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 10  

 547   1      }
 548          
 549          void get_interface(void)                  //獲取接口狀態
 550          {
 551   1       unsigned char value=0x01;
 552   1       write_endpoint_buff(1,1,&value);
 553   1       USB_usb_endp0_in=0;
 554   1      }
 555          
 556          void get_max_LUN(void)                   //獲取磁盤最大邏輯單元號
 557          {
 558   1       unsigned char max_LUN=MAX_LUN;          //只有一個邏輯單元
 559   1       write_endpoint_buff(1,1,&(max_LUN));
 560   1       USB_usb_endp0_in=0; 
 561   1      }
 562          
 563          void mass_storage_reset(void)            //USB大容量存儲設備復位
 564          {
 565   1       write_endpoint_buff(1,0,0);
 566   1       USB_usb_endp0_in=0;
 567   1       USB_setup_packet_out=0;
 568   1       SCSI_Command=1;
 569   1       SCSI_Data=0;
 570   1      }
 571          
 572          
 573          void get_descriptor(void)                    //獲取描述符
 574          {
 575   1          if(!USB_not_end)
 576   1           {
 577   2            switch(MSB(Control_Data.DeviceRequest.wValue))
 578   2                 {
 579   3              case DEVICE_DESCRIPTOR:
 580   3                       Control_Data.wCount=sizeof(DEVICE_DESCRIPTOR_STRUCT);
 581   3                       Control_Data.pData=(unsigned char *)(&device_descriptor);
 582   3                   break;
 583   3              case CONFIGURATION_DESCRIPTOR:
 584   3                   Control_Data.wCount=SWAP(con_int_endp_descriptor.configuration_descriptor.wTotalLength);
 585   3                               Control_Data.pData=(unsigned char *)(&con_int_endp_descriptor);
 586   3                   if(Control_Data.wLength<Control_Data.wCount)Control_Data.wCount=Control_Data.wLength;
 587   3                   break;
 588   3                      case STRING_DESCRIPTOR:
 589   3                           if(LSB(Control_Data.DeviceRequest.wValue)==0)
 590   3                                {
 591   4                                 Control_Data.wCount=LANGUAGE_ID[0];
 592   4                     Control_Data.pData=LANGUAGE_ID;
 593   4                                }
 594   3                           if(LSB(Control_Data.DeviceRequest.wValue)==2)
 595   3                                {
 596   4                                 Control_Data.wCount=device_serial_number[0];
 597   4                                 Control_Data.pData=device_serial_number;
 598   4                                }
 599   3                               break;
 600   3                      }
 601   2            if(Control_Data.wLength<Control_Data.wCount)Control_Data.wCount=Control_Data.wLength;
 602   2               }
 603   1      
 604   1          if(Control_Data.wCount>=MAX_CONTROL_DATA_SIZE)
 605   1           {
 606   2                write_endpoint_buff(1,MAX_CONTROL_DATA_SIZE,Control_Data.pData);
 607   2                Control_Data.pData+=MAX_CONTROL_DATA_SIZE;
 608   2            Control_Data.wCount-=MAX_CONTROL_DATA_SIZE;
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 11  

 609   2                if(USB_set_addr)USB_not_end=1;
 610   2                 else USB_usb_endp0_in=0;
 611   2                return;
 612   2               }
 613   1          else
 614   1           {
 615   2                write_endpoint_buff(1,Control_Data.wCount,Control_Data.pData);
 616   2            USB_setup_packet_in=0;
 617   2                USB_usb_endp0_in=0;
 618   2                return;
 619   2               }      
 620   1      }
 621          
 622          void endp0_out(void)                            //終端點0輸出中斷處理
 623          {
 624   1       Last_Status_Register=read_last_status(0);
 625   1       if(Last_Status_setup_packet)
 626   1        {
 627   2         Control_Data.wLength=0;
 628   2         Control_Data.wCount=0;
 629   2         if(read_endpoint_buff(0,sizeof(Control_Data.DeviceRequest),(unsigned char *)(&(Control_Data.DeviceReque
             -st)))!=sizeof(REQUESTCMD))
 630   2          {
 631   3               set_endpoint_status(0,0);
 632   3               set_endpoint_status(1,0);
 633   3               return;
 634   3              }
 635   2        Control_Data.DeviceRequest.wValue=SWAP(Control_Data.DeviceRequest.wValue);
 636   2        Control_Data.DeviceRequest.wIndex=SWAP(Control_Data.DeviceRequest.wIndex);
 637   2        Control_Data.DeviceRequest.wLength=SWAP(Control_Data.DeviceRequest.wLength);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美sm极限捆绑bd| 五月开心婷婷久久| 亚洲精品乱码久久久久久黑人| 亚洲国产精品尤物yw在线观看| 国产精品小仙女| 欧美狂野另类xxxxoooo| 国产精品免费视频观看| 日韩精品亚洲一区二区三区免费| 不卡视频一二三四| 欧美草草影院在线视频| 亚洲资源在线观看| 99久久久免费精品国产一区二区| 欧美一区二区不卡视频| 亚洲国产日日夜夜| 91欧美激情一区二区三区成人| www国产精品av| 美女免费视频一区| 欧美午夜一区二区三区免费大片| 国产精品国产a| 国产sm精品调教视频网站| 欧美草草影院在线视频| 亚洲动漫第一页| 欧美少妇一区二区| 日韩理论在线观看| 懂色av一区二区夜夜嗨| 国产亚洲精品久| 极品尤物av久久免费看| 欧美变态口味重另类| 麻豆成人久久精品二区三区小说| 欧美浪妇xxxx高跟鞋交| 午夜精彩视频在线观看不卡| 欧美日韩你懂得| 午夜精品久久久久影视| 欧美日产在线观看| 五月天激情小说综合| 欧美日本一区二区三区四区| 丝瓜av网站精品一区二区| 这里只有精品免费| 久久精工是国产品牌吗| 久久婷婷国产综合精品青草| 国产福利一区在线观看| 国产日韩v精品一区二区| 成人激情小说乱人伦| 亚洲欧洲在线观看av| 99久免费精品视频在线观看 | 亚洲免费av高清| 色丁香久综合在线久综合在线观看| 亚洲欧美日韩电影| 欧美主播一区二区三区美女| 亚洲第一成年网| 精品区一区二区| 成人av网址在线| 亚洲第一二三四区| 精品国产凹凸成av人网站| 高清av一区二区| 怡红院av一区二区三区| 欧美性猛片aaaaaaa做受| 日韩av电影免费观看高清完整版在线观看 | 91小视频在线观看| 亚洲一区二区影院| 日韩欧美综合一区| av在线不卡观看免费观看| 亚洲午夜精品17c| 欧美va亚洲va在线观看蝴蝶网| 成人性生交大片免费| 亚洲第一在线综合网站| 欧美电视剧免费全集观看| 成人午夜电影久久影院| 天天色综合天天| 国产日本亚洲高清| 欧美高清hd18日本| 成人网在线播放| 免费高清视频精品| 国产精品美女久久久久久2018| 欧美午夜视频网站| 国产一区二区三区国产| 亚洲成av人片在线| 国产精品国产三级国产| 日韩欧美一区电影| 97久久精品人人澡人人爽| 另类小说色综合网站| 一区2区3区在线看| 欧美激情在线观看视频免费| 欧美精品第一页| 99re热视频精品| 国产精品一区一区| 美腿丝袜亚洲综合| 亚洲午夜三级在线| 亚洲日本成人在线观看| 久久九九久精品国产免费直播| 欧美精品久久天天躁| 91网上在线视频| 成人av电影免费在线播放| 精品一区免费av| 日日噜噜夜夜狠狠视频欧美人| 亚洲三级在线免费| 久久精品视频在线免费观看| 日韩欧美一级在线播放| 欧美日韩亚洲丝袜制服| 91伊人久久大香线蕉| 成人自拍视频在线| 国产呦萝稀缺另类资源| 免播放器亚洲一区| 日精品一区二区三区| 亚洲成人免费视| 一区二区三区国产| 国产精品全国免费观看高清| 国产偷国产偷亚洲高清人白洁| 精品美女在线播放| 日韩精品中文字幕一区| 欧美一区日韩一区| 欧美高清视频在线高清观看mv色露露十八 | 日韩精品在线一区二区| 日韩精品在线一区| www久久精品| 国产精品无遮挡| 1024国产精品| 亚洲尤物在线视频观看| 亚洲国产视频a| 日本视频一区二区三区| 天天影视色香欲综合网老头| 午夜精品福利久久久| 美女视频一区在线观看| 精品在线亚洲视频| 国产精品1024久久| www.久久精品| 色偷偷久久一区二区三区| 欧美制服丝袜第一页| 欧美人妇做爰xxxⅹ性高电影| 欧美亚洲动漫精品| 91麻豆精品国产91久久久久| 日韩欧美成人激情| 日本一区二区电影| 亚洲最色的网站| 秋霞成人午夜伦在线观看| 精品一区二区三区的国产在线播放| 韩国av一区二区三区在线观看| 成人免费视频视频| 欧美在线免费视屏| 日韩一区二区三区三四区视频在线观看 | 亚洲欧美激情插| 亚洲成人tv网| 国产精品一区二区三区99| 99精品欧美一区| 在线电影国产精品| 国产丝袜美腿一区二区三区| 亚洲免费视频中文字幕| 免费成人在线观看视频| 国产成人啪免费观看软件| 91麻豆国产自产在线观看| 欧美日韩成人综合在线一区二区| www激情久久| 亚洲已满18点击进入久久| 久久99国产精品免费网站| eeuss鲁片一区二区三区在线观看| 欧美伊人久久久久久久久影院 | 一色桃子久久精品亚洲| 亚瑟在线精品视频| 成人久久视频在线观看| 欧美巨大另类极品videosbest | 亚洲成人三级小说| 国产精品一级片在线观看| 91豆麻精品91久久久久久| 欧美精品一区二区三区蜜桃| 亚洲精品国产成人久久av盗摄| 国模大尺度一区二区三区| 欧洲一区二区三区在线| 国产日韩欧美不卡在线| 美女视频网站久久| 欧美丝袜第三区| 亚洲欧美偷拍另类a∨色屁股| 国模套图日韩精品一区二区| 欧美日韩一区二区电影| 国产精品久久久久aaaa樱花| 美国三级日本三级久久99| 日本乱码高清不卡字幕| 中文字幕欧美国产| 国内久久精品视频| 91精品国产综合久久久蜜臀粉嫩| 亚洲男女一区二区三区| 国产 日韩 欧美大片| 2021中文字幕一区亚洲| 男人的天堂亚洲一区| 欧美日本一区二区在线观看| 一区二区三区精品在线观看| 不卡视频一二三四| 国产精品麻豆久久久| 粉嫩蜜臀av国产精品网站| 欧美精品一区二区三区蜜桃 | 欧美大片一区二区三区| 亚洲国产aⅴ成人精品无吗| 91国偷自产一区二区三区成为亚洲经典 | 国产精品1024| 久久亚洲二区三区| 黄色日韩网站视频| 日韩视频中午一区| 麻豆精品国产传媒mv男同| 欧美成人女星排名| 国产乱子轮精品视频| 久久久久久久久久久久久久久99 |