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 :
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 :