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

📄 main.lst

📁 STC51+PDIUSBD12 USB鼠标源代码
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  03/04/2008 13:50:52 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "CHAP_9.H"
   2          #include "d12.h"
   3          #include "uart.h"
   4          #include "ini.h"
   5          #include "mytype.h"
   6          #include "ISR.H"
   7          #define USB_INT                   P3_2
   8          extern EPPFLAGS bEPPflags;
   9          CONTROL_XFER ControlData;
  10          
  11          code void (*StandardDeviceRequest[])(void) =
  12          {
  13                  get_status,
  14                  clear_feature,
  15                  reserved,
  16                  set_feature,
  17                  reserved,
  18                  set_address,
  19                  get_descriptor,
  20                  reserved,
  21                  get_configuration,
  22                  set_configuration,
  23                  get_interface,
  24                  set_interface,
  25                  reserved,
  26                  reserved,
  27                  reserved,
  28                  reserved
  29          };
  30          //用户厂商请求
  31          code void (*VendorDeviceRequest[])(void) =
  32          {
  33                  reserved,
  34                  reserved,
  35                  reserved,
  36                  reserved,
  37                  reserved,
  38                  reserved,
  39                  reserved,
  40                  reserved,
  41                  reserved,
  42                  reserved,
  43                  reserved,
  44                  reserved,
  45                  reserved,
  46                  reserved,
  47                  reserved,
  48                  reserved
  49          };
  50          /*void help_devreq(unsigned char typ, unsigned char req)
  51          {
  52                  typ >>= 5;
  53          
  54                  if(typ == USB_STANDARD_REQUEST) {
  55                  }
C51 COMPILER V8.02   MAIN                                                                  03/04/2008 13:50:52 PAGE 2   

  56                  else {
  57                          if(bEPPflags.bits.verbose)
  58                                  printf("Request Type = %s, bRequest = 0x%bx.\n", _NAME_USB_REQUEST_TYPE[typ],
  59                                          req);
  60                  }
  61          }*/                                
  62          //请求处理子程序
  63          void control_handler()
  64          {
  65   1              unsigned char type, req;
  66   1      
  67   1              type = ControlData.DeviceRequest.bmRequestType & USB_REQUEST_TYPE_MASK;
  68   1              req = ControlData.DeviceRequest.bRequest & USB_REQUEST_MASK;
  69   1              Prints("\r\nbmRequestType=");
  70   1              PrintShortIntHex(ControlData.DeviceRequest.bmRequestType);
  71   1              Prints("\r\nbRequest=");
  72   1              PrintShortIntHex(ControlData.DeviceRequest.bRequest);
  73   1      
  74   1              //help_devreq(type, req); //显示设备请求
  75   1      
  76   1              if (type == USB_STANDARD_REQUEST)
  77   1                      (*StandardDeviceRequest[req])();//调用标准请求
  78   1              else if (type == USB_VENDOR_REQUEST)
  79   1                      (*VendorDeviceRequest[req])();//调用厂商请求
  80   1              else
  81   1                      stall_ep0();
  82   1      }
  83          
  84          void main(void)
  85          {
  86   1        
  87   1        InitUART();  //串口初始化
  88   1        Printc(0x0c);  //清屏
  89   1        Printc(0x0c);
  90   1        Prints("系统启动.\r\n");
  91   1        disconnect_usb();        //断开USB连接
  92   1        delay(1000);         //延迟 
  93   1        init_usb();              //初始化USB芯片
  94   1        bEPPflags.value = 0;
  95   1        connect_usb();                   //连接USB
  96   1        while(1)
  97   1        {
  98   2          if(!USB_INT)
  99   2               {
 100   3                 Prints("interrupt");
 101   3                 fn_usb_isr();
 102   3               }
 103   2              if(bEPPflags.bits.setup_packet)
 104   2               {
 105   3                 bEPPflags.bits.setup_packet=0;
 106   3                 control_handler();
 107   3      
 108   3               }
 109   2              if(bEPPflags.bits.bus_reset)
 110   2               {
 111   3                 EA=0;
 112   3                 bEPPflags.bits.bus_reset=0;
 113   3                 EA=1;
 114   3               }
 115   2              if(bEPPflags.bits.suspend)
 116   2               {
 117   3                 EA=0;
C51 COMPILER V8.02   MAIN                                                                  03/04/2008 13:50:52 PAGE 3   

 118   3                 bEPPflags.bits.suspend=0;
 119   3                 EA=1;
 120   3      
 121   3               }
 122   2        }      
 123   1       }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    219    ----
   CONSTANT SIZE    =    147    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     31       2
   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 + -