📄 c8051f500_defs.h
字号:
SFR (CAN0IF2DB2L, 0xFE); // IF2 Data B 2 Low Byte
SFR (CAN0IF2DB2H, 0xFF); // IF2 Data B 2 High Byte
//-----------------------------------------------------------------------------
// 16-bit Register Definitions (might not be supported by all compilers)
//-----------------------------------------------------------------------------
SFR16 (DP, 0x82); // Data Pointer
SFR16 (TMR3RL, 0x92); // Timer3 Reload
SFR16 (TMR3, 0x94); // Timer3 Capture / Reload
SFR16 (SBRL0, 0xAC); // UART0 Reload
SFR16 (ADC0, 0xBD); // ADC0 data
SFR16 (ADC0GT, 0xC3); // ADC0 Greater Than Window
SFR16 (ADC0LT, 0xC5); // ADC0 Less Than Window
SFR16 (TMR2RL, 0xCA); // Timer 2 Reload
SFR16 (TMR2, 0xCC); // Timer2 Capture / Reload
SFR16 (PCA0CP5, 0xCE); // PCA0 Module 5 Capture
SFR16 (PCA0CP1, 0xE9); // PCA0 Module 1 Capture
SFR16 (PCA0CP2, 0xEB); // PCA0 Module 2 Capture
SFR16 (PCA0CP3, 0xED); // PCA0 Module 3 Capture
SFR16 (PCA0, 0xF9); // PCA0 Counter
SFR16 (PCA0CP0, 0xFB); // PCA0 Module 0 Capture
SFR16 (PCA0CP4, 0xFD); // PCA0 Module 4 Capture
SFR16 (CAN0ERR, 0x96); // Error Counter
SFR16 (CAN0BT, 0x9A); // Bit Timing Register
SFR16 (CAN0IID, 0x9C); // Interrupt Register
SFR16 (CAN0TR1, 0xA2); // Transmission Request 1
SFR16 (CAN0TR2, 0xA4); // Transmission Request 2
SFR16 (CAN0ND1, 0xAA); // New Data 1
SFR16 (CAN0ND2, 0xAC); // New Data 2
SFR16 (CAN0IP1, 0xAE); // Interrupt Pending 1
SFR16 (CAN0IP2, 0xB2); // Interrupt Pending 2
SFR16 (CAN0MV1, 0xBA); // Message Valid 1
SFR16 (CAN0MV2, 0xBC); // Message Valid 2
SFR16 (CAN0IF1CR, 0xBE); // IF1 Command Request
SFR16 (CAN0IF1CM, 0xC2); // IF1 Command Mask
SFR16 (CAN0IF1M1, 0xC4); // IF1 Mask 1
SFR16 (CAN0IF1M2, 0xC6); // IF1 Mask 2
SFR16 (CAN0IF1A1, 0xCA); // IF1 Arbitration 1
SFR16 (CAN0IF1A2, 0xCC); // IF1 Arbitration 2
SFR16 (CAN0IF2MC, 0xCE); // IF2 Message Control
SFR16 (CAN0IF1MC, 0xD2); // IF1 Message Control
SFR16 (CAN0IF1DA1, 0xD4); // IF1 Data A 1
SFR16 (CAN0IF1DA2, 0xD6); // IF1 Data A 2
SFR16 (CAN0IF1DB1, 0xDA); // IF1 Data B 1
SFR16 (CAN0IF1DB2, 0xDC); // IF1 Data B 2
SFR16 (CAN0IF2CR, 0xDE); // IF2 Command Request
SFR16 (CAN0IF2CM, 0xE2); // IF2 Command Mask
SFR16 (CAN0IF2M1, 0xEA); // IF2 Mask 1
SFR16 (CAN0IF2M2, 0xEC); // IF2 Mask 2
SFR16 (CAN0IF2A1, 0xEE); // IF2 Arbitration 1
SFR16 (CAN0IF2A2, 0xF2); // IF2 Arbitration 2
SFR16 (CAN0IF2DA1, 0xF6); // IF2 Data A 1
SFR16 (CAN0IF2DA2, 0xFA); // IF2 Data A 2
SFR16 (CAN0IF2DB1, 0xFC); // IF2 Data B 1
SFR16 (CAN0IF2DB2, 0xFE); // IF2 Data B 2
//-----------------------------------------------------------------------------
// LIN0 Indirect Registers
//-----------------------------------------------------------------------------
#define LIN0DT1 0x00 // LIN0 Data Byte 1
#define LIN0DT2 0x01 // LIN0 Data Byte 2
#define LIN0DT3 0x02 // LIN0 Data Byte 3
#define LIN0DT4 0x03 // LIN0 Data Byte 4
#define LIN0DT5 0x04 // LIN0 Data Byte 5
#define LIN0DT6 0x05 // LIN0 Data Byte 6
#define LIN0DT7 0x06 // LIN0 Data Byte 7
#define LIN0DT8 0x07 // LIN0 Data Byte 8
#define LIN0CTRL 0x08 // LIN0 Control
#define LIN0ST 0x09 // LIN0 Status
#define LIN0ERR 0x0A // LIN0 Error
#define LIN0SIZE 0x0B // LIN0 Message Size
#define LIN0DIV 0x0C // LIN0 Divider
#define LIN0MUL 0x0D // LIN0 Multiplier
#define LIN0ID 0x0E // LIN0 Identifier
//-----------------------------------------------------------------------------
// Address Definitions for Bit-addressable Registers
//-----------------------------------------------------------------------------
#define SFR_P0 0x80
#define SFR_TCON 0x88
#define SFR_P1 0x90
#define SFR_SCON0 0x98
#define SFR_P2 0xA0
#define SFR_IE 0xA8
#define SFR_P3 0xB0
#define SFR_IP 0xB8
#define SFR_SMB0CN 0xC0
#define SFR_TMR2CN 0xC8
#define SFR_PSW 0xD0
#define SFR_PCA0CN 0xD8
#define SFR_ACC 0xE0
#define SFR_ADC0CN 0xE8
#define SFR_B 0xF0
#define SFR_SPI0CN 0xF8
//-----------------------------------------------------------------------------
// Bit Definitions
//-----------------------------------------------------------------------------
// TCON 0x88
SBIT (TF1, SFR_TCON, 7); // Timer 1 Overflow Flag
SBIT (TR1, SFR_TCON, 6); // Timer 1 On/Off Control
SBIT (TF0, SFR_TCON, 5); // Timer 0 Overflow Flag
SBIT (TR0, SFR_TCON, 4); // Timer 0 On/Off Control
SBIT (IE1, SFR_TCON, 3); // Ext. Interrupt 1 Edge Flag
SBIT (IT1, SFR_TCON, 2); // Ext. Interrupt 1 Type
SBIT (IE0, SFR_TCON, 1); // Ext. Interrupt 0 Edge Flag
SBIT (IT0, SFR_TCON, 0); // Ext. Interrupt 0 Type
// SCON0 0x98
SBIT (OVR0, SFR_SCON0, 7); // UART0 Mode 0
SBIT (PERR0, SFR_SCON0, 6); // UART0 Parity Error Flag
SBIT (THRE0, SFR_SCON0, 5); // UART0 Transmit Holding Reg. Empty
SBIT (REN0, SFR_SCON0, 4); // UART0 RX Enable
SBIT (TBX0, SFR_SCON0, 3); // UART0 TX Bit 8
SBIT (RBX0, SFR_SCON0, 2); // UART0 RX Bit 8
SBIT (TI0, SFR_SCON0, 1); // UART0 TX Interrupt Flag
SBIT (RI0, SFR_SCON0, 0); // UART0 RX Interrupt Flag
// IE 0xA8
SBIT (EA, SFR_IE, 7); // Global Interrupt Enable
SBIT (ESPI0, SFR_IE, 6); // SPI0 Interrupt Enable
SBIT (ET2, SFR_IE, 5); // Timer 2 Interrupt Enable
SBIT (ES0, SFR_IE, 4); // UART0 Interrupt Enable
SBIT (ET1, SFR_IE, 3); // Timer 1 Interrupt Enable
SBIT (EX1, SFR_IE, 2); // External Interrupt 1 Enable
SBIT (ET0, SFR_IE, 1); // Timer 0 Interrupt Enable
SBIT (EX0, SFR_IE, 0); // External Interrupt 0 Enable
// IP 0xB8
// Bit 7 unused
SBIT (PSPI0, SFR_IP, 6); // SPI0 Interrupt Priority
SBIT (PT2, SFR_IP, 5); // Timer 2 Priority
SBIT (PS0, SFR_IP, 4); // UART0 Priority
SBIT (PS, SFR_IP, 4); // UART0 Priority
SBIT (PT1, SFR_IP, 3); // Timer 1 Priority
SBIT (PX1, SFR_IP, 2); // External Interrupt 1 Priority
SBIT (PT0, SFR_IP, 1); // Timer 0 Priority
SBIT (PX0, SFR_IP, 0); // External Interrupt 0 Priority
// SMB0CN 0xC0
SBIT (MASTER, SFR_SMB0CN, 7); // SMBus0 Master/Slave Indicator
SBIT (TXMODE, SFR_SMB0CN, 6); // SMBus0 Transmit Mode Indicator
SBIT (STA, SFR_SMB0CN, 5); // SMBus0 Start Flag
SBIT (STO, SFR_SMB0CN, 4); // SMBus0 Stop Flag
SBIT (ACKRQ, SFR_SMB0CN, 3); // SMBus0 Acknowledge Request
SBIT (ARBLOST, SFR_SMB0CN, 2); // SMBus0 Arbitration Lost Indicator
SBIT (ACK, SFR_SMB0CN, 1); // SMBus0 Acknowledge
SBIT (SI, SFR_SMB0CN, 0); // SMBus0 Interrupt Flag
// TMR2CN 0xC8
SBIT (TF2H, SFR_TMR2CN, 7); // Timer 2 High-Byte Overflow Flag
SBIT (TF2L, SFR_TMR2CN, 6); // Timer 2 Low-Byte Overflow Flag
SBIT (TF2LEN, SFR_TMR2CN, 5); // Timer 2 Low-Byte Flag Enable
SBIT (TF2CEN, SFR_TMR2CN, 4); // Timer 2 Capture Enable
SBIT (T2SPLIT, SFR_TMR2CN, 3); // Timer 2 Split-Mode Enable
SBIT (TR2, SFR_TMR2CN, 2); // Timer2 Run Enable
// Unused
SBIT (T2XCLK, SFR_TMR2CN, 0); // Timer 2 Clk/8 Clock Source
// PSW 0xD0
SBIT (CY, SFR_PSW, 7); // Carry Flag
SBIT (AC, SFR_PSW, 6); // Auxiliary Carry Flag
SBIT (F0, SFR_PSW, 5); // User Flag 0
SBIT (RS1, SFR_PSW, 4); // Register Bank Select 1
SBIT (RS0, SFR_PSW, 3); // Register Bank Select 0
SBIT (OV, SFR_PSW, 2); // Overflow Flag
SBIT (F1, SFR_PSW, 1); // User Flag 1
SBIT (P, SFR_PSW, 0); // Accumulator Parity Flag
// PCA0CN 0xD8
SBIT (CF, SFR_PCA0CN, 7); // PCA0 Counter Overflow Flag
SBIT (CR, SFR_PCA0CN, 6); // PCA0 Counter Run Control Bit
SBIT (CCF5, SFR_PCA0CN, 5); // PCA0 Module 5 Interrupt Flag
SBIT (CCF4, SFR_PCA0CN, 4); // PCA0 Module 4 Interrupt Flag
SBIT (CCF3, SFR_PCA0CN, 3); // PCA0 Module 3 Interrupt Flag
SBIT (CCF2, SFR_PCA0CN, 2); // PCA0 Module 2 Interrupt Flag
SBIT (CCF1, SFR_PCA0CN, 1); // PCA0 Module 1 Interrupt Flag
SBIT (CCF0, SFR_PCA0CN, 0); // PCA0 Module 0 Interrupt Flag
// ADC0CN 0xE8
SBIT (AD0EN, SFR_ADC0CN, 7); // ADC0 Enable
SBIT (BURSTEN, SFR_ADC0CN, 6); // ADC0 Burst Enable
SBIT (AD0INT, SFR_ADC0CN, 5); // ADC0 EOC Interrupt Flag
SBIT (AD0BUSY, SFR_ADC0CN, 4); // ADC0 Busy Flag
SBIT (AD0WINT, SFR_ADC0CN, 3); // ADC0 Window Compare Interrupt Flag
SBIT (AD0LJST, SFR_ADC0CN, 2); // ADC0 Left Justified
SBIT (AD0CM1, SFR_ADC0CN, 1); // ADC0 Start Of Conversion Mode Bit 1
SBIT (AD0CM0, SFR_ADC0CN, 0); // ADC0 Start Of Conversion Mode Bit 0
// SPI0CN 0xF8
SBIT (SPIF, SFR_SPI0CN, 7); // SPI0 Interrupt Flag
SBIT (WCOL, SFR_SPI0CN, 6); // SPI0 Write Collision Flag
SBIT (MODF, SFR_SPI0CN, 5); // SPI0 Mode Fault Flag
SBIT (RXOVRN, SFR_SPI0CN, 4); // SPI0 RX Overrun Flag
SBIT (NSSMD1, SFR_SPI0CN, 3); // SPI0 Slave Select Mode 1
SBIT (NSSMD0, SFR_SPI0CN, 2); // SPI0 Slave Select Mode 0
SBIT (TXBMT, SFR_SPI0CN, 1); // SPI0 TX Buffer Empty Flag
SBIT (SPIEN, SFR_SPI0CN, 0); // SPI0 Enable
//-----------------------------------------------------------------------------
// Interrupt Priorities
//-----------------------------------------------------------------------------
#define INTERRUPT_INT0 0 // External Interrupt 0
#define INTERRUPT_TIMER0 1 // Timer0 Overflow
#define INTERRUPT_INT1 2 // External Interrupt 1
#define INTERRUPT_TIMER1 3 // Timer1 Overflow
#define INTERRUPT_UART0 4 // UART0
#define INTERRUPT_TIMER2 5 // Timer2 Overflow
#define INTERRUPT_SPI0 6 // SPI0
#define INTERRUPT_SMBUS0 7 // SMBus0 Interface
#define INTERRUPT_ADC0_WINDOW 8 // ADC0 Window Comparison
#define INTERRUPT_ADC0_EOC 9 // ADC0 End Of Conversion
#define INTERRUPT_PCA0 10 // PCA0 Peripheral
#define INTERRUPT_COMPARATOR0 11 // Comparator0 Comparison
#define INTERRUPT_COMPARATOR1 12 // Comparator1 Comparison
#define INTERRUPT_TIMER3 13 // Timer3 Overflow
#define INTERRUPT_LIN0 14 // LIN Bus Interrupt
#define INTERRUPT_VREG 15 // Voltage Regulator
#define INTERRUPT_CAN0 16 // CAN Bus Interrupt
#define INTERRUPT_PORT_MATCH 17 // Port Match
//-----------------------------------------------------------------------------
// SFR Page Definitions
//-----------------------------------------------------------------------------
#define CONFIG_PAGE 0x0F // System and Port Configuration Page
#define ACTIVE_PAGE 0x00 // Active Use Page
#define CAN0_PAGE 0x0C // CAN0 Registers
//-----------------------------------------------------------------------------
// Header File PreProcessor Directive
//-----------------------------------------------------------------------------
#endif // #define C8051F500_DEFS_H
//-----------------------------------------------------------------------------
// End Of File
//-----------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -