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

📄 c8051f040.h

📁 c8051f040 内部集成的温度传感器使用 直接给出温度的函数
💻 H
📖 第 1 页 / 共 3 页
字号:
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 + -