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

📄 usb_driver.lst

📁 我改了一部分别人的USB,原来的不方便看逻辑
💻 LST
字号:
C51 COMPILER V7.20   USB_DRIVER                                                            09/11/2008 22:15:07 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE USB_DRIVER
OBJECT MODULE PLACED IN usb_driver.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE usb_driver.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include"usb_driver.h"
   2          #include"port.h"
   3          #include"d12_value.h"
   4          #include"d12_command.h"
   5          #include"epsetup.h"
   6          #include"epmain.h"
   7          #include"uar.h"
   8          USB_FLAGS usb_flags;
   9          INT_REG Interrupt_Register;
  10          CONTROL_DATA_BUFF Control_Data;
  11          LAST_STATUS Last_Status; 
  12          
  13          
  14          
  15          void init_usb(void) 
  16          {disp(0x00);
  17   1       disconnect_usb();         //断开USB连接
  18   1       del(1000);              //延迟
  19   1       set_addr_enable(0);
  20   1       set_endpoint_enable();            //初始化USB芯片
  21   1       usb_flags.value=0;
  22   1       connect_usb();            //连接USB
  23   1      }
  24          void usb_int(void) 
  25          {
  26   1      read_interrupt_register(); 
  27   1      if(Interrupt_Register.value!=0)
  28   1       { 
  29   2                      if(Interrupt_Register.Status.bus_reset)
  30   2                 usb_flags.Status.bus_reset = 1;                              //USB总线复位标志
  31   2      else            if(Interrupt_Register.Status.DMA_EOT )
  32   2                              dma_eot();                                                              //;DMA传输技术处理
  33   2      else            if(Interrupt_Register.Status.suspend_change)
  34   2                      usb_flags.Status.suspend = 1;                                   //挂起改变标志置1
  35   2      else            if(Interrupt_Register.Status.control_out_port)// & D12_INT_ENDP0OUT)
  36   2                              endp0_out();                                                    //控制端点接收数据处理
  37   2      else            if(Interrupt_Register.Status.control_in_port)// & D12_INT_ENDP0IN)
  38   2                              endp0_in();                                                     //控制端点发送数据处理
  39   2      else            if(Interrupt_Register.Status.port_in_1)
  40   2                              ep1_in();                                                       //端点 1发送数据处理
  41   2      else            if(Interrupt_Register.Status.port_out_1)
  42   2                              ep1_out();                                                      //端点 1接收数据处理
  43   2      else            if(Interrupt_Register.Status.main_in_port)
  44   2                              ep2_in();                                                       //端点 2发送数据处理
  45   2      else            if(Interrupt_Register.Status.main_out_port)
  46   2                              ep2_out();                                                      //端点 2接收数据处理
  47   2             }
  48   1      }
  49          void usb_serve(void) 
  50          {
  51   1              if (usb_flags.Status.setup_packet&&(!usb_flags.Status.not_end)) 
  52   1              {               //Setup包处理 
  53   2              usb_flags.Status.setup_packet = 0;
  54   2                      call_c9();                                      //调用请求处理子程序
  55   2       
C51 COMPILER V7.20   USB_DRIVER                                                            09/11/2008 22:15:07 PAGE 2   

  56   2              }//if setup_packet
  57   1      
  58   1      if (usb_flags.Status.bus_reset) {                       //USB总线复位处理
  59   2       
  60   2              usb_flags.value=0;
  61   2                      usb_bus_reset();
  62   2              } // if bus reset
  63   1      
  64   1              if (usb_flags.Status.suspend) {                 //D12挂起改变处理
  65   2                      usb_flags.Status.suspend= 0;
  66   2                      usb_bus_suspend();
  67   2              } // if suspend change
  68   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    230    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     36    ----
   IDATA SIZE       =   ----    ----
   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 + -