PIN FUNCTIONS ADuC812 direct 8bit internal address (00h-FFh) 3 P1.2 / ADC2 @Ri indirect addressing using R0 or R1 4 P1.3 / ADC3 source any of [Rn, direct, @Ri] dest any of [Rn, direct, @Ri] 5 AVDD #data 8bit constant included in instruction 6 AGND 39 38 37 36 35 34 33 32 31 30 29 28 27 ADuC812 52pin PQFP TOP VIEW (not to scale) 12 #data16 16bit constant included in instruction 7 CREF 1 12 bit 8bit direct address of bit 8 VREF 1,2 12 rel signed 8bit offset 9 DAC0 DPTR * 1 24 addr11 11bit address in current 2K page 10 DAC1 DEC A 1 12 addr16 16bit address 11 P1.4 / ADC4 DEC source 1,2 12 * INC DPTR increments the 24bit value DPP/DPH/DPL 12 P1.5 / ADC5 / SS MUL AB multiply A by B 1 48 13 P1.6 / ADC6 DIV AB divide A by B 1 48 Logical Operations DA A decimal adjust 1 12 ANL A,source 1,2 12 ANL A,#data 2 12 14 P1.7 / ADC7 27 SDATA / MOSI 40 EA direct,A 2 12 15 RESET 28 P2.0 / A8 / A16 41 PSEN direct,#data 3 24 16 P3.0 / RxD 29 P2.1 / A9 / A17 42 ALE 17 P3.1 / TxD 30 P2.2 / A10 / A18 43 P0.0 / AD0 18 P3.2 / INT0 31 P2.3 / A11 / A19 44 P0.1 / AD1 19 P3.3 / INT1 / MISO 32 XTAL1 (in) 45 P0.2 / AD2 20 DVDD 33 XTAL2 (out) 46 P0.3 / AD3 21 DGND 34 DVDD 47 DGND 22 P3.4 / T0 35 DGND 48 DVDD 23 P3.5 / T1 / CONVST 36 P2.4 / A12 / A20 49 P0.4 / AD4 24 P3.6 / WR 37 P2.5 / A13 / A21 50 P0.5 / AD5 25 P3.7 / RD 38 P2.6 / A14 / A22 51 P0.6 / AD6 26 SCLOCK 39 P2.7 / A15 / A23 52 P0.7 / AD7 direct,A 2 12 ORL direct,#data MOV DPTR,#data16 3 24 XRL A,source MOVC A,@A+DPTR move from code memory MOVC A,@A+PC 1 24 XRL A,#data 1 24 XRL direct,A MOVX A,@Ri 1 24 XRL direct,#data 1 24 CLR A MOVX A,@DPTR MOVX @Ri,A 2,3 12,24 move to/from data memory MOVX @DPTR,A logical OR logical XOR clear A to zero 3 24 1,2 12 2 12 2 12 3 24 1 12 1 24 CPL A complement A 1 12 1 24 RL A rotate A left 1 12 push onto stack 2 24 RLC A ...through C 1 12 direct pop from stack 2 24 RR A rotate A right 1 12 XCH A,source exchange bytes 1,2 12 RRC A ...through C 1 12 exchg low digits 12 SWAP A swap nibbles 1 12 1 by te s O S pe C ri o d s XCHD A,@Ri Program Branching ACALL addr11 LCALL addr16 call subroutine Boolean Variable Manipulation 2 24 CLR C 3 24 CLR bit RET return from sub. 1 24 SETB C RETI return from int. 1 24 SETB bit 2 24 CPL C 3 24 CPL bit 2 24 ANL C,bit 1 24 ANL 2 24 ORL AJMP addr11 LJMP addr16 SJMP rel JMP @A+DPTR JZ rel JNZ jump jump if A = 0 rel jump if A not 0 CJNE A,direct,rel CJNE A,#data,rel CJNE Rn,#data,rel compare and jump if not equal CJNE @Ri,#data,rel DJNZ Rn,rel DJNZ direct, rel NOP decrement and jump if not zero no operation clear bit to zero set bit to one 1 12 2 12 1 12 2 12 1 12 2 12 AND bit with C 2 24 C,/bit ...NOTbit with C 2 24 C,bit OR bit with C 2 24 2 24 ORL C,/bit 3 24 MOV C,bit 3 24 MOV bit,C complement bit ...NOTbit with C move bit to bit 2 24 2 12 2 24 3 24 JC rel jump if C set 2 24 2 24 JNC rel jmp if C not set 2 24 2 24 JB bit,rel jump if bit set 3 24 3 24 JNB bit,rel jmp if bit not set 3 24 1 12 JBC bit, rel jmp&clear if set 3 define symbol define internal memory symbol define indirect addressing symbol define external memory symbol define internal bit memory symbol define program memory symbol reserve bytes of data memory reserve bits of bit memory store byte values in program memory DW ORG END CSEG XSEG DSEG ISEG BSEG Flash/EEPROM: 8K bytes Flash/EE program memory 640 bytes Flash/EE data memory microcontroller: industry standard 8052 DC to 16MHz, up to 1.3MIPS, 32 I/O lines other on-chip features: temperature sensor, power supply monitor, watchdog timer, flexible serial interface ports, precision voltage reference PROGRAM MEMORY SPACE (read only) FUNCTIONAL BLOCK DIAGRAM FFFFh external program memory 64K bytes addressable 2000h 1FFFh 0000h EA=1 internal 8K bytes Flash/EE EA=0 external store word values in program memory set segment location counter end of assembly source file select program memory space select external data memory space select internal data memory space select indirectly addressed internal data memory space select bit addressable memory space hardware CONVST 23 ADC0 ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 1 2 3 4 11 12 13 14 ADuC812 INTERRUPT VECTOR ADDRESSES ADC control & calibration 12bit ADC T/H AIN MUX TEMP sensor Interrupt Bit Interrupt Name PSMCON.5 IE0 ADCI TF0 IE1 TF1 ISPI/I2CI RI/TI TF2/EXF2 Power Supply Monitor Interrupt External Interrupt 0 End of ADC Conversion Interrupt Timer0 Overflow Interrupt External Interrupt 1 Timer1 Overflow Interrupt SPI/I2C Interrupt UART Interrupt Timer2 Interrupt 43h 03h 33h 0Bh 13h 1Bh 3Bh 23h 2Bh 1 2 3 4 5 6 7 8 9 VREF 8 CREF 7 BUF 9 DAC0 DAC1 BUF 10 DAC1 22 T0 23 T1 1 T2 2 T2EX 18 INT0 19 INT1 256 x 8 user RAM Flash/EE 2.5V bandgap reference Vector Priority within Address Level DAC1 DAC control 640 x 8 data (-3 mV/oC) 8K x 8 program Flash/EE 24 ASSEMBLER DIRECTIVES EQU DATA IDATA XDATA BIT CODE DS DBIT DB dual, 12bit, 15µs, voltage output 1LSB DNL by te s O S pe C ri o ds PUSH direct POP DAC: 8052 MCU core asynchronous serial port (UART) www.analog.com/microconverter watchdog timer power supply monitor downloader debugger BUF 16bit counter timers synchronous serial interface (SPI or I2C) OSC 33 ORL 32 1,2,3 24 XTAL2 12 XTAL1 12 2 P3.0 (RxD) P3.1 (TxD) P3.2 (INT0) P3.3 (INT1 / MISO) P3.4 (T0) P3.5 (T1 / CONVST) P3.6 (WR) P3.7 (RD) 1,2 16 17 18 19 22 23 24 25 A,source A,#data 12 dest,#data ORL ORL SS MOV 12 12 26 27 19 dest,source 2 1,2 SCLOCK SDATA / MOSI MISO MOV move source to destination 12bit, 5µs, 8channel, self calibrating 0.5LSB INL & 70dB SNR P2.0 (A8 / A16) P2.1 (A9 / A17) P2.2 (A10 / A18) P2.3 (A11 / A19) P2.4 (A12 / A20) P2.5 (A13 / A21) P2.6 (A14 / A22) P2.7 (A15 / A23) A,#data dest,A ADC: 28 29 30 31 36 37 38 39 MOV MOV the ADuC812 is: single-pin emulator ANL 12 42 41 40 15 1,2 A,source ALE PSEN EA RESET MOV logical AND 17 by te s O S pe C rio d ANL 16 Data Transfer Operations a “Data Acquisition System on a Chip” TxD decrement RxD INC increment P1.0 (ADC0 / T2) P1.1 (ADC1 / T2EX) P1.2 (ADC2) P1.3 (ADC3) P1.4 (ADC4) P1.5 (ADC5 / SS) P1.6 (ADC6) P1.7 (ADC7) source 1 2 3 4 11 12 13 14 INC 21 35 47 A s INC MicroConverter® Quick Reference Guide DGND 12 pin 1 identifier 1 2 3 4 5 6 7 8 9 10 11 12 13 20 34 48 subtract from A 1,2 with borrow 2 12 DVDD 2 52 51 50 49 48 47 46 45 44 43 42 41 40 12 12 14 15 16 17 18 19 20 21 22 23 24 25 26 SUBB A,#data 2 1,2 by te s O S pe C rio ds SUBB A,source P1.1 / ADC1 / T2EX P0.0 (AD0) P0.1 (AD1) P0.2 (AD2) P0.3 (AD3) P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.7 (AD7) ADDC A,#data add with carry 2 43 44 45 46 49 50 51 52 ADDC A,source add source to A P1.0 / ADC0 / T2 register addressing using R0-R7 6 A,#data 1 Rn 5 ADD Legend 12 AVDD 1,2 AGND A,source G3697-5-10/99 ADD PRINTED IN U.S.A. Arithmetic Operations by te s O S pe C rio d s INSTRUCTION SET REV. B DATA MEMORY: RAM, SFRs, user Flash/EE (all read/write) SFR DESCRIPTIONS R0 7 07h R7 6 06h R6 5 05h R5 4 04h R4 3 03h R3 2 02h R2 1 01h R1 0 00h R0 DAC0L SPICON 00h PCON (not used) (not used) (not used) (not used) (not used) 00h (not used) EDATA4 (reserved) (reserved) DEh (reserved) PSMCON DFh 20h (reserved) EFh 00h ADCCON1 SPIDAT F7h 87h (reserved) 08h (reserved) R1 8 00h R2 09h DPP 0Ah 9 00h 84h 10 DPH R3 ADCCON3.7 ADCCON3.6 ADCCON3.5 ADCCON3.4 ADCCON3.3 ADCCON3.2 ADCCON3.1 ADCCON3.0 mnemonic address reset value SPR1 F9h SPR0 0 F8h SPICON 0 F8h 00h * calibration coefficients are preconfigured at power-up to factory calibrated values ADCDATAH ADCDATAL DACCON.7 DACCON.6 DACCON.5 DACCON.4 DACCON.3 DACCON.2 DACCON.1 DACCON.0 DAC1H,DAC1L DAC1 data registers DAC0H,DAC0L DAC0 data registers ECON data EE/FLASH comand register 01h 02h 03h 1 80h 1 0 data EE/FLASH Data registers ETIM1,ETIM2,ETIM3 EE/FLASH timing regs 81h 1 84h master mode SDATA output bit master mode SDATA output enable master mode SCLK bit master mode SDATA input bit master mode select serial port reset transmission direction status serial interface interrupt I2C Address register 85h MDO MDE MCO MDI I2CM I2CRS I2CTX I2CI SPI inturrupt (set at end of SPI transfer) write collision error flag SPI enable (0=disable SPI & enable I2C) master mode select (0=slave) clock polarity select (0=SCLK idles low) clock phase select (0=leading edge latch) SPI bitrate select bits bitrate = Fosc / [4, 8, 32, 64] I2CDAT I2C Data register 1 1 83h 1 82h 1 SPI Control register I2CADD WDCON Watchdog Timer control register 1 87h 86h IT0 88h 0 data EE/FLASH address register I2C Control register 89h VERIFY ERASE ERASE ALL EDATA1,EDATA2,EDATA3,EDATA4 I2CCON 0 IE0 IT1 0 04h 05h 06h SPI Data register 0 IE1 READ WRITE (reserved) SPIDAT 8Ch 8Bh ModeSelect (0=12bit, 1=8bit) DAC1 RangeSelect (0=VREF, 1=VDD) DAC0 RangeSelect (0=VREF, 1=VDD) Clear DAC1 (0=0V, 1=normal operation) Clear DAC0 (0=0V, 1=normal operation) SynchronousUpdate (1=asynchronous) PowerDown DAC1 (0=off, 1=on) PowerDown DAC0 (0=off, 1=on) ISPI WCOL SPE SPIM CPOL CPHA SPR1 SPR0 0 TR0 TF0 8Dh 0 TR1 8Eh ADC Data registers DAC Control register 0 TF1 mnemonic reset value address ADC Control register #3 busy indicator flag (0=ADC not active) (this bit must contain zero) (this bit must contain zero) (this bit must contain zero) (this bit must contain zero) (this bit must contain zero) (this bit must contain zero) (this bit must contain zero) DACCON 8Fh these bits are contained in this byte priority of ISPI/I2CI (serial interface interrupt) priority of ADCI (ADC interrupt) priority of TF2/EXF2 (Timer2 overflow interrupt) priority of RI/TI (serial port interrupt) priority of TF1 (Timer1 overflow interrupt) priority of IE1 (external INT1) priority of TF0 (Timer0 overflow interrupt) priority of IE0 (external INT0) ADCCON3 SPICON 8Ah 1 T2 1 T2EX 91h 1 92h 1 93h 1 94h 1 95h 1 1 97h 96h RB8 TB8 SM1 90h 0 98h TI 0 0 REN 9Ch 0 9Dh 0 SM0 9Fh 9Eh 0 SM2 9Bh 0 9Ah 0 99h A0h A1h 1 A4h 1 A7h A6h 1 A5h 1 A3h 1 A2h 1 1 RI 1 0 A8h 0 A9h 0 0 ACh 0 AFh AEh 0 ADh 0 ABh 0 AAh 1 EX0 B0h B1h ET0 EX1 B2h B3h ET1 ES B4h B5h 1 B6h ET2 EA B7h RD 1 WR EADC T1 1 T0 PS 1 INT1 PT1 1 INT0 PX1 1 TXD PT0 1 RXD PX0 0 0 BEh PT2 PSI BFh 0 PADC BDh 0 BCh 0 BBh 0 BAh 0 B9h 0 B8h 0 WDE C0h 0 WDS C1h 0 WDR2 C2h 0 WDR1 C3h 0 C4h 0 PRE0 C5h 0 PRE1 C6h 0 PRE2 C7h CAP2 0 CAh 0 EXEN2 CBh 0 TCLK CCh RCLK 0 CFh TF2 0 CEh EXF2 0 CDh TR2 0 C9h CNT2 0 C8h 0 P D0h 0 F1 D1h 0 OV D2h 0 RS0 D3h 0 RS1 D4h 0 F0 D5h 0 AC D6h 0 CY D7h 0 0 D8h E0h 0 0 CS0 CS1 D9h E1h 0 0 CS2 E2h DAh 0 0 CS3 E3h DBh 0 0 DCh E4h 0 0 DDh E5h CCONV SCONV 0 0 DMA E6h DEh 0 0 ADCI E7h DFh 0 E8h 0 E9h 0 EBh 0 ECh 0 EDh EEh 0 MDO EFh MDE 0 MCO MDI I2CM 0 EAh I2CTX I2CRS F2h 0 F3h 0 F4h 0 F5h 0 F6h 0 F7h MAP KEY SFR details FFh ISPI lower RAM details I2CI 0 F0h F1h 0 0 0 F8h 0 SPR0 SPR1 F9h 0 CPHA FAh 0 CPOL FBh 0 FCh 0 SPIM SPE FDh 0 WCOL 000000h FEh 00h 128 bytes lower RAM (direct or indirect addressing) 0 Register Bank 0 128 bytes SFRs upper RAM (direct (indirect addressing addressing only) only) Interrupt Priority register PSI PADC PT2 PS PT1 PX1 PT0 PX0 00h 83h 0Bh FFh enable PSMI (power supply monitor interrupt) enable ISPI/I2CI (serial interface interrupt) IP ADC Offset calibration coefficients DPL 11 Register Bank 1 Interrupt Enable register #2 IE2.1 IE2.0 07h 82h R4 (16MEG addressable) IE2 ADCOFSH ADCOFSL SP R5 0Ch ( page 0 ) ADC Control register #2 ADC interrupt flag DMA mode enable continuous conversion enable bit single conversion start bit input channel select bits 0000 - 0111 = ADC0 - ADC7 1000 = temperature sensor 1111 = “HALT” command (DMA mode only) ADC Gain calibration coefficients FFh 81h 0Dh 12 00h external data memory enable inturrupts (0=all inturrupts disabled) enable ADCI (ADC interrupt) enable TF2/EXF2 (Timer2 overflow interrupt) enable RI/TI (serial port interrupt) enable TF1 (Timer1 overflow interrupt) enable IE1 (external interrupt 1) enable TF0 (Timer0 overflow interrupt) enable IE0 (external interrupt 0) ADCGAINH ADCGAINL P0 13 ADCI DMA CCONV SCONV CS3 CS2 CS1 CS0 EADRL Register Bank 2 Interrupt Enable register #1 EA EADC ET2 ES ET1 EX1 ET0 EX0 ADC power control bits [shtdn, norm, autoshtdn, autostby] conversion time = 15.5 / ADCclk ADCclk = Mclk / [1,2,4,8] acquisition time select bits acq time = [1,2,3,4] / ADCclk Timer2 convert enable external CONVST enable ADCCON2 FFFFFFh 640 bytes (160 pages) data Flash/EE (accessible through SFRs) IE ADCCON1.7 ADCCON1.6 ADCCON1.5 ADCCON1.4 ADCCON1.3 ADCCON1.2 ADCCON1.1 ADCCON1.0 ADC Control register #1 DMAP,DMAH,DMAL DMA address pointer 80h R6 (not used) 0Eh 00h 14 TH1 R7 00h 8Dh R0 0Fh TH0 10h 15 00h 8Ch 16 TL1 R1 00h 8Bh R2 11h TL0 12h 17 00h 8Ah 18 TMOD R3 00h 89h R4 13h TCON 14h 19 88h 20 (not used) R5 (not used) 15h (not used) 21 (not used) R6 (not used) R7 16h (not used) 17h 22 ( page 159 ) FFh 23 9Fh P1 R0 90h R1 18h (not used) 19h 24 (not used) 25 (not used) R2 55h 1Ah I2CADD 26 DATA MEMORY SPACE (read/write area) Register Bank 3 00h 9Bh R3 I2CDAT 1Bh 00h 9Ah R4 27 SBUF 1Ch 00h 99h R5 28 SCON R6 1Dh 98h 1Eh 29 (not used) 30 (not used) R7 (not used) 1Fh (not used) 31 (not used) 00h (not used) 01h FFh 02h P2 03h A0h 04h (not used) 05h (not used) 06h (not used) 07h (not used) 20h (not used) 32 00h 08h IE2 09h 00h A9h 0Ah A8h 0Bh FFh 0Ch IE 0Dh B0h 0Eh (not used) 0Fh (not used) 21h (not used) 33 (not used) 10h ADCCON1 (not used) 11g (not used) 12h P3 13h 00h BFh 14h EDATA3 15h 00h BEh 16h EDATA2 17h 00h BDh 22h EDATA1 34 04h BCh 18h ETIM2 19h 52h BBh 1Ah ETIM1 1Bh 00h BAh 1Ch ECON 1Dh 00h B9h 1Eh IP 1Fh B8h 23h 00h 35 EADRL 20h C6h 21h (reserved) 22g C9h 23h ETIM3 24h C4h 25h (not used) 26h (not used) 27h (not used) 24h 00h 36 WDCON 28h C0h 30h 29h (reserved) 31h 2Ah 00h 32h 2Bh TH2 33h 2Ch 00h CDh 34h 2Dh 00h CCh 35h 2Eh 00h CBh 36h 2Fh CAh 37h 25h 00h 26h 37 C8h 38 00h 38h TL2 39h 00h D4h 3Ah RCAP2H 3Bh 00h D3h 3Ch RCAP2L 3Dh D2h 3Eh (reserved) 3Fh 00h 27h T2CON 40h 39 D0h 48h 41h (reserved) 49h 42h (reserved) 4Ah 43h DMAP 4Bh 44h DMAH 4Ch 45h DMAL 4Dh 46h (reserved) 4Eh 47h Bit Addressable Area PSW 4Fh 28h (reserved) 29h 40 (reserved) 41 (reserved) 50h 00h 58h 51h 00h DAh 59h 52h 00h D9h 5Ah 53h D8h 5Bh 54h 00h 5Ch 55h E0h 5Dh 56h ADCCON2 ADCDATAL ADCDATAH (reserved) 5Eh 57h (reserved) 5Fh 2Ah (reserved) 2Bh 42 (reserved) 43 (reserved) 60h (reserved) 68h 61h (reserved) 69h 62h 00h 6Ah 63h ACC 6Bh 64h E8h 6Ch 65h (reserved) 6Dh 66h (reserved) 6Eh 67h (reserved) 6Fh 2Ch (reserved) 2Dh 44 (reserved) 45 (reserved) 70h I2CCON 71h (reserved) 72h 00h 73h *00h F5h 74h *00h F4h 75h *20h F3h 76h *00h F2h 77h F0h 2Eh 00h F1h (not used) 46 (reserved) 78h 04h 79h DACCON 7Ah 00h FDh 7Bh DAC1H 7Ch 00h FCh 7Dh DAC1L 7Eh 00h FBh 7Fh DAC0H 2Fh 00h FAh 47 (bit addresses) ADCOFSL ADCOFSH ADCGAINL ADCGAINH ADCCON3 30h 00h F9h 48 General Purpose Area B ... LSB address 7Fh ... MSB address 127 F8h LOWER RAM HEX address decimal address SFR MAP & RESET VALUES PRE2 PRE1 PRE0 WDR1 WDR2 WDS WDE watchdog timeout selection bits timeout=[16,32,64,128,256,512,1024,2048]ms watchdog timer refresh bits set sequentialy to refresh watchdog watchdog status flag watchdog enable PSMCON Power Supply Monitor control register PSMCON.7 PSMCON.6 PSMCON.5 PSMCON.4 PSMCON.3 PSMCON.2 PSMCON.1 PSMCON.0 SP (not used) PSM status bit (1=normal / 0=fault) PSM interrupt bit trip point select bits [4.63V, 4.37V, 3.08V, 2.93V, 2.63V] AVDD/DVDD fault indicator (1=AVDD / 0=DVDD) PSM powerdown control (1=on / 0=off) Stack Pointer TMOD Timer Mode register TMOD.3/.7 gate control bit (0=ignore INTx) TMOD.2/.6 counter/timer select bit (0=timer) TMOD.1/.5 timer mode selecton bits TMOD.0/.4 [13bitT, 16bitT/C, 8bitT/Creload, 2x8bitT] (upper nibble = Timer1, lower nibble = Timer0) TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 Timer Control register Timer1 overflow flag (auto cleared on vector to ISR) Timer1 run control (0=off, 1=run) Timer0 overflow flag (auto cleared on vector to ISR) Timer0 run control (0=off, 1=run) external INT1 flag (auto cleared on vector to ISR) IE1 type (0=level trig, 1=edge trig) external INT0 flag (auto cleared on vector to ISR) IE0 type (0=level trig, 1=edge trig) TH0,TL0 Timer0 registers TH1,TL1 Timer1 registers T2CON Timer2 Control register TF2 EXF2 RCLK TCLK EXEN2 TR2 CNT2 CAP2 overflow flag external flag receive clock enable (0=Timer1 used for RxD clk) transmit clock enable (0=Timer1 used for TxD clk) external enable (0=ignore T2EX, 1=cap/rld on T2EX) run control (0=stop, 1=run) timer/counter select (0=timer, 1=counter) capture/reload select (0=reload, 1=capture) TH2,TL2 Timer2 register RCAP2H,RCAP2L Timer2 Reload/Capture P0 Port0 register (also A0-A7 & D0-D7) P1 Port1 register (analog & digital inputs) T2EX T2 timer/counter 2 capture/reload trigger timer/counter 2 external input P2 Port2 register (also A8-A15 & A16-A23) P3 Port3 register RD WR T1 T0 INT1 INT0 TxD RxD external data memory read strobe external data memory write strobe timer/counter 1 external input timer/counter 0 external input external interrupt 1 external interrupt 0 serial port transmit data line serial port receive data line SCON Serial communications Control register SM0 SM1 SM2 REN TB8 RB8 TI RI UART mode control bits baud rate: 00 - 8bit shift register - FOSC/12 01 - 8bit UART - TimerOverflowRate/32(x2) 10 - 9bit UART - FOSC/64(x2) 11 - 9bit UART - TimerOverflowRate/32(x2) in modes 2&3, enables multiprocessor communication receive enable control bit in modes 2&3, 9th bit transmitted in modes 2&3, 9th bit received transmit interrupt flag receive interrupt flag SBUF Serial port Buffer register PCON Power Control register PCON.7 PCON.4 PCON.3 PCON.2 PCON.1 PCON.0 double baud rate control ALE disable (0=normal, 1=forces ALE high) general purpose flag general purpose flag power-down control bit (recoverable with hard reset) idle-mode control (recoverable with enabled interrupt) PSW Program Status Word CY AC F0 RS1 RS0 OV F1 P carry flag auxiliary carry flag general purpose flag 0 register bank select control bits active register bank = [0,1,2,3] overflow flag general purpose flag 1 parity of ACC DPP Data Pointer Page DPH,DPL (DPTR) Data Pointer ACC Accumulator B auxiliary math register