📄 a89c5131.h
字号:
/*
* Register definitions for Atmel AT89C5131 USB microcontroller
* to suit HI-TECH C-8051 compiler
*/
#ifndef __A89C5131_H
#define __A89C5131_H
typedef struct {
unsigned B7:1; //This is the most signifigant bit
unsigned B6:1;
unsigned B5:1;
unsigned B4:1;
unsigned B3:1;
unsigned B2:1;
unsigned B1:1;
unsigned B0:1;
} SFR_BITS;
//Special Function Registers
static volatile unsigned char P0 @ 0x80;
static volatile unsigned char SP @ 0x81;
static volatile unsigned char DPL @ 0x82;
static volatile unsigned char DPH @ 0x83;
// 16-Bit definition
static volatile unsigned char PCON @ 0x87;
static volatile unsigned char TCON @ 0x88;
static unsigned char TMOD @ 0x89;
static volatile unsigned char TL0 @ 0x8A;
static volatile unsigned char TL1 @ 0x8B;
static volatile unsigned char TH0 @ 0x8C;
static volatile unsigned char TH1 @ 0x8D;
static unsigned char AUXR @ 0x8E;
static unsigned char CKCON0 @ 0x8F;
static volatile unsigned char P1 @ 0x90;
static volatile unsigned char SCON @ 0x98;
static volatile unsigned char SBUF @ 0x99;
static unsigned char BRL @ 0x9A;
static unsigned char BDRCON @ 0x9B;
static unsigned char KBLS @ 0x9C;
static unsigned char KBE @ 0x9D;
static volatile unsigned char KBF @ 0x9E;
static volatile unsigned char P2 @ 0xA0;
static unsigned char AUXR1 @ 0xA2;
static volatile unsigned char PLLCON @ 0xA3;
static unsigned char PLLDIV @ 0xA4;
static volatile unsigned char WDTRST @ 0xA6;
static unsigned char WDTPRG @ 0xA7;
static unsigned char IEN0 @ 0xA8;
static unsigned char SADDR @ 0xA9;
static unsigned char CKCON1 @ 0xAF;
static volatile unsigned char P3 @ 0xB0;
static unsigned char IEN1 @ 0xB1;
static unsigned char IPL1 @ 0xB2;
static unsigned char IPH1 @ 0xB3;
static unsigned char IPH0 @ 0xB7;
static unsigned char IPL0 @ 0xB8;
static unsigned char SADEN @ 0xB9;
static volatile unsigned char UFNUML @ 0xBA;
static volatile unsigned char UFNUMH @ 0xBB;
static volatile unsigned char USBCON @ 0xBC;
static volatile unsigned char USBINT @ 0xBD;
static unsigned char USBIEN @ 0xBE;
static volatile unsigned char P4 @ 0xC0;
static unsigned char UEPIEN @ 0xC2;
static unsigned char SPCON @ 0xC3;
static volatile unsigned char SPSTA @ 0xC4;
static volatile unsigned char SPDAT @ 0xC5;
static volatile unsigned char USBADDR @ 0xC6;
static unsigned char UEPNUM @ 0xC7;
static volatile unsigned char T2CON @ 0xC8;
static unsigned char T2MOD @ 0xC9;
static volatile unsigned char RCAP2L @ 0xCA;
static volatile unsigned char RCAP2H @ 0xCB;
static volatile unsigned char TL2 @ 0xCC;
static volatile unsigned char TH2 @ 0xCD;
static volatile unsigned char UEPSTAX @ 0xCE;
static volatile unsigned char UEPDATX @ 0xCF;
static volatile unsigned char PSW @ 0xD0;
static volatile unsigned char FCON @ 0xD1;
static volatile unsigned char EECON @ 0xD2;
static volatile unsigned char UEPCONX @ 0xD4;
static unsigned char UEPRST @ 0xD5;
static volatile unsigned char CCON @ 0xD8;
static unsigned char CMOD @ 0xD9;
static unsigned char CCAPM0 @ 0xDA;
static unsigned char CCAPM1 @ 0xDB;
static unsigned char CCAPM2 @ 0xDC;
static unsigned char CCAPM3 @ 0xDD;
static unsigned char CCAPM4 @ 0xDE;
static volatile unsigned char ACC @ 0xE0;
static volatile unsigned char UBYCTLX @ 0xE2;
static volatile unsigned char UBYCTHX @ 0xE3;
static volatile unsigned char CL @ 0xE9;
static volatile unsigned char CCAP0L @ 0xEA;
static volatile unsigned char CCAP1L @ 0xEB;
static volatile unsigned char CCAP2L @ 0xEC;
static volatile unsigned char CCAP3L @ 0xED;
static volatile unsigned char CCAP4L @ 0xEE;
static volatile unsigned char B @ 0xF0;
static unsigned char LEDCON @ 0xF1;
static volatile unsigned char UEPINT @ 0xF8;
static volatile unsigned char CH @ 0xF9;
static volatile unsigned char CCAP0H @ 0xFA;
static volatile unsigned char CCAP1H @ 0xFB;
static volatile unsigned char CCAP2H @ 0xFC;
static volatile unsigned char CCAP3H @ 0xFD;
static volatile unsigned char CCAP4H @ 0xFE;
static volatile SFR_BITS P0_BITS @ 0x80;
static volatile SFR_BITS PCON_BITS @ 0x87;
static volatile SFR_BITS TCON_BITS @ 0x88;
static SFR_BITS TMOD_BITS @ 0x89;
static SFR_BITS AUXR_BITS @ 0x8E;
static SFR_BITS CKCON0_BITS @ 0x8F;
static volatile SFR_BITS P1_BITS @ 0x90;
static volatile SFR_BITS SCON_BITS @ 0x98;
static SFR_BITS BDRCON_BITS @ 0x9B;
static SFR_BITS KBLS_BITS @ 0x9C;
static SFR_BITS KBE_BITS @ 0x9D;
static volatile SFR_BITS KBF_BITS @ 0x9E;
static volatile SFR_BITS P2_BITS @ 0xA0;
static SFR_BITS AUXR1_BITS @ 0xA2;
static volatile SFR_BITS PLLCON_BITS @ 0xA3;
static SFR_BITS PLLDIV_BITS @ 0xA4;
static volatile SFR_BITS WDTRST_BITS @ 0xA6;
static SFR_BITS WDTPRG_BITS @ 0xA7;
static SFR_BITS IEN0_BITS @ 0xA8;
static SFR_BITS SADDR_BITS @ 0xA9;
static SFR_BITS CKCON1_BITS @ 0xAF;
static volatile SFR_BITS P3_BITS @ 0xB0;
static SFR_BITS IEN1_BITS @ 0xB1;
static SFR_BITS IPL1_BITS @ 0xB2;
static SFR_BITS IPH1_BITS @ 0xB3;
static SFR_BITS IPH0_BITS @ 0xB7;
static SFR_BITS IPL0_BITS @ 0xB8;
static SFR_BITS SADEN_BITS @ 0xB9;
static volatile SFR_BITS UFNUML_BITS @ 0xBA;
static volatile SFR_BITS UFNUMH_BITS @ 0xBB;
static volatile SFR_BITS USBCON_BITS @ 0xBC;
static volatile SFR_BITS USBINT_BITS @ 0xBD;
static SFR_BITS USBIEN_BITS @ 0xBE;
static volatile SFR_BITS P4_BITS @ 0xC0;
static SFR_BITS UEPIEN_BITS @ 0xC2;
static SFR_BITS SPCON_BITS @ 0xC3;
static volatile SFR_BITS SPSTA_BITS @ 0xC4;
static volatile SFR_BITS SPDAT_BITS @ 0xC5;
static volatile SFR_BITS USBADDR_BITS @ 0xC6;
static SFR_BITS UEPNUM_BITS @ 0xC7;
static volatile SFR_BITS T2CON_BITS @ 0xC8;
static SFR_BITS T2MOD_BITS @ 0xC9;
static volatile SFR_BITS UEPSTAX_BITS @ 0xCE;
static volatile SFR_BITS PSW_BITS @ 0xD0;
static volatile SFR_BITS FCON_BITS @ 0xD1;
static volatile SFR_BITS EECON_BITS @ 0xD2;
static volatile SFR_BITS UEPCONX_BITS @ 0xD4;
static SFR_BITS UEPRST_BITS @ 0xD5;
static volatile SFR_BITS CCON_BITS @ 0xD8;
static SFR_BITS CMOD_BITS @ 0xD9;
static SFR_BITS CCAPM0_BITS @ 0xDA;
static SFR_BITS CCAPM1_BITS @ 0xDB;
static SFR_BITS CCAPM2_BITS @ 0xDC;
static SFR_BITS CCAPM3_BITS @ 0xDD;
static SFR_BITS CCAPM4_BITS @ 0xDE;
static volatile SFR_BITS ACC_BITS @ 0xE0;
static volatile SFR_BITS CL_BITS @ 0xE9;
static volatile SFR_BITS CCAP0L_BITS @ 0xEA;
static volatile SFR_BITS CCAP1L_BITS @ 0xEB;
static volatile SFR_BITS CCAP2L_BITS @ 0xEC;
static volatile SFR_BITS CCAP3L_BITS @ 0xED;
static volatile SFR_BITS CCAP4L_BITS @ 0xEE;
static volatile SFR_BITS B_BITS @ 0xF0;
static SFR_BITS LEDCON_BITS @ 0xF1;
static volatile SFR_BITS UEPINT_BITS @ 0xF8;
static volatile SFR_BITS CH_BITS @ 0xF9;
static volatile SFR_BITS CCAP0H_BITS @ 0xFA;
static volatile SFR_BITS CCAP1H_BITS @ 0xFB;
static volatile SFR_BITS CCAP2H_BITS @ 0xFC;
static volatile SFR_BITS CCAP3H_BITS @ 0xFD;
static volatile SFR_BITS CCAP4H_BITS @ 0xFE;
// Bit Addressable Locations
// Port 0 P0
static volatile bit P00 @ 0x80;
static volatile bit P01 @ 0x81;
static volatile bit P02 @ 0x82;
static volatile bit P03 @ 0x83;
static volatile bit P04 @ 0x84;
static volatile bit P05 @ 0x85;
static volatile bit P06 @ 0x86;
static volatile bit P07 @ 0x87;
// Alternate Functions
static volatile bit AD0 @ 0x80;
static volatile bit AD1 @ 0x81;
static volatile bit AD2 @ 0x82;
static volatile bit AD3 @ 0x83;
static volatile bit AD4 @ 0x84;
static volatile bit AD5 @ 0x85;
static volatile bit AD6 @ 0x86;
static volatile bit AD7 @ 0x87;
// Timer Control TCON
static bit IT0 @ 0x88;
static volatile bit IE0 @ 0x89;
static bit IT1 @ 0x8A;
static volatile bit IE1 @ 0x8B;
static bit TR0 @ 0x8C;
static volatile bit TF0 @ 0x8D;
static bit TR1 @ 0x8E;
static volatile bit TF1 @ 0x8F;
// Port 1 P1
static volatile bit P10 @ 0x90;
static volatile bit P11 @ 0x91;
static volatile bit P12 @ 0x92;
static volatile bit P13 @ 0x93;
static volatile bit P14 @ 0x94;
static volatile bit P15 @ 0x95;
static volatile bit P16 @ 0x96;
static volatile bit P17 @ 0x97;
// Serial Control SCON
static volatile bit RI @ 0x98;
static volatile bit TI @ 0x99;
static volatile bit RB8 @ 0x9A;
static bit TB8 @ 0x9B;
static bit REN @ 0x9C;
static bit SM2 @ 0x9D;
static bit SM1 @ 0x9E;
static volatile bit SM0 @ 0x9F;
// Alternate function
static volatile bit FE @ 0x9F;
// Port 2 P2
static volatile bit P20 @ 0xA0;
static volatile bit P21 @ 0xA1;
static volatile bit P22 @ 0xA2;
static volatile bit P23 @ 0xA3;
static volatile bit P24 @ 0xA4;
static volatile bit P25 @ 0xA5;
static volatile bit P26 @ 0xA6;
static volatile bit P27 @ 0xA7;
// Alternate Functions
static volatile bit A8 @ 0xA0;
static volatile bit A9 @ 0xA1;
static volatile bit A10 @ 0xA2;
static volatile bit A11 @ 0xA3;
static volatile bit A12 @ 0xA4;
static volatile bit A13 @ 0xA5;
static volatile bit A14 @ 0xA6;
static volatile bit A15 @ 0xA7;
// Interrupt Enable 0 IEN0
static bit EX0 @ 0xA8;
static bit ET0 @ 0xA9;
static bit EX1 @ 0xAA;
static bit ET1 @ 0xAB;
static bit ES @ 0xAC;
static bit ET2 @ 0xAD;
static bit EC @ 0xAE;
static bit EA @ 0xAF;
// Port 3 P3
static volatile bit P30 @ 0xB0;
static volatile bit P31 @ 0xB1;
static volatile bit P32 @ 0xB2;
static volatile bit P33 @ 0xB3;
static volatile bit P34 @ 0xB4;
static volatile bit P35 @ 0xB5;
static volatile bit P36 @ 0xB6;
static volatile bit P37 @ 0xB7;
// Alternate Functions
static volatile bit RXD @ 0xB0;
static volatile bit TXD @ 0xB1;
static volatile bit INT0 @ 0xB2;
static volatile bit INT1 @ 0xB3;
static volatile bit T0 @ 0xB4;
static volatile bit T1 @ 0xB5;
static volatile bit WR @ 0xB6;
static volatile bit RD @ 0xB7;
// definitions for register IPL0
static bit PX0L @ 0xB8;
static bit PT0L @ 0xB9;
static bit PX1L @ 0xBA;
static bit PT1L @ 0xBB;
static bit PSL @ 0xBC;
static bit PT2L @ 0xBD;
static bit PPCL @ 0xBE;
// Port 4
static volatile bit P40 @ 0xC0;
static volatile bit P41 @ 0xC1;
static volatile bit P42 @ 0xC2;
static volatile bit P43 @ 0xC3;
static volatile bit P44 @ 0xC4;
static volatile bit P45 @ 0xC5;
static volatile bit P46 @ 0xC6;
static volatile bit P47 @ 0xC7;
// Timer 2 Control T2CON
static bit CPRL2 @ 0xC8;
static bit CT2 @ 0xC9;
static bit TR2 @ 0xCA;
static bit EXEN2 @ 0xCB;
static bit TCLK @ 0xCC;
static bit RCLK @ 0xCD;
static volatile bit EXF2 @ 0xCE;
static volatile bit TF2 @ 0xCF;
// Program Status Word PSW
static volatile bit P @ 0xD0;
static volatile bit F1 @ 0xD1;
static volatile bit OV @ 0xD2;
static bit RS0 @ 0xD3;
static bit RS1 @ 0xD4;
static volatile bit F0 @ 0xD5;
static volatile bit AC @ 0xD6;
static volatile bit CY @ 0xD7;
// Counter Control CCON
static volatile bit CCF0 @ 0xD8;
static volatile bit CCF1 @ 0xD9;
static volatile bit CCF2 @ 0xDA;
static volatile bit CCF3 @ 0xDB;
static volatile bit CCF4 @ 0xDC;
static bit CR @ 0xDE;
static volatile bit CF @ 0xDF;
// Accumulator ACC
static volatile bit ACC0 @ 0xE0;
static volatile bit ACC1 @ 0xE1;
static volatile bit ACC2 @ 0xE2;
static volatile bit ACC3 @ 0xE3;
static volatile bit ACC4 @ 0xE4;
static volatile bit ACC5 @ 0xE5;
static volatile bit ACC6 @ 0xE6;
static volatile bit ACC7 @ 0xE7;
// B register
static volatile bit B0 @ 0xF0;
static volatile bit B1 @ 0xF1;
static volatile bit B2 @ 0xF2;
static volatile bit B3 @ 0xF3;
static volatile bit B4 @ 0xF4;
static volatile bit B5 @ 0xF5;
static volatile bit B6 @ 0xF6;
static volatile bit B7 @ 0xF7;
// definitions for register UEPINT
static volatile bit EP0INT @ 0xF8;
static volatile bit EP1INT @ 0xF9;
static volatile bit EP2INT @ 0xFA;
static volatile bit EP3INT @ 0xFB;
static volatile bit EP4INT @ 0xFC;
static volatile bit EP5INT @ 0xFD;
static volatile bit EP6INT @ 0xFE;
static volatile bit EP7INT @ 0xFF;
// Interrupt Vectors
#define RESET 0
#define EXTINT0 0x03
#define TIMER0 0x0B
#define EXTINT1 0x13
#define TIMER1 0x1B
#define SERIAL 0x23
#define TIMER2 0x2B
#define PCA 0x33
#define KEYBRD 0x3B
#define SPI 0x4B
#define USB 0x6B
#endif // __A89C5131_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -