SlideShare a Scribd company logo
Interrupts in 8051
Introduction
• A single microcontroller can serve several devices by two ways
 Interrupts
 Polling
• In 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
• In Polling, The microcontroller continuously monitors the status of all
devices in Round-robin manner.
• When the conditions are for a given device are met, it performs the service.
• After that, it moves on to monitor the next device until every one is
serviced
What is an Interrupt?
• An interrupt is an external or internal event that interrupts
the microcontroller to inform it that a device needs its service
• The program which is associated with the interrupt is called
the Interrupt Service Routine (ISR) or interrupt handler
Polling Vs Interrupts
Polling Interrupt
In Polling, The microcontroller
continuously monitors the status of all
devices in Round-robin manner.
When the conditions are for a given
device are met, it performs the service.
After that, it moves on to monitor the
next device until every one is serviced
In 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 polling method is not efficient, since
it wastes much of the microcontroller’s
time by polling devices that do not need
service
Interrupts serve only those devices which
need service and hence are efficient
It is not possible to assign priority since it
checks all devices ina round-robin fashion
Each devices can get the attention of the
microcontroller based on the assigned
priority
Ignoring a device request is not possible microcontroller can also ignore
(mask) a device request for service
Maskable vs Non-Maskable Interrupts
Maskable Interrupts
• A maskable interrupt is one that programmaer can ignore by
setting (or clearing) a bit in an interrupt control register.
• Typically, the microcontroller might allow multiple interrupt
sources, but application requires only few of them. The
programmer can mask off the unused interrupts
Non Maskable Interrupts
• Non-maskable interrupts are those interrupts which do not
get gated by the interrupt control register -- they ALWAYS
interrupt, no matter what state the microcontroller is in.
• Typically these are used for CRITICIAL or FATAL conditions, or
for system reset functions.
Interrupt Service Routine
• For every interrupt, there must be an interrupt service routine
(ISR), or interrupt handler
• When an interrupt is invoked, the microcontroller runs the
interrupt service routine
• For every interrupt, there is a fixed location in memory that
holds the address of its ISR
• The group of memory locations set aside to hold the
addresses of ISRs is called interrupt vector table
Steps in executing an interrupt
Upon activation of an interrupt, the microcontroller goes
through the following steps
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
Steps in executing an interrupt
4. The microcontroller gets the address of the ISR from the
interrupt vector table and jumps to it
 It starts to execute the interrupt service subroutine
until it reaches the last instruction of the subroutine
which is RETI (return from interrupt)
5. Upon executing the RETI instruction, the microcontroller
returns to the place where it was interrupted
 First, it gets the program counter (PC) address from
the stack by popping the top two bytes of the stack
into the PC
 Then it starts to execute from that address
Interrupts in 8051
There are SIX interrupts in 8051
• Reset – power-up reset
• Two interrupts are set aside for the timers:
 one for timer 0 and one for timer 1
• 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)
• Serial communication has a single interrupt that belongs to
both receive and transfer
Interrupt Vector Table of 8051
Enabling and Disabling of Interrupts
• Upon reset, all interrupts are disabled (masked),
meaning that none will be responded to by the
microcontroller, even 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
IE Register (Interrupt Enable Register)
• Bit D7 of the IE register (EA) must be set to high to allow the rest of
register to take effect
• The value of EA
 If EA = 1, interrupts are enabled and will be responded to if their
corresponding bits in IE are high
 If EA = 0, no interrupt will be responded to, even if the
associated bit in the IE register is high
Timer Interrupt
• The timer flag (TF) is raised when the timer rolls over
• In polling TF, we have to wait until the TF is raised
• The problem with this method is that the microcontroller is tied
down while waiting for TF to be raised, and can not do anything else
• If the timer interrupt in the IE register is enabled, whenever the
timer rolls over, TF is raised, and the microcontroller is interrupted in
whatever it is doing, and jumps to the interrupt vector table to
service the ISR.
• Hence, using interrupts, the problem of tying down the
microcontroller is solved.
• In this way, the microcontroller can do other tasks until it is notified
that the timer has rolled over
External Interrupts in 8051
• The 8051 has two external hardware interrupts
• Pin 12 (P3.2) and pin 13 (P3.3) of the 8051, designated as INT0
and INT1, are used as external hardware interrupts
• The interrupt vector table locations 0003H and 0013H are set
aside for INT0 and INT1
• There are two activation levels for the external hardware
interrupts
Level trigged
Edge trigged
External Interrupts in 8051
Level Triggered Interrupts
• In the level-triggered mode, INT0 and INT1 pins are
normally high
• If a low-level signal is applied to them, it triggers the
interrupt. Then the microcontroller stops whatever it is
doing and jumps to the interrupt vector table to service
that interrupt
• The low-level signal at the INT pin must be removed before
the execution of the last instruction of the ISR, RETI;
otherwise, another interrupt will be generated
• This is called a level-triggered interrupt and is the default
mode upon reset of the 8051
Edge Triggered Interrupts
• To make INT0 and INT1 edge-triggered interrupts, we must
program the bits of the TCON register
• The TCON register holds the IT0 and IT1 flag bits, that
determine level- or edge-triggered mode of the hardware
interrupt
• IT0 and IT1 are also referred to as TCON.0 and TCON.2 since
the TCON register is bit addressable
Edge Triggered Interrupts
Edge Triggered Interrupts
Interrupts of 8051 microcontroller.newpp
Serial Interrupts in 8051
• TI (transfer interrupt) is raised when the last bit of the framed
data, the stop bit, is transferred, indicating that the SBUF
register is ready to transfer the next byte
• RI (received interrupt) is raised when the entire frame of data,
including the stop bit, is received
Serial Interrupts in 8051
• In the 8051 there is only one interrupt set aside for serial
communication
 This interrupt is used to both send and receive data
 If the interrupt bit in the IE register (IE.4)is enabled, when
RI or TI is raised the 8051 gets interrupted and jumps to
memory location 0023H to execute the ISR
 In that ISR we must examine the TI and RI flags to see
which one caused the interrupt and respond accordingly
Interrupt Priority
• When the 8051 is powered up, the priorities are assigned
according to the following
Priority of Interrupts
• 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
• When two or more interrupt bits in the IP register are set to high,
they are serviced according to the default priority
 All the interrupts are latched and kept internally and till the
interrupt is being serviced, all other interrupts would be ignored.
 Upon RETI, No low-priority interrupt can get the immediate
attention of the CPU until the 8051 has finished servicing the
high-priority interrupts
IP Register
Support for Interrupts in Embedded C
• The 8051 compiler have extensive support for the interrupts
• They assign a unique number to each of the 8051 interrupts

More Related Content

PPTX
Interrupts in 8051
PPTX
Embedded systems, lesson 16
PPTX
Interrupt in 8051
PPTX
Interrupt in 8051 microcontrollers .pptx
PPTX
Interrupt programming
PPT
Interrupt programming with 8051 microcontroller
PPTX
Micro controller 8051 Interrupts
PPTX
hardware interrupts in 8051 microcontroller
Interrupts in 8051
Embedded systems, lesson 16
Interrupt in 8051
Interrupt in 8051 microcontrollers .pptx
Interrupt programming
Interrupt programming with 8051 microcontroller
Micro controller 8051 Interrupts
hardware interrupts in 8051 microcontroller

Similar to Interrupts of 8051 microcontroller.newpp (20)

PPTX
Mc module5 ppt_msj
PPTX
Interrupt in ATMEGA328P.pptx
PPT
Interrupts for PIC18
PPTX
unit 3 a.pptxppppppppppppppppppppppppppp
PPT
PPTX
Interrupts
PDF
Unit 5_interrupt programming_Part 1
PPTX
Unit 3 timer and counter and there application .pptx
PPTX
Interrupts programming in embedded C using 8051
PPTX
Interrupt 8085
PPT
Interrupt
PPSX
Microprocessor Architecture 4
PDF
8085 interrupts
PDF
8085 interrupts
PPTX
Timing n interrupt.pptx
PPTX
3.12_8086 microprocessor Interrupts.pptx
PPTX
Chapter 4 - Interrupts of 8085
PPT
Interrupt11
PPTX
Interrupts on 8086 microprocessor by vijay kumar.k
PDF
5a_8085 Interrupts & Direct Memory Access_pptx.pdf
Mc module5 ppt_msj
Interrupt in ATMEGA328P.pptx
Interrupts for PIC18
unit 3 a.pptxppppppppppppppppppppppppppp
Interrupts
Unit 5_interrupt programming_Part 1
Unit 3 timer and counter and there application .pptx
Interrupts programming in embedded C using 8051
Interrupt 8085
Interrupt
Microprocessor Architecture 4
8085 interrupts
8085 interrupts
Timing n interrupt.pptx
3.12_8086 microprocessor Interrupts.pptx
Chapter 4 - Interrupts of 8085
Interrupt11
Interrupts on 8086 microprocessor by vijay kumar.k
5a_8085 Interrupts & Direct Memory Access_pptx.pdf
Ad

Recently uploaded (20)

PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PDF
Structs to JSON How Go Powers REST APIs.pdf
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
additive manufacturing of ss316l using mig welding
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PPTX
web development for engineering and engineering
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPTX
Strings in CPP - Strings in C++ are sequences of characters used to store and...
PDF
Well-logging-methods_new................
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
Welding lecture in detail for understanding
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
PPT on Performance Review to get promotions
PDF
Arduino robotics embedded978-1-4302-3184-4.pdf
DOCX
573137875-Attendance-Management-System-original
PPTX
Sustainable Sites - Green Building Construction
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Operating System & Kernel Study Guide-1 - converted.pdf
Structs to JSON How Go Powers REST APIs.pdf
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
CYBER-CRIMES AND SECURITY A guide to understanding
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Foundation to blockchain - A guide to Blockchain Tech
additive manufacturing of ss316l using mig welding
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
web development for engineering and engineering
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
Strings in CPP - Strings in C++ are sequences of characters used to store and...
Well-logging-methods_new................
Embodied AI: Ushering in the Next Era of Intelligent Systems
Welding lecture in detail for understanding
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PPT on Performance Review to get promotions
Arduino robotics embedded978-1-4302-3184-4.pdf
573137875-Attendance-Management-System-original
Sustainable Sites - Green Building Construction
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Ad

Interrupts of 8051 microcontroller.newpp

  • 2. Introduction • A single microcontroller can serve several devices by two ways  Interrupts  Polling • In 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 • In Polling, The microcontroller continuously monitors the status of all devices in Round-robin manner. • When the conditions are for a given device are met, it performs the service. • After that, it moves on to monitor the next device until every one is serviced
  • 3. What is an Interrupt? • An interrupt is an external or internal event that interrupts the microcontroller to inform it that a device needs its service • The program which is associated with the interrupt is called the Interrupt Service Routine (ISR) or interrupt handler
  • 4. Polling Vs Interrupts Polling Interrupt In Polling, The microcontroller continuously monitors the status of all devices in Round-robin manner. When the conditions are for a given device are met, it performs the service. After that, it moves on to monitor the next device until every one is serviced In 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 polling method is not efficient, since it wastes much of the microcontroller’s time by polling devices that do not need service Interrupts serve only those devices which need service and hence are efficient It is not possible to assign priority since it checks all devices ina round-robin fashion Each devices can get the attention of the microcontroller based on the assigned priority Ignoring a device request is not possible microcontroller can also ignore (mask) a device request for service
  • 5. Maskable vs Non-Maskable Interrupts Maskable Interrupts • A maskable interrupt is one that programmaer can ignore by setting (or clearing) a bit in an interrupt control register. • Typically, the microcontroller might allow multiple interrupt sources, but application requires only few of them. The programmer can mask off the unused interrupts Non Maskable Interrupts • Non-maskable interrupts are those interrupts which do not get gated by the interrupt control register -- they ALWAYS interrupt, no matter what state the microcontroller is in. • Typically these are used for CRITICIAL or FATAL conditions, or for system reset functions.
  • 6. Interrupt Service Routine • For every interrupt, there must be an interrupt service routine (ISR), or interrupt handler • When an interrupt is invoked, the microcontroller runs the interrupt service routine • For every interrupt, there is a fixed location in memory that holds the address of its ISR • The group of memory locations set aside to hold the addresses of ISRs is called interrupt vector table
  • 7. Steps in executing an interrupt Upon activation of an interrupt, the microcontroller goes through the following steps 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
  • 8. Steps in executing an interrupt 4. The microcontroller gets the address of the ISR from the interrupt vector table and jumps to it  It starts to execute the interrupt service subroutine until it reaches the last instruction of the subroutine which is RETI (return from interrupt) 5. Upon executing the RETI instruction, the microcontroller returns to the place where it was interrupted  First, it gets the program counter (PC) address from the stack by popping the top two bytes of the stack into the PC  Then it starts to execute from that address
  • 9. Interrupts in 8051 There are SIX interrupts in 8051 • Reset – power-up reset • Two interrupts are set aside for the timers:  one for timer 0 and one for timer 1 • 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) • Serial communication has a single interrupt that belongs to both receive and transfer
  • 11. Enabling and Disabling of Interrupts • Upon reset, all interrupts are disabled (masked), meaning that none will be responded to by the microcontroller, even 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
  • 12. IE Register (Interrupt Enable Register) • Bit D7 of the IE register (EA) must be set to high to allow the rest of register to take effect • The value of EA  If EA = 1, interrupts are enabled and will be responded to if their corresponding bits in IE are high  If EA = 0, no interrupt will be responded to, even if the associated bit in the IE register is high
  • 13. Timer Interrupt • The timer flag (TF) is raised when the timer rolls over • In polling TF, we have to wait until the TF is raised • The problem with this method is that the microcontroller is tied down while waiting for TF to be raised, and can not do anything else • If the timer interrupt in the IE register is enabled, whenever the timer rolls over, TF is raised, and the microcontroller is interrupted in whatever it is doing, and jumps to the interrupt vector table to service the ISR. • Hence, using interrupts, the problem of tying down the microcontroller is solved. • In this way, the microcontroller can do other tasks until it is notified that the timer has rolled over
  • 14. External Interrupts in 8051 • The 8051 has two external hardware interrupts • Pin 12 (P3.2) and pin 13 (P3.3) of the 8051, designated as INT0 and INT1, are used as external hardware interrupts • The interrupt vector table locations 0003H and 0013H are set aside for INT0 and INT1 • There are two activation levels for the external hardware interrupts Level trigged Edge trigged
  • 16. Level Triggered Interrupts • In the level-triggered mode, INT0 and INT1 pins are normally high • If a low-level signal is applied to them, it triggers the interrupt. Then the microcontroller stops whatever it is doing and jumps to the interrupt vector table to service that interrupt • The low-level signal at the INT pin must be removed before the execution of the last instruction of the ISR, RETI; otherwise, another interrupt will be generated • This is called a level-triggered interrupt and is the default mode upon reset of the 8051
  • 17. Edge Triggered Interrupts • To make INT0 and INT1 edge-triggered interrupts, we must program the bits of the TCON register • The TCON register holds the IT0 and IT1 flag bits, that determine level- or edge-triggered mode of the hardware interrupt • IT0 and IT1 are also referred to as TCON.0 and TCON.2 since the TCON register is bit addressable
  • 21. Serial Interrupts in 8051 • TI (transfer interrupt) is raised when the last bit of the framed data, the stop bit, is transferred, indicating that the SBUF register is ready to transfer the next byte • RI (received interrupt) is raised when the entire frame of data, including the stop bit, is received
  • 22. Serial Interrupts in 8051 • In the 8051 there is only one interrupt set aside for serial communication  This interrupt is used to both send and receive data  If the interrupt bit in the IE register (IE.4)is enabled, when RI or TI is raised the 8051 gets interrupted and jumps to memory location 0023H to execute the ISR  In that ISR we must examine the TI and RI flags to see which one caused the interrupt and respond accordingly
  • 23. Interrupt Priority • When the 8051 is powered up, the priorities are assigned according to the following
  • 24. Priority of Interrupts • 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 • When two or more interrupt bits in the IP register are set to high, they are serviced according to the default priority  All the interrupts are latched and kept internally and till the interrupt is being serviced, all other interrupts would be ignored.  Upon RETI, No low-priority interrupt can get the immediate attention of the CPU until the 8051 has finished servicing the high-priority interrupts
  • 26. Support for Interrupts in Embedded C • The 8051 compiler have extensive support for the interrupts • They assign a unique number to each of the 8051 interrupts