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

📄 82930hc.h

📁 mcs51,2051,x86系列MCU
💻 H
字号:
#ifndef MC82930_INCLUDE
#define MC82930_INCLUDE

struct _SFR_BITS {
  unsigned B7 : 1;
  unsigned B6 : 1;
  unsigned B5 : 1;
  unsigned B4 : 1;
  unsigned B3 : 1;
  unsigned B2 : 1;
  unsigned B1 : 1;
  unsigned B0 : 1;
};

intrinsic void SET_VECTOR(long vector,void (*)(void));
intrinsic void EI(void);
intrinsic void DI(void);


#define _BIT(byte,bit) (*(struct _SFR_BITS sfr *)&(byte)).B##bit

	/* SFRs */

#define P0 (*((volatile sfr char *)0x80))
#define SP (*((volatile sfr char *)0x81))
#define SPL (*((volatile sfr char *)0x81))
#define DPL (*((volatile sfr char *)0x82))
#define DPH (*((volatile sfr char *)0x83))
#define DPXH (*((volatile sfr char *)0x84))
#define DPXL (*((volatile sfr char *)0x85))
#define PCON (*((volatile sfr char *)0x87))

#define TCON (*((volatile sfr char *)0x88))
#define TMOD (*((volatile sfr char *)0x89))
#define TL0 (*((volatile sfr char *)0x8a))
#define TL1 (*((volatile sfr char *)0x8b))
#define TH0 (*((volatile sfr char *)0x8c))
#define TH1 (*((volatile sfr char *)0x8d))
#define FADDR (*((volatile sfr char *)0x8f))

#define P1 (*((volatile sfr char *)0x90))
#define SBI (*((volatile sfr char *)0x91))
#define TXDAT0 (*((volatile sfr char *)0x92))
#define TXDAT1 (*((volatile sfr char *)0x93))
#define TXDAT2 (*((volatile sfr char *)0x94))
#define TXDAT3 (*((volatile sfr char *)0x95))

#define SCON (*((volatile sfr char *)0x98))
#define SBUF (*((volatile sfr char *)0x99))
#define TXCON0 (*((volatile sfr char *)0x9a))
#define TXCON1 (*((volatile sfr char *)0x9b))
#define TXCON2 (*((volatile sfr char *)0x9c))
#define TXCON3 (*((volatile sfr char *)0x9d))

#define P2 (*((volatile sfr char *)0xa0))
#define SBIE (*((volatile sfr char *)0xa1))
#define TXFLG0 (*((volatile sfr char *)0xa2))
#define TXFLG1 (*((volatile sfr char *)0xa3))
#define TXFLG2 (*((volatile sfr char *)0xa4))
#define TXFLG3 (*((volatile sfr char *)0xa5))
#define WDTRST (*((volatile sfr char *)0xa6))

#define IE (*((volatile sfr char *)0xa8))
#define SADDR (*((volatile sfr char *)0xa9))
#define TXCNT0 (*((volatile sfr char *)0xaa))
#define TXCNT1 (*((volatile sfr char *)0xab))
#define TXCNT2 (*((volatile sfr char *)0xac))
#define TXCNT3 (*((volatile sfr char *)0xad))

#define P3 (*((volatile sfr char *)0xb0))
#define IE1 (*((volatile sfr char *)0xb1))
#define IPL1 (*((volatile sfr char *)0xb2))
#define IPH1 (*((volatile sfr char *)0xb3))
#define IPH0 (*((volatile sfr char *)0xb7))

#define IPL0 (*((volatile sfr char *)0xb8))
#define IP (*((volatile sfr char *)0xb8))	;same as IPL0
#define SADEN (*((volatile sfr char *)0xb9))
#define EPCON2 (*((volatile sfr char *)0xba))
#define EPCON3 (*((volatile sfr char *)0xbb))
#define SPH (*((volatile sfr char *)0xbe))

#define EPCON0 (*((volatile sfr char *)0xc0))
#define EPCON1 (*((volatile sfr char *)0xc1))
#define RXDAT0 (*((volatile sfr char *)0xc4))
#define RXDAT1 (*((volatile sfr char *)0xc5))
#define RXDAT2 (*((volatile sfr char *)0xc6))
#define RXDAT3 (*((volatile sfr char *)0xc7))

#define T2CON (*((volatile sfr char *)0xc8))
#define T2MOD (*((volatile sfr char *)0xc9))
#define RCAP2L (*((volatile sfr char *)0xca))
#define RCAP2H (*((volatile sfr char *)0xcb))
#define TL2 (*((volatile sfr char *)0xcc))
#define TH2 (*((volatile sfr char *)0xcd))

#define PSW (*((volatile sfr char *)0xd0))
#define PSW1 (*((volatile sfr char *)0xd1))
#define SOFL (*((volatile sfr char *)0xd2))
#define SOFH (*((volatile sfr char *)0xd3))
#define RXCON0 (*((volatile sfr char *)0xd4))
#define RXCON1 (*((volatile sfr char *)0xd5))
#define RXCON2 (*((volatile sfr char *)0xd6))
#define RXCON3 (*((volatile sfr char *)0xd7))

#define CCON (*((volatile sfr char *)0xd8))
#define CMOD (*((volatile sfr char *)0xd9))
#define CCAPM0 (*((volatile sfr char *)0xda))
#define CCAPM1 (*((volatile sfr char *)0xdb))
#define CCAPM2 (*((volatile sfr char *)0xdc))
#define CCAPM3 (*((volatile sfr char *)0xdd))
#define CCAMP4 (*((volatile sfr char *)0xde))

#define ACC (*((volatile sfr char *)0xe0))
#define TXSTAT1 (*((volatile sfr char *)0xe1))
#define TXSTAT2 (*((volatile sfr char *)0xe2))
#define TXSTAT3 (*((volatile sfr char *)0xe3))
#define RXFLG0 (*((volatile sfr char *)0xe4))
#define RXFLG1 (*((volatile sfr char *)0xe5))
#define RXFLG2 (*((volatile sfr char *)0xe6))
#define RXFLG3 (*((volatile sfr char *)0xe7))

#define TXSTAT0 (*((volatile sfr char *)0xe8))
#define CL (*((volatile sfr char *)0xe9))
#define CCAP0L (*((volatile sfr char *)0xea))
#define CCAP1L (*((volatile sfr char *)0xeb))
#define CCAP2L (*((volatile sfr char *)0xec))
#define CCAP3L (*((volatile sfr char *)0xed))
#define CCAP4L (*((volatile sfr char *)0xee))

#define B (*((volatile sfr char *)0xf0))
#define RXSTAT1 (*((volatile sfr char *)0xf1))
#define RXSTAT2 (*((volatile sfr char *)0xf2))
#define RXSTAT3 (*((volatile sfr char *)0xf3))
#define RXCNT0 (*((volatile sfr char *)0xf4))
#define RXCNT1 (*((volatile sfr char *)0xf5))
#define RXCNT2 (*((volatile sfr char *)0xf6))
#define RXCNT3 (*((volatile sfr char *)0xf7))

#define RXSTAT0 (*((volatile sfr char *)0xf8))
#define CH (*((volatile sfr char *)0xf9))
#define CCAP0H (*((volatile sfr char *)0xfa))
#define CCAP1H (*((volatile sfr char *)0xfb))
#define CCAP2H (*((volatile sfr char *)0xfc))
#define CCAP3H (*((volatile sfr char *)0xfd))
#define CCAP4H (*((volatile sfr char *)0xfe))


/* define IF0 (*((volatile sfr char *)0xc2)) */

#define TF1 _BIT(TCON,7)
#define TR1 _BIT(TCON,6)
#define TF0 _BIT(TCON,5)
#define TR0 _BIT(TCON,4)
#define IE_1 _BIT(TCON,3)
#define IT1 _BIT(TCON,2)
#define IE0 _BIT(TCON,1)
#define IT0 _BIT(TCON,0)

#define SM0 _BIT(SCON,7)
#define SM1 _BIT(SCON,6)
#define SM2 _BIT(SCON,5)
#define REN _BIT(SCON,4)
#define TB8 _BIT(SCON,3)
#define RB8 _BIT(SCON,2)
#define TI  _BIT(SCON,1)
#define RI  _BIT(SCON,0)

#define EA  _BIT(IE,7)
#define ET2 _BIT(IE,5)
#define ES  _BIT(IE,4)
#define ET1 _BIT(IE,3)
#define EX1 _BIT(IE,2)
#define ET0 _BIT(IE,1)
#define EX0 _BIT(IE,0)

#define PT2 _BIT(IPL0,5)
#define PS  _BIT(IPL0,4)
#define PT1 _BIT(IPL0,3)
#define PX1 _BIT(IPL0,2)
#define PT0 _BIT(IPL0,1)
#define PX0 _BIT(IPL0,0)

#define CY  _BIT(PSW,7)
#define AC  _BIT(PSW,6)
#define F0  _BIT(PSW,5)
#define RS1 _BIT(PSW,4)
#define RS0 _BIT(PSW,3)
#define OV  _BIT(PSW,2)
#define UD  _BIT(PSW,1)
#define P   _BIT(PSW,0)

#define TF2    _BIT(T2CON,7)
#define EXF2   _BIT(T2CON,6)
#define RCLK   _BIT(T2CON,5)
#define TCLK   _BIT(T2CON,4)
#define EXEN2  _BIT(T2CON,3)
#define TR2    _BIT(T2CON,2)
#define C_T2   _BIT(T2CON,1)
#define CP_RL2 _BIT(T2CON,0)

#define	RXD3	_BIT(SBI,7)
#define	TXD3	_BIT(SBI,6)
#define	RXD2	_BIT(SBI,5)
#define	TXD2	_BIT(SBI,4)
#define	RXD1	_BIT(SBI,3)
#define	TXD1	_BIT(SBI,2)
#define	RXD0	_BIT(SBI,1)
#define	TXD0	_BIT(SBI,0)

#define	RXIE3	_BIT(SBIE,7)
#define	TXIE3	_BIT(SBIE,6)
#define	RXIE2	_BIT(SBIE,5)
#define	TXIE2	_BIT(SBIE,4)
#define	RXIE1	_BIT(SBIE,3)
#define	TXIE1	_BIT(SBIE,2)
#define	RXIE0	_BIT(SBIE,1)
#define	TXIE0	_BIT(SBIE,0)

#define	T_CLR0	_BIT(TXCON0,7)
#define T_ISO0	_BIT(TXCON0,3)
#define	T_ATM0	_BIT(TXCON0,2)
#define	T_ADV_RM0	_BIT(TXCON0,1)
#define	T_REV_RP0	_BIT(TXCON0,0)

#define	T_CLR1	_BIT(TXCON1,7)
#define T_ISO1	_BIT(TXCON1,3)
#define	T_ATM1	_BIT(TXCON1,2)
#define	T_ADV_RM1	_BIT(TXCON1,1)
#define	T_REV_RP1	_BIT(TXCON1,0)

#define	T_CLR2	_BIT(TXCON2,7)
#define T_ISO2	_BIT(TXCON2,3)
#define	T_ATM2	_BIT(TXCON2,2)
#define	T_ADV_RM2	_BIT(TXCON2,1)
#define	T_REV_RP2	_BIT(TXCON2,0)

#define	T_CLR3	_BIT(TXCON3,7)
#define T_ISO3	_BIT(TXCON3,3)
#define	T_ATM3	_BIT(TXCON3,2)
#define	T_ADV_RM3	_BIT(TXCON3,1)
#define	T_REV_RP3	_BIT(TXCON3,0)

#define	T_FIF10	_BIT(TXFLG0,7)
#define	T_FIF00	_BIT(TXFLG0,6)
#define	T_EMPTY0	_BIT(TXFLG0,3)
#define	T_FULL0	_BIT(TXFLG0,2)
#define	T_URF0	_BIT(TXFLG0,1)
#define	T_OVF0	_BIT(TXFLG0,0)

#define	T_FIF11	_BIT(TXFLG1,7)
#define	T_FIF01	_BIT(TXFLG1,6)
#define	T_EMPTY1	_BIT(TXFLG1,3)
#define	T_FULL1	_BIT(TXFLG1,2)
#define	T_URF1	_BIT(TXFLG1,1)
#define	T_OVF1	_BIT(TXFLG1,0)

#define	T_FIF12	_BIT(TXFLG2,7)
#define	T_FIF02	_BIT(TXFLG2,6)
#define	T_EMPTY2	_BIT(TXFLG2,3)
#define	T_FULL2	_BIT(TXFLG2,2)
#define	T_URF2	_BIT(TXFLG2,1)
#define	T_OVF2	_BIT(TXFLG2,0)

#define	T_FIF13	_BIT(TXFLG3,7)
#define	T_FIF03	_BIT(TXFLG3,6)
#define	T_EMPTY3	_BIT(TXFLG3,3)
#define	T_FULL3	_BIT(TXFLG3,2)
#define	T_URF3	_BIT(TXFLG3,1)
#define	T_OVF3	_BIT(TXFLG3,0)

#define	R_CLR0	_BIT(RXCON0,7)
#define	R_FFRC0	_BIT(RXCON0,4)
#define R_ISO0	_BIT(RXCON0,3)
#define	R_ATM0	_BIT(RXCON0,2)
#define	R_ADV_RM0	_BIT(RXCON0,1)
#define	R_REV_RP0	_BIT(RXCON0,0)

#define	R_CLR1	_BIT(RXCON1,7)
#define	R_FFRC1	_BIT(RXCON1,4)
#define R_ISO1	_BIT(RXCON1,3)
#define	R_ATM1	_BIT(RXCON1,2)
#define	R_ADV_RM1	_BIT(RXCON1,1)
#define	R_REV_RP1	_BIT(RXCON1,0)

#define	R_CLR2	_BIT(RXCON2,7)
#define	R_FFRC2	_BIT(RXCON2,4)
#define R_ISO2	_BIT(RXCON2,3)
#define	R_ATM2	_BIT(RXCON2,2)
#define	R_ADV_RM2	_BIT(RXCON2,1)
#define	R_REV_RP2	_BIT(RXCON2,0)

#define	R_CLR3	_BIT(RXCON3,7)
#define	R_FFRC3	_BIT(RXCON3,4)
#define R_ISO3	_BIT(RXCON3,3)
#define	R_ATM3	_BIT(RXCON3,2)
#define	R_ADV_RM3	_BIT(RXCON3,1)
#define	R_REV_RP3	_BIT(RXCON3,0)

#define	R_FIF10	_BIT(RXFLG0,7)
#define	R_FIF00	_BIT(RXFLG0,6)
#define	R_EMPTY0	_BIT(RXFLG0,3)
#define	R_FULL0	_BIT(RXFLG0,2)
#define	R_URF0	_BIT(RXFLG0,1)
#define	R_OVF0	_BIT(RXFLG0,0)

#define	R_FIF11	_BIT(RXFLG1,7)
#define	R_FIF01	_BIT(RXFLG1,6)
#define	R_EMPTY1	_BIT(RXFLG1,3)
#define	R_FULL1	_BIT(RXFLG1,2)
#define	R_URF1	_BIT(RXFLG1,1)
#define	R_OVF1	_BIT(RXFLG1,0)

#define	R_FIF12	_BIT(RXFLG2,7)
#define	R_FIF02	_BIT(RXFLG2,6)
#define	R_EMPTY2	_BIT(RXFLG2,3)
#define	R_FULL2	_BIT(RXFLG2,2)
#define	R_URF2	_BIT(RXFLG2,1)
#define	R_OVF2	_BIT(RXFLG2,0)

#define	R_FIF13	_BIT(RXFLG3,7)
#define	R_FIF03	_BIT(RXFLG3,6)
#define	R_EMPTY3	_BIT(RXFLG3,3)
#define	R_FULL3	_BIT(RXFLG3,2)
#define	R_URF3	_BIT(RXFLG3,1)
#define	R_OVF3	_BIT(RXFLG3,0)

#define	STL_RX0	_BIT(EPCON0,7)
#define	STL_TX0	_BIT(EPCON0,6)
#define	CTL_EP0	_BIT(EPCON0,5)
#define	RXSPM0	_BIT(EPCON0,4)
#define	RXIN_E0	_BIT(EPCON0,3)
#define	RXEP_E0	_BIT(EPCON0,2)
#define	TX_OE0	_BIT(EPCON0,1)
#define	TXEP_E0	_BIT(EPCON0,0)

#define	STL_RX1	_BIT(EPCON1,7)
#define	STL_TX1	_BIT(EPCON1,6)
#define	CTL_EP1	_BIT(EPCON1,5)
#define	RXSPM1	_BIT(EPCON1,4)
#define	RXIN_E1	_BIT(EPCON1,3)
#define	RXEP_E1	_BIT(EPCON1,2)
#define	TX_OE1	_BIT(EPCON1,1)
#define	TXEP_E1	_BIT(EPCON1,0)

#define	STL_RX2	_BIT(EPCON2,7)
#define	STL_TX2	_BIT(EPCON2,6)
#define	CTL_EP2	_BIT(EPCON2,5)
#define	RXSPM2	_BIT(EPCON2,4)
#define	RXIN_E2	_BIT(EPCON2,3)
#define	RXEP_E2	_BIT(EPCON2,2)
#define	TX_OE2	_BIT(EPCON2,1)
#define	TXEP_E2	_BIT(EPCON2,0)

#define	STL_RX3	_BIT(EPCON3,7)
#define	STL_TX3	_BIT(EPCON3,6)
#define	CTL_EP3	_BIT(EPCON3,5)
#define	RXSPM3	_BIT(EPCON3,4)
#define	RXIN_E3	_BIT(EPCON3,3)
#define	RXEP_E3	_BIT(EPCON3,2)
#define	TX_OE3	_BIT(EPCON3,1)
#define	TXEP_E3	_BIT(EPCON3,0)

#define	T_SEQ0	_BIT(TXSTAT0,7)
#define	T_VOID0	_BIT(TXSTAT0,2)
#define	T_ERR0	_BIT(TXSTAT0,1)
#define	T_ACK0	_BIT(TXSTAT0,0)

#define	T_SEQ1	_BIT(TXSTAT1,7)
#define	T_VOID1	_BIT(TXSTAT1,2)
#define	T_ERR1	_BIT(TXSTAT1,1)
#define	T_ACK1	_BIT(TXSTAT1,0)

#define	T_SEQ2	_BIT(TXSTAT2,7)
#define	T_VOID2	_BIT(TXSTAT2,2)
#define	T_ERR2	_BIT(TXSTAT2,1)
#define	T_ACK2	_BIT(TXSTAT2,0)

#define	T_SEQ3	_BIT(TXSTAT3,7)
#define	T_VOID3	_BIT(TXSTAT3,2)
#define	T_ERR3	_BIT(TXSTAT3,1)
#define	T_ACK3	_BIT(TXSTAT3,0)

#define	R_SEQ0	_BIT(RXSTAT0,7)
#define	R_SETUP0	_BIT(RXSTAT0,6)
#define	R_VOID0	_BIT(RXSTAT0,2)
#define	R_ERR0	_BIT(RXSTAT0,1)
#define	R_ACK0	_BIT(RXSTAT0,0)

#define	R_SEQ1	_BIT(RXSTAT1,7)
#define	R_SETUP1	_BIT(RXSTAT1,6)
#define	R_VOID1	_BIT(RXSTAT1,2)
#define	R_ERR1	_BIT(RXSTAT1,1)
#define	R_ACK1	_BIT(RXSTAT1,0)

#define	R_SEQ2	_BIT(RXSTAT2,7)
#define	R_SETUP2	_BIT(RXSTAT2,6)
#define	R_VOID2	_BIT(RXSTAT2,2)
#define	R_ERR2	_BIT(RXSTAT2,1)
#define	R_ACK2	_BIT(RXSTAT2,0)

#define	R_SEQ3	_BIT(RXSTAT3,7)
#define	R_SETUP3	_BIT(RXSTAT3,6)
#define	R_VOID3	_BIT(RXSTAT3,2)
#define	R_ERR3	_BIT(RXSTAT3,1)
#define	R_ACK3	_BIT(RXSTAT3,0)

#define	TS7	_BIT(SOFL,7)
#define	TS6	_BIT(SOFL,6)
#define	TS5	_BIT(SOFL,5)
#define	TS4	_BIT(SOFL,4)
#define	TS3	_BIT(SOFL,3)
#define	TS2	_BIT(SOFL,2)
#define	TS1	_BIT(SOFL,1)
#define	TS0	_BIT(SOFL,0)

#define	SFACK	_BIT(SOFH,7)
#define	RXSOF	_BIT(SOFH,6)
#define	TS10	_BIT(SOFH,2)
#define	TS9	_BIT(SOFH,1)
#define	TS8	_BIT(SOFH,0)

#define	A6	_BIT(FADDR,6)
#define	A5	_BIT(FADDR,5)
#define	A4	_BIT(FADDR,4)
#define	A3	_BIT(FADDR,3)
#define	A2	_BIT(FADDR,2)
#define	A1	_BIT(FADDR,1)
#define	A0	_BIT(FADDR,0)

	/* Interrupt Vectors */

#define INT0	0x0003
#define TIMER0	0x000b
#define INT1	0x0013
#define TIMER1	0x001b
#define SERIO	0x0023
#define TIMER2	0x002b
#define PCA	0x0033
#define	EP0	0x0043
#define	EP1	0x004b
#define	EP2	0x0053
#define	EP3	0x005b
#define TRAP	0x007b

#endif

⌨️ 快捷键说明

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