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

📄 d12ci.lst

📁 固件源代码 C52驱动编程源码学习中
💻 LST
字号:
C51 COMPILER V7.01  D12CI                                                                  09/27/2003 23:46:50 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE D12CI
OBJECT MODULE PLACED IN d12ci.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE d12ci.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "d12ci.h"
   2          #include "mainloop.h"
   3          #include "Epphal.h"
   4          
   5          extern EPPFLAGS bEPPflags;
   6          
   7          //---------------------------------
   8          
   9          //--------------------------
  10          void D12_SetAddressEnable(unsigned char bAddress, unsigned char bEnable)
  11          {
  12   1              if(bEPPflags.bits.in_isr == 0)
  13   1                      DISABLE;
  14   1      
  15   1              outportcmd(0xD0);
  16   1              if(bEnable)
  17   1                      bAddress |= 0x80;
  18   1              outportdata(bAddress);
  19   1      
  20   1              if(bEPPflags.bits.in_isr == 0)
  21   1                      ENABLE;
  22   1      }
  23          
  24          void D12_SetEndpointEnable(unsigned char bEnable)
  25          {
  26   1              if(bEPPflags.bits.in_isr == 0)
  27   1                      DISABLE;
  28   1      
  29   1              outportcmd(0xD8);
  30   1              if(bEnable)
  31   1                      outportdata(1);
  32   1              else
  33   1                      outportdata(0);
  34   1      
  35   1              if(bEPPflags.bits.in_isr == 0)
  36   1                      ENABLE;
  37   1      }
  38          
  39          void D12_SetMode(unsigned char bConfig, unsigned char bClkDiv)
  40          {
  41   1              if(bEPPflags.bits.in_isr == 0)
  42   1                      DISABLE;
  43   1              outportcmd(0xF3);
  44   1              outportdata(bConfig);
  45   1              outportdata(bClkDiv);
  46   1              if(bEPPflags.bits.in_isr == 0)
  47   1                      ENABLE;
  48   1      
  49   1      }
  50          
  51          void D12_SetDMA(unsigned char bMode)
  52          {
  53   1      
  54   1              if(bEPPflags.bits.in_isr == 0)
  55   1                      DISABLE;
C51 COMPILER V7.01  D12CI                                                                  09/27/2003 23:46:50 PAGE 2   

  56   1              outportcmd(0xFB);
  57   1              outportdata(bMode);
  58   1              if(bEPPflags.bits.in_isr == 0)
  59   1                      ENABLE;
  60   1      
  61   1      }
  62          /*
  63          unsigned char D12_GetDMA(void)
  64          {
  65           outportcmd(0xFB);
  66           return(inportb());
  67          }
  68          */
  69          /*
  70          unsigned char D12_ReadEndpointStatus(unsigned char bEndp)
  71          {
  72                  unsigned char c;
  73          
  74                  if(bEPPflags.bits.in_isr == 0)
  75                          DISABLE;
  76          
  77                  outportcmd(0x80 + bEndp);
  78                  c = inportb();
  79          
  80                  if(bEPPflags.bits.in_isr == 0)
  81                          ENABLE;
  82          
  83                  return c;
  84          }
  85          */
  86          void D12_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled)
  87          {
  88   1              if(bEPPflags.bits.in_isr == 0)
  89   1                      DISABLE;
  90   1      
  91   1              outportcmd(0x40 + bEndp);
  92   1              outportdata(bStalled);
  93   1      
  94   1              if(bEPPflags.bits.in_isr == 0)
  95   1                      ENABLE;
  96   1      }
  97          
  98          
  99          /*
 100          void D12_SendResume(void)
 101          {
 102           outportcmd(0xF6);
 103          }
 104          */
 105          
 106          unsigned char D12_WriteEndpoint(unsigned char endp, unsigned char len, unsigned char * buf)
 107          {
 108   1              unsigned char i;
 109   1      
 110   1              if(bEPPflags.bits.in_isr == 0)
 111   1                      DISABLE;
 112   1              //---------------------
 113   1              outportcmd(endp);       //选择端点
 114   1              inportb();              //读入满/空状态
 115   1      
 116   1              outportcmd(0xF0);       //写缓冲区命令
 117   1              outportdata(0);
C51 COMPILER V7.01  D12CI                                                                  09/27/2003 23:46:50 PAGE 3   

 118   1              outportdata(len);
 119   1      
 120   1              for(i=0; i<len; i++)
 121   1                      outportdata(*(buf+i));
 122   1      
 123   1              outportcmd(0xFA);       //驶购冲区有效
 124   1              
 125   1              //--------------------------------
 126   1              if(bEPPflags.bits.in_isr == 0)
 127   1                      ENABLE;
 128   1      
 129   1              return len;
 130   1      }
 131          void D12_AcknowledgeEndpoint(unsigned char endp)
 132          {
 133   1              outportcmd(endp);       //选择端点
 134   1              outportcmd(0xF1);       //应答设置
 135   1              if(endp == 0)
 136   1                      outportcmd(0xF2);       //缓冲区清零
 137   1      }
 138          unsigned short D12_ReadInterruptRegister(void)
 139          {
 140   1              unsigned char b1;
 141   1              unsigned int j;
 142   1              //outportb(D12_COMMAND, 0xF4);
 143   1              outportcmd(0xF4);
 144   1              b1 = inportb();
 145   1              j = inportb();
 146   1              j <<= 8;
 147   1              j += b1;
 148   1              return j;
 149   1      }
 150          
 151          unsigned char D12_ReadLastTransactionStatus(unsigned char bEndp)
 152          {
 153   1              //outportb(D12_COMMAND, 0x40 + bEndp);
 154   1              outportcmd(0x40 + bEndp);
 155   1              return inportb();
 156   1      }
 157          unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char len, unsigned char * buf)
 158          {
 159   1              unsigned char i, j;
 160   1      
 161   1              if(bEPPflags.bits.in_isr == 0)
 162   1                      DISABLE;
 163   1              //--------------------------------
 164   1              outportcmd(endp);                       //选择端点
 165   1              if((inportb() & D12_FULLEMPTY) == 0) {  //如果缓冲区为空,则返回
 166   2                      if(bEPPflags.bits.in_isr == 0)
 167   2                              ENABLE;
 168   2                      return 0;
 169   2              }
 170   1      
 171   1              outportcmd(0xF0);                       //读缓冲区
 172   1              j = inportb();
 173   1              j = inportb();
 174   1      
 175   1              if(j > len)
 176   1                      j = len;
 177   1      
 178   1              for(i=0; i<j; i++)
 179   1                      *(buf+i) = inportb();
C51 COMPILER V7.01  D12CI                                                                  09/27/2003 23:46:50 PAGE 4   

 180   1      
 181   1              outportcmd(0xF2);                               //缓冲区清空
 182   1              //-------------------------------
 183   1              if(bEPPflags.bits.in_isr == 0)
 184   1                      ENABLE;
 185   1      
 186   1              return j;
 187   1      }
 188          
 189          unsigned char D12_SelectEndpoint(unsigned char bEndp)
 190          {
 191   1              unsigned char c;
 192   1      
 193   1              if(bEPPflags.bits.in_isr == 0)
 194   1                      DISABLE;
 195   1      
 196   1              outportcmd(bEndp);
 197   1              c = inportb();
 198   1      
 199   1              if(bEPPflags.bits.in_isr == 0)
 200   1                      ENABLE;
 201   1      
 202   1              return c;
 203   1      }
 204          


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