Microcontroller 8051

Download as pdf or txt
Download as pdf or txt
You are on page 1of 145

MICROCONTROLLER & COMPUTER ORGANIZATION

Course Code BUE304 (Credits 03)

50 MARKS CIE 50 MARKS SEE

25 MARKS CIE 25 CCA

3 ASSIGGNMENT (15 2 SURPRISE TEST (10


Marks) Marks)
1
SEPARATE NOTE BOOK. SEPARATE
ASSIGNMENT BOOK.

2
Module-1

Microprocessors and Microcontrollers:

Introduction, Microprocessors and Microcontrollers, The Z80 and the 8051,


Four-Bit to Thirty-two-bit Microcontroller, Development studies for Microcontroller

The 8051 Architecture: Introduction, 8051 Microcontroller Hardware,


Input/Output Pins, Ports, and Circuits, External Memory, Counter and Timers, Serial
Data Input/Output.

3
MICROCONTROLLER-8051

4
Why do we need to learn Microcontrollers ?

• Its not an exaggeration if I say that, today there is


no electronic gadget on the earth which is
designed without a Microcontroller.

• Ex: communication devices, digital entertainment,


portable devices etc…

Not believable ??? See the next slide

5
Personal information Laptop components: Home appliances: door Industrial equipment:
products: Cell phone, mouse, keyboard, modem, lock, alarm clock, Temperature/pressure
pager, watch, pocket fax card, sound card, thermostat, air controllers, Counters,
recorder, calculator battery charger conditioner, TV remote, timers, RPM Controllers
VCR, small refrigerator,
exercise equipment,
washer/dryer, microwave
oven

Toys: video games, cars,


dolls, etc.

6
So, A good designer
should always know
architecture, advantages ,
what type of controller
he/she is using ,their

ways to reduce
disadvantages , product reliability etc.
production costs and

O.K ????

7
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 can’t 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.

8
Then What is a Microcontroller ?
• A smaller computer
• On-chip RAM, ROM, I/O ports, timers etc
• Example:Motorola’s 6811, Intel’s 8051, Zilog’s
Z8 and PIC 16X

CPU RAM ROM


A single chip
Serial
I/O Timer COM Microcontroller
Port
Port

9
How is it different from a Microprocessor ??
• General-purpose microprocessor

CPU for Computers


No RAM, ROM, I/O on CPU chip itself
Example:Intel’s x86, Motorola’s 680x0

Data Bus
CPU
General-Pur
pose Serial
RAM ROM I/O Timer
Micro-proc COM
Port
essor Port

Address Bus

10
Microprocessor
MP is General Purpose digital CPU Know as computer on chip.
Block Diagram of MP

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.
11
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.

12
Microprocessor vs. Microcontroller
Microprocessor Microcontroller
■ CPU is stand-alone, • CPU, RAM, ROM, I/O
RAM, ROM, I/O, timer and timer are all on a
are separate single chip
■ Designer can decide on • fix amount of on-chip
the amount of ROM, ROM, RAM, I/O ports
RAM and I/O ports.
■ expansive • for applications in
■ Versatility (Ability to which cost, power and
apodpt) space are critical
■ general-purpose • single-purpose
13
S. Microprocessor Microcontroller
N
o
1 A microprocessor is a general purpose A microcontroller is a dedicated chip which is also
device which is called a CPU called single chip computer.

2 A microprocessor do not contain onchip A microcontroller includes RAM, ROM, serial and
I/OPorts, Timers, Memories etc.. parallel interface, timers, interrupt

circuitry (in addition to CPU) in a single chip.

3 Microprocessors are most commonly used as Microcontrollers are used in small, minimum
the CPU in microcomputer systems component designs performing control-oriented
applications.
4 Microprocessor instructions are mainly Microcontroller instructions are both bit addressable
byte addressable as well as byte addressable.
5 Microprocessor instruction sets are mainly Microcontrollers have instruction sets catering to the
intended for catering to large volumes of control of inputs and outputs.
data.
6 Microprocessor based system design is Microcontroller based system design is rather simple
complex and expensive and cost effective
7 The Instruction set of microprocessor is The instruction set of a Microcontroller is very
complex with large number of instructions. simple with less number of instructions. For, ex: PIC
14
microcontrollers have only 35 instructions.
EVOLUTION
Flashback !!!!
In the year 1976, Motorola created a Microprocessor chip
called 6801 which replaced its brother 6800 with certain
add-on chips to make a computer. This paved the way for
the new revolution in the history of chip design and gave
birth to a new entity called
MICROCONTROLLER.
The INTEL bagged the credit of producing the first
Microcontroller 8048 with a CPU and 1K bytes of
EPROM, 64 Bytes of RAM an 8-Bit Timer and 27 I/O
pins in 1976.
15
contd
• Then followed the most popular controller 8051 in
the year 1980 with 4K bytes of ROM,128 Bytes of
RAM , a serial port, two 16-bit Timers , and 32 I/O
pins.
• The 8051 family has many additions and
improvements over the years and remains a most
soughtafter tool for todays circuit designers.
• The same INTEL introduced a 16 bit controller
8096 in the year 1982

16
• Later INTEL introduced 80c196 series of
16-bit microcontrollers for mainly industrial
applications

• Microchip, another company has introduced a


microcontroller PIC 16C64 an 8-bit in the year
1985.

• 32-bit microcontrollers have been developed by IBM


and Motorola-MPC 505 is a 32-bit RISC controller of
Motorola
• The 403 GA is a 32 -bit RISC embedded controller of
IBM

17
EVOLUTION OF MICROCONTROLLERS
• The first microcontroller TMS1000 was introduced by Texas Instrumentsin the
year 1974.
• In the year 1976, Motorola designed a Microprocessor chip called 6801 This
paved the way for the new revolution in the history of chip design and gave
birth to a new entity called “Microcontroller”.
• Later the Intel company produced its first Microcontroller 8048 with a CPU and
1K bytes of EPROM, 64 Bytes of RAM an 8-Bit Timer and 27 I/O pins in 1976.
• Then followed the most popular controller 8051 in the year 1980 with 4K bytes
of ROM,128 Bytes of RAM , a serial port, two 16-bit Timers , and 32 I/O pins.
• INTEL introduced a 16 bit microcontroller 8096 in the year 1982 .
• Later INTEL introduced 80c196 series of 16-bit Microcontrollers for mainly
industrial applications.
• Microchip, another company has introduced an 8-bit Microcontroller PIC 16C64
in the year 1985.
• The 32-bit microcontrollers have been developed by IBM and Motorola. MPC
505 is a 32-bit RISC controller of Motorola. The 403 GA is a 32 -bit RISC
embedded controller of IBM.
• In recent times ARM company (Advanced RISC machines) has developed and
introduced 32 bit controllers for high-end application devices like mobiles ,
Ipods etc...
18
Types of Microcontrollers

19
4-bit Microcontrollers:

THESE 4-BIT WHICH ARE WIDELY THE POPULAR 4-BIT WHICH IS A 20 PIN DIP
MICROCONTROLLERS USED FOR LOW END CONTROLLERS ARE CHIP WITH 4KB OF
ARE SMALL SIZE, APPLICATIONS LIKE RENASA M34501 ROM,256 BYTES OF RAM,
MINIMUM PIN COUNT LED & LCD DISPLAY 2-COUNTERS AND 14
AND LOW COST DRIVERS ,PORTABLE I/O PINS.
CONTROLLERS. BATTERY CHARGERS
ETC..

FEATURES: A/D AND


WDT

20
• These are the most popular and widely used
microcontrollers

• About 55% of all CPUs sold in the world are 8-bit


microcontrollers only.

• The 8-bit microcontroller has 8-bit internal bus and the ALU
performs all the arithmetic and logical operations on a byte
8-bit instruction.

Microcontrollers • The well known 8-bit microcontroller is 8051 which was


: designed by Intel in the year 1980 for the use in embedded
systems.

• Other 8-bit microcontrollers are Intel 8031/8052 and


Motorola MC68HC11 and AVR Microcontrollers, Microchip’s
PIC Microcontrollers 12C5XX ,16C5X and 16C505 etc...

• Features: UART

21
• The internal bus width of 16-bit microcontroller is
of 16-bit

• These microcontrollers are having increased


memory size and speed of operation when
compared to 8-bit microcontrollers.

• These are most suitable for programming in High


level languages like C or C++ .They find
16-bit applications in disk drivers, modems ,printers,
Microcontrollers scanners and servomotor control.
:
• Examples of 16-bit microcontrollers are Intel 8096
family and Motorola MC68HC12 and MC68332
families, The performance and computing
capability of 16 bit microcontrollers are enhanced
with greater precision as compared to the 8-bit
microcontrollers.

• Feature: Counter Array, UART,A/D,WDT

22
• These microcontrollers used in
high end applications like
Automative control,
Communication networks,
Robotics,Cell phones ,GPRS &
PDAs etc..
32-Bit
Microcontrollers
: • EX:PIC32,ARM 7,ARM9
,SHARP LH79520 ,ATMEL 32
(AVR) ,Texas Instrument’s –.
TMS320F2802x/2803x etc..are
some of the popular 32-bit
microcontrollers.

23
INTEL MCS 51 Family
Microcontrol On chip On chip Timers/Count Interrupts Serial ports
ler RAM program ers
(Bytes) memory
8031 128 None 2 5 1

8032 256 None 3 6 1

8051 128 4K ROM 2 5 1

8052 256 8K ROM 3 6 1

8751 128 4K EPROM 2 5 1

8752 256 8K EPROM 3 6 1

24
Development system for Microcontrollers
• An assembly language program consists of
Mnemonics (which are nothing but short
abbreviated English instructions given to the
controller.)

• The various development tools required for


Microcontroller programming are explained
below.

25
• 1. Editor : An Editor is a program which allows us to create a file
containing the assembly language statements for the program.
Examples of some editors are PC write Wordstar. After typing all
the program we have to save the program . This we call it as source
file. The next step is to process the source file with an assembler.
Ex: Sample.asm

• 2.Assembler : An Assembler is used to translate the assembly


language mnemonics into machine language( i.e binary codes).

(When you run the assembler it reads the source file of your program
from where you have saved it. The assembler generates a file with the
extension .hex. This file consists of hexadecimal values encoding a
sequence of data and their starting offset or absolute address. )

26
• 3.Compiler : A compiler is a program which converts the high level
language program like “C” into binary or machine code.
Compilers like Keil ,Ride and IAR workbench are very popular.

• 3. Debugger/Simulator : A debugger is a program which allows


execute the program, and troubleshoot or debug it. The debugger
allows to look into the contents of registers and memory locations
after the program runs.

• Some debuggers allows to stop the program after each instruction


so that you can check or alter memory and register contents. This
is called single step debug.

27
Memory Org for 8051
8051 MC support Harvard Architecture

Data Memory: 128 B (RAM)

Program Memory: 4 KB (ROM)

It can support externally 64KB both data and program Memory

28
The Register 32 byte
Bank 00H TO 1FH

Internal
Memory BIT/BYTE 16 byte

(Data Addressable
area 20 H TO 2FH

Memory
128B)
General 80 byte
Memory 30H TO 7FH

29
30
Register’s Bank
Internal Address

4 Register and General purpose register 8051 (Total is 32 register)

Identification possible only from internal address

Register names are same but banks are different

We can’t access all 4 bank’s at a time

To access these Bank Special function register called PSW : RSO and RS1.

General Purpose Means:


• Hold DATA
• Hold Memory Location
• Result

31
Starts Bit address 00 to 7Fh

Starts byte address is 20 to 2FH

Bit/Byte
Addressable Example: 20h Memory location : you can get
8bit memory
Memory
(16B) Like this 16X8=128 bits

Why This – 8051 supports not only byte


address operation, it’s also supports bit also.

32
General User/Designer can store
data depends on
Purpose requirement of application.

33
34
35
Program Memory
8051 has 4KB of internal RAM

Starting address 000h to FFFh location

This is used to store the system files and constant


files which are required to proper function of the
8051
36
INTEL 8051 MICRCONTROLLER

The 8051 microcontroller is a very popular 8-bit


microcontroller introduced by Intel in the year 1981 and it
has become almost the academic standard now a days.

The 8051 is based on an 8-bit with Harvard architecture.

It is available as a 40-pin DIP chip and works at +5 Volts


DC.

37
SALIENT FEATURES
The salient features of 8051 Microcontroller are

Eight Bit CPU with registers A and B

16 bit program counter (PC) and Data pointer (DPTR)

8 Bit Program status word (PSW)

8 Bit stack pointer (SP)

Internal ROM

Internal RAM of 128 Bytes

38
32 I/O pins arranges as four 8 bits ports P0-P3

Two 16 bits times/counter T0-T1

Full duplex serial data receiver/transmitter(SBUF)

Two external and three internal interrupt sources

Oscillator and clock ckts

Controller register:
TCON(Timer Control Register),
TMOD (Timer Mode Register),
SCON(Serial control),
PCON(Power Control register),
IP(interrupt priority register),
IE(Interrupt Enable)) 39
ARCHITECTURE & BLOCK DIAGRAM OF 8051 MICROCONTROLLER:

8051 has 8-bit ALU which can perform all the


8-bit arithmetic and logical operations in one
machine cycle.

40
ALU AND A AND B REGISTER:
ALU 8bit

Perform ALU Max 8bit

ALU performed Through A and B

A called Primary Acc

Results stored in “A”


b/c in ALU operation one operand
will be A

B called secondary Acc

MUL and DIV are performed


through A and B

A and B are General Purpose Reg

A= OEOH

B=OFOH 41
PC AND DPTR
PC: It was 16 bit register

It will hold what next instruction to be


executed from program memory

In entire of 8051 only PC does not


contain any memory location address.

DPTR: DATA POINTER REGISTER

This register hold the address of data


where we want to access from RAM or
ROM.

Data address provided by DPTR


DPH
DPL

PC & DPTR: Both are address register


Both procure 16 bit address bus
42
PSW
This is register hold
all mathematical flag and
conditional flag.

PSW get information from ALU

After performing ALU operation results


are stored in A & B register and
Conditional values stored in PSW like
Carry flag
Over Flow flag
Aux Flag

43
ALU and A and B Register
ALU Max can process operation 8 bits at a time

Your ALU can do different arithmetic max 8 bits

These ALU performed through A an B Register

A is called primary Accumulator

After performing ALU operation results are stored in A register because


in ALU opation one operand will be ‘A”
B also called as Accumulator but it’s secondary accumulator

8051 MUL and DIV are performed through A and B register Only.

44
A and B register has called General
purpose register

Each register has own internal


memory location A=0E0h and
B=0F0h.

45
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 it’s 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.

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

• 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.
• Program Instruction bytes are fetched from location in memory that
are addressed by PC.
• 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 6kB of code.
47
• 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.

48
49
50
51
52
SFR and RAM = 256B

RAM= 128B

SFR=128 B

53
Special Function Register (SFR)
Register FUNCTION
Name
A Primary Accumulator * 0E0H
B Secondary Accumulator * 0FOH
DPL Data pointer lower Byte 82H
DPH Data pointer Higher Byte 83H
SP Stack pointer 81H
TCON Timer control register * 88H
TMOD Timer Mode section 89H
register
SCON Serial control register * 98H
SBUF Serial Buffer Register 99H

54
Register Name FUNCTION

PCON Power control register 87H

IE Interrupt enable register * 0A8H

IP Interrupt priority register* 0B8H

PORT 0 Input/output port 0* 80H

PORT 1 Input/output port 1* 90H

PORT 2 Input/output port 2* 0AOH

PORT 3 Input/output port 3* 0BOH

PSW Program Status word* 0DOH

TL0 Timer 0 lower byte 8AH

TH0 Timer 1 Higherbyte 8CH

TL1 Timer 1 lower byte 8BH

TH1 Timer 1 Higher byte 8DH 55


Ports: 8051 has 4 I/O ports
• Each port connecting I/O
Devices

• These I/O ports are


multifunction

56
57
58
59
60
61
62
63
64
ARM Controllers
• In recent times ARM company (Advanced
Risc machines) has developed and introduced
32 bit controllers which are highend
application devices,especially communication
devices like mobiles , ipods etc..(Refer
www.arm.com)

65
Microcontrollers from different manufacturers
•Atmel •Motorola
•ARM •8-bit
•Intel •68HC05
•8-bit •68HC08
•8XC42 •68HC11
•MCS48 •16-bit
•MCS51 •68HC12
•8xC251 •68HC16
•16-bit •32-bit
•MCS96 •683xx
•MXS296 •Texas Instruments
•National Semiconductor •TMS370
•COP8 •MSP430
•Microchip •Zilog
•12-bit instruction PIC •Z8
•14-bit instruction PIC •Z86E02
•PIC16F84
•16-bit instruction PIC
•NEC 66
MCS-51 “Family” of Microcontollers
Feature 8031 8051 8052 8751
ROM NO 4kB 8kB 4kB UV Eprom

RAM (Bytes) 128 128 256 128

TIMERS 2 2 3 2

I/O PINS 32 32 32 32

SERIAL PORTS 1 1 1 1

INTERRUPT 6 6 8 6
SOURCES
67
Microcontroller Architectures
Memory
0
Address Bus
Program +
CPU Data Bus Data Von Neumann
2n
Architecture
Memory
0
Address Bus
Program
CPU Fetch Bus Harvard
Address Bus 0
Architecture
Data Bus Data

68
Important Features of 8051

• 4K bytes ROM
• 128 bytes RAM
• Four 8-bit I/O ports
• Two 16-bit timers
• Serial interface
• 64K external code memory space
• 64K data memory space

69
“Original” 8051 Microcontroller
Oscillator 4096 Bytes 128 Bytes Two 16 Bit
and timing Program Memory Data Memory Timer/Event
(ROM) (RAM) Counters

8051 Internal data bus


CPU

64 K Byte Bus Programmable Programmable


Expansion I/O Serial Port Full
Control Duplex UART
Synchronous Shifter
subsystem interrupts

External interrupts Control Parallel ports Serial Output


Address Data Bus Serial Input
I/O pins
70
Pin Description of the 8051
• The 8051 is a 40 pin
device, but out of
these 40 pins, 32 are
used for I/O.

• 24 of these are dual


purpose, i.e. they can
operate as I/O or a
control line or as part
of address or date
bus.

71
8051 CPU Registers

A (8-bit Accumulator)
B (8-bit register for Mul &Div)
PSW (8-bit Program Status Word)
SP (8-bit Stack Pointer)
PC (16-bit Program Counter)
DPTR (16-bit Data Pointer)

72
Special Function Registers
DATA registers

CONTROL registers

•Timers

•Serial ports

•Interrupt system

•Analog to Digital converter Addresses 80h – FFh


•Digital to Analog converter
etc.. Direct Addressing is used to
access SFRs
73
List of Registers
(*Denotes the SFRs)

74
Contd…

75
PSW REGISTER

76
Memory mapping in 8051

ROM memory map in 8051 family


4k 8k 32k
0000H 0000H 0000H

0FFFH

DS5000-32
1FFFH
8051
8752 7FFFH

from Atmel from Dallas


Corporation Semiconductor

77
RAM memory space allocation in the 8051

7FH

Scratch pad RAM

30H

2FH
Bit-Addressable RAM

20H
1FH Register Bank 3
18H
17H
Register Bank 2
10H
0FH Register Bank 1 (Stack)
08H
07H
Register Bank 0
00H

78
PORTS OF 8051
• 8051 has 4 Ports. Port 0, Port1, Port2 , Port3
■ Port 0 is a dual purpose port, it is located from
pin 32 to pin 39 (8 pins). To use this port as both
input/output ports each pin must be connected
externally to a 10 k ohm pull-up resistor.This is
because Port 0 is an open drain.
Simple ex: MOV A, #22
BACK MOV P0 ,A
ACALL DELAY
CPL A
SJMP BACK
79
Port 0 with Pull-Up Resistors

80
Ports..
• Port 1 is a dedicated I/O port from pin 1 to pin
8.Upon reset it is configured as outport. It is
generally used for interfacing to external device
thus if you need to connect to switches or LEDs,
you could make use of these 8 pins,but it doesn’t
need any pull-up resistors as it is having
internally
• Like port 0, port 2 is a dual-purpose port.(Pins 21
through 28) It can be used for general I/O or as
the high byte of the address bus for designs with
external code memory.Like P1 ,Port2 also doesn’t
require any pull-up resistors
81
Ports contd…

• Port 3 is also dual purpose but designers


generally avoid using this port unnecessarily for
I/O because the pins have alternate functions
which are related to special features of the
8051. Indiscriminate use of these pins may
interfere with the normal operation of the 8051.
• However, for a programmer, it is the same to
program P0, P1, P2 and P3.
• All the ports upon RESET are configured as
output. To use any of the ports as an input
port,it must be set(Programmed)
82
Alternate functions of P3

83
I/O Port structure
• The internal circuitry for the I/O port is shown in
the next slide
• If you want to read in from a pin, you must first
give a logic ‘1’ to the port latch to turn off the
FET otherwise the data read in will always be
logic ‘0’.
• When you write to the port you are actually
writing to the latch e.g. a logic 0 given to the
latch will be inverted and turn on the FET which
cause the port pin to be connected to Gnd (logic
0).
84
I/O Port contd…

85
Timers /Counters
• The 8051 has 2 timers/counters:
• Timer/Counter 0
• Timer/Counter 1
They can be used as
1. The Timer :Uused as a time delay generator.
– The clock source is the internal crystal frequency of the
8051.
2. An event counter.
– External input from input pin to count the number of
events on registers.
– These clock pulses cold represent the number of people
passing through an entrance, or the number of wheel
rotations, or any other event that can be converted to
pulses.
86
Timer
• Set the initial value of registers
• Start the timer and then the 8051 counts up.
• Input from internal system clock (machine cycle)
• When the registers equal to 0 and the 8051 sets a
bit to denote time out
8051

P2 P1 to
Set LCD
Timer 0 TH0

TL0

87
Counter

• Count the number of events


– Show the number of events on registers
– External input from T0 input pin (P3.4) for Counter 0
– External input from T1 input pin (P3.5) for Counter 1
– External input from Tx input pin.
– We use Tx to denote T0 or T1. 8051

TH0
P1 to
TL0
LCD
P3.4
a switch T0

88
Registers Used in Timer/Counter
• 8051 has two 16-bit Timer registers ,Timer 0 &
Timer 1.
• As 8051 has 8-bit architecture , each Timer
register is treated as two 8-bit registers namely
TH0, TL0, TH1, TL1.
• One 8-bit mode register -TMOD.
• One 8-bit control register-TCON.

89
TMOD Register
(MSB) (LSB)
GATE C/T M1 M0 GATE C/T M1 M0
Timer 1 Timer 0

❑ Both Timer 0 &Timer 1 use the same Mode register


TMOD.
• It is an-8-bit register .The lower 4-bits are meant for
Timer 0 &the uooer 4-bits are meant for Timer 1
• It is not bit addressible.
• It is used similar to any other register of 8051 . For ex:
MOV TMOD,#21H
90
Gate
• Every timer has a mean of starting and stopping.
– GATE=0
• Internal control
• The start and stop of the timer are controlled by way of
software.
• Set/clear the TR for start/stop timer.
SETB TR0
CLR TR0
– GATE=1
• External control
• The hardware way of starting and stopping the timer by
software and an external source.
• Timer/counter is enabled only while the INT pin is high
and the TR control pin is set (TR).
91
TMod contd….

C/T : Timer or counter selected cleared for timer operation


(input from internal system clock). Set for counter
operation (input from Tx input pin).
M1,M0 : Used for mode selection.Because the Timers of 8051
can be set in 4-different modes.

M1 M0 Mode Operation
0 0 0 13-bit timer mode 8-bit THx + 5-bit TLx (x= 0 or 1)

0 1 1 16-bit timer mode 8-bit THx + 8-bit TLx

1 0 2 8-bit auto reload 8-bit auto reload timer/counter;


THx holds a value which is to be reloaded into
TLx each time it overflows.

1 1 3 Split timer mode


92
TMod contd…

93
Let us understand the working of Timer Mode 1
• For this , let us consider timer 0 as an example.
• 16-bit timer (TH0 and TL0)
• TH0-TL0 is incremented continuously when TR0 is set
to 1. And the 8051 stops to increment TH0-TL0 when
TR0 is cleared.
• The timer works with the internal system clock. In
other words, the timer counts up each machine cycle.
• When the timer (TH0-TL0) reaches its maximum of
FFFFH, it rolls over to 0000, and TF0 is raised.
• Programmer should check TF0 and stop the timer 0.
94
Steps of Mode 1
1. Choose mode 1 timer 0
– MOV TMOD,#01H
2. Set the original value to TH0 and TL0.
– MOV TH0,#FFH
– MOV TL0,#FCH
3. You better to clear the TF: TF0=0.
– CLR TF0
4. Start the timer.
– SETB TR0

95
Mode 1 contd…

5. The 8051 starts to count up by incrementing the


TH0-TL0.
– TH0-TL0= FFFCH,FFFDH,FFFEH,FFFFH,0000H

TR0=1 TR0=0
Start timer TH0 TL0
Stop timer

FFFC FFFD FFFE FFFF 0000

TF = 0 TF = 0 TF = 0 TF = 0 TF = 1
TF Monitor TF until TF=1
96
Mode 1 contd…
6. When TH0-TL0 rolls over from FFFFH to 0000,
the 8051 set TF0=1.
TH0-TL0= FFFE H, FFFF H, 0000 H (Now
TF0=1)
7. Keep monitoring the timer flag (TF) to see if it is
raised.
AGAIN: JNB TF0, AGAIN
8. Clear TR0 to stop the process.
CLR TR0
9. Clear the TF flag for the next round.
CLR TF0
97
TCON Register

■Timer control register TMOD is a 8-bit


register which is bit addressable and in
which Upper nibble is for timer/counter,
lower nibble is for interrupts

98
Tcon contd…

• TR (Timer run control bit)


– TR0 for Timer/counter 0; TR1 for Timer/counter 1.
– TR is set by programmer to turn timer/counter on/off.
• TR=0 : off (stop)
• TR=1 : on (start)

• TF (timer flag, control flag)


– TF0 for timer/counter 0; TF1 for timer/counter 1.
– TF is like a carry. Originally, TF=0. When TH-TL roll over to 0000 from
FFFFH, the TF is set to 1.
• TF=0 : not reach
• TF=1: reach
• If we enable interrupt, TF=1 will trigger ISR.

99
Equivalent Instructions for the Timer Control
Register
For timer 0
SETB TR0 = SETB TCON.4
CLR TR0 = CLR TCON.4

SETB TF0 = SETB TCON.5


CLR TF0 = CLR TCON.5
For timer 1
SETB TR1 = SETB TCON.6
CLR TR1 = CLR TCON.6

SETB TF1 = SETB TCON.7


CLR Timer/Counter
TCON: TF1 = CLR TCON.7
Control Register
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
100
Simple applications using ports &Timers
• Using a port ,by a simple program you can generate a
Square wave of any duty cycle.
HERE : SETB P1.0 (Make bit of Port 0 High)
LCALL DELAY
CLR P1.0
LCALL DELAY
SJMP HERE : Keep doing it

Here same delay is used for both


High & low

101
Square-wave of 66%duty cycle.
HERE : SETB P1.0 ( Make bit of Port 0 High)
LCALL DELAY
LCALL DELAY
CLR P1.0
LCALL DELAY
SJMP HERE : Keep doing it

102
Square-wave generation using Timer
❑ Square wave of 50% duty on P1.5
❑ Timer 0 is used
; each loop is a half clock
MOV TMOD,#01 ;Timer 0,mode 1(16-bit)
HERE: MOV TL0,#0F2H ;Timer value = FFF2H
MOV TH0,#0FFH
CPL P1.5
ACALL DELAY
SJMP HERE

DELAY:
SETB TR0 ;start the timer 0
AGAIN: JNB TF0,AGAIN
CLR TR0 ;stop timer 0
CLR TF0 ;clear timer 0 flag
RET

103
8051- SERIAL COMMUNICATION

104
Basics of serial communication

105
Types of Serial communications

106
RxD and TxD pins in the 8051
• The 8051 has two pins for transferring and
receiving data by serial communication. These
two pins are part of the Port3(P3.0 &P3.1)
• These pins are TTL compatible and hence they
require a line driver to make them RS232
compatible
• Max232 chip is one such line driver in use.
• Serial communication is controlled by an 8-bit
register called SCON register,it is a bit
addressable register.
107
Interfacing to PC

108
SCON (Serial control) register

109
SM0 , SM1
• These two bits of SCON register determine the framing
of data by specifying the number of bits per character
and start bit and stop bits. There are 4 serial modes.
SM0 SM1
0 0 Serial Mode 0
0 1 Serial Mode 1, 8 bit data,
1 stop bit, 1 start bit
1 0 Serial Mode 2
1 1 Serial Mode 3

110
REN, TI, RI
• REN (Receive Enable) also referred as SCON.4.
When it is high,it allows the 8051 to receive
data on the RxD pin. So to receive and transfer
data REN must be set to 1.When REN=0,the
receiver is disabled. This is achieved as below
SETB SCON.4
& CLR SCON.4

111
contd…
• TI (Transmit interrupt) is the D1 bit of SCON register.
When 8051 finishes the transfer of 8-bit character, it
raises the TI flag to indicate that it is ready to transfer
another byte. The TI bit is raised at the beginning of
the stop bit.

• RI (Receive interrupt) is the D0 bit of the SCON


register. When the 8051 receives data serially ,via
RxD, it gets rid of the start and stop bits and places
the byte in the SBUF register.Then it raises the RI flag
bit to indicate that a byte has been received and
should be picked up before it is lost.RI is raised
halfway through the stop bit.
112
8051 Interrupts
• An interrupt is an external or internal event that
disturbs the microcontroller to inform it that a
device needs its service.
A Microcontroller can serve various devices.
• There are two ways to do that:
– interrupts &
– polling.
• The program which is associated with the interrupt is
called the interrupt service routine (ISR) or interrupt
handler.

113
Steps in executing an interrupt
• Upon receiving the interrupt signal the
Microcontroller , finish current instruction
and saves the PC on stack.
• Jumps to a fixed location in memory
depending on type of interrupt
• Starts to execute the interrupt service routine
until RETI (return from interrupt)
• Upon executing the RETI the microcontroller
returns to the place where it was interrupted.
Get pop PC from stack
114
Interrupt Sources
• Original 8051 has 6 sources of interrupts
– Reset
– Timer 0 overflow
– Timer 1 overflow
– External Interrupt 0
– External Interrupt 1
– Serial Port events (buffer full, buffer empty, etc)
• Enhanced version has 22 sources
– More timers, programmable counter array, ADC,
more external interrupts, another serial port
(UART)
115
Interrupt Vectors
• Each interrupt has a specific place in code
memory where program execution (interrupt
service routine) begins.
• External Interrupt 0: 0003h
• Timer 0 overflow: 000Bh
• External Interrupt 1: 0013h
• Timer 1 overflow: 001Bh
• Serial : 0023h
• Timer 2 overflow(8052+) 002bh
116
Interrupt Enable Register

■ Upon reset all Interrupts are disabled & do


not respond to the Microcontroller
■ These interrupts must be enabled by software
in order for the Microcontroller to respond to
them.
■ This is done by an 8-bit register called
Interrupt Enable Register (IE).

117
• EA : Global enable/disable.
• --- : Undefined.
• ET2 : Enable Timer 2 interrupt.
• ES : Enable Serial port interrupt.
• ET1 : Enable Timer 1 interrupt.
• EX1 :Enable External 1 interrupt.
• ET0 : Enable Timer 0 interrupt.
• EX0 : Enable External 0 interrupt.

118
Enabling and disabling an interrupt
❑By bit operation

❑Recommended in the middle of program


SETB EA SETB IE.7 ;Enable All
SETB ET0 SETB IE.1 ;Enable Timer0 ovrf
SETB ET1 SETB IE.3 ;Enable Timer1 ovrf
SETB EX0 SETB IE.0 ;Enable INT0
SETB EX1 SETB IE.2 ;Enable INT1
SETB IE.4
SETB ES ;Enable Serial port

❑By Mov instruction

❑Recommended in the first of program


MOV IE, #10010110B

119
Interrupt Priorities
• What if two interrupt sources interrupt at the same
time?
• The interrupt with the highest PRIORITY gets
serviced first.
• All interrupts have a power on default priority order.
1. External interrupt 0 (INT0)
2. Timer interrupt0 (TF0)
3. External interrupt 1 (INT1)
4. Timer interrupt1 (TF1)
5. Serial communication (RI+TI)
• Priority can also be set to “high” or “low” by IP reg.

120
Interrupt Priorities (IP) Register
--- --- PT2 PS PT1 PX1 PT0 PX0

IP.7: reserved
IP.6: reserved
IP.5: Timer 2 interrupt priority bit (8052 only)
IP.4: Serial port interrupt priority bit
IP.3: Timer 1 interrupt priority bit
IP.2: External interrupt 1 priority bit
IP.1: Timer 0 interrupt priority bit
IP.0: External interrupt 0 priority bit
121
Interrupt Priorities Example
--- --- PT2 PS PT1 PX1 PT0 PX0

• MOV IP , #00000100B or SETB IP.2 gives priority


order
1. Int1
2. Int0
3. Timer0
4. Timer1
5. Serial
• MOV IP , #00001100B gives priority order
1. Int1
2. Timer1
3. Int0
4. Timer0
5. Serial
122
Interrupt inside an interrupt

--- --- PT2 PS PT1 PX1 PT0 PX0

■ A high-priority interrupt can interrupt a


low-priority interrupy
■ All interrupt are latched internally
■ Low-priority interrupt wait until 8051 has
finished servicing the high-priority interrupt

123
Applications of Microcontrollers

124
Simple Interfacing Examples

125
Seven segment Interfacing

126
Traffic light controller

127
128
Closed loop control system-Temperature
control example

129
130
131
132
133
134
135
136
137
Recent Wonders

138
Recent Wonders contd ........

139
Recent Wonders contd ........

140
Books that have helped me to understand the
Microcontrollers & embedded systems

1) Barr, Michael, Programming embedded


sytems in C and C++ - OReilly Publ.
2) Raj Kamal, Embedded systems, TMG
3) Mazidi and Mazidi, The 8051 microcontroller
and embedded sytems - Pearson education.
4) Peatman,J.B. Design with microcontrollers
and microcomputers, McGraw Hil

141
5) Sewart. J.W. The 8051 Microcontroller Hardware,
Software and Interfacing – Prentice Hall
6) Ayala Kenneth, The 8051 Microntroller –
Architecture, Programming and Applications –
Delmar Publ.
7) Ajay Deshmukh, Microcontrollers – TATA McGraw
Hill
8) Rajkamal, Microcontrollers - Architecture,
Programming – Pearson Publ.
9) Myke Predko, Programming the 8051 Microcontroller –
McGraw Hill
10) Michael J. Pont, Embedded C - Addison Wesely
Publ.

142
Useful websites

143
Useful websites contd…

1. http://www.eg3.com
2. http://www.ARM.MCU.com
3. http://www.mcjournal.com
4. http://www.iar.com
5. http://http://www.embedded.com
6. http://www.powersoftsystems.com

144
Epilogue
• The woods are lovely, dark and deep,
But I have promises to keep,
And miles to go before I sleep,
And miles to go before I sleep.
---- Robert Frost

• GOOD LUCK!

145

You might also like