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

📄 usbd12.lst

📁 at89c51+isp1581控制程序(c语言源代码).包含快速模式和高速模式
💻 LST
字号:
C51 COMPILER V6.20c  USBD12                                                                12/03/2002 17:19:43 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE USBD12
OBJECT MODULE PLACED IN USBD12.OBJ
COMPILER INVOKED BY: E:\WIN98\HARDWARE\KEIL620\C51\BIN\C51.EXE USBD12.C DB OE SMALL ROM(LARGE) 

stmt level    source

   1          
   2          #include "HAL.H"
   3          #include "SMPro.H"
   4          #include "USBD12.H"
   5          #include "VDOR.H"
   6          //#include "FLASH.H"
   7          
   8          extern ZBOARDFLAGS bZBoardFlags;
   9          //extern unsigned char idata GenBuf[GENBUF_LENGH];
  10          extern unsigned char nFlashPhase;
  11          extern CODE_DATA idata CodeData;
  12          /*
  13          void USBD12_SetAddressEnable(unsigned char bAddress, unsigned char bEnable)
  14          {
  15          	if(bZBoardFlags.bits.bIN_ISR == 0)
  16          		DISABLE_INTERRUPTS;
  17          
  18          //#ifdef PARALLEL_BUS
  19          //	P1 &= 0xf1;	// Enable D12
  20          //#endif
  21          	ENABLE_D12;
  22          
  23          	outportb(IC_D12_COMMAND, 0xD0);
  24          	if(bEnable)
  25          		bAddress |= 0x80;
  26          	outportb(IC_D12_DATA, bAddress);
  27          	
  28          //#ifdef PARALLEL_BUS
  29          //	P1 |= 0x0e;	// Disable D12
  30          //#endif
  31          	DISABLE_D12;
  32          	if(bZBoardFlags.bits.bIN_ISR == 0)
  33          		ENABLE_INTERRUPTS;
  34          }
  35          
  36          void USBD12_SetEndpointEnable(unsigned char bEnable)
  37          {
  38          	if(bZBoardFlags.bits.bIN_ISR == 0)
  39          		DISABLE_INTERRUPTS;
  40          
  41          //#ifdef PARALLEL_BUS
  42          //	P1 &= 0xf1;	// Enable D12
  43          //#endif
  44          	ENABLE_D12;
  45          	outportb(IC_D12_COMMAND, 0xD8);
  46          	if(bEnable)
  47          		outportb(IC_D12_DATA, 1);
  48          	else
  49          		outportb(IC_D12_DATA, 0);
  50          
  51          //#ifdef PARALLEL_BUS
  52          //	P1 |= 0x0e;	// Disable D12
  53          //#endif
  54          	DISABLE_D12;
  55          	if(bZBoardFlags.bits.bIN_ISR == 0)
C51 COMPILER V6.20c  USBD12                                                                12/03/2002 17:19:43 PAGE 2   

  56          		ENABLE_INTERRUPTS;
  57          }
  58          
  59          void USBD12_SetMode(unsigned char bConfig, unsigned char bClkDiv)
  60          {
  61          	if(bZBoardFlags.bits.bIN_ISR == 0)
  62          		DISABLE_INTERRUPTS;
  63          
  64          //#ifdef PARALLEL_BUS
  65          //	P1 &= 0xf1;	// Enable D12
  66          //#endif
  67          	ENABLE_D12;
  68          	outportb(IC_D12_COMMAND, 0xF3);
  69          	outportb(IC_D12_DATA, bConfig);
  70          	outportb(IC_D12_DATA, bClkDiv);
  71          
  72          //#ifdef PARALLEL_BUS
  73          //	P1 |= 0x0e;	// Disable D12
  74          //#endif
  75          	DISABLE_D12;
  76          	if(bZBoardFlags.bits.bIN_ISR == 0)
  77          		ENABLE_INTERRUPTS;
  78          }
  79          
  80          void USBD12_SetDMA(unsigned char bMode)
  81          {
  82          	if(bZBoardFlags.bits.bIN_ISR == 0)
  83          		DISABLE_INTERRUPTS;
  84          
  85          //#ifdef PARALLEL_BUS
  86          //	P1 &= 0xf1;	// Enable D12
  87          //#endif
  88          	ENABLE_D12;
  89          	outportb(IC_D12_COMMAND, 0xFB);
  90          	outportb(IC_D12_DATA, bMode);
  91          
  92          //#ifdef PARALLEL_BUS
  93          //	P1 |= 0x0e;	// Disable D12
  94          //#endif
  95          	DISABLE_D12;
  96          	if(bZBoardFlags.bits.bIN_ISR == 0)
  97          		ENABLE_INTERRUPTS;
  98          }
  99          
 100          unsigned short USBD12_ReadInterruptRegister(void)
 101          {
 102          	unsigned char b1;
 103          	unsigned int j;
 104          
 105          //#ifdef PARALLEL_BUS
 106          //	P1 &= 0xf1;	// Enable D12
 107          //#endif
 108          	ENABLE_D12;
 109          	outportb(IC_D12_COMMAND, 0xF4);
 110          	b1 = inportb(IC_D12_DATA);
 111          	j = inportb(IC_D12_DATA);
 112          
 113          //#ifdef PARALLEL_BUS
 114          //	P1 |= 0x0e;	// Disable D12
 115          //#endif
 116          	DISABLE_D12;
 117          	j <<= 8;
C51 COMPILER V6.20c  USBD12                                                                12/03/2002 17:19:43 PAGE 3   

 118          	j += b1;
 119          
 120          	return j;
 121          }
 122          
 123          unsigned char USBD12_SelectEndpoint(unsigned char bEndp)
 124          {
 125          	unsigned char c;
 126          
 127          	if(bZBoardFlags.bits.bIN_ISR == 0)
 128          		DISABLE_INTERRUPTS;
 129          
 130          //#ifdef PARALLEL_BUS
 131          //	P1 &= 0xf1;	// Enable D12
 132          //#endif
 133          	ENABLE_D12;
 134          	outportb(IC_D12_COMMAND, bEndp);
 135          	c = inportb(IC_D12_DATA);
 136          
 137          //#ifdef PARALLEL_BUS
 138          //	P1 |= 0x0e;	// Disable D12
 139          //#endif
 140          	DISABLE_D12;
 141          	if(bZBoardFlags.bits.bIN_ISR == 0)
 142          		ENABLE_INTERRUPTS;
 143          
 144          	return c;
 145          }
 146          
 147          unsigned char USBD12_ReadLastTransactionStatus(unsigned char bEndp)
 148          {
 149          	unsigned char nVal;
 150          //#ifdef PARALLEL_BUS
 151          //	P1 &= 0xf1;	// Enable D12
 152          //#endif
 153          	ENABLE_D12;
 154          	outportb(IC_D12_COMMAND, 0x40 + bEndp);
 155          	nVal = inportb(IC_D12_DATA);
 156          
 157          //#ifdef PARALLEL_BUS
 158          //	P1 |= 0x0e;	// Disable D12
 159          //#endif
 160          	DISABLE_D12;	
 161          	return nVal;
 162          }
 163          
 164          
 165          void USBD12_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled)
 166          {
 167          	if(bZBoardFlags.bits.bIN_ISR == 0)
 168          		DISABLE_INTERRUPTS;
 169          
 170          //#ifdef PARALLEL_BUS
 171          //	P1 &= 0xf1;	// Enable D12
 172          //#endif
 173          	ENABLE_D12;
 174          	outportb(IC_D12_COMMAND, 0x40 + bEndp);
 175          	outportb(IC_D12_DATA, bStalled);
 176          
 177          //#ifdef PARALLEL_BUS
 178          //	P1 |= 0x0e;	// Disable D12
 179          //#endif
C51 COMPILER V6.20c  USBD12                                                                12/03/2002 17:19:43 PAGE 4   

 180          	DISABLE_D12;
 181          	if(bZBoardFlags.bits.bIN_ISR == 0)
 182          		ENABLE_INTERRUPTS;
 183          }
 184          
 185          unsigned char USBD12_ReadEndpoint(unsigned char endp, unsigned char * buf, unsigned char len)
 186          {
 187          	unsigned char i, j, k = 0;
 188          
 189          	if(bZBoardFlags.bits.bIN_ISR == 0)
 190          		DISABLE_INTERRUPTS;
 191          
 192          //#ifdef PARALLEL_BUS
 193          //	P1 &= 0xf1;	// Enable D12
 194          //#endif
 195          	ENABLE_D12;
 196          	outportb(IC_D12_COMMAND, endp);
 197          	if((inportb(IC_D12_DATA) & USBD12_FULLEMPTY) == 0) {
 198          		if(bZBoardFlags.bits.bIN_ISR == 0)
 199          			ENABLE_INTERRUPTS;
 200          		return 0;
 201          	}
 202          
 203          	outportb(IC_D12_COMMAND, 0xF0);
 204          	j = inportb(IC_D12_DATA);
 205          	j = inportb(IC_D12_DATA);
 206          
 207          	if(j > len)
 208          		j = len;
 209          
 210          	for(i=0; i<j; i++)
 211          		*(buf+i) = inportb(IC_D12_DATA);
 212          
 213          	outportb(IC_D12_COMMAND, 0xF2);
 214          
 215          //#ifdef PARALLEL_BUS
 216          //	P1 |= 0x0e;	// Disable D12
 217          //#endif
 218          	DISABLE_D12;
 219          	if(bZBoardFlags.bits.bIN_ISR == 0)
 220          		ENABLE_INTERRUPTS;
 221          
 222          	return j;
 223          }
 224          
 225          unsigned char USBD12_ReadEndpointStatus(unsigned char bEndp)
 226          {
 227          	unsigned char c;
 228          
 229          	if(bZBoardFlags.bits.bIN_ISR == 0)
 230          		DISABLE_INTERRUPTS;
 231          
 232          //#ifdef PARALLEL_BUS
 233          //	P1 &= 0xf1;	// Enable D12
 234          //#endif
 235          	ENABLE_D12;
 236          	outportb(IC_D12_COMMAND, 0x80 + bEndp);
 237          	c = inportb(IC_D12_DATA);
 238          
 239          //#ifdef PARALLEL_BUS
 240          //	P1 |= 0x0e;	// Disable D12
 241          //#endif
C51 COMPILER V6.20c  USBD12                                                                12/03/2002 17:19:43 PAGE 5   

 242          	DISABLE_D12;
 243          	if(bZBoardFlags.bits.bIN_ISR == 0)
 244          		ENABLE_INTERRUPTS;
 245          
 246          	return c;
 247          }
 248          /*
 249          void USBD12_SendResume(void)
 250          {
 251          #ifdef PARALLEL_BUS
 252          	P1 &= 0xf1;	// Enable D12
 253          #endif
 254          
 255          	outportb(IC_D12_COMMAND, 0xF6);
 256          
 257          #ifdef PARALLEL_BUS
 258          	P1 |= 0x0e;	// Disable D12
 259          #endif
 260          
 261          }
 262          
 263          unsigned short USBD12_ReadCurrentFrameNumber(void)
 264          {
 265          	unsigned short i,j;
 266          
 267          	if(bZBoardFlags.bits.bIN_ISR == 0)
 268          		DISABLE_INTERRUPTS;
 269          
 270          #ifdef PARALLEL_BUS
 271          	P1 &= 0xf1;	// Enable D12
 272          #endif
 273          
 274          	outportb(IC_D12_COMMAND, 0xF5);
 275          	i= inportb(IC_D12_DATA);
 276          	j = inportb(IC_D12_DATA);
 277          
 278          #ifdef PARALLEL_BUS
 279          	P1 |= 0x0e;	// Disable D12
 280          #endif
 281          
 282          	i += (j<<8);
 283          
 284          	if(bZBoardFlags.bits.bIN_ISR == 0)
 285          		ENABLE_INTERRUPTS;
 286          
 287          	return i;
 288          }
 289          
 290          
 291          */
 292          // USBD12_ReadMainEndpoint() added to support double-buffering.
 293          // Caller should assume maxium 128 bytes of returned data.
 294          
 295          /*
 296          unsigned char USBD12_WriteEndpoint(unsigned char endp, unsigned char * buf, unsigned char len)
 297          {
 298          	unsigned char i;
 299          
 300          	if(bZBoardFlags.bits.bIN_ISR == 0)
 301          		DISABLE_INTERRUPTS;
 302          
 303          //#ifdef PARALLEL_BUS
C51 COMPILER V6.20c  USBD12                                                                12/03/2002 17:19:43 PAGE 6   

 304          //	P1 &= 0xf1;	// Enable D12
 305          //#endif
 306          	ENABLE_D12;
 307          	outportb(IC_D12_COMMAND, endp);
 308          	inportb(IC_D12_DATA);
 309          
 310          	outportb(IC_D12_COMMAND, 0xF0);
 311          	outportb(IC_D12_DATA, 0);
 312          	outportb(IC_D12_DATA, len);
 313          
 314          	for(i=0; i<len; i++)
 315          		outportb(IC_D12_DATA, *(buf+i));
 316          
 317          	outportb(IC_D12_COMMAND, 0xFA);
 318          //#ifdef PARALLEL_BUS
 319          //	P1 |= 0x0e;	// Disable D12
 320          //#endif
 321          	DISABLE_D12;
 322          	if(bZBoardFlags.bits.bIN_ISR == 0)
 323          		ENABLE_INTERRUPTS;
 324          
 325          	return len;
 326          }
 327          
 328          void USBD12_AcknowledgeEndpoint(unsigned char endp)
 329          {
 330          //#ifdef PARALLEL_BUS
 331          //	P1 &= 0xf1;	// Enable D12
 332          //#endif
 333          	ENABLE_D12;
 334          	outportb(IC_D12_COMMAND, endp);
 335          	outportb(IC_D12_COMMAND, 0xF1);
 336          	if(endp == 0)
 337          		outportb(IC_D12_COMMAND, 0xF2);
 338          
 339          //#ifdef PARALLEL_BUS
 340          //	P1 |= 0x0e;	// Disable D12
 341          //#endif
 342          	DISABLE_D12;	
 343          }
 344          
 345          
 346          */


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