Il y a 5 sources d'interruption dans le noyau 8051, le 8052 en comporte 6 et les 80C535/7, 12.

Voyons tout d'abord le 8051 et 8052

Table des vecteur :

Il faut tout d'abord savoir que le vecteur de reset se trouve à l'adresse 0000H. On remarque que le premier vecteur d'interruption se trouve à l'adresse 0003H. Il n'y a donc que 3 octets pour le reset, soit la taille pour mettre une instruction du type LJMP.

Source d'interruption Indicateur Adresse du vecteur
INT0 IE0 0003H
TIMER0 TF0 000BH
INT1 IE1 0013H
TIMER1 TF1 001BH
PORT SERIE RI+TI 0023H
TIMER2* TF2+EXF2 002BH

* Spécifique au noyau 8052

Autorisation des interruptions (registre IE : A8H) :

position symbole fonction
IE.7 EA Inhibition de toutes les interruptions
IE.6 ---  
IE.5 ET2 interruption TIMER2*
IE.4 ES interruption PORT SERIE
IE.3 ET1 interrruption TIMER1
IE.2 EX1 interruption EXTERNE (INT1)
IE.1 ET0 interruption TIMER0
IE.0 EX0 interruption EXTERNE (INT0)

* Spécifique au noyau 8052

Priorité des interruptions (registre IP : B8H) :

position symbole fonction
IP.7 ---  
IP.6 ---  
IP.5 PT2 priorité TIMER2*
IP.4 PS priorité PORT SERIE
IP.3 PT1 priorité TIMER1
IP.2 PX1 priorité interruption externe INT1
IP.1 PT0 priorité TIMER0
IP.0 PX0 priorité interruption externe INT0

* Spécifique au noyau 8052

Il y a bien sur une hiérarchie naturelle des interruptions imposée par la séquence de test soit :

  1. IE0
  2. TF0
  3. IE1
  4. TF1
  5. RI+TI
  6. TF2+EXF2*

Le quartet de poids faible du registre TCON (88H) :

symbole fonction
IE1 mis à 1 lors d'une transistion sur la broche INT1. Remis à 0 pendant l'interruption
IT1 Si IT1 = 0 interruption si niveau 0 sur la patte INT1
Si IT1 = 1 interruption lors d'un front descendant sur la patte INT1
IE0 même fonctionnement que IE1 pour INT0
IT0 même fonctionnement que IE1 pour INT0

Les interruptions des 80C535/7

On conserve les mêmes vecteurs que le noyau 8052 auxquels on ajoute :

source d'interruption indicateur adresse du vecteur
interruption CAN IADC 0043H
INT2 IEX2 004BH
INT3 IEX3 0053H
INT4 IEX4 005BH
INT5 IEX5 0063H
INT6 IEX6 006BH
interruption port série 1* RI1/TI1 0083H
TIMER de comparison* CTF 009BH

* Spécifique au 80C537

Autorisation des interruptions (registres IEN0, IEN1 et IEN2* : 0A8H, 0B8H et 09AH) :

position symbole fonction
IEN0.7 EAL validation de toutes les interruptions
IEN0.5 ET2 Valide le débordement du TIMER2
IEN0.4 ES Valide les int du port série
IEN0.3 ET1 Valide l'int du TIMER1
IEN0.2 EX1 Valide l'int externe 1
IEN0.1 ET0 Valide l'int du TIMER0
IEN0.0 EX0 Valide l'int externe 0
IEN1.7 EXEN2 Valide l'int externe de rechargement du TIMER2
IEN1.5 EX6 Valide l'int externe 6 ou de capture CCR3
IEN1.4 EX5 Valide l'int externe 5 ou de capture CCR2
IEN1.3 EX4 Valide l'int externe 4 ou de capture CCR1
IEN1.2 EX3 Valide l'int externe 3 ou de capture CCRC
IEN1.1 EX2 Valide l'int externe 2
IEN1.0 EADC Valide l'interruption du CAN
IEN2.3* ECT Valide l'interruption du timer de comparaison
IEN2.0* ES1 Valide l'int. du port série 1

* Spécifique au 80C537

Priorité des interruptions (IP0 et IP1 : 0A9H et 0B9H) :

IP1.x IP0.x fonction
0 0 priorité de niveau 0 (la plus basse)
0 1 priorité de niveau 1
1 0 priorité de niveau 2
1 1 priorité de niveau 3 (la plus haute)
IP1.0 IP0.0 priorité pour IE0, RI1/TI1* & IADC
IP1.1 IP0.1 priorité pour TF0 & IEX2
IP1.2 IP0.2 priorité pour IE1 & IEX3
IP1.3 IP0.3 priorité pour TF1, CTF* & IEX4
IP1.4 IP0.4 priorité pour RI/TI & IEX5
IP1.5 IP0.5 priorité pour TF2,EXF2 & IEX6

* Spécifique au 80C537

Comme pour le 8051, il y a un ordre de priorité naturelle :

  1. IE0, RI1/TI1, IADC
  2. TF0, IEX2
  3. IE1, IEX3
  4. TF1, CTF, IEX4
  5. RI/TI, IEX5
  6. TF2/EXF2, IEX6