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

📄 bulkout.c

📁 上传了一个批量传输得IN程序
💻 C
字号:
// bulkout.C  7-25-00   LTH
// A Simple bulk OUT transfer. Display bytes received over EP2OUT in 7-seg readout
xdata char OUT2BUF[64] 	_at_ 0x7DC0;	// 64-byte buffer for EP2-OUT data
xdata char OUT2BC 	_at_ 0x7FC9;	// EP2OUT Byte Count Register
xdata char OUT2CS 	_at_ 0x7FC8;	// EP2OUT Control/Status register
xdata char I2CS	  	_at_ 0x7FA5;	// I2C port Control/Status
xdata char I2DAT  		_at_ 0x7fA6;    	// I2C data
#define	bBSY		0x02		// OUT2CS.1 is busy bit
#define 	bSTOPBIT	0x40           	// I2CS.6 is i2c STOP bit
#define 	DISPLAYTIME	200            	// approx. milliseconds
char count,j;                          			// number of digits sent over EP2OUT
char xdata Digit[ ]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void display_hex (char val);			// display 'val' as hex in 7-seg readout
void delay (int time);
void display_hex (char val)            	// display one hex digit (over i2c bus)
{
	while (I2CS & bSTOPBIT);	// wait for STOP bit LOW--last operation complete
	I2CS = 0x80;		// set the START bit
	I2DAT = 0x42;		// IO expander address=42, LSB=0 for write
	while ((I2CS&0x01)!=0x01);	// wait for DONE=1 (i2c transmit complete)
	I2DAT = val;                    	// send the data byte
	while ((I2CS&0x01)!=0x01);	// wait for DONE=1
	I2CS = 0x40;		// set the STOP bit
}
int i,k;
void delay (int time)
{
for (k=0; k<time; k++)		// kill some milliseconds
for (i=0; i<400; i++);
}
main()
{
while (1)				// forever
	{
	while (OUT2CS & bBSY);	// loop while EP2OUT busy bit is HI
	count = OUT2BC; 		// how many bytes were sent over EP2OUT?
	for(j=0; j<count; j++)
	{
	display_hex(Digit[OUT2BUF[j]]);	// look up segments
	delay(DISPLAYTIME); 	// delay so we can see it
	display_hex(0xFF);	// blank display (active-low segments; 1=off)
	delay(DISPLAYTIME);
	}
    	OUT2BC	  = 0;		// arm the next OUT2 transfer (BC=x)
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -