⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb.lst

📁 ATMEL AT89C51SND1 IDE TO USB READER
💻 LST
📖 第 1 页 / 共 4 页
字号:
 703   5                                              while (!(Usb_send_data_complete()));
 704   5                                              Usb_clear_TXCMPL_bit();
 705   5                                              break;
C51 COMPILER V7.50   USB                                                                   11/03/2008 13:09:02 PAGE 13  

 706   5                                      }
 707   4                              case 0x01:
 708   4                                      {
 709   5      
 710   5                                              Usb_sel_ep(1);
 711   5                                              Usb_clear_STALLRQ_bit();
 712   5                                              Usb_set_EP1RST();
 713   5                                              Usb_clr_EP1RST();
 714   5                                              ep_status[1] =0x00; 
 715   5                                              Usb_sel_ep(0);
 716   5                                              Usb_clr_rxsetup_bit();
 717   5                                              Usb_set_TXRDY_bit();    
 718   5                                              while (!(Usb_send_data_complete()));
 719   5                                              Usb_clear_TXCMPL_bit();
 720   5                                              break;
 721   5                                      }
 722   4                              case 0x02:
 723   4                                      {
 724   5      
 725   5                                              Usb_sel_ep(2);
 726   5                                              Usb_clear_STALLRQ_bit();
 727   5                                              Usb_set_EP2RST();
 728   5                                              Usb_clr_EP2RST();
 729   5                                              ep_status[2] = 0x00;
 730   5                                              Usb_sel_ep(0);
 731   5                                              Usb_clr_rxsetup_bit();
 732   5                                              Usb_set_TXRDY_bit();    
 733   5                                              while (!(Usb_send_data_complete()));
 734   5                                              Usb_clear_TXCMPL_bit();
 735   5                                              break;
 736   5                                      }
 737   4                              default:
 738   4                                      {
 739   5                                              Usb_clr_rxsetup_bit();
 740   5                                              Usb_set_STALLRQ_bit();
 741   5                                              while (!(Usb_stall_sent_complete()));
 742   5                                              Usb_clear_STALLRQ_bit();
 743   5                                              break;
 744   5                                      }
 745   4                              }
 746   3                      }
 747   2              }
 748   1      
 749   1      }
 750          
 751          /**************************************************************************
 752          *                                                                                                         
             -                        
 753          *  Function Name:usb_set_feature                                                                          
             -     
 754          *                                                                                                         
             -                 
 755          *  Descriptions:                                                       
 756          *                                                                        
 757          *  Arguments:                                                           
 758          *                                                                       
 759          *  Returns: None                                                         
 760          *                                          
 761          **************************************************************************/
 762          void usb_set_feature (void)
 763          {
 764   1      
C51 COMPILER V7.50   USB                                                                   11/03/2008 13:09:02 PAGE 14  

 765   1      
 766   1              if (UsbCtrlCmd.bmRequestType == 0x00)
 767   1              {
 768   2                      Usb_clr_rxsetup_bit();
 769   2                      Usb_set_STALLRQ_bit();
 770   2                      while (!(Usb_stall_sent_complete()));
 771   2                      Usb_clear_STALLRQ_bit();
 772   2              }
 773   1              if (UsbCtrlCmd.bmRequestType == 0x01)
 774   1              {
 775   2      
 776   2                      Usb_clr_rxsetup_bit();
 777   2                      Usb_set_STALLRQ_bit();
 778   2                      while (!(Usb_stall_sent_complete()));
 779   2                      Usb_clear_STALLRQ_bit();
 780   2              }
 781   1      
 782   1      
 783   1              if (UsbCtrlCmd.bmRequestType == 0x02)
 784   1              {
 785   2      
 786   2                      if ((UsbCtrlCmd.wValue&0xff) == 0x00)/*feature selector*/
 787   2                      {
 788   3      
 789   3      
 790   3                              switch (UsbCtrlCmd.wIndex & 0x7f) // check wIndex 
 791   3                              {
 792   4                              case 0x01:
 793   4                                      {
 794   5                                              Usb_sel_ep(1);
 795   5                                              Usb_set_STALLRQ_bit();
 796   5                                              Usb_sel_ep(0);
 797   5                                              ep_status[1] = 0x01;
 798   5                                              Usb_clr_rxsetup_bit();
 799   5                                              Usb_set_TXRDY_bit();
 800   5                                              while (!(Usb_send_data_complete()));
 801   5                                              Usb_clear_TXCMPL_bit();
 802   5                                              break;
 803   5                                      }
 804   4                              case 0x02:
 805   4                                      {
 806   5                                              Usb_sel_ep(2);
 807   5                                              Usb_set_STALLRQ_bit();
 808   5                                              Usb_sel_ep(0);
 809   5                                              ep_status[2] = 0x01;
 810   5                                              Usb_clr_rxsetup_bit();
 811   5                                              Usb_set_TXRDY_bit();
 812   5                                              while (!(Usb_send_data_complete()));
 813   5                                              Usb_clear_TXCMPL_bit();
 814   5                                              break;
 815   5                                      }
 816   4                              default:
 817   4                                      {
 818   5      
 819   5                                              break;
 820   5                                      }
 821   4                              }
 822   3                      }
 823   2              }
 824   1      }
 825          
 826          /**************************************************************************
C51 COMPILER V7.50   USB                                                                   11/03/2008 13:09:02 PAGE 15  

 827          *                                                                                                         
             -                        
 828          *  Function Name:usb_get_status                                                                           
             -    
 829          *                                                                                                         
             -                 
 830          *  Descriptions:                                                       
 831          *                                                                        
 832          *  Arguments:                                                           
 833          *                                                                       
 834          *  Returns: None                                                         
 835          *                                          
 836          **************************************************************************/
 837          void usb_get_status (void)
 838          {
 839   1      
 840   1      
 841   1              UINT8 wIndex;
 842   1              Usb_clr_rxsetup_bit();
 843   1              Usb_set_DIR_bit();
 844   1              switch(UsbCtrlCmd.bmRequestType) 
 845   1              {
 846   2              case 0x80:
 847   2                      {
 848   3                              UEPDATX = 0x01;
 849   3                              break;
 850   3                      }
 851   2              case 0x81:
 852   2                      {
 853   3      
 854   3                              UEPDATX = 0x00;
 855   3                              break;
 856   3                      }
 857   2              case 0x82:
 858   2                      {
 859   3                              wIndex = UsbCtrlCmd.wIndex & 0x7f;
 860   3                              UEPDATX = ep_status[wIndex];
 861   3                              break;
 862   3                      }
 863   2              }
 864   1              UEPDATX = 0x00;
 865   1              Usb_set_TXRDY_bit();
 866   1              while ((!(Usb_send_data_complete())) || (Usb_setup_packet_receive()));
 867   1              Usb_clear_TXCMPL_bit();
 868   1              while ((!(Usb_receive_out_data())) || (Usb_setup_packet_receive()));
 869   1              Usb_clear_DIR_bit();                  
 870   1              Usb_clear_RXOUTB0_bit();
 871   1      
 872   1      }
 873          
 874          /**************************************************************************
 875          *                                                                                                         
             -                        
 876          *  Function Name:hid_set_idle                                                                             
             - 
 877          *                                                                                                         
             -                 
 878          *  Descriptions:                                                       
 879          *                                                                        
 880          *  Arguments:                                                           
 881          *                                                                       
 882          *  Returns: None                                                         
C51 COMPILER V7.50   USB                                                                   11/03/2008 13:09:02 PAGE 16  

 883          *                                          
 884          **************************************************************************/
 885          void hid_set_idle(void)
 886          {
 887   1      
 888   1      
 889   1              Usb_clear_DIR_bit();
 890   1              Usb_clr_rxsetup_bit();
 891   1              Usb_set_TXRDY_bit();
 892   1              while (!(Usb_send_data_complete()));
 893   1              Usb_clear_TXCMPL_bit();
 894   1      }
 895          
 896          /**************************************************************************
 897          *                                                                                                         
             -                        
 898          *  Function Name:usb_get_max_lun                                                                          
             -    
 899          *                                                                                                         
             -                 
 900          *  Descriptions:                                                       
 901          *                                                                        
 902          *  Arguments:                                                           
 903          *                                                                       
 904          *  Returns: None                                                         
 905          *                                          
 906          **************************************************************************/
 907          void usb_get_max_lun(void)
 908          {
 909   1      
 910   1              Usb_clr_rxsetup_bit();
 911   1              Usb_set_DIR_bit();
 912   1              UEPDATX = 0x00;
 913   1              Usb_set_TXRDY_bit();
 914   1              while ((!(Usb_send_data_complete())) || (Usb_setup_packet_receive()));
 915   1              Usb_clear_TXCMPL_bit();
 916   1              while ((!(Usb_receive_out_data())) || (Usb_setup_packet_receive()));
 917   1              Usb_clear_DIR_bit();                  
 918   1              Usb_clear_RXOUTB0_bit();
 919   1      
 920   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1106    ----
   CONSTANT SIZE    =    191    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       5
   IDATA SIZE       =      3    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -