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

📄 pdiusb.lst

📁 this procedure is a game of basketball or subsystems time, the competition will record the entire ti
💻 LST
字号:
C51 COMPILER V8.02   PDIUSB                                                                08/31/2007 18:23:38 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE PDIUSB
OBJECT MODULE PLACED IN .\PDIUSB.obj
COMPILER INVOKED BY: E:\programfiles\Keil51\C51\BIN\C51.EXE ..\..\..\keil\MyProgramLibray\PDIUSB\PDIUSB.c LARGE BROWSE I
                    -NCDIR(..\..\..\keil\MyProgramLibray;..\..\..\keil\MyProgramLibray\C8051F020;..\..\..\keil\MyProgramLibray\JHD657;..\..\.
                    -.\keil\MyProgramLibray\PDIUSB) DEBUG OBJECTEXTEND PRINT(.\PDIUSB.lst) OBJECT(.\PDIUSB.obj)

line level    source

   1          #include <c8051f020.h>
   2          #include <c8051f.h>
   3          #include <delay.h>
   4          #include <pdiusbdef.h>
   5          
   6          //硬件提取层,多路地址/数据总线方式读写
   7          void Outportb(unsigned int Addr, unsigned char Data)
   8          {
   9   1              PDIUSB_A0=Addr;
  10   1              Delay1us(5);    
  11   1       *((unsigned char xdata *) (0x8000+Addr)) = Data;
  12   1      }
  13          
  14          unsigned char Inportb(unsigned int Addr)
  15          {
  16   1              PDIUSB_A0=Addr;
  17   1              Delay1us(5);    
  18   1       return *((unsigned char xdata *)(0x8000+Addr));
  19   1      }
  20          //**************************************************************************
  21          #define D12_DATA   0
  22          #define D12_COMMAND  1
  23          //PDIUSBD12命令接口函数
  24          void D12_SetMode(unsigned char bConfig,unsigned char bClkDiv)
  25          {
  26   1              PDIUSB_CS=0;
  27   1              Outportb(D12_COMMAND,0xF3);
  28   1              Outportb(D12_DATA,bConfig);
  29   1              Outportb(D12_DATA,bClkDiv);
  30   1              PDIUSB_CS=1;
  31   1      }
  32          //设置端点
  33          void D12_SetEndpointStatus(unsigned char bEndp,unsigned char bStalled)
  34          {
  35   1              PDIUSB_CS=0;
  36   1       Outportb(D12_COMMAND,0x40+bEndp);
  37   1       Outportb(D12_DATA,bStalled);
  38   1        PDIUSB_CS=1;
  39   1      }
  40          //应答!!!!!
  41          void D12_AcknowledgeEndpoint(unsigned char endp)
  42          {
  43   1              PDIUSB_CS=0;
  44   1       Outportb(D12_COMMAND,endp);
  45   1       Outportb(D12_COMMAND,0xF1);
  46   1       if(endp==0)
  47   1        Outportb(D12_COMMAND,0xF2);
  48   1         PDIUSB_CS=1;
  49   1      }
  50          //设置地址使能
  51          void D12_SetAddressEnable(unsigned char bAddress,unsigned char bEnable)
  52          {
  53   1              PDIUSB_CS=0;
C51 COMPILER V8.02   PDIUSB                                                                08/31/2007 18:23:38 PAGE 2   

  54   1              Outportb(D12_COMMAND,0xd0);
  55   1              if(bEnable) bAddress |= 0x80;
  56   1                      Outportb(D12_DATA,bAddress);
  57   1              PDIUSB_CS=1;
  58   1      }
  59          //设置端点使能
  60          void D12_SetEndpointEnable(unsigned char bEnable)
  61          {
  62   1              PDIUSB_CS=0;
  63   1       Outportb(D12_COMMAND,0xD8);
  64   1       if(bEnable)
  65   1        Outportb(D12_DATA,1);
  66   1       else
  67   1        Outportb(D12_DATA,0);
  68   1         PDIUSB_CS=1;
  69   1      }
  70          //读中断寄存器
  71          unsigned short D12_ReadInterruptRegister(void)
  72          {
  73   1               unsigned char b1;
  74   1               unsigned int j;
  75   1               PDIUSB_CS=0;
  76   1               Outportb(D12_COMMAND,0xF4);
  77   1               b1=Inportb(D12_DATA);
  78   1               j=Inportb(D12_DATA);
  79   1               j<<=8;
  80   1               j+=b1;
  81   1               PDIUSB_CS=1;
  82   1               return j;
  83   1      }
  84          //读取端点状态
  85          unsigned char D12_ReadEndpointStatus(unsigned char EndPoint) 
  86          {
  87   1       unsigned char BackValue;
  88   1              PDIUSB_CS=0;
  89   1       if(EventFlags.Bits.InISR == 0)
  90   1        EA = 0;
  91   1      
  92   1       Outportb(D12_COMMAND, 0x80 + EndPoint);//读取端点状态
  93   1       BackValue = Inportb(D12_DATA);
  94   1      
  95   1       if(EventFlags.Bits.InISR == 0)
  96   1        EA = 1;
  97   1      
  98   1        PDIUSB_CS=1;
  99   1       return BackValue;
 100   1      }
 101          //读端点最后处理状态
 102          unsigned char D12_ReadLastTransactionStatus(unsigned char bEndp)
 103          {
 104   1              unsigned char i;
 105   1              PDIUSB_CS=0;
 106   1       Outportb(D12_COMMAND,0x40+bEndp);
 107   1       i=Inportb(D12_DATA); 
 108   1       PDIUSB_CS=1;  
 109   1       return i;
 110   1      }
 111          //读端口
 112          unsigned char D12_ReadEndpoint(unsigned char endp,unsigned char len,unsigned char *buf)
 113          {
 114   1       unsigned char i,j;
 115   1       PDIUSB_CS=0;
C51 COMPILER V8.02   PDIUSB                                                                08/31/2007 18:23:38 PAGE 3   

 116   1       Outportb(D12_COMMAND,endp);
 117   1       if((Inportb(D12_DATA)&0xff)==0)//"  define D12_FULLEMPTY as 0xFF  by newer
 118   1        return 0;
 119   1       Outportb(D12_COMMAND,0x80+endp);
 120   1       i=Inportb(D12_DATA);
 121   1       i=i&0x60;
 122   1      
 123   1      
 124   1       Outportb(D12_COMMAND,0xF0);
 125   1       j=Inportb(D12_DATA);
 126   1       j=Inportb(D12_DATA);
 127   1       if(j>len)
 128   1        j=len;
 129   1       for(i=0;i<j;i++)
 130   1        *(buf+i)=Inportb(D12_DATA);
 131   1       Outportb(D12_COMMAND,0xF2);
 132   1      
 133   1        PDIUSB_CS=1;
 134   1       return j;
 135   1      }
 136          
 137          unsigned char D12_ReadEndpoint_Int(unsigned char endp,unsigned char len,unsigned char *buf)
 138          {
 139   1               unsigned char i,j;
 140   1               PDIUSB_CS=0;
 141   1               Outportb(D12_COMMAND,endp);
 142   1               if((Inportb(D12_DATA)&0xff)==0)//"  define D12_FULLEMPTY as 0xFF  by newer
 143   1                        return 0;
 144   1               Outportb(D12_COMMAND,0x80+endp);
 145   1               i=Inportb(D12_DATA);
 146   1               i=i&0x60;
 147   1              
 148   1              
 149   1               Outportb(D12_COMMAND,0xF0);
 150   1               j=Inportb(D12_DATA);
 151   1               j=Inportb(D12_DATA);
 152   1               if(j>len)
 153   1                        j=len;
 154   1               for(i=0;i<j;i++)
 155   1                        *(buf+i)=Inportb(D12_DATA);
 156   1               Outportb(D12_COMMAND,0xF2);
 157   1               PDIUSB_CS=1;
 158   1               return j;
 159   1      }
 160          
 161          unsigned char D12_WriteEndpoint(unsigned char endp,unsigned char len,unsigned char * buf)
 162          {
 163   1       unsigned char i;
 164   1       PDIUSB_CS=0;
 165   1       Outportb(D12_COMMAND,endp);
 166   1       Inportb(D12_DATA);
 167   1       Outportb(D12_COMMAND,0xF0);
 168   1       Outportb(D12_DATA,0);
 169   1       Outportb(D12_DATA,len);
 170   1       for(i=0;i<len;i++)
 171   1        Outportb(D12_DATA,*(buf+i));
 172   1       Outportb(D12_COMMAND,0xFA);
 173   1        PDIUSB_CS=1;
 174   1       return len;
 175   1      }
 176          
 177          unsigned char D12_WriteEndpoint_Int(unsigned char endp,unsigned char len,unsigned char * buf)
C51 COMPILER V8.02   PDIUSB                                                                08/31/2007 18:23:38 PAGE 4   

 178          {
 179   1       unsigned char i;
 180   1       PDIUSB_CS=0;
 181   1       Outportb(D12_COMMAND,endp);
 182   1       Inportb(D12_DATA);
 183   1       Outportb(D12_COMMAND,0xF0);
 184   1       Outportb(D12_DATA,0);
 185   1       Outportb(D12_DATA,len);
 186   1       for(i=0;i<len;i++)
 187   1        Outportb(D12_DATA,*(buf+i));
 188   1       Outportb(D12_COMMAND,0xFA);
 189   1        PDIUSB_CS=1;
 190   1       return len;
 191   1      }
 192          
 193          void DisconnectUSB(void)
 194          {
 195   1               D12_SetMode(0x02,0x43);//SET TO ONE? by newer
 196   1      }
 197          
 198          void InitialUSBInt(void);
 199          void ConnectUSB(void)
 200          {
 201   1               EventFlags.Value = 0x0000;
 202   1               D12_SetMode(0x16,0x43);
 203   1               Delay1ms(100);
 204   1               InitialUSBInt();
 205   1      }
 206          
 207          void ReconnectUSB(void)
 208          {
 209   1               SUSPEND = 0;
 210   1               DisconnectUSB();
 211   1               Delay1ms(1000);
 212   1               ConnectUSB();
 213   1      }
 214          
 215          void InitialUSBInt(void)
 216          {
 217   1               IT0=0; //低电平中断触发
 218   1               EX0=1; //允许外部中断
 219   1               PX0=0; //优先级低
 220   1               EA =1;
 221   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    972    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     93      37
   PDATA SIZE       =   ----    ----
   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 + -