| |
 |
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 James Rogers
|