8051 Microcontroller Data
8051 Microcontroller Data
8051 Family
Intel fabricated the original 8051which is known as MCS-51. The other two members of the
8051 family are:
i. 8052 – This microcontroller has 256 bytes of RAM and 3 timers. In addition to the standard
features of 8051, this microcontroller has an added 128 bytes of RAM and timer. It has 8K bytes
of on chip program ROM. The programs written for projects using 8051 microcontroller can be
used to run on the projects using 8052 microcontroller as 8051 is a subset of 8052.
ii. 8031 – This microcontroller has all the features of 8051 except for it to be ROM-less. An
external ROM that can be as large as 64 K bytes should be programmed and added to this chip
for execution. The disadvantage of adding external ROM is that 2 ports (out of the 4 ports) are
used. Hence, only 2 ports are left for I/O operations which can also be added externally if
required for execution.
Comparison of 8051 family members:
8051 microcontrollers use two different kinds of memory such as UV- EPROM, Flash and NV-
RAM. Hence 8051 will not be seen in the part number even though it is the most popular
member of the 8051 family.
i. 8751 – This microcontroller is the UV-EPROM version of 8051. This chip has only 4K
bytes of UV-EPROM. It is required to have access to the PROM burner and the UV-EPROM
eraser to erase the contents inside the chip before it is programmed again. The disadvantage of
using this memory is the waiting time of around 20 minutes to erase the contents in order to
program it again. Due to this limitation, manufacturers fabricated flash and NV-RAM versions of
8051.
ii. AT89C51 from Atmel Corporation – Atmel fabricated the flash ROM version of 8051
which is popularly known as AT89C51 (‘C’ in the part number indicates CMOS). The flash
memory can erase the contents within seconds which is best for fast growth. Therefore, 8751 is
replaced by AT89C51 to eradicate the waiting time required to erase the contents and hence
expedite the development time. To build up a microcontroller based system using AT89C51, it is
essential to have ROM burner that supports flash memory. Note that in Flash memory, entire
contents must be erased to program it again. The contents are erased by the ROM burner.
Atmel is working on a newer version of AT89C51 that can be programmed using the serial COM
port of IBM PC in order to get rid of the ROM burner.
Part
ROM RAM I/O pins Timer Interrupt Vcc Packaging
Number
AT89C51 4K 128 32 2 6 5V 40
AT89C52 8K 256 32 3 8 5V 40
AT89C105
1K 64 15 1 3 3V 20
1
AT89C205
2K 128 32 3 8 3V 20
1
AT89LV51 4K 128 32 2 6 3V 40
AT89LV52 8K 128 32 3 8 3V 40
Table 1.2 – Versions of 8951 from Atmel (All ROM Flash)
There are different versions of packaging and various speed of the products mentioned in the
above table.
Note: The part number AT89C51-16PC where AT – Atmel, C - CMOS (consumes less power),
12 - Speed as 12 MHz, P – Plastic DIP packaging, C - Commercial use. AT89C51-12PC is
favourably used by students for their projects.
iii. DS5000 from Dallas Semiconductor – Dallas Semiconductor fabricated the NV-RAM version
of the 8051 which is known as DS5000. The PC serial port is utilized to load the program onto
the in-built ROM. The advantage of NV-RAM memory is the facility to erase the contents one
byte at a time.
v.
Part
RAM ROM Timers I/O pins Interrupts Vcc Packaging
Number
DS5000-8 128 8K 2 32 6 5V 40
DS5000-
128 32K 2 32 6 5V 40
32
DS5000T-
128 8K 2 32 6 5V 40
8
DS5000T-
128 32K 2 32 6 5V 40
8
Table 1.4 – Versions of 8051 from Dallas Semiconductor
Note: ‘T’ signifies the real time clock (RTC) which is different from the timer. Even though
the power is turned off, the real – time clock generates and displays the date and the time
of day.
The variety range of speed and packaging versions of DS5000 which is shown in the Table 1.5
Features of 8051
The main features of 8051 microcontroller are:
i. RAM – 128 Bytes (Data memory)
iii. Serial Port – Using UART makes it simpler to interface for serial communication.
vi. 6 Interrupt Sources
12MHz.
This microcontroller is also called as “System on a chip” because it has all the features on a
single chip. The Block Diagram of 8051 Microcontroller is as shown in Figure 1.1
from 0x00 to 0x7F are accessed directly. The bytes from 0x20 to 0x2F are bit-addressable.
Loading R0 and R1 the memory location from 0x80 to 0xFF can easily accessed.
ii. Special Function Registers (SFR) – Located from address 0x80 to 0xFF of the memory
location. The same instructions used for lower half of Internal RAM can be used to access SFR’s.
The SFR’s are bit addressable too.
iii. Program Memory – This is read only memory which is located at address 0. With the
help of 16 bit Special Function Register DPTR, this memory can also save the tables of
constants.
iv. External Data Memory – Located at address 0. The Instruction MOVX (Move External)
Microcontroler 8051
4.2.1 Introduction
It provides many functions (CPU, RAM, ROM, I/O, interrupt logic, timer, etc.) in single
package
8-bit ALU, Accumulator and Registers; hence it is an 8-bit microcontroller
8-bit data bus - It can access 8 bits of data in one operation
16-bit address bus - It can access 216 memory locations - 64 kB (65536 locations) each of
RAM and ROM
On-chip RAM - 128 bytes (data memory)
On-chip ROM - 4 kB (program memory)
Four byte bi-directional input/output port
UART (serial port)
Two 16-bit Counter/timers
Two-level interrupt priority.
There are two other members in the 8051 family of microcontrollers. They are 8052 and 8031.
8052 Microcontroller
The 8052 is another member of 8051 family. The 8052 has all the standard features of 8051 as
well as an extra 128 bytes of RAM and an extra timer. In other words, the 8052 has 256 bytes of
RAM and 3 timers. It also has 8K bytes of on-chip program ROM instead of 4K bytes.
8031 Microcontroller
Another member of 8051 family is the 8031 chip. This chip is often referred to as a ROM-less
8051 since it has 0K bytes of on-chip ROM. To use this chip external ROM is added to it. The
ROM containing the program attached to the 8031 can be as large as 64K bytes. In the process
of adding external ROM containing the program attached to the 8031, two ports are lost. This
leaves only 2 ports for I/O operations. To solve this problem, we can add external I/O to the
8031 by interfacing the 8031 with memory and I/O ports such as 8255 chip.
ROM 4K 8K 0K
TIMERS 2 3 2
I/O PINS 32 32 32
SEARIAL PORT 1 1 1
INTERRUPT SOURCES 6 8 6
micro processor CPU: ALU, PC, SP, and registers. It also added the other
(i)Vcc
Pin 40 provides supply voltage to the chip. The voltage source is +5V.
(ii)GND
The 8051 has an on-chip oscillator but requires an external clock to run it. Most often a quartz
crystal oscillator is connected to inputs XTAL1 (pin 19) and XTAL2 (pin 18).The quartz crystal
oscillator connected to XTAL1 and XTAL2 also needs two capacitors of 30pF value. One side of
each capacitor is connected to the ground. There are various speeds of 8051 family. Speed
refers to the maximum oscillator frequency connected to XTAL.
(iv)RST
Pin 9 is the RESET pin. It is an input and is active high (normally low).Upon applying a high pulse
to this pin, the microcontroller will reset and terminate all activities. This is often referred to as
a power-on reset. Activating a power-on reset will cause all values in the registers to be lost. It
will set program counter to all 0s.
In order for reset input to be effective, it must have a minimum duration of two machine cycles.
In other words, the high pulse must be high for a minimum of two machine cycles before to go
low.
(iv)EA
The 8051 family members such as 8751/52, 89C51/52 all come with on-chip ROM to store
programs. In such cases the this pin is connected to Vcc. For family members such as 8031 and
8052 in which there is no on-chip ROM, code is stored on an external ROM
and is fetched by the 8051/52.Therefore, for 8051 the EA pin must be connected to GND to
indicate that the code is stored externally. EA which stands for “external access” is pin number
31 in the DIP packages. It is an input pin and must be connected to either Vcc or GND. This pin
cannot be left unconnected.
(v)PSEN
This pin is an output pin. PSEN stands for “program store enable”. In an 8051 based system in
which an external ROM holds the program code, this pin is connected to the OE pin of the ROM.
(vi) ALE
ALE (address latch enable) is an output pin and is active high. When connecting an 8051 to
external memory, port 0 provides both address and data. In other words, the 8051 multiplexes
address and data through port 0 to save pins. The ALE pin is used for demultiplexing the
address and data by connecting to the G pin of the 74LS373 chip.
The four ports P0, P1, P2, P3 each use 8 pins, making them 8-bit ports. All the ports upon RESET
are configured as inputs, ready to be used as input ports. When the first 0 is written to a port, it
becomes an output. To reconfigure it as an input, a 1 must be sent to the port. To use any of
these ports as an input port, it must be programmed.
(vii)PORT 0
Port 0 occupies a total of 8 pins (pins32-39).It can be used for an input or output. To use the
pins of port 0 as both input and output ports, each pin must be connected externally to a 10K-
ohm pull-up resistor. Port 0 is also designated as AD0-AD7, allowing it to be used for both
address and data. When connecting an 8051 to an external memory, port 0 provides both
address and data. The 8051 multiplexes address and data through port 0 to save pins. ALE
indicates if P0 has address or data. When ALE=0,it provides data D0-D7 but when ALE=1 it has
address A0-A7.
(viii)PORT1
Port 1 occupies a total of 8 pins (pins 1 through 8).It can be used as input or output. In contrast
to port 0, this port does not need any pull-up resistors since it already has pull up resistors.
Upon reset, port1 is configured as an input port. If port 1 has been configured as an output
port, to make it an input port again, it must be programmed as such by writing 1 to all its bits.
(ix)PORT2
Port 2 occupies a total of 8 pins (pins 21 through 28).It can be used as an input or output. Just
like P1.port 2 does not need any pull up resistors since it already has pull up resistors internally.
Upon reset port 2 is configured as an input port. To make port 2 as an input, it must be
programmed as such by writing 1 to all its bits.
In many 8051 systems, P2 is used as simple I/O. But in 8051-based systems, port 2 must be used
along with P0 to provide the 16-bit address for external memory. Port 2 is also designated as
A8-A15, indicating its dual function.
(xi)PORT 3
Port 3 occupies a total of 8 pins, pins 10 through 17.It can be used as input or oputput.P3 does
not need any pull up resistors, just like P1 and P2 did not. Although port 3 is configured as an
input port upon reset, this is not the way it is most commonly used. Port 3 has the additional
function of providing some extremely important signals such as interrupts. Port 3 has an
additional function of providing some extremely important signals such as interrupts. Some of
the alternate functions of P3 are listed below:
1. Internal ROM
The 89C51 has 4K bytes of on-chip ROM. This 4K bytes ROM memory has memory addresses of
0000 to 0FFFh. Program addresses higher than 0FFFh, which exceed the internal ROM capacity,
will cause the microcontroller to automatically fetch code bytes from external memory. Code
bytes can also be fetched exclusively from an external memory, addresses 0000h to FFFFh, by
connecting the external access pin to ground. The program counter doesn’t care where the
code is: the circuit designer decides whether the code is found totally in internal ROM, totally in
external ROM or in a combination of internal and external ROM.
2. Internal RAM
The 128 bytes of RAM inside the 8051 are assigned addresses 00 to 7Fh. These 128 bytes can be
divided into three different groups as follows:
A total of 32 bytes from locations 00 to 1Fh are set aside for register banks and the
stack.
A total of 16 bytes from locations 20h to 2Fh are set aside for bit addressable read/write
memory and instructions.
A total of 80 bytes from locations 30h to 7Fh are used for read and write storage, or
what is normally called a scratch pad. These 80 locations of RAM are widely used for the
purpose of storing data and parameters by 8051 programmers.