SlideShare une entreprise Scribd logo
1  sur  144
By
Vijay Kumar K
Assistant Professor
Dept. of ECE
8051 by Vijay Kumar K5/20/2014
1
Why do we need to learn
Microprocessors/Microcontrollers?
 The microprocessor is the core of computer
systems.
 Nowadays many communication, digital
entertainment, portable devices, are controlled
by them.
 A designer should know what types of
components he needs, ways to reduce
production costs and product reliable.
8051 by Vijay Kumar K5/20/2014 2
The necessary tools for a Microprocessor/controller
1. CPU: Central Processing Unit
2. I/O: Input /Output
3. Bus: Address bus & Data bus
4. Memory: RAM & ROM
5. Timer
6. Interrupt
7. Serial Port
8. Parallel Port
8051 by Vijay Kumar K5/20/2014 3
Microprocessors
CPU for Computers
No RAM, ROM, I/O on CPU chip itself
Example: Intel's x86, Motorola’s 680x0
8051 by Vijay Kumar K5/20/2014 4
What is Microcontroller?
5/20/2014 8051 by Vijay Kumar K 5
Micro Controller
Very Small A mechanism that controls
the operation of a machine
Microcontroller
 A smaller computer
 On-chip RAM, ROM, I/O ports...
 Example: Motorola’s 6811, Intel’s 8051, Zilog’s Z8 and PIC
8051 by Vijay Kumar K5/20/2014 6
5/20/2014 8051 by Vijay Kumar K 7
8051 by Vijay Kumar K5/20/2014 8
Microprocessor vs. Microcontroller
Microprocessor
 CPU is stand-alone, RAM,
ROM, I/O, timer are separate
 Designer can decide on the
amount of ROM, RAM and I/O
ports.
 Expansive
 Versatility
 General-purpose
Microcontroller
 CPU, RAM, ROM, I/O and
timer are all on a single chip
 Fix amount of on-chip ROM,
RAM, I/O ports
 For applications in which cost,
power and space are critical
 Not Expansive
 Single-purpose
5/20/2014 8051 by Vijay Kumar K 10
Microcontrollers for Embedded Systems
 Home
Appliances, intercom, telephones, security systems, garage
door openers, answering machines, fax machines, home
computers, TVs, cable TV tuner, VCR, camcorder, remote controls,
video games, cellular phones, musical instruments, sewing
machines, lighting control, paging, camera, pinball machines, toys,
exercise equipment etc.
 Office
Telephones, computers, security systems, fax machines, microwave,
copier, laser printer, color printer, paging etc.
 Auto
Trip computer, engine control, air bag, ABS, instrumentation,
security system, transmission control, entertainment, climate
control, cellular phone, keyless entry
Choosing a Microcontroller
 8-bit microcontrollers
 Motorola’s 6811
 Intel’s 8051
 Zilog’s Z8
 Microchip’s PIC
 There are also 16-bit and 32-bit microcontrollers
made by various chip makers
Criteria for Choosing a Microcontroller
1.Meeting the computing needs of the task at hand
efficiently and cost effectively
Speed
Packaging
Power consumption
The amount of RAM and ROM on chip
The number of I/O pins and the timer on chip
How easy to upgrade to higher performance or lower
power-consumption versions
Cost per unit
2. Availability of software development tools, such as compilers,
assemblers, and debuggers
3. Wide availability and reliable sources of the microcontroller
The 8051 family has the largest number of diversified (multiple
source) suppliers
 Intel (original)
 Atmel
 Philips/Signetics
 AMD
 Infineon (formerly Siemens)
 Dallas Semiconductor/Maxim
Criteria for Choosing a Microcontroller
8051 by Vijay Kumar K5/20/2014 15
Salient Features
1. 8 bit microcontroller originally developed by Intel in 1980.
2. High-performance CMOS Technology.
3. 40 pin DIP IC
4. Address bus is of 16 bit & data bus is of 8 bit.
5. 4K bytes internal ROM (Program memory).
6. 128 bytes internal RAM (Data memory).
7. It has four 8 bit ports, total 32 I/O lines.
8. Two 16-bit timers (T0 & T1).
9. Serial interface Communication.
10. 64K external code & data memory space.
8051 by Vijay Kumar K5/20/2014 16
11. 210 bit-addressable locations.
12. Internal memory consists of on-chip ROM and on-chip data RAM.
13. 8051 implements a separate memory space for programs (code) and data.
14. Operating frequency is 24MHz-33MHz and it contains On-chip clock oscillator
15. +5V Regulated DC power supply is required to operate .
16. RAM, ROM, I/O ports, one serial port and timers are all on-chip.
17. 6-interrupts (2 are external with 2 priority levels).
18. Low-power Idle and Power-down Modes.
19. Full duplex UART.
20. 8051 has 21 special function registers (SFRs).
8051 by Vijay Kumar K5/20/2014 17
8051 Family
The 8051 is a subset of the 8052
The 8031 is a ROM-less 8051
 Add external ROM to it
 You lose two ports, and leave only 2 ports for I/O operations
5/20/2014
8051 by Vijay Kumar K 18
8051
Pin diagram:-
8051 by Vijay Kumar K
5/20/2014 19
8051 by Vijay Kumar K5/20/2014 20
XTAL2 and XTAL1 (18 and 19 pins)
The 8051 has an on-chip oscillator but requires an
external clock to run it
A quartz crystal oscillator is connected to inputs
XTAL1 (pin19) and XTAL2 (pin18)
The quartz crystal oscillator also needs two capacitors
of 30 pF value
8051 by Vijay Kumar K5/20/2014
21
8051 by Vijay Kumar K5/20/2014 22
XTAL1 and XTAL2 …..
 If you use a frequency source other than a crystal oscillator,
such as a TTL oscillator:
 It will be connected to XTAL1
 XTAL2 is left unconnected
8051 by Vijay Kumar K5/20/2014 23
XTAL1 and XTAL2 …..
 The speed of 8051 refers to the maximum oscillator
frequency connected to XTAL.
 We can observe the frequency on the XTAL2 pin using the
oscilloscope.
8051 by Vijay Kumar K5/20/2014 24
RST (Pin 9)
 RESET pin 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
8051 by Vijay Kumar K5/20/2014 25
 There is no on-chip ROM in 8031 and 8032 .
 The EA pin is connected to GND to indicate the
code is stored externally.
 PSEN & ALE are used for external ROM.
 For 8051, EA pin is connected to Vcc.
 “ ” means active low.
EA(pin 31):external access
8051 by Vijay Kumar K5/20/2014 26
EA
EA “external access’’, is an input pin and must be connected
to Vcc or GND
The 8051 family members all come with on-chip ROM to
store programs and also have an external code and data
memory.
Normally EA pin is connected to Vcc
EA pin must be connected to GND to indicate that the code or
data is stored externally.
PSEN (Pin 29)
 PSEN, “program store enable’’, is an output pin
 This pin is connected to the OE pin of the external memory.
 For External Code Memory, PSEN = 0
 For External Data Memory, PSEN = 1
 Address Latch Enable
 It is an output pin and is active high.
 8051 port 0 provides both address and data.
 The ALE pin is used for de-multiplexing the address and data by
connecting to the G pin of the 74LS373 latch.
ALE(pin 30):
I/O Port Pins
 The four 8-bit I/O ports P0, P1, P2 and P3 each
uses 8 pins.
 All the ports upon RESET are configured as
output, ready to be used as input ports by the
external device.
Port 0 Port 0 is also designated as AD0-AD7.
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
 When ALE=1, it has address A0-A7
Port 1 and Port 2
In 8051-based systems with no external
memory connection:
 Both P1 and P2 are used as simple I/O.
In 8051-based systems with external memory
connections:
 Port 2 must be used along with P0 to provide
the 16-bit address for the external memory.
 P0 provides the lower 8 bits via A0 – A7.
 P2 is used for the upper 8 bits of the 16-bit
address, designated as A8 – A15, and it cannot
be used for I/O.
Port 3
 Port 3 can be used as input or output.
 Port 3 has the additional function of
providing some extremely important
signals
Pin Description Summary
PIN TYPE NAME AND FUNCTION
Vss I Ground: 0 V reference.
Vcc I Power Supply: This is the power supply voltage for normal,
idle, and power-down operation.
P0.0 - P0.7 I/O Port 0: Port 0 is an open-drain, bi-directional I/O port. Port
0 is also the multiplexed low-order address and data bus
during accesses to external program and data memory.
P1.0 - P1.7 I/O Port 1: Port I is an 8-bit bi-directional I/O port.
P2.0 - P2.7 I/O Port 2: Port 2 is an 8-bit bidirectional I/O. Port 2 emits the
high order address byte during fetches from external
program memory and during accesses to external data
memory that use 16 bit addresses.
P3.0 - P3.7 I/O Port 3: Port 3 is an 8 bit bidirectional I/O port. Port 3 also
serves special features as explained.
Pin Description Summary
PIN TYPE NAME AND FUNCTION
RST I Reset: A high on this pin for two machine cycles while the
oscillator is running, resets the device.
ALE O Address Latch Enable: Output pulse for latching the low byte
of the address during an access to external memory.
PSEN O Program Store Enable: The read strobe to external program
memory. When executing code from the external program
memory, PSEN* is activated twice each machine cycle,
except that two PSEN* activations are skipped during each
access to external data memory.
EA/VPP I External Access Enable/Programming Supply Voltage: EA
must be externally held low to enable the device to fetch
code from external program memory locations. If EA* Is
held high, the device executes from internal program
memory. This pin also receives the programming supply
voltage Vpp during Flash programming. (applies for 89c5x
MCU's)
Detailed Block Diagram
5/20/2014 8051 by Vijay Kumar K 36
Memory Space
8051
8051 Memory Structure
External
EXT INT
128
SFR
External
Program Memory Data Memory
64K 64K
EA = 0 EA = 1
4K
60K
Internal RAM Structure
Direct &
Indirect
Addressing
Direct
Addressing
Only
SFR [ Special Function
Registers]
128 Byte Internal RAM
Special Function Registers [SFR]
5/20/2014 8051 by Vijay Kumar K 41
A Register (Accumulator)
 Multiplication and division can be performed only upon numbers stored in the
A and B registers. All other instructions in the program can use this register as
a spare accumulator (A).
 A register is a general-purpose register used for storing
intermediate results obtained during operation
B Register
5/20/2014 8051 by Vijay Kumar K
42
R Registers (R0-R7)
 They occupy 4 banks within
RAM. Similar to the
accumulator, they are used for
temporary storing variables
and intermediate results
during operation. Which one
of these banks is to be active
depends on two bits of the
PSW Register. Active bank is a
bank the registers of which
are currently used.
 This is a common name for 8 general-purpose registers (R0, R1,
R2 ...R7). Even though they are not true SFRs, they deserve to be
discussed here because of their purpose.
5/20/2014
8051 by Vijay Kumar K 43
 Suppose it is necessary to perform some arithmetical operations
upon numbers previously stored in the R registers: (R1+R2) -
(R3+R4). Obviously, a register for temporary storing results of
addition is needed. This is how it looks in the program:
MOV A,R3; move number from R3 into accumulator
ADD A,R4; add number from R4 to accumulator (result remains in accumulator)
MOV R5,A; temporarily move the result from accumulator into R5
MOV A,R1; move number from R1 to accumulator
ADD A,R2; add number from R2 to accumulator
SUBB A,R5; subtract number from R5 (there are R3+R4)
Example:-
5/20/2014 8051 by Vijay Kumar K
44
DPTR register is not a true one because it doesn't physically exist. It consists of
two separate registers: DPH (Data Pointer High) and (Data Pointer Low).
For this reason it may be treated as a 16-bit register or as two independent 8-bit
registers. Their 16 bits are primarily used for external memory addressing.
Besides, the DPTR Register is usually used for storing data and intermediate
results.
Data Pointer Register (DPTR)
5/20/2014 8051 by Vijay Kumar K 45
Stack Pointer (SP) Register
 A value stored in the Stack Pointer points to the first
free stack address and permits stack availability.
 Stack pushes increment the value in the Stack Pointer
by 1. Likewise, stack pops decrement its value by 1.
Upon any reset and power-on, the value 7 is stored in
the Stack Pointer, which means that the space of RAM
reserved for the stack starts at this location. If another
value is written to this register, the entire Stack is
moved to the new memory location.
5/20/2014 8051 by Vijay Kumar K
46
P0, P1, P2, P3 - Input/output Registers
 If neither external memory nor serial communication system
are used then 4 ports with in total of 32 input/output pins are
available for connection to peripheral environment.
 Each bit within these ports affects the state and performance of
appropriate pin of the microcontroller. Thus, bit logic state is
reflected on appropriate pin as a voltage (0 or 5 V) and vice
versa, voltage on a pin reflects the state of appropriate port bit.
5/20/2014 8051 by Vijay Kumar K 47
As mentioned, port bit state affects performance of port
pins, i.e. whether they will be configured as inputs or
outputs.
If a bit is cleared (0), the appropriate pin will be
configured as an output, while if it is set (1), the
appropriate pin will be configured as an input.
Upon reset and power-on, all port bits are set (1), which
means that all appropriate pins will be configured as
inputs.
RS1 RS0 Space in RAM
0 0 Bank0 00h-07h
0 1 Bank1 08h-0Fh
1 0 Bank2 10h-17h
1 1 Bank3 18h-1Fh
Program Status Word [PSW]
C AC F0 RS1 RS0 OV F1 P
Register Bank Select
Carry
Auxiliary Carry
User Flag 0
Parity
User Flag 1
Overflow
8051 by Vijay Kumar K 495/20/2014
8051 instructions that affects flag
128 Byte RAM
 There are 128 bytes of RAM in the 8051.
 Assigned addresses 00 to 7FH
 The 128 bytes are divided into 3 different
groups as follows:
1. A total of 32 bytes from locations 00 to 1F
hex are set aside for register banks and
the stack.
2. A total of 16 bytes from locations 20H to
2FH are set aside for bit-addressable
read/write memory.
3. A total of 80 bytes from locations 30H to
7FH are used for read and write storage,
called scratch pad.
128 BYTE
INTERNAL RAM
Register Banks
Reg Bank 0
Reg Bank 1
Reg Bank 2
Reg Bank 3
BIT Addressable
Area
General Purpose
Area
5/20/2014 8051 by Vijay Kumar K 52
8051 RAM with
addresses
8051 Register Bank Structure
Bank 0
R0 R1 R2 R3 R4 R5 R6 R7Bank 3
R0 R1 R2 R3 R4 R5 R6 R7Bank 2
R0 R1 R2 R3 R4 R5 R6 R7Bank 1
R0 R1 R2 R3 R4 R5 R6 R7
8051 Register Banks with address
8051 Programming Model
8051 Stack
 The stack is a section of RAM used by the CPU to store
information temporarily.
 This information could be data or an address
 The register used to access the stack is called the SP (stack
pointer) register
 The stack pointer in the 8051 is only 8 bit wide, which means
that it can take value of 00 to FFH
 When the 8051 is powered up, the SP register contains value
07
 RAM location 08 is the first location begin used for the stack
by the 8051
8051 Stack
 The storing of a CPU register in the stack is called a PUSH
 SP is pointing to the last used location of the stack
 As we push data onto the stack, the SP is incremented by one
 This is different from many microprocessors
 Loading the contents of the stack back into a CPU register
is called a POP
 With every pop, the top byte of the stack is copied to the
register specified by the instruction and the stack pointer is
decremented once
Bit Addressable & Byte Addressable
Single bit Instructions
Bit Addressable Programming
 Example: Find out to which by each of the following bits belongs. Give
the address of the RAM byte in hex
(a) SETB 42H, (b) CLR 67H, (c) CLR 0FH (d) SETB 28H, (e) CLR 12, (f) SETB 05
8051 Peripheral Overview
1. Timers
2.Serial Port
3.Interrupts
8051
TIMERS
5/20/2014 8051 by Vijay Kumar K 64
OSC ÷12
TLx
(8 Bit)
/ 0C T 
/ 1C T 
INT PIN
Gate
TR
T PIN
THx
(8 Bit)
TFx
(1 Bit)
INTERRUPT
5/20/2014 8051 by Vijay Kumar K 65
GATE:
When set, timer/counter x is enabled, if INTx pin is high and TRx
is set.
When cleared, timer/counter x is enabled, if TRx bit set.
C/T:
When set, counter operation (input from Tx input pin).
When cleared, timer operation (input from internal clock).
5/20/2014 8051 by Vijay Kumar K 66
The TMOD byte is not bit addressable.
TMOD Register
The TMOD byte is not bit addressable.
TCON Register
5/20/2014 8051 by Vijay Kumar K
69
Timer 0
Mode 3
Mode 2
Mode 1
Mode 0
Mode 2
Mode 1
Mode 0
Timer 1
8051 TIMERS
5/20/2014 8051 by Vijay Kumar K 70
OSC ÷12
TL0
/ 0C T 
/ 1C T 
0INT PIN
Gate
0TR
0T PIN
TH0
INTERRUPT
TIMER 0
TF0
5/20/2014 8051 by Vijay Kumar K 71
TL0
(5 Bit)
INTERRUPT
TIMER 0 – Mode 0
OSC ÷12
/ 0C T 
/ 1C T 
0INT PIN
Gate
0TR
0T PIN
TH0
(8 Bit)
TF0
13 Bit Timer / Counter
Maximum Count = 1FFFh (0001111111111111)
5/20/2014 8051 by Vijay Kumar K 72
TL0
(8 Bit)
INTERRUPT
TIMER 0 – Mode 1
OSC ÷12
/ 0C T 
/ 1C T 
0INT PIN
Gate
0TR
0T PIN
TH0
(8 Bit)
TF0
16 Bit Timer / Counter
Maximum Count = FFFFh (1111111111111111)
5/20/2014 8051 by Vijay Kumar K 73
TH0
(8 Bit)
Reload
TIMER 0 – Mode 2
8 Bit Timer / Counter with AUTORELOAD
TL0
(8 Bit)
OSC ÷12
/ 0C T 
/ 1C T 
0INT PIN
Gate
0TR
0T PIN
TH0
(8 Bit)
TF0 INTERRUPT
Maximum Count = FFh (11111111)
5/20/2014 8051 by Vijay Kumar K 74
TL0
(8 Bit)
INTERRUPT
TIMER 0 – Mode 3
OSC ÷12
/ 0C T 
/ 1C T 
0INT PIN
Gate
0TR
0T PIN
TF0
Two - 8 Bit Timer / Counter
OSC ÷12
1TR
TH0
(8 Bit)
INTERRUPTTF1
5/20/2014 8051 by Vijay Kumar K 75
OSC ÷12
TL1
/ 0C T 
/ 1C T 
Gate
TH1
INTERRUPT
TIMER 1
TF1
1INT PIN
1TR
1T PIN
5/20/2014 8051 by Vijay Kumar K 76
TL1
(5 Bit)
INTERRUPT
TIMER 1 – Mode 0
OSC ÷12
/ 0C T 
/ 1C T 
Gate
TH1
(8 Bit)
TF1
13 Bit Timer / Counter
Maximum Count = 1FFFh (0001111111111111)
1INT PIN
1TR
1T PIN
5/20/2014 8051 by Vijay Kumar K 77
TL1
(8 Bit)
INTERRUPT
TIMER 1 – Mode 1
OSC ÷12
/ 0C T 
/ 1C T 
Gate
TH1
(8 Bit)
TF1
16 Bit Timer / Counter
Maximum Count = FFFFh (1111111111111111)
1INT PIN
1TR
1T PIN
5/20/2014 8051 by Vijay Kumar K 78
TH1
(8 Bit)
Reload
TIMER 1 – Mode 2
8 Bit Timer / Counter with AUTORELOAD
TL1
(8 Bit)
OSC ÷12
/ 0C T 
/ 1C T 
Gate
TH1
(8 Bit)
TF1 INTERRUPT
Maximum Count = FFh (11111111)
1INT PIN
1TR
1T PIN
Programming Timers
 Example: Indicate which mode and which timer are
selected for each of the following.
(a) MOV TMOD, #01H (b) MOV TMOD, #20H (c) MOV
TMOD, #12H
 Solution: We convert the value from hex to binary.
 (a) TMOD = 00000001, mode 1 of timer 0 is selected.
 (b) TMOD = 00100000, mode 2 of timer 1 is selected.
 (c) TMOD = 00010010, mode 2 of timer 0, and mode 1 of
timer 1 are selected.
Programming Timers
Find the timer’s clock frequency and its period for various
8051-based system, with the crystal frequency 11.0592 MHz
when C/T bit of TMOD is 0.
Solution:
1/12 × 11.0529 MHz = 921.6 MHz;
T = 1/921.6 kHz = 1.085 us
8051
Serial Port
Basics of Serial Communication
Computers transfer data in two ways:
 Parallel: Often 8 or more lines (wire conductors) are used to
transfer data to a device that is only a few feet away.
 Serial: To transfer to a device located many meters away, the
serial method is used. The data is sent one bit at a time.
Basics of Serial Communication
 Serial data communication uses two methods
 Synchronous method transfers a block of data at a time
 Asynchronous method transfers a single byte at a time
 There are special IC’s made by many manufacturers for
serial communications.
 UART (universal asynchronous Receiver transmitter)
 USART (universal synchronous-asynchronous
Receiver-transmitter)
Asynchronous – Start & Stop Bit
 Asynchronous serial data communication is widely used
for character-oriented transmissions
 Each character is placed in between start and stop bits, this is
called framing.
 Block-oriented data transfers use the synchronous method.
 The start bit is always one bit, but the stop bit can be one or
two bits
 The start bit is always a 0 (low) and the stop bit(s) is 1
(high)
Asynchronous – Start & Stop Bit
Data Transfer Rate
The rate of data transfer in serial data communication is
stated in bps (bits per second).
Another widely used terminology for bps is baud rate.
It is modem terminology and is defined as the number of signal
changes per second
In modems, there are occasions when a single change of signal
transfers several bits of data
As far as the conductor wire is concerned, the baud rate and
bps are the same.
8051 Serial Port
 Synchronous and Asynchronous
 SCON Register is used to Control
 Data Transfer through TXd & RXd pins
 Some time - Clock through TXd Pin
 Four Modes of Operation:
Mode 0 :Synchronous Serial Communication
Mode 1 :8-Bit UART with Timer Data Rate
Mode 2 :9-Bit UART with Set Data Rate
Mode 3 :9-Bit UART with Timer Data Rate
Registers related to Serial
Communication
1. SBUF Register
2. SCON Register
3. PCON Register
SBUF Register
 SBUF is an 8-bit register used solely for serial communication.
 For a byte data to be transferred via the TxD line, it must be
placed in the SBUF register.
 The moment a byte is written into SBUF, it is framed with the
start and stop bits and transferred serially via the TxD line.
 SBUF holds the byte of data when it is received by 8051 RxD
line.
 When the bits are received serially via RxD, the 8051
deframes it by eliminating the stop and start bits, making a
byte out of the data received, and then placing it in SBUF.
SBUF Register
 Sample Program:
5/20/2014 8051 by Vijay Kumar K 91
SCON Register
Set to Enable
Serial Data
reception
Enable Multiprocessor
Communication Mode
9th Data Bit
Sent in Mode 2,3
9th Data Bit
Received in Mode 2,3
Set when a
Character received
Set when Stop
bit Txed
SM0 SM1 Mode Description
0 0 0
8-bit Shift
Register
0 1 1 8-bit UART
1 0 2 9-bit UART
1 1 3 9-bit UART
8051 Serial Port – Mode 0
The Serial Port in Mode-0 has the following features:
1. Serial data enters and exits through RXD
2. TXD outputs the clock
3. 8 bits are transmitted / received
4. The baud rate is fixed at (1/12) of the oscillator frequency
8051 Serial Port – Mode 1
The Serial Port in Mode-1 has the following features:
1. Serial data enters through RXD
2. Serial data exits through TXD
3. On receive, the stop bit goes into RB8 in SCON
4. 10 bits are transmitted / received
1. Start bit (0)
2. Data bits (8)
3. Stop Bit (1)
5. Baud rate is determined by the Timer 1 over flow rate.
8051 Serial Port – Mode 2
The Serial Port in Mode-2 has the following features:
1. Serial data enters through RXD
2. Serial data exits through TXD
3. 9th data bit (TB8) can be assign value 0 or 1
4. On receive, the 9th data bit goes into RB8 in SCON
5. 11 bits are transmitted / received
1.Start bit (0)
2.Data bits (9)
3.Stop Bit (1)
6. Baud rate is programmable
8051 Serial Port – Mode 3
The Serial Port in Mode-3 has the following features:
1. Serial data enters through RXD
2. Serial data exits through TXD
3. 9th data bit (TB8) can be assign value 0 or 1
4. On receive, the 9th data bit goes into RB8 in SCON
5. 11 bits are transmitted / received
1.Start bit (0)
2.Data bits (9)
3.Stop Bit (1)
6. Baud rate is determined by Timer 1 overflow rate.
Programming Serial Data
Transmission1. TMOD register is loaded with the value 20H, indicating the use of
timer 1 in mode 2 (8-bit auto-reload) to set baud rate.
2. The TH1 is loaded with one of the values to set baud rate for serial
data transfer.
3. The SCON register is loaded with the value 50H, indicating serial
mode 1, where an 8- bit data is framed with start and stop bits.
4. TR1 is set to 1 to start timer 1
5. TI is cleared by CLR TI instruction
6. The character byte to be transferred serially is written into SBUF
register.
7. The TI flag bit is monitored with the use of instruction JNB TI, xx to
see if the character has been transferred completely.
8. To transfer the next byte, go to step 5
Programming Serial Data Reception
1. TMOD register is loaded with the value 20H, indicating the use of
timer 1 in mode 2 (8-bit auto-reload) to set baud rate.
2. TH1 is loaded to set baud rate
3. The SCON register is loaded with the value 50H, indicating serial
mode 1, where an 8- bit data is framed with start and stop bits.
4. TR1 is set to 1 to start timer 1
5. RI is cleared by CLR RI instruction
6. The RI flag bit is monitored with the use of instruction JNB RI, xx to
see if an entire character has been received yet
7. When RI is raised, SBUF has the byte, its contents are moved into a
safe place.
8. To receive the next character, go to step 5.
Doubling Baud Rate
 There are two ways to increase the baud rate of data
transfer
1. By using a higher frequency crystal
2. By changing a bit in the PCON register
5/20/2014 8051 by Vijay Kumar K 99
PCON register
PCON register is an 8-bit register.
 When 8051 is powered up, SMOD is zero
 We can set it to high by software and thereby double the baud rate.
 SMOD Baud rate is twice as much higher by setting this bit.
 GF1 General-purpose bit (available for use).
 GF0 General-purpose bit (available for use).
 PD By setting this bit the microcontroller enters the Power Down mode.
 IDL By setting this bit the microcontroller enters the Idle mode.
5/20/2014 8051 by Vijay Kumar K 100
Doubling Baud Rate (cont…)
8051
Interrupts
INTERRUPTS
 An interrupt is an external or internal event that interrupts
the microcontroller to inform it that a device needs its service
 A single microcontroller can serve several devices by two
ways:
1. Interrupt
2. Polling
Interrupt Vs Polling
1. Interrupts
 Whenever any device needs its service, the device notifies the
microcontroller by sending it an interrupt signal.
 Upon receiving an interrupt signal, the microcontroller
interrupts whatever it is doing and serves the device.
 The program which is associated with the interrupt is called the
interrupt service routine (ISR) or interrupt handler.
2. Polling
 The microcontroller continuously monitors the status of a given
device.
 When the conditions met, it performs the service.
 After that, it moves on to monitor the next device until every
one is serviced.
Interrupt Vs Polling
 The polling method is not efficient, since it wastes much of the
microcontroller’s time by polling devices that do not need
service.
 The advantage of interrupts is that the microcontroller can
serve many devices (not all at the same time).
 Each devices can get the attention of the microcontroller
based on the assigned priority.
 For the polling method, it is not possible to assign priority
since it checks all devices in a round-robin fashion.
 The microcontroller can also ignore (mask) a device request
for service in Interrupt.
Steps in Executing an Interrupt
1. It finishes the instruction it is executing and saves the address of
the next instruction (PC) on the stack.
2. It also saves the current status of all the interrupts internally (i.e:
not on the stack).
3. It jumps to a fixed location in memory, called the interrupt vector
table, that holds the address of the ISR.
4. The microcontroller gets the address of the ISR from the
interrupt vector table and jumps to it.
5. It starts to execute the interrupt service subroutine until it
reaches the last instruction of the subroutine which is RETI
(return from interrupt).
6. Upon executing the RETI instruction, the microcontroller returns
to the place where it was interrupted.
Six Interrupts in 8051
Six interrupts are allocated as follows:
1. Reset – power-up reset.
2. Two interrupts are set aside for the timers.
 one for Timer 0 (T0) and one for Timer 1 (T1)
3. Two interrupts are set aside for hardware external
interrupts.
 P3.2 and P3.3 are for the external hardware interrupts INT0
(or EX1), and INT1 (or EX2)
4. Serial communication has a single interrupt that belongs to
both receive and transfer.
What events can trigger Interrupts?
 We can configure the 8051 so that any of the following events will
cause an interrupt:
 Timer 0 Overflow.
 Timer 1 Overflow.
 Reception/Transmission of Serial Character.
 External Event 0.
 External Event 1.
 We can configure the 8051 so that when Timer 0 Overflows or
when a character is sent/received, the appropriate interrupt
handler routines are called.
5/20/2014 8051 by Vijay Kumar K 109
8051 Interrupt Vectors
8051 Interrupt related Registers
 The various registers associated with the use of interrupts are:
TCON - Edge and Type bits for External Interrupts 0/1
SCON - RI and TI interrupt flags for RS232
IE - Enable interrupt sources
IP - Specify priority of interrupts
Enabling and Disabling an Interrupt
 Upon reset, all interrupts are disabled (masked), meaning
that none will be responded to by the microcontroller if they
are activated.
 The interrupts must be enabled by software in order for the
microcontroller to respond to them.
 There is a register called IE (interrupt enable) that is
responsible for enabling (unmasking) and disabling
(masking) the interrupts.
Interrupt Enable (IE) Register
EA - global interrupt enable/disable:
0 - disables all interrupt requests. 1 - enables all individual interrupt requests.
ES - enables or disables serial interrupt:
0 - UART system cannot generate an interrupt. 1 - UART system enables an interrupt.
ET1 - bit enables or disables Timer 1 interrupt:
0 - Timer 1 cannot generate an interrupt. 1 - Timer 1 enables an interrupt.
EX1 - bit enables or disables external 1 interrupt:
0 - change of the pin INT0 logic state cannot generate an interrupt.
1 - enables an external interrupt on the pin INT0 state change.
ET0 - bit enables or disables timer 0 interrupt:
0 - Timer 0 cannot generate an interrupt. 1 - enables timer 0 interrupt.
EX0 - bit enables or disables external 0 interrupt:
0 - change of the INT1 pin logic state cannot generate an interrupt.
1 - enables an external interrupt on the pin INT1 state change.
Enabling and Disabling an Interrupt
 Example: Show the instructions to
(a) enable the serial interrupt, timer 0 interrupt, and external hardware
interrupt 1 and
(b) disable (mask) the timer 0 interrupt, then
(c) show how to disable all the interrupts with a single instruction.
 Solution:
 (a) MOV IE,#10010110B ;enable serial, timer 0, EX1
 Another way to perform the same manipulation is:
 SETB IE.7 ;EA=1, global enable
 SETB IE.4 ;enable serial interrupt
 SETB IE.1 ;enable Timer 0 interrupt
 SETB IE.2 ;enable EX1
 (b) CLR IE.1 ;mask (disable) timer 0 interrupt only
 (c) CLR IE.7 ;disable all interrupts
Interrupt Priority
When the 8051 is powered up, the priorities are assigned
according to the following.
In reality, the priority scheme is nothing but an internal polling
sequence in which the 8051 polls the interrupts in the sequence
listed and responds accordingly.
Interrupt Priority
 We can alter the sequence of interrupt priority by
assigning a higher priority to any one of the interrupts
by programming a register called IP (interrupt
priority).
 To give a higher priority to any of the interrupts, we
make the corresponding bit in the IP register high.
Interrupt Priority (IP) Register
PS PT1 PX1 PT0 PX0Reserved
Serial Port
Timer 1 Pin
INT 1 Pin Timer 0 Pin
INT 0 Pin
Priority bit=1 assigns high priority
Priority bit=0 assigns low priority
8051 Software Overview
1. Addressing
Modes
2.Instruction Set
3.Programming
8051 Addressing Modes
The CPU can access data in various ways, which are
called addressing modes
1. Immediate Addressing Modes
2. Register Addressing Modes
3. Direct Addressing Modes
4. Register Indirect Addressing Modes
5. External Indirect Addressing Modes
Immediate Addressing Mode
 The source operand is a constant.
 The immediate data must be preceded by the pound sign, “#”
 Can load information into any registers, including 16-bit
DPTR register
 DPTR can also be accessed as two 8-bit registers, the high byte DPH
and low byte DPL
Register Addressing Mode
 Use registers to hold the data to be manipulated.
• The source and destination registers must match in size.
MOV DPTR,A will give an error
• The movement of data between Rn registers is not allowed
MOV R4,R7 is invalid
Direct Addressing Mode
 It is most often used the direct addressing mode to access
RAM locations 30 – 7FH.
 The entire 128 bytes of RAM can be accessed.
 Contrast this with immediate addressing mode, there is no
“#” sign in the operand.
SFR Registers & their Addresses
MOV 0E0H,#55H ;is the same as
MOV A,#55H ;which means load 55H into A (A=55H)
MOV 0F0H,#25H ;is the same as
MOV B,#25H ;which means load 25H into B (B=25H)
MOV 0E0H,R2 ;is the same as
MOV A,R2 ;which means copy R2 into A
MOV 0F0H,R0 ;is the same as
MOV B,R0 ;which means copy R0 into B
SFR Addresses ( 1 of 2 )
SFR Addresses ( 2 of 2 )
Example
Stack and Direct Addressing Mode
 Only direct addressing mode is allowed for pushing or popping
the stack.
 PUSH A is invalid.
 Pushing the accumulator onto the stack must be coded as PUSH
0E0H.
Register Indirect Addressing Mode
 A register is used as a pointer to the data.
 Only register R0 and R1 are used for this purpose.
 R2 – R7 cannot be used to hold the address of an operand
located in RAM.
 When R0 and R1 hold the addresses of RAM locations, they
must be preceded by the “@” sign.
5/20/2014 8051 by Vijay Kumar K 1295/20/2014 8051 by Vijay Kumar K 129
Write a program to copy the value 55H into RAM memory locations 40H to
41H using (a) direct addressing mode,
(b) register indirect addressing mode without a loop, and
(c) with a loop.
Register Indirect Addressing Mode
The advantage is that it makes accessing data dynamic rather
than static as in direct addressing mode.
Looping is not possible in direct addressing mode.
Write a program to clear 16 RAM locations starting at RAM
address 60H.
External Direct
 External Memory is accessed.
 There are only two commands that use External Direct
addressing mode:
 MOVX A, @DPTR
MOVX @DPTR, A
 DPTR must first be loaded with the address of external
memory.
5/20/2014 8051 by Vijay Kumar K 132
8051
Instruction
Set
5/20/2014 8051 by Vijay Kumar K 133
1. Data Transfer Instructions
2. Arithmetic Instructions
3. Branch Instructions
4. Logic Instructions
5. Bit-oriented Instructions
 Depending on operation they perform, all instructions
are divided in several groups:
5/20/2014 8051 by Vijay Kumar K 134
Data Transfer Instructions
Mnemonic Description
MOV A,Rn Moves the register to the accumulator
MOV A,direct Moves the direct byte to the accumulator
MOV A,@Ri Moves the indirect RAM to the accumulator
MOV A,#data Moves the immediate data to the accumulator
MOV Rn,A Moves the accumulator to the register
MOV Rn,direct Moves the direct byte to the register
MOV Rn,#data Moves the immediate data to the register
MOV direct,A Moves the accumulator to the direct byte
MOV direct,Rn Moves the register to the direct byte
MOV direct,direct Moves the direct byte to the direct byte
MOV direct,@Ri Moves the indirect RAM to the direct byte
MOV direct,#data Moves the immediate data to the direct byte
MOV @Ri,A Moves the accumulator to the indirect RAM
5/20/2014 8051 by Vijay Kumar K
135
Mnemonic Description
MOV @Ri,direct Moves the direct byte to the indirect RAM
MOV @Ri,#data Moves the immediate data to the indirect RAM
MOV DPTR,#data Moves a 16-bit data to the data pointer
MOVC A,@A+DPTR
Moves the code byte relative to the DPTR to the accumulator
(address=A+DPTR)
MOVC A,@A+PC Moves the code byte relative to the PC to the accumulator (address=A+PC)
MOVX A,@Ri Moves the external RAM (8-bit address) to the accumulator
MOVX A,@DPTR Moves the external RAM (16-bit address) to the accumulator
MOVX @Ri,A Moves the accumulator to the external RAM (8-bit address)
MOVX @DPTR,A Moves the accumulator to the external RAM (16-bit address)
PUSH direct Pushes the direct byte onto the stack
POP direct Pops the direct byte from the stack/td>
XCH A,Rn Exchanges the register with the accumulator
XCH A,direct Exchanges the direct byte with the accumulator
XCH A,@Ri Exchanges the indirect RAM with the accumulator
XCHD A,@Ri Exchanges the low-order nibble indirect RAM with the accumulator
5/20/2014 8051 by Vijay Kumar K 136
Mnemonic Description
ADD A,Rn Adds the register to the accumulator
ADD A,direct Adds the direct byte to the accumulator
ADD A,@Ri Adds the indirect RAM to the accumulator
ADD A,#data Adds the immediate data to the accumulator
ADDC A,Rn Adds the register to the accumulator with a carry flag
ADDC A,direct Adds the direct byte to the accumulator with a carry flag
ADDC A,@Ri Adds the indirect RAM to the accumulator with a carry flag
ADDC A,#data Adds the immediate data to the accumulator with a carry flag
SUBB A,Rn Subtracts the register from the accumulator with a borrow
SUBB A,direct Subtracts the direct byte from the accumulator with a borrow
Arithmetic Instructions
5/20/2014 8051 by Vijay Kumar K 137
Mnemonic Description
SUBB A,@Ri Subtracts the indirect RAM from the accumulator with a borrow
SUBB A,#data Subtracts the immediate data from the accumulator with a borrow
INC A Increments the accumulator by 1
INC Rn Increments the register by 1
INC Rx Increments the direct byte by 1
INC @Ri Increments the indirect RAM by 1
DEC A Decrements the accumulator by 1
DEC Rn Decrements the register by 1
DEC Rx Decrements the direct byte by 1
DEC @Ri Decrements the indirect RAM by 1
INC DPTR Increments the Data Pointer by 1
MUL AB Multiplies A and B
DIV AB Divides A by B
DA A Decimal adjustment of the accumulator according to BCD code
5/20/2014 8051 by Vijay Kumar K 138
Mnemonic Description
ACALL addr11 Absolute subroutine call
LCALL addr16 Long subroutine call
RET Returns from subroutine
RETI Returns from interrupt subroutine
AJMP addr11 Absolute jump
LJMP addr16 Long jump
SJMP rel
Short jump (from –128 to +127 locations relative to the following
instruction)
JC rel Jump if carry flag is set. Short jump.
JNC rel Jump if carry flag is not set. Short jump.
JB bit,rel Jump if direct bit is set. Short jump.
Branch Instructions
5/20/2014 8051 by Vijay Kumar K 139
Mnemonic Description
JBC bit,rel Jump if direct bit is set and clears bit. Short jump.
JMP @A+DPTR Jump indirect relative to the DPTR
JZ rel Jump if the accumulator is zero. Short jump.
JNZ rel Jump if the accumulator is not zero. Short jump.
CJNE A,direct,rel
Compares direct byte to the accumulator and jumps if
not equal. Short jump.
CJNE A,#data,rel
Compares immediate data to the accumulator and
jumps if not equal. Short jump.
CJNE Rn,#data,rel
Compares immediate data to the register and jumps if
not equal. Short jump.
CJNE @Ri,#data,rel
Compares immediate data to indirect register and
jumps if not equal. Short jump.
DJNZ Rn,rel Decrements register and jumps if not 0. Short jump.
DJNZ Rx,rel Decrements direct byte and jump if not 0. Short jump.
NOP No operation
5/20/2014 8051 by Vijay Kumar K 140
Mnemonic Description
ANL A,Rn AND register to accumulator
ANL A,direct AND direct byte to accumulator
ANL A,@Ri AND indirect RAM to accumulator
ANL A,#data AND immediate data to accumulator
ANL direct,A AND accumulator to direct byte
ANL direct,#data AND immediae data to direct register
ORL A,Rn OR register to accumulator
ORL A,direct OR direct byte to accumulator
ORL A,@Ri OR indirect RAM to accumulator
ORL direct,A OR accumulator to direct byte
ORL direct,#data OR immediate data to direct byte
Logic Instructions
5/20/2014 8051 by Vijay Kumar K 141
XRL A,Rn Exclusive OR register to accumulator
XRL A,direct Exclusive OR direct byte to accumulator
XRL A,@Ri Exclusive OR indirect RAM to accumulator
XRL A,#data Exclusive OR immediate data to accumulator
XRL direct,A Exclusive OR accumulator to direct byte
XORL direct,#data Exclusive OR immediate data to direct byte
CLR A Clears the accumulator
CPL A Complements the accumulator (1=0, 0=1)
SWAP A Swaps nibbles within the accumulator
RL A Rotates bits in the accumulator left
RLC A
Rotates bits in the accumulator left through
carry
RR A Rotates bits in the accumulator right
RRC A Rotates bits in the accumulator right through carry
5/20/2014 8051 by Vijay Kumar K 142
Mnemonic Description
CLR C Clears the carry flag
CLR bit Clears the direct bit
SETB C Sets the carry flag
SETB bit Sets the direct bit
CPL C Complements the carry flag
CPL bit Complements the direct bit
ANL C,bit AND direct bit to the carry flag
ANL C,/bit AND complements of direct bit to the carry flag
ORL C,bit OR direct bit to the carry flag
ORL C,/bit OR complements of direct bit to the carry flag
MOV C,bit Moves the direct bit to the carry flag
MOV bit,C Moves the carry flag to the direct bit
Bit-oriented Instructions
5/20/2014 8051 by Vijay Kumar K 143
Here is a list of the operands and their meanings:
 A - accumulator;
Rn - is one of working registers (R0-R7) in the currently active RAM memory bank;
 Direct - is any 8-bit address register of RAM. It can be any general-purpose register or a SFR (I/O
port, control register etc.);
 @Ri - is indirect internal or external RAM location addressed by register R0 or R1;
 #data - is an 8-bit constant included in instruction (0-255);
 #data16 - is a 16-bit constant included as bytes 2 and 3 in instruction (0-65535);
 addr16 - is a 16-bit address. May be anywhere within 64KB of program memory;
 addr11 - is an 11-bit address. May be within the same 2KB page of program memory as the first
byte of the following instruction;
 rel - is the address of a close memory location (from -128 to +127 relative to the first byte of the
following instruction). On the basis of it, assembler computes the value to add or subtract from the
number currently stored in the program counter;
 bit - is any bit-addressable I/O pin, control or status bit; and
 C - is carry flag of the status register (register PSW).
Description of all 8051 instructions
Microcontroller (8051) by K. Vijay Kumar

Contenu connexe

Tendances

8051 Microcontroller Notes
8051 Microcontroller Notes8051 Microcontroller Notes
8051 Microcontroller NotesDr.YNM
 
Study of 8051 microcontroller
Study of 8051 microcontrollerStudy of 8051 microcontroller
Study of 8051 microcontroller918007165995
 
Microcontroller 8051
Microcontroller 8051Microcontroller 8051
Microcontroller 8051guest70d48b1
 
8051 microcontroller features
8051 microcontroller features8051 microcontroller features
8051 microcontroller featuresTech_MX
 
Presentation On: "Micro-controller 8051 & Embedded System"
Presentation On: "Micro-controller 8051 & Embedded System"Presentation On: "Micro-controller 8051 & Embedded System"
Presentation On: "Micro-controller 8051 & Embedded System"surabhii007
 
Microcontroller
MicrocontrollerMicrocontroller
MicrocontrollerSpitiq
 
8051 microcontroller
8051 microcontroller8051 microcontroller
8051 microcontrollerSABBIR AHMED
 
Microcontroller 8051
Microcontroller 8051Microcontroller 8051
Microcontroller 8051Sadiq Rahim
 
Embedded systems, 8051 microcontroller
Embedded systems, 8051 microcontrollerEmbedded systems, 8051 microcontroller
Embedded systems, 8051 microcontrollerAmandeep Alag
 
Mouse interrupts (Assembly Language & C)
Mouse interrupts (Assembly Language & C)Mouse interrupts (Assembly Language & C)
Mouse interrupts (Assembly Language & C)Tech_MX
 
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )Tarun Khaneja
 
microcontroller basics
microcontroller basicsmicrocontroller basics
microcontroller basicssagar Ramdev
 
8051 Microcontroller
8051 Microcontroller8051 Microcontroller
8051 MicrocontrollerJai Sudhan
 
Microcontroller 8051
Microcontroller 8051Microcontroller 8051
Microcontroller 8051John Williams
 
Presentation on Embedded system using micro controller by PARAS JHA
Presentation on Embedded system using micro controller  by PARAS JHAPresentation on Embedded system using micro controller  by PARAS JHA
Presentation on Embedded system using micro controller by PARAS JHAParas Jha
 
The 8051 microcontroler based embedded systems
The 8051 microcontroler based embedded systemsThe 8051 microcontroler based embedded systems
The 8051 microcontroler based embedded systemsmanishpatel_79
 

Tendances (20)

8051 Microcontroller Notes
8051 Microcontroller Notes8051 Microcontroller Notes
8051 Microcontroller Notes
 
Study of 8051 microcontroller
Study of 8051 microcontrollerStudy of 8051 microcontroller
Study of 8051 microcontroller
 
Microcontroller 8051
Microcontroller 8051Microcontroller 8051
Microcontroller 8051
 
MICROCONTROLLER 8051
MICROCONTROLLER 8051MICROCONTROLLER 8051
MICROCONTROLLER 8051
 
8051 microcontroller features
8051 microcontroller features8051 microcontroller features
8051 microcontroller features
 
Presentation On: "Micro-controller 8051 & Embedded System"
Presentation On: "Micro-controller 8051 & Embedded System"Presentation On: "Micro-controller 8051 & Embedded System"
Presentation On: "Micro-controller 8051 & Embedded System"
 
Microcontroller
MicrocontrollerMicrocontroller
Microcontroller
 
8051 presentation
8051 presentation8051 presentation
8051 presentation
 
8051 microcontroller
8051 microcontroller8051 microcontroller
8051 microcontroller
 
Microcontroller 8051
Microcontroller 8051Microcontroller 8051
Microcontroller 8051
 
Embedded systems, 8051 microcontroller
Embedded systems, 8051 microcontrollerEmbedded systems, 8051 microcontroller
Embedded systems, 8051 microcontroller
 
Ch12 microprocessor interrupts
Ch12 microprocessor interruptsCh12 microprocessor interrupts
Ch12 microprocessor interrupts
 
Mouse interrupts (Assembly Language & C)
Mouse interrupts (Assembly Language & C)Mouse interrupts (Assembly Language & C)
Mouse interrupts (Assembly Language & C)
 
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
 
microcontroller basics
microcontroller basicsmicrocontroller basics
microcontroller basics
 
8051 Microcontroller
8051 Microcontroller8051 Microcontroller
8051 Microcontroller
 
Microcontroller 8051
Microcontroller 8051Microcontroller 8051
Microcontroller 8051
 
Microcontroller
MicrocontrollerMicrocontroller
Microcontroller
 
Presentation on Embedded system using micro controller by PARAS JHA
Presentation on Embedded system using micro controller  by PARAS JHAPresentation on Embedded system using micro controller  by PARAS JHA
Presentation on Embedded system using micro controller by PARAS JHA
 
The 8051 microcontroler based embedded systems
The 8051 microcontroler based embedded systemsThe 8051 microcontroler based embedded systems
The 8051 microcontroler based embedded systems
 

Similaire à Microcontroller (8051) by K. Vijay Kumar

8051 microcontroller by K. Vijay Kumar
8051 microcontroller by K. Vijay Kumar8051 microcontroller by K. Vijay Kumar
8051 microcontroller by K. Vijay KumarVijay Kumar
 
Microcontroller (1).pptx
Microcontroller (1).pptxMicrocontroller (1).pptx
Microcontroller (1).pptxITPradiptaRoy
 
4th yr dmumicrocontroller1
4th yr dmumicrocontroller14th yr dmumicrocontroller1
4th yr dmumicrocontroller1haymanotyehuala
 
8051 microcontroller
8051 microcontroller 8051 microcontroller
8051 microcontroller nitugatkal
 
janakiraman I msc 4 unit
janakiraman I msc 4 unitjanakiraman I msc 4 unit
janakiraman I msc 4 unitjanakiramang6
 
EMBEDDED SYSTEMS AND IOT lab manual for enginnering students
EMBEDDED SYSTEMS AND IOT lab manual for enginnering studentsEMBEDDED SYSTEMS AND IOT lab manual for enginnering students
EMBEDDED SYSTEMS AND IOT lab manual for enginnering studentseceprinter6
 
janakiraman egsp collage I msc 4 unit
janakiraman egsp collage  I msc 4 unitjanakiraman egsp collage  I msc 4 unit
janakiraman egsp collage I msc 4 unitjanakiramang6
 
SYBSC IT SEM IV EMBEDDED SYSTEMS UNIT III The 8051 Microcontrollers
SYBSC IT SEM IV EMBEDDED SYSTEMS UNIT III  The 8051 MicrocontrollersSYBSC IT SEM IV EMBEDDED SYSTEMS UNIT III  The 8051 Microcontrollers
SYBSC IT SEM IV EMBEDDED SYSTEMS UNIT III The 8051 MicrocontrollersArti Parab Academics
 
8051 Microcontroller
8051 Microcontroller8051 Microcontroller
8051 Microcontrollerthokalpv
 
8051 Architecture
8051 Architecture8051 Architecture
8051 ArchitectureShinuMMAEI
 
Embedded systems, 8051 microcontroller
Embedded systems, 8051 microcontrollerEmbedded systems, 8051 microcontroller
Embedded systems, 8051 microcontrollerAmandeep Alag
 

Similaire à Microcontroller (8051) by K. Vijay Kumar (20)

8051 microcontroller by K. Vijay Kumar
8051 microcontroller by K. Vijay Kumar8051 microcontroller by K. Vijay Kumar
8051 microcontroller by K. Vijay Kumar
 
Micro controller
Micro controllerMicro controller
Micro controller
 
Microcontroller (1).pptx
Microcontroller (1).pptxMicrocontroller (1).pptx
Microcontroller (1).pptx
 
4th yr dmumicrocontroller1
4th yr dmumicrocontroller14th yr dmumicrocontroller1
4th yr dmumicrocontroller1
 
8051.pptx
8051.pptx8051.pptx
8051.pptx
 
8051 microcontroller
8051 microcontroller 8051 microcontroller
8051 microcontroller
 
89s52 2
89s52 289s52 2
89s52 2
 
janakiraman I msc 4 unit
janakiraman I msc 4 unitjanakiraman I msc 4 unit
janakiraman I msc 4 unit
 
EMBEDDED SYSTEMS AND IOT lab manual for enginnering students
EMBEDDED SYSTEMS AND IOT lab manual for enginnering studentsEMBEDDED SYSTEMS AND IOT lab manual for enginnering students
EMBEDDED SYSTEMS AND IOT lab manual for enginnering students
 
janakiraman egsp collage I msc 4 unit
janakiraman egsp collage  I msc 4 unitjanakiraman egsp collage  I msc 4 unit
janakiraman egsp collage I msc 4 unit
 
Microcontroller-8051.ppt
Microcontroller-8051.pptMicrocontroller-8051.ppt
Microcontroller-8051.ppt
 
SYBSC IT SEM IV EMBEDDED SYSTEMS UNIT III The 8051 Microcontrollers
SYBSC IT SEM IV EMBEDDED SYSTEMS UNIT III  The 8051 MicrocontrollersSYBSC IT SEM IV EMBEDDED SYSTEMS UNIT III  The 8051 Microcontrollers
SYBSC IT SEM IV EMBEDDED SYSTEMS UNIT III The 8051 Microcontrollers
 
8051 Microcontroller
8051 Microcontroller8051 Microcontroller
8051 Microcontroller
 
8051 Presentation
8051 Presentation8051 Presentation
8051 Presentation
 
8051
80518051
8051
 
Microcontroller
MicrocontrollerMicrocontroller
Microcontroller
 
8051 Architecture
8051 Architecture8051 Architecture
8051 Architecture
 
Microcontroller 8051 gs
Microcontroller 8051 gsMicrocontroller 8051 gs
Microcontroller 8051 gs
 
At89s51
At89s51At89s51
At89s51
 
Embedded systems, 8051 microcontroller
Embedded systems, 8051 microcontrollerEmbedded systems, 8051 microcontroller
Embedded systems, 8051 microcontroller
 

Plus de Vijay Kumar

Instruction set of 8086
Instruction set of 8086Instruction set of 8086
Instruction set of 8086Vijay Kumar
 
8086 Microprocessor
8086 Microprocessor 8086 Microprocessor
8086 Microprocessor Vijay Kumar
 
Interrupts on 8086 microprocessor by vijay kumar.k
Interrupts on 8086 microprocessor by vijay kumar.kInterrupts on 8086 microprocessor by vijay kumar.k
Interrupts on 8086 microprocessor by vijay kumar.kVijay Kumar
 
Assembly Language
Assembly LanguageAssembly Language
Assembly LanguageVijay Kumar
 
8085 instruction set
8085 instruction set8085 instruction set
8085 instruction setVijay Kumar
 
8085 instruction set and addressing modes
8085 instruction set and addressing modes8085 instruction set and addressing modes
8085 instruction set and addressing modesVijay Kumar
 
8085 microprocessor Architecture and pin description
8085 microprocessor Architecture and pin description 8085 microprocessor Architecture and pin description
8085 microprocessor Architecture and pin description Vijay Kumar
 
8085 microprocessor Architecture and Pin description
8085 microprocessor Architecture and Pin description 8085 microprocessor Architecture and Pin description
8085 microprocessor Architecture and Pin description Vijay Kumar
 
8086 Microprocessor Instruction set
8086 Microprocessor Instruction set8086 Microprocessor Instruction set
8086 Microprocessor Instruction setVijay Kumar
 
Input output devices
Input output devicesInput output devices
Input output devicesVijay Kumar
 
Microprocessors evolution introduction to microprocessor
Microprocessors  evolution introduction to microprocessorMicroprocessors  evolution introduction to microprocessor
Microprocessors evolution introduction to microprocessorVijay Kumar
 
Evolution of INTEL Microprocessor
Evolution of INTEL MicroprocessorEvolution of INTEL Microprocessor
Evolution of INTEL MicroprocessorVijay Kumar
 
Origin of Microprocessor and Classification of Microprocessor
Origin of Microprocessor and  Classification of Microprocessor Origin of Microprocessor and  Classification of Microprocessor
Origin of Microprocessor and Classification of Microprocessor Vijay Kumar
 
8085 addressing modes
8085 addressing modes8085 addressing modes
8085 addressing modesVijay Kumar
 
Rs 232 & usb ieee1394 communication
Rs 232 & usb  ieee1394 communicationRs 232 & usb  ieee1394 communication
Rs 232 & usb ieee1394 communicationVijay Kumar
 
Embedded real time-systems communication
Embedded real time-systems communicationEmbedded real time-systems communication
Embedded real time-systems communicationVijay Kumar
 
8259 Programmable Interrupt Controller by vijay
8259 Programmable Interrupt Controller by vijay8259 Programmable Interrupt Controller by vijay
8259 Programmable Interrupt Controller by vijayVijay Kumar
 
8254 Programmable Interval Timer by vijay
8254 Programmable Interval Timer by vijay8254 Programmable Interval Timer by vijay
8254 Programmable Interval Timer by vijayVijay Kumar
 

Plus de Vijay Kumar (20)

Instruction set of 8086
Instruction set of 8086Instruction set of 8086
Instruction set of 8086
 
8086 Microprocessor
8086 Microprocessor 8086 Microprocessor
8086 Microprocessor
 
Interrupts on 8086 microprocessor by vijay kumar.k
Interrupts on 8086 microprocessor by vijay kumar.kInterrupts on 8086 microprocessor by vijay kumar.k
Interrupts on 8086 microprocessor by vijay kumar.k
 
Assembly Language
Assembly LanguageAssembly Language
Assembly Language
 
8085 instruction set
8085 instruction set8085 instruction set
8085 instruction set
 
8085 instruction set and addressing modes
8085 instruction set and addressing modes8085 instruction set and addressing modes
8085 instruction set and addressing modes
 
8085 microprocessor Architecture and pin description
8085 microprocessor Architecture and pin description 8085 microprocessor Architecture and pin description
8085 microprocessor Architecture and pin description
 
8085 microprocessor Architecture and Pin description
8085 microprocessor Architecture and Pin description 8085 microprocessor Architecture and Pin description
8085 microprocessor Architecture and Pin description
 
8086 Microprocessor Instruction set
8086 Microprocessor Instruction set8086 Microprocessor Instruction set
8086 Microprocessor Instruction set
 
Input output devices
Input output devicesInput output devices
Input output devices
 
Microprocessors evolution introduction to microprocessor
Microprocessors  evolution introduction to microprocessorMicroprocessors  evolution introduction to microprocessor
Microprocessors evolution introduction to microprocessor
 
Memory types
Memory typesMemory types
Memory types
 
Memory
MemoryMemory
Memory
 
Evolution of INTEL Microprocessor
Evolution of INTEL MicroprocessorEvolution of INTEL Microprocessor
Evolution of INTEL Microprocessor
 
Origin of Microprocessor and Classification of Microprocessor
Origin of Microprocessor and  Classification of Microprocessor Origin of Microprocessor and  Classification of Microprocessor
Origin of Microprocessor and Classification of Microprocessor
 
8085 addressing modes
8085 addressing modes8085 addressing modes
8085 addressing modes
 
Rs 232 & usb ieee1394 communication
Rs 232 & usb  ieee1394 communicationRs 232 & usb  ieee1394 communication
Rs 232 & usb ieee1394 communication
 
Embedded real time-systems communication
Embedded real time-systems communicationEmbedded real time-systems communication
Embedded real time-systems communication
 
8259 Programmable Interrupt Controller by vijay
8259 Programmable Interrupt Controller by vijay8259 Programmable Interrupt Controller by vijay
8259 Programmable Interrupt Controller by vijay
 
8254 Programmable Interval Timer by vijay
8254 Programmable Interval Timer by vijay8254 Programmable Interval Timer by vijay
8254 Programmable Interval Timer by vijay
 

Dernier

Industrial Applications of Centrifugal Compressors
Industrial Applications of Centrifugal CompressorsIndustrial Applications of Centrifugal Compressors
Industrial Applications of Centrifugal CompressorsAlirezaBagherian3
 
Levelling - Rise and fall - Height of instrument method
Levelling - Rise and fall - Height of instrument methodLevelling - Rise and fall - Height of instrument method
Levelling - Rise and fall - Height of instrument methodManicka Mamallan Andavar
 
Engineering Drawing section of solid
Engineering Drawing     section of solidEngineering Drawing     section of solid
Engineering Drawing section of solidnamansinghjarodiya
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Romil Mishra
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxRomil Mishra
 
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfModule-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfManish Kumar
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSneha Padhiar
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptJohnWilliam111370
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Coursebim.edu.pl
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingBootNeck1
 
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Erbil Polytechnic University
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfBalamuruganV28
 
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书rnrncn29
 
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfComprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfalene1
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...Erbil Polytechnic University
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating SystemRashmi Bhat
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONjhunlian
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionSneha Padhiar
 

Dernier (20)

Industrial Applications of Centrifugal Compressors
Industrial Applications of Centrifugal CompressorsIndustrial Applications of Centrifugal Compressors
Industrial Applications of Centrifugal Compressors
 
Levelling - Rise and fall - Height of instrument method
Levelling - Rise and fall - Height of instrument methodLevelling - Rise and fall - Height of instrument method
Levelling - Rise and fall - Height of instrument method
 
Engineering Drawing section of solid
Engineering Drawing     section of solidEngineering Drawing     section of solid
Engineering Drawing section of solid
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptx
 
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfModule-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Course
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event Scheduling
 
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdf
 
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
 
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfComprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating System
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based question
 

Microcontroller (8051) by K. Vijay Kumar

  • 1. By Vijay Kumar K Assistant Professor Dept. of ECE 8051 by Vijay Kumar K5/20/2014 1
  • 2. Why do we need to learn Microprocessors/Microcontrollers?  The microprocessor is the core of computer systems.  Nowadays many communication, digital entertainment, portable devices, are controlled by them.  A designer should know what types of components he needs, ways to reduce production costs and product reliable. 8051 by Vijay Kumar K5/20/2014 2
  • 3. The necessary tools for a Microprocessor/controller 1. CPU: Central Processing Unit 2. I/O: Input /Output 3. Bus: Address bus & Data bus 4. Memory: RAM & ROM 5. Timer 6. Interrupt 7. Serial Port 8. Parallel Port 8051 by Vijay Kumar K5/20/2014 3
  • 4. Microprocessors CPU for Computers No RAM, ROM, I/O on CPU chip itself Example: Intel's x86, Motorola’s 680x0 8051 by Vijay Kumar K5/20/2014 4
  • 5. What is Microcontroller? 5/20/2014 8051 by Vijay Kumar K 5 Micro Controller Very Small A mechanism that controls the operation of a machine
  • 6. Microcontroller  A smaller computer  On-chip RAM, ROM, I/O ports...  Example: Motorola’s 6811, Intel’s 8051, Zilog’s Z8 and PIC 8051 by Vijay Kumar K5/20/2014 6
  • 7. 5/20/2014 8051 by Vijay Kumar K 7
  • 8. 8051 by Vijay Kumar K5/20/2014 8
  • 9. Microprocessor vs. Microcontroller Microprocessor  CPU is stand-alone, RAM, ROM, I/O, timer are separate  Designer can decide on the amount of ROM, RAM and I/O ports.  Expansive  Versatility  General-purpose Microcontroller  CPU, RAM, ROM, I/O and timer are all on a single chip  Fix amount of on-chip ROM, RAM, I/O ports  For applications in which cost, power and space are critical  Not Expansive  Single-purpose
  • 10. 5/20/2014 8051 by Vijay Kumar K 10
  • 11. Microcontrollers for Embedded Systems  Home Appliances, intercom, telephones, security systems, garage door openers, answering machines, fax machines, home computers, TVs, cable TV tuner, VCR, camcorder, remote controls, video games, cellular phones, musical instruments, sewing machines, lighting control, paging, camera, pinball machines, toys, exercise equipment etc.  Office Telephones, computers, security systems, fax machines, microwave, copier, laser printer, color printer, paging etc.  Auto Trip computer, engine control, air bag, ABS, instrumentation, security system, transmission control, entertainment, climate control, cellular phone, keyless entry
  • 12. Choosing a Microcontroller  8-bit microcontrollers  Motorola’s 6811  Intel’s 8051  Zilog’s Z8  Microchip’s PIC  There are also 16-bit and 32-bit microcontrollers made by various chip makers
  • 13. Criteria for Choosing a Microcontroller 1.Meeting the computing needs of the task at hand efficiently and cost effectively Speed Packaging Power consumption The amount of RAM and ROM on chip The number of I/O pins and the timer on chip How easy to upgrade to higher performance or lower power-consumption versions Cost per unit
  • 14. 2. Availability of software development tools, such as compilers, assemblers, and debuggers 3. Wide availability and reliable sources of the microcontroller The 8051 family has the largest number of diversified (multiple source) suppliers  Intel (original)  Atmel  Philips/Signetics  AMD  Infineon (formerly Siemens)  Dallas Semiconductor/Maxim Criteria for Choosing a Microcontroller
  • 15. 8051 by Vijay Kumar K5/20/2014 15 Salient Features 1. 8 bit microcontroller originally developed by Intel in 1980. 2. High-performance CMOS Technology. 3. 40 pin DIP IC 4. Address bus is of 16 bit & data bus is of 8 bit. 5. 4K bytes internal ROM (Program memory). 6. 128 bytes internal RAM (Data memory). 7. It has four 8 bit ports, total 32 I/O lines. 8. Two 16-bit timers (T0 & T1). 9. Serial interface Communication. 10. 64K external code & data memory space.
  • 16. 8051 by Vijay Kumar K5/20/2014 16 11. 210 bit-addressable locations. 12. Internal memory consists of on-chip ROM and on-chip data RAM. 13. 8051 implements a separate memory space for programs (code) and data. 14. Operating frequency is 24MHz-33MHz and it contains On-chip clock oscillator 15. +5V Regulated DC power supply is required to operate . 16. RAM, ROM, I/O ports, one serial port and timers are all on-chip. 17. 6-interrupts (2 are external with 2 priority levels). 18. Low-power Idle and Power-down Modes. 19. Full duplex UART. 20. 8051 has 21 special function registers (SFRs).
  • 17. 8051 by Vijay Kumar K5/20/2014 17 8051 Family The 8051 is a subset of the 8052 The 8031 is a ROM-less 8051  Add external ROM to it  You lose two ports, and leave only 2 ports for I/O operations
  • 18. 5/20/2014 8051 by Vijay Kumar K 18 8051 Pin diagram:-
  • 19. 8051 by Vijay Kumar K 5/20/2014 19
  • 20. 8051 by Vijay Kumar K5/20/2014 20 XTAL2 and XTAL1 (18 and 19 pins) The 8051 has an on-chip oscillator but requires an external clock to run it A quartz crystal oscillator is connected to inputs XTAL1 (pin19) and XTAL2 (pin18) The quartz crystal oscillator also needs two capacitors of 30 pF value
  • 21. 8051 by Vijay Kumar K5/20/2014 21
  • 22. 8051 by Vijay Kumar K5/20/2014 22 XTAL1 and XTAL2 …..  If you use a frequency source other than a crystal oscillator, such as a TTL oscillator:  It will be connected to XTAL1  XTAL2 is left unconnected
  • 23. 8051 by Vijay Kumar K5/20/2014 23 XTAL1 and XTAL2 …..  The speed of 8051 refers to the maximum oscillator frequency connected to XTAL.  We can observe the frequency on the XTAL2 pin using the oscilloscope.
  • 24. 8051 by Vijay Kumar K5/20/2014 24 RST (Pin 9)  RESET pin 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
  • 25. 8051 by Vijay Kumar K5/20/2014 25  There is no on-chip ROM in 8031 and 8032 .  The EA pin is connected to GND to indicate the code is stored externally.  PSEN & ALE are used for external ROM.  For 8051, EA pin is connected to Vcc.  “ ” means active low. EA(pin 31):external access
  • 26. 8051 by Vijay Kumar K5/20/2014 26 EA EA “external access’’, is an input pin and must be connected to Vcc or GND The 8051 family members all come with on-chip ROM to store programs and also have an external code and data memory. Normally EA pin is connected to Vcc EA pin must be connected to GND to indicate that the code or data is stored externally.
  • 27. PSEN (Pin 29)  PSEN, “program store enable’’, is an output pin  This pin is connected to the OE pin of the external memory.  For External Code Memory, PSEN = 0  For External Data Memory, PSEN = 1  Address Latch Enable  It is an output pin and is active high.  8051 port 0 provides both address and data.  The ALE pin is used for de-multiplexing the address and data by connecting to the G pin of the 74LS373 latch. ALE(pin 30):
  • 28. I/O Port Pins  The four 8-bit I/O ports P0, P1, P2 and P3 each uses 8 pins.  All the ports upon RESET are configured as output, ready to be used as input ports by the external device.
  • 29. Port 0 Port 0 is also designated as AD0-AD7. 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  When ALE=1, it has address A0-A7
  • 30. Port 1 and Port 2 In 8051-based systems with no external memory connection:  Both P1 and P2 are used as simple I/O. In 8051-based systems with external memory connections:  Port 2 must be used along with P0 to provide the 16-bit address for the external memory.  P0 provides the lower 8 bits via A0 – A7.  P2 is used for the upper 8 bits of the 16-bit address, designated as A8 – A15, and it cannot be used for I/O.
  • 31. Port 3  Port 3 can be used as input or output.  Port 3 has the additional function of providing some extremely important signals
  • 32. Pin Description Summary PIN TYPE NAME AND FUNCTION Vss I Ground: 0 V reference. Vcc I Power Supply: This is the power supply voltage for normal, idle, and power-down operation. P0.0 - P0.7 I/O Port 0: Port 0 is an open-drain, bi-directional I/O port. Port 0 is also the multiplexed low-order address and data bus during accesses to external program and data memory. P1.0 - P1.7 I/O Port 1: Port I is an 8-bit bi-directional I/O port. P2.0 - P2.7 I/O Port 2: Port 2 is an 8-bit bidirectional I/O. Port 2 emits the high order address byte during fetches from external program memory and during accesses to external data memory that use 16 bit addresses. P3.0 - P3.7 I/O Port 3: Port 3 is an 8 bit bidirectional I/O port. Port 3 also serves special features as explained.
  • 33. Pin Description Summary PIN TYPE NAME AND FUNCTION RST I Reset: A high on this pin for two machine cycles while the oscillator is running, resets the device. ALE O Address Latch Enable: Output pulse for latching the low byte of the address during an access to external memory. PSEN O Program Store Enable: The read strobe to external program memory. When executing code from the external program memory, PSEN* is activated twice each machine cycle, except that two PSEN* activations are skipped during each access to external data memory. EA/VPP I External Access Enable/Programming Supply Voltage: EA must be externally held low to enable the device to fetch code from external program memory locations. If EA* Is held high, the device executes from internal program memory. This pin also receives the programming supply voltage Vpp during Flash programming. (applies for 89c5x MCU's)
  • 34.
  • 36. 5/20/2014 8051 by Vijay Kumar K 36
  • 38. 8051 Memory Structure External EXT INT 128 SFR External Program Memory Data Memory 64K 64K EA = 0 EA = 1 4K 60K
  • 39. Internal RAM Structure Direct & Indirect Addressing Direct Addressing Only SFR [ Special Function Registers] 128 Byte Internal RAM
  • 41. 5/20/2014 8051 by Vijay Kumar K 41 A Register (Accumulator)  Multiplication and division can be performed only upon numbers stored in the A and B registers. All other instructions in the program can use this register as a spare accumulator (A).  A register is a general-purpose register used for storing intermediate results obtained during operation B Register
  • 42. 5/20/2014 8051 by Vijay Kumar K 42 R Registers (R0-R7)  They occupy 4 banks within RAM. Similar to the accumulator, they are used for temporary storing variables and intermediate results during operation. Which one of these banks is to be active depends on two bits of the PSW Register. Active bank is a bank the registers of which are currently used.  This is a common name for 8 general-purpose registers (R0, R1, R2 ...R7). Even though they are not true SFRs, they deserve to be discussed here because of their purpose.
  • 43. 5/20/2014 8051 by Vijay Kumar K 43  Suppose it is necessary to perform some arithmetical operations upon numbers previously stored in the R registers: (R1+R2) - (R3+R4). Obviously, a register for temporary storing results of addition is needed. This is how it looks in the program: MOV A,R3; move number from R3 into accumulator ADD A,R4; add number from R4 to accumulator (result remains in accumulator) MOV R5,A; temporarily move the result from accumulator into R5 MOV A,R1; move number from R1 to accumulator ADD A,R2; add number from R2 to accumulator SUBB A,R5; subtract number from R5 (there are R3+R4) Example:-
  • 44. 5/20/2014 8051 by Vijay Kumar K 44 DPTR register is not a true one because it doesn't physically exist. It consists of two separate registers: DPH (Data Pointer High) and (Data Pointer Low). For this reason it may be treated as a 16-bit register or as two independent 8-bit registers. Their 16 bits are primarily used for external memory addressing. Besides, the DPTR Register is usually used for storing data and intermediate results. Data Pointer Register (DPTR)
  • 45. 5/20/2014 8051 by Vijay Kumar K 45 Stack Pointer (SP) Register  A value stored in the Stack Pointer points to the first free stack address and permits stack availability.  Stack pushes increment the value in the Stack Pointer by 1. Likewise, stack pops decrement its value by 1. Upon any reset and power-on, the value 7 is stored in the Stack Pointer, which means that the space of RAM reserved for the stack starts at this location. If another value is written to this register, the entire Stack is moved to the new memory location.
  • 46. 5/20/2014 8051 by Vijay Kumar K 46 P0, P1, P2, P3 - Input/output Registers  If neither external memory nor serial communication system are used then 4 ports with in total of 32 input/output pins are available for connection to peripheral environment.  Each bit within these ports affects the state and performance of appropriate pin of the microcontroller. Thus, bit logic state is reflected on appropriate pin as a voltage (0 or 5 V) and vice versa, voltage on a pin reflects the state of appropriate port bit.
  • 47. 5/20/2014 8051 by Vijay Kumar K 47 As mentioned, port bit state affects performance of port pins, i.e. whether they will be configured as inputs or outputs. If a bit is cleared (0), the appropriate pin will be configured as an output, while if it is set (1), the appropriate pin will be configured as an input. Upon reset and power-on, all port bits are set (1), which means that all appropriate pins will be configured as inputs.
  • 48. RS1 RS0 Space in RAM 0 0 Bank0 00h-07h 0 1 Bank1 08h-0Fh 1 0 Bank2 10h-17h 1 1 Bank3 18h-1Fh Program Status Word [PSW] C AC F0 RS1 RS0 OV F1 P Register Bank Select Carry Auxiliary Carry User Flag 0 Parity User Flag 1 Overflow
  • 49. 8051 by Vijay Kumar K 495/20/2014
  • 50. 8051 instructions that affects flag
  • 51. 128 Byte RAM  There are 128 bytes of RAM in the 8051.  Assigned addresses 00 to 7FH  The 128 bytes are divided into 3 different groups as follows: 1. A total of 32 bytes from locations 00 to 1F hex are set aside for register banks and the stack. 2. A total of 16 bytes from locations 20H to 2FH are set aside for bit-addressable read/write memory. 3. A total of 80 bytes from locations 30H to 7FH are used for read and write storage, called scratch pad. 128 BYTE INTERNAL RAM Register Banks Reg Bank 0 Reg Bank 1 Reg Bank 2 Reg Bank 3 BIT Addressable Area General Purpose Area
  • 52. 5/20/2014 8051 by Vijay Kumar K 52
  • 54. 8051 Register Bank Structure Bank 0 R0 R1 R2 R3 R4 R5 R6 R7Bank 3 R0 R1 R2 R3 R4 R5 R6 R7Bank 2 R0 R1 R2 R3 R4 R5 R6 R7Bank 1 R0 R1 R2 R3 R4 R5 R6 R7
  • 55. 8051 Register Banks with address
  • 57. 8051 Stack  The stack is a section of RAM used by the CPU to store information temporarily.  This information could be data or an address  The register used to access the stack is called the SP (stack pointer) register  The stack pointer in the 8051 is only 8 bit wide, which means that it can take value of 00 to FFH  When the 8051 is powered up, the SP register contains value 07  RAM location 08 is the first location begin used for the stack by the 8051
  • 58. 8051 Stack  The storing of a CPU register in the stack is called a PUSH  SP is pointing to the last used location of the stack  As we push data onto the stack, the SP is incremented by one  This is different from many microprocessors  Loading the contents of the stack back into a CPU register is called a POP  With every pop, the top byte of the stack is copied to the register specified by the instruction and the stack pointer is decremented once
  • 59. Bit Addressable & Byte Addressable
  • 61. Bit Addressable Programming  Example: Find out to which by each of the following bits belongs. Give the address of the RAM byte in hex (a) SETB 42H, (b) CLR 67H, (c) CLR 0FH (d) SETB 28H, (e) CLR 12, (f) SETB 05
  • 62. 8051 Peripheral Overview 1. Timers 2.Serial Port 3.Interrupts
  • 64. 5/20/2014 8051 by Vijay Kumar K 64 OSC ÷12 TLx (8 Bit) / 0C T  / 1C T  INT PIN Gate TR T PIN THx (8 Bit) TFx (1 Bit) INTERRUPT
  • 65. 5/20/2014 8051 by Vijay Kumar K 65 GATE: When set, timer/counter x is enabled, if INTx pin is high and TRx is set. When cleared, timer/counter x is enabled, if TRx bit set. C/T: When set, counter operation (input from Tx input pin). When cleared, timer operation (input from internal clock).
  • 66. 5/20/2014 8051 by Vijay Kumar K 66 The TMOD byte is not bit addressable.
  • 67. TMOD Register The TMOD byte is not bit addressable.
  • 69. 5/20/2014 8051 by Vijay Kumar K 69 Timer 0 Mode 3 Mode 2 Mode 1 Mode 0 Mode 2 Mode 1 Mode 0 Timer 1 8051 TIMERS
  • 70. 5/20/2014 8051 by Vijay Kumar K 70 OSC ÷12 TL0 / 0C T  / 1C T  0INT PIN Gate 0TR 0T PIN TH0 INTERRUPT TIMER 0 TF0
  • 71. 5/20/2014 8051 by Vijay Kumar K 71 TL0 (5 Bit) INTERRUPT TIMER 0 – Mode 0 OSC ÷12 / 0C T  / 1C T  0INT PIN Gate 0TR 0T PIN TH0 (8 Bit) TF0 13 Bit Timer / Counter Maximum Count = 1FFFh (0001111111111111)
  • 72. 5/20/2014 8051 by Vijay Kumar K 72 TL0 (8 Bit) INTERRUPT TIMER 0 – Mode 1 OSC ÷12 / 0C T  / 1C T  0INT PIN Gate 0TR 0T PIN TH0 (8 Bit) TF0 16 Bit Timer / Counter Maximum Count = FFFFh (1111111111111111)
  • 73. 5/20/2014 8051 by Vijay Kumar K 73 TH0 (8 Bit) Reload TIMER 0 – Mode 2 8 Bit Timer / Counter with AUTORELOAD TL0 (8 Bit) OSC ÷12 / 0C T  / 1C T  0INT PIN Gate 0TR 0T PIN TH0 (8 Bit) TF0 INTERRUPT Maximum Count = FFh (11111111)
  • 74. 5/20/2014 8051 by Vijay Kumar K 74 TL0 (8 Bit) INTERRUPT TIMER 0 – Mode 3 OSC ÷12 / 0C T  / 1C T  0INT PIN Gate 0TR 0T PIN TF0 Two - 8 Bit Timer / Counter OSC ÷12 1TR TH0 (8 Bit) INTERRUPTTF1
  • 75. 5/20/2014 8051 by Vijay Kumar K 75 OSC ÷12 TL1 / 0C T  / 1C T  Gate TH1 INTERRUPT TIMER 1 TF1 1INT PIN 1TR 1T PIN
  • 76. 5/20/2014 8051 by Vijay Kumar K 76 TL1 (5 Bit) INTERRUPT TIMER 1 – Mode 0 OSC ÷12 / 0C T  / 1C T  Gate TH1 (8 Bit) TF1 13 Bit Timer / Counter Maximum Count = 1FFFh (0001111111111111) 1INT PIN 1TR 1T PIN
  • 77. 5/20/2014 8051 by Vijay Kumar K 77 TL1 (8 Bit) INTERRUPT TIMER 1 – Mode 1 OSC ÷12 / 0C T  / 1C T  Gate TH1 (8 Bit) TF1 16 Bit Timer / Counter Maximum Count = FFFFh (1111111111111111) 1INT PIN 1TR 1T PIN
  • 78. 5/20/2014 8051 by Vijay Kumar K 78 TH1 (8 Bit) Reload TIMER 1 – Mode 2 8 Bit Timer / Counter with AUTORELOAD TL1 (8 Bit) OSC ÷12 / 0C T  / 1C T  Gate TH1 (8 Bit) TF1 INTERRUPT Maximum Count = FFh (11111111) 1INT PIN 1TR 1T PIN
  • 79. Programming Timers  Example: Indicate which mode and which timer are selected for each of the following. (a) MOV TMOD, #01H (b) MOV TMOD, #20H (c) MOV TMOD, #12H  Solution: We convert the value from hex to binary.  (a) TMOD = 00000001, mode 1 of timer 0 is selected.  (b) TMOD = 00100000, mode 2 of timer 1 is selected.  (c) TMOD = 00010010, mode 2 of timer 0, and mode 1 of timer 1 are selected.
  • 80. Programming Timers Find the timer’s clock frequency and its period for various 8051-based system, with the crystal frequency 11.0592 MHz when C/T bit of TMOD is 0. Solution: 1/12 × 11.0529 MHz = 921.6 MHz; T = 1/921.6 kHz = 1.085 us
  • 82. Basics of Serial Communication Computers transfer data in two ways:  Parallel: Often 8 or more lines (wire conductors) are used to transfer data to a device that is only a few feet away.  Serial: To transfer to a device located many meters away, the serial method is used. The data is sent one bit at a time.
  • 83. Basics of Serial Communication  Serial data communication uses two methods  Synchronous method transfers a block of data at a time  Asynchronous method transfers a single byte at a time  There are special IC’s made by many manufacturers for serial communications.  UART (universal asynchronous Receiver transmitter)  USART (universal synchronous-asynchronous Receiver-transmitter)
  • 84. Asynchronous – Start & Stop Bit  Asynchronous serial data communication is widely used for character-oriented transmissions  Each character is placed in between start and stop bits, this is called framing.  Block-oriented data transfers use the synchronous method.  The start bit is always one bit, but the stop bit can be one or two bits  The start bit is always a 0 (low) and the stop bit(s) is 1 (high)
  • 86. Data Transfer Rate The rate of data transfer in serial data communication is stated in bps (bits per second). Another widely used terminology for bps is baud rate. It is modem terminology and is defined as the number of signal changes per second In modems, there are occasions when a single change of signal transfers several bits of data As far as the conductor wire is concerned, the baud rate and bps are the same.
  • 87. 8051 Serial Port  Synchronous and Asynchronous  SCON Register is used to Control  Data Transfer through TXd & RXd pins  Some time - Clock through TXd Pin  Four Modes of Operation: Mode 0 :Synchronous Serial Communication Mode 1 :8-Bit UART with Timer Data Rate Mode 2 :9-Bit UART with Set Data Rate Mode 3 :9-Bit UART with Timer Data Rate
  • 88. Registers related to Serial Communication 1. SBUF Register 2. SCON Register 3. PCON Register
  • 89. SBUF Register  SBUF is an 8-bit register used solely for serial communication.  For a byte data to be transferred via the TxD line, it must be placed in the SBUF register.  The moment a byte is written into SBUF, it is framed with the start and stop bits and transferred serially via the TxD line.  SBUF holds the byte of data when it is received by 8051 RxD line.  When the bits are received serially via RxD, the 8051 deframes it by eliminating the stop and start bits, making a byte out of the data received, and then placing it in SBUF.
  • 91. 5/20/2014 8051 by Vijay Kumar K 91 SCON Register Set to Enable Serial Data reception Enable Multiprocessor Communication Mode 9th Data Bit Sent in Mode 2,3 9th Data Bit Received in Mode 2,3 Set when a Character received Set when Stop bit Txed SM0 SM1 Mode Description 0 0 0 8-bit Shift Register 0 1 1 8-bit UART 1 0 2 9-bit UART 1 1 3 9-bit UART
  • 92. 8051 Serial Port – Mode 0 The Serial Port in Mode-0 has the following features: 1. Serial data enters and exits through RXD 2. TXD outputs the clock 3. 8 bits are transmitted / received 4. The baud rate is fixed at (1/12) of the oscillator frequency
  • 93. 8051 Serial Port – Mode 1 The Serial Port in Mode-1 has the following features: 1. Serial data enters through RXD 2. Serial data exits through TXD 3. On receive, the stop bit goes into RB8 in SCON 4. 10 bits are transmitted / received 1. Start bit (0) 2. Data bits (8) 3. Stop Bit (1) 5. Baud rate is determined by the Timer 1 over flow rate.
  • 94. 8051 Serial Port – Mode 2 The Serial Port in Mode-2 has the following features: 1. Serial data enters through RXD 2. Serial data exits through TXD 3. 9th data bit (TB8) can be assign value 0 or 1 4. On receive, the 9th data bit goes into RB8 in SCON 5. 11 bits are transmitted / received 1.Start bit (0) 2.Data bits (9) 3.Stop Bit (1) 6. Baud rate is programmable
  • 95. 8051 Serial Port – Mode 3 The Serial Port in Mode-3 has the following features: 1. Serial data enters through RXD 2. Serial data exits through TXD 3. 9th data bit (TB8) can be assign value 0 or 1 4. On receive, the 9th data bit goes into RB8 in SCON 5. 11 bits are transmitted / received 1.Start bit (0) 2.Data bits (9) 3.Stop Bit (1) 6. Baud rate is determined by Timer 1 overflow rate.
  • 96. Programming Serial Data Transmission1. TMOD register is loaded with the value 20H, indicating the use of timer 1 in mode 2 (8-bit auto-reload) to set baud rate. 2. The TH1 is loaded with one of the values to set baud rate for serial data transfer. 3. The SCON register is loaded with the value 50H, indicating serial mode 1, where an 8- bit data is framed with start and stop bits. 4. TR1 is set to 1 to start timer 1 5. TI is cleared by CLR TI instruction 6. The character byte to be transferred serially is written into SBUF register. 7. The TI flag bit is monitored with the use of instruction JNB TI, xx to see if the character has been transferred completely. 8. To transfer the next byte, go to step 5
  • 97. Programming Serial Data Reception 1. TMOD register is loaded with the value 20H, indicating the use of timer 1 in mode 2 (8-bit auto-reload) to set baud rate. 2. TH1 is loaded to set baud rate 3. The SCON register is loaded with the value 50H, indicating serial mode 1, where an 8- bit data is framed with start and stop bits. 4. TR1 is set to 1 to start timer 1 5. RI is cleared by CLR RI instruction 6. The RI flag bit is monitored with the use of instruction JNB RI, xx to see if an entire character has been received yet 7. When RI is raised, SBUF has the byte, its contents are moved into a safe place. 8. To receive the next character, go to step 5.
  • 98. Doubling Baud Rate  There are two ways to increase the baud rate of data transfer 1. By using a higher frequency crystal 2. By changing a bit in the PCON register
  • 99. 5/20/2014 8051 by Vijay Kumar K 99 PCON register PCON register is an 8-bit register.  When 8051 is powered up, SMOD is zero  We can set it to high by software and thereby double the baud rate.  SMOD Baud rate is twice as much higher by setting this bit.  GF1 General-purpose bit (available for use).  GF0 General-purpose bit (available for use).  PD By setting this bit the microcontroller enters the Power Down mode.  IDL By setting this bit the microcontroller enters the Idle mode.
  • 100. 5/20/2014 8051 by Vijay Kumar K 100
  • 101. Doubling Baud Rate (cont…)
  • 103. INTERRUPTS  An interrupt is an external or internal event that interrupts the microcontroller to inform it that a device needs its service  A single microcontroller can serve several devices by two ways: 1. Interrupt 2. Polling
  • 104. Interrupt Vs Polling 1. Interrupts  Whenever any device needs its service, the device notifies the microcontroller by sending it an interrupt signal.  Upon receiving an interrupt signal, the microcontroller interrupts whatever it is doing and serves the device.  The program which is associated with the interrupt is called the interrupt service routine (ISR) or interrupt handler. 2. Polling  The microcontroller continuously monitors the status of a given device.  When the conditions met, it performs the service.  After that, it moves on to monitor the next device until every one is serviced.
  • 105. Interrupt Vs Polling  The polling method is not efficient, since it wastes much of the microcontroller’s time by polling devices that do not need service.  The advantage of interrupts is that the microcontroller can serve many devices (not all at the same time).  Each devices can get the attention of the microcontroller based on the assigned priority.  For the polling method, it is not possible to assign priority since it checks all devices in a round-robin fashion.  The microcontroller can also ignore (mask) a device request for service in Interrupt.
  • 106. Steps in Executing an Interrupt 1. It finishes the instruction it is executing and saves the address of the next instruction (PC) on the stack. 2. It also saves the current status of all the interrupts internally (i.e: not on the stack). 3. It jumps to a fixed location in memory, called the interrupt vector table, that holds the address of the ISR. 4. The microcontroller gets the address of the ISR from the interrupt vector table and jumps to it. 5. It starts to execute the interrupt service subroutine until it reaches the last instruction of the subroutine which is RETI (return from interrupt). 6. Upon executing the RETI instruction, the microcontroller returns to the place where it was interrupted.
  • 107. Six Interrupts in 8051 Six interrupts are allocated as follows: 1. Reset – power-up reset. 2. Two interrupts are set aside for the timers.  one for Timer 0 (T0) and one for Timer 1 (T1) 3. Two interrupts are set aside for hardware external interrupts.  P3.2 and P3.3 are for the external hardware interrupts INT0 (or EX1), and INT1 (or EX2) 4. Serial communication has a single interrupt that belongs to both receive and transfer.
  • 108. What events can trigger Interrupts?  We can configure the 8051 so that any of the following events will cause an interrupt:  Timer 0 Overflow.  Timer 1 Overflow.  Reception/Transmission of Serial Character.  External Event 0.  External Event 1.  We can configure the 8051 so that when Timer 0 Overflows or when a character is sent/received, the appropriate interrupt handler routines are called.
  • 109. 5/20/2014 8051 by Vijay Kumar K 109
  • 111. 8051 Interrupt related Registers  The various registers associated with the use of interrupts are: TCON - Edge and Type bits for External Interrupts 0/1 SCON - RI and TI interrupt flags for RS232 IE - Enable interrupt sources IP - Specify priority of interrupts
  • 112. Enabling and Disabling an Interrupt  Upon reset, all interrupts are disabled (masked), meaning that none will be responded to by the microcontroller if they are activated.  The interrupts must be enabled by software in order for the microcontroller to respond to them.  There is a register called IE (interrupt enable) that is responsible for enabling (unmasking) and disabling (masking) the interrupts.
  • 113. Interrupt Enable (IE) Register EA - global interrupt enable/disable: 0 - disables all interrupt requests. 1 - enables all individual interrupt requests. ES - enables or disables serial interrupt: 0 - UART system cannot generate an interrupt. 1 - UART system enables an interrupt. ET1 - bit enables or disables Timer 1 interrupt: 0 - Timer 1 cannot generate an interrupt. 1 - Timer 1 enables an interrupt. EX1 - bit enables or disables external 1 interrupt: 0 - change of the pin INT0 logic state cannot generate an interrupt. 1 - enables an external interrupt on the pin INT0 state change. ET0 - bit enables or disables timer 0 interrupt: 0 - Timer 0 cannot generate an interrupt. 1 - enables timer 0 interrupt. EX0 - bit enables or disables external 0 interrupt: 0 - change of the INT1 pin logic state cannot generate an interrupt. 1 - enables an external interrupt on the pin INT1 state change.
  • 114. Enabling and Disabling an Interrupt  Example: Show the instructions to (a) enable the serial interrupt, timer 0 interrupt, and external hardware interrupt 1 and (b) disable (mask) the timer 0 interrupt, then (c) show how to disable all the interrupts with a single instruction.  Solution:  (a) MOV IE,#10010110B ;enable serial, timer 0, EX1  Another way to perform the same manipulation is:  SETB IE.7 ;EA=1, global enable  SETB IE.4 ;enable serial interrupt  SETB IE.1 ;enable Timer 0 interrupt  SETB IE.2 ;enable EX1  (b) CLR IE.1 ;mask (disable) timer 0 interrupt only  (c) CLR IE.7 ;disable all interrupts
  • 115. Interrupt Priority When the 8051 is powered up, the priorities are assigned according to the following. In reality, the priority scheme is nothing but an internal polling sequence in which the 8051 polls the interrupts in the sequence listed and responds accordingly.
  • 116. Interrupt Priority  We can alter the sequence of interrupt priority by assigning a higher priority to any one of the interrupts by programming a register called IP (interrupt priority).  To give a higher priority to any of the interrupts, we make the corresponding bit in the IP register high.
  • 117. Interrupt Priority (IP) Register PS PT1 PX1 PT0 PX0Reserved Serial Port Timer 1 Pin INT 1 Pin Timer 0 Pin INT 0 Pin Priority bit=1 assigns high priority Priority bit=0 assigns low priority
  • 118. 8051 Software Overview 1. Addressing Modes 2.Instruction Set 3.Programming
  • 119. 8051 Addressing Modes The CPU can access data in various ways, which are called addressing modes 1. Immediate Addressing Modes 2. Register Addressing Modes 3. Direct Addressing Modes 4. Register Indirect Addressing Modes 5. External Indirect Addressing Modes
  • 120. Immediate Addressing Mode  The source operand is a constant.  The immediate data must be preceded by the pound sign, “#”  Can load information into any registers, including 16-bit DPTR register  DPTR can also be accessed as two 8-bit registers, the high byte DPH and low byte DPL
  • 121. Register Addressing Mode  Use registers to hold the data to be manipulated. • The source and destination registers must match in size. MOV DPTR,A will give an error • The movement of data between Rn registers is not allowed MOV R4,R7 is invalid
  • 122. Direct Addressing Mode  It is most often used the direct addressing mode to access RAM locations 30 – 7FH.  The entire 128 bytes of RAM can be accessed.  Contrast this with immediate addressing mode, there is no “#” sign in the operand.
  • 123. SFR Registers & their Addresses MOV 0E0H,#55H ;is the same as MOV A,#55H ;which means load 55H into A (A=55H) MOV 0F0H,#25H ;is the same as MOV B,#25H ;which means load 25H into B (B=25H) MOV 0E0H,R2 ;is the same as MOV A,R2 ;which means copy R2 into A MOV 0F0H,R0 ;is the same as MOV B,R0 ;which means copy R0 into B
  • 124. SFR Addresses ( 1 of 2 )
  • 125. SFR Addresses ( 2 of 2 )
  • 127. Stack and Direct Addressing Mode  Only direct addressing mode is allowed for pushing or popping the stack.  PUSH A is invalid.  Pushing the accumulator onto the stack must be coded as PUSH 0E0H.
  • 128. Register Indirect Addressing Mode  A register is used as a pointer to the data.  Only register R0 and R1 are used for this purpose.  R2 – R7 cannot be used to hold the address of an operand located in RAM.  When R0 and R1 hold the addresses of RAM locations, they must be preceded by the “@” sign.
  • 129. 5/20/2014 8051 by Vijay Kumar K 1295/20/2014 8051 by Vijay Kumar K 129 Write a program to copy the value 55H into RAM memory locations 40H to 41H using (a) direct addressing mode, (b) register indirect addressing mode without a loop, and (c) with a loop.
  • 130. Register Indirect Addressing Mode The advantage is that it makes accessing data dynamic rather than static as in direct addressing mode. Looping is not possible in direct addressing mode. Write a program to clear 16 RAM locations starting at RAM address 60H.
  • 131. External Direct  External Memory is accessed.  There are only two commands that use External Direct addressing mode:  MOVX A, @DPTR MOVX @DPTR, A  DPTR must first be loaded with the address of external memory.
  • 132. 5/20/2014 8051 by Vijay Kumar K 132 8051 Instruction Set
  • 133. 5/20/2014 8051 by Vijay Kumar K 133 1. Data Transfer Instructions 2. Arithmetic Instructions 3. Branch Instructions 4. Logic Instructions 5. Bit-oriented Instructions  Depending on operation they perform, all instructions are divided in several groups:
  • 134. 5/20/2014 8051 by Vijay Kumar K 134 Data Transfer Instructions Mnemonic Description MOV A,Rn Moves the register to the accumulator MOV A,direct Moves the direct byte to the accumulator MOV A,@Ri Moves the indirect RAM to the accumulator MOV A,#data Moves the immediate data to the accumulator MOV Rn,A Moves the accumulator to the register MOV Rn,direct Moves the direct byte to the register MOV Rn,#data Moves the immediate data to the register MOV direct,A Moves the accumulator to the direct byte MOV direct,Rn Moves the register to the direct byte MOV direct,direct Moves the direct byte to the direct byte MOV direct,@Ri Moves the indirect RAM to the direct byte MOV direct,#data Moves the immediate data to the direct byte MOV @Ri,A Moves the accumulator to the indirect RAM
  • 135. 5/20/2014 8051 by Vijay Kumar K 135 Mnemonic Description MOV @Ri,direct Moves the direct byte to the indirect RAM MOV @Ri,#data Moves the immediate data to the indirect RAM MOV DPTR,#data Moves a 16-bit data to the data pointer MOVC A,@A+DPTR Moves the code byte relative to the DPTR to the accumulator (address=A+DPTR) MOVC A,@A+PC Moves the code byte relative to the PC to the accumulator (address=A+PC) MOVX A,@Ri Moves the external RAM (8-bit address) to the accumulator MOVX A,@DPTR Moves the external RAM (16-bit address) to the accumulator MOVX @Ri,A Moves the accumulator to the external RAM (8-bit address) MOVX @DPTR,A Moves the accumulator to the external RAM (16-bit address) PUSH direct Pushes the direct byte onto the stack POP direct Pops the direct byte from the stack/td> XCH A,Rn Exchanges the register with the accumulator XCH A,direct Exchanges the direct byte with the accumulator XCH A,@Ri Exchanges the indirect RAM with the accumulator XCHD A,@Ri Exchanges the low-order nibble indirect RAM with the accumulator
  • 136. 5/20/2014 8051 by Vijay Kumar K 136 Mnemonic Description ADD A,Rn Adds the register to the accumulator ADD A,direct Adds the direct byte to the accumulator ADD A,@Ri Adds the indirect RAM to the accumulator ADD A,#data Adds the immediate data to the accumulator ADDC A,Rn Adds the register to the accumulator with a carry flag ADDC A,direct Adds the direct byte to the accumulator with a carry flag ADDC A,@Ri Adds the indirect RAM to the accumulator with a carry flag ADDC A,#data Adds the immediate data to the accumulator with a carry flag SUBB A,Rn Subtracts the register from the accumulator with a borrow SUBB A,direct Subtracts the direct byte from the accumulator with a borrow Arithmetic Instructions
  • 137. 5/20/2014 8051 by Vijay Kumar K 137 Mnemonic Description SUBB A,@Ri Subtracts the indirect RAM from the accumulator with a borrow SUBB A,#data Subtracts the immediate data from the accumulator with a borrow INC A Increments the accumulator by 1 INC Rn Increments the register by 1 INC Rx Increments the direct byte by 1 INC @Ri Increments the indirect RAM by 1 DEC A Decrements the accumulator by 1 DEC Rn Decrements the register by 1 DEC Rx Decrements the direct byte by 1 DEC @Ri Decrements the indirect RAM by 1 INC DPTR Increments the Data Pointer by 1 MUL AB Multiplies A and B DIV AB Divides A by B DA A Decimal adjustment of the accumulator according to BCD code
  • 138. 5/20/2014 8051 by Vijay Kumar K 138 Mnemonic Description ACALL addr11 Absolute subroutine call LCALL addr16 Long subroutine call RET Returns from subroutine RETI Returns from interrupt subroutine AJMP addr11 Absolute jump LJMP addr16 Long jump SJMP rel Short jump (from –128 to +127 locations relative to the following instruction) JC rel Jump if carry flag is set. Short jump. JNC rel Jump if carry flag is not set. Short jump. JB bit,rel Jump if direct bit is set. Short jump. Branch Instructions
  • 139. 5/20/2014 8051 by Vijay Kumar K 139 Mnemonic Description JBC bit,rel Jump if direct bit is set and clears bit. Short jump. JMP @A+DPTR Jump indirect relative to the DPTR JZ rel Jump if the accumulator is zero. Short jump. JNZ rel Jump if the accumulator is not zero. Short jump. CJNE A,direct,rel Compares direct byte to the accumulator and jumps if not equal. Short jump. CJNE A,#data,rel Compares immediate data to the accumulator and jumps if not equal. Short jump. CJNE Rn,#data,rel Compares immediate data to the register and jumps if not equal. Short jump. CJNE @Ri,#data,rel Compares immediate data to indirect register and jumps if not equal. Short jump. DJNZ Rn,rel Decrements register and jumps if not 0. Short jump. DJNZ Rx,rel Decrements direct byte and jump if not 0. Short jump. NOP No operation
  • 140. 5/20/2014 8051 by Vijay Kumar K 140 Mnemonic Description ANL A,Rn AND register to accumulator ANL A,direct AND direct byte to accumulator ANL A,@Ri AND indirect RAM to accumulator ANL A,#data AND immediate data to accumulator ANL direct,A AND accumulator to direct byte ANL direct,#data AND immediae data to direct register ORL A,Rn OR register to accumulator ORL A,direct OR direct byte to accumulator ORL A,@Ri OR indirect RAM to accumulator ORL direct,A OR accumulator to direct byte ORL direct,#data OR immediate data to direct byte Logic Instructions
  • 141. 5/20/2014 8051 by Vijay Kumar K 141 XRL A,Rn Exclusive OR register to accumulator XRL A,direct Exclusive OR direct byte to accumulator XRL A,@Ri Exclusive OR indirect RAM to accumulator XRL A,#data Exclusive OR immediate data to accumulator XRL direct,A Exclusive OR accumulator to direct byte XORL direct,#data Exclusive OR immediate data to direct byte CLR A Clears the accumulator CPL A Complements the accumulator (1=0, 0=1) SWAP A Swaps nibbles within the accumulator RL A Rotates bits in the accumulator left RLC A Rotates bits in the accumulator left through carry RR A Rotates bits in the accumulator right RRC A Rotates bits in the accumulator right through carry
  • 142. 5/20/2014 8051 by Vijay Kumar K 142 Mnemonic Description CLR C Clears the carry flag CLR bit Clears the direct bit SETB C Sets the carry flag SETB bit Sets the direct bit CPL C Complements the carry flag CPL bit Complements the direct bit ANL C,bit AND direct bit to the carry flag ANL C,/bit AND complements of direct bit to the carry flag ORL C,bit OR direct bit to the carry flag ORL C,/bit OR complements of direct bit to the carry flag MOV C,bit Moves the direct bit to the carry flag MOV bit,C Moves the carry flag to the direct bit Bit-oriented Instructions
  • 143. 5/20/2014 8051 by Vijay Kumar K 143 Here is a list of the operands and their meanings:  A - accumulator; Rn - is one of working registers (R0-R7) in the currently active RAM memory bank;  Direct - is any 8-bit address register of RAM. It can be any general-purpose register or a SFR (I/O port, control register etc.);  @Ri - is indirect internal or external RAM location addressed by register R0 or R1;  #data - is an 8-bit constant included in instruction (0-255);  #data16 - is a 16-bit constant included as bytes 2 and 3 in instruction (0-65535);  addr16 - is a 16-bit address. May be anywhere within 64KB of program memory;  addr11 - is an 11-bit address. May be within the same 2KB page of program memory as the first byte of the following instruction;  rel - is the address of a close memory location (from -128 to +127 relative to the first byte of the following instruction). On the basis of it, assembler computes the value to add or subtract from the number currently stored in the program counter;  bit - is any bit-addressable I/O pin, control or status bit; and  C - is carry flag of the status register (register PSW). Description of all 8051 instructions