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

📄 testregs.h

📁 USB2.0原理与工程开发光盘(第二版)
💻 H
字号:
#ifndef TESTREGS_H	
#define TESTREGS_H

#ifndef TESTHEADER_H
#error include 'testheader.h' before including this file.
#endif	

#define bmSTRETCH 0x07
#define FW_STRETCH_VALUE 0x0	

sfr SP      = 0x81;
sfr DPL     = 0x82;
sfr DPH     = 0x83;
sfr DPL1    = 0x84;
sfr DPH1    = 0x85;
sfr DPS     = 0x86;     
                        sbit SEL   = 0x86+0;
sfr PCON    = 0x87;	
sfr TCON    = 0x88;	
			sbit IT0    = 0x88+0;
			sbit IE0    = 0x88+1;
			sbit IT1    = 0x88+2;
			sbit IE1    = 0x88+3;
			sbit TR0    = 0x88+4;
			sbit TF0    = 0x88+5;
			sbit TR1    = 0x88+6;
			sbit TF1    = 0x88+7;
sfr TMOD    = 0x89;    
sfr TL0     = 0x8A;
sfr TL1     = 0x8B;
sfr TH0     = 0x8C;
sfr TH1     = 0x8D;
sfr CKCON   = 0x8E;    
sfr SPC_FNC = 0x8F;    
sfr EXIF    = 0x91;    
sfr MPAGE   = 0x92;
sfr SCON0   = 0x98;	
			sbit RI    = 0x98+0;
			sbit TI    = 0x98+1;
			sbit RB8   = 0x98+2;
			sbit TB8   = 0x98+3;
			sbit REN   = 0x98+4;
			sbit SM2   = 0x98+5;
			sbit SM1   = 0x98+6;
			sbit SM0   = 0x98+7;
sfr SBUF0  = 0x99;
sfr IE     = 0xA8;
			sbit EX0   = 0xA8+0;
			sbit ET0   = 0xA8+1;
			sbit EX1   = 0xA8+2;
			sbit ET1   = 0xA8+3;
			sbit ES0   = 0xA8+4;
			sbit ET2   = 0xA8+5;
			sbit ES1   = 0xA8+6;
			sbit EA    = 0xA8+7;
sfr IP     = 0xB8;  
			sbit PX0   = 0xB8+0;
			sbit PT0   = 0xB8+1;
			sbit PX1   = 0xB8+2;
			sbit PT1   = 0xB8+3;
			sbit PS0   = 0xB8+4;
			sbit PT2   = 0xB8+5;
			sbit PS1   = 0xB8+6;
sfr SCON1  = 0xC0;	
			sbit RI1   = 0xC0+0;
			sbit TI1   = 0xC0+1;
			sbit RB81  = 0xC0+2;
			sbit TB81  = 0xC0+3;
			sbit REN1  = 0xC0+4;
			sbit SM21  = 0xC0+5;
			sbit SM11  = 0xC0+6;
			sbit SM01  = 0xC0+7;
sfr SBUF1  = 0xC1;
sfr T2CON  = 0xC8;	
			sbit CP_RL2 = 0xC8+0;
			sbit C_T2  = 0xC8+1;
			sbit TR2   = 0xC8+2;
			sbit EXEN2 = 0xC8+3;
			sbit TCLK  = 0xC8+4;
			sbit RCLK  = 0xC8+5;
			sbit EXF2  = 0xC8+6;
			sbit TF2   = 0xC8+7;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2    = 0xCC;
sfr TH2    = 0xCD;
sfr PSW    = 0xD0;	
			sbit P     = 0xD0+0;
			sbit FL    = 0xD0+1;
			sbit OV    = 0xD0+2;
			sbit RS0   = 0xD0+3;
			sbit RS1   = 0xD0+4;
			sbit F0    = 0xD0+5;
			sbit AC    = 0xD0+6;
			sbit CY    = 0xD0+7;
sfr EICON  = 0xD8;     
			sbit INT6  = 0xD8+3;
			sbit RESI  = 0xD8+4;
			sbit ERESI = 0xD8+5;
			sbit SMOD1 = 0xD8+7;
sfr ACC    = 0xE0;
sfr EIE    = 0xE8; 
			sbit EUSB    = 0xE8+0;
			sbit EI2C    = 0xE8+1;
			sbit EIEX4   = 0xE8+2;
			sbit EIEX5   = 0xE8+3;
			sbit EIEX6   = 0xE8+4;
sfr B      = 0xF0;
sfr EIP    = 0xF8; 
			sbit PUSB    = 0xF8+0;
			sbit PI2C    = 0xF8+1;
			sbit EIPX4   = 0xF8+2;
			sbit EIPX5   = 0xF8+3;
			sbit EIPX6   = 0xF8+4;

typedef struct
{
	BYTE	cntrl;			
	BYTE	bytes;			
}EPIOC; 

#ifdef ALLOCATE_EXTERN   
#define EXTERN
#define _AT_ _at_
#else
#define EXTERN extern
#define _AT_ ;/ ## /
#endif

EXTERN xdata volatile BYTE OUT7BUF[64]	_AT_	0x7B40;
EXTERN xdata volatile BYTE IN7BUF[64]	_AT_	0x7B80;
EXTERN xdata volatile BYTE OUT6BUF[64]	_AT_	0x7BC0;
EXTERN xdata volatile BYTE IN6BUF[64]	_AT_	0x7C00;
EXTERN xdata volatile BYTE OUT5BUF[64]	_AT_	0x7C40;
EXTERN xdata volatile BYTE IN5BUF[64]	_AT_	0x7C80;
EXTERN xdata volatile BYTE OUT4BUF[64]	_AT_	0x7CC0;
EXTERN xdata volatile BYTE IN4BUF[64]	_AT_	0x7D00;
EXTERN xdata volatile BYTE OUT3BUF[64]	_AT_	0x7D40;
EXTERN xdata volatile BYTE IN3BUF[64]	_AT_	0x7D80;
EXTERN xdata volatile BYTE OUT2BUF[64]	_AT_	0x7DC0;
EXTERN xdata volatile BYTE IN2BUF[64]	_AT_	0x7E00;
EXTERN xdata volatile BYTE OUT1BUF[64]	_AT_	0x7E40;
EXTERN xdata volatile BYTE IN1BUF[64]	_AT_	0x7E80;
EXTERN xdata volatile BYTE OUT0BUF[64]	_AT_	0x7EC0;
EXTERN xdata volatile BYTE IN0BUF[64]	_AT_	0x7F00;
EXTERN xdata volatile BYTE OUT8DATA	_AT_	0x7F60;
EXTERN xdata volatile BYTE OUT9DATA	_AT_	0x7F61;
EXTERN xdata volatile BYTE OUT10DATA	_AT_	0x7F62;
EXTERN xdata volatile BYTE OUT11DATA	_AT_	0x7F63;
EXTERN xdata volatile BYTE OUT12DATA	_AT_	0x7F64;
EXTERN xdata volatile BYTE OUT13DATA	_AT_	0x7F65;
EXTERN xdata volatile BYTE OUT14DATA	_AT_	0x7F66;
EXTERN xdata volatile BYTE OUT15DATA	_AT_	0x7F67;
EXTERN xdata volatile BYTE IN8DATA	_AT_	0x7F68;
EXTERN xdata volatile BYTE IN9DATA	_AT_	0x7F69;
EXTERN xdata volatile BYTE IN10DATA	_AT_	0x7F6A;
EXTERN xdata volatile BYTE IN11DATA	_AT_	0x7F6B;
EXTERN xdata volatile BYTE IN12DATA	_AT_	0x7F6C;
EXTERN xdata volatile BYTE IN13DATA	_AT_	0x7F6D;
EXTERN xdata volatile BYTE IN14DATA	_AT_	0x7F6E;
EXTERN xdata volatile BYTE IN15DATA	_AT_	0x7F6F;
EXTERN xdata volatile BYTE OUT8BCH	_AT_	0x7F70;
EXTERN xdata volatile BYTE OUT8BCL	_AT_	0x7F71;
EXTERN xdata volatile BYTE OUT9BCH	_AT_	0x7F72;
EXTERN xdata volatile BYTE OUT9BCL	_AT_	0x7F73;
EXTERN xdata volatile BYTE OUT10BCH	_AT_	0x7F74;
EXTERN xdata volatile BYTE OUT10BCL	_AT_	0x7F75;
EXTERN xdata volatile BYTE OUT11BCH	_AT_	0x7F76;
EXTERN xdata volatile BYTE OUT11BCL	_AT_	0x7F77;
EXTERN xdata volatile BYTE OUT12BCH	_AT_	0x7F78;
EXTERN xdata volatile BYTE OUT12BCL	_AT_	0x7F79;
EXTERN xdata volatile BYTE OUT13BCH	_AT_	0x7F7A;
EXTERN xdata volatile BYTE OUT13BCL	_AT_	0x7F7B;
EXTERN xdata volatile BYTE OUT14BCH	_AT_	0x7F7C;
EXTERN xdata volatile BYTE OUT14BCL	_AT_	0x7F7D;
EXTERN xdata volatile BYTE OUT15BCH	_AT_	0x7F7E;
EXTERN xdata volatile BYTE OUT15BCL	_AT_	0x7F7F;
extern xdata volatile BYTE CPUCS	_AT_	0x7F92;
EXTERN xdata volatile BYTE PORTACFG	_AT_	0x7F93;
EXTERN xdata volatile BYTE PORTBCFG	_AT_	0x7F94;
EXTERN xdata volatile BYTE PORTCCFG	_AT_	0x7F95;
EXTERN xdata volatile BYTE OUTA		_AT_	0x7F96;
EXTERN xdata volatile BYTE OUTB		_AT_	0x7F97;
EXTERN xdata volatile BYTE OUTC		_AT_	0x7F98;
EXTERN xdata volatile BYTE PINSA	_AT_	0x7F99;
EXTERN xdata volatile BYTE PINSB	_AT_	0x7F9A;
EXTERN xdata volatile BYTE PINSC	_AT_	0x7F9B;
EXTERN xdata volatile BYTE OEA		_AT_	0x7F9C;
EXTERN xdata volatile BYTE OEB		_AT_	0x7F9D;
EXTERN xdata volatile BYTE OEC		_AT_	0x7F9E;
EXTERN xdata volatile BYTE ISOERR	_AT_	0x7FA0;
EXTERN xdata volatile BYTE ISOCTL	_AT_	0x7FA1;
EXTERN xdata volatile BYTE ZBCOUT	_AT_	0x7FA2;
EXTERN xdata volatile BYTE IVEC		_AT_	0x7FA8;
EXTERN xdata volatile BYTE IN07IRQ	_AT_	0x7FA9;
EXTERN xdata volatile BYTE OUT07IRQ	_AT_	0x7FAA;
EXTERN xdata volatile BYTE USBIRQ	_AT_	0x7FAB;
EXTERN xdata volatile BYTE IN07IEN	_AT_	0x7FAC;
EXTERN xdata volatile BYTE OUT07IEN	_AT_	0x7FAD;
EXTERN xdata volatile BYTE USBIEN	_AT_	0x7FAE;
EXTERN xdata volatile BYTE USBBAV	_AT_	0x7FAF;
EXTERN xdata volatile EPIOC EPIO[16]	_AT_	0x7FB4;
EXTERN xdata volatile BYTE SUDPTRH	_AT_	0x7FD4;
EXTERN xdata volatile BYTE SUDPTRL	_AT_	0x7FD5;
EXTERN xdata volatile BYTE USBCS	_AT_	0x7FD6;
EXTERN xdata volatile BYTE TOGCTL	_AT_	0x7FD7;
EXTERN xdata volatile BYTE USBFRAMEL	_AT_	0x7FD8;
EXTERN xdata volatile BYTE USBFRAMEH	_AT_	0x7FD9;
EXTERN xdata volatile BYTE IN07VAL	_AT_	0x7FDE;
EXTERN xdata volatile BYTE OUT07VAL	_AT_	0x7FDF;
EXTERN xdata volatile BYTE INISOVAL	_AT_	0x7FE0;
EXTERN xdata volatile BYTE OUTISOVAL	_AT_	0x7FE1;
EXTERN xdata volatile BYTE FASTXFR	_AT_	0x7FE2;
EXTERN xdata volatile BYTE AUTOPTRH	_AT_	0x7FE3;
EXTERN xdata volatile BYTE AUTOPTRL	_AT_	0x7FE4;
EXTERN xdata volatile BYTE AUTODATA	_AT_	0x7FE5;
EXTERN xdata volatile BYTE SETUPDAT[8]	_AT_	0x7FE8;
EXTERN xdata volatile BYTE OUT8ADDR	_AT_	0x7FF0;
EXTERN xdata volatile BYTE OUT9ADDR	_AT_	0x7FF1;
EXTERN xdata volatile BYTE OUT10ADDR	_AT_	0x7FF2;
EXTERN xdata volatile BYTE OUT11ADDR	_AT_	0x7FF3;
EXTERN xdata volatile BYTE OUT12ADDR	_AT_	0x7FF4;
EXTERN xdata volatile BYTE OUT13ADDR	_AT_	0x7FF5;
EXTERN xdata volatile BYTE OUT14ADDR	_AT_	0x7FF6;
EXTERN xdata volatile BYTE OUT15ADDR	_AT_	0x7FF7;
EXTERN xdata volatile BYTE IN8ADDR	_AT_	0x7FF8;
EXTERN xdata volatile BYTE IN9ADDR	_AT_	0x7FF9;
EXTERN xdata volatile BYTE IN10ADDR	_AT_	0x7FFA;
EXTERN xdata volatile BYTE IN11ADDR	_AT_	0x7FFB;
EXTERN xdata volatile BYTE IN12ADDR	_AT_	0x7FFC;
EXTERN xdata volatile BYTE IN13ADDR	_AT_	0x7FFD;
EXTERN xdata volatile BYTE IN14ADDR	_AT_	0x7FFE;
EXTERN xdata volatile BYTE IN15ADDR	_AT_	0x7FFF;
#undef EXTERN
#undef _AT_


#define bmBIT0	0x01
#define bmBIT1	0x02
#define bmBIT2	0x04
#define bmBIT3	0x08
#define bmBIT4	0x10
#define bmBIT5	0x20
#define bmBIT6	0x40
#define bmBIT7	0x80

#define bmEP8			bmBIT0
#define bmEP9			bmBIT1
#define bmEP10			bmBIT2
#define bmEP11			bmBIT3
#define bmEP12			bmBIT4
#define bmEP13			bmBIT5
#define bmEP14			bmBIT6
#define bmEP15			bmBIT7

#define bmCLK24OE		bmBIT1
#define bm8052RES		bmBIT0
   
#define bmFRD			bmBIT5
#define bmFWR			bmBIT4

#define bmRD			bmBIT7
#define bmWR			bmBIT6
#define bmT1			bmBIT5
#define bmT0			bmBIT4
#define bmINT1			bmBIT3
#define bmINT0			bmBIT2
#define bmTXD0			bmBIT1
#define bmRXD0			bmBIT0

#define bmIV4			bmBIT6
#define bmIV3			bmBIT5
#define bmIV2			bmBIT4
#define bmIV1			bmBIT3
#define bmIV0			bmBIT2

#define bmEP7			bmBIT7
#define bmEP6			bmBIT6
#define bmEP5			bmBIT5
#define bmEP4			bmBIT4
#define bmEP3			bmBIT3
#define bmEP2			bmBIT2
#define bmEP1			bmBIT1
#define bmEP0			bmBIT0

#define bmURES			bmBIT4
#define bmSUSP			bmBIT3
#define bmSUTOK			bmBIT2
#define bmSOF			bmBIT1
#define bmSUDAV			bmBIT0

#define bmBREAK			bmBIT3
#define bmBPPULSE		bmBIT2
#define bmBPEN			bmBIT1
#define bmAVEN			bmBIT0

#define bmRWAKEUP		bmBIT7
#define bmDISCON		bmBIT3
#define bmDISCOE		bmBIT2
#define bmRENUM			bmBIT1
#define bmSIGRESUME		bmBIT0

#define bmOUT			bmBIT3
#define bmIN			bmBIT2
#define bmHS			bmBIT1
#define bmHSSTALL		bmBIT0

#define bmEPSTALL		bmBIT0
#define bmEPBUSY		bmBIT1

enum
{
	IN0BUF_ID = 0,
	IN1BUF_ID,
	IN2BUF_ID,
	IN3BUF_ID,
	IN4BUF_ID,
	IN5BUF_ID,
	IN6BUF_ID,
	IN7BUF_ID,
	OUT0BUF_ID,
	OUT1BUF_ID,
	OUT2BUF_ID,
	OUT3BUF_ID,
	OUT4BUF_ID,
	OUT5BUF_ID,
	OUT6BUF_ID,
	OUT7BUF_ID
};

#define EP0CS	EPIO[0].cntrl
#define IN0BC	EPIO[0].bytes
#define IN1CS	EPIO[1].cntrl
#define IN1BC	EPIO[1].bytes
#define IN2CS	EPIO[2].cntrl
#define IN2BC	EPIO[2].bytes
#define IN3CS	EPIO[3].cntrl
#define IN3BC	EPIO[3].bytes
#define IN4CS	EPIO[4].cntrl
#define IN4BC	EPIO[4].bytes
#define IN5CS	EPIO[5].cntrl
#define IN5BC	EPIO[5].bytes
#define IN6CS	EPIO[6].cntrl
#define IN6BC	EPIO[6].bytes
#define IN7CS	EPIO[7].cntrl
#define IN7BC	EPIO[7].bytes
#define OUT0CS	EPIO[8].cntrl
#define OUT0BC	EPIO[8].bytes
#define OUT1CS	EPIO[9].cntrl
#define OUT1BC	EPIO[9].bytes
#define OUT2CS	EPIO[10].cntrl
#define OUT2BC	EPIO[10].bytes
#define OUT3CS	EPIO[11].cntrl
#define OUT3BC	EPIO[11].bytes
#define OUT4CS	EPIO[12].cntrl
#define OUT4BC	EPIO[12].bytes
#define OUT5CS	EPIO[13].cntrl
#define OUT5BC	EPIO[13].bytes
#define OUT6CS	EPIO[14].cntrl
#define OUT6BC	EPIO[14].bytes
#define OUT7CS	EPIO[15].cntrl
#define OUT7BC	EPIO[15].bytes
 
#define EPID(id)		(((~id & 0x80) >> 4) + (id & 0x07))

#endif	

⌨️ 快捷键说明

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