Professional Documents
Culture Documents
Dr Mohsin Tiwana
Interrupts
2
Basics
1. Polling
2. Interrupt
3
Polling
JNB TF0,$
4
Interrupt
5
Polling Vs Interrupt
A phone with a ringer and a phone without a ringer
6
Polling Vs Interrupt
Polling
Microcontroller can serve many devices
Time wasted in waiting for certain conditions
While waiting, no other task can be performed
Interrupt
Microcontroller can serve many devices
Time not wasted in waiting for certain conditions
Microcontroller can perform others tasks and anytime a device
can interrupt it
7
Interrupts in 8051
6 Interrupts
1. Reset
2. Timer 0 overflow
3. Timer 1 overflow
4. Reception / Transmission of serial character
5. External Event 0
6. External Event 1
8
Interrupt SFRs
9
Interrupt SFRs
IE
Interrupt Enable
Bit Addressable
IP
Interrupt Priority
Bit addressable
10
Interrupt SFRs
Interrupt Enable – IE
11
Interrupt SFRs
Interrupt Enable – IE
12
Interrupt SFRs
Interrupt Priority – IP
2 Levels of interrupt in 8051
0 (Low priority)
1 (High priority)
13
Interrupt SFRs
Interrupt Priority – IP
14
Interrupt SFRs
Interrupt Priority – IP
Nothing can interrupt a high priority interrupt – not even
another high priority interrupt
A high priority interrupt may interrupt low priority
interrupt
A low priority interrupt may only occur if no other
interrupt is already being executed
If 2 interrupts occur at same time, interrupt of higher
priority will execute first
If both interrupts have same priority, Polling Sequence
(Next Slide) will determine which interrupt will be
executed first
15
Polling Sequence
External 0 interrupt
Timer 0 Interrupt
External 1 Interrupt
Timer 1 Interrupt
Serial Interrupt
16
IVT
Interrupt Vector Table
For every interrupt, there is a fixed location in memory
that holds address of its ISR
ISR is Interrupt Service Routine
When an interrupt is generated, its ISR is automatically
executed
17
IVT of 8051
18
Interrupt Flags
Timer Control – TCON SFR
19
Interrupt Flags
Timer Control – TCON SFR
20
Interrupt Flags
Serial Control – SCON SFR
21
Interrupt Flags - Summary
22
Clearing Interrupt Flags
Serial Interrupt.
Serial Interrupt flags are to be manually reset
23
What Happens when an Interrupt Occurs?
Execution of current instruction is completed
PC is saved on stack, low byte first
Interrupts of same and lower priorities are blocked
It jumps to memory location called IVT that keeps
addresses of ISRs
PC is loaded with address of ISR
ISR is executed until “RETI” is reached
24
What happens when an interrupt ends?
RETI ends the execution of ISR
25
Important Consideration
Take care of registers
ISR may change value of useful registers and flags
A
B
PSW
Carry
Auxiliary Carry
26
Short Interrupt Routine
ORG 00h
JMP MAIN
ORG 30h
MAIN:
.
.
END
27
Long Interrupt Routine
ORG 00h
JMP MAIN
ORG 30h
MAIN:
.
.
JMP MAIN
TOISR: .
.
RETI
END
28
Timer Interrupt
29
Timer Interrupt
Generate 10 Khz Square Wave using Timer 0 Interrupt
Using
Polling
Interrupt
30
Timer – Polling
Generate 10 Khz Square Wave using Timer 0 Without Interrupt
ORG 00h
MOV TMOD,#02h
MOV TH0,# – 50
MOV TL0, # –50
SETB TR0
AGAIN:
JNB TF0,$
CLR TF0
CPL P1^0
JMP AGAIN
END
31
Timer – Interrupt
Generate 10 Khz Square Wave using Timer 0 Interrupt
ORG 00h
JMP MAIN
ORG 30h
MAIN:
MOV TMOD,#02h
MOV TH0,# – 50
MOV TL0, # –50
SETB TR0
MOV IE, #82h
SJMP $
END
32
External Interrupts
33
External Interrupts
Two External Interrupts
INT0
INT1
Pins
P3.2
P3.3
Two activation levels
Level Triggered
Edge Triggered
IF IT0 or IT1 (in TCON) is set, it will make INT0 or INT1
Edge Triggered. Else they will be level triggered
Default mode is level trigger
34
External Interrupts
TCON SFR
35
External Interrupts
Level Triggered
Default mode
36
External Interrupts
Edge Triggered
By making IT0 and IT1, external interrupts will be edge
triggered