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

📄 ezregs.h

📁 软件中包含了Cypress的SL811 USB接口芯片的固件程序以及如何51单片机进行操作的例子
💻 H
📖 第 1 页 / 共 2 页
字号:
//-----------------------------------------------------------------------------
//	File:		ezregs.h
//	Contents:	EZ-USB register declarations and bit mask definitions.
//
//	Copyright (c) 1997 AnchorChips, Inc. All rights reserved
//-----------------------------------------------------------------------------
#ifndef EZREGS_H	/* Header Sentry */
#define EZREGS_H

/*-----------------------------------------------------------------------------
	Global Variables
-----------------------------------------------------------------------------*/
// The Ez-USB registers are defined here. There used to be 3 files containing
// this information: ezregs.h (external refs), ezregs.c (bound reg names to an 
// explicit address in ezusb.lib), and ezregs.inc (included in assembly files).
// We now use ezregs.h for register address allocation instead of ezregs.c by  
// using "#define ALLOCATE_EXTERN". The file ezregs.c now just includes ezregs.h.
// When using "#define ALLOCATE_EXTERN", you get: 
// xdata volatile BYTE OUT7BUF[64]	_at_	0x7B40;
// Such lines used to be in ezregs.c, but now are created from ezregs.h by using
// the preprocessor. The definitions in ezregs.c were redundant.
// Incidently, these lines will not generate any space in the resulting hex 
// file; they just bind the symbols to the addresses for compilation. 
// Since the file ezregs.c is still used in the library build, you normally
// just need to use #include "ezregs.h" in your files (i.e. fw.c).
// If you want to generate your own (non-frameworks based) C example, then you 
// just need to put "#define ALLOCATE_EXTERN" in your main program file; 
// i.e. fw.c or a stand-alone C source file. Any time you link with ezusb.lib,
// it will not be necessary to "#define ALLOCATE_EXTERN".
// Without "#define ALLOCATE_EXTERN", you just get the external reference: 
// extern xdata volatile BYTE OUT7BUF[64]	;//	0x7B40;
// This uses the concatenation operator "##" to insert a comment "//" 
// to cut off the end of the line, "_at_	0x7B40;", which is not wanted.
// If you modify the register definitions below, please regenerate the file 
// "ezregs.inc" which uses the same basic information, but which could not be 
// derived automatically from this one source file using the preprocessor.

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

/* Register Assignments 3/18/99 TPM */
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 UART230	_AT_	0x7F9F;
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 ZBCIN	_AT_	0x7FA3;
EXTERN xdata volatile BYTE I2CS		_AT_	0x7FA5;
EXTERN xdata volatile BYTE I2DAT	_AT_	0x7FA6;
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 WORD BPADDR	_AT_	0x7FB2;
//volatile EXTERN xdata BYTE BPADDRL	_AT_	0x7FB3;
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 FNADDR	_AT_	0x7FDB;
EXTERN xdata volatile BYTE USBPAIR	_AT_	0x7FDD;
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_

/*-----------------------------------------------------------------------------
	Special Function Registers (SFRs)
	The byte registers and bits defined in the following list are based
	on the Synopsis definition of the 8051 Special Function Registers for EZ-USB. 
    If you modify the register definitions below, please regenerate the file 
    "ezregs.inc" which includes the same basic information for assembly inclusion.
-----------------------------------------------------------------------------*/

sfr SP      = 0x81;
sfr DPL     = 0x82;
sfr DPH     = 0x83;
sfr DPL1    = 0x84;
sfr DPH1    = 0x85;
sfr DPS     = 0x86;
			/*  DPS  */
			sbit SEL   = 0x86+0;
sfr PCON    = 0x87;	/*  PCON  */
			//sbit IDLE   = 0x87+0;
			//sbit STOP   = 0x87+1;
			//sbit GF0    = 0x87+2;
			//sbit GF1    = 0x87+3;
			//sbit SMOD0  = 0x87+7;
sfr TCON    = 0x88;
			/*  TCON  */
			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;
			/*  TMOD  */
			//sbit M00    = 0x89+0;
			//sbit M10    = 0x89+1;
			//sbit CT0    = 0x89+2;
			//sbit GATE0  = 0x89+3;
			//sbit M01    = 0x89+4;
			//sbit M11    = 0x89+5;
			//sbit CT1    = 0x89+6;
			//sbit GATE1  = 0x89+7;
sfr TL0     = 0x8A;
sfr TL1     = 0x8B;
sfr TH0     = 0x8C;
sfr TH1     = 0x8D;
sfr CKCON   = 0x8E;
			/*  CKCON  */
			//sbit MD0    = 0x89+0;
			//sbit MD1    = 0x89+1;
			//sbit MD2    = 0x89+2;
			//sbit T0M    = 0x89+3;
			//sbit T1M    = 0x89+4;
			//sbit T2M    = 0x89+5;
sfr SPC_FNC = 0x8F; // Was WRS in Reg320
			/*  CKCON  */
			//sbit WRS    = 0x8F+0;
sfr EXIF    = 0x91; // EXIF Bit Values differ from Reg320
			/*  EXIF  */
			//sbit USBINT = 0x91+4;
			//sbit I2CINT = 0x91+5;
			//sbit IE4    = 0x91+6;
			//sbit IE5    = 0x91+7;
sfr MPAGE  = 0x92;
sfr SCON0  = 0x98;
			/*  SCON0  */
			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;
			/*  IE  */
			sbit EX0   = 0xA8+0;
			sbit ET0   = 0xA8+1;
			sbit EX1   = 0xA8+2;
			sbit ET1   = 0xA8+3;
			sbit ES0   = 0xA8+4;
			sbit ET2   = 0xA8+5;

⌨️ 快捷键说明

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