beautypg.com

1 internal space – Rainbow Electronics T89C51AC2 User Manual

Page 20

background image

20

T89C51AC2

Rev. B – 19-Dec-01

7.1 Internal Space

7.1.1 Lower 128 Bytes RAM

The lower 128 bytes of RAM (see Figure 2) are accessible from address 00h to 7Fh
using direct or indirect addressing modes. The lowest 32 bytes are grouped into 4 banks
of 8 registers (R0 to R7). Two bits RS0 and RS1 in PSW register (see Figure 3) select
which bank is in use according to Table 1. This allows more efficient use of code space,
since register instructions are shorter than instructions that use direct addressing, and
can be used for context switching in interrupt service routines.
Table 1. Register Bank Selection

The next 16 bytes above the register banks form a block of bit-addressable memory
space. The C51 instruction set includes a wide selection of single-bit instructions, and
the 128 bits in this area can be directly addressed by these instructions. The bit
addresses in this area are 00h to 7Fh.

Figure 3. Lower 128 bytes Internal RAM Organization

7.1.2 Upper 128 Bytes RAM

The upper 128 bytes of RAM are accessible from address 80h to FFh using only indirect
addressing mode.

7.1.3 Expanded RAM

The on-chip 1024 bytes of expanded RAM (ERAM) are accessible from address 0000h
to 03FFh using indirect addressing mode through MOVX instructions. In this address
range, the bit EXTRAM in AUXR register is used to select the ERAM (default) or the
XRAM. As shown in Figure 2 when EXTRAM= 0, the ERAM is selected and when
EXTRAM= 1, the XRAM is selected.

The size of ERAM can be configured by XRS1-0 bit in AUXR register (default size is
1024 bytes).

Note:

Lower 128 bytes RAM, Upper 128 bytes RAM, and expanded RAM are made of volatile
memory cells. This means that the RAM content is indeterminate after power-up and
must then be initialized properly.

RS1

RS0

Description

0

0

Register bank 0 from 00h to 07h

0

1

Register bank 0 from 08h to 0Fh

1

0

Register bank 0 from 10h to 17h

1

1

Register bank 0 from 18h to 1Fh

Bit-Addressable Space

4 Banks of
8 Registers
R0-R7

30h

7Fh

(Bit Addresses 0-7Fh)

20h

2Fh

18h

1Fh

10h

17h

08h

0Fh

00h

07h