/*-------------------------------------------------------------------------- PCD6001.H Header file for Philips PCD 6001 Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved. --------------------------------------------------------------------------*/ #ifndef __PCD6001_H__ #define __PCD6001_H__ /* BYTE Registers */ sfr ACC = 0xE0; /* accumulator */ sfr ALTP = 0xAB; /* LE and GPC control */ sfr A = 0x80; /*accumulator */ sfr B = 0xF0; /* B register for multiply, divide or scratch */ sfr CKCON = 0x9A; /* Clock Control Register */ sfr CDVC1 = 0xBB; /* CODEC digital volume control for CODEC1 */ sfr CDVC2 = 0xBC; /* CODEC digital volume control for CODEC2 */ sfr CDTR1 = 0xBD; /* CODEC Test Register 1; see note 1 */ sfr CDTR2 = 0xB7; /* CODEC Test Register 2; see note 2 */ sfr DTCON = 0xC7; /* line selection and alternative gain control register */ sfr DPL = 0x82; /* data pointer low */ sfr DPH = 0x83; /* data pointer high */ sfr DTM0 = 0xA2; /* DSP to Microcontroller Communication Register 0 (read only) */ sfr DTM1 = 0xA3; /* DSP to Microcontroller Communication Register 1 (read only) */ sfr DTM2 = 0xA4; /* DSP to Microcontroller Communication Register 2 (read only) */ sfr GPADC = 0xC3; /* automatic analog-to-digital conversion, channel select*/ sfr GPADR = 0xC2; /* digital value of analog input (read only) */ sfr GPDAR = 0xC4; /* digital value of analog output */ sfr IEN0 = 0xA8; /* Interrupt Enable Register 0 */ sfr IEN1 = 0xE8; /* Interrupt Enable Register 1 */ sfr INTC = 0xC1; /* Interrupt Control Register */ sfr IP0 = 0xB8; /* Interrupt Priority Register 0 */ sfr IP1 = 0xF8; /* Interrupt Priority Register 1 */ sfr IRQ1 = 0xC0; /* Interrupt Request Flag Register */ sfr IX1 = 0xE9; /* Interrupt Polarity Register */ sfr MCSD = 0xAA; /* Memory Control Serial Data Register */ sfr MCSC = 0xA9; /* Memory Control Serial Command Register */ sfr MTD0 = 0xA5; /* microcontroller to DSP communication register 0 */ sfr MTD1 = 0xA6; /* microcontroller to DSP communication register 1 */ sfr MTD2 = 0xA7; /* microcontroller to DSP communication register 2 */ sfr MCON = 0xC8; /* MSK Control Register */ sfr MBUF = 0xC9; /* MSK Data Buffer Register */ sfr MSTAT = 0xCA; /* MSK Status Register */ sfr P1 = 0x90; /* general purpose digital I/O */ sfr P3 = 0xB0; /* general purpose digital I/O */ sfr P4 = 0x98; /* P4 can be used to control flash memory */ sfr P4CFG = 0x9F; /* P4 configuration and addressing mode register */ sfr PCON = 0x87; /* Power and Interrupt Control Register */ sfr PMTR1 = 0xB5; /* Power Management Test Register 1; see note 2 */ sfr PMTR2 = 0xB6; /* Power Management Test Register 2; see note 2 */ sfr PSW = 0xD0; /* Program Status Word */ sfr RTCON = 0x9B; /* Real-Time Clock control */ sfr S1CON = 0xD8; /* I 2 C-bus Serial Control Register */ sfr S1ADR = 0xDB; /* I 2 C-bus own slave address register */ sfr S1DAT = 0xDA; /* I 2 C-bus Data Shift Register */ sfr S1STA = 0xD9; /* I 2 C-bus Status Register (read only) */ sfr SYMOD = 0xC5; /* analog system mode control */ sfr SPCON = 0x99; /* system power and clock configuration */ sfr SP = 0x81; /* Stack Pointer */ sfr TCON = 0x88; /* Timer/counter Control Register */ sfr TMOD = 0x89; /* Timer/counter Mode Control Register */ sfr TL0 = 0x90; /* Timer Low Register 0 */ sfr TL1 = 0x91; /* Timer Low Register 1 */ sfr TH0 = 0x92; /* Timer High Register 0 */ sfr TH1 = 0x93; /* Timer High Register 1 */ sfr VREFR = 0xBA; /* Voltage Reference Register */ sfr WDT = 0xFF; /* Watchdog Timer */ sfr WDTKEY = 0xF7; /* Watchdog Key Register */ sfr XWUD = 0xB9; /* external wake-up disable */ /* BIT Registers */ /* PSW */ sbit CY = 0xD7; sbit AC = 0xD6; sbit F0 = 0xD5; sbit RS1 = 0xD4; sbit RS0 = 0xD3; sbit OV = 0xD2; sbit F1 = 0xD1; sbit P = 0xD0; /* TCON */ sbit TF1 = 0x8F; sbit TR1 = 0x8E; sbit TF0 = 0x8D; sbit TR0 = 0x8C; sbit IE1 = 0x8B; sbit IT1 = 0x8A; sbit IE0 = 0x89; sbit IT0 = 0x88; /* IE */ sbit EA = 0xAF; sbit ES1 = 0xAD; sbit ES0 = 0xAC; sbit ET1 = 0xAB; sbit EX1 = 0xAA; sbit ET0 = 0xA9; sbit EX0 = 0xA8; /* IP */ sbit PS1 = 0xBD; sbit PS0 = 0xBC; sbit PT1 = 0xBB; sbit PX1 = 0xBA; sbit PT0 = 0xB9; sbit PX0 = 0xB8; /* P0 */ sbit AD7 = 0x87; sbit AD6 = 0x86; sbit AD5 = 0x85; sbit AD4 = 0x84; sbit AD3 = 0x83; sbit AD2 = 0x82; sbit AD1 = 0x81; sbit AD0 = 0x80; /* P1 */ sbit SDA = 0x97; sbit SCL = 0x96; /* P3 */ sbit RD = 0xB7; sbit WR = 0xB6; sbit T1 = 0xB5; sbit T0 = 0xB4; sbit INT1 = 0xB3; sbit INT0 = 0xB2; sbit TXD = 0xB1; sbit RXD = 0xB0; /* S0CON */ sbit SM0 = 0x9F; sbit SM1 = 0x9E; sbit SM2 = 0x9D; sbit REN = 0x9C; sbit TB8 = 0x9B; sbit RB8 = 0x9A; sbit TI = 0x99; sbit RI = 0x98; /* S1CON */ sbit CR2 = 0xDF; sbit ENS1 = 0xDE; sbit STA = 0xDD; sbit STO = 0xDC; sbit SI = 0xDB; sbit AA = 0xDA; sbit CR1 = 0xD9; sbit CR0 = 0xD8; #endif