AT89C5122 ATMEL [ATMEL Corporation], AT89C5122 Datasheet - Page 23

no-image

AT89C5122

Manufacturer Part Number
AT89C5122
Description
MICROCONTROLLER WITH USB AND SMART CARD READER INTERFACES
Manufacturer
ATMEL [ATMEL Corporation]
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
AT89C5122D-ALRUM
Manufacturer:
Atmel
Quantity:
10 000
Part Number:
AT89C5122D-RDRIM
Manufacturer:
Atmel
Quantity:
10 000
Part Number:
AT89C5122D-RDRUM
Manufacturer:
Atmel
Quantity:
10 000
Part Number:
AT89C5122D-RDVIM
Manufacturer:
Atmel
Quantity:
10 000
Part Number:
AT89C5122D-SISUM
Manufacturer:
Atmel
Quantity:
10 000
Part Number:
AT89C5122D-UM
Manufacturer:
MAXIM
Quantity:
1 001
Part Number:
AT89C5122DS-RDTUM
Manufacturer:
ATMEL/爱特梅尔
Quantity:
20 000
Part Number:
AT89C5122DS-UM
Manufacturer:
ATMEL/爱特梅尔
Quantity:
20 000
Figure 11. Use of Dual Pointer
Assembly Language
4202D–SCR–06/05
7
AUXR1(A2H)
DPS
0
a. Bit 2 stuck at 0; this allows to use INC AUXR1 to toggle DPS without changing GF3.
INC is a short (2 bytes) and fast (12 clocks) way to manipulate the DPS bit in the AUXR1
SFR. However, note that the INC instruction does not directly force the DPS bit to a par-
ticular state, but simply toggles it. In simple routines, such as the block move example,
only the fact that DPS is toggled in the proper sequence matters, not its actual value.
For example, the block move routine works the same whether DPS is '0' or '1' on entry.
Observe that without the last instruction (INC AUXR1), the routine will exit with DPS in
the opposite state.
; Block move using dual data pointers
; Modifies DPTR0, DPTR1, A and PSW
; note: DPS exits opposite of entry state
; unless an extra INC AUXR1 is added
;
00A2
;
0000 909000MOV DPTR,#SOURCE ; address of SOURCE
0003 05A2 INC AUXR1 ; switch data pointers
0005 90A000 MOV DPTR,#DEST ; address of DEST
0008 LOOP:
0008 05A2 INC AUXR1 ; switch data pointers
000A E0 MOVX A,@DPTR ; get a byte from SOURCE
000B A3 INC DPTR ;increment SOURCE address
000C 05A2 INC AUXR1 ; switch data pointers
000E F0 MOVX @DPTR,A ; write the byte to DEST
000F A3 INC DPTR ; increment DEST address
0010 70F6JNZ LOOP ; check for 0 terminator
0012 05A2 INC AUXR1 ; (optional) restore DPS
DPH(83H) DPL(82H)
AUXR1 QU 0A2H
DPTR1
DPTR0
External Data Memory
23

Related parts for AT89C5122