DS80C400 Maxim, DS80C400 Datasheet - Page 45

no-image

DS80C400

Manufacturer Part Number
DS80C400
Description
The DS80C400 network microcontroller offers the highest integration available in an 8051 device
Manufacturer
Maxim
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
DS80C400
Manufacturer:
DALLAS
Quantity:
748
Part Number:
DS80C400-FNY
Manufacturer:
DALLAS
Quantity:
85
Part Number:
DS80C400-FNY
Manufacturer:
Maxim Integrated
Quantity:
10 000
Part Number:
DS80C400-FNY+
Manufacturer:
TDK-Lambda
Quantity:
34
Part Number:
DS80C400-FNY+
Manufacturer:
Maxim
Quantity:
3 861
Part Number:
DS80C400-FNY+
Manufacturer:
Maxim Integrated
Quantity:
10 000
Part Number:
DS80C400-FNY+
Manufacturer:
MAXI/DALLAS
Quantity:
20 000
Table 8. Data Pointer SFR Locations
The active data pointer is selected with the data pointer select bits SEL1 (DPS.3) and SEL (DPS.0). For the SEL1
and SEL bits, the 00b state selects DPTR0, 01b selects DPTR1, 10b selects DPTR2, and 11b selects DPTR3. Any
instructions that reference the DPTR (i.e., MOVX A, @DPTR) use the data pointer selected by the SEL1, SEL bit-
pair combination. To allow for code compatibility with previous dual data pointer microcontrollers, the bits adjacent
to SEL are not implemented so that the INC DPS instruction can still be used to quickly toggle between DPTR0 and
DPTR1 or between DPTR2 and DPTR3.
Unlike the standard 8051, the DS80C400 has the ability to decrement as well as increment the data pointers
without additional instructions. Each data pointer (DPTR0, DPTR1, DPTR2, DPTR3) has an associated control bit
(ID0, ID1, ID2, ID3) that determines whether the INC DPTR operation results in an increment or decrement of the
pointer. When the active data pointer ID (increment/decrement) control bit is clear, the INC DPTR instruction
increments the pointer, whereas a decrement occurs if the active pointer’s ID bit is set when the INC DPTR
instruction is performed.
ID0 = DPS.6
ID1 = DPS.7
ID2 = DPS1.6
ID3 = DPS1.7
Another useful feature of the device is its ability to automatically switch the active data pointer after certain DPTR-
based instructions are executed. This feature can greatly reduce the software overhead associated with data
memory block moves, which toggle between the source and destination registers. The auto-toggle feature does not
toggle between all four data pointers, nor does it allow the user to select which data pointers to toggle between.
When the toggle select bit (TSL;DPS.5) is set to 1, the SEL bit (DPS.0) is automatically toggled every time one of
the DPTR instructions below is executed. Thus, depending upon the state of the SEL1 bit (DPS.3), the active data
pointer toggles the DPTR0, DPTR1 pair or the DPTR2, DPTR3 pair.
Auto-Toggle (if TSL = 1)
INC DPTR
MOV DPTR, #data16
MOV DPTR, #data24
MOVC A, @A+DPTR
MOVX A, @DPTR
MOVX @DPTR, A
As a brief example, if TSL is set to 1, then both data pointers can be updated with two INC DPTR instructions.
Assume that SEL1 = 0 and SEL = 0, making DPTR0 the active data pointer. The first INC DPTR increments
DPTR0 and toggles SEL to 1. The second instruction increments DPTR1 and toggles SEL back to 0.
INC DPTR
INC DPTR
As a further enhancement, the DS80C400 provides the ability to automatically increment/decrement the active data
pointer after certain DPTR-based instructions are executed. Copying large blocks of data generally requires that
the source and destination pointers index byte-by-byte through their respective data ranges. The traditional method
for incrementing each pointer is by using the INC DPTR instruction. When the auto-increment/decrement bit
(AID:DPS.4) is set to 1, the active data pointer is automatically incremented or decremented every time one of the
DPTR instructions below is executed.
DATA POINTER
DPTR0
DPTR1
DPTR2
DPTR3
DPX3 (EDh) + DPH3 (F5h) + DPL3 (F4h)
DPX2 (EBh) + DPH2 (F3h) + DPL2 (F2h)
DPX1 (95h) + DPH1 (85h) + DPL1 (84h)
DPX (93h) + DPH (83h) + DPL (82h)
DPX+DPH+DPL COMBINATION
45 of 97

Related parts for DS80C400