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

📄 bulkout.lst

📁 用Keil uVision2编写得批量in传输程序
💻 LST
字号:
C51 COMPILER V6.10  BULKOUT                                                                06/15/2006 20:27:45 PAGE 1   


C51 COMPILER V6.10, COMPILATION OF MODULE BULKOUT
OBJECT MODULE PLACED IN .\bulkout.obj
COMPILER INVOKED BY: F:\keilc51\C51\BIN\C51.EXE ..\bulkout\bulkout.c DEBUG OBJECTEXTEND PRINT(.\bulkout.lst) OBJECT(.\bu
                    -lkout.obj) 

stmt level    source

   1          // bulkout.C  7-25-00   LTH
   2          // A Simple bulk OUT transfer. Display bytes received over EP2OUT in 7-seg readout
   3          xdata char OUT2BUF[64] 	_at_ 0x7DC0;	// 64-byte buffer for EP2-OUT data
   4          xdata char OUT2BC 	_at_ 0x7FC9;	// EP2OUT Byte Count Register
   5          xdata char OUT2CS 	_at_ 0x7FC8;	// EP2OUT Control/Status register
   6          xdata char I2CS	  	_at_ 0x7FA5;	// I2C port Control/Status
   7          xdata char I2DAT  		_at_ 0x7fA6;    	// I2C data
   8          #define	bBSY		0x02		// OUT2CS.1 is busy bit
   9          #define 	bSTOPBIT	0x40           	// I2CS.6 is i2c STOP bit
  10          #define 	DISPLAYTIME	200            	// approx. milliseconds
  11          char count,j;                          			// number of digits sent over EP2OUT
  12          char xdata Digit[ ]=
  13          {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,0x88,0x83,0xc6,0xa1,0x86,0x8e};
  14          void display_hex (char val);			// display 'val' as hex in 7-seg readout
  15          void delay (int time);
  16          void display_hex (char val)            	// display one hex digit (over i2c bus)
  17          {
  18   1      	while (I2CS & bSTOPBIT);	// wait for STOP bit LOW--last operation complete
  19   1      	I2CS = 0x80;		// set the START bit
  20   1      	I2DAT = 0x42;		// IO expander address=42, LSB=0 for write
  21   1      	while ((I2CS&0x01)!=0x01);	// wait for DONE=1 (i2c transmit complete)
  22   1      	I2DAT = val;                    	// send the data byte
  23   1      	while ((I2CS&0x01)!=0x01);	// wait for DONE=1
  24   1      	I2CS = 0x40;		// set the STOP bit
  25   1      }
  26          int i,k;
  27          void delay (int time)
  28          {
  29   1      for (k=0; k<time; k++)		// kill some milliseconds
  30   1      for (i=0; i<400; i++);
  31   1      }
  32          main()
  33          {
  34   1      while (1)				// forever
  35   1      	{
  36   2      	while (OUT2CS & bBSY);	// loop while EP2OUT busy bit is HI
  37   2      	count = OUT2BC; 		// how many bytes were sent over EP2OUT?
  38   2      	for(j=0; j<count; j++)
  39   2      	{
  40   3      	display_hex(Digit[OUT2BUF[j]]);	// look up segments
  41   3      	delay(DISPLAYTIME); 	// delay so we can see it
  42   3      	display_hex(0xFF);	// blank display (active-low segments; 1=off)
  43   3      	delay(DISPLAYTIME);
  44   3      	}
  45   2          	OUT2BC	  = 0;		// arm the next OUT2 transfer (BC=x)
  46   2      	}	
  47   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    190    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     16    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V6.10  BULKOUT                                                                06/15/2006 20:27:45 PAGE 2   

   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 + -