Professional Documents
Culture Documents
8051 INTERRUPTS
Introduction:
This manual deals with the concept of 8051 interrupts and interrupt programming.
Interrupt:
An interrupt is the occurrence of an event that causes the temporary suspension of the program being
executed and jump to a special interrupt handling service routine.
Interrupts vs polling:
In the interrupt method, whenever any device needs service, the device notifies the
microcontroller by sending it an interrupt signal. On receiving interrupt, the microcontroller
interrupts whatever it is doing and executes interrupt service routine (ISR) .In polling, the
microcontroller continuously monitors the status of a given device; when the status condition is
met, it performs the service. In the interrupt method, microcontroller can serve many devices and
each device gets attention based on the priority while polling wastes time.
Interrupt service routine:
For each interrupt there must be ISR which is the invoked whenever an interrupt occurs.For every
interrupt, there is a fixed location in memory that holds the address of its ISR which is called interrupt
vector table.
8051 interrupts:
1. 1 reset interrupt, when the reset pin is activated, the 8051 jumps to address location 0000
2. 2 timer interrupts
3. 2 external hardware interrupts (pin 12 (P3.2) and 13 (P3.3) in port 3 are for the external
hardware interrupts)
4. 1 serial communication interrupt that belongs to both receive and transmit
1. CPU finishes the instruction it is executing and saves the address of the next instruction
(PC) on the stack.
2. It saves the current status of all the interrupts internally.
3. It jumps to a fixed location in memory called the interrupt vector table.
4. The microcontroller gets the address of the ISR from the interrupt vector table and
jumps to it and starts to execute the ISR until it reaches the last instruction RETI.
5. The microcontroller returns to the place where it was interrupted, it gets the PC address
from the stack by popping the top two bytes of the stack into the PC and then it starts to execute
from that address.
3 Lab Manual # 10
Figure 1 : Redirecting the 8051 from the Interrupt Vector Table at Power-up
Programming Timer
Interrupts:
Example 1:
Write a program that continuously gets 8- bit data from P0 and sends it to P1 while
simultaneously creating a square wave of 200 ms period on pin P2.1. Use Timer 0 to
create the square wave. Assume that XTAL = 11.0592 MHz.
Page |6
Level- triggered
interrupt
3. microcontroller stops whatever it is doing and jumps to the interrupt vector table to service
the interrupt
4. the low level signal must be removed before the execution of the last instruction of the
interrupt service routine, RETI
5. otherwise, another interrupt will be generated
Example 2:
Assume that the INT1 pin is connected to a switch that is normally high. Whenever it goes
low, it should turn on an LED. The LED is connected to P1.3 and is normally off. When it is
turned on it should stay on for a fraction of a second. As long as the switch is pressed low,
the LED should stay on.
Page |7
Edge Triggered Interrupts are activated by setting TCON.0 and TCON.2 bits of TCON register so
that the interrupt service routine is executed when high to low signal is applied to the INT0 and
INT1 pins.
Example 3:
Assuming that INT1 is connected to a pulse generator. Write a program in which the falling
edge of the pulse will send a high to P 1.3, which is connected to an LED.
Example 4:
1.