| |
 |
The 8051
|
|
|
|
| |
|
| |
|
| |
8051 Memory Organisation |
| |
|
| |
Internal ROM |
| |
The 8051 has 4K (4096 locations) of on-chip ROM.
This is used for storing the system program. 212 = 4096, therefore
the internal ROM address bus is 12 bits wide and internal ROM locations
go from 000H to FFFH. |
| |
|
| |
|
| |
Internal RAM |
| |
|
| |
There are 256 bytes of internal RAM on the 8051. 28
= 256, therefore the internal RAM address bus is 8 bits wide and internal
RAM locations go from 00H to FFH. |
| |
|
| |
The first 128 locations (00H to 7FH) of internal RAM are
used by the programmer for storing data while the second 128 locations (80H
to FFH) are the Special Function Registers (SFRs) which we will deal with
later. |
| |
|
| |
The diagram below is a summary of the 8051 on-chip RAM. |
| |
|
| |
| 7F |
| |
| |
| |
|
General Purpose RAM
|
| |
| |
| |
| 30 |
|
| 2F |
|
| 2E |
|
| 2D |
|
| 2C |
|
| 2B |
|
| 2A |
|
| 28 |
|
| 28 |
|
| 27 |
|
| 26 |
|
| 25 |
|
| 24 |
|
| 23 |
|
| 22 |
|
| 21 |
|
| 20 |
|
|
|
|
|
|
|
|
| 07 |
|
Default Register Bank (Bank 0)
|
| 00 |
|
|
|
| |
|
|
| F0 |
|
B |
| |
|
|
| E0 |
|
ACC |
| |
|
|
| D0 |
|
PSW |
| |
|
|
| B8 |
|
IP |
| |
|
|
| B0 |
|
P3 |
| |
|
|
| A8 |
|
IE |
| |
|
|
| A0 |
|
P2 |
| |
|
|
| 99 |
|
SBUF |
| 98 |
|
SCON |
| |
|
|
| 90 |
|
P1 |
| |
|
|
| 8D |
|
TH1 |
| 8C |
|
TH0 |
| 8B |
|
TL1 |
| 8A |
|
TL0 |
| 89 |
|
TMOD |
| 88 |
|
TCON |
| 87 |
|
PCON |
| |
|
|
| 83 |
|
DPH |
| 82 |
|
DPL |
| 81 |
|
SP |
| 80 |
|
P0 |
|
|
RAM
|
|
SPECIAL FUNCTION REGISTERS
|
|
| |
|
| |
Register Banks |
| |
There are four register banks from 00H to 1FH. On power-up,
registers R0 to R7 are located at 00H to 07H. However, this can be changed
so that the register set points to any of the other three banks (if you
change to Bank 2, for example, R0 to R7 is now located at 10H to 17H). |
| |
|
| |
Bit-addressable Locations |
| |
The 8051 contains 210 bit-addressable locations of which
128 are at locations 20H to 2FH while the rest are in the SFRs. Each of
the 128 bits from 20H to 2FH have a unique number (address) attached to
them, as shown in the table above. The 8051 instruction set allows you to
set or reset any single bit in this section of RAM.
With the general purpose RAM from 30H to 7FH and the register banks from
00H to 1FH, you may only read or write a full byte (8 bits) at these locations.
However, with bit-addressable RAM (20H to 2FH) you can read or write any
single bit in this region by using the unique address for that bit. We will
later see that this is a very powerful feature. |
| |
|
| |
Special Function Registers (SFRs) |
| |
Locations 80H to FFH contain the special function registers.
As you can see from the diagram above, not all locations are used by the
8051 (eleven locations are blank). These extra locations are used by other
family members (8052, etc.) for the extra features these microcontrollers
possess. |
| |
Also note that not all SFRs are bit-addressable. Those that
are have a unique address for each bit. |
| |
We will deal with each of the SFRs as we progress through
the course, but for the moment you should take note of the accumulator (ACC)
at address E0H and the four port registers at addresses 80H for P0, 90h
for P1, A0 for P2 and B0 for P3. |
| |
We will later see how easy this makes ready from and writing
to any of the four ports. |
| |
|
| |
The Missing Registers |
| |
The two registers not shown in the table above are the instruction
register and the program counter. These two very important registers are
not placed in RAM because it is not necessary to make them directly accessible
to the programmer. The instruction register gets its data from the execution
cycle while the program counter is manipulated by the operation of these
instructions. |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
Copyright
(c) 2005-2006 NyCelt LLC
|