Vous êtes sur la page 1sur 107

Microprocesseurs & Microcontrleurs

Sylvain MONTAGNY sylvain.montagny@univ-savoie.fr Btiment chablais, bureau 13 04 79 75 86 86


Retrouver tous les documents de Cours/TD/TP sur le site www.master-electronique.com

Prsentation cours : Sommaire


Cours : 10.5 h en 7 sances
Chapitre 1 : Rappels gnraux sur les processeurs Chapitre 2 : Les microcontrleurs
Dfinition Etude des priphriques

Chapitre 3 : La programmation

Universit de Savoie

Prsentation TD
TD : 10.5 h en 7 sances
TD1 : Rappel sur les systmes microprocesseur. Cadencement dun microcontrleur. Instructions assembleurs. TD2 : Utilisation du timer dun microcontrleur. Configuration des ports dentre/sortie dun microcontrleur. TD3 : Les interruptions

Universit de Savoie

Prsentation TP
TP : 12h en 3 sances de 4h
TP1 : Prise en main dun environnement de programmation sur microcontrleur TP2 : Etude du Watchdog, et des interruptions dans un microcontrleur TP3 : Ralisation dun minuteur laide dun afficheur 7 segment.

Universit de Savoie

Chapitre 1 : Rappel gnraux sur les processeurs

1.1 Rappel sur larchitecture interne des microprocesseurs 1.2 Le traitement des instructions 1.3 Les modes dadressages 1.4 Exemple dexcution dun programme

Universit de Savoie

Larchitecture interne
Wafer
Un microprocesseur est constitu dun morceau de silicium dop. Cest donc un ensemble de millions de transistors.

Wafer : Galette de plusieurs processeurs 1 processeur : quelques millimtres carrs

Universit de Savoie

Larchitecture interne
Unit commande/traitement

Un microprocesseur est construit autour de deux lments principaux :


Une unit de commande Une unit de traitement

Universit de Savoie

Larchitecture interne
Schma

Universit de Savoie

Larchitecture interne
Lunit de commande (1)
Elle permet de squencer le droulement des instructions. Elle effectue la recherche en mmoire de l'instruction, le dcodage de linstruction code sous forme binaire. Enfin elle pilote lexcution de linstruction.

Les blocs de lunit de commande :


1.

Le compteur de programme (PC : Programme Counter) appel aussi Compteur Ordinal (CO) est constitu par un registre dont le contenu est initialis avec l'adresse de la premire instruction du programme. Il contient toujours ladresse de la prochaine instruction excuter.
Universit de Savoie 9

Larchitecture interne
Lunit de commande (2)
2.

Le registre d'instruction et le dcodeur d'instruction : Chacune des instructions excuter est transfr depuis la mmoire dans le registre instruction puis est dcode par le dcodeur dinstruction. Bloc logique de commande (ou squenceur) : Il organise l'excution des instructions au rythme dune horloge. Il labore tous les signaux de synchronisation internes ou externes (bus de commande) du microprocesseur en fonction de linstruction quil a a excuter. Il s'agit d'un automate ralis de faon microprogramme.

3.

Universit de Savoie

10

Larchitecture interne
Lunit de commande (3)

Universit de Savoie

11

Larchitecture interne
Lunit de traitement (1)
Elle regroupe les circuits qui assurent les traitements ncessaires l'excution des instructions

Les blocs de lunit de traitement :


1.

2.

Les accumulateurs sont des registres de travail qui servent stocker une oprande au dbut d'une opration arithmtique et le rsultat la fin de l'opration. LUnit Arithmtique et Logique (UAL) est un circuit complexe qui assure les fonctions logiques (ET, OU, Comparaison, Dcalage, etc) ou arithmtique (Addition, soustraction).

Universit de Savoie

12

Larchitecture interne
Lunit de traitement (2)
3.

Le registre d'tat est gnralement compos de 8 bits considrer individuellement. Chacun de ces bits est un indicateur dont l'tat dpend du rsultat de la dernire opration effectue par lUAL. On les appelle indicateur dtat ou flag ou drapeaux. Dans un programme le rsultat du test de leur tat conditionne souvent le droulement de la suite du programme. On peut citer par exemple les indicateurs de :
Retenue (carry : C) Dbordement (overflow : OV ou V) Zro (Z) ...
Universit de Savoie 13

Larchitecture interne
LUnit de traitement (3)

UAL : Unit Arithmtique et Logique)


A 8 8 B

OV =Overflow Flag Slection de lopration C0 C1 C2 C3 C = Carry Flag Z = Zero Flag

UAL

S = Sign Flag P = Parity Flag

Flag = drapeau Registre dtat

R Rsultat

Universit de Savoie

14

Larchitecture interne
Lunit de traitement (4)

Universit de Savoie

15

Larchitecture interne
Architecture complte

Universit de Savoie

16

Rappels: le fonctionnement basique dune opration de calcul


1 2

CPU
4 3

Mmoire

(1) Charger une instruction depuis la mmoire (2) Charger les oprandes depuis la mmoire (3) Effectuer les calculs (4) Stocker le rsultat en mmoire

Universit de Savoie

17

Larchitecture
Von Neuman

CPU

BUS

Mmoire Programme & donnes

Un seul chemin d'accs la mmoire


Un bus de donnes (programme et donnes), Un bus dadresse (programme et donnes)

Architecture des processeurs dusage gnral Goulot d'tranglement pour l'accs la mmoire
Universit de Savoie 18

Larchitecture
Harvard
Mmoire programme Mmoire donne

CPU

Sparation des mmoires programme et donnes


Un bus de donnes programme, Un bus de donnes pour les donnes, Un bus dadresse programme, Un bus dadresse pour les donnes.

Meilleure utilisation du CPU :


Chargement du programme et des donnes en parallle
19

Larchitecture
Harvard : Cas des microcontrleurs PIC
Seul les bus de donne (data ou instructions) sont reprsentes

Universit de Savoie

20

Chapitre 1 : Rappel gnraux sur les processeurs


1.1 Rappel sur larchitecture interne des microprocesseurs 1.2 Le traitement des instructions 1.3 Les modes dadressages 1.4 Exemple dexcution dun programme

Universit de Savoie

21

Le traitement des instructions


Organisation dune instruction
Le microprocesseur ne comprend quun certain nombre dinstructions qui sont codes en binaire. Une instruction est compose de deux lments :
Le code opration : Cest un code binaire qui correspond laction effectuer par le processeur Le champ oprande : Donne ou bien adresse de la donne.

La taille d'une instruction peut varier, elle est gnralement de quelques octets (1 8), elle dpend galement de l'architecture du processeur.

Universit de Savoie

22

Le traitement des instructions


Exemple dinstruction

Instruction Addition :
Accumulateur = Accumulateur + Oprande
Correspond linstruction ADD A,#2

Instruction (16 bits) Code opratoire (5 bits) Champ oprande (11 bits) ADD A #2 11001 000 0000 0010
Cette instruction est comprise par le processeur par le mot binaire :

11001

000 0000 0010 = code machine


Universit de Savoie 23

Le traitement des instructions


Phase 1 : Recherche de linstruction en mmoire
La valeur du PC est place sur le bus d'adresse par l'unit de commande qui met un ordre de lecture. Aprs le temps d'accs la mmoire, le contenu de la case mmoire slectionne est disponible sur le bus des donnes. L'instruction est stocke dans le registre dinstruction du processeur.

Universit de Savoie

24

Le traitement des instructions


Phase 2 : Dcodage et recherche de loprande
L'unit de commande transforme l'instruction en une suite de commandes lmentaires ncessaires au traitement de l'instruction. Si l'instruction ncessite une donne en provenance de la mmoire, l'unit de commande rcupre sa valeur sur le bus de donnes. Loprande est stock dans le registre de donnes.

Universit de Savoie

25

Le traitement des instructions


Phase 3 : Excution de linstruction
Le squenceur ralise l'instruction. Les drapeaux sont positionns (registre d'tat). L'unit de commande positionne le PC pour l'instruction suivante.

Universit de Savoie

26

Le traitement des instructions


Les architectures RISC et CISC (1)
Actuellement larchitecture des microprocesseurs se composent de deux grandes familles :

L architecture CISC
(Complex Instruction Set Computer)

Larchitecture RISC
(Reduced Instruction Set Computer)

Universit de Savoie

27

Le traitement des instructions


Les architectures RISC et CISC (2)

Universit de Savoie

28

Chapitre 1 : Rappels gnraux sur les processeurs


1.1 Rappel sur larchitecture interne des microprocesseurs 1.2 Le traitement des instructions 1.3 Les modes dadressages 1.4 Exemple dexcution dun programme

Universit de Savoie

29

Les modes dadressages


Ce sont les diverses manires de dfinir la localisation d un oprande. Les trois modes dadressage les plus courant sont :
Adressage immdiat Adressage direct Adressage indirect

Universit de Savoie

30

Les modes dadressages


Immdiat
Exemple : ADDA #4
ALU

M Mmoire
Adresses
0x00 0x01

Contenu
0100 0101 .. 0010 1111 ..

Compteur Ordinal adrs+1 PC

adrs adrs + 1 adrs + 2

1101 0101 ADDA 0 1 1 0#4 0 0 1 1 .. 1010 1101 0011 1000 1100 0101 1010 1001 . 0111 1010

Universit de Savoie

Accumulateur
31

0110 1101 ..

Les modes dadressages


Direct
Exemple : ADDA adresseX
ALU

Mmoire
Adresses
0x00 0x01

Contenu
0100 0101 .. 0010 1111 ..

Compteur Ordinal adrs+1 PC

adrs adrs + 1 adrs + 2

1101 0101 ADDA 0 adresseX1 110 100 1010 1101

adresseX

0xxxx xxxx0 011 100 1100 0101 1010 1001 . 0111 1010

Universit de Savoie

Accumulateur
32

0110 1101 ..

Les modes dadressages


Indirect
Exemple : ADDA @adresseX
ALU

Mmoire
Adresses
0x00 0x01

Contenu
0100 0101 .. 0010 1111 ..

Compteur Ordinal adrs+1 PC

adrs adrs + 1 adrs + 2

1101 0101 ADDA 0110 1001 @adresseX 1010 1101

@adresseX adresseX

0 adresseX 0 011 100 1100 0101 1010 1001 xxxxx xxxxxx . 0111 1010

Universit de Savoie

Accumulateur
33

0110 1101 ..

Les modes dadressages


Pourquoi existe-t-il plusieurs modes dadressage ?

Universit de Savoie

34

Chapitre 1 : Rappel gnraux sur les processeurs


1.1 Rappel sur larchitecture interne des microprocesseurs 1.2 Le traitement des instructions 1.3 Les modes dadressages 1.4 Exemple dexcution dun programme

Universit de Savoie

35

Exemple dexcution
Directives dassemblage Valeurs des symboles
00000040 00000000 00000001 000000 000000 000000 000002 000004 000006 000008 00000B 3E D3 3E D3 C3 00 40 01 40 00 00 .TITLE .PROC .START HP HPOFF HPON .LOC 0 OSCIL: MOVE MOVE MOVE MOVE JUMP Bruit_HP I8085 OSCIL = = = 1064 0 1 ; Titre du programme ; Processeur utilis ; Adresse dbut programme ; Adresse du Haut-Parleur (40 Hexa) ; Constante, membrane relache ; Constante, membrane attire ; Adresse dassemblage du programme

Mnmoniques des instructions


#HPOFF, A A, $HP #HPON, A A, $HP OSCIL

; Charge valeur HPOFF (0) dans laccumulateur A ; Charge A sur priphrique HP ; Charge valeur HPON (1) dans laccumulateur A ; Charge A sur priphrique HP ; Saute au dbut OSCIL

Adresses

Code des .END instructions

; Fin de lassemblage

Commentaires
36

Exemple dexcution
Programme: instructions
.00

Vue symbolique
,A
MOVE #HPOFF,A

3E 00 D3 40 3E 01 D3 40 C3 00 00

MOVE

Adresses

.01 .02 .03

#HPOFF MOVE A,
MOVE A,$HP

$HP MOVE ,A
MOVE #HPON,A

.04

.05 .06 .07 .08 .09 0A

#HPON MOVE A,
MOVE A,$HP

$HP JUMP
JUMP OSCIL

OSCIL 37

Exemple dexcution
Continue.
cle ucle cle ucle u ou bo e bo e bo b e m m m i i i 2 4 3

re

Universit de Savoie

38

Chapitre 2 : Les microcontrleurs

2.1 Dfinition dun microcontrleur 2.2 Cadencement du microcontrleur 2.3 Les timers 2.4 Les ports dentre/sortie 2.5 La liaison srie 2.6 Le watchdog 2.7 Le CAN

Universit de Savoie

39

Dfinition dun microcontrleur


Un microcontrleur est un circuit qui intgre un maximum de fonctions dans un mme boitier. Lintgration de ces fonctions dans le mme environnement permet de crer des applications plus simplement.
Le circuit intgr d'un microcontrleur 8 bits Intel 8742 possde sur une unique puce : Un processeur cadenc 12 MHz 128 octets de mmoire vive Une EPROM de 2048 bits De nombreuse entres-sorties

Universit de Savoie

40

Dfinition dun microcontrleur


Avantages
Cout rduit Encombrement moindre Fiabilit Mise en uvre plus simple Consommation plus faible

Universit de Savoie

42

Dfinition dun microcontrleur


Contenu
La structure interne d'un microcontrleur comporte typiquement :
Une unit de calcul et de commande Mmoire ROM Mmoire RAM Un contrleur dinterruption Un compteur/temporisateur (timer) Des entres/sorties parallles (ports) Un UART (port srie)

Il peut aussi possder :


Un Watchdog : (surveillance du programme) Une sortie PWM (modulation dimpulsion) Un CAN/CNA (Convertisseur analogique numrique) Un interface IC, CAN
Universit de Savoie 43

Dfinition dun microcontrleur


Exemple : Microcontrleur PIC 16F877

Universit de Savoie

44

Dfinition dun microcontrleur


Les mmoires
ROM memory :
Aussi appel ( juste titre) program memory. Cest une mmoire Flash qui contient le programme excuter.

EEPROM memory
Cest une mmoire similaire la mmoire programme. En revanche, le contenu peut tre modifi en cours dutilisation de lapplication.

Universit de Savoie

45

Dfinition dun microcontrleur


Les mmoires
RAM memory :
General Purpose Register : Mmoire RAM classique, utiliser pour stock des variables. Exemple :
int i; i++; // incrmentation de i depuis la RAM

SFR (Special Function Register) : Cest aussi de la mmoire RAM, sauf que les rles de chacune des cases mmoire (registres) ont t dfinis par le fabriquant. Chaque registre SFR est connect un priphrique matriel spcifique et permet de la contrler. Exemple :
ADCON0 register (adresse 9Fh) permet de piloter le convertisseur A/D.

Universit de Savoie

46

Dfinition dun microcontrleur


Les mmoires
Dclaration de i en RAM Dtail dun registre SFR

Affectation dune valeur un registre SFR

Universit de Savoie

47

Chapitre 2 : Les microcontrleurs

2.1 Dfinition dun microcontrleur 2.2 Cadencement du microcontrleur 2.3 Les timers 2.4 Les ports dentre/sortie 2.5 La liaison srie 2.6 Le watchdog 2.7 Le CAN

Universit de Savoie

48

Cadencement du microcontrleur
Schma du pic 16F877

Universit de Savoie

49

Cadencement du microcontrleur
Les cadencements possibles (1)
Quartz
Trs bonne Stabilit (10 ppm)

Rsonateur cramique
Stabilit ( 0.5%) Moins couteux que le quartz

50

Cadencement du microcontrleur
Les cadencements possibles (2)
Externe
Permet de synchroniser plusieurs lments du microsystme

RC
Trs peu stable mais trs faible cout Pas possible pour tous les microprocesseurs

51

Chapitre 2 : Les microcontrleurs

2.1 Dfinition dun microcontrleur 2.2 Cadencement du microcontrleur 2.3 Les timers 2.4 Les ports dentre/sortie 2.5 La liaison srie 2.6 Le watchdog 2.7 Le CAN

Universit de Savoie

52

Les timers
Mode compteur ou temporisateur
Un timer est le nom courant de compteur / temporisateur . Il sert :
- Mesurer du temps (compter le nombre de coup dhorloge) > Mode temporisateur

- Compter le nombre dvnement sur une broche (exemple : Nombre dappuis sur un bouton poussoir > Mode compteur

Universit de Savoie

53

Les timers
Mode compteur ou temporisateur
En pratique, on visualise la valeur de dpart, puis la valeur darrive. La valeur de comptage est la diffrence des deux valeurs.

Dans quelle mode fonctionne le timer ici? Donner la valeur du temps en fonction de A et B dans cette application.

Universit de Savoie

54

Les timers
Utilisation dun prescaler

Un prescaler permet de diviser la frquence de comptage.

Quelle est le temps mesur dans cette application en fonction de A et B?

Universit de Savoie

55

Chapitre 2 : Les microcontrleurs

2.1 Dfinition dun microcontrleur 2.2 Cadencement du microcontrleur 2.3 Les timers 2.4 Les ports dentre/sortie 2.5 La liaison srie 2.6 Le watchdog 2.7 Le CAN

Universit de Savoie

56

Les ports dentre / Sortie


Ce sont des ports parallles. Ils permettent de recueillir des informations ou de piloter des modules sur lenvironnement extrieur. Ils sont souvent bidirectionnels (configurable en entre ou sortie).

Universit de Savoie

57

Les ports dentre / Sortie


Quelles sont les ports dE/S de ce microcontrleur?

Universit de Savoie

58

Les ports dentre / Sortie


Les sorties logiques

Sortie trois tats Sortie collecteur ouvert

Universit de Savoie

60

Les ports dentre / Sortie


1. Sortie trois tats
Fonctionnement
T1 Bloqu Bloqu Satur Satur T2 Bloqu Satur Bloqu Satur Sortie Etat haute impdance "0" "1" non utilis

Des sorties trois tats peuvent tre relies entres elles mais il faut bien veiller ce que une seule impose un niveau (haut ou bas) et que les autres sorties soit en haute impdance.
Universit de Savoie 61

Les ports dentre / Sortie


2. Sortie collecteur ouvert (1)

Fonctionnement
T2 Satur Bloqu S "0" Dpend du montage

Universit de Savoie

62

Les ports dentre / Sortie


2. Sortie collecteur ouvert (2)

Pour gnrer le niveau "1", une rsistance extrieure est ncessaire (rsistance de tirage // pull-up). Plusieurs sorties "collecteur ouvert" peuvent tre relies entre elles, cela ralise un "ET logique" Une sortie collecteur ouvert peut commander une charge sous une tension diffrente de la tension d'alimentation.
Universit de Savoie 63

Les ports dentre / Sortie


Entre trigger de Schmitt

"1" "0" Vi

Vseuil- Vseuil+

Universit de Savoie

64

Chapitre 2 : Les microcontrleurs

2.1 Dfinition dun microcontrleur 2.2 Cadencement du microcontrleur 2.3 Les timers 2.4 Les ports dentre/sortie 2.5 La liaison srie 2.6 Le watchdog 2.7 Le CAN

Universit de Savoie

65

La liaison srie
La liaison srie USART (Universal Synchronous Asynchronous Receiver Transmitter ) est le mode le plus rependu pour communiquer (et aussi le plus vieux).

66

La liaison srie
Connexions (1)
Une liaison srie permet de transmettre des donnes sur un nombre limit de fils. Cette liaison peut tre Half duplex (liaison synchrone) ou full duplex (liaison asynchrone). Sur le microcontrleur PIC16F877A, la liaison srie asynchrone peut tre mise en uvre laide des pins RxD et TxD. Elle est ralise par un USART :
RxD, signal de rception de lUSART TxD, signal de transmission de lUSART

Universit de Savoie

67

La liaison srie
Connexions (2)

1re tape : 2ime tape :

Configuration de la transmission Envoyer et recevoir des donnes


Universit de Savoie 68

La liaison srie
USART Transmit bloc register

Universit de Savoie

69

La liaison srie
USART receive bloc register

Universit de Savoie

70

Chapitre 2 : Les microcontrleurs

2.1 Dfinition dun microcontrleur 2.2 Cadencement du microcontrleur 2.3 Les timers 2.4 Les ports dentre/sortie 2.5 La liaison srie 2.6 Le watchdog 2.7 Le CAN

Universit de Savoie

71

Le Watchdog (1)

Le chien de garde (watchdog) est un dispositif matriel et logiciel qui permet de se prmunir contre les plantages accidentels. Lide est de provoquer un RESET du CPU afin de relancer lapplication. (Les donnes sont bien sur perdues). Le plantage est dfini lorsque le programme nest pas venu temps faire signe au watchdog.

Universit de Savoie

72

Le Watchdog (2)

MICROCONTROLEUR

73

Chapitre 2 : Les microcontrleurs

2.1 Dfinition dun microcontrleur 2.2 Cadencement du microcontrleur 2.3 Les timers 2.4 Les ports dentre/sortie 2.5 La liaison srie 2.6 Le watchdog 2.7 Le CAN

Universit de Savoie

74

Le CAN
CAN : Dans les microcontrleurs, les voix de conversion analogique/numrique sont souvent multiplexes. Ceci signifie que la frquence maximale de conversion analogique numrique est divise par le nombre de voies utilises.

Trs souvent, il faut configur les entres de conversion en entre analogique car celles-ci peuvent aussi tre utilise en entre numrique.

Universit de Savoie

75

Le CAN

Le CAN
Daprs la datasheet : Quel est le nombre de bits du convertisseur AN. Dans quels registres est stock le rsultat? Comment fait-on pour justifier le rsultat droite ou gauche. Combien possde t on de voies multiplexs? A quoi correspond Vref+ et Vref - ? Comment configure t on une entre en analogique?

Universit de Savoie

77

Le CAN
Sur lapplication ci-dessous, quelle est la rsolution maximale que nous pourrons avoir?

Donner lexpression de la rsolution en fonction de Vref+, Vref- et du nombre de bits du convertisseur. Exprimer la valeur analogique en fonction de Vref+, Vref- et de la valeur numrique donne par le convertisseur.
Universit de Savoie 78

Le CAN
Donner le code C permettant dobtenir un entier reprsentatif de la valeur de conversion en fonction des valeurs de ADRESH et ADRESL.

Universit de Savoie

79

Le CAN
Dans lapplication ci-dessous, donner :
La rsolution Lexpression de Vin en fonction de la valeur numrique du convertisseur.

Universit de Savoie

80

Le CAN
Vitesse maximale du convertisseur

Universit de Savoie

81

Gamme des microcontrleurs


Exemple chez microchip
http://www.microchip.com/

Exemple chez ATMEL


http://www.atmel.com/

Exemple chez ARM


http://www.arm.com/

Etc
Universit de Savoie 82

Chapitre 3 : La programmation

3.1 Les interruptions 3.2 Le logiciel

Universit de Savoie

83

Les interruptions
Problmatique & dfinition
Un systme informatique nest utile que sil communique avec lextrieur. Lobjectif est de pouvoir prendre connaissance que le priphrique sollicite le processeur. Cette sollicitation arrive de faon totalement asynchrone. Deux modes sont possibles :
Une mthode par scrutation (polling) permet dinterroger rgulirement les priphriques afin de savoir si une nouvelle donne est prsente. Une mthode par interruption permet au priphrique luimme de faire signe au processeur de sa prsence.

Universit de Savoie

84

Les interruptions
Scrutation Vs interruption
Scrutation (polling)
Coteux en temps (multiplier par le nombre de priphrique interroger) Implmentation : Appel classique une fonction dans le programme

Interruption
Demande linitiative du priphrique Prise en compte rapide de lvnement Implmentation : Interruption asynchrone dun programme puis retour au mme endroit la fin du traitement

Universit de Savoie

85

Les interruptions
Schma
Une interruption est un arrt temporaire de l'excution normale d'un programme informatique par le microprocesseur afin d'excuter un autre programme (appel routine d'interruption).

Universit de Savoie

86

Les interruptions
Types dinterruption

Interruption masquable
Un masque dinterruption est un mot binaire de configuration du microprocesseur qui permet de choisir (dmasquer) quels modules pourront interrompre le processeur parmi les interruptions disponibles.

Interruption non masquable


Elles s excutent quoi quil arrive, souvent avec une priorit lev (ex : Reset)

Universit de Savoie

87

Les interruptions
Configuration
Un systme peut accepter plusieurs sources dinterruption. Chacune est configurable par registre (registre dinterruption). Mthode de configuration des interruptions
Slectionner les interruptions qui nous intressent Valider les interruptions de faon globale Ecrire le/les sous programme dinterruption Dfinir les priorits entres interruptions

Universit de Savoie

88

Les interruptions
Configuration
Dans le sous programme dinterruption
Sauvegarder le contexte (fait automatique en langage C) Dfinir la source dinterruption (si le sous programme est commun entres plusieurs sources dinterruption) Rinitialiser les flags dinterruption Ecrire le code relatif lapplication Restituer le contexte (fait automatique en langage C)

Cas du 80C51 (intel)


Cas du PIC 16F877 (microchip)

Flag dinterruption

Bit de masquage

Les interruptions
Dmasquage des interruptions

Autorisation des interruptions


Lautorisation globale des interruptions

Dmasquage des interruptions

Universit de Savoie

91

Les interruptions
Les flags dinterruption

Visualisation des flags dinterruption

Universit de Savoie

92

Les interruptions
Le rle de la pile

La pile est une mmoire LIFO (Last In First Out) dans laquelle on stoke des variable temporaire (donne ou adresse). Le haut de la pile est point par le registre SP (Stack Pointer).

93

Les interruptions
Rle de la pile

Elle va servir :
sauvegarder le contexte lenvironnement (adresse du programme et valeur des registres au moment de linterruption). restituer le contexte la fin de linterruption
Note 1 : La sauvegarde et la restitution est faite implicitement en langage C. Note 2 : Une fonction dinterruption est not spcifiquement. Exemple du PIC qui ne possde quun seul vecteur dinterruption :

Universit de Savoie

94

Les interruptions
Avant linterruption
PC ( Addr Prog ) SP ( Addr Pile)
Programme principal

Registres
x xx

Pile

Programme dinterruption
95

Les interruptions
Arrive dune interruption
PC ( Addr Prog IT )

SP ( Addr Pile +1)


Programme principal

Registres
x
Addr Prog xx

Pile

Programme dinterruption
96

Les interruptions
Arrive dune interruption : Sauvegarde contexte
PC ( Addr Prog ) SP ( Addr Pile + 3)
Programme principal

Registres
x xx
x
xx Addr Prog

Pile

Programme dinterruption
97

Les interruptions
Fin dune interruption : Restitution contexte
PC ( Addr fin Prog IT)

SP ( Addr Pile + 1)
Programme principal

Registres
x xx
x
Addr Prog

xx

Pile

Programme dinterruption
98

Les interruptions
Fin dune interruption
PC ( Addr Prog ) SP ( Addr Pile)
Programme principal

Registres
x xx
Addr Prog

Pile

Programme dinterruption
99

Les interruptions
Retour au programme principal
PC ( Addr Prog + 1 )

SP ( Addr Pile)
Programme principal

Registres
x xx

Pile

Programme dinterruption
100

Les interruptions
Exemple sur le PIC 16F877
Quelle interruption est concerne ici ? Quelles actions sont ralises pendant le sous-programme dinterruption?

Universit de Savoie

101

Chapitre 3 : La programmation

3.1 Les interruptions 3.2 Le logiciel

Universit de Savoie

102

Le logiciel
La chane de compilation

Universit de Savoie

103

Remplacer les deux lignes du programme C par le code assembleur correspondant Donner le code machine correspondant chaque instruction trouve

Le logiciel
Programmation de la mmoire programme (Flash)
Utilisation dun logiciel de programmation de mmoire Flash

Universit de Savoie

105

Le logiciel
Programmation de la mmoire programme (Flash)

Universit de Savoie

106

Le logiciel
Avantage du langage C

Universit de Savoie

107