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

📄 kernel.lst

📁 该代码是基于菲利普ISP1581USB接口芯片与STC89C51单片机的USB2.0开发代码
💻 LST
字号:
C51 COMPILER V7.50   KERNEL                                                                10/30/2007 16:17:29 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE KERNEL
OBJECT MODULE PLACED IN kernel.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE kernel.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /****************************************Copyright (c)**************************************************
   2          
   3          ** 文   件   名: kernel.c
   4          ** 最后修改日期: 2006年10月19日
   5          ** 描        述: USB驱动程序软件包: D14 设备端驱动程序 主程序
   6          ** 版        本: V1.0
   7          **********************************************************************************************************
             -/
   8          
   9          
  10          
  11          #include "standard.h"
  12          #include "Kernel.h"
  13          #include "D14.h"
  14          
  15          
  16          //外部函数
  17          extern Init_Main();
  18          extern USBserve();
  19          
  20          extern USB_INT_FLAG USB_Int_Flag;
  21          extern DMA_INT_FLAG DMA_Int_Flag;
  22          extern USB_DEVICE USB_Device;
  23          extern volatile D14_CNTRL_REG   xdata   D14_Cntrl_Reg;
  24          extern void Check_Busy(void);
  25          extern void Init_D14(void);
  26          extern void Init_Endpoint(void);
  27          extern void Init_Device(void);
  28          extern void Get_PIDVID(void);
  29          extern unsigned int read_endpoint(unsigned char endp,unsigned int len,unsigned char *buf);
  30          extern unsigned int write_endpoint(unsigned char endp,unsigned int len,unsigned char *buf);
  31          
  32          
  33          extern UC VID[2],PID[2];
  34          extern UC       idata Endpt_FIFO[MAX_BUF];
  35          extern Set_USB(void);
  36          extern TIMER    Timer;
  37          
  38          
  39          //内部函数
  40          void Start_mSEC_Timer(Data);
  41          void Start_SEC_Timer(Data);
  42          
  43          
  44          //变量定义
  45          UI      Temp;
  46          KERNEL Kernel_Flag;
  47          
  48          
  49          /////////////////////////////////
  50          
  51          
  52          //主函数
  53          void Main(void)
  54          {
C51 COMPILER V7.50   KERNEL                                                                10/30/2007 16:17:29 PAGE 2   

  55   1              unsigned int a;
  56   1              unsigned char b[16];
  57   1              unsigned char c[16];
  58   1      
  59   1              //初始化子程序
  60   1              Init_Main();
  61   1              //enable device and reset the device address
  62   1              D14_Cntrl_Reg.D14_MODE.BITS.SOFTCT = 1;
  63   1              
  64   1              while(1)
  65   1              {
  66   2                      
  67   2                      USBserve();
  68   2              
  69   2              //端点1收发     
  70   2                 if (USB_Int_Flag.BITS.EP1RX)
  71   2                      {       
  72   3                              USB_Int_Flag.BITS.EP1RX = 0;
  73   3                              a=read_endpoint(0x02,8,c);
  74   3                              a=write_endpoint(0x03,8,c);
  75   3                      }
  76   2                      
  77   2               //端点2收发
  78   2                      if (USB_Int_Flag.BITS.EP2RX)
  79   2                      {       
  80   3                              USB_Int_Flag.BITS.EP2RX = 0;
  81   3                              a=read_endpoint(0x04,8,b);
  82   3                              a=write_endpoint(0x05,8,b);
  83   3                      }
  84   2              
  85   2                      
  86   2                      
  87   2              }
  88   1      
  89   1              
  90   1      }
  91          
  92          
  93          
  94          //***********************************************************************
  95          //*                                                                                                                                                    *
  96          //*     Routine         : Start_mSEC_Timer(Delay)                                       *
  97          //*     Input           : Delay in milli second                                                                          *  
  98          //*     Output          : Start timer operation                                                    *
  99          //*     Function        : To start the timeout operation based on the delay i/p  *
 100          //*                                                                                                                                                            *
 101          //***********************************************************************
 102          
 103          void Start_mSEC_Timer(Data)
 104          {
 105   1              
 106   1              
 107   1              do
 108   1              {
 109   2                      
 110   2                      //calculate timer value
 111   2                      Temp = Timer.mSEC_Scale;                
 112   2                      Temp = 0xffff - Temp;
 113   2                      
 114   2                      ET0 = 1;
 115   2                      
 116   2                      //calculate timer value
C51 COMPILER V7.50   KERNEL                                                                10/30/2007 16:17:29 PAGE 3   

 117   2                      //initialize timer 0 counter
 118   2                      Temp >>= 8;
 119   2                      TH0 = (UC) Temp;
 120   2                      Temp = Timer.mSEC_Scale;                
 121   2                      Temp = 0xffff - Temp;
 122   2                      TL0 = (UC) Temp;
 123   2                      
 124   2                      //start timer count
 125   2                      TR0 = 1;                                                        
 126   2                      
 127   2                      Kernel_Flag.BITS.Timer_Expired = 0;
 128   2                      while(!Kernel_Flag.BITS.Timer_Expired);
 129   2                      Kernel_Flag.BITS.Timer_Expired = 0;
 130   2                      
 131   2                      
 132   2                      //stop timer
 133   2                      TR0 = 0;                                                        
 134   2                      ET0 = 0;
 135   2                      
 136   2                      Data--;
 137   2              }
 138   1              while(Data != 0);
 139   1      }
 140          
 141          


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