TS80C51RA2 Atmel Corporation, TS80C51RA2 Datasheet - Page 14

no-image

TS80C51RA2

Manufacturer Part Number
TS80C51RA2
Description
High Performance 8-bit Microcontroller
Manufacturer
Atmel Corporation
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
TS80C51RA2-LCB
Manufacturer:
TEMIC
Quantity:
114
Part Number:
TS80C51RA2-LCB
Manufacturer:
Atmel
Quantity:
10 000
Part Number:
TS80C51RA2-LCE
Manufacturer:
Atmel
Quantity:
10 000
Part Number:
TS80C51RA2-LIB
Manufacturer:
TEMIC
Quantity:
5
Part Number:
TS80C51RA2-LIB
Quantity:
18
Part Number:
TS80C51RA2-LIB
Manufacturer:
Atmel
Quantity:
10 000
Part Number:
TS80C51RA2-MCB
Manufacturer:
CY
Quantity:
1 590
Part Number:
TS80C51RA2-MCB
Manufacturer:
Atmel
Quantity:
10 000
Part Number:
TS80C51RA2-MCE
Manufacturer:
Atmel
Quantity:
10 000
Part Number:
TS80C51RA2-VCB
Manufacturer:
TEMIC
Quantity:
19
Application
14
TS8xC51Rx2
Software can take advantage of the additional data pointers to both increase speed and
reduce code size, for example, block operations (copy, compare, search ...) are well
served by using one data pointer as a ’source’ pointer and the other one as a "destina-
tion" pointer.
ASSEMBLY LANGUAGE
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. In
other words, 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
; Destroys 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
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
LOOP:
AUXR1 EQU 0A2H
4188A–8051–10/02

Related parts for TS80C51RA2