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

📄 d12ci.lst

📁 usbhost 开发码
💻 LST
字号:
C51 COMPILER V6.12  D12CI                                                                  07/30/2003 21:27:45 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE D12CI
OBJECT MODULE PLACED IN .\D12CI.OBJ
COMPILER INVOKED BY: f:\Keil\C51\BIN\C51.EXE .\D12CI.C LARGE DEBUG OBJECTEXTEND

stmt level    source

   1          //D12CI.c
   2          #include "common.h"
   3          #include "D12CI.h"
   4          #include "mainloop.h"
   5          
   6          extern EPPFLAGS bEPPflags;
   7          
   8          void outportb(unsigned int Addr,unsigned char Data)
   9          {
  10   1      	*((unsigned char xdata *)Addr) = Data;
  11   1      }
  12          
  13          unsigned char inportb(unsigned int Addr)
  14          {	
  15   1      	return *((unsigned char xdata *)Addr);
  16   1      }
  17          
  18          void D12_SetAddressEnable(uchar bAddress,uchar bEnable)
  19          {
  20   1      	outportb(D12_COMMAND,0xd0);
  21   1      	if(bEnable)
  22   1      		bAddress |= 0x80;
  23   1      	outportb(D12_DATA,bAddress);
  24   1      }
  25          
  26          void D12_SetEndpointEnable(uchar bEnable)
  27          {
  28   1      	outportb(D12_COMMAND,0xd8);
  29   1      	if(bEnable)
  30   1      		outportb(D12_DATA,1);
  31   1      	else
  32   1      		outportb(D12_DATA,0);
  33   1      }
  34          
  35          void D12_SetMode(uchar bConfig,uchar bClkDiv)
  36          {
  37   1      	outportb(D12_COMMAND,0xf3);
  38   1      	outportb(D12_DATA,bConfig);
  39   1      	outportb(D12_DATA,bClkDiv);
  40   1      }
  41          
  42          void D12_SetDMA(uchar bMode)
  43          {
  44   1      	outportb(D12_COMMAND,0xfb);
  45   1      	outportb(D12_DATA,bMode);
  46   1      }
  47          
  48          ushort D12_ReadInterruptRegister(void)
  49          {
  50   1      	uchar b1;
  51   1      	uint j;
  52   1      	outportb(D12_COMMAND,0xf4);
  53   1      	b1 = inportb(D12_DATA);
  54   1      	j = inportb(D12_DATA);
  55   1      	j <<= 8;
C51 COMPILER V6.12  D12CI                                                                  07/30/2003 21:27:45 PAGE 2   

  56   1      	j += b1;
  57   1      	return j;
  58   1      }
  59          
  60          uchar D12_SelectEndpoint(uchar bEndp)
  61          {
  62   1      	uchar c;
  63   1      	outportb(D12_COMMAND,bEndp);
  64   1      	c = inportb(D12_DATA);
  65   1      	return c;
  66   1      }
  67          
  68          uchar D12_ReadLastTransactionStatus(uchar bEndp)
  69          {
  70   1      	outportb(D12_COMMAND,0x40+bEndp);
  71   1      	return inportb(D12_DATA);
  72   1      }
  73          
  74          void D12_SetEndpointStatus(uchar bEndp,uchar bStalled)
  75          {
  76   1      	outportb(D12_COMMAND,0x40+bEndp);
  77   1      	outportb(D12_DATA,bStalled);
  78   1      }
  79          
  80          uchar D12_ReadEndpointStatus(uchar bEndp)
  81          {
  82   1      	outportb(D12_COMMAND,0x80+bEndp);
  83   1      	return inportb(D12_DATA);
  84   1      }
  85          
  86          void D12_SendResume(void)
  87          {
  88   1      	outportb(D12_COMMAND,0xf6);
  89   1      }
  90          
  91          ushort D12_ReadCurrentFrameNumber(void)
  92          {
  93   1      	ushort i,j;
  94   1      	outportb(D12_COMMAND,0xf5);
  95   1      	i = inportb(D12_DATA);
  96   1      	j = inportb(D12_DATA);
  97   1      	i += (j<<8);
  98   1      	return i;
  99   1      }
 100          
 101          uchar D12_ReadEndpoint(uchar endp,uchar len,uchar * buf)
 102          {
 103   1      	uchar i,j;
 104   1      	outportb(D12_COMMAND,endp);
 105   1      	if((inportb(D12_DATA)&0x01)==0)
 106   1      		return 0;
 107   1      	outportb(D12_COMMAND,0x80+endp);
 108   1      	i = inportb(D12_DATA);
 109   1      	i = i&0x60;
 110   1      	if(endp == 2)
 111   1      	{
 112   2      		if(i==0x60)
 113   2      			bEPPflags.bits.ep1buf_full = 1;
 114   2      		else
 115   2      			bEPPflags.bits.ep1buf_full = 0;
 116   2      	}
 117   1      	if(endp ==4)
C51 COMPILER V6.12  D12CI                                                                  07/30/2003 21:27:45 PAGE 3   

 118   1      	{
 119   2      		if(i==0x60)
 120   2      			bEPPflags.bits.ep2buf_full = 1;
 121   2      		else
 122   2      			bEPPflags.bits.ep2buf_full = 0;
 123   2      	}
 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      	return j;
 133   1      }
 134          
 135          uchar D12_WriteEndpoint(uchar endp,uchar len ,uchar * buf)
 136          {
 137   1      	uchar i;
 138   1      	outportb(D12_COMMAND,endp);
 139   1      	inportb(D12_DATA);
 140   1      	outportb(D12_COMMAND,0xf0);
 141   1      	outportb(D12_DATA,0);
 142   1      	outportb(D12_DATA,len);
 143   1      	for(i = 0;i<len;i++)
 144   1      		outportb(D12_DATA,*(buf+i));
 145   1      	outportb(D12_COMMAND,0xfa);
 146   1      	return len;
 147   1      }
 148          
 149          void D12_AcknowledgeEnppoint(uchar endp)
 150          {
 151   1      	outportb(D12_COMMAND,endp);
 152   1      	outportb(D12_COMMAND,0xf1);
 153   1      	if(endp == 0)
 154   1      		outportb(D12_COMMAND,0xf2);
 155   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    545    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----      10
   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 + -