Académique Documents
Professionnel Documents
Culture Documents
Microprocesseurs – microcontrôleurs
Cycle d’ingénieur – Ingénierie de L'Aéronautique – S6
Présenté par :
Pr. FANNAKH Mhamed
mhamed.fannakh@uhp.ac.ma
1 Rappel (système de numération …)
Si il n'y a que deux chiffres en électronique, c'est parce qu'il n'y a que 2 états
(88)10 = (1011000 )2
Rappel (système de numération …)
❑ Conversion d'un nombre décimal en un nombre hexadécimal
Pour écrire un nombre décimal en hexadécimal, on utilise la méthode des
divisions successives par 16 jusqu'à un quotient égal à 0. Les restes successifs, pris
successives par 8 jusqu'à un quotient égal à 0. Les restes successifs, pris de bas en
1 1 1 0 1
(10110 )2 = (11101)Gray
Rappel (système de numération …)
❑ Codes : binaire pur, GRAY, BCD et ASCII
➢ Code Gray
Passage du code Gray vers le binaire pur :
• Le MSB dans le code Gray est le même que le bit correspondant dans le code
binaire naturel
• Ajoutez chaque bit de code binaire généré au bit de code Gray dans la position
adjacente suivante. . Eliminer les retenues.
Exemple : 11101
1 1 1 0 1
-
-
-+
-+
-+
-+
1 0 1 1 0
(11101)Gray = (10110 )2
Rappel (système de numération …)
❑ Codes : binaire pur, GRAY, BCD et ASCII
➢ Code ASCII
• Le code ASCII (American Standard
Code for Information Interchange)
permet de présenter chaque caractère par
un code numérique.
• Le code ASCII de base représentait les
caractères sur 7 bits (128 caractères
possibles).
• Pour coder plus caractère, le code ASCII
a été étendu à 8 bits
Rappel (système de numération …)
❑ Codes : binaire pur, GRAY, BCD et ASCII
➢ Code BCD
• Le code BCD (Binary Coded Decimal) est la
traduction en binaire des 9 premiers chiffres
des systèmes décimal.
• Si on a un nombre décimal N à m chiffres, il
sera codé en BCD sur (m x 4) bits : chaque
chiffre décimal est traduit en code BCD sur 4
bits.
Rappel (système de numération …)
❑ Notions d'arithmétique binaire
➢ Addition
Table d’addition binaire exemple
➢ La multiplication
La multiplication binaire s’effectue selon le principe des multiplications décimal,
on multiplie donc le multiplicande par chacun des bits du multiplicateur. On décale
les résultats intermédiaires obtenus et on effectue ensuite l’addition de ses résultats
partiels.
Rappel (système de numération …)
❑ Notions d'arithmétique binaire
➢ La multiplication
Les règles de calcul de la multiplication binaire sont pratiquement les mêmes qu'en
décimal. Nous avons ainsi:
• 0 0 = 0 • 0 1 = 0 • 1 0 = 0 • 1 1 = 1
➢ La division
La division d'un nombre binaire (le dividende) par un autre (le diviseur) est
identique à la division de deux nombres décimaux.
Application:
Réalisez dans la base binaire les opérations suivantes :
• 42 5 • 36 6
• 17 8 • 120 4
Rappel (système de numération …)
❑ Notions d'arithmétique binaire
➢ Représentation des nombres négatifs par complément à 2
Soit un nombre binaire A sur n bits et son complément ( nommé aussi
complément à 1 de A), on a :
An −1 An − 2 ... A1 A0
A + A = 2n − 1 − A = A + 1 − 2n +
Comme le (2^n) ne rentre pas dans le An −1 An − 2 ... A1 A0
format défini (n bit), il sera ignoré. __________________
On a alors = 1 1 ... 1 1
− A = A +1 = 2n − 1
Rappel (système de numération …)
❑ Les nombres fractionnaires
La partie entière d’un nombre fractionnaire se traduit en mettant en œuvre des
puissances positives de 2. Sa partie décimale se traduit en mettant en œuvre des
puissances négatives de 2, le nombre binaire obtenu se présente sous la forme
d’une partie entière situé à gauche de la virgule et d’une partie fractionnaire situé à
droite de la virgule.
Exemple :
=13,59375
Rappel (système de numération …)
❑ Les nombres fractionnaires
La conversion décimale→ binaire se fait de la manière suivante : La partie entière
est obtenue par la division successive par ‘’2’’. En ce qui concerne la partie
fractionnaire, il suffit de la multiplier par ‘’2’’, la partie entière obtenu représentant
le poids binaire ‘’1’’ ou ‘’0’’. La partie fractionnaire restante est à nouveau
multiplié par ‘’2’’ et ainsi de suite jusqu’à ce qu’il n’y ait plus de partie
fractionnaire ou que la précision obtenue soit jugé suffisante.
Exemple :
12, 6875 = (1100,1011)2
N.B : Il existe des nombres dont l’écriture binaire sera infinie (et périodique). Par
exemple, 1,2 = (1,001100110011 … )2, le cycle « 0011 » se répétant à l’infini.
Rappel (système de numération …)
❑ Représentation des nombres réels en virgule flottante
Dans un ordinateur, les nombres à virgule (réels) sont codés en virgule flottante.
On parle de nombres flottants. La représentation binaire en machine d’un nombre
flottant s’inspire de l’écriture scientifique des nombres décimaux.
L’écriture scientifique :
D’une manière générale, l'écriture scientifique d'un nombre décimal est :
Un signe (+ ou -)
m 10n : On distingue dans cette écriture : Un nombre decimal, appelé mantisse m 1;10
Un entier relatif n, appelé exposant
Exemple :
m = 1, xx xx avec x [0;1]
Comme cette mantisse commence toujours par le chiffre 1, il a été choisi de ne pas
coder ce « 1 » mais uniquement les chiffres après la virgule.
Codage de l’exposant : L’exposant est codé sur 8 bits ou 11 bits selon le format
utilisé. Sur 8 bits on peut coder les entiers compris entre −127 et 128. Sur 11 bits
on peut coder les entiers compris entre −1023 et 1024.
Rappel (système de numération …)
❑ Représentation des nombres réels en virgule flottante
Exemple :
Représentation en virgule flottante de 3,425
3, 425 ⎯codage
⎯⎯→11, 01101101 = +1,101101101 21
s = 0 (signe positif)
m = 101101101
n = (1 + 127 )10 = (128 )10 = (1000 0000 )2
= AB C = A.B
Rappel (système de numération …)
❑ Circuits logiques
➢ L’additionneur :
Le circuit précédent, le demi-additionneur, ne prend pas en compte une
éventuelle retenue provenant de l’addition des chiffres An-1 et Bn-1.
Pour effectuer une addition de deux nombres binaires de n bits, on additionne
successivement les bits du même poids en tenant compte de la retenue de
l'addition précédente comme le montre l'exemple suivant
Rappel (système de numération …)
❑ Circuits logiques
➢ L’additionneur :
L’additionneur complet : permet de réaliser l'addition des bits Ai et Bi en plus de
la retenue Ci-1 de l'addition précédente
Si = A i Bi Ci −1 Ci = A i .Bi + ( A i Bi ) .Ci −1
Rappel (système de numération …)
❑ Circuits logiques
➢ L’additionneur :
Logigramme d’additionneur complet :
S0 = V.A1.A 0 .E S2=V.A1.A 0 .E
S1 = V.A1.A 0 .E S3=V.A1.A 0 .E
Architecture des systèmes à base des µP
❑ Structure matérielle des systèmes à µP
➢ Introduction :
Les structures matérielles des systèmes de traitement de l’information sont
pratiquement toutes organisées autour d’architectures à base de microprocesseur.
Le principal intérêt du microprocesseur est sa polyvalence : Il suffit simplement de
changer le programme pour réaliser des tâches différentes. C’est un gros avantage
par rapport à la technologie « câblée ».
Gain au niveau du coût, de la maintenance (plus fiable car moins de composants =
moins de risques de pannes), gain de temps énorme au niveau de la conception des
systèmes (c’est plus rapide de faire un programme que de concevoir des cartes
électroniques …).
Architecture des systèmes à base des µP
❑ Structure matérielle des systèmes à µP
➢ Introduction :
Le système à microprocesseur est constitué de plusieurs éléments montés sur une
carte de circuit imprimé ou dans un circuit intégré :
Architecture des systèmes à base des µP
❑ Structure matérielle des systèmes à µP
➢ Introduction :
L'élément de base d’un calculateur est constitué par l’unité centrale de traitement
(UCT, CPU : Central Processing Unit). L’UCT est constitué :
▪ d’une unité arithmétique et logique (UAL, ALU : Arithmetic and Logic Unit) :
c’est l’organe de calcul ;
▪ de registres : zones de stockage des données de travail de l’UAL (opérandes,
résultats intermédiaires) ;
▪ d’une unité de contrôle (UC, CU : Control Unit) : elle envoie les ordres (ou
commandes) à tous les autres éléments du calculateur afin d’exécuter un
programme.
Architecture des systèmes à base des µP
❑ Unité Arithmétique et Logique (UAL)
➢ Définition :
L'unité arithmétique et logique, est l'organe de l'ordinateur chargé d'effectuer les
calculs. Le plus souvent, l'UAL est incluse dans le microprocesseur.
Les UAL élémentaires calculent sur des nombres entiers, et peuvent effectuer les
opérations communes :
• Les opérations arithmétiques : addition, soustraction ...
• Les opérations logiques : compléments à un, à deux, ET, OU, NON ...
• Les comparaisons : test d'égalité, supérieur, inférieur...
• Les décalages et les rotations…
Architecture des systèmes à base des µP
❑ Unité Arithmétique et Logique (UAL)
Certaines UAL sont spécialisées dans la manipulation des nombres à virgule
flottante (floating point unit (FPU)). Typiquement, ces unités savent accomplir les
opérations suivantes : multiplications, divisions, comparaisons, modulos, inverse
(1/x), racine carrée, logarithmes, sin, cos …
Architecture des systèmes à base des µP
❑ Unité Arithmétique et Logique (UAL)
L’unité logique et l’unité arithmétique sont intégrées au sein d’une même unité
dédiée au traitement des entiers.
L’unité logique et l’unité arithmétique sont
intégrées au sein d’une même unité dédiée
au traitement des entiers. Pour chacune des
unités, le choix de la fonction se fait par les
commandes C0 et C1. Les deux unités
fonctionnent en parallèle, et la sélection de la
sortie d’une unité (logique ou arithmétique)
se fait par la commande de multiplexage C2 .
Architecture des systèmes à base des µP
❑ Unité Arithmétique et Logique (UAL)
Structure d'une unité arithmétique :
La valeur de commande C0, C1 permet de réaliser, au choix, l’opération
d’addition, de soustraction, voire de comparaison
Architecture des systèmes à base des µP
❑ Unité Arithmétique et Logique (UAL)
Structure de l’unité logique :
L’unité logique doit permettre de réaliser au choix plusieurs opérations logiques
élémentaires telles que le OU, le ET, le OU EXCLUSIF et le NON. Ceci doit être
réalisé sur des mots de n bits.
Il est assez aisé de comprendre que la juxtaposition de cette unité 1 bit permet de
réaliser une unité logique n bits
Architecture des systèmes à base des µP
❑ Unité Arithmétique et Logique (UAL)
Structure de l’unité de décalage :
Le circuit de décalage (shifter) permet les opérations de décalage. Ces opérations
sont réalisées au moyen d’un multiplexeur situé à la sortie de l’unité arithmétique
et logique. Plusieurs types de décalages sont possibles :
Architecture des systèmes à base des µP
❑ Unité Arithmétique et Logique (UAL)
Exemple d’unité de traitement
Architecture des systèmes à base des µP
❑ Les registres internes :
Les registres peuvent être plus ou moins nombreux dans le microprocesseur. Un
grand nombre de registres permet un maximum du traitement des données à
l’intérieur du microprocesseur.
Un minimum de registres internes est indispensable au fonctionnement de l’unité
centrale et est nécessaire à la programmation :
Architecture des systèmes à base des µP
❑ Les registres internes :
Le compteur ordinal PC est le registre qui pointe dans la mémoire l’adresse de
la prochaine instruction à traiter par l’unité de commande.
Le pointeur de pile SP est le registre qui pointe l’adresse du dernier élément de la
pile. La pile est utilisée pour stocker des données intermédiaires ou l’adresse de
retour des sous programmes.
Le registre d’index X est un registre qui pointe l’adresse en cours de lecture dans
une table de données.
Le registre indicateur CC contient des indications sur le résultat après chaque
traitement de l’unité arithmétique et logique. Il est se modifie automatiquement
quand elle effectue une opération.
Architecture des systèmes à base des µP
❑ Les registres internes :
Le registre indicateur CC :
- Le bit indicateur Z : Cet indicateur est mis à 1 lorsque le résultat de la dernière
opération est zéro. Lorsque l’on vient d’effectuer une fonction logique, Z=1
indique que le résultat bit à bit est nul pour chaque couple
- Le bit de retenue C : C’est l’indicateur de report (retenue), qui intervient dans les
opérations d’addition et de soustractions sur des entiers naturels. C = 1 s’il y a une
retenue après l’addition ou la soustraction du bit de poids fort des opérandes
Architecture des systèmes à base des µP
❑ Les registres internes :
- Le bit indicateur N : Cet indicateur est mis à 1 lorsque le résultat de l’opération
est négatif
• Vitesse • Coût
Architecture des systèmes à base des µP
❑ Les mémoires :
➢ Décodage d’adresses :
• A0 … Ax : bus d’adresse de n lignes n=x+1
• D0 … Dy : bus de données de m ligne m=y+1
• Capacité mémoire : C = 2n.m bits
• Taille (longueur) de mot mémoire : m bits
• Espace adressable : C’est le nombre de mots mémoire adressables par un bus
d’adresses de n bits = 2n mots mémoire (adresses)
• Plage d’adresses : c’est le champ
d’adresses occupé par un circuit (boîtier)
mémoire de l’adresse minimale (adresse
basse) à l’adresse maximale (adresse haute)
Architecture des systèmes à base des µP
❑ Les mémoires :
➢ Décodeur d’adresse :
Le décodeur d’adresses a pour fonction de générer des signaux pour la sélection
des différents boîtiers avec lesquels le processeur doit communiquer. Pour éviter
que deux boîtiers répondent simultanément et créent alors un conflit sur les bus,
chaque boîtier doit répondre à une plage d’adresses différente des autres boîtiers
(on affecte à chaque boîtier une plage d’adresses différente des autres boîtiers).
Pour sélectionner un boîtier on utilise CS (Chip Select) ou CE (Chip Enable)
Exemple 1:
Architecture des systèmes à base des µP
❑ Les mémoires :
➢ Décodage d’adresses :
Exemple 2 :
On désire construire une mémoire de 1Ko à partir de 2 boîtiers de 512 octets
chacun. Pour les 2 circuits; on aura donc une capacité totale de 1024 (210) octets
c'est à dire une plage d'adresses de 0 (adresse minimale) à 1023 (adresse
maximale). Pour adresser toute la plage d'adresses il nous faut un bus d'adresses de
10 lignes (A0 - A9). La ligne d'adresse (A9) servira à sélectionner un boîtier parmi
les deux.
Architecture des systèmes à base des µP
▪ Architecture de Von Neumann :
Il s'agit d'une conception théorique basée sur le concept d'ordinateurs à programme
enregistré, dans lesquels les données de programme et les données d'instruction
sont stockées dans la même mémoire. L'idée derrière les architectures Von
Neumann est la possibilité de stocker des instructions dans la mémoire avec les
données sur lesquelles elles fonctionnent. L'architecture Von Neumann ne possède
qu'un seul bus utilisé à la fois pour les extractions d'instructions et les transferts de
données. Les opérations doivent être planifiées car elles ne peuvent pas être
effectuées en même temps.
L'architecture Von Neumann est
principalement utilisée sur toutes les
ordinateurs de bureau, les ordinateurs
portables et les stations de travail hautes
performances...
Architecture des systèmes à base des µP
▪ Architecture de Harvard :
Il s’agit d’une architecture informatique avec des voies de stockage et de
signalisation physiquement séparées pour les données de programme et les
instructions.
L’idée de l’architecture de Harvard est de scinder la mémoire en deux parties:
l’une pour les données et l’autre pour les programmes. Les termes étaient basés sur
le premier ordinateur à relais de Harvard Mark I, qui utilisait un système
permettant à la fois les transferts de données et les transferts d’instructions..
Le développement de l’unité de contrôle dans
l’architecture de Harvard est plus coûteux
que l’ancien en raison de l’architecture
complexe qui utilise deux bus pour les
instructions et les données. Elle est utilisée
principalement dans les microcontrôleurs et
le traitement du signal numérique (DSP)..
Architecture des systèmes à base des µP
▪ Notion de Jeu d’instructions :
➢ Le jeu d’instructions décrit l’ensemble des opérations élémentaires que le µP
peut exécuter. Les instructions peuvent être classées en 4 groupes :
• Transfert de données (charger ou sauver en mémoire, etc…)
• Opérations arithmétiques (addition, soustraction, etc…)
• Opérations logiques (ET, OU, comparaison, etc…)
• Contrôle de séquence (branchements, tests, etc…)
➢ Chaque instruction peut être associée à un ou plusieurs modes d’adressage, par
exemple: Adressage de registre, Adressage immédiat…
➢ Chaque instruction nécessite un certain nombre de cycles d’horloges pour
s’effectuer.
Architecture des systèmes à base des µP
▪ Notion de Jeu d’instructions :
➢ Il existe deux grandes familles au niveau des jeux d’instructions :
• L’architecture CISC (Complex Instruction Set Computer)
• L’architecture RISC (Reduced Instruction Set Computer)
➢ La conception de machines CISC était la seule méthode envisageable pour les
jeux d'instructions. C'est dans les années 80 que la notion de RISC est apparue.
Elle consiste à minimiser le nombre d'instructions et à les simplifier.
➢ Des études ont montré que 80% des traitements des langages de haut niveau ne
faisaient appel qu’à 20% des instructions d’un processeur. L’idée a donc été de
réduire le jeu d’instructions et d’améliorer les vitesses de traitement (un cycle
d’horloge par instruction).
Architecture des systèmes à base des µP
▪ Notion de Jeu d’instructions :
➢ Comparaison entre RISC et CISC
Architecture RISC Architecture CISC
Instr 2 IF ID IE MA
Instr 3 IF ID IE MA
Cycle
machine
Modèle pipeliné : IF ID IE MA
Instr 1
Instr 2 IF ID IE MA
Instr 3 IF ID IE MA
Cycle
machine
Architecture du microcontrôleur PIC 16F84
❑ Introduction :
Un PIC est un microcontrôleur, c’est une unité de traitement de l’information de
type microprocesseur à laquelle on a ajouté des périphériques internes permettant
de faciliter l'interfaçage avec le monde extérieur sans nécessiter l’ajout de
composants externes. Les PICs sont des composants RISC (composant à jeu
d’instructions réduit).
La famille des PICs est subdivisée en 3 grandes familles : La famille Base-Line,
qui utilise des mots d’instructions de 12 bits, la famille Mid-Range, qui utilise des
mots de 14 bits (dont fait partie la 16F84), et la famille High-End, qui utilise des
mots de 16 bits.
Architecture du microcontrôleur PIC 16F84
❑ Introduction :
Pour identifier un PIC, on utilise simplement son numéro :
▪ Les 2 premiers chiffres indiquent la catégorie du PIC, 16 indique un PIC Mid-
Range.
▪ Parfois une lettre L, celle-ci indique que le PIC peut fonctionner avec une plage
de tension beaucoup plus tolérante.
▪ Une ou deux lettres pour indiquer le type de mémoire programme :
• C indique que la mémoire programme est une EPROM ou EEPROM
• CR pour indiquer une mémoire de type ROM
• F pour indiquer une mémoire de type FLASH.
▪ Un nombre qui constitue la référence du PIC.
▪ Un tiret suivi de deux chiffres indiquant la fréquence max de fonctionnement
Architecture du microcontrôleur PIC 16F84
❑ Aspect externe du PIC 16F84 :
Le 16F84 est commercialisé dans un boîtier classique 18 broches
Registre OPTION_REG : RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0
Architecture du microcontrôleur PIC 16F84
❑ Le Timer TMR0 et le Watchdog :
Le Timer TMR0 :
Quelque soit l'horloge choisie, on peut la passer dans un diviseur
de fréquence programmable (Prescaler) dont le rapport est fixé
par les bits PS0, PS1 et PS2 (tableau ci-contre). L'affectation ou
non du Prescaler se fait à l'aide du bit PSA du :
▪ PSA = 1 → on utilise le Prescaler
▪ PSA = 0 → pas de Prescaler
Registre OPTION_REG : RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0
Architecture du microcontrôleur PIC 16F84
❑ Le Timer TMR0 et le Watchdog :
Le Timer TMR0 :
▪ Le contenu du timer TMR0 est accessible par le registre qui porte le même
nom. Il peut être lu ou écrit à n'importe quel moment. Après une écriture,
l'incrémentation est inhibée pendant deux cycles d'instruction.
▪ Au débordement de TMR0 (FF → 00), le drapeau T0IF est placé à 1. Ceci peut
déclencher l'interruption T0I si celle-ci est validée
TRA4
TTOIF
TPscl
Tosc/4
Architecture du microcontrôleur PIC 16F84
❑ Le Timer TMR0 et le Watchdog :
Le Timer TMR0 :
TRA4
TTOIF
TPscl
Tosc/4
Valeur de temporisation :
▪ Sans Prescaler : TT 0 IF = VTMR 0 Tosc /4 ou TT 0 IF = VTMR 0 TRA 4
▪ Avec Prescaler : TT 0 IF = VTMR 0 VPscl Tosc /4 ou TT 0 IF = VTMR 0 VPscl TRA 4
Architecture du microcontrôleur PIC 16F84
❑ Le Timer TMR0 et le Watchdog :
Le Watchdog : C’est un compteur 8 bits incrémenté en permanence (même si le
µC est en mode sleep) par une horloge RC intégrée indépendante de l'horloge
système. Lorsqu’il déborde, (WDT TimeOut), deux situations sont possibles :
▪ Si le µC est en fonctionnement normal, le WDT time-out provoque un RESET.
Ceci permet d’éviter de rester planté en cas de blocage du microcontrôleur par
un processus indésirable non contrôlé
▪ Si le µC est en mode SLEEP, le WDT time-out provoque un WAKE-UP,
l'exécution du programme continue normalement là où elle s'est arrêtée avant
de rentrer en mode SLEEP. Cette situation est souvent exploitée pour réaliser
des temporisations
Architecture du microcontrôleur PIC 16F84
❑ Le Timer TMR0 et le Watchdog :
Le Watchdog :
L'horloge du WDT est ajustée pour que Le Time-Out arrive toutes les 18 ms. Il est
cependant possible d'augmenter cette durée en faisant passer le signal Time-Out
dans un prédiviseur programmable (partagé avec le timer TMR0).
Architecture du microcontrôleur PIC 16F84
❑ Les interruptions :
Une interruption provoque l’arrêt du programme principal pour aller exécuter une
procédure d'interruption. A la fin de cette procédure, le microcontrôleur reprend le
programme à l’endroit où il s’était arrêté. Le PIC16F84 possède 4 sources
d'interruption. A chaque interruption sont associés deux bits: un bit de validation et
un drapeau. Le premier permet d'autoriser ou non l'interruption, le second permet
au programmeur de savoir de quelle interruption il s'agit. Tous ces bits sont dans le
registre INTCON à part le drapeau EEIF de l'interruption EEI qui se trouve dans le
registre EECON1.
Architecture du microcontrôleur PIC 16F84
❑ Les interruptions :
GIE : ce bit permet de valider ou d'interdire (globalement) toutes les interruptions
INTEDG
INTE
INTF
L'interruption INT
(Entrée RB0 du port B)
RBIF RBIE
L'interruption RBI
(RB4 A RB7 du port B) GIE
Déclenchement
T0IF T0IE de l’interruption
L'interruption T0I
(Débordement du TMR0)
EEIF EEIE
L'interruption EEI
(Fin d'écriture dans l'EEPROM)
Architecture du microcontrôleur PIC 16F84
❑ Les interruptions :
➢ L'interruption INT (EntréeINTEDG
RB0 du port B)INTE
:
INTF
L'interruption INT
Cette interruption est provoquée par un changement d'état sur l'entrée RB0 du port
(Entrée RB0 du port B)
▪ INTEDG : front de
EEIFdéclenchement, EEIE
1=montant, 0=descendant (registre
L'interruption EEI
(Fin d'écriture dans l'EEPROM)
OPTION_REG)
➢ L'interruption RBI (RB4 A RB7 du port B) :
Cette interruption est provoquée par un changement d'état sur l'une des entrées
RB4 à RB7 du port B, Le front n'a pas d'importance. Les bits associés sont RBIE
(validation) et RBIF (drapeau)
Architecture du microcontrôleur PIC 16F84
❑ Les interruptions :
➢ L'interruption T0I : Débordement du Timer TMR0
Cette interruption est provoquée par le débordement du timer TMR0. Les bits
associés sont T0IE (validation) et T0IF (drapeau)
➢ L'interruption EEI : Fin d'écriture dans l'EEPROM
Cette interruption est déclenchée à la fin d'une écriture réussie dans l'EEPROM.
Les bits associés sont EEIE (validation) et EEIF (drapeau).
INTEDG
INTE
INTF
L'interruption INT
(Entrée RB0 du port B)
RBIF RBIE
L'interruption RBI
(RB4 A RB7 du port B) GIE
Déclenchement
T0IF T0IE de l’interruption
L'interruption T0I
(Débordement du TMR0)
EEIF EEIE
L'interruption EEI
(Fin d'écriture dans l'EEPROM)
Architecture du microcontrôleur PIC 16F84
❑ Les interruptions :
➢ Déroulement d'une interruption
Lorsque l'événement déclencheur d'une interruption intervient, alors son drapeau
est positionné à un (levé). Si l'interruption correspondante a été validée, elle est
alors déclenchée : le programme arrête ce qu'il est en train de faire et va exécuter la
procédure d'interruption qui se trouve à l'adresse H’004' en exécutant les étapes
suivantes :
1) L’adresse contenue dans le PC (Program Counter) est sauvegardée dans la
pile, puis remplacée par la valeur H’004' (adresse de la routine d'interruption).
2) Le bit GIE est placé "0" pour inhiber toutes les interruptions (afin qu'on ne soit
pas dérangés pendant l'exécution de la procédure d'interruption).
3) A la fin de la procédure d'interruption (l'instruction RETFIE) :
Architecture du microcontrôleur PIC 16F84
❑ Les interruptions :
➢ Déroulement d'une interruption
▪ Le bit GIE est replacé à l'état haut (autorisant ainsi un autre événement)
▪ Le contenu du PC est rechargé à partir de la pile ce qui permet au
programme de reprendre là où il s'est arrêté
Deux remarques importantes sont à faire :
▪ Le drapeau reste à l’état haut même après le traitement de l’interruption. Par
conséquent, il faut toujours le remettre à "0" sinon l'interruption sera
redéclenchée
▪ Seul le PC est empilé automatiquement. Si cela est nécessaire, les registres W
et STATUS doivent être sauvegardés puis restaurés à la fin de la routine pour
que le microcontrôleur puisse reprendre dans les mêmes conditions.
Architecture du microcontrôleur PIC 16F84
❑ Les instructions du 16F84 :
Tous les PICs Mid-Range ont un jeu de 35 instructions. Chaque instruction est
codée sur un mot de 14 bits. A part les instructions de saut, toutes les instructions
sont exécutées en un cycle d'horloge. Sachant que l’horloge fournie au PIC est
Ce sont des instructions qui manipulent les données sous forme d’octets.
Architecture du microcontrôleur PIC 16F84
❑ Les instructions du 16F84 :
Elles sont codées de la manière suivante :
• 6 bits pour l’instruction : logique, car comme il y a 35 instructions, il faut 6
éditeur de code
Configuration du projet
Programmation du PIC en langage C
❑ Langage et compilateur mikroC pour PIC
➢ Introduction au langage de programmation mikroC
La structure la plus simple d'un programme en mikroC, c’est le programme
représenté sur le slide suivant, qui nous permettra de faire clignoter une LED
connectée au PORTB (par exemple bit 0 du PORTB) du microcontrôleur PIC avec
une période de 2 secondes (1 seconde allumée et une seconde éteinte)
Règles générale d’écriture en microC :
▪ Les instructions propres au langage mikroC doivent être écrites en minuscule
(void main (void)).
▪ Les instructions particulières aux microcontrôleurs doivent être écrites en
majuscule (TRISB).
▪ Toutes instructions ou actions se terminent par un point virgule « ; »
Programmation du PIC en langage C
❑ Langage et compilateur mikroC pour PIC
➢ Introduction au langage de programmation mikroC
Programmation du PIC en langage C
❑ Le convertisseur analogique numérique :
➢ Introduction :
Un Convertisseur Analogique – Numérique, CAN ou ADC (Analogue to Digital
Convertisor) permet de convertir une tension analogique (∩) VE, en un mot MS,
numérique (#) sur n bits.
L’autre entrée est reliée à la sortie d’un CNA sur lequel on applique
successivement des poids de plus en plus faibles. Ces poids sont générés par un
ADFM : justification à droite ou à gauche du résultat dans les registre ADRESH et ADRESL
1 : justifié à droite 000000xx xxxxxxxx
0 : justifié à gauche xxxxxxxx xx000000
PCFG3:PCFG0 : configuration des E/S et des tensions de références. Les 5 broches de
PORTA et les 3 de PORTE peuvent être configurés soit en E/S digitales, soit en entrées
analogiques. RA2 et RA3 peuvent aussi être configurées en entrée de référence.
Programmation du PIC en langage C
❑ Langage et compilateur mikroC pour PIC
➢ Le module CAN du pic 16F877 :
Le PIC dispose d’un échantillonneur bloqueur intégré constitué d'un interrupteur S,
d'une capacité de maintien C=120 pF et d’un convertisseur Analogique numérique
10 bits. Pendant la conversion, la tension Ve à l'entrée du convertisseur A/N doit
être maintenue constante.
Au départ il faut commencer par faire l’acquisition du signal en fermant
l’interrupteur S, ceci se fait à l’aide du registre ADCON0, soit au moment de la
validation du module par le bit ADON soit après un changement de canal si
ADON est déjà positionné.
Le temps de conversion est égal à 12TAD
TAD est le temps de conversion, il dépend de la fréquence du quartz et du
prédiviseur (div) choisi : TAD = div x 1/fosc
Programmation du PIC en langage C
❑ Langage et compilateur mikroC pour PIC
➢ Le module CAN du pic 16F877 :
Le choix de div doit être ajusté pour que TAD soit ≥ à 1,6 µs
organigramme de programmation ».
Modèle d'un algorigramme :