0% found this document useful (0 votes)
84 views13 pages

Unit-Vi Introduction To Microcontrollers

The document provides an introduction to microcontrollers. It defines a microcontroller as a single chip computer with a CPU, RAM, ROM, I/O ports, timers, and ADCs integrated onto one chip. Microcontrollers are used widely in embedded systems and electronic devices for control applications. The document then contrasts microcontrollers with microprocessors, noting that microcontrollers contain on-chip peripherals like I/O ports and timers, whereas microprocessors require external circuitry. It provides examples of popular 8-bit and 16-bit microcontrollers like the 8051 and details its architecture, memory organization, and features like timers and I/O ports.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
84 views13 pages

Unit-Vi Introduction To Microcontrollers

The document provides an introduction to microcontrollers. It defines a microcontroller as a single chip computer with a CPU, RAM, ROM, I/O ports, timers, and ADCs integrated onto one chip. Microcontrollers are used widely in embedded systems and electronic devices for control applications. The document then contrasts microcontrollers with microprocessors, noting that microcontrollers contain on-chip peripherals like I/O ports and timers, whereas microprocessors require external circuitry. It provides examples of popular 8-bit and 16-bit microcontrollers like the 8051 and details its architecture, memory organization, and features like timers and I/O ports.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

UNIT-VI

INTRODUCTION TO MICROCONTROLLERS
Introduction:
A decade back the process and control operations were totally implemented by the
Microprocessors only. But now a days the situation is totally changed and it is occupied
by the new devices called Microcontroller. The development is so drastic that we cant
find any electronic gadget without the use of a microcontroller. This microcontroller
changed the embedded system design so simple and advanced that the embedded
market has become one of the most sought after for not only entrepreneurs but for
design engineers also.
What is a Microcontroller?
A single chip computer or A CPU with all the peripherals

like RAM, ROM, I/O

Ports,

Timers, ADCs etc... On the same chip. For ex: Motorolas 6811, Intels 8051,

Zilogs

Z8 and PIC 16X etc

MICROPROCESSORS

&

MICROCONTROLLERS:

Microprocessor:
A CPU built into a single VLSI chip is called a microprocessor. It is a

general-purpose

device and additional external circuitry are added to make it a microcomputer. The
microprocessor

contains arithmetic and logic unit (ALU), Instruction decoder and

control unit, Instruction register, Program counter (PC), clock circuit (internal or
external), reset circuit (internal or external) and registers. But the microprocessor has
no on chip I/O Ports, Timers, Memory etc. For example, Intel 8085 is an 8-bit
microprocessor and Intel 8086/8088 a 16-bit microprocessor. The block diagram of the
Microprocessor is shown in Fig.1

Fig.1 Block diagram of a Microprocessor.


MICROCONTROLLER:
A microcontroller is
a highly integrated single chip, which consists of

on chip

CPU

(Central Processing Unit), RAM (Random Access Memory), EPROM/PROM/ROM (Erasable


Programmable Read Only Memory), I/O (input/output) serial and parallel, timers,

interrupt controller. For example, Intel 8051 is 8-bit microcontroller and Intel 8096 is
16-bit microcontroller. The block diagram of Microcontroller is shown in Fig.2.

Fig.2.Block Diagram of a Microcontroller


Distinguish between Microprocessor and Microcontroller
S.No

Microprocessor

Microcontroller

microprocessor

is

general

A microcontroller is a dedicated chip

purpose device which is called a

which is also called single chip computer.

CPU
2

A microprocessor do not contain


on-chip

I/O-Ports,

Timers,

Memories etc..
3

Microprocessors

are

most

commonly used as the CPU in


microcomputer systems
4
5

Microprocessor

instructions

are

Microcontroller instructions are both bit

mainly nibble or byte addressable

addressable as well as byte addressable.

Microprocessor instruction sets are

Microcontrollers

mainly intended for catering to

catering to the control of inputs and

large volumes of data.

outputs.

Microprocessor

based

system

design is complex and expensive


7

A microcontroller includes RAM, ROM,


serial and parallel interface, timers,
interrupt circuitry (in addition to CPU) in
a single chip.
Microcontrollers are used in small,
minimum component designs performing
control-oriented applications.

The

Instruction

set

have

instruction

sets

Microcontroller based system design is


rather simple and cost effective

of

The instruction set of a Microcontroller is

microprocessor is complex with

very

simple

with

less

number

of

large number of instructions.

instructions. For, ex: PIC microcontrollers


have only 35 instructions.

A microprocessor has zero status

A microcontroller has no zero flag.

flag

SALIENT

FEATURES OF 8051 MICROCONTROLLER:

The salient features of 8051

Microcontroller are

4 KB on chip program memory (ROM or EPROM)).


128 bytes on chip data memory (RAM).
8-bit data bus
16-bit address bus
32 general purpose registers each of 8 bits
Two -16 bit timers T0 and T1
Five Interrupts (3 internal and 2 external).
Four Parallel ports each of 8-bits (PORT0, PORT1, PORT2, PORT3) with a total of
32 I/O lines.
One 16-bit program counter and One 16-bit DPTR (data pointer)
One 8-bit stack pointer
One Microsecond instruction cycle with 12 MHz Crystal.
One full duplex serial communication port.

ARCHITECTURE & BLOCK DIAGRAM OF 8051 MICROCONTROLLER:


The architecture of the 8051 microcontroller can be understood from the block diagram.
It has Harward architecture with RISC (Reduced Instruction Set Computer)

concept.

The block diagram of 8051 microcontroller is shown in Fig 3. Below. It consists of an 8bit ALU, one 8-bit

PSW(Program Status Register), A and B registers , one 16-bit

Program counter , one 16-bit Data pointer register(DPTR),128 bytes of RAM and 4kB of
ROM and four parallel I/O ports each of 8-bit width.
8051 has 8-bit ALU which can perform all the 8-bit arithmetic and logical operations in
one machine cycle. The ALU is associated with two registers A & B
A and B Registers : The A and B registers are special function registers which hold the
results of many arithmetic and logical operations of 8051.The A register is also called the
Accumulator and

as its name suggests, is used as a general register to accumulate

the results of a large number of instructions. By default it is used for all mathematical
operations and also data transfer operations between CPU and any external memory.
The B register is mainly used for multiplication and division operations along with A
register.
MUL AB :
DIV AB.
It has no other function other than as a location where data may be stored.

The R registers: The "R" registers are a set of eight registers that are named R0, R1,
etc. up to and including R7. These registers are used as auxiliary registers in many
operations. The "R" registers are also used to temporarily store values.

Fig.3. Block Diagram of 8051 Microcontroller


Program Counter (PC): 8051 has a 16-bit program counter .The program counter
always points to the address of the next instruction to be executed. After execution of
one instruction the program counter is incremented to point to the address of the next
instruction to be executed. It is the contents of the PC that are placed on the address
bus to find and fetch the desired instruction. Since the PC is 16-bit width, 8051 can
access program addresses from 0000H to FFFFH, a total of 64kB of code.

Stack Pointer Register (SP): It is an 8-bit register which stores the address of the
stack top. i.e the Stack Pointer is used to indicate where the next value to be removed
from the stack should be taken from. When a value is pushed onto the stack, the 8051
first increments the value of SP and then stores the value at the resulting memory
location. Similarly when a value is popped off the stack, the 8051 returns the value from
the memory location indicated by SP, and then decrements the value of SP. Since the SP
is only 8-bit wide it is incremented or decremented by two. SP is modified directly by the
8051 by six instructions: PUSH, POP, ACALL, LCALL, RET, and RETI. It is also used
intrinsically whenever an interrupt is triggered.
Data Pointer Register (DPTR): It is a 16-bit register which is the only user-accessible.
DPTR, as the name suggests, is used to point to data. It is used by a number of
commands which allow the 8051 to access external memory. When the 8051 accesses
external memory it will access external memory at the address indicated by DPTR. This
DPTR can also be used as two 8-registers DPH and DPL.
Program Status Register (PSW):
The 8051 has a 8-bit PSW register which is also known as Flag register. In the 8-bit
register only 6-bits are used by 8051.The two unused bits are user definable bits. In the
6-bits four of them are conditional flags .They are Carry CY,Auxiliary Carry-AC, ParityP, and Overflow-OV .These flag bits

indicate some conditions that resulted after an

instruction was executed.

The bits PSW3 and PSW4 are denoted as RS0 and RS1 and these bits are used to select
the bank registers of the RAM location. The meaning of various bits of PSW register is
shown below.
CY
PSW.7
Carry Flag
AC
PSW.6
Auxiliary Carry Flag
FO
PSW.5
Flag 0 available for general purpose.
RS1
PSW.4
Register Bank select bit 1
RS0
PSW.3
Register bank select bit 0
OV
PSW.2
Overflow flag
--PSW.1
User definable flag
P
PSW.0
Parity flag .set/cleared by hardware.
The selection of the register Banks and their addresses are given below.

RS1

RS0

Register Bank

Address

00H-07H

08H-0FH

10H-17H

18H-1FH

MEMORY ORGANIZATION:
The 8051 microcontroller has 128 bytes of Internal RAM and 4kB of on chip ROM .The
RAM is also known as Data memory and the ROM is known as program memory. The
program memory is also known as Code memory .This Code memory
8051 program that is to be executed.
memory may be found on-chip,

holds the actual

In 8051 this memory is limited to 64K .Code

as ROM or EPROM. It may also be stored completely

off-chip in an external ROM or, more commonly, an external EPROM. The 8051 has only
128 bytes of Internal RAM but it supports 64kB of external RAM. As the name suggests,
external RAM is any random access memory which is

off-chip. Since the memory is off-

chip it is not as flexible in terms of accessing, and is also slower. For example, to
increment an Internal RAM location by 1, it requires only 1 instruction and 1 instruction
cycle but to increment a 1-byte value stored in External RAM requires 4 instructions and
7 instruction cycles. So, here the

external memory is 7 times slower.

Internal RAM OF 8051:


This Internal RAM is found on-chip on the 8051 .So it is the fastest RAM available, and it
is also the most flexible in terms of reading, writing, and modifying its contents. Internal
RAM is volatile, so when the 8051 is reset this memory is cleared. The 128 bytes of
internal RAM is organized as below.
(i)

Four register banks (Bank0, Bank1, Bank2 and Bank3) each of 8-bits (total 32

bytes). The default

bank

register

is Bank0. The remaining Banks are selected with

the help of RS0 and RS1 bits of PSW Register.


(ii) 16 bytes of bit addressable area

and

(iii) 80 bytes of general purpose area (Scratch pad memory) as shown in the diagram
below. This area is also utilized by the microcontroller as a storage area for the operating
stack.

The 32 bytes of RAM from address 00 H to 1FH are used as working registers organized
as four banks of eight registers each. The registers are named as R0-R7 .Each register
can be addressed by its name or by its RAM address.
For

EX:

MOV A, R7

or

MOV R7, #05H

Internal ROM (On chip ROM):


The 8051 microcontroller has 4kB of on chip ROM but it can be extended up to 64kB.This
ROM is also called program memory or code memory. The CODE segment is accessed
using the program counter (PC) for opcode fetches and by DPTR for data. The external
ROM is accessed when the EA(active low) pin is connected to ground or the contents of
program counter exceeds 0FFFH.When the Internal ROM address is exceeded the 8051
automatically fetches the code bytes from the external program memory.

STACK in 8051 Microcontroller:


The stack is a part of RAM used by the CPU to store information temporarily. This
information may be either data or an address .The CPU needs this storage area as there

are only limited number of registers. The register used to access the stack is called the
Stack pointer which is an 8-bit register. So, it can take values of 00 to FF When the 8051
is powered up ,the SP register contains the value 07.i.e the RAM location value 08 is the
first location being used for the stack by the 8051 controller
There are two important instructions to handle this stack. One is the PUSH and
the other is the POP. The loading of data from CPU registers to the stack is done by
PUSH and the loading of the contents of the stack back into a CPU register is done by
POP.
EX:

MOV R6, #35 H


MOV R1, #21 H
PUSH 6
PUSH 1

In the above instructions the contents of the Registers R6 and R1 are moved to stack
and they occupy the 08 and 09 locations of the stack. Now the contents of the SP are
incremented by two and it is 0A.
Similarly POP 3 instruction pops the contents of stack into R3 register. Now the contents
of the SP is decremented by 1
In 8051 the RAM locations 08 to 1F (24 bytes) can be used

for the Stack.In any

program if we need more than 24 bytes of stack ,we can change the SP point to RAM
locations 30-7F. This can be done with the instruction MOV SP, # XX.
PIN Diagram of 8051 Microcontroller:
The 8051 microcontroller is available as a 40 pin DIP chip and it works at +5 volts DC.
Among the 40 pins, a total of 32 pins are allotted for the four parallel ports P0, P1, P2
and P3 i.e. each port occupies 8-pins .The remaining pins are VCC, GND, XTAL1, XTAL2,
RST, EA ,PSEN.

XTAL1, XTAL2: These two pins are connected to Quartz crystal oscillator which runs the
on-chip oscillator. The quartz crystal oscillator is connected to the two pins along with a
capacitor of 30pF as shown in the circuit. If we use a source other than the crystal
oscillator, it will be connected to XTAL1 and XTAL2 is left unconnected.

RST: The RESET pin is an input pin and it is an active high pin. When a high pulse is
applied to this pin the microcontroller will reset and terminate all activities. Upon reset
all the registers except PC will reset to 0000 Value and PC register will reset to 0007
value.
(External Access): This pin is an active low pin. This pin is connected to ground
when microcontroller is accessing the program code stored in the external memory and
connected to Vcc when it is accessing the program code in the on chip memory. This pin
should not be left unconnected.
(Program Store Enable): This is an output pin which is active low. When the
microcontroller is accessing the program code stored in the external ROM, this pin is
connected to the OE (Output Enable) pin of the ROM.

ALE (Address latch enable): This is an output pin, which is active high. When
connected to external memory , port 0 provides both address and data i.e address and
data are multiplexed through port 0 .This ALE pin will demultiplex the address and data
bus .When the pin is High , the AD bus will act as address bus otherwise the AD bus will
act as Data bus.
P0.0- P0.7(AD0-AD7) : The port 0 pins multiplexed with Address/data pins .If the
microcontroller is accessing external memory these pins will act as address/data pins
otherwise they are used for Port 0 pins.
P2.0- P2.7(A8-A15) : The port2 pins are multiplexed with the higher order address
pins .When the microcontroller is accessing external memory these pins provide the
higher order address byte otherwise they act as Port 2 pins.
P1.0- P1.7: These 8-pins are dedicated for Port1 to perform input or output port
operations.
P3.0- P3.7 :These 8-pins are meant for Port3 operations and also for some control
operations like Read,Write,Timer0,Timer1 ,INT0,INT1 ,RxD and TxD
Pin

10: RXD Serial

asynchronous

communication

input

or

Serial

synchronous

output

or

Serial

synchronous

The 8051 microcontroller has four parallel I/O ports, each of 8-bits .So, it

provides the

communication output.
Pin

11: TXD Serial

asynchronous

communication

communication clock output.


Pin 12: INT0 Interrupt 0 input.
Pin 13: INT1 Interrupt 1 input.
Pin 14: T0 Counter 0 clock input.
Pin 15: T1 Counter 1 clock input.
Pin 16: WR Write to external (additional) RAM.
Pin 17: RD Read from external RAM.

PARALLEL I /O PORTS

user 32 I/O lines for connecting the microcontroller to the peripherals. The four ports are
P0 (Port 0), P1 (Port1), P2 (Port 2) and P3 (Port3). Upon reset all the ports are output
ports. In order to make them input, all the ports must be set i.e. a high bit must be sent
to all the port pins. This is normally done by the instruction SETB.
Ex: MOV A, #0FFH
MOV P0, A

; A = FF
; make P0 an input port

PORT 0:
Port 0 is an 8-bit I/O port with dual purpose. If external memory is used, these port pins
are used for the lower address byte address/data (AD 0-AD7), otherwise all bits of the
port are either input or output.
Dual role of port 0:

10

Port 0 can also be used as address/data bus (AD0-AD7), allowing it to be used for both
address and data. When connecting the 8051 to an external memory, port 0 provides
both address and data. The 8051 multiplexes address and data through port 0 to save
the pins. ALE indicates whether P0 has address or data. When ALE = 0, it provides data
D0-D7, and when ALE =1 it provides address and data with the help of a 74LS373 latch.
Port 1:
Port 1 occupies a total of 8 pins (pins 1 through 8). It has no dual application and acts
only as input or output port. Upon reset, Port 1 is configured as an output port. To
configure it as an input port, port bits must be set i.e. a high bit must be sent to all the
port pins. This is normally done by the instruction SETB.
For Ex:
MOV A, #0FFH
MOV P1, A ;

; A=FF HEX
make P1 an input port by writing 1s to all of its pins

Port 2:
Port 2 is also an eight bit parallel port. (Pins 21- 28). It can be used as input or output
port.

Upon reset, Port 2 is configured as an output port. If the port is to be used as

input port, all the port bits must be made high by sending FF to the port. For ex,
MOV A, #0FFH
MOV P2, A

; A=FF hex
; make P2 an input port by writing all 1s to it

Dual role of port 2:


Port 2 lines are also associated with the higher order address lines A8-A15. In systems
based on the 8751, 8951, and DS5000, Port2 is used as simple I/O port. But, in 8031based systems, port 2 is used along with P0 to provide the 16-bit address for the
external memory. Since an 8031 is capable of accessing 64K bytes of external memory,
it needs a path for the 16 bits of the address. While P0 provides the lower 8 bits via A0A7, it is the job of P2 to provide bits A8-A15 of the address. In other words, when 8031
is connected to external memory, Port 2 is used for the upper 8 bits of the 16 bit
address, and it cannot be used for I/O operations.
PORT 3:
Port3 is also an 8-bit parallel port with dual function. (Pins 10 to 17). The port pins can
be used for I/O operations

as well as for control operations. The details of these

additional operations are given below in the table. Upon reset port 3 is configured as an
output port. If the port is to be used as input port, all the port bits must be made high
by sending FF to the port.
For Ex:
MOV A, #0FFH
MOV P3, A

; A= FF hex
; make P3 an input port by writing all 1s to it

Alternate Functions of Port 3:

11

P3.0 and P3.1 are used for the RxD (Receive Data) and TxD (Transmit Data) serial
communications signals. Bits P3.2 and P3.3 are meant for external interrupts. Bits P3.4
and P3.5 are used for Timers 0 and 1 and P3.6 and P3.7 are used to provide the write
and read signals of external memories connected in 8031 based systems

S.No
1

Port 3 bit
P3.0

Pin No
10

Function
RxD

P3.1

11

P3.2

12

P3.3

13

P3.4

14

T0

P3.5

15

T1

P3.6

16

P3.7

17

TxD

Table: PORT 3 alternate functions


ADDRESSING MODES OF 8051:
The way in which the data operands are accessed by different instructions is known as
the addressing modes. There are various methods of denoting the data operands in the
instruction. The 8051 microcontroller supports mainly 5 addressing modes. They are
1.
2.
3.
4.
5.

Immediate addressing mode


Direct Addressing mode
Register addressing mode
Register indirect addressing mode
Indexed addressing mode

1. Immediate addressing mode:


The addressing mode in which the data operand is a constant and it is a part of the
instruction itself is known as immediate addressing mode. Normally the data must be
preceded by a # sign. This addressing mode can be used to transfer the data into any of
the registers including DPTR.
Ex:

MOV A, # 27 H : The data (constant) 27 is moved to the accumulator register


ADD R1, #45 H: Add the constant 45 to the contents of the accumulator
MOV DPTR, # 8245H: Move the data 8245 into the data pointer register.
MOV P1, #21 H

2. Direct addressing mode:


The addressing mode in which the data operand is in the RAM location (00 -7FH) and the
address of the data operand is given in the instruction is known as Direct addressing

12

mode. The direct addressing mode uses the lower 128 bytes of Internal RAM and the
SFRs.
Ex:

MOV R1, 42H

: Move the contents of RAM location 42 into R1 register

MOV 49H, A: Move the contents of the accumulator into the RAM location 49.

ADD A, 56H: Add the contents of the RAM location 56 to the accumulator

3. Register addressing mode:


The addressing mode in which the data operand to be manipulated lies in one of the
registers is known as register addressing mode.
Ex:

MOV A, R0: Move the contents of the register R0 to the accumulator

ADD A, R6: Add the contents of R6 register to the accumulator

MOV P1, R2:

MOV R5, R2: This is invalid .The data transfer between the registers is not

Move the contents of the R2 register into port 1

allowed.
4. Register indirect addressing mode:
The addressing mode in which a register is used as a pointer to the data memory block
is known as Register indirect addressing mode.
Ex:

MOV A, @ R0: Move the contents of RAM location whose address is in R0 into A
(accumulator)

MOV @ R1, B: Move the contents of B into RAM location whose address is held by
R1When R0 and R1 are used as pointers, they must be preceded by @ sign

One of the advantages of register indirect addressing mode is that it makes


accessing the data more dynamic than static as in the case of direct addressing
mode.
5. Indexed addressing mode:
This addressing mode is used in accessing the data elements of lookup table entries
located in program ROM space of 8051.
Ex:

MOVC A, @ A+DPTR

The 16-bit register DPTR and register A are used to form the address of the data
element stored in on-chip ROM. Here C denotes code .In this instruction the contents of
A are added to the 16-bit DPTR register to form the 16-bit address of the data operand.

13

You might also like