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

📄 d12ci.lst

📁 phlip D12 usb转RS232源代码
💻 LST
字号:
C51 COMPILER V7.01  D12CI                                                                  11/14/2003 09:44:51 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE D12CI
OBJECT MODULE PLACED IN D12CI.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\c51.exe D12CI.C DB OE COMPACT ROM(LARGE)

stmt level    source

   1          //#pragma SYMBOLS
   2          //#include<stdio.h>
   3          #include"X52.H"
   4          #include"HAL.H"
   5          #include"D12CI.H"
   6          #include"MAIN.H"
   7          /***********************************************************************
   8           *this program include some PDIUSBD12 command set to access  pdiusbd12 *
   9           * so as to  simplify the device programming                           *
  10           ***********************************************************************/
  11          extern void outportb(unsigned char port,unsigned char val);
  12          extern unsigned char inportb(unsigned char port);
  13          extern EPPFLAGS bEPPflags;
  14          
  15           void D12_SetAddressEnable(unsigned char bAddress ,unsigned char bbEnable)
  16          {
  17   1         if(bEPPflags.bits.in_isr==0)
  18   1            {
  19   2             DISABLE;
  20   2             }
  21   1      
  22   1           outportb(D12_COMMAND,0xD0);
  23   1      
  24   1         if(bbEnable)
  25   1      
  26   1           bAddress|=0x80;
  27   1      
  28   1           outportb(D12_DATA,bAddress);
  29   1           
  30   1           if(bEPPflags.bits.in_isr==0)
  31   1      
  32   1           ENABLE;
  33   1      }
  34          void D12_SetEndpointEnable(unsigned char bEnable)
  35          {
  36   1          if (bEPPflags.bits.in_isr==0)
  37   1      
  38   1              {
  39   2                DISABLE;
  40   2              }
  41   1           outportb(D12_COMMAND,0xD8);
  42   1      
  43   1           if (bEnable)
  44   1           {
  45   2           outportb(D12_DATA,1);
  46   2           }
  47   1      
  48   1           else
  49   1           {
  50   2           outportb(D12_DATA,0);
  51   2           }
  52   1      
  53   1           if(bEPPflags.bits.in_isr==0)
  54   1        
  55   1            ENABLE;
C51 COMPILER V7.01  D12CI                                                                  11/14/2003 09:44:51 PAGE 2   

  56   1      
  57   1      }
  58          void D12_SetMode(unsigned char bConfig ,unsigned char bClkDiv)
  59          {
  60   1         if(bEPPflags.bits.in_isr==0)
  61   1      
  62   1             {
  63   2                 DISABLE;
  64   2             }
  65   1      
  66   1                outportb(D12_COMMAND,0xF3);   //set mode command
  67   1      
  68   1                outportb(D12_DATA,bConfig);  //INCLUDE CONFIGRATION BITS
  69   1      
  70   1                outportb(D12_DATA,bClkDiv);  //INCLUDE THE CLOCK DIVISIONG FACTOR TYPE
  71   1      
  72   1               if(bEPPflags.bits.in_isr==0)
  73   1             
  74   1                ENABLE;
  75   1      
  76   1      }
  77          
  78          unsigned short D12_ReadInterruptRegister(void)
  79          {
  80   1                unsigned char b1;
  81   1                unsigned int j;
  82   1      
  83   1                outportb(D12_COMMAND,0xF4);
  84   1      
  85   1                b1=inportb(D12_DATA);    // low eight bits
  86   1      
  87   1                j=inportb(D12_DATA);     //high eight bits
  88   1      
  89   1                j<<=8;                   //move eight bits to left
  90   1                //b1&=0x00FF;
  91   1                j+= b1;                  //make sixteen bits flags
  92   1                //j=j;
  93   1           
  94   1           return j;               //return interrupt register bits
  95   1      
  96   1      }
  97          //THIS COMMAND INITIALIZES AN INTERNAL POINTER TO THE SATART OF THE SELECTED BUFFER
  98          unsigned char  D12_SelectEndpoint(unsigned char bEndp)
  99          
 100          {
 101   1         unsigned char c;
 102   1      
 103   1               if(bEPPflags.bits.in_isr == 0)
 104   1      
 105   1               {
 106   2                 DISABLE;
 107   2                 }
 108   1      
 109   1                 outportb(D12_COMMAND,bEndp);     //
 110   1      
 111   1                 c = inportb(D12_DATA);
 112   1      
 113   1               if(bEPPflags.bits.in_isr == 0)
 114   1      
 115   1                ENABLE;
 116   1      
 117   1                return c;
C51 COMPILER V7.01  D12CI                                                                  11/14/2003 09:44:51 PAGE 3   

 118   1      
 119   1      }
 120          unsigned char D12_ReadLastTransactionStatus(unsigned char bEndp)
 121          {
 122   1      
 123   1              outportb(D12_COMMAND,0x40 + bEndp);
 124   1      
 125   1              return inportb(D12_DATA);
 126   1      
 127   1      }
 128          
 129          /*unsigned char D12_ReadEndpointStatus(unsigned char bEndp) 
 130          {
 131                  unsigned char c;
 132          
 133                  if(bEPPflags.bits.in_isr == 0)
 134                  
 135                      DISABLE;
 136          
 137                     outportb(D12_COMMAND,0x80 + bEndp);
 138                  
 139                     c = inportb(D12_DATA);
 140          
 141                  if(bEPPflags.bits.in_isr == 0)
 142                          ENABLE;
 143          
 144                  return c;
 145          }*/
 146          
 147          
 148          
 149          void D12_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled)reentrant
 150          {
 151   1             if(bEPPflags.bits.in_isr == 0)
 152   1      
 153   1               {
 154   2                  DISABLE;
 155   2                }
 156   1      
 157   1                outportb(D12_COMMAND,0x40 + bEndp);
 158   1      
 159   1                outportb(D12_DATA,bStalled);
 160   1      
 161   1              if(bEPPflags.bits.in_isr == 0)
 162   1      
 163   1                ENABLE;
 164   1      } 
 165          /*void D12_SendResume(void)
 166          {
 167          
 168             outportb(D12_COMMAND,0xF6);
 169          
 170          }
 171          */
 172          
 173          unsigned char D12_WriteBuffer(unsigned char endp ,unsigned char *buf,unsigned char len)reentrant
 174          {
 175   1      
 176   1      unsigned char i;
 177   1      
 178   1                if(bEPPflags.bits.in_isr == 0)
 179   1                {
C51 COMPILER V7.01  D12CI                                                                  11/14/2003 09:44:51 PAGE 4   

 180   2                   DISABLE;
 181   2                }
 182   1                outportb(D12_COMMAND,endp);   //选择端点
 183   1      
 184   1                inportb(D12_DATA);                //读入满/空状态
 185   1      
 186   1                //**********************************************
 187   1                outportb(D12_COMMAND,0xF0);   //写缓冲区命令
 188   1      
 189   1                outportb(D12_DATA,0);
 190   1      
 191   1                outportb(D12_DATA,len);
 192   1      
 193   1              for(i=0; i<len; i++)
 194   1              {
 195   2                 outportb(D12_DATA, *(buf+i));
 196   2              }
 197   1      
 198   1                 outportb(D12_COMMAND,0xFA);    //VALIDATE BUFFER
 199   1              
 200   1      
 201   1                if(bEPPflags.bits.in_isr == 0)
 202   1      
 203   1                 {
 204   2                    ENABLE;
 205   2                  }
 206   1              return len;
 207   1      } 
 208          
 209          unsigned char D12_ReadBuffer(unsigned char endp ,unsigned char *buf,unsigned char len)
 210          {
 211   1      
 212   1      unsigned char i, j;
 213   1      
 214   1                if(bEPPflags.bits.in_isr == 0)
 215   1       
 216   1                  {
 217   2                      DISABLE;
 218   2                  }
 219   1              outportb(D12_COMMAND,endp);                                  //选择端点
 220   1      
 221   1              if((inportb(D12_DATA) & D12_FULLEMPTY) == 0)     //如果缓冲区为空,则返回
 222   1              {
 223   2                      if(bEPPflags.bits.in_isr == 0)
 224   2      
 225   2                       { 
 226   3                       ENABLE;
 227   3                       }
 228   2      
 229   2                  return 0;
 230   2              }
 231   1      
 232   1              outportb(D12_COMMAND,0xF0);                             //读缓冲区
 233   1      
 234   1              j = inportb(D12_DATA);
 235   1      
 236   1              j = inportb(D12_DATA);
 237   1      
 238   1              if(j > len)
 239   1      
 240   1              j = len;
 241   1      
C51 COMPILER V7.01  D12CI                                                                  11/14/2003 09:44:51 PAGE 5   

 242   1              for(i=0; i<j; i++)
 243   1               {
 244   2                *(buf+i) = inportb(D12_DATA);
 245   2               }
 246   1      
 247   1                outportb(D12_COMMAND,0xF2);                           //缓冲区清空
 248   1      
 249   1               if(bEPPflags.bits.in_isr == 0)
 250   1                {
 251   2                  ENABLE;
 252   2                }
 253   1      
 254   1           return j;
 255   1      }
 256           
 257          void D12_AcknowledgeEndpoint(unsigned char endp)
 258          {
 259   1      
 260   1         outportb( D12_COMMAND,endp);         //选择端点
 261   1      
 262   1         outportb(D12_COMMAND,0xF1);      //应答或确认设置
 263   1      
 264   1         if(endp == 0)
 265   1      
 266   1              outportb(D12_COMMAND,0xF2);         //缓冲区清零
 267   1      
 268   1      }
 269          
 270          /*void D12_SetDMA(unsigned char bMode)
 271          {
 272          
 273                  if(bEPPflags.bits.in_isr == 0)
 274                          DISABLE;
 275          
 276                  outportb(D12_COMMAND,0xFB);
 277                  outportb(D12_DATA,bMode);
 278                  
 279                  if(bEPPflags.bits.in_isr == 0)
 280                          ENABLE;
 281          
 282          }*/


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