Microprocessor and Microcontroller: Muhammad Faizan Malik
Microprocessor and Microcontroller: Muhammad Faizan Malik
2
Course Outline
Week Topic
1 Introduction
8051Microcontroller
2
Architecture
3 Assembly Language
4 Assembly Language Contd.
Timers and Counters
5, 6 Serial Port
Interrupt
7 Design and Interface Examples
8086 / 8088 Microprocessor
8
Introduction and Architecture
9 Hardware and Design
10 Midterm Exam
11 Programming in Assembly
PIC 18 F Microcontroller
12
Introduction, Architecture, I/O Pins
13 Programming
14 Timers
15, 16 Peripherals of PIC 18F Microcontrollers
17 Revision
3
Basics
1. Polling
2. Interrupt
4
Polling
JNB TF0,$
5
Interrupt
6
Polling Vs Interrupt
A phone with a ringer and a phone without a ringer
7
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
8
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
9
Interrupt SFRs
10
Interrupt SFRs
IE
Interrupt Enable
Bit Addressable
IP
Interrupt Priority
Bit addressable
11
Interrupt SFRs
Interrupt Enable – IE
12
Interrupt SFRs
Interrupt Enable – IE
13
Interrupt SFRs
Interrupt Priority – IP
2 Levels of interrupt in 8051
0 (Low priority)
1 (High priority)
14
Interrupt SFRs
Interrupt Priority – IP
15
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
16
Polling Sequence
External 0 interrupt
Timer 0 Interrupt
External 1 Interrupt
Timer 1 Interrupt
Serial Interrupt
17
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
18
IVT of 8051
19
Interrupt Flags
Timer Control – TCON SFR
20
Interrupt Flags
Timer Control – TCON SFR
21
Interrupt Flags
Serial Control – SCON SFR
22
Interrupt Flags - Summary
23
Clearing Interrupt Flags
Serial Interrupt.
Serial Interrupt flags are to be manually reset
24
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
25
What happens when an interrupt ends?
RETI ends the execution of ISR
26
Important Consideration
Take care of registers
ISR may change value of useful registers and flags
A
B
PSW
Carry
Auxiliary Carry
27
Short Interrupt Routine
ORG 00h
JMP MAIN
ORG 30h
MAIN:
.
.
END
28
Long Interrupt Routine
ORG 00h
JMP MAIN
ORG 30h
MAIN:
.
.
JMP MAIN
TOISR: .
.
RETI
END
29
Timer Interrupt
30
Timer Interrupt
Generate 10 Khz Square Wave using Timer 0 Interrupt
Using
Polling
Interrupt
31
Timer – Polling
Generate 10 Khz Square Wave using Timer 0 Interrupt
ORG 00h
MOV TMOD,#02h
MOV TH0,# – 50
SETB TR0
AGAIN:
JNB TF0,$
CLR TF0
CPL P1^0
JMP AGAIN
END
32
Timer – Interrupt
Generate 10 Khz Square Wave using Timer 0 Interrupt
ORG 00h
JMP MAIN
ORG 30h
MAIN:
MOV TMOD,#02h
MOV TH0,# – 50
SETB TR0
MOV IE, #82h
SJMP $
END
33
External Interrupts
34
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
35
External Interrupts
TCON SFR
36
External Interrupts
Level Triggered
Default mode
37
External Interrupts
Edge Triggered
By making IT0 and IT1, external interrupts will be edge
triggered
39