Interrupts in 8051
Sudhanshu Janwadkar
5th-16th April 2018
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
Vectored vs Non Vectored Interrupts
Vectored Interrupts
• Devices that use vectored interrupts are assigned an interrupt
vector. This is a number that identifies a particular interrupt
handler. The ISR address of this interrupt is fixed and is known to
CPU.
• When the device interrupts, the CPU branches to the particular ISR.
• All 8051 interrupts are vectored interrupts
Non Vectored Interrupts
• Non Vectored Interrupt is an interrupt who has a common ISR,
which is common to all non-vectored interrupts in the system. The
address of this common ISR is known to the CPU.
• However, The CPU crucially does not know which device caused the
interrupt without polling each I/O interface in a loop.
• Once the interrupt occurs, the system must determine which
device, of all the devices associated actually interrupted.
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
Level Triggered Interrupts
According to one manufacturer’s data sheet,
• The pin must be held in a low state until the start of the execution of ISR
 If the INTx pin is brought back to a logic high before the start of the
execution of ISR there will be no interrupt
 If INTx pin is left at a logic low after the RETI instruction of the ISR,
another interrupt will be activated after one instruction is executed
• To ensure the activation of the hardware interrupt at the INTx pin, make
sure that the duration of the low-level signal is around 4 machine cycles,
but no more
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
Edge Triggered Interrupts
• In edge-triggered interrupts, the external source must be held
high for at least one machine cycle, and then held low for at
least one machine cycle
• The falling edge of pins INT0 and INT1 are latched by the 8051
and are held by the TCON.1 and TCON.3 bits of TCON register
• It indicates that the interrupt is being serviced now and on
this INTx pin, and no new interrupt will be responded to until
this service is finished
Edge Triggered Interrupts
Please note that
• When the ISRs are finished (that is, upon execution of RETI),
these bits (TCON.1 and TCON.3) are cleared, indicating that
the interrupt is finished and the 8051 is ready to respond to
another interrupt on that pin
• During the time that the interrupt service routine is being
executed, the INTn pin is ignored, no matter how many times
it makes a high-to-low transition
 RETI clears the corresponding bit in TCON register (TCON.1
or TCON.3)
 There is no need for instruction CLR TCON.1 before RETI in
the ISR associated with INT0
Interrupts in 8051
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
Laplace transform
PDF
Basic Electronics for diploma students as per technical education Kerala Syll...
PPTX
Serial Communication in 8051
PPT
Interrupt programming with 8051 microcontroller
PPTX
Antenna Parameters Part 1
PPT
Transducers for bio medical
PPTX
Data types in C
DOC
8051 Microcontroller Notes
Laplace transform
Basic Electronics for diploma students as per technical education Kerala Syll...
Serial Communication in 8051
Interrupt programming with 8051 microcontroller
Antenna Parameters Part 1
Transducers for bio medical
Data types in C
8051 Microcontroller Notes

What's hot (20)

PPTX
8051 timer counter
PPTX
Architecture of 8051
PDF
DAC Interfacing with 8051.pdf
PPTX
8255 PPI
PPT
Memory organization of 8051
PPT
8051 ch9-950217
PPTX
8051 Microcontroller ppt
PDF
8259 Programmable Interrupt Controller
PPTX
Timer programming for 8051 using embedded c
PPTX
MICROCONTROLLER 8051- Architecture & Pin Configuration
PPT
8086 micro processor
PDF
8086 modes
PPTX
Introduction to 8085 microprocessor
PPTX
8051 MICROCONTROLLER ARCHITECTURE.pptx
PPTX
Interrupt 8085
PDF
8051 Microcontroller I/O ports
PPTX
Pin diagram 8085
PPT
Adc interfacing
PPTX
Stack in 8085 microprocessor
PPT
Timing diagram 8085 microprocessor
8051 timer counter
Architecture of 8051
DAC Interfacing with 8051.pdf
8255 PPI
Memory organization of 8051
8051 ch9-950217
8051 Microcontroller ppt
8259 Programmable Interrupt Controller
Timer programming for 8051 using embedded c
MICROCONTROLLER 8051- Architecture & Pin Configuration
8086 micro processor
8086 modes
Introduction to 8085 microprocessor
8051 MICROCONTROLLER ARCHITECTURE.pptx
Interrupt 8085
8051 Microcontroller I/O ports
Pin diagram 8085
Adc interfacing
Stack in 8085 microprocessor
Timing diagram 8085 microprocessor
Ad

Similar to Interrupts in 8051 (20)

PPTX
Interrupts of 8051 microcontroller.newpp
PPTX
8051 interrupt Presentation Download for ECE
PPTX
Embedded systems, lesson 16
PPTX
Interrupt in 8051
PPTX
Mc module5 ppt_msj
PPTX
Micro controller 8051 Interrupts
PPTX
Interrupt in 8051 microcontrollers .pptx
PPTX
hardware interrupts in 8051 microcontroller
PPTX
Interrupt programming
PPTX
Interrupt in ATMEGA328P.pptx
PPTX
Interrupts programming in embedded C using 8051
PPT
PPTX
Unit 3 timer and counter and there application .pptx
PPT
Interrupts for PIC18
PPTX
unit 3 a.pptxppppppppppppppppppppppppppp
PDF
Unit 5_interrupt programming_Part 1
PPTX
3.12_8086 microprocessor Interrupts.pptx
PPT
Interrupt
PPTX
Interrupts on 8086 microprocessor by vijay kumar.k
PDF
8085 interrupts
Interrupts of 8051 microcontroller.newpp
8051 interrupt Presentation Download for ECE
Embedded systems, lesson 16
Interrupt in 8051
Mc module5 ppt_msj
Micro controller 8051 Interrupts
Interrupt in 8051 microcontrollers .pptx
hardware interrupts in 8051 microcontroller
Interrupt programming
Interrupt in ATMEGA328P.pptx
Interrupts programming in embedded C using 8051
Unit 3 timer and counter and there application .pptx
Interrupts for PIC18
unit 3 a.pptxppppppppppppppppppppppppppp
Unit 5_interrupt programming_Part 1
3.12_8086 microprocessor Interrupts.pptx
Interrupt
Interrupts on 8086 microprocessor by vijay kumar.k
8085 interrupts
Ad

More from Sudhanshu Janwadkar (20)

PPTX
Presentation on Elementary Data Link Protocols
PPTX
Error Correcting and Error Detecting Codes.pptx
PPTX
DSP Processors versus ASICs
PDF
Keypad Interfacing with 8051 Microcontroller
PPT
ASIC design Flow (Digital Design)
PPTX
Fpga architectures and applications
PPTX
LCD Interacing with 8051
PPT
SPI Bus Protocol
PPTX
I2C Protocol
PPTX
Introduction to 8051 Timer/Counter
PPTX
Intel 8051 Programming in C
PPTX
Hardware View of Intel 8051
PPTX
Architecture of the Intel 8051 Microcontroller
PPTX
Introduction to Embedded Systems
PPTX
PPTX
Interconnects in Reconfigurable Architectures
PPTX
Introduction to FPGAs
PDF
Design and Implementation of a GPS based Personal Tracking System
PDF
Embedded Logic Flip-Flops: A Conceptual Review
PPTX
Pass Transistor Logic
Presentation on Elementary Data Link Protocols
Error Correcting and Error Detecting Codes.pptx
DSP Processors versus ASICs
Keypad Interfacing with 8051 Microcontroller
ASIC design Flow (Digital Design)
Fpga architectures and applications
LCD Interacing with 8051
SPI Bus Protocol
I2C Protocol
Introduction to 8051 Timer/Counter
Intel 8051 Programming in C
Hardware View of Intel 8051
Architecture of the Intel 8051 Microcontroller
Introduction to Embedded Systems
Interconnects in Reconfigurable Architectures
Introduction to FPGAs
Design and Implementation of a GPS based Personal Tracking System
Embedded Logic Flip-Flops: A Conceptual Review
Pass Transistor Logic

Recently uploaded (20)

PDF
LIFE & LIVING TRILOGY - PART - (2) THE PURPOSE OF LIFE.pdf
PDF
semiconductor packaging in vlsi design fab
PPTX
Education and Perspectives of Education.pptx
PPTX
INSTRUMENT AND INSTRUMENTATION PRESENTATION
DOCX
Cambridge-Practice-Tests-for-IELTS-12.docx
PDF
plant tissues class 6-7 mcqs chatgpt.pdf
PDF
Farming Based Livelihood Systems English Notes
PDF
fundamentals-of-heat-and-mass-transfer-6th-edition_incropera.pdf
PDF
International_Financial_Reporting_Standa.pdf
PDF
Skin Care and Cosmetic Ingredients Dictionary ( PDFDrive ).pdf
PDF
CISA (Certified Information Systems Auditor) Domain-Wise Summary.pdf
PDF
IP : I ; Unit I : Preformulation Studies
PDF
MBA _Common_ 2nd year Syllabus _2021-22_.pdf
PDF
PowerPoint for Climate Change by T.T.pdf
PPTX
ELIAS-SEZIURE AND EPilepsy semmioan session.pptx
PPTX
What’s under the hood: Parsing standardized learning content for AI
PDF
LIFE & LIVING TRILOGY - PART (3) REALITY & MYSTERY.pdf
PPTX
MICROPARA INTRODUCTION XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
PDF
Journal of Dental Science - UDMY (2020).pdf
PDF
AI-driven educational solutions for real-life interventions in the Philippine...
LIFE & LIVING TRILOGY - PART - (2) THE PURPOSE OF LIFE.pdf
semiconductor packaging in vlsi design fab
Education and Perspectives of Education.pptx
INSTRUMENT AND INSTRUMENTATION PRESENTATION
Cambridge-Practice-Tests-for-IELTS-12.docx
plant tissues class 6-7 mcqs chatgpt.pdf
Farming Based Livelihood Systems English Notes
fundamentals-of-heat-and-mass-transfer-6th-edition_incropera.pdf
International_Financial_Reporting_Standa.pdf
Skin Care and Cosmetic Ingredients Dictionary ( PDFDrive ).pdf
CISA (Certified Information Systems Auditor) Domain-Wise Summary.pdf
IP : I ; Unit I : Preformulation Studies
MBA _Common_ 2nd year Syllabus _2021-22_.pdf
PowerPoint for Climate Change by T.T.pdf
ELIAS-SEZIURE AND EPilepsy semmioan session.pptx
What’s under the hood: Parsing standardized learning content for AI
LIFE & LIVING TRILOGY - PART (3) REALITY & MYSTERY.pdf
MICROPARA INTRODUCTION XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Journal of Dental Science - UDMY (2020).pdf
AI-driven educational solutions for real-life interventions in the Philippine...

Interrupts in 8051

  • 1. Interrupts in 8051 Sudhanshu Janwadkar 5th-16th April 2018
  • 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. Vectored vs Non Vectored Interrupts Vectored Interrupts • Devices that use vectored interrupts are assigned an interrupt vector. This is a number that identifies a particular interrupt handler. The ISR address of this interrupt is fixed and is known to CPU. • When the device interrupts, the CPU branches to the particular ISR. • All 8051 interrupts are vectored interrupts Non Vectored Interrupts • Non Vectored Interrupt is an interrupt who has a common ISR, which is common to all non-vectored interrupts in the system. The address of this common ISR is known to the CPU. • However, The CPU crucially does not know which device caused the interrupt without polling each I/O interface in a loop. • Once the interrupt occurs, the system must determine which device, of all the devices associated actually interrupted.
  • 6. 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.
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 17. 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
  • 18. Level Triggered Interrupts According to one manufacturer’s data sheet, • The pin must be held in a low state until the start of the execution of ISR  If the INTx pin is brought back to a logic high before the start of the execution of ISR there will be no interrupt  If INTx pin is left at a logic low after the RETI instruction of the ISR, another interrupt will be activated after one instruction is executed • To ensure the activation of the hardware interrupt at the INTx pin, make sure that the duration of the low-level signal is around 4 machine cycles, but no more
  • 19. 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
  • 22. Edge Triggered Interrupts • In edge-triggered interrupts, the external source must be held high for at least one machine cycle, and then held low for at least one machine cycle • The falling edge of pins INT0 and INT1 are latched by the 8051 and are held by the TCON.1 and TCON.3 bits of TCON register • It indicates that the interrupt is being serviced now and on this INTx pin, and no new interrupt will be responded to until this service is finished
  • 23. Edge Triggered Interrupts Please note that • When the ISRs are finished (that is, upon execution of RETI), these bits (TCON.1 and TCON.3) are cleared, indicating that the interrupt is finished and the 8051 is ready to respond to another interrupt on that pin • During the time that the interrupt service routine is being executed, the INTn pin is ignored, no matter how many times it makes a high-to-low transition  RETI clears the corresponding bit in TCON register (TCON.1 or TCON.3)  There is no need for instruction CLR TCON.1 before RETI in the ISR associated with INT0
  • 25. 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
  • 26. 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
  • 27. Interrupt Priority • When the 8051 is powered up, the priorities are assigned according to the following
  • 28. 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
  • 30. 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