31-01-2013, 10:23 AM
TUTORIAL
TUTORIAL.pdf (Size: 524.36 KB / Downloads: 401)
INTRODUCTION
Figure 1.1 shows a functional block of the internal operation of an 8051
microcomputer. The internal components of the chip are shown within the broken line
box.
Figure 1.2 shows the external code memory and data memory connected to the 8051
chip.
Note – part of the external code memory can be located within the chip but we will
ignore this feature for now. Also, variants of the chip will allow a lot more memory
devices and I/O devices to be accommodate within the chip but such enhanced
features will not be considered right now.
A quick comparison with the well known Pentium processor
A modern PC is powered by a Pentium processor (or equivalent), which is really a
very powerful microprocessor. Where the 8051 microcontroller represents the low
end of the market in terms of processing power, the Pentium processor is one of the
most complex processors in the world. Figure 1.3 shows a simplified block diagram
of the Pentium processor and a simple comparison between the 8051 and the Pentium
is given in the table below.
MEMORY AND REGISTER ORGANISATION
The 8051 has a separate memory space for code (programs) and data. We will refer
here to on-chip memory and external memory as shown in figure 1.5. In an actual
implementation the external memory may, in fact, be contained within the
microcomputer chip. However, we will use the definitions of internal and external
memory to be consistent with 8051 instructions which operate on memory. Note, the
separation of the code and data memory in the 8051 architecture is a little unusual.
The separated memory architecture is referred to as Harvard architecture whereas
Von Neumann architecture defines a system where code and data can share common
memory.
Bit Addressable RAM: 20h to 2Fh
The 8051 supports a special feature which allows access to bit variables. This is
where individual memory bits in Internal RAM can be set or cleared. In all there are
128 bits numbered 00h to 7Fh. Being bit variables any one variable can have a value 0
or 1. A bit variable can be set with a command such as SETB and cleared with a
command such as CLR.
General Purpose RAM: 30h to 7Fh
These 80 bytes of Internal RAM memory are available for general-purpose data
storage. Access to this area of memory is fast compared to access to the main memory
and special instructions with single byte operands are used. However, these 80 bytes
are used by the system stack and in practice little space is left for general storage. The
general purpose RAM can be accessed using direct or indirect addressing modes.
Program Counter
The PC (Program Counter) is a 2 byte (16 bit) register which always contains the
memory address of the next instruction to be executed. When the 8051 is reset the PC
is always initialised to 0000h. If a 2 byte instruction is executed the PC is incremented
by 2 and if a 3 byte instruction is executed the PC is incremented by three so as to
correctly point to the next instruction to be executed. A jump instruction (e.g. LJMP)
has the effect of causing the program to branch to a newly specified location, so the
jump instruction causes the PC contents to change to the new address value. Jump
instructions cause the program to flow in a non-sequential fashion, as will be
described later.