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

📄 c8051f340.h

📁 基于C8051F340单片机的串行flash芯片SST25VF016B的应用,配合一般的串口调试程序即可完成对板上器件的读写操作.
💻 H
字号:
/*---------------------------------------------------------------------------
;	Copyright (C) 2001 CYGNAL INTEGRATED PRODUCTS, INC.
; 	All rights reserved.
;
;
; 	FILE NAME  	: C8051F020.H 
; 	TARGET MCUs	: C8051F020, 'F021, 'F022, 'F023 
; 	DESCRIPTION	: Register/bit definitions for the C8051F02x product family.  
;
; 	REVISION 1.0 	
;
;---------------------------------------------------------------------------*/

/*  BYTE Registers  */
sfr ACC		= 0xE0;	//* Accumulator
sfr ADC0CF	= 0xBC;	//* ADC0 Configuration 50
sfr ADC0CN	= 0xE8;	//* ADC0 Control 51
sfr ADC0GTH	= 0xC4;	//* ADC0 Greater-Than Compare High 52
sfr ADC0GTL	= 0xC3;	//* ADC0 Greater-Than Compare Low 52
sfr ADC0H	= 0xBE;	//* ADC0 High 50
sfr ADC0L	= 0xBD;	//* ADC0 Low 50
sfr ADC0LTH	= 0xC6;	//* ADC0 Less-Than Compare Word High 53
sfr ADC0LTL	= 0xC5;	//* ADC0 Less-Than Compare Word Low 53
sfr AMX0N	= 0xBA;	//* AMUX0 Negative Channel Select 49
sfr AMX0P	= 0xBB;	//* AMUX0 Positive Channel Select 48
sfr B		= 0xF0;	//* B Register 87
sfr CKCON	= 0x8E;	//* Clock Control 249
sfr CLKMUL	= 0xB9;	//* Clock Multiplier 142
sfr CLKSEL	= 0xA9;	//* Clock Select 144
sfr CPT0CN	= 0x9B;	//* Comparator0 Control 62
sfr CPT0MD	= 0x9D;	//* Comparator0 Mode Selection 64
sfr CPT0MX	= 0x9F;	//* Comparator0 MUX Selection 63
sfr CPT1CN	= 0x9A;	//* Comparator1 Control 65
sfr CPT1MD	= 0x9C;	//* Comparator1 Mode Selection 67
sfr CPT1MX	= 0x9E;	//* Comparator1 MUX Selection 66
sfr DPH		= 0x83;	//* Data Pointer High 85
sfr DPL		= 0x82;	//* Data Pointer Low 85
sfr EIE1	= 0xE6;	//* Extended Interrupt Enable 1 92
sfr EIE2	= 0xE7;	//* Extended Interrupt Enable 2 94
sfr EIP1	= 0xF6;	//* Extended Interrupt Priority 1 93
sfr EIP2	= 0xF7;	//* Extended Interrupt Priority 2 94
sfr EMI0CN	= 0xAA;	//* External Memory Interface Control 120
sfr EMI0CF	= 0x85;	//* External Memory Interface Configuration 121
sfr EMI0TC	= 0x84;	//* External Memory Interface Timing 126
sfr FLKEY	= 0xB7;	//* Flash Lock and Key 114
sfr FLSCL	= 0xB6;	//* Flash Scale 115
sfr IE		= 0xA8;	//* Interrupt Enable 90
sfr IP		= 0xB8;	//* Interrupt Priority 91
sfr IT01CF	= 0xE4;	//* INT0/INT1 Configuration 95
sfr OSCICL	= 0xB3;	//* Internal Oscillator Calibration 137
sfr OSCICN	= 0xB2;	//* Internal Oscillator Control 136
sfr OSCLCN	= 0x86;	//* Internal Low-Frequency Oscillator Control 138
sfr OSCXCN	= 0xB1;	//* External Oscillator Control 141
sfr P0		= 0x80;	//* Port 0 Latch 154
sfr P0MDIN	= 0xF1;	//* Port 0 Input Mode Configuration 154
sfr P0MDOUT	= 0xA4;	//* Port 0 Output Mode Configuration 155
sfr P0SKIP	= 0xD4;	//* Port 0 Skip 155
sfr P1 		= 0x90;	//* Port 1 Latch 156
sfr P1MDIN	= 0xF2;	//* Port 1 Input Mode Configuration 156
sfr P1MDOUT	= 0xA5;	//* Port 1 Output Mode Configuration 156
sfr P1SKIP	= 0xD5;	//* Port 1 Skip 157
sfr P2		= 0xA0;	//* Port 2 Latch 157
sfr P2MDIN	= 0xF3;	//* Port 2 Input Mode Configuration 157
sfr P2MDOUT	= 0xA6;	//* Port 2 Output Mode Configuration 158
sfr P2SKIP	= 0xD6;	//* Port 2 Skip 158
sfr P3		= 0xB0;	//* Port 3 Latch 159
sfr P3MDIN	= 0xF4;	//* Port 3 Input Mode Configuration 159
sfr P3MDOUT	= 0xA7;	//* Port 3 Output Mode Configuration 159
sfr P3SKIP	= 0xDF;	//* Port 3Skip 160
sfr P4		= 0xC7;	//* Port 4 Latch 160
sfr P4MDIN	= 0xF5;	//* Port 4 Input Mode Configuration 161
sfr P4MDOUT	= 0xAE;	//* Port 4 Output Mode Configuration 161
sfr PCA0CN	= 0xD8;	//* PCA Control 274
sfr PCA0CPH0= 0xFC;	//* PCA Capture 0 High 278
sfr PCA0CPH1= 0xEA;	//* PCA Capture 1 High 278
sfr PCA0CPH2= 0xEC;	//* PCA Capture 2 High 278
sfr PCA0CPH3= 0xEE;	//* PCA Capture 3High 278
sfr PCA0CPH4= 0xFE;	//* PCA Capture 4 High 278
sfr PCA0CPL0= 0xFB;	//* PCA Capture 0 Low 277
sfr PCA0CPL1= 0xE9;	//* PCA Capture 1 Low 277
sfr PCA0CPL2= 0xEB;	//* PCA Capture 2 Low 277
sfr PCA0CPL3= 0xED;	//* PCA Capture 3 Low 277
sfr PCA0CPL4= 0xFD;	//* PCA Capture 4 Low 277
sfr PCA0CPM0= 0xDA;	//* PCA Module 0 Mode Register 276
sfr PCA0CPM1= 0xDB;	//* PCA Module 1 Mode Register 276
sfr PCA0CPM2= 0xDC;	//* PCA Module 2 Mode Register 276
sfr PCA0CPM3= 0xDD;	//* PCA Module 3 Mode Register 276
sfr PCA0CPM4= 0xDE;	//* PCA Module 4 Mode Register 276
sfr PCA0H	= 0xFA;	//* PCA Counter High 277
sfr PCA0L	= 0xF9;	//* PCA Counter Low 277
sfr PCA0MD	= 0xD9;	//* PCA Mode 275
sfr PCON	= 0x87;	//* Power Control 97
sfr PFE0CN	= 0xAF;	//* Prefetch Engine Control 99
sfr PSCTL	= 0x8F;	//* Program Store R/W Control 114sfr 
sfr PSW		= 0xD0;	//* Program Status Word 86
sfr REF0CN	= 0xD1;	//* Voltage Reference Control 58
sfr REG0CN	= 0xC9;	//* Voltage Regulator Control 72
sfr RSTSRC	= 0xEF;	//* Reset Source Configuration/Status 106
sfr SBCON1	= 0xAC;	//* UART1 Baud Rate Generator Control 226
sfr SBRLH1	= 0xB5;	//* UART1 Baud Rate Generator High 227
sfr SBRLL1	= 0xB4;	//* UART1 Baud Rate Generator Low 227
sfr SBUF1	= 0xD3;	//* UART1 Data Buffer 226
sfr SCON1	= 0xD2;	//* UART1 Control 224
sfr SBUF0	= 0x99;	//* UART0 Data Buffer 217
sfr SCON0	= 0x98;	//* UART0 Control 216
sfr SMB0CF	= 0xC1;	//* SMBus Configuration 200
sfr SMB0CN	= 0xC0;	//* SMBus Control 202
sfr SMB0DAT	= 0xC2;	//* SMBus Data 204
sfr SMOD1	= 0xE5;	//* UART1 Mode 225
sfr SP		= 0x81;	//* Stack Pointer 85
sfr SPI0CFG	= 0xA1;	//* SPI Configuration 236
sfr SPI0CKR	= 0xA2;	//* SPI Clock Rate Control 238
sfr SPI0CN	= 0xF8;	//* SPI Control 237
sfr SPI0DAT	= 0xA3;	//* SPI Data 238
sfr TCON	= 0x88;	//* Timer/Counter Control 247
sfr TH0		= 0x8C;	//* Timer/Counter 0 High 250
sfr TH1		= 0x8D;	//* Timer/Counter 1 High 250
sfr TL0		= 0x8A;	//* Timer/Counter 0 Low 250
sfr TL1		= 0x8B;	//* Timer/Counter 1 Low 250
sfr TMOD	= 0x89;	//* Timer/Counter Mode 248
sfr TMR2CN	= 0xC8;	//* Timer/Counter 2 Control 255
sfr TMR2H	= 0xCD;	//* Timer/Counter 2 High 256
sfr TMR2L	= 0xCC;	//* Timer/Counter 2 Low 256
sfr TMR2RLH	= 0xCB;	//* Timer/Counter 2 Reload High 256
sfr TMR2RLL	= 0xCA;	//* Timer/Counter 2 Reload Low 256
sfr TMR3CN	= 0x91;	//* Timer/Counter 3Control 261
sfr TMR3H	= 0x95;	//* Timer/Counter 3 High 262
sfr TMR3L	= 0x94;	//* Timer/Counter 3Low 262
sfr TMR3RLH	= 0x93;	///* Timer/Counter 3 Reload High 262
sfr TMR3RLL	= 0x92;	//* Timer/Counter 3 Reload Low 262
sfr VDM0CN	= 0xFF;	//* VDD Monitor Control 103
sfr USB0ADR	= 0x96;	//* USB0 Indirect Address Register 167
sfr USB0DAT	= 0x97;	//* USB0 Data Register 168
sfr USB0XCN	= 0xD7;	//* USB0 Transceiver Control 165
sfr XBR0	= 0xE1;	//* Port I/O Crossbar Control 0 152
sfr XBR1	= 0xE2;	//* Port I/O Crossbar Control 1 153
sfr XBR2	= 0xE3;	//* Port I/O Crossbar Control 2	

/*  BIT Registers  */

/*  TCON  0x88 */
sbit TF1   = TCON ^ 7;              /* TIMER 1 OVERFLOW FLAG      */
sbit TR1   = TCON ^ 6;              /* TIMER 1 ON/OFF CONTROL     */
sbit TF0   = TCON ^ 5;              /* TIMER 0 OVERFLOW FLAG      */
sbit TR0   = TCON ^ 4;              /* TIMER 0 ON/OFF CONTROL     */
sbit IE1   = TCON ^ 3;              /* EXT. INTERRUPT 1 EDGE FLAG */
sbit IT1   = TCON ^ 2;              /* EXT. INTERRUPT 1 TYPE      */
sbit IE0   = TCON ^ 1;              /* EXT. INTERRUPT 0 EDGE FLAG */
sbit IT0   = TCON ^ 0;              /* EXT. INTERRUPT 0 TYPE      */

/*  SCON0  0x98 */
sbit S0MODE= SCON0 ^ 7;             /* selects the UART0           */	
sbit MCE0  = SCON0 ^ 5;             /* MULTIPROCESSOR COMMUNICATION ENABLE */
sbit REN0  = SCON0 ^ 4;             /* RECEIVE ENABLE                      */
sbit TB80  = SCON0 ^ 3;             /* TRANSMIT BIT 8                      */
sbit RB80  = SCON0 ^ 2;             /* RECEIVE BIT 8                       */
sbit TI0   = SCON0 ^ 1;             /* TRANSMIT INTERRUPT FLAG             */
sbit RI0   = SCON0 ^ 0;             /* RECEIVE INTERRUPT FLAG              */

/*  IE  0xA8 */
sbit EA    = IE ^ 7;                /* GLOBAL INTERRUPT ENABLE      */	
sbit ESPI0 = IE ^ 6;                /* SPI0 INTERRUPT ENABLE      */	
sbit ET2   = IE ^ 5;                /* TIMER 2 INTERRUPT ENABLE     */
sbit ES0   = IE ^ 4;                /* UART0 INTERRUPT ENABLE       */
sbit ET1   = IE ^ 3;                /* TIMER 1 INTERRUPT ENABLE     */
sbit EX1   = IE ^ 2;                /* EXTERNAL INTERRUPT 1 ENABLE  */
sbit ET0   = IE ^ 1;                /* TIMER 0 INTERRUPT ENABLE     */
sbit EX0   = IE ^ 0;                /* EXTERNAL INTERRUPT 0 ENABLE  */
/*  IP  0xB8 */
sbit PSPI0 = IP ^ 6;                /* TIMER 2 PRIORITY					*/	
sbit PT2   = IP ^ 5;                /* TIMER 2 PRIORITY					*/	
sbit PS    = IP ^ 4;                /* SERIAL PORT PRIORITY				*/
sbit PT1   = IP ^ 3;                /* TIMER 1 PRIORITY					*/
sbit PX1   = IP ^ 2;                /* EXTERNAL INTERRUPT 1 PRIORITY	*/
sbit PT0   = IP ^ 1;                /* TIMER 0 PRIORITY					*/
sbit PX0   = IP ^ 0;                /* EXTERNAL INTERRUPT 0 PRIORITY	*/		

/* SMB0CN 0xC0 */
sbit MASTER =   SMB0CN ^ 7;       /*                   				*/
sbit TXMODE =   SMB0CN ^ 6;       /*                   				*/
sbit STA    =   SMB0CN ^ 5;       /* SMBUS 0 START FLAG             */
sbit STO    =   SMB0CN ^ 4;       /* SMBUS 0 STOP FLAG              */
sbit ACKRQ  =   SMB0CN ^ 3;       /*  								*/
sbit ARBLOST=   SMB0CN ^ 2;       /*  								*/
sbit ACK    =   SMB0CN ^ 1;       /*        						*/
sbit SI     =   SMB0CN ^ 0;       /*    					        */

/*  T2CON  0xC8 */
sbit TF2H   = TMR2CN ^ 7;             /* TIMER 2 OVERFLOW FLAG        */
sbit TF2L   = TMR2CN ^ 6;             /* EXTERNAL FLAG                */
sbit TF2LEN = TMR2CN ^ 5;             /* RECEIVE CLOCK FLAG           */
sbit T2CE   = TMR2CN ^ 4;             /* TRANSMIT CLOCK FLAG          */
sbit T2SPLIT= TMR2CN ^ 3;             /* TIMER 2 EXTERNAL ENABLE FLAG */	
sbit TR2    = TMR2CN ^ 2;             /* TIMER 2 ON/OFF CONTROL       */
sbit T2CSS  = TMR2CN ^ 1;             /* TIMER OR COUNTER SELECT      */
sbit T2XCLK = TMR2CN ^ 0;             /* CAPTURE OR RELOAD SELECT     */

/*  PSW  */
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 D8H */
sbit CF    =   PCA0CN ^ 7;          /* PCA 0 COUNTER OVERFLOW FLAG   */
sbit CR    =   PCA0CN ^ 6;          /* PCA 0 COUNTER RUN CONTROL BIT */
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 E8H */
sbit AD0EN     =   ADC0CN ^ 7;      /* ADC 0 ENABLE                              */
sbit AD0TM     =   ADC0CN ^ 6;      /* ADC 0 TRACK MODE                          */
sbit AD0INT    =   ADC0CN ^ 5;      /* ADC 0 CONVERISION COMPLETE INTERRUPT FLAG */
sbit AD0BUSY   =   ADC0CN ^ 4;      /* ADC 0 BUSY FLAG                           */
sbit AD0WINT   =   ADC0CN ^ 3;      /*      */
sbit AD0CM2    =   ADC0CN ^ 2;      /*      */
sbit AD0CM1    =   ADC0CN ^ 1;      /*       */
sbit AD0CM0    =   ADC0CN ^ 0;      /*             */

/* SPI0CN F8H */
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;       /*		*/
sbit NSSMD0   =   SPI0CN ^ 2;       /* 		*/
sbit TXBMT    =   SPI0CN ^ 1;       /* 	*/
sbit SPIEN    =   SPI0CN ^ 0;       /* 		*/			


sbit P07    = P0^7;
sbit P06    = P0^6;
sbit P05    = P0^5; 
sbit P04    = P0^4; 
sbit P03    = P0^3; 
sbit P02    = P0^2;
sbit P01    = P0^1;
sbit P00    = P0^0;

sbit P17    = P1 ^ 7;
sbit P16    = P1 ^ 6;
sbit P15    = P1 ^ 5; 
sbit P14    = P1 ^ 4; 
sbit P13    = P1 ^ 3; 
sbit P12    = P1 ^ 2;
sbit P11    = P1 ^ 1;
sbit P10    = P1 ^ 0;

sbit P27    = P2^7;
sbit P26    = P2^6;
sbit P25    = P2^5; 
sbit P24    = P2^4; 
sbit P23    = P2^3; 
sbit P22    = P2^2;
sbit P21    = P2^1;
sbit P20    = P2^0;

sbit P37    = P3 ^ 7;
sbit P36    = P3 ^ 6;
sbit P35    = P3 ^ 5; 
sbit P34    = P3 ^ 4; 
sbit P33    = P3 ^ 3; 
sbit P32    = P3 ^ 2;
sbit P31    = P3 ^ 1;
sbit P30    = P3 ^ 0;
/*******************************************************************/
 

⌨️ 快捷键说明

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