06 8051interrupts
06 8051interrupts
1
introduction
2
introduction (cont’d)
3
introduction (cont’d)
without interrupts
with interrupts
4
8051 interrupt organization
5
enabling and disabling interrupts
6
enabling and disabling interrupts (cont’d)
7
enabling and disabling interrupts (cont’d)
initialization
8
enabling and disabling interrupts (cont’d)
modifying on
the fly
initialization
9
interrupt priority
• ISR to be interrupted by another interrupt
10
polling sequence
11
interrupt flag bits
12
processing interrupts
13
processing interrupts
14
processing interrupts
• PC is saved on stack
15
processing interrupts
• PC is saved on stack
16
processing interrupts
• PC is saved on stack
17
processing interrupts
• PC is saved on stack
18
processing interrupts
• PC is saved on stack
20
processing interrupts (cont’d)
21
processing interrupts (cont’d)
22
interrupt vectors
• PC is saved on stack
24
interrupt vectors (cont’d)
25
interrupt vectors (cont’d)
26
program design using interrupts
27
program design using interrupts
28
program design using interrupts
29
program design using interrupts
30
small interrupt service routines
31
large interrupt service routines
32
example: square wave
33
example: square wave
34
example: square wave
35
example: two square waves
• use interrupts for simultaneos 7kHz and 500 Hz
square waves on P1.7 and P1.6
36
example: two square waves
• use interrupts for simultaneos 7kHz and 500 Hz
square waves on P1.7 and P1.6
37
example: two square waves
• use interrupts for simultaneos 7kHz and 500 Hz
square waves on P1.7 and P1.6
38
example: two square waves
• use interrupts for simultaneos 7kHz and 500 Hz
square waves on P1.7 and P1.6
39
serial port interrupts
• RI and TI for serial port interrupts has two
possible sources, so they must be tested and
cleared by software in ISR
• TI occurs when
transmission of character in
SBUF finishes
• RI occurs when a
character is completely
received in SBUF
40
example: character output
• continually transmit ASCII code set (excluding control
codes) via serial port using interrupts
41
example: character output
• continually transmit ASCII code set (excluding control
codes) via serial port using interrupts
42
example: character output
• continually transmit ASCII code set (excluding control
codes) via serial port using interrupts
43
example: character output
• continually transmit ASCII code set (excluding control
codes) via serial port using interrupts
44
example: character output
• continually transmit ASCII code set (excluding control
codes) via serial port using interrupts
45
example: character output
• continually transmit ASCII code set (excluding control
codes) via serial port using interrupts
46
external interrupts
timer controls
47
example: furnace controller
P3.2
P3.3
48
example: furnace controller (cont’d)
49
example: furnace controller (cont’d)
on
50
example: furnace controller (cont’d)
on
51
example: intrusion warning system
52
example: intrusion warning system (cont’d)
53
example: intrusion warning system (cont’d)
54
interrupt timings
interrupts are
polled on the next
machine cycle
and latched
56
interrupt timings (cont’d)
interrupt latency assume
12 MHz crystal
57
interrupt timings (cont’d)
interrupt latency assume
12 MHz crystal
58
summary
59
references
60