/************************************************************************** * File: VRS51L2070_Keil.h * Version: 2.1 * Target: Keil µVision3 C51 compiler * Date: 1/19/2007 *************************************************************************** * * This file provides all of the SFR definitions described in the device * datsheet. * * DO NOT ACCESS REGISTER VALUES NOT ON THIS LIST * Make sure that the page selected contains the SFR being accessed * * Copyright (C) 2007 Ramtron International Corporation * * µVision3 Copyright (c) Keil Elektronik GmbH / Keil Software, Inc. * 1995 - 2005 **************************************************************************/ #ifndef __VRS51L2070_KEIL_H__ #define __VRS51L2070_KEIL_H__ // SFRs that can be accessed on either page sfr P0 = 0x80; // Port 0 sfr SP = 0x81; // Stack pointer sfr DPL0 = 0x82; // Data Pointer 0 lower byte sfr DPH0 = 0x83; // Data Pointer 0 upper byte sfr DPL1 = 0x84; // Data Pointer 1 lower byte sfr DPH1 = 0x85; // Data Pointer 1 upper byte sfr DPS = 0x86; // Data Pointer select sfr PCON = 0x87; // Power control sfr INTEN1 = 0x88; // Interrupt enable 1 sfr T0T1CFG = 0x89; // Timer 0 and Timer 1 configuration sfr TL0 = 0x8A; // Timer 0 lower byte sfr TH0 = 0x8B; // Timer 0 upper byte sfr TL1 = 0x8C; // Timer 1 lower byte sfr TH1 = 0x8D; // Timer 1 upper byte sfr TL2 = 0x8E; // Timer 2 lower byte sfr TH2 = 0x8F; // Timer 2 upper byte sfr P1 = 0x90; // Port 1 sfr WDTCFG = 0x91; // Watchdog timer configuration sfr RCAP0L = 0x92; // Reload / Capture for Timer 0: lower byte sfr RCAP0H = 0x93; // Reload / Capture for Timer 0: upper byte sfr RCAP1L = 0x94; // Reload / Capture for Timer 1: lower byte sfr RCAP1H = 0x95; // Reload / Capture for Timer 1: upper byte sfr RCAP2L = 0x96; // Reload / Capture for Timer 2: lower byte sfr RCAP2H = 0x97; // Reload / Capture for Timer 2: upper byte sfr P5 = 0x98; // Port 5 sfr T0T1CLKCFG = 0x99; // Timer 0 and Timer 1 input clock configurations sfr T0CON = 0x9A; // Timer 0 configuration register sfr T1CON = 0x9B; // Timer 1 configuration register sfr T2CON = 0x9C; // Timer 2 configuration register sfr T2CLKCFG = 0x9D; // Timer 2 input clock configuration sfr P2 = 0xA0; // Port 2 sfr INTEN2 = 0xA8; // Interrupt enable 2 sfr P3 = 0xB0; // Port 3 sfr IPINFLAG1 = 0xB8; // Interrupt pin flags 1 sfr PORTCHG = 0xB9; // Interrupt port change sfr P4 = 0xC0; // Port 4 sfr P6 = 0xC8; // Port 6 sfr PSW = 0xD0; // Program Status Word sfr IPININV1 = 0xD6; // Interrupt pin inversion 1 sfr IPININV2 = 0xD7; // Interrupt pin inversion 2 sfr IPINFLAG2 = 0xD8; // Interrupt pin flags 2 sfr XMEMCTRL = 0xD9; // Off-chip external memory control sfr ACC = 0xE0; // Accumulator sfr DEVIOMAP = 0xE1; // Device input/output mapping sfr INTPRI1 = 0xE2; // Interrupt priority configuration 1 sfr INTPRI2 = 0xE3; // Interrupt priority configuration 2 sfr INTSRC1 = 0xE4; // Interrupt source configuration 1 sfr INTSRC2 = 0xE5; // Interrupt source configuration 2 sfr IPINSENS1 = 0xE6; // Interrupt pin sensitivity configuration 1 sfr IPINSENS2 = 0xE7; // Interrupt pin sensitivity configuration 2 sfr GENINTEN = 0xE8; // General interrupt control sfr FPICONFIG = 0xE9; // Flash programming interface configuration sfr FPIADDRL = 0xEA; // Flash programming address lower byte sfr FPIADDRH = 0xEB; // Flash programming address upper byte sfr FPIDATAL = 0xEC; // Flash programming data lower byte sfr FPIDATAH = 0xED; // Flash programming data upper byte sfr FPICLKSPD = 0xEE; // Flash programming clock speed sfr B = 0xF0; // B sfr MPAGE = 0xF1; // External memory page select sfr DEVCLKCFG1 = 0xF2; // Clock configuration 1 sfr DEVCLKCFG2 = 0xF3; // Clock configuration 2 sfr PERIPHEN1 = 0xF4; // Perhipheral enable 1 sfr PERIPHEN2 = 0xF5; // Perhipheral enable 2 sfr DEVMEMCFG = 0xF6; // Memory control sfr PORTINEN = 0xF7; // Port input logic enable sfr USERFLAGS = 0xF8; // Additional software flags sfr P0PINCFG = 0xF9; // Port 0 pin configuration sfr P1PINCFG = 0xFA; // Port 1 pin configuration sfr P2PINCFG = 0xFB; // Port 2 pin configuration sfr P3PINCFG = 0xFC; // Port 3 pin configuration sfr P4PINCFG = 0xFD; // Port 4 pin configuration sfr P5PINCFG = 0xFE; // Port 5 pin configuration sfr P6PINCFG = 0xFF; // Port 6 pin configuration // SFRs that can be only be accessed on PAGE 0 // When DEVMEMCFG bit 0 = 0 sfr PWC0CFG = 0x9E; // Pulse Width Counter 0 configuration sfr PWC1CFG = 0x9F; // Pulse Width Counter 1 configuration sfr UART0INT = 0xA1; // UART 0 Interrupt sfr UART0CFG = 0xA2; // UART 0 Configure sfr UART0BUF = 0xA3; // UART 0 buffer sfr UART0BRL = 0xA4; // UART 0 baud rate lower byte sfr UART0BRH = 0xA5; // UART 0 baud rate upper byte sfr UART0EXT = 0xA6; // UART 0 extentions sfr PWMCFG = 0xA9; // Pulse Width Modulator configurations sfr PWMEN = 0xAA; // Pulse Width Modulator enable sfr PWMLDPOL = 0xAB; // Pulse Width Modulator polarity sfr PWMDATA = 0xAC; // Pulse Width Modulator data sfr PWMTMREN = 0xAD; // Pulse Width Modulator timer enable sfr PWMTMRF = 0xAE; // Pulse Width Modulator timer overflow flags sfr PWMCLKCFG = 0xAF; // Pulse Width Modulator clock config sfr UART1INT = 0xB1; // UART 1 Interrupt sfr UART1CFG = 0xB2; // UART 1 Configure sfr UART1BUF = 0xB3; // UART 1 buffer sfr UART1BRL = 0xB4; // UART 1 baud rate lower byte sfr UART1BRH = 0xB5; // UART 1 baud rate upper byte sfr UART1EXT = 0xB6; // UART 1 extentions sfr SPICTRL = 0xC1; // SPI (Serial Perhipheral Interface) control sfr SPICONFIG = 0xC2; // SPI configurations sfr SPISIZE = 0xC3; // SPI transaction size sfr SPIRXTX0 = 0xC4; // SPI recieve / transmit register 0 [Data 7: 0] sfr SPIRXTX1 = 0xC5; // SPI recieve / transmit register 0 [Data 15: 8] sfr SPIRXTX2 = 0xC6; // SPI recieve / transmit register 0 [Data 23:16] sfr SPIRXTX3 = 0xC7; // SPI recieve / transmit register 0 [Data 32:24] sfr SPISTATUS = 0xC9; // SPI status sfr I2CCONFIG = 0xD1; // I2C (Inter Chip Communication) configuration sfr I2CTIMING = 0xD2; // I2C timing sfr I2CIDCFG = 0xD3; // I2C indentification sfr I2CSTATUS = 0xD4; // I2C status sfr I2CRXTX = 0xD5; // I2C recieve / transmit buffer // SFRs that can be only be accessed on PAGE 1 // When DEVMEMCFG bit 0 = 1 sfr AUA0 = 0xA2; // Arithmetic Unit A [ 7: 0] sfr AUA1 = 0xA3; // Arithmetic Unit A [15: 8] sfr AUC0 = 0xA4; // Arithmetic Unit C [ 7: 0] sfr AUC1 = 0xA5; // Arithmetic Unit C [15: 8] sfr AUC2 = 0xA6; // Arithmetic Unit C [23:16] sfr AUC3 = 0xA7; // Arithmetic Unit C [32:24] sfr AUB0DIV = 0xB1; // Arithmetic Unit B Divide [ 7: 0] sfr AUB0 = 0xB2; // Arithmetic Unit B Multiply [ 7: 0] sfr AUB1 = 0xB3; // Arithmetic Unit B [15: 8] sfr AURES0 = 0xB4; // Arithmetic Unit Result 0 sfr AURES1 = 0xB5; // Arithmetic Unit Result 1 sfr AURES2 = 0xB6; // Arithmetic Unit Result 2 sfr AURES3 = 0xB7; // Arithmetic Unit Result 3 sfr AUSHIFTCFG = 0xC1; // Arithmetic Unit shift configuration sfr AUCONFIG1 = 0xC2; // Arithmetic Unit configuration 1 sfr AUCONFIG2 = 0xC3; // Arithmetic Unit configuration 2 sfr AUPREV0 = 0xC4; // Arithmetic Unit previous result 0 sfr AUPREV1 = 0xC5; // Arithmetic Unit previous result 1 sfr AUPREV2 = 0xC6; // Arithmetic Unit previous result 2 sfr AUPREV3 = 0xC7; // Arithmetic Unit previous result 3 // SBIT definitions for bit addressable registers // P0 (Address 0x80) sbit P0_0 = 0x80; sbit P0_1 = 0x81; sbit P0_2 = 0x82; sbit P0_3 = 0x83; sbit P0_4 = 0x84; sbit P0_5 = 0x85; sbit P0_6 = 0x86; sbit P0_7 = 0x87; // INTEN1 (Address 0x88) sbit SPITXEIEN = 0x89; // SPI TX Empty Interrupt Enable sbit SPIRXOVIEN = 0x8A; // SPI Interrupt Enable / Rx Available / Rx Overrun sbit T0IEN = 0x8B; // Timer 0 Interrupt Enable sbit PCHGIEN0 = 0x8C; // Port Change Interrupt Module 0 Enable sbit U0IEN = 0x8D; // UART 0 Interrupt Enable sbit U1IEN = 0x8E; // UART 1 Interrupt Enable sbit T1IEN = 0x8F; // Timer 1 Interrupt Enable // P1 (Address 0x90) sbit P1_0 = 0x90; sbit P1_1 = 0x91; sbit P1_2 = 0x92; sbit P1_3 = 0x93; sbit P1_4 = 0x94; sbit P1_5 = 0x95; sbit P1_6 = 0x96; sbit P1_7 = 0x97; // P5 (Address 0x98) sbit P5_0 = 0x98; sbit P5_1 = 0x99; sbit P5_2 = 0x9A; sbit P5_3 = 0x9B; sbit P5_4 = 0x9C; sbit P5_5 = 0x9D; sbit P5_6 = 0x9E; sbit P5_7 = 0x9F; // P2 (Address 0xA0) sbit P2_0 = 0xA0; sbit P2_1 = 0xA1; sbit P2_2 = 0xA2; sbit P2_3 = 0xA3; sbit P2_4 = 0xA4; sbit P2_5 = 0xA5; sbit P2_6 = 0xA6; sbit P2_7 = 0xA7; // INTEN2 (Address 0xA8) sbit T2IEN = 0xA8; // Timer 2 Interrupt Enable sbit I2CIEN = 0xA9; // I2C Interrupt Enable sbit I2CUARTCI = 0xAA; sbit PWCIEN = 0xAB; // Pulse Width Counter Interrupt Enable sbit PWMT03IEN = 0xAC; // PWM as Timer 0-3 Overflow Interrupt Enable sbit PWMT47IEN = 0xAD; // PWM as Timer 4-7 Overflow Interrupt Enable sbit AUWDTIEN = 0xAE; // Watchdog Timer / Arithmatic Unit Interrupt Enable sbit PCHGIEN1 = 0xAF; // Port Change Interrupt Module 1 Enable // P3 (Address 0xB0) sbit P3_0 = 0xB0; sbit P3_1 = 0xB1; sbit P3_2 = 0xB2; sbit P3_3 = 0xB3; sbit P3_4 = 0xB4; sbit P3_5 = 0xB5; sbit P3_6 = 0xB6; sbit P3_7 = 0xB7; // IPINFLAG1 (Address 0xB8) sbit INT0IF = 0xB8; // Interrupt 0 Flag sbit INT1IF = 0xB9; // Interrupt 1 Flag sbit P30IF = 0xBA; // P3.0 Interrupt Flag sbit P31IF = 0xBB; // P3.1 Interrupt Flag sbit P34IF = 0xBC; // P3.4 Interrupt Flag sbit P35IF = 0xBD; // P3.5 Interrupt Flag sbit P36IF = 0xBE; // P3.6 Interrupt Flag sbit P37IF = 0xBF; // P3.7 Interrupt Flag // P4 (Address 0xC0) sbit P4_0 = 0xC0; sbit P4_1 = 0xC1; sbit P4_2 = 0xC2; sbit P4_3 = 0xC3; sbit P4_4 = 0xC4; sbit P4_5 = 0xC5; sbit P4_6 = 0xC6; sbit P4_7 = 0xC7; // P6 (Address 0xC8) sbit P6_0 = 0xC8; sbit P6_1 = 0xC9; sbit P6_2 = 0xCA; sbit P6_3 = 0xCB; sbit P6_4 = 0xCC; sbit P6_5 = 0xCD; sbit P6_6 = 0xCE; sbit P6_7 = 0xCF; // PSW (Address 0xD0) sbit P = 0xD0; // Parity Flag sbit F1 = 0xD1; // General Purpose Flag 1 sbit OV = 0xD2; // Overflow Flag sbit RS0 = 0xD3; // Register Bank Select 0 sbit RS1 = 0xD4; // Register Bank Select 1 sbit F0 = 0xD5; // General Purpose Flag 0 sbit AC = 0xD6; // Auxiliary Carry Bit Flag sbit CY = 0xD7; // Carry Bit Flag // IPINFLAG2 (Address 0xD8) sbit P00IF = 0xD8; // P0.0 Interrupt Flag sbit P01IF = 0xD9; // P0.1 Interrupt Flag sbit P02IF = 0xDA; // P0.2 Interrupt Flag sbit P03IF = 0xDB; // P0.3 Interrupt Flag sbit P04IF = 0xDC; // P0.4 Interrupt Flag sbit P05IF = 0xDD; // P0.5 Interrupt Flag sbit P06IF = 0xDE; // P0.6 Interrupt Flag sbit P07IF = 0xDF; // P0.7 Interrupt Flag // ACC (Address 0xE0) sbit ACC_0 = 0xE0; sbit ACC_1 = 0xE1; sbit ACC_2 = 0xE2; sbit ACC_3 = 0xE3; sbit ACC_4 = 0xE4; sbit ACC_5 = 0xE5; sbit ACC_6 = 0xE6; sbit ACC_7 = 0xE7; // B (Address 0xF0) sbit B_0 = 0xF0; sbit B_1 = 0xF1; sbit B_2 = 0xF2; sbit B_3 = 0xF3; sbit B_4 = 0xF4; sbit B_5 = 0xF5; sbit B_6 = 0xF6; sbit B_7 = 0xF7; // USERFLAGS (Address 0xF8) sbit UF_0 = 0xF8; sbit UF_1 = 0xF9; sbit UF_2 = 0xFA; sbit UF_3 = 0xFB; sbit UF_4 = 0xFC; sbit UF_5 = 0xFD; sbit UF_6 = 0xFE; sbit UF_7 = 0xFF; #endif /************************************************************************** * Copyright (C) 2007 Ramtron International Corporation **************************************************************************/