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

📄 protozlg.lst

📁 smart board 测试程序原代码
💻 LST
字号:
C51 COMPILER V6.14  PROTOZLG                                                               07/11/2002 13:52:52 PAGE 1   


C51 COMPILER V6.14, 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

stmt level    source

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

  56   2      			ControlData.DeviceRequest.wLength == 1)
  57   2      			get_firmware_version();
  58   2      		else
  59   2      		if(ControlData.DeviceRequest.wIndex == GET_BUFFER_SIZE &&
  60   2      			ControlData.DeviceRequest.wValue == 0 &&
  61   2      			ControlData.DeviceRequest.wLength == 4)
  62   2      			get_buffer_size();
  63   2      		else
  64   2      			stall_ep0();
  65   2      
  66   2      	}	// if read register
  67   1      	else{
  68   2      		if(ControlData.DeviceRequest.wIndex == SETUP_DMA_REQUEST &&
  69   2      			ControlData.DeviceRequest.wValue == 0 &&
  70   2      			ControlData.DeviceRequest.wLength == 6)
  71   2      			{
  72   3      				if(ControlData.dataBuffer[5]==0x81)
  73   3      				{
  74   4      					byte_cnt.byte.high = ControlData.dataBuffer[4];
  75   4      					byte_cnt.byte.low = ControlData.dataBuffer[3];
  76   4      					if(byte_cnt.word<64)
  77   4      					{
  78   5      						D12_WriteEndpoint(5, byte_cnt.byte.low, EpBuf);
  79   5      						byte_cnt.word=0;
  80   5      					}
  81   4      					else
  82   4      					{
  83   5      						byte_cnt.word=byte_cnt.word-64;
  84   5      						D12_WriteEndpoint(5, 64, EpBuf);
  85   5      					}
  86   4      				}
  87   3      				if(ControlData.dataBuffer[5]==0x82)
  88   3      				{
  89   4      //					i = D12_ReadEndpoint(4, 64, EpBuf);//读空端点2数据
  90   4      //					i = D12_ReadEndpoint(4, 64, EpBuf);
  91   4      				}
  92   3      				single_transmit(0, 0);
  93   3      			}
  94   2      		else
  95   2      			stall_ep0();
  96   2      	}	// if write register
  97   1      }


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