📄 io8052a.h
字号:
/***************************************************************************
* - io8052.h -
*
* Special header for the _generic 8052 Microcontroller.
*
***************************************************************************/
#ifndef IO8052_H
#define IO8052_H
#ifdef __IAR_SYSTEMS_ICC__
#pragma language=extended
/*-------------------------------------------------------------------------
* MCS-51 Core
*-------------------------------------------------------------------------*/
__sfr __no_init volatile union
{
unsigned char ACC; /* Accumulator */
struct /* Accumulator */
{
unsigned char ACC0 : 1;
unsigned char ACC1 : 1;
unsigned char ACC2 : 1;
unsigned char ACC3 : 1;
unsigned char ACC4 : 1;
unsigned char ACC5 : 1;
unsigned char ACC6 : 1;
unsigned char ACC7 : 1;
} ACC_bit;
} @ 0xE0;
__sfr __no_init volatile union
{
unsigned char PSW; /* Program Status Word */
struct /* Program Status Word */
{
unsigned char P : 1;
unsigned char F1 : 1;
unsigned char OV : 1;
unsigned char RS0 : 1;
unsigned char RS1 : 1;
unsigned char F0 : 1;
unsigned char AC : 1;
unsigned char CY : 1;
} PSW_bit;
} @ 0xD0;
__sfr __no_init volatile unsigned char SP @ 0x81; /* Stack Pointer */
__sfr __no_init volatile unsigned char DPL @ 0x82; /* Data Pointer Low byte, LSB of DPTR */
__sfr __no_init volatile unsigned char DPH @ 0x83; /* Data Pointer High byte, MSB of DPTR */
__sfr __no_init volatile union
{
unsigned char B; /* B Register */
struct /* B Register */
{
unsigned char B0 : 1;
unsigned char B1 : 1;
unsigned char B2 : 1;
unsigned char B3 : 1;
unsigned char B4 : 1;
unsigned char B5 : 1;
unsigned char B6 : 1;
unsigned char B7 : 1;
} B_bit;
} @ 0xF0;
/*-------------------------------------------------------------------------
* Timers
*-------------------------------------------------------------------------*/
__sfr __no_init volatile unsigned char TL2 @ 0xCC; /* Timer2 Low */
__sfr __no_init volatile union
{
unsigned char T2MOD; /* Timer 2 Mode Control */
struct /* Timer 2 Mode Control */
{
unsigned char DCEN : 1;
unsigned char T2OE : 1;
unsigned char : 1;
unsigned char : 1;
unsigned char : 1;
unsigned char : 1;
unsigned char : 1;
unsigned char : 1;
} T2MOD_bit;
} @ 0xC9;
__sfr __no_init volatile unsigned char TH0 @ 0x8C; /* Timer0 High */
__sfr __no_init volatile union
{
unsigned char TCON; /* Timer Control */
struct /* Timer Control */
{
unsigned char IT0 : 1;
unsigned char IE0 : 1;
unsigned char IT1 : 1;
unsigned char IE1 : 1;
unsigned char TR0 : 1;
unsigned char TF0 : 1;
unsigned char TR1 : 1;
unsigned char TF1 : 1;
} TCON_bit;
} @ 0x88;
__sfr __no_init volatile unsigned char TH2 @ 0xCD; /* Timer2 High */
__sfr __no_init volatile unsigned char TH1 @ 0x8D; /* Timer1 High */
__sfr __no_init volatile union
{
unsigned char TMOD; /* Timer Mode */
struct /* Timer Mode */
{
unsigned char M00 : 1;
unsigned char M10 : 1;
unsigned char C_T0 : 1;
unsigned char GATE0 : 1;
unsigned char M01 : 1;
unsigned char M11 : 1;
unsigned char C_T1 : 1;
unsigned char GATE1 : 1;
} TMOD_bit;
} @ 0x89;
__sfr __no_init volatile unsigned char RACAP2L @ 0xCA; /* Timer 2 Capture Low */
__sfr __no_init volatile unsigned char RACAP2H @ 0xCB; /* Timer 2 Capture High */
__sfr __no_init volatile unsigned char TL0 @ 0x8A; /* Timer0 Low */
__sfr __no_init volatile union
{
unsigned char T2CON; /* Timer 2 Control */
struct /* Timer 2 Control */
{
unsigned char CP_RL2 : 1;
unsigned char C_T2 : 1;
unsigned char TR2 : 1;
unsigned char EXEN2 : 1;
unsigned char TCLK : 1;
unsigned char RCLK : 1;
unsigned char EXF2 : 1;
unsigned char TF2 : 1;
} T2CON_bit;
} @ 0xC8;
__sfr __no_init volatile unsigned char TL1 @ 0x8B; /* Timer1 Low */
/*-------------------------------------------------------------------------
* Interrupt
*-------------------------------------------------------------------------*/
__sfr __no_init volatile union
{
unsigned char IP; /* Interrupt Priority */
struct /* Interrupt Priority */
{
unsigned char PX0 : 1;
unsigned char PT0 : 1;
unsigned char PX1 : 1;
unsigned char PT1 : 1;
unsigned char PS : 1;
unsigned char PT2 : 1;
unsigned char : 1;
unsigned char : 1;
} IP_bit;
} @ 0xB8;
__sfr __no_init volatile union
{
unsigned char IPH; /* Interrupt Priority */
struct /* Interrupt Priority */
{
unsigned char PX0 : 1;
unsigned char PT0 : 1;
unsigned char PX1 : 1;
unsigned char PT1 : 1;
unsigned char PS : 1;
unsigned char PT2 : 1;
unsigned char : 1;
unsigned char : 1;
} IPH_bit;
} @ 0xB7;
__sfr __no_init volatile union
{
unsigned char IE; /* Interrupt Enable */
struct /* Interrupt Enable */
{
unsigned char EX0 : 1;
unsigned char ET0 : 1;
unsigned char EX1 : 1;
unsigned char ET1 : 1;
unsigned char ES : 1;
unsigned char ET2 : 1;
unsigned char : 1;
unsigned char EA : 1;
} IE_bit;
} @ 0xA8;
/*-------------------------------------------------------------------------
* I/O Port
*-------------------------------------------------------------------------*/
__sfr __no_init volatile union
{
unsigned char P1; /* Port 1 */
struct /* Port 1 */
{
unsigned char T2 : 1;
unsigned char T2EX : 1;
unsigned char P12 : 1;
unsigned char P13 : 1;
unsigned char P14 : 1;
unsigned char P15 : 1;
unsigned char P16 : 1;
unsigned char P17 : 1;
} P1_bit;
} @ 0x90;
__sfr __no_init volatile union
{
unsigned char P0; /* Port 0 */
struct /* Port 0 */
{
unsigned char P00 : 1;
unsigned char P01 : 1;
unsigned char P02 : 1;
unsigned char P03 : 1;
unsigned char P04 : 1;
unsigned char P05 : 1;
unsigned char P06 : 1;
unsigned char P07 : 1;
} P0_bit;
} @ 0x80;
__sfr __no_init volatile union
{
unsigned char P3; /* Port 3 */
struct /* Port 3 */
{
unsigned char RxD : 1;
unsigned char TxD : 1;
unsigned char INT0 : 1;
unsigned char INT1 : 1;
unsigned char T0 : 1;
unsigned char T1 : 1;
unsigned char WR : 1;
unsigned char RD : 1;
} P3_bit;
} @ 0xB0;
__sfr __no_init volatile union
{
unsigned char P2; /* Port 2 */
struct /* Port 2 */
{
unsigned char AD8 : 1;
unsigned char AD9 : 1;
unsigned char AD10 : 1;
unsigned char AD11 : 1;
unsigned char AD12 : 1;
unsigned char AD13 : 1;
unsigned char AD14 : 1;
unsigned char AD15 : 1;
} P2_bit;
} @ 0xA0;
/*-------------------------------------------------------------------------
* Serial I/O Port
*-------------------------------------------------------------------------*/
__sfr __no_init volatile unsigned char SBUF @ 0x99; /* Serial Data Buffer */
__sfr __no_init volatile union
{
unsigned char SCON; /* Serial Control */
struct /* Serial Control */
{
unsigned char RI : 1;
unsigned char TI : 1;
unsigned char RB8 : 1;
unsigned char TB8 : 1;
unsigned char REN : 1;
unsigned char SM2 : 1;
unsigned char SM1 : 1;
unsigned char SM0 : 1;
} SCON_bit;
} @ 0x98;
/*-------------------------------------------------------------------------
* System Management
*-------------------------------------------------------------------------*/
__sfr __no_init volatile union
{
unsigned char PCON; /* Power Control */
struct /* Power Control */
{
unsigned char IDL : 1;
unsigned char PD : 1;
unsigned char GF0 : 1;
unsigned char GF1 : 1;
unsigned char POF : 1;
unsigned char : 1;
unsigned char SMOD0 : 1;
unsigned char SMOD1 : 1;
} PCON_bit;
} @ 0x87;
/*
* Interrupt Vectors
*/
#define extern0 0x2003 /* External interrupt 0 */
#define IE0_int 0x2003 /* External interrupt 0 */
#define TF0_int 0x200B /* Timer 0 Interrupt */
#define timer0 0x200B /* Timer 0 Interrupt */
#define IE1_int 0x2013 /* External interrupt 1 */
#define extern1 0x2013 /* External interrupt 1 */
#define TF1_int 0x201B /* Timer 1 Interrupt */
#define timer1 0x201B /* Timer 1 Interrupt */
#define TI_int 0x2023 /* Serial Port Interrupt */
#define SerialTI 0x2023 /* Serial Port Interrupt */
#define RI_int 0x2023 /* Serial Port Interrupt */
#define SerialRE 0x2023 /* Serial Port Interrupt */
#pragma language=default
#endif /* __IAR_SYSTEMS_ICC__ */
/***************************************************************************
* Assembler definitions
*
* The following SFRs are built in in the a8051.exe and can not be
* defined explicitly in this file:
* ACC,B,PSW,SP,DPL,DPH
* The PSW-bits are built-in in the a8051.exe
* OV,AC,F0,RS0,RS1,P
*
***************************************************************************/
#ifdef __IAR_SYSTEMS_ASM__
/*-------------------------------------------------------------------------
* Timers
*-------------------------------------------------------------------------*/
TCON DEFINE 0x88 /* Timer Control */
TMOD DEFINE 0x89 /* Timer Mode */
TL0 DEFINE 0x8A /* Timer0 Low */
TL1 DEFINE 0x8B /* Timer1 Low */
TH0 DEFINE 0x8C /* Timer0 High */
TH1 DEFINE 0x8D /* Timer1 High */
T2CON DEFINE 0xC8 /* Timer 2 Control */
T2MOD DEFINE 0xC9 /* Timer 2 Mode Control */
RACAP2L DEFINE 0xCA /* Timer 2 Capture Low */
RACAP2H DEFINE 0xCB /* Timer 2 Capture High */
TL2 DEFINE 0xCC /* Timer2 Low */
TH2 DEFINE 0xCD /* Timer2 High */
/*-------------------------------------------------------------------------
* Interrupt
*-------------------------------------------------------------------------*/
IE DEFINE 0xA8 /* Interrupt Enable */
IP DEFINE 0xB8 /* Interrupt Priority */
/*-------------------------------------------------------------------------
* I/O Port
*-------------------------------------------------------------------------*/
P0 DEFINE 0x80 /* Port 0 */
P1 DEFINE 0x90 /* Port 1 */
P2 DEFINE 0xA0 /* Port 2 */
P3 DEFINE 0xB0 /* Port 3 */
/*-------------------------------------------------------------------------
* Serial I/O Port
*-------------------------------------------------------------------------*/
SCON DEFINE 0x98 /* Serial Control */
SBUF DEFINE 0x99 /* Serial Data Buffer */
/*-------------------------------------------------------------------------
* System Management
*-------------------------------------------------------------------------*/
PCON DEFINE 0x87 /* Power Control */
#endif /* __IAR_SYSTEMS_ASM__*/
#endif /* IO8052_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -