📄 std_8051.h
字号:
#ifdef ROOT
//#ifdef ALLOCATE_EXTERN
#define EXTR
#define _AT_ _at_
#define XgDATA xdata volatile unsigned char
#define Xg2DATA xdata volatile unsigned int
#define Xg4DATA xdata volatile unsigned long
#else
#define EXTR extern
#define _AT_ ;/ ## /
#define XgDATA extern xdata volatile unsigned char
#define Xg2DATA extern xdata volatile unsigned int
#define Xg4DATA extern xdata volatile unsigned long
#endif
#define TINY
#define XBYTE ((unsigned char volatile xdata *) 0)
#define DWORD unsigned long
#define WORD unsigned int
#define BYTE unsigned char
#define byte unsigned char
#define word unsigned int
#define CONST_CHAR unsigned char code
#define CONST_INT unsigned int code
#define IDATA idata
#define BOOL bit
#define NULL 0xff
#define TRUE 1
#define FALSE 0
#define cXTAL_3M580HZ 219
#define cXTAL_4M000HZ 214
#define cXTAL_4M332HZ 211
#define cXTAL_5M6448HZ 197
#define cXTAL_6M000HZ 194
#define cXTAL_7M200HZ 181
#define cXTAL_8M000HZ 173
#define cXTAL_8M4672HZ 168
#define cXTAL_10M700HZ 146
#define cXTAL_11M059HZ 139
#define cXTAL_11M2896HZ 137
#define cXTAL_12M000HZ 131
#define cXTAL_12M288HZ 128
#define cXTAL_16M934HZ 80
#define cXTAL_20M000HZ 49
#define cXTAL_22M1184HZ 25
#define cXTAL_22M5792HZ 20
#define cXTAL_24M576HZ 0
#define cXTAL_24M000HZ 130 /* Remote Dubing */
#define cXTAL_27M000HZ 118 /* Remote Dubing */
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
sfr PSW = 0xD0;
sfr ACC = 0xE0;
sfr B = 0xF0;
sfr SP = 0x81;
sfr DPL = 0x82;
sfr DPH = 0x83;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0 = 0x8A;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
sfr IE = 0xA8;
sfr IP = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;
sfr T2CON = 0xC8;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2 = 0xCC;
sfr TH2 = 0xCD;
sfr T3 = 0xFF;
sfr EBTCON = 0xEB;
/* P80C453 Special */
sfr P4 = 0xc0;
sfr P5 = 0xc8;
sfr P6 = 0xd8;
/* W78C438 Special */
sfr EPMA = 0xa2;
sfr P8 = 0xa6;
/* AT89S8252 Special */
sfr DP1L = 0x84;
sfr DP1H = 0x85;
sfr WMCON = 0x96;
sfr SPCR = 0xd5;
sfr SPSR = 0xaa;
sfr SPDR = 0x86;
/* SST89C54/58 Special */
sfr WDTD = 0x86;
sfr SFCF = 0xb1;
sfr SFCM = 0xb2;
sfr SFAL = 0xb3;
sfr SFAH = 0xb4;
sfr SFDT = 0xb5;
sfr SFST = 0xb6;
sfr WDTC = 0xc0;
sfr M6759_AUXR = 0x97;
/* BIT Registers */
/* PSW */
sbit CY = PSW^7;
sbit AC = PSW^6;
sbit F0 = PSW^5;
sbit RS1 = PSW^4;
sbit RS0 = PSW^3;
sbit OV = PSW^2;
sbit P = PSW^0; //8052 only
/* TCON */
sbit TF1 = TCON^7;
sbit TR1 = TCON^6;
sbit TF0 = TCON^5;
sbit TR0 = TCON^4;
sbit IE1 = TCON^3;
sbit IT1 = TCON^2;
sbit IE0 = TCON^1;
sbit IT0 = TCON^0;
/* IE */
sbit EA = IE^7;
sbit ET2 = IE^5; //8052 only
sbit ES = IE^4;
sbit ET1 = IE^3;
sbit EX1 = IE^2;
sbit ET0 = IE^1;
sbit EX0 = IE^0;
/* IP */
sbit PT2 = IP^5;
sbit PS = IP^4;
sbit PT1 = IP^3;
sbit PX1 = IP^2;
sbit PT0 = IP^1;
sbit PX0 = IP^0;
/* P3 */
sbit RD = P3^7;
sbit WR = P3^6;
sbit T1 = P3^5;
sbit T0 = P3^4;
sbit INT1 = P3^3;
sbit INT0 = P3^2;
sbit TXD = P3^1;
sbit RXD = P3^0;
/* SCON */
sbit SM0 = SCON^7;
sbit SM1 = SCON^6;
sbit SM2 = SCON^5;
sbit REN = SCON^4;
sbit TB8 = SCON^3;
sbit RB8 = SCON^2;
sbit TI = SCON^1;
sbit RI = SCON^0;
/* P1 */
sbit T2EX = P1^1; // 8052 only
sbit T2 = P1^0; // 8052 only
/* T2CON */
sbit TF2 = T2CON^7;
sbit EXF2 = T2CON^6;
sbit RCLK = T2CON^5;
sbit TCLK = T2CON^4;
sbit EXEN2 = T2CON^3;
sbit TR2 = T2CON^2;
sbit C_T2 = T2CON^1;
sbit CP_RL2 = T2CON^0;
#define CF CY
#define IE_EX0 0x01 /* 1 = enable INT0 interrupt */
#define IE_ET0 0x02 /* 1 = enable TIMER0 interrupt */
#define IE_EX1 0x04 /* 1 = enable INT1 interrupt */
#define IE_ET1 0x08 /* 1 = enable TIMER1 interrupt */
#define IE_ES 0x10 /* 1 = enable SERIAL interrupt */
#define IE_ET2 0x20 /* 1 = enable TIMER2 interrupt */
#define IE_EA 0x80 /* 1 = enable ALL interrupt */
#define IP_PX0 0x01 /* 1 = INT0 high priority */
#define IP_PT0 0x02 /* 1 = TIMER0 high priority */
#define IP_PX1 0x04 /* 1 = INT1 high priority */
#define IP_PT1 0x08 /* 1 = TIMER1 high priority */
#define IP_PS 0x10 /* 1 = SERIAL high priority */
#define IP_PT2 0x20 /* 1 = TIMER2 high priority */
#define TMODE_16bitTimer0 0x01
#define TMODE_8bitAutoTimer0 0x02
#define TMODE_16bitTimer1 0x10
#define TMODE_8bitAutoTimer1 0x20
#define cTMOD 0x00
/* 0001 0001 T0:16bit timer; T1:16bit timer; */
/* T1 GATE: T1 C/T: T1 M1: T1 M0: T0 GATE: T0 C/T: T0 M1: T0 M0 */
#define TCON_IT0 0x01 /* 1 = Edge-sensitive */
#define TCON_IE0 0x02 /* 1 = INT0 interrupt and auto clear */
#define TCON_IT1 0x04 /* 1 = Edge-sensitive */
#define TCON_IE1 0x08 /* 1 = INT0 interrupt and auto clear */
#define TCON_TR0 0x10 /* TIMER0 start */
#define TCON_TF0 0x20 /* 1 = TIMER0 interrupt and auto clear */
#define TCON_TR1 0x40 /* TIMER1 start */
#define TCON_TE1 0x80 /* 1 = TIMER0 interrupt and auto clear */
#define SCON_MODE0 0x00 /* fosc/12 shift */
#define SCON_MODE1 0x40 /* 8bit UART */
#define SCON_MODE2 0x80 /* fosc/64or32 9bit UART */
#define SCON_MODE3 0xc0 /* 9bit UART */
#define SCON_SM2 0x20 /* 1 = enable mult1processor */
#define SCON_REN 0x10 /* 1 = SERIAL start */
#define PCON_SMOD 0x80 /* 1 = SMOD set */
/* SMOD=1: 4800&1200&19200(11M) at 12M; SMOD=0:1200-9600 at 11.059M */
/* TH1 = 0xfd; SMOD = 1 is 19600 */
/* f3=1800 at 12M; fd=19200(SMOD=1)&9600,fa=4800;f4=2400 at 11.059M */
sbit P00 = P0^0;
sbit P01 = P0^1;
sbit P02 = P0^2;
sbit P03 = P0^3;
sbit P04 = P0^4;
sbit P05 = P0^5;
sbit P06 = P0^6;
sbit P07 = P0^7;
sbit P10 = P1^0;
sbit P11 = P1^1;
sbit P12 = P1^2;
sbit P13 = P1^3;
sbit P14 = P1^4;
sbit P15 = P1^5;
sbit P16 = P1^6;
sbit P17 = P1^7;
sbit P20 = P2^0;
sbit P21 = P2^1;
sbit P22 = P2^2;
sbit P23 = P2^3;
sbit P24 = P2^4;
sbit P25 = P2^5;
sbit P26 = P2^6;
sbit P27 = P2^7;
sbit P30 = P3^0;
sbit P31 = P3^1;
sbit P32 = P3^2;
sbit P33 = P3^3;
sbit P34 = P3^4;
sbit P35 = P3^5;
sbit P36 = P3^6;
sbit P37 = P3^7;
#ifndef OLD_RTE
#define IOP0 P0
#define IOP1 P1
#define IOP2 P2
#define IOP3 P3
#else
#define IOP0 P4
#define IOP1 P1
#define IOP2 P5
#define IOP3 P3
#endif
#define IOP6 P6
#define IOP8 P8
#ifdef V3LagreRAM
#define RTE52V3
#define P36_HIGH (IOP8 & 0x40)
#define P37_HIGH (IOP8 & 0x80)
#define OP36(bit) {if (bit) IOP8 |= 0x40; \
else IOP8 &= ~0x40;}
#define OP37(bit) {if (bit) IOP8 |= 0x80; \
else IOP8 &= ~0x80;}
#define FP36 {IOP8 ^= 0x40;}
#define FP37 {IOP8 ^= 0x80;}
#else
#define P36_HIGH (P36)
#define P37_HIGH (P37)
#define OP36(bit) {P36 = bit;}
#define OP37(bit) {P37 = bit;}
#define FP36 {IOP3 ^= 0x40;}
#define FP37 {IOP3 ^= 0x80;}
#endif
#ifdef V3NormalRAM
#define RTE52V3
#endif
#ifdef V3LagreRAM
#define RTE52V3
#endif
#ifdef RTE52V3
#ifdef ROOT
void MRTE(BYTE gLocal_1){
BYTE gLocal_2;
IOP8 = ((gLocal_1 >> 4) | 0xf0) & 0xdf;
gLocal_2 = 5; while (--gLocal_2 != 0);
IOP8 |= 0xf0;
IOP8 = ((gLocal_1 & 0x0f) | 0xf0) & 0xcf;
gLocal_2 = 5; while (--gLocal_2 != 0);
IOP8 |= 0xf0;
return;
}
#endif
void MRTE(BYTE gLocal_1);
#define MDEBUG(val) {MRTE(val);}
#else
#define MDEBUG(val) {}
#endif
extern void _nop_ (void);
#define NOP _nop_
#define OP00(bit) if (bit) {P00=1;} else {P00=0;}
#define OP01(bit) if (bit) {P01=1;} else {P01=0;}
#define OP02(bit) if (bit) {P02=1;} else {P02=0;}
#define OP03(bit) if (bit) {P03=1;} else {P03=0;}
#define OP04(bit) if (bit) {P04=1;} else {P04=0;}
#define OP05(bit) if (bit) {P05=1;} else {P05=0;}
#define OP06(bit) if (bit) {P06=1;} else {P06=0;}
#define OP07(bit) if (bit) {P07=1;} else {P07=0;}
#define OP10(bit) if (bit) {P10=1;} else {P10=0;}
#define OP11(bit) if (bit) {P11=1;} else {P11=0;}
#define OP12(bit) if (bit) {P12=1;} else {P12=0;}
#define OP13(bit) if (bit) {P13=1;} else {P13=0;}
#define OP14(bit) if (bit) {P14=1;} else {P14=0;}
#define OP15(bit) if (bit) {P15=1;} else {P15=0;}
#define OP16(bit) if (bit) {P16=1;} else {P16=0;}
#define OP17(bit) if (bit) {P17=1;} else {P17=0;}
#define OP20(bit) if (bit) {P20=1;} else {P20=0;}
#define OP21(bit) if (bit) {P21=1;} else {P21=0;}
#define OP22(bit) if (bit) {P22=1;} else {P22=0;}
#define OP23(bit) if (bit) {P23=1;} else {P23=0;}
#define OP24(bit) if (bit) {P24=1;} else {P24=0;}
#define OP25(bit) if (bit) {P25=1;} else {P25=0;}
#define OP26(bit) if (bit) {P26=1;} else {P26=0;}
#define OP27(bit) if (bit) {P27=1;} else {P27=0;}
#define OP30(bit) if (bit) {P30=1;} else {P30=0;}
#define OP31(bit) if (bit) {P31=1;} else {P31=0;}
#define OP32(bit) if (bit) {P32=1;} else {P32=0;}
#define OP33(bit) if (bit) {P33=1;} else {P33=0;}
#define OP34(bit) if (bit) {P34=1;} else {P34=0;}
#define OP35(bit) if (bit) {P35=1;} else {P35=0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -