Datasheet
Table Of Contents
- Features
- Applications
- Functional Block Diagram
- General Description
- Revision History
- Specifications
- Absolute Maximum Ratings
- Pin Configurations and Function Descriptions
- Typical Performance Characteristics
- Terminology
- Explanation of Typical Performance Plots
- Memory Organization
- Special Function Registers (SFRs)
- Special Function Registers
- ADC Circuit Information
- Calibrating the ADC
- Initiating Calibration in Code
- Nonvolatile Flash/EE Memory
- Using the Flash/EE Data Memory
- User Interface to Other On-Chip ADuC832 Peripherals
- On-Chip PLL
- Pulse-Width Modulator (PWM)
- PWM Modes of Operation
- Serial Peripheral Interface
- I2C-Compatible Interface
- Dual Data Pointers
- Power Supply Monitor
- Watchdog Timer
- Time Interval Counter (TIC)
- 8052-Compatible On-Chip Peripherals
- Timer/Counter 0 And Timer/Counter 1 Operating Modes
- Timer/Counter 2
- UART Serial Interface
- SBUF
- SCON (UART Serial Port Control Register)
- Mode 0: 8-Bit Shift Register Mode
- Mode 1: 8-Bit UART, Variable Baud Rate
- Mode 2: 9-Bit UART with Fixed Baud Rate
- Mode 3: 9-Bit UART with Variable Baud Rate
- UART Serial Port Baud Rate Generation
- Timer 1 Generated Baud Rates
- Timer 2 Generated Baud Rates
- Timer 3 Generated Baud Rates
- Interrupt System
- ADuC832 Hardware Design Considerations
- Other Hardware Considerations
- Development Tools
- Outline Dimensions

ADuC832 Data Sheet
Rev. B | Page 62 of 92
DUAL DATA POINTERS
The ADuC832 incorporates two data pointers. The second data
pointer is a shadow data pointer and is selected via the data
pointer control SFR (DPCON). DPCON also includes features
such as automatic hardware postincrement and postdecrement,
as well as automatic data pointer toggle. DPCON is described in
Table 30.
DPCON (DATA POINTER CONTROL SFR)
SFR Address: A7H
Power-On Default Value: 00H
Bit Addressable: No
Table 30. DPCON SFR Bit Designations
Bit Name Description
[7] Reserved Reserved for future use.
[6] DPT
Data pointer automatic toggle enable.
Cleared by user to disable auto swapping of the DPTR. Set in user software to enable automatic toggling of the DPTR
after each MOVX or MOVC instruction.
[5:4] DP1m[1:0] Shadow data pointer mode.
These two bits enable extra modes of the shadow data pointer operation, allowing for more compact and more
efficient code size and execution.
DP1m1 DP1m0 Behavior of Shadow Data Pointer
0 0 8052 behavior
0 1 DPTR is postincremented after a MOVX or a MOVC instruction.
1 0 DPTR is postdecremented after a MOVX or MOVC instruction.
1 1
DPTR LSB is toggled after a MOVX or MOVC instruction. (This instruction can be useful for moving
8-bit blocks to/from 16-bit devices.)
[3:2] DP0m[1:0]
Main data pointer mode. These two bits enable extra modes of the main data pointer operation, allowing for more
compact and more efficient code size and execution.
DP0m1
DP0m0
Behavior of the Main Data Pointer
0 0 8052 behavior
0
1
1 DPTR is postincremented after a MOVX or a MOVC instruction.
1 0 DPTR is postdecremented after a MOVX or MOVC instruction.
1 1
DPTR LSB is toggled after a MOVX or MOVC instruction. (This instruction can be useful for moving
8-bit blocks to/from 16-bit devices.)
[1] Reserved
This bit is not implemented to allow the INC DPCON instruction to toggle the data pointer without incrementing the
rest of the SFR.
[0]
DPSEL
Data pointer select.
Cleared by user to select the main data pointer. This means that the contents of this 24-bit register are placed into the
DPL, DPH, and DPP SFRs.
Set by the user to select the shadow data pointer. This means that the contents of a separate 24-bit register appears in
the DPL, DPH, and DPP SFRs.
Notes
This is the only section where the main and shadow data
pointers are distinguished. Everywhere else in this data sheet
wherever the DPTR is mentioned, operation on the active
DPTR is implied.
Only MOVC/MOVX @DPTR instructions are relevant in Table 30.
MOVC/MOVX PC/@Ri instructions do not cause the DPTR to
automatically postincrement or postdecrement.
To illustrate the operation of DPCON, the following code copies
256 bytes of code memory at Address D000H into XRAM
starting from Address 0000H.
The following code uses 16 bytes and 2054 cycles. To perform
this on a standard 8051 requires approximately 33 bytes and
7172 cycles (depending on how it is implemented).
MOV
DPTR,#0
; Main DPTR = 0
MOV
DPCON,#55H
; Select shadow DPTR
; DPTR1 increment mode,
; DPTR0 increment mode
; DPTR auto toggling on
MOV
DPTR,#0D000H
; Shadow DPTR = D000H
MOVELOOP:
CLR
A
MOVC A,@A+DPTR
; Get data
; Post Inc DPTR
; Swap to Main DPTR (Data)
MOVX @DPTR,A
; Put ACC in XRAM
; Increment main DPTR
; Swap Shadow DPTR (Code)
MOV
A, DPL
JNZ
MOVELOOP