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

📄 isr.lst

📁 c51的USB的通信程序库,支持51兼容的
💻 LST
字号:
C51 COMPILER V6.14  ISR                                                                    04/08/2002 12:07:04 PAGE 1   


C51 COMPILER V6.14, COMPILATION OF MODULE ISR
OBJECT MODULE PLACED IN Isr.OBJ
COMPILER INVOKED BY: C:\MANLEY\PMEDWIN\C51.EXE Isr.c DB OE SMALL ROM(LARGE) 

stmt 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          
  19          /*
  20          //*************************************************************************
  21          //  Public static data
  22          //*************************************************************************
  23          */
  24          
  25          EPPFLAGS bEPPflags;
  26          CONTROL_XFER ControlData;
  27          
  28          /* ISR static vars */
  29          unsigned char idata GenEpBuf[EP1_PACKET_SIZE];
  30          unsigned char idata EpBuf[EP2_PACKET_SIZE];
  31          IO_REQUEST idata ioRequest;
  32          
  33          //厂商请求入口地址
  34          code void (*VendorDeviceRequest[])(void) =
  35          {
  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          	reserved,
  50          	reserved,
  51          	reserved
  52          };
  53          
  54          //USB总线重新连接(先断开,再连接)子程序
  55          void reconnect_USB(void)
C51 COMPILER V6.14  ISR                                                                    04/08/2002 12:07:04 PAGE 2   

  56          {
  57   1      	unsigned long clk_cnt;
  58   1      	MCU_LED0 = 0;//亮LED显示(实际应用中可去掉)
  59   1      	MCU_LED1 = 0;//(实际应用中可去掉)
  60   1      
  61   1      	D12SUSPD = 0;
  62   1      	disconnect_USB();
  63   1      	for (clk_cnt=0;clk_cnt<=0x9000;clk_cnt++) {}
  64   1      	connect_USB();
  65   1      
  66   1      	MCU_LED0 = 1;//灭LED显示(实际应用中可去掉)
  67   1      	MCU_LED1 = 1;//(实际应用中可去掉)
  68   1      }
  69          
  70          //断开USB总线连接
  71          void disconnect_USB(void)
  72          {
  73   1      	D12_SetMode(D12_NOLAZYCLOCK, D12_SETTOONE | D12_CLOCK_12M);
  74   1      }
  75          
  76          //连接到USB总线
  77          void connect_USB(void)
  78          {
  79   1      	DISABLE;
  80   1      	bEPPflags.value = 0;
  81   1      	ENABLE;
  82   1      	D12_SetDMA(0x0);//设置D12工作模式
  83   1      	D12_SetMode(D12_NOLAZYCLOCK|D12_SOFTCONNECT, D12_SETTOONE | D12_CLOCK_12M);
  84   1      }
  85          
  86          //总线复位中断服务子程序
  87          void bus_reset(void)
  88          {
  89   1      //可添加用户代码(进行检测到总线复位的操作)
  90   1      }
  91          
  92          //DMA操作结束中断服务子程序
  93          void dma_eot(void)
  94          {
  95   1      //可添加用户代码(进行检测DMA操作结束的操作)
  96   1      }
  97          
  98          //端点1输出中断操作
  99          void ep1_txdone(void)
 100          {
 101   1      	D12_ReadLastTransactionStatus(3);//复位中断寄存器
 102   1      	//可添加用户代码(进行检测端点号3IN令牌的操作)
 103   1      }
 104          
 105          //端点1输入中断操作
 106          void ep1_rxdone(void)
 107          {
 108   1      	unsigned char len;
 109   1      	D12_ReadLastTransactionStatus(2);//复位中断寄存器
 110   1      	len = D12_ReadEndpoint(2, sizeof(GenEpBuf), GenEpBuf);//读取端点1接收数据
 111   1      	if (len != 0)
 112   1      		bEPPflags.bits.ep1_rxdone = 1;//标志端点1接收到数据
 113   1      }
 114          
 115          //端点2输出中断操作
 116          void ep2_txdone(void)
 117          {
C51 COMPILER V6.14  ISR                                                                    04/08/2002 12:07:04 PAGE 3   

 118   1      	D12_ReadLastTransactionStatus(5);//复位中断寄存器
 119   1      	//可添加用户代码(进行检测端点号5IN令牌的操作)
 120   1      }
 121          
 122          //端点1输入中断操作
 123          void ep2_rxdone(void)
 124          {
 125   1      	unsigned char len;
 126   1      	D12_ReadLastTransactionStatus(4);//复位中断寄存器
 127   1      	len = D12_ReadEndpoint(4, 64, EpBuf);//读取端点2接收数据
 128   1      	if (len != 0)
 129   1      		bEPPflags.bits.ep2_rxdone = 1;//标志端点1接收到数据
 130   1      }
 131          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    166    ----
   CONSTANT SIZE    =     48    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     25       4
   IDATA SIZE       =     74    ----
   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 + -