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

📄 d12ci.lst

📁 基于MCU的U盘源码
💻 LST
字号:
C51 COMPILER V7.09   D12CI                                                                 05/11/2005 17:30:28 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE D12CI
OBJECT MODULE PLACED IN D12CI.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE D12CI.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "d12ci.h"
   2          #include "main.h"
*** ERROR C129 IN LINE 101 OF MAIN.H: missing ';' before 'struct'
   3          //#include "44b.h"
   4          
   5          extern EPPFLAGS bEPPflags;
   6          
   7          
   8          void outportdata(unsigned char val)
   9          {
  10          DISABLE;
  11          
  12          D12_DATA=val;
  13          
  14          ENABLE;
  15          }
  16          
  17          
  18          void outportcmd(unsigned char val)
  19          {
  20          DISABLE;
  21          
  22          D12_COMMAND=val;
  23          
  24          ENABLE;
  25          }
  26          
  27          
  28          unsigned char inportb(void)
  29          {
  30          unsigned char c;
  31          DISABLE;
  32          c = D12_DATA;
  33          ENABLE;
  34          return c;
  35          }
  36          
  37          
  38          void D12_SetAddressEnable(unsigned char bAddress, unsigned char bEnable)
  39          {
  40                  if(bEPPflags.bits.in_isr == 0)
  41                          DISABLE;
  42          
  43                  outportcmd(0xD0);
  44                  if(bEnable)
  45                          bAddress |= 0x80;
  46                  outportdata(bAddress);
  47          
  48                  if(bEPPflags.bits.in_isr == 0)
  49                          ENABLE;
  50          //      Uart_Printf("E D12_SetAddressEnable\n");
  51          }
  52          
  53          void D12_SetEndpointEnable(unsigned char bEnable)
  54          {
C51 COMPILER V7.09   D12CI                                                                 05/11/2005 17:30:28 PAGE 2   

  55                  if(bEPPflags.bits.in_isr == 0)
  56                          DISABLE;
  57          
  58                  outportcmd(0xD8);
  59                  if(bEnable)
  60                          outportdata(1);
  61                  else
  62                          outportdata(0);
  63          
  64                  if(bEPPflags.bits.in_isr == 0)
  65                          ENABLE;
  66          //      Uart_Printf("E D12_SetEndpointEnable\n");
  67          }
  68          
  69          void D12_SetMode(unsigned char bConfig, unsigned char bClkDiv)
  70          {
  71                  if(bEPPflags.bits.in_isr == 0)
  72                          DISABLE;
  73                  outportcmd(0xF3);
  74                  outportdata(bConfig);
  75                  outportdata(bClkDiv);
  76                  if(bEPPflags.bits.in_isr == 0)
  77                          ENABLE;
  78          //      Uart_Printf("E D12_SetMode\n");
  79          
  80          }
  81          
  82          void D12_SetDMA(unsigned char bMode)
  83          {
  84          
  85                  if(bEPPflags.bits.in_isr == 0)
  86                          DISABLE;
  87                  outportcmd(0xFB);
  88                  outportdata(bMode);
  89                  if(bEPPflags.bits.in_isr == 0)
  90                          ENABLE;
  91          //      Uart_Printf("E D12_SetDMA\n");
  92          
  93          }
  94          /*
  95          unsigned char D12_GetDMA(void)
  96          {
  97           outportcmd(0xFB);
  98           return(inportb());
  99          }
 100          */
 101          /*
 102          unsigned char D12_ReadEndpointStatus(unsigned char bEndp)
 103          {
 104                  unsigned char c;
 105          
 106                  if(bEPPflags.bits.in_isr == 0)
 107                          DISABLE;
 108          
 109                  outportcmd(0x80 + bEndp);
 110                  c = inportb();
 111          
 112                  if(bEPPflags.bits.in_isr == 0)
 113                          ENABLE;
 114          
 115                  return c;
 116          }
C51 COMPILER V7.09   D12CI                                                                 05/11/2005 17:30:28 PAGE 3   

 117          */
 118          void D12_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled)
 119          {
 120                  if(bEPPflags.bits.in_isr == 0)
 121                          DISABLE;
 122          
 123                  outportcmd(0x40 + bEndp);
 124                  outportdata(bStalled);
 125          
 126                  if(bEPPflags.bits.in_isr == 0)
 127                          ENABLE;
 128          //      Uart_Printf("E D12_SetEndpointStatus\n");
 129          }
 130          
 131          
 132          /*
 133          void D12_SendResume(void)
 134          {
 135           outportcmd(0xF6);
 136          }
 137          */
 138          
 139          unsigned char D12_WriteEndpoint(unsigned char endp, unsigned char len, unsigned char * buf)
 140          {
 141                  unsigned char i;
 142          
 143                  if(bEPPflags.bits.in_isr == 0)
 144                          DISABLE;
 145                  //---------------------
 146                  outportcmd(endp);       //选择端点
 147                  inportb();              //读入满/空状态
 148          
 149                  outportcmd(0xF0);       //写缓冲区命令
 150                  outportdata(0);
 151                  outportdata(len);
 152          
 153                  for(i=0; i<len; i++)
 154                          outportdata(*(buf+i));
 155          
 156                  outportcmd(0xFA);       //驶购冲区有效
 157                  
 158                  //--------------------------------
 159                  if(bEPPflags.bits.in_isr == 0)
 160                          ENABLE;
 161          //      Uart_Printf("E D12_WriteEndpoint\n");
 162          
 163                  return len;
 164          }
 165          void D12_AcknowledgeEndpoint(unsigned char endp)
 166          {
 167                  outportcmd( endp);      //选择端点
 168                  outportcmd(0xF1);       //应答设置
 169                  if(endp == 0)
 170                          outportcmd(0xF2);       //缓冲区清零
 171          //      Uart_Printf("E D12_AcknowledgeEndpoint%d\n",endp);
 172          }
 173          unsigned short D12_ReadInterruptRegister(void)
 174          {
 175                  unsigned char b1;
 176                  unsigned int j;
 177                  //outportb(D12_COMMAND, 0xF4);
 178                  outportcmd(0xF4);
C51 COMPILER V7.09   D12CI                                                                 05/11/2005 17:30:28 PAGE 4   

 179                  b1 = inportb();
 180                  j = inportb();
 181                  j <<= 8;
 182                  j += b1;
 183          //      if(j) Uart_Printf("E D12_ReadInterruptRegister:%x\n",j);//printf the intterrupt number if it's not zero
             -.
 184                  return j;
 185          }
 186          
 187          unsigned char D12_ReadLastTransactionStatus(unsigned char bEndp)
 188          {
 189                  //outportb(D12_COMMAND, 0x40 + bEndp);
 190                  outportcmd(0x40 + bEndp);
 191          //      Uart_Printf("E D12_ReadLastTransactionStatus\n");
 192                  return inportb();
 193          }
 194          unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char len, unsigned char * buf)
 195          {
 196                  unsigned char i, j;
 197          
 198          
 199                  if(bEPPflags.bits.in_isr == 0)
 200                          DISABLE;
 201                  //--------------------------------
 202                  outportcmd(endp);                       //选择端点
 203                  if((inportb() & D12_FULLEMPTY) == 0) {  //如果缓冲区为空,则返回
 204                          if(bEPPflags.bits.in_isr == 0)
 205                                  ENABLE;
 206                          return 0;
 207                  }
 208          
 209                  outportcmd(0xF0);                       //读缓冲区
 210                  j = inportb();
 211                  j = inportb();
 212          
 213                  if(j > len)
 214                          j = len;
 215          
 216                  for(i=0; i<j; i++)
 217                          *(buf+i) = inportb();
 218          
 219                  outportcmd(0xF2);                               //缓冲区清空
 220                  //-------------------------------
 221                  if(bEPPflags.bits.in_isr == 0)
 222                          ENABLE;
 223          
 224          //      Uart_Printf("E D12_ReadEndpoint:%d,%d character read\n",endp,j);
 225                  return j;
 226          }
 227          
 228          unsigned char D12_SelectEndpoint(unsigned char bEndp)
 229          {
 230                  unsigned char c;
 231          
 232                  if(bEPPflags.bits.in_isr == 0)
 233                          DISABLE;
 234          
 235                  outportcmd(bEndp);
 236                  c = inportb();
 237          
 238                  if(bEPPflags.bits.in_isr == 0)
 239                          ENABLE;
C51 COMPILER V7.09   D12CI                                                                 05/11/2005 17:30:28 PAGE 5   

 240          
 241          //      Uart_Printf("E D12_SelectEndpoint\n");
 242                  return c;
 243          }
 244          

C51 COMPILATION COMPLETE.  0 WARNING(S),  1 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -