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

📄 isr.lst

📁 单片机控制飞利蒲PDIUSBD12芯片与PC机实现USB1.1通信。
💻 LST
字号:
C51 COMPILER V7.06   ISR                                                                   08/17/2005 16:07:25 PAGE 1   


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

stmt level    source

   1          /*
   2             //*************************************************************************
   3          
   4             //*************************************************************************
   5             */
   6          
   7          #include <stdio.h>
   8          #include <string.h>
   9          #include <reg51.h>                /* special function register declarations   */
  10          #include "isr.h"
  11          #include "mainloop.h"
  12          #include "proto.h"
  13          
  14          /*
  15          //*************************************************************************
  16          //  Public static data
  17          //*************************************************************************
  18          */
  19          
  20          EPPFLAGS bEPPflags;
  21          CONTROL_XFER ControlData;
  22          
  23          /* ISR static vars */
  24          unsigned char idata GenEpBuf[EP1_PACKET_SIZE];
  25          unsigned char idata EpBuf[EP2_PACKET_SIZE];
  26          IO_REQUEST idata ioRequest;
  27          
  28          //厂商请求入口地址
  29          code void (*VendorDeviceRequest[])(void) =
  30          {
  31                  reserved,
  32                  reserved,
  33                  reserved,
  34                  reserved,
  35                  reserved,
  36                  reserved,
  37                  reserved,
  38                  reserved,
  39                  reserved,
  40                  reserved,
  41                  reserved,
  42                  reserved,
  43                  read_write_register,
  44                  reserved,
  45                  reserved,
  46                  reserved
  47          };
  48          
  49          //USB总线重新连接(先断开,再连接)子程序
  50          void reconnect_USB(void)
  51          {
  52   1              unsigned long clk_cnt;
  53   1              MCU_LED0 = 0;//亮LED显示(实际应用中可去掉)
  54   1              MCU_LED1 = 0;//(实际应用中可去掉)
  55   1      
C51 COMPILER V7.06   ISR                                                                   08/17/2005 16:07:25 PAGE 2   

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

 118          void ep2_rxdone(void)
 119          {
 120   1              unsigned char len;
 121   1              D12_ReadLastTransactionStatus(4);//复位中断寄存器
 122   1              len = D12_ReadEndpoint(4, 64, EpBuf);//读取端点2接收数据
 123   1              //if (len != 0);
 124   1              //      bEPPflags.bits.ep2_rxdone = 1;//标志端点1接收到数据
 125   1      }
 126          


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