Tuesday, March 22, 2016

8051 Move External

Move External – MOVX dest-byte, src-byte

The MOVX instructions transfer data between the Accumulator and a byte of external data memory, which is why “X” is appended to MOV. There are two types of instructions, differing in whether they provide an 8-bit or 16-bit indirect address to the external data RAM.
In the first type, the contents of R0 or R1 in the current register bank provide an 8-bit address multiplexed with data on P0. Eight bits are sufficient for external I/O expansion decoding or for a relatively small RAM array. For somewhat larger arrays, any output port pins can be used to output higher-order address bits. These pins are controlled by an output instruction preceding the MOVX.

In the second type of MOVX instruction, the Data Pointer generates a 16-bit address. P2 outputs the high-order eight address bits (the contents of DPH), while P0 multiplexes the low-order eight bits (DPL) with data. The P2 Special Function Register retains its previous contents, while the P2 output buffers emit the contents of DPH. This form of MOVX is faster and more efficient when accessing very large data arrays (up to 64K bytes), since no additional instructions are needed to set up the output ports.

It is possible to use both MOVX types in some situations. A large RAM array with its high-order address lines driven by P2 can be addressed via the Data Pointer, or with code to output high-order address bits to P2, followed by a MOVX instruction using R0 or R1.

MOVX A,@Ri
Encoding:1110001i

MOVX A,@DPTR
Encoding:11100000

MOVX @Ri, A
Encoding:1111001i

MOVX @DPTR,A
Encoding:11110000

Example:
An external 256 byte RAM using multiplexed address/data lines is connected to the 8051 Port 0. Port 3 provides control lines for the external RAM. Ports 1 and 2 are used for normal I/O. Registers 0 and 1 contain 12H and 34H. Location 34H of the external RAM holds the value 56H. The instruction sequence,

ORG 0H
MAIN :
MOVX A,@R1
MOVX @R0,A
END; end of asm source file


copies the value 56H into both the Accumulator and external RAM location 12H.



Related topics:
8051 Move Byte   |   8051 Move Bit   |   8051 Move Word   |   8051 Move Code Byte   |   8051 MOVX Instruction   |   8051 MOVC Instruction   |   8051 MOV Instruction

List of topics: 8051

No comments:

Post a Comment