1997 Mar 14
41
Philips Semiconductors
Product specification
Low voltage 8-bit microcontrollers with
UART and I
2
C-bus
P83CL781; P83CL782
15 INTERRUPT SYSTEM
External events and the real-time-driven on-chip
peripherals require service by the CPU at unpredictable
times. To tie the asynchronous activities of these functions
to normal program execution a multiple-source,
two-priority-level, nested interrupt system is provided.
The system is shown in Fig.24. The P83CL78x
acknowledges interrupt requests from fifteen sources as
follows:
INT0 to INT9
Timer 0, Timer 1 and Timer 2
I
2
C-bus serial I/O
UART.
Each interrupt vectors to a separate location in Program
Memory for its service routine. Each source can be
individually enabled or disabled by its corresponding bit in
the Interrupt Enable Registers (IEN0 and IEN1).
The priority level is selected via the Interrupt Priority
Registers (IP0 and IP1). All enabled sources can be
globally disabled or enabled.
15.1
External interrupts INT2 to INT9
Port 1 lines serve an alternative purpose as eight
additional interrupts INT2 to INT9. When enabled, each of
these lines may wake-up the device from the Power-down
mode. Using the Interrupt Polarity Register (IX1), each pin
may be initialized to be either active HIGH or active LOW.
IRQ1 is the Interrupt Request Flag Register. If the interrupt
is enabled, each flag will be set on an interrupt request but
must be cleared by software, i.e. via the interrupt software
or when the interrupt is disabled.
Port 1 interrupts are level-sensitive. A Port 1 interrupt will
be recognized when a level (HIGH or LOW depending on
the Interrupt Polarity Register) on P1.n is held active for at
least one machine cycle. The interrupt request is not
serviced until the next machine cycle. Figure 25 shows the
external interrupt system.
15.2
Interrupt priority
Each interrupt source can be set to either a high priority or
to a low priority. If a low priority interrupt is received
simultaneously with a high priority interrupt, the high
priority interrupt will be dealt with first.
If interrupts of the same priority are requested
simultaneously, the processor will branch to the interrupt
polled first, according to the sequence shown in Table 25
and in Fig.24. The ‘vector address’ is the ROM location
where the appropriate interrupt service routine starts.
Table 25
Interrupt vector polling sequence
A low priority interrupt routine can only be interrupted by a
high priority interrupt. A high priority interrupt routine
cannot be interrupted.
SYMBOL
VECTOR
ADDRESS (HEX)
SOURCE
X0 (first)
S1
X5
T0
T2
X6
X1
X2
X7
T1
X3
X8
SO
X4
X9 (last)
0003
002B
0053
000B
0033
005B
0013
003B
0063
001B
0043
006B
0023
004B
0073
External 0
I
2
C port
External 5
Timer 0
Timer 2
External 6
External 1
External 2
External 7
Timer 1
External 3
External 8
UART
External 4
External 9