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

📄 d12ci.lst

📁 200元买来的D12开发资料,包括上位机驱动和应用程序
💻 LST
字号:
C51 COMPILER V7.09   D12CI                                                                 03/30/2005 12:31:37 PAGE 1   


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

line level    source

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

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

 118   1                      outportdata(*(buf+i));
 119   1      
 120   1              outportcmd(0xFA);       //驶购冲区有效
 121   1      
 122   1              //--------------------------------
 123   1              if(bEPPflags.bits.in_isr == 0)
 124   1                      ENABLE;
 125   1      
 126   1              return len;
 127   1      }
 128          void D12_AcknowledgeEndpoint(unsigned char endp)
 129          {
 130   1              outportcmd( endp);      //选择端点
 131   1              outportcmd(0xF1);       //应答设置
 132   1              if(endp == 0)
 133   1                      outportcmd(0xF2);       //缓冲区清零
 134   1      }
 135          unsigned char D12_ReadInterruptRegister(void)
 136          {
 137   1              unsigned char b1;
 138   1              unsigned int j;
 139   1              j=0;
 140   1              //outportb(D12_COMMAND, 0xF4);
 141   1              outportcmd(0xF4);
 142   1              b1 = inportb();
 143   1              j = inportb();
 144   1              return b1;
 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.09   D12CI                                                                 03/30/2005 12:31:37 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        =    537    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       6
   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 + -