📄 c8051f040.h
字号:
sbit TR4 = TMR4CN ^ 2; /* TIMER 4 ON/OFF CONTROL */
sbit CT4 = TMR4CN ^ 1; /* TIMER 4 COUNTER SELECT */
sbit CPRL4 = TMR4CN ^ 0; /* TIMER 4 CAPTURE SELECT */
/**************************************/
/* PSW 0xD0 */
/**************************************/
sbit CY = PSW ^ 7; /* CARRY FLAG */
sbit AC = PSW ^ 6; /* AUXILIARY CARRY FLAG */
sbit F0 = PSW ^ 5; /* USER FLAG 0 */
sbit RS1 = PSW ^ 4; /* REGISTER BANK SELECT 1 */
sbit RS0 = PSW ^ 3; /* REGISTER BANK SELECT 0 */
sbit OV = PSW ^ 2; /* OVERFLOW FLAG */
sbit F1 = PSW ^ 1; /* USER FLAG 1 */
sbit P = PSW ^ 0; /* ACCUMULATOR PARITY FLAG */
/**************************************/
/* PCA0CN 0xD8 */
/**************************************/
sbit CF = PCA0CN ^ 7; /* PCA 0 COUNTER OVERFLOW FLAG */
sbit CR = PCA0CN ^ 6; /* PCA 0 COUNTER RUN CONTROL BIT */
sbit CCF5 = PCA0CN ^ 5; /* PCA 0 MODULE 5 INTERRUPT FLAG */
sbit CCF4 = PCA0CN ^ 4; /* PCA 0 MODULE 4 INTERRUPT FLAG */
sbit CCF3 = PCA0CN ^ 3; /* PCA 0 MODULE 3 INTERRUPT FLAG */
sbit CCF2 = PCA0CN ^ 2; /* PCA 0 MODULE 2 INTERRUPT FLAG */
sbit CCF1 = PCA0CN ^ 1; /* PCA 0 MODULE 1 INTERRUPT FLAG */
sbit CCF0 = PCA0CN ^ 0; /* PCA 0 MODULE 0 INTERRUPT FLAG */
/**************************************/
/* ADC0CN 0xE8 */
/**************************************/
sbit AD0EN = ADC0CN ^ 7; /* ADC 0 ENABLE */
sbit AD0TM = ADC0CN ^ 6; /* ADC 0 TRACK MODE */
sbit AD0INT = ADC0CN ^ 5; /* ADC 0 EOC INTERRUPT FLAG */
sbit AD0BUSY = ADC0CN ^ 4; /* ADC 0 BUSY FLAG */
sbit AD0CM1 = ADC0CN ^ 3; /* ADC 0 CONVERT START MODE BIT 1 */
sbit AD0CM0 = ADC0CN ^ 2; /* ADC 0 CONVERT START MODE BIT 0 */
sbit AD0WINT = ADC0CN ^ 1; /* ADC 0 WINDOW INTERRUPT FLAG */
/**************************************/
/* ADC2CN 0xE8 */
/**************************************/
sbit AD2EN = ADC2CN ^ 7; /* ADC 2 ENABLE */
sbit AD2TM = ADC2CN ^ 6; /* ADC 2 TRACK MODE */
sbit AD2INT = ADC2CN ^ 5; /* ADC 2 EOC INTERRUPT FLAG */
sbit AD2BUSY = ADC2CN ^ 4; /* ADC 2 BUSY FLAG */
sbit AD2WINT = ADC2CN ^ 3; /* ADC 2 WINDOW INTERRUPT FLAG */
sbit AD2CM2 = ADC2CN ^ 2; /* ADC 2 CONVERT START MODE BIT 2 */
sbit AD2CM1 = ADC2CN ^ 1; /* ADC 2 CONVERT START MODE BIT 1 */
sbit AD2CM0 = ADC2CN ^ 0; /* ADC 2 CONVERT START MODE BIT 0 */
/**************************************/
/* SPI0CN 0xF8 */
/**************************************/
sbit SPIF = SPI0CN ^ 7; /* SPI 0 INTERRUPT FLAG */
sbit WCOL = SPI0CN ^ 6; /* SPI 0 WRITE COLLISION FLAG */
sbit MODF = SPI0CN ^ 5; /* SPI 0 MODE FAULT FLAG */
sbit RXOVRN = SPI0CN ^ 4; /* SPI 0 RX OVERRUN FLAG */
sbit NSSMD1 = SPI0CN ^ 3; /* SPI 0 SLAVE SELECT MODE BIT 1 */
sbit NSSMD0 = SPI0CN ^ 2; /* SPI 0 SLAVE SELECT MODE BIT 0 */
sbit TXBMT = SPI0CN ^ 1; /* SPI 0 TX BUFFER EMPTY */
sbit SPIEN = SPI0CN ^ 0; /* SPI 0 SPI ENABLE */
/**************************************/
/* CAN0CN 0xF8 */
/**************************************/
sbit CANINIT = CAN0CN ^ 0; /* CAN Initialization bit */
sbit CANIE = CAN0CN ^ 1; /* CAN Module Interrupt Enable Bit */
sbit CANSIE = CAN0CN ^ 2; /* CAN Status change Interrupt Enable Bit */
sbit CANEIE = CAN0CN ^ 3; /* CAN Module Error Interrupt Enable Bit */
sbit CANIF = CAN0CN ^ 4; /* CAN Module Interrupt Flag */
sbit CANDAR = CAN0CN ^ 5; /* CAN Disable Automatic Retransmission bit */
sbit CANCCE = CAN0CN ^ 6; /* CAN Configuration Change Enable bit */
sbit CANTEST = CAN0CN ^ 7; /* CAN Test Mode Enable bit */
/**************************************/
/* SFR PAGE DEFINITIONS */
/**************************************/
#define CONFIG_PAGE 0x0F /* SYSTEM AND PORT CONFIGURATION PAGE */
#define LEGACY_PAGE 0x00 /* LEGACY SFR PAGE */
#define TIMER01_PAGE 0x00 /* TIMER 0 AND TIMER 1 */
#define CPT0_PAGE 0x01 /* COMPARATOR 0 */
#define CPT1_PAGE 0x02 /* COMPARATOR 1 */
#define CPT2_PAGE 0x03 /* COMPARATOR 2 */
#define UART0_PAGE 0x00 /* UART 0 */
#define UART1_PAGE 0x01 /* UART 1 */
#define SPI0_PAGE 0x00 /* SPI 0 */
#define EMI0_PAGE 0x00 /* EXTERNAL MEMORY INTERFACE */
#define ADC0_PAGE 0x00 /* ADC 0 */
#define ADC2_PAGE 0x02 /* ADC 2 */
#define SMB0_PAGE 0x00 /* SMBUS 0 */
#define TMR2_PAGE 0x00 /* TIMER 2 */
#define TMR3_PAGE 0x01 /* TIMER 3 */
#define TMR4_PAGE 0x02 /* TIMER 4 */
#define DAC0_PAGE 0x00 /* DAC 0 */
#define DAC1_PAGE 0x01 /* DAC 1 */
#define PCA0_PAGE 0x00 /* PCA 0 */
#define CAN0_PAGE 0x01 /* CAN 0 */
/*************************************************************************************/
/*CAN Protocol Register Index for CAN0ADR, from TABLE 18.1 of the C8051F040 datasheet*/
/*************************************************************************************/
#define CANCTRL 0x00 /*Control Register */
#define CANSTAT 0x01 /*Status register */
#define ERRCNT 0x02 /*Error Counter Register */
#define BITREG 0x03 /*Bit Timing Register */
#define INTREG 0x04 /*Interrupt Low Byte Register */
#define CANTEST 0x05 /*Test register */
#define BRPEXT 0x06 /*BRP Extension Register */
/*************************************************************************************/
/*IF1 Interface Registers */
/*************************************************************************************/
#define IF1CMDRQST 0x08 /*IF1 Command Rest Register */
#define IF1CMDMSK 0x09 /*IF1 Command Mask Register */
#define IF1MSK1 0x0A /*IF1 Mask1 Register */
#define IF1MSK2 0x0B /*IF1 Mask2 Register */
#define IF1ARB1 0x0C /*IF1 Arbitration 1 Register */
#define IF1ARB2 0x0D /*IF1 Arbitration 2 Register */
#define IF1MSGC 0x0E /*IF1 Message Control Register */
#define IF1DATA1 0x0F /*IF1 Data A1 Register */
#define IF1DATA2 0x10 /*IF1 Data A2 Register */
#define IF1DATB1 0x11 /*IF1 Data B1 Register */
#define IF1DATB2 0x12 /*IF1 Data B2 Register */
/*************************************************************************************/
/*IF2 Interface Registers */
/*************************************************************************************/
#define IF2CMDRQST 0x20 /*IF2 Command Rest Register */
#define IF2CMDMSK 0x21 /*IF2 Command Mask Register */
#define IF2MSK1 0x22 /*IF2 Mask1 Register */
#define IF2MSK2 0x23 /*IF2 Mask2 Register */
#define IF2ARB1 0x24 /*IF2 Arbitration 1 Register */
#define IF2ARB2 0x25 /*IF2 Arbitration 2 Register */
#define IF2MSGC 0x26 /*IF2 Message Control Register */
#define IF2DATA1 0x27 /*IF2 Data A1 Register */
#define IF2DATA2 0x28 /*IF2 Data A2 Register */
#define IF2DATB1 0x29 /*IF2 Data B1 Register */
#define IF2DATB2 0x2A /*IF2 Data B2 Register */
/*************************************************************************************/
/*Message Handler Registers */
/*************************************************************************************/
#define TRANSREQ1 0x40 /*Transmission Rest1 Register */
#define TRANSREQ2 0x41 /*Transmission Rest2 Register */
#define NEWDAT1 0x48 /*New Data 1 Register */
#define NEWDAT2 0x49 /*New Data 2 Register */
#define INTPEND1 0x50 /*Interrupt Pending 1 Register */
#define INTPEND2 0x51 /*Interrupt Pending 2 Register */
#define MSGVAL1 0x58 /*Message Valid 1 Register */
#define MSGVAL2 0x59 /*Message Valid 2 Register */
sfr16 RCAP2 = 0xCA; /* Timer2 reload/capture value */
sfr16 RCAP3 = 0xCA; /* Timer3 reload/capture value */
sfr16 RCAP4 = 0xCA; /* Timer4 reload/capture value */
sfr16 TMR2 = 0xCC; /* Timer2 counter/timer */
sfr16 TMR3 = 0xCC; /* Timer3 counter/timer */
sfr16 TMR4 = 0xCC; /* Timer4 counter/timer */
sfr16 CAN0DAT = 0xD8; /* CAN0DAT Register */
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -