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

📄 xxgd12ci.lst

📁 一个51写的usb程序 测试过的
💻 LST
字号:
C51 COMPILER V6.20c  XXGD12CI                                                              01/16/2003 10:36:16 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE XXGD12CI
OBJECT MODULE PLACED IN Xxgd12ci.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE Xxgd12ci.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "xxgd12ci.h"
   2          #include "xxgmain.h"
   3          #include "xxghal.h"
   4          
   5          extern EPPFLAGS bEPPflags;
   6          
   7          //---------------------------------
   8          void outportcmd(unsigned char value)
   9          {
  10   1      
  11   1       //     	 unsigned char xdata *ext_address;
  12   1      	//     ext_address=D12_COMMAND;
  13   1      	//     *ext_address = value;              //   write cycle
  14   1      //  *((INT8 xdata *)D12_command) = val;
  15   1      //*/
  16   1      //unsigned char xdata *exAddress;
  17   1      //	exAddress = nPort;
  18   1      //	*exAddress = nVal;
  19   1      
  20   1      	*((unsigned char xdata *)D12_COMMAND)=value;	
  21   1      }
  22          void outportdata(unsigned char value)
  23          {
  24   1      
  25   1       //     	 unsigned char xdata *ext_address;
  26   1      	//     ext_address=D12_DATA;
  27   1      	//     *ext_address = value;     
  28   1         *((unsigned char xdata *)D12_DATA)=value;	
  29   1      }
  30          
  31          unsigned char inportb(void)
  32          {
  33   1      
  34   1       //  	     unsigned char c;
  35   1       //        unsigned char xdata *ext_address;
  36   1       //        ext_address=(D12_DATA&0xff00);
  37   1       //        c = *ext_address ;              //   read cycle
  38   1       //     	 return c;
  39   1       //return *((INT8 xdata *)D12_data);
  40   1       //*/
  41   1      
  42   1       //     	 unsigned char xdata *ext_address;
  43   1      	//     ext_address=D12_DATA;
  44   1      	//     *ext_address = value;     
  45   1       return *((unsigned xdata *)D12_DATA);
  46   1      }
  47          //--------------------------
  48          void D12_SetAddressEnable(unsigned char bAddress, unsigned char bEnable)
  49          {
  50   1      	if(bEPPflags.bits.in_isr == 0)
  51   1      		DISABLE;
  52   1      
  53   1      	outportcmd(0xD0);
  54   1      	if(bEnable)
  55   1      		bAddress |= 0x80;
C51 COMPILER V6.20c  XXGD12CI                                                              01/16/2003 10:36:16 PAGE 2   

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

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

 180   1      	//outportb(D12_COMMAND, 0xF4);
 181   1      	outportcmd(0xF4);
 182   1      	b1 = inportb();
 183   1      	j = inportb();
 184   1      	return b1;
 185   1      	//j = inportb();
 186   1      	//j <<= 8;
 187   1      	//j += b1;
 188   1      	//return j;
 189   1      }
 190          
 191          unsigned char D12_ReadLastTransactionStatus(unsigned char bEndp)
 192          {
 193   1      	//outportb(D12_COMMAND, 0x40 + bEndp);
 194   1      	outportcmd(0x40 + bEndp);
 195   1      	return inportb();
 196   1      }
 197          unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char len, unsigned char * buf)
 198          {
 199   1      	unsigned char i, j;
 200   1      
 201   1      	if(bEPPflags.bits.in_isr == 0)
 202   1      		DISABLE;
 203   1      	//--------------------------------
 204   1      	outportcmd(endp);			//选择端点
 205   1      	if((inportb() & D12_FULLEMPTY) == 0) {	//如果缓冲区为空,则返回
 206   2      		if(bEPPflags.bits.in_isr == 0)
 207   2      			ENABLE;
 208   2      		return 0;
 209   2      	}
 210   1      
 211   1      	outportcmd(0xF0);			//读缓冲区
 212   1      	j = inportb();
 213   1      	j = inportb();
 214   1      
 215   1      	if(j > len)
 216   1      		j = len;
 217   1      
 218   1      	for(i=0; i<j; i++)
 219   1      		*(buf+i) = inportb();
 220   1      
 221   1      	outportcmd(0xF2);				//缓冲区清空
 222   1      	//-------------------------------
 223   1      	if(bEPPflags.bits.in_isr == 0)
 224   1      		ENABLE;
 225   1      
 226   1      	return j;
 227   1      }
 228          
 229          unsigned char D12_SelectEndpoint(unsigned char bEndp)
 230          {
 231   1      	unsigned char c;
 232   1      
 233   1      	if(bEPPflags.bits.in_isr == 0)
 234   1      		DISABLE;
 235   1      
 236   1      	outportcmd(bEndp);
 237   1      	c = inportb();
 238   1      
 239   1      	if(bEPPflags.bits.in_isr == 0)
 240   1      		ENABLE;
 241   1      
C51 COMPILER V6.20c  XXGD12CI                                                              01/16/2003 10:36:16 PAGE 5   

 242   1      	return c;
 243   1      }
 244          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    503    ----
   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 + -