📄 82930hc.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 + -