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

📄 protozlg.lst

📁 D12的驱动程序
💻 LST
字号:
C51 COMPILER V7.08   PROTOZLG                                                              03/11/2005 10:40:00 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE PROTOZLG
OBJECT MODULE PLACED IN Protozlg.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Protozlg.c OPTIMIZE(2,SPEED) DEBUG OBJECTEXTEND

line level    source

   1          /*
   2             //*************************************************************************
   3             //
   4             //                           ZLGMCU
   5             //                           www.zlgmcu.com
   6             // File Name:        ISR.C
   7             // Revision:         V0.2(2002-04-08)
   8             // Use library:      USB51S.LIB
   9             // Note:             USB51S.LIB不带DMA控制功能
  10             //*************************************************************************
  11             */
  12          
  13          #include <stdio.h>
  14          #include <string.h>
  15          #include <reg51.h>                /* special function register declarations   */
  16          #include "isr.h"
  17          #include "mainloop.h"
  18          #include "protozlg.h"
  19          #include "absacc.h"
  20          extern CONTROL_XFER ControlData;
  21          extern IO_REQUEST idata ioRequest;
  22          extern EPPFLAGS bEPPflags;
  23          extern unsigned char idata EpBuf[];
  24          
  25          #define D12_COMMAND             XBYTE[0x7003]   //right
  26          #define D12_DATA                XBYTE[0x7002]
  27          
  28          void get_firmware_version()
  29          {
  30   1              unsigned char i;
  31   1      
  32   1              i = 0x30; // firmware version number
  33   1              single_transmit((unsigned char *)&i, 1);
  34   1      }
  35          
  36          void get_buffer_size()
  37          {
  38   1              unsigned char i[4];
  39   1      
  40   1              i[0] = EP2_PACKET_SIZE;
  41   1              i[1] = 0;
  42   1              i[2] = 0;
  43   1              i[3] = 0;
  44   1              single_transmit((unsigned char *)&i, 4);
  45   1      }
  46          
  47          void read_write_register(void)
  48          {
  49   1              unsigned char i;
  50   1              if(ControlData.DeviceRequest.bmRequestType & (unsigned char)USB_ENDPOINT_DIRECTION_MASK) {
  51   2                      if(ControlData.DeviceRequest.wIndex == GET_FIRMWARE_VERSION &&
  52   2                              ControlData.DeviceRequest.wValue == 0 &&
  53   2                              ControlData.DeviceRequest.wLength == 1)
  54   2                              get_firmware_version();
  55   2                      else
C51 COMPILER V7.08   PROTOZLG                                                              03/11/2005 10:40:00 PAGE 2   

  56   2                      if(ControlData.DeviceRequest.wIndex == GET_BUFFER_SIZE &&
  57   2                              ControlData.DeviceRequest.wValue == 0 &&
  58   2                              ControlData.DeviceRequest.wLength == 4)
  59   2                              get_buffer_size();
  60   2                      else
  61   2                              stall_ep0();
  62   2      
  63   2              }       // if read register
  64   1              else{
  65   2                      if(ControlData.DeviceRequest.wIndex == SETUP_DMA_REQUEST &&
  66   2                              ControlData.DeviceRequest.wValue == 0 &&
  67   2                              ControlData.DeviceRequest.wLength == 6)
  68   2                              {       
  69   3                                      if(ControlData.dataBuffer[5]==0x81)
  70   3                                              {
  71   4                                                      D12_COMMAND = 0x05;
  72   4                                      //              D12_COMMAND = 0x04;
  73   4                                      //              D12_DATA;
  74   4                                                      D12_COMMAND = 0xF0;
  75   4                                                      D12_DATA = 0;
  76   4                                                      D12_DATA = 64;
  77   4                                                      for(i=0;i<128;i++)      D12_DATA = i;
  78   4                                                      D12_COMMAND = 0xFA;
  79   4                                              }
  80   3      //                              D12_WriteEndpoint(5, ControlData.dataBuffer[3], EpBuf);
  81   3                                      single_transmit(0, 0);
  82   3                              }
  83   2                      else
  84   2                              stall_ep0();
  85   2              }       // if write register
  86   1      }


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