SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
MICROCONTRÔLEUR
-PIC-
2015-2016
PLAN
Introduction au microcontrôleur (PIC)
Programmation des PICs
PIC 16F84A
PIC 16F877
PLAN
Introduction au microcontrôleur (PIC)
Programmation des PICs
PIC 16F84A
PIC 16F877
MICROCONTRÔLEUR ??
Définition : (rappel)
Circuit programmable capable d’exécuter un programme et qui possède des
circuits intégrés d’interface avec le monde extérieur.
Les avantages des microcontrôleurs : (rappel)
- Diminution de l’encombrement du matériel et du circuit imprimé
- Simplification du tracé du circuit imprimé (plus besoin de tracer de bus !)
- Augmentation de la fiabilité du système nombre de composants P
- Diminution de la consommation
- Le microcontrôleur contribue à réduire les coûts à plusieurs niveaux:
moins cher que les composants qu’il remplace
-Diminution des coûts de main d’œuvre (conception et montage)
- Environnement de programmation et de simulation évolués
MICROCONTRÔLEUR ??
MICROCONTRÔLEUR ??
Les types (rappel) :
De nos jours , il existe plusieurs types de microcontrôleur :
MICROCONTRÔLEUR ??
Microcontrôleur PIC
Actuellement les modèles Microchip, sont classés en 3 grandes familles :
Base-Line ; Mid-Range ; High-End
Nous nous limiterons à la famille Mid-Range, sachant que si vous avez tout compris, vous passerez
très facilement à une autre famille, et même à un autre microcontrôleur
Microcontrôleur PIC
Malgré qu’il y a plusieurs modèles de famille de PIC , tous ces µC ont
quelques caractéristiques en communs telles que :
• Digital I/O ports
• On-chip timer avec 8-bit prescaler
• Power-on reset
• Watchdog timer
• Power-saving SLEEP mode
• courant débité
• External clock interface
• RAM data memory
• EPROM or Flash program memory
Microcontrôleur PIC
quelques PICs présentent plus de caractéristiques :
• Entrée analogique (Analog input channels)
• Comparateur analogique (Analog comparators)
• TIMER additionnel (Additional timer circuits)
• EEPROM data memory
• interrupteur (External and internal interrupts)
• oscillateur intérieur (Internal oscillator)
• modulation-largeur-impultion (Pulse-width modulated (PWM) output)
• USART serial interface (Universal Synchronous Asynchronous Receiver Transmitter )
Et autres qui present plus encore ! :
• CAN bus interface
• Direct LCD interface
• USB interface
• Motor control
‘‘L’intérieur ’’ d’un microcontrôleur
PIC
 Program Memory (Flash) :
-Contient le programme à exécuter
-Son contenu demeure conservé après mise hors tension
 Data Memory (RAM) :
- Utilisée pour stocker les variables du programme : Pour pouvoir travailler normalement le
μC doit stocker des données temporaire quelque part et c’est la qu’intervient la RAM.
-Volatile : données perdues en cas de coupure de l’alimentation
 La mémoire EEPROM (Electrical Erasable Programmable Read Only Memory)
-vous pouvez lire et écrire depuis votre programme. Ces octets sont conservés après une
coupure de courant (non- Volatile ) et sont très utiles pour conserver des paramètres
semi-permanents.
Les registres spéciaux : SFR (Special Function Registers)
- Ils sont utilisés par le µC pour contrôler ses opérations internes
- Le nombre des SFR varie selon la complexité du µC
Parmi les SFR les plus importants/utilisés :
• OPTION register
• I/O registers
• Timer registers
• INTCON register
• A/D converter registers
PLAN
Introduction au microcontrôleur (PIC)
Programmation des PICs
PIC 16F84A
PIC 16F877
PROGRAMMATION
Comment procéder ??
Edition du programme
Compilation du programmeExécution du programme
PROGRAMMATION
Edition code source
Compilation
(Simulation)
Chargement
Test sur le
matériel
Processus de développement
d’un programme pour une
‘‘simple’’ application
PROGRAMMATION
Pourquoi utiliser le langage C
l’assembleur proche du langage machine est trop peu lisible est mal adaptés
à une architecture complexe de programme.
Il existe de nombreux langage de haut niveau :
Certain développer pour des microcontrôleurs, d’autres largement
répandus dans les ordinateurs ont étés adaptés aux besoins des
microcontrôleurs.
C’est le cas du C.
PROGRAMMATION
Pré-requises:
basiques de langage C ( types de base , Les opérateurs , Les instructions de
contrôle , les fonctions … )
Mikroc Pro for PIC ( édition du programme , compilation , librairies …) .
PLAN
Introduction au microcontrôleur (PIC)
Programmation des PICs
PIC 16F84A
PIC 16F877
Microcontrôleur PIC 16F84A
Les caractéristique essentielles du Pic 16F84A :
Operating frequency/ speed 0-20 MHz
Power supply voltage 2.0-5.5V
13 I/O pins with individual direction control
-High current sink/source for direct LED drive
(25 mA sink/source max. per pin)
68 bytes of Data RAM (Data memory ; volatile)
 64 bytes of Data EEPROM (Data memory ; non-volatile)
- 10.000.000 typical erase/write cycles
1024 words (1K) of program memory flash:
- 10.000.000 typical erase/write cycles
Four interrupt sources:
- External RB0/INT pin
- TMR0 timer overflow
- PORTB<7:4> interrupt-on-change
- Data EEPROM write complete
TMR0: 8-bit timer/counter
Watch-dog timer (chien de garde)
1-La mise sous tension :
• Lorsque le µC est mis sous-tension , il doit exécuter son programme dés le début ( le compteur du
programme 'PC' forcé à 0 ).
• Le CPU (Central Processing Unit) démarre l’exécution de son programme lorsque la condition RESET
n’est plus maintenue (lorsque la pin MCLR est mise au niveau haut )
2-Les ports parallèles :
2-1 Caractéristiques électriques :
2-2 les entrées logique :
• Le PIC ne fonctionne qu’avec deux niveaux logiques 0 et 1 ; bas et haut ( les broches comportent
des trigger de Schmitt ou TLL).
• Pour déterminer si un signal sera bien reçu (interprété) par le circuit/la broche logique ,il est
nécessaire de comprendre le fonctionnement des entrées (les broches)
2-3 Resistance Pull-up/down :
Ayant une grande valeur d’ordre 10K , elle permet de maintenir les broches (input) dans un
niveau logique donné (niveau par défaut ).
L’entrée du µC fig.(a) (resp. fig.(b) ) est maintenue au niveau logique 1 (resp. 0 ) ; lorsqu’on
ferme l’interrupteur l’entrée est forcée à la masse (resp. +V) qui correspond à 0 (resp. 1)
Resistance Pull-up Resistance Pull-down
2-4 Port B ( Pic 16F84A) :
• Ce port peut être utilisé généralement dans les deux directions (in/out) (8 bits) , et doté de résistance Pull-up
‘Weak pull-up’ pour chaque broche.
• Le registre TRISB permet la configuration de la direction des broches ; Chaque bit positionné à 1 configure la pin
correspondante en entrée. Chaque bit à 0 configure la pin en sortie
• La configuration des broches en mode out se fait à l'aide du registre PORTB (faire sortir 5v ou 0v) (0=0V ; 1=5V)
• Le registre OPTION (bit 7) permet une configuration globale (tout ou rien) des résistances ‘Weak pull-up’ ;
• La résistance interne (Weak pull-up) est automatiquement désactivée pour les broches en mode output/sortie .
• Le bit 0 du PORT B peut également être utilisé comme entrée d'interruption externe. Le choix du front de
déclenchement se fait en configurant le bit 6 du registre OPTION.
• Les 4 broches RB7:RB4 (PB7 PB6 PB5 et PB4) provoquent une interruption sur un changement d'état si elles sont
configurées en ENTREE via le registre INTCON (configurable ON/OFF)
2-5 Port A ( Pic 16F84A) :
• Comme pour le PORTB , ce port peut être utilisé généralement dans les deux directions (in/out) (5 bits)
• La configuration de direction se fait à l'aide du registre TRISA : Chaque bit positionné à 1 configure la pin
correspondante en entrée. Chaque bit à 0 configure la pin en sortie ( 0 = out ; 1 =in )
• La configuration des broches en mode sortie se fait à l'aide du registre PORTA (0=0V ; 1=5V)
RA4 ( Pic 16F84A) :
• En entrée, la broche RA4 peut être utilisée soit comme E/S numérique normale, soit comme entrée horloge pour le
TIMER TMR0
• En sortie, RA4 est une E/S à drain ouvert (open drain), pour l'utiliser comme sortie logique (0/1), il faut ajouter une
résistance de pull-up externe (470 ohms–4.7 K ohms) , dans ce cas le courant provient de la résistance pull-
up.
•Output ‘open drain’ : ce type de broche a un mode ‘Out’ flexible , il peut être utilisé : comme sortie logique normal
(fig. a) , ou comme un driver direct pour une charge légère (fig. b)
(pour le Pic 16F84A Vod max =8.5 V )
Resistance Pull-up
sur RA4
2-6 l’horloge ( Pic 16F84A) :
• La fréquence de l'horloge interne du PIC est obtenue en divisant par 4 la fréquence de l'horloge externe.
• Le PIC 16F84A peut opérer dans 4 mode :
-LP : Low Power Crystal (32,768 kHz jusqu'à 200 kHz)
-XT : Crystal/Resonator 1–4 MHz
-HS : High Speed > 4MHz : grande consommation de courant
-RC : Resistor/Capacitor difficile de prévoir la fréquence d'oscillation avec certitude.
Mode LP , XT et HS
Mode RC
Sélection des capacités adéquates pour un Quartz
Quartz
3 : les registres spéciaux ( Pic 16F84A) :
vue générale des registres :
3-1 STATUS REGISTER :
• Contient les différents bits flags liés aux
opérations arithmétiques, les indicateurs de
RESET et le bit de sélection de la BANK
mémoire.
3-2 OPTION REGISTER :
• Ce registre en lecture écriture permet de
configurer les pré-diviseurs(Prescaler) du
TIMER et du WATCHDOG, la source du
TIMER, le front des interruptions et le choix
du Pull up sur le Port B.
3-3 Gestion des interruptions :
• Une interruption provoque l’arrêt du programme principal pour aller exécuter une procédure d'interruption
(void interrupt() ). A la fin de cette procédure, le microcontrôleur reprend le programme à l’endroit où il
s’était arrêté.
• A chaque interruption sont associés deux bits: un bit de validation (E:enabale) et un drapeau (F:flag). Le
premier permet d'autoriser ou non l'interruption, le second permet au programmeur de savoir de quelle
interruption il s'agit.
• Toutes les sources d’interruption arrivant à la même adresse, si le programmeur utilise plusieurs sources
d’interruptions, il lui faudra déterminer lui-même laquelle il est en train de traiter.
• Une interruption ne peut pas être interrompue par une autre interruption. Les interruptions sont donc
invalidées automatiquement lors du saut à void interrupt() par l’effacement du bit GIE (que nous allons voir).
• Les interruptions sont remises en service automatiquement lors du retour de l’interruption.
INTCON REGISTER:
• Ce registre en lecture écriture permet de
configurer les différentes sources d'interruption
• Le PIC16F84A possède 4 sources d'interruption
4 - TIMER/COUNTER TMR0 :
• Rôle : Réaliser une temporisation
• Élément essentiel : Compteur qui s'incrémente à chaque front montant (ou descendant ) du signal qui lui est appliqué :
• Un TIMER doit pouvoir compter un temps défini par le programme (par exemple 1ms, 10ms,50ms, etc).
 Pour cela, 2 paramètres peuvent être modifiés :
 La fréquence du signal appliqué au compteur (prescaler)
 Le nombre d'impulsions à compter
• Le contenu du 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 instruction
• Au débordement de TMR0 , le drapeau T0IF est placé à 1. Ceci peut déclencher l'interruption T0I si celle-ci est
validée
• Ce registre contient une valeur indéterminée à la mise sous tension, si vous désirez compter à partir d’une valeur
précise (0 ou autre), placer explicitement cette valeur dans votre programme .
• Ce module peut fonctionner en mode TIMER, quand il s'incrémente en fonction (PRESCALER ) du cycle
instruction (Fosc/4) ou en mode compteur, quand il s'incrémente à chaque front montant/descendant de l'horloge
externe appliquée sur le Port A0.
• Quelque soit l'horloge choisie, on peut la passer dans un diviseur de fréquence programmable (prescaler) dont le
rapport est fixés par les bits PS0, PS1 et PS2 du registre OPTION
• Il importe de comprendre que le prédiviseur fonctionne de la façon suivante :
- Le prédiviseur compte jusque sa valeur programmée par PS0/PS2.
- Une fois cette valeur atteinte, TMR0 est incrémenté
- Le prédiviseur recommence son comptage à l’impulsion suivante
MODE TIMER (temporisateur) :
• Dans ce mode , le TMR0 compte les cycles d’horloge du PIC lui-même éventuellement prédivisé .
• Pour travailler dans le mode nous devons configurer OPTION de la façon suivante :
OPTION= xx0abc bc : valeur du prescaler a : assignement du prescaler
MODE compteur :
• Dans ce mode , le TMR0 compte les impulsions (front mentant ou descendant) reçues sur la pin RA4/TOKI
• Pour travailler dans le mode nous devons configurer OPTION de la façon suivante :
OPTION= xx1fabc bc : valeur du prescaler a : assignement du prescaler
• La formule suivante peut être utilisée pour calculer la duré nécessaire pour que TIMER génére un
débordement/overflow :
Overflow time = 4 * TOSC * Prescaler * (256 – TMR0)
avec : Overflow time en µs ; TOSC est la période d’oscillation = 1/Fosc
Prescaler est le pré-diviseur choisi par le registre OPTION
TMR0 est la valeur chargée dans le registre TMR0 (valeur initiale)
Exemple
Calcul d'un temps de 10 ms : T= 10.10^-3 = X * Y * 4 /4.10^6
avec : X= valeur du pré-deviseur (Prescaler) Y= valeur à compter= 256 - valeur initiale
Soit X * Y= 10000
Remarque:
• L’écriture dans le registre TMR0 efface le contenu du prédiviseur. Les événements survenus au niveau du
prédiviseur sont donc perdus. ne pas confondre contenu (nombre d’événements comptés) et valeur (déterminée
par les bits de configuration)
• En mode compteur : pour ne pas rater un impulsion il faut Tsignal > Tcyc = 4*Tosc
4 - Le WatchdogTimer WDT (Chien de garde)
Le WATCHDOG, ou chien de garde est un mécanisme de protection de votre programme. Il sert à surveiller si celui-
ci s’exécute toujours dans l’espace et dans le temps que vous lui avez attribués.
• 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
• L'utilisation du WDT doit se faire avec précaution pour éviter la réinitialisation (inattendue) répétée du programme.
Pour éviter un WDT timeOut lors de l'exécution d'un programme, on a deux possibilités :
 Inhiber le WDT d'une façon permanente en mettant à 0 le bit WDTE .
 Remettre le WDT à 0 périodiquement dans le programme à l'aide de l'instruction CLRWDT pour éviter qu'il
ne déborde
illustration du TMR0 et WDT
5- Redémarrage (RESET) :
• Retenez ceci : pour faire fonctionner le PIC normalement, reliez la pin MCLR au
+5V. La mise à la masse de cette broche provoque un reset du PIC. SI vous voulez
par exemple un bouton reset sur votre montage, reliez la pin MCLR au +5 via une
résistance de 10Kohms. Placez votre bouton reset entre la pin MCLR et la masse,
comme dans ce schéma :
Le tableau suivant vous montre tous les événements liés au reset, et leurs effets sur le PC (où le
programme se branchera) et le registre STATUS.
« x » renseignent un état inconnu, « u » signifie inchangé
4 - Le mode SLEEP :
• Le PIC peut être placé en mode faible consommation à l'aide de l'instruction SLEEP (en asm). Dans ce mode,
l'horloge système est arrêtée ce qui arrête l'exécution du programme. Pour sortir du mode SLEEP, il faut
provoquer un WAKE-UP, pour cela il y a 3 possibilités :
 RESET externe dû à l'initialisation du PIC en mettant l'entrée MCLR à 0. Le PIC reprend l'exécution du
programme à partir du début.
 Timeout du chien de garde WDT si celui-ci est validé. Le PIC reprend le programme à partir de l'instruction
qui suit l'instruction SLEEP
 Interruption INT (sur RB0) ou RBI (sur RB4-RB7) ou EEI (fin d'écriture en EEPROM de données). Le bit de
validation de l'interruption en question doit être validé, par contre, le WAKE-UP a lieu quelque soit la position de
bit de validation globale GIE. On a alors deux situations :
 GIE = 0, Le PIC reprend l'exécution du programme à partir de l'instruction qui suit l'instruction
SLEEP, l'interruption n'est pas prise en compte
 GIE = 1, Le PIC exécute l'instruction qui se trouve juste après l'instruction SLEEP puis se branche
à la fonction void interrupt() pour exécuter la procédure d'interruption.
Applications ( PIC 16F84A)

Contenu connexe

Tendances

Conception avec pic
Conception avec pic Conception avec pic
Conception avec pic nawzat
 
Embedded Systems
Embedded SystemsEmbedded Systems
Embedded SystemsSara Morgan
 
Microprocesseur support de cours
Microprocesseur support de coursMicroprocesseur support de cours
Microprocesseur support de courssarah Benmerzouk
 
Formation arduino 2018
Formation arduino 2018Formation arduino 2018
Formation arduino 2018Hichem Hamdi
 
Chapitre ii circuits combinatoires
Chapitre ii circuits combinatoiresChapitre ii circuits combinatoires
Chapitre ii circuits combinatoiresSana Aroussi
 
Ch4 circuitscombinatoires
Ch4 circuitscombinatoiresCh4 circuitscombinatoires
Ch4 circuitscombinatoiresmickel iron
 
Systeme embarque td1
Systeme embarque td1Systeme embarque td1
Systeme embarque td1SinGuy
 
Exercices vhdl
Exercices vhdlExercices vhdl
Exercices vhdlyassinesmz
 
cour PIC16F877.pptx
cour PIC16F877.pptxcour PIC16F877.pptx
cour PIC16F877.pptxKamalZeghdar
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industrielAdnane Ahmidani
 
Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84guest1e7b02
 
Programmation de systèmes embarqués : Bus et périphériques de communication
Programmation de systèmes embarqués : Bus et périphériques de communicationProgrammation de systèmes embarqués : Bus et périphériques de communication
Programmation de systèmes embarqués : Bus et périphériques de communicationECAM Brussels Engineering School
 
L’amplificateur opérationnel et ses applications
L’amplificateur opérationnel et ses applicationsL’amplificateur opérationnel et ses applications
L’amplificateur opérationnel et ses applicationsmorin moli
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseurPeronnin Eric
 

Tendances (20)

Conception avec pic
Conception avec pic Conception avec pic
Conception avec pic
 
Embedded Systems
Embedded SystemsEmbedded Systems
Embedded Systems
 
Microprocesseur support de cours
Microprocesseur support de coursMicroprocesseur support de cours
Microprocesseur support de cours
 
Formation arduino 2018
Formation arduino 2018Formation arduino 2018
Formation arduino 2018
 
Chapitre ii circuits combinatoires
Chapitre ii circuits combinatoiresChapitre ii circuits combinatoires
Chapitre ii circuits combinatoires
 
Ch4 circuitscombinatoires
Ch4 circuitscombinatoiresCh4 circuitscombinatoires
Ch4 circuitscombinatoires
 
Systeme embarque td1
Systeme embarque td1Systeme embarque td1
Systeme embarque td1
 
Exercices vhdl
Exercices vhdlExercices vhdl
Exercices vhdl
 
Formation stm32
Formation stm32Formation stm32
Formation stm32
 
cour PIC16F877.pptx
cour PIC16F877.pptxcour PIC16F877.pptx
cour PIC16F877.pptx
 
Langage vhdl
Langage vhdlLangage vhdl
Langage vhdl
 
Coursdsp tdi
Coursdsp tdiCoursdsp tdi
Coursdsp tdi
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industriel
 
Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84
 
Programmation de systèmes embarqués : Bus et périphériques de communication
Programmation de systèmes embarqués : Bus et périphériques de communicationProgrammation de systèmes embarqués : Bus et périphériques de communication
Programmation de systèmes embarqués : Bus et périphériques de communication
 
Systeme embarque
Systeme embarqueSysteme embarque
Systeme embarque
 
L’amplificateur opérationnel et ses applications
L’amplificateur opérationnel et ses applicationsL’amplificateur opérationnel et ses applications
L’amplificateur opérationnel et ses applications
 
Les systèmes embarqués arduino
Les systèmes embarqués arduinoLes systèmes embarqués arduino
Les systèmes embarqués arduino
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseur
 
DSP
DSPDSP
DSP
 

En vedette

Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Karim Touati
 
Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2Mohammed Lamghari
 
Programmation des pic_en_c_part2
Programmation des pic_en_c_part2Programmation des pic_en_c_part2
Programmation des pic_en_c_part2oussamada
 
Programmation des pic_en_c_part1
Programmation des pic_en_c_part1Programmation des pic_en_c_part1
Programmation des pic_en_c_part1oussamada
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseurISIG
 
Api cours
Api coursApi cours
Api coursBel Ami
 
Ds.2 a.sc.avec corrigé (tm)
Ds.2 a.sc.avec corrigé (tm)Ds.2 a.sc.avec corrigé (tm)
Ds.2 a.sc.avec corrigé (tm)Mohamed Trabelsi
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le MicroprocesseurTheCrazyMan
 
projet interface LabView avec conception prototype machine de tri
projet interface LabView avec conception prototype machine de tri projet interface LabView avec conception prototype machine de tri
projet interface LabView avec conception prototype machine de tri Moatez Amairi
 
Le transformateur de puissance
Le transformateur de puissanceLe transformateur de puissance
Le transformateur de puissanceslimanelaouin
 
Le grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigésLe grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigéstoumed
 
Cours microcontroleur 8051 v1.1
Cours microcontroleur 8051 v1.1Cours microcontroleur 8051 v1.1
Cours microcontroleur 8051 v1.1Jack Ilboudo
 

En vedette (20)

Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
 
Pic16f84
Pic16f84Pic16f84
Pic16f84
 
Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2
 
Microcontroleur
MicrocontroleurMicrocontroleur
Microcontroleur
 
Programmation des pic_en_c_part2
Programmation des pic_en_c_part2Programmation des pic_en_c_part2
Programmation des pic_en_c_part2
 
Programmation des pic_en_c_part1
Programmation des pic_en_c_part1Programmation des pic_en_c_part1
Programmation des pic_en_c_part1
 
La prise de terre
La prise de terreLa prise de terre
La prise de terre
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
Api cours
Api coursApi cours
Api cours
 
Ds.2 a.sc.avec corrigé (tm)
Ds.2 a.sc.avec corrigé (tm)Ds.2 a.sc.avec corrigé (tm)
Ds.2 a.sc.avec corrigé (tm)
 
Le grafcet
Le grafcet Le grafcet
Le grafcet
 
Bibliothèque hydraulique
Bibliothèque hydrauliqueBibliothèque hydraulique
Bibliothèque hydraulique
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
Présentation grafcet
Présentation grafcetPrésentation grafcet
Présentation grafcet
 
projet interface LabView avec conception prototype machine de tri
projet interface LabView avec conception prototype machine de tri projet interface LabView avec conception prototype machine de tri
projet interface LabView avec conception prototype machine de tri
 
Le transformateur de puissance
Le transformateur de puissanceLe transformateur de puissance
Le transformateur de puissance
 
Réseaux électriques
Réseaux électriquesRéseaux électriques
Réseaux électriques
 
Le grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigésLe grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigés
 
Cours microcontroleur 8051 v1.1
Cours microcontroleur 8051 v1.1Cours microcontroleur 8051 v1.1
Cours microcontroleur 8051 v1.1
 
Microcontroleurs
MicrocontroleursMicrocontroleurs
Microcontroleurs
 

Similaire à Microcontrôleur PIC Microchip part1/2

pic16f84-200306072553.pdf
pic16f84-200306072553.pdfpic16f84-200306072553.pdf
pic16f84-200306072553.pdfAbdo Brahmi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Arduino cottenceau1112
Arduino cottenceau1112Arduino cottenceau1112
Arduino cottenceau1112Hafid Moujane
 
Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Abdo Brahmi
 
Projet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_pptProjet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_pptMouhcine Nid Belkacem
 
Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdfAliRami3
 
Généralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicGénéralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicmorin moli
 
Automate programmable industriepar_www.cours-electromecanique.com_
Automate programmable industriepar_www.cours-electromecanique.com_Automate programmable industriepar_www.cours-electromecanique.com_
Automate programmable industriepar_www.cours-electromecanique.com_med benchaib
 
Microcontroller/microcontroleur/pic.pptx
Microcontroller/microcontroleur/pic.pptxMicrocontroller/microcontroleur/pic.pptx
Microcontroller/microcontroleur/pic.pptxSABIR Hamza
 
PréSentation Tsx37
PréSentation Tsx37PréSentation Tsx37
PréSentation Tsx37youri59490
 
Automates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdfAutomates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdfMENNANIZinedine
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptxSihemNasri3
 
presentation serrure codee
presentation serrure codeepresentation serrure codee
presentation serrure codeeMohammedFassih
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Hajer Dahech
 
Les Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.pptLes Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.pptwafawafa52
 
8. introduction a larchitecture arm
8. introduction a larchitecture arm8. introduction a larchitecture arm
8. introduction a larchitecture armAbdelwahab Wahib
 

Similaire à Microcontrôleur PIC Microchip part1/2 (20)

prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
 
pic16f84-200306072553.pdf
pic16f84-200306072553.pdfpic16f84-200306072553.pdf
pic16f84-200306072553.pdf
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Arduino cottenceau1112
Arduino cottenceau1112Arduino cottenceau1112
Arduino cottenceau1112
 
Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655
 
Projet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_pptProjet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_ppt
 
Mini projet 3t2i se
Mini projet 3t2i seMini projet 3t2i se
Mini projet 3t2i se
 
Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdf
 
Généralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicGénéralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasic
 
Automate programmable industriepar_www.cours-electromecanique.com_
Automate programmable industriepar_www.cours-electromecanique.com_Automate programmable industriepar_www.cours-electromecanique.com_
Automate programmable industriepar_www.cours-electromecanique.com_
 
Microcontroller/microcontroleur/pic.pptx
Microcontroller/microcontroleur/pic.pptxMicrocontroller/microcontroleur/pic.pptx
Microcontroller/microcontroleur/pic.pptx
 
PréSentation Tsx37
PréSentation Tsx37PréSentation Tsx37
PréSentation Tsx37
 
Yapsc Manuel
Yapsc ManuelYapsc Manuel
Yapsc Manuel
 
Automates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdfAutomates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdf
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptx
 
presentation serrure codee
presentation serrure codeepresentation serrure codee
presentation serrure codee
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32
 
Les Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.pptLes Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.ppt
 
8. introduction a larchitecture arm
8. introduction a larchitecture arm8. introduction a larchitecture arm
8. introduction a larchitecture arm
 

Microcontrôleur PIC Microchip part1/2

  • 1.
  • 3. PLAN Introduction au microcontrôleur (PIC) Programmation des PICs PIC 16F84A PIC 16F877
  • 4. PLAN Introduction au microcontrôleur (PIC) Programmation des PICs PIC 16F84A PIC 16F877
  • 5. MICROCONTRÔLEUR ?? Définition : (rappel) Circuit programmable capable d’exécuter un programme et qui possède des circuits intégrés d’interface avec le monde extérieur. Les avantages des microcontrôleurs : (rappel) - Diminution de l’encombrement du matériel et du circuit imprimé - Simplification du tracé du circuit imprimé (plus besoin de tracer de bus !) - Augmentation de la fiabilité du système nombre de composants P - Diminution de la consommation - Le microcontrôleur contribue à réduire les coûts à plusieurs niveaux: moins cher que les composants qu’il remplace -Diminution des coûts de main d’œuvre (conception et montage) - Environnement de programmation et de simulation évolués
  • 7. MICROCONTRÔLEUR ?? Les types (rappel) : De nos jours , il existe plusieurs types de microcontrôleur :
  • 9. Microcontrôleur PIC Actuellement les modèles Microchip, sont classés en 3 grandes familles : Base-Line ; Mid-Range ; High-End Nous nous limiterons à la famille Mid-Range, sachant que si vous avez tout compris, vous passerez très facilement à une autre famille, et même à un autre microcontrôleur
  • 10. Microcontrôleur PIC Malgré qu’il y a plusieurs modèles de famille de PIC , tous ces µC ont quelques caractéristiques en communs telles que : • Digital I/O ports • On-chip timer avec 8-bit prescaler • Power-on reset • Watchdog timer • Power-saving SLEEP mode • courant débité • External clock interface • RAM data memory • EPROM or Flash program memory
  • 11. Microcontrôleur PIC quelques PICs présentent plus de caractéristiques : • Entrée analogique (Analog input channels) • Comparateur analogique (Analog comparators) • TIMER additionnel (Additional timer circuits) • EEPROM data memory • interrupteur (External and internal interrupts) • oscillateur intérieur (Internal oscillator) • modulation-largeur-impultion (Pulse-width modulated (PWM) output) • USART serial interface (Universal Synchronous Asynchronous Receiver Transmitter ) Et autres qui present plus encore ! : • CAN bus interface • Direct LCD interface • USB interface • Motor control
  • 12. ‘‘L’intérieur ’’ d’un microcontrôleur PIC  Program Memory (Flash) : -Contient le programme à exécuter -Son contenu demeure conservé après mise hors tension  Data Memory (RAM) : - Utilisée pour stocker les variables du programme : Pour pouvoir travailler normalement le μC doit stocker des données temporaire quelque part et c’est la qu’intervient la RAM. -Volatile : données perdues en cas de coupure de l’alimentation  La mémoire EEPROM (Electrical Erasable Programmable Read Only Memory) -vous pouvez lire et écrire depuis votre programme. Ces octets sont conservés après une coupure de courant (non- Volatile ) et sont très utiles pour conserver des paramètres semi-permanents.
  • 13. Les registres spéciaux : SFR (Special Function Registers) - Ils sont utilisés par le µC pour contrôler ses opérations internes - Le nombre des SFR varie selon la complexité du µC Parmi les SFR les plus importants/utilisés : • OPTION register • I/O registers • Timer registers • INTCON register • A/D converter registers
  • 14. PLAN Introduction au microcontrôleur (PIC) Programmation des PICs PIC 16F84A PIC 16F877
  • 15. PROGRAMMATION Comment procéder ?? Edition du programme Compilation du programmeExécution du programme
  • 16. PROGRAMMATION Edition code source Compilation (Simulation) Chargement Test sur le matériel Processus de développement d’un programme pour une ‘‘simple’’ application
  • 17. PROGRAMMATION Pourquoi utiliser le langage C l’assembleur proche du langage machine est trop peu lisible est mal adaptés à une architecture complexe de programme. Il existe de nombreux langage de haut niveau : Certain développer pour des microcontrôleurs, d’autres largement répandus dans les ordinateurs ont étés adaptés aux besoins des microcontrôleurs. C’est le cas du C.
  • 18. PROGRAMMATION Pré-requises: basiques de langage C ( types de base , Les opérateurs , Les instructions de contrôle , les fonctions … ) Mikroc Pro for PIC ( édition du programme , compilation , librairies …) .
  • 19. PLAN Introduction au microcontrôleur (PIC) Programmation des PICs PIC 16F84A PIC 16F877
  • 20. Microcontrôleur PIC 16F84A Les caractéristique essentielles du Pic 16F84A : Operating frequency/ speed 0-20 MHz Power supply voltage 2.0-5.5V 13 I/O pins with individual direction control -High current sink/source for direct LED drive (25 mA sink/source max. per pin) 68 bytes of Data RAM (Data memory ; volatile)  64 bytes of Data EEPROM (Data memory ; non-volatile) - 10.000.000 typical erase/write cycles
  • 21. 1024 words (1K) of program memory flash: - 10.000.000 typical erase/write cycles Four interrupt sources: - External RB0/INT pin - TMR0 timer overflow - PORTB<7:4> interrupt-on-change - Data EEPROM write complete TMR0: 8-bit timer/counter Watch-dog timer (chien de garde)
  • 22.
  • 23. 1-La mise sous tension : • Lorsque le µC est mis sous-tension , il doit exécuter son programme dés le début ( le compteur du programme 'PC' forcé à 0 ). • Le CPU (Central Processing Unit) démarre l’exécution de son programme lorsque la condition RESET n’est plus maintenue (lorsque la pin MCLR est mise au niveau haut )
  • 24. 2-Les ports parallèles : 2-1 Caractéristiques électriques :
  • 25. 2-2 les entrées logique : • Le PIC ne fonctionne qu’avec deux niveaux logiques 0 et 1 ; bas et haut ( les broches comportent des trigger de Schmitt ou TLL). • Pour déterminer si un signal sera bien reçu (interprété) par le circuit/la broche logique ,il est nécessaire de comprendre le fonctionnement des entrées (les broches)
  • 26.
  • 27. 2-3 Resistance Pull-up/down : Ayant une grande valeur d’ordre 10K , elle permet de maintenir les broches (input) dans un niveau logique donné (niveau par défaut ). L’entrée du µC fig.(a) (resp. fig.(b) ) est maintenue au niveau logique 1 (resp. 0 ) ; lorsqu’on ferme l’interrupteur l’entrée est forcée à la masse (resp. +V) qui correspond à 0 (resp. 1) Resistance Pull-up Resistance Pull-down
  • 28. 2-4 Port B ( Pic 16F84A) : • Ce port peut être utilisé généralement dans les deux directions (in/out) (8 bits) , et doté de résistance Pull-up ‘Weak pull-up’ pour chaque broche. • Le registre TRISB permet la configuration de la direction des broches ; Chaque bit positionné à 1 configure la pin correspondante en entrée. Chaque bit à 0 configure la pin en sortie • La configuration des broches en mode out se fait à l'aide du registre PORTB (faire sortir 5v ou 0v) (0=0V ; 1=5V) • Le registre OPTION (bit 7) permet une configuration globale (tout ou rien) des résistances ‘Weak pull-up’ ; • La résistance interne (Weak pull-up) est automatiquement désactivée pour les broches en mode output/sortie . • Le bit 0 du PORT B peut également être utilisé comme entrée d'interruption externe. Le choix du front de déclenchement se fait en configurant le bit 6 du registre OPTION. • Les 4 broches RB7:RB4 (PB7 PB6 PB5 et PB4) provoquent une interruption sur un changement d'état si elles sont configurées en ENTREE via le registre INTCON (configurable ON/OFF)
  • 29. 2-5 Port A ( Pic 16F84A) : • Comme pour le PORTB , ce port peut être utilisé généralement dans les deux directions (in/out) (5 bits) • La configuration de direction se fait à l'aide du registre TRISA : Chaque bit positionné à 1 configure la pin correspondante en entrée. Chaque bit à 0 configure la pin en sortie ( 0 = out ; 1 =in ) • La configuration des broches en mode sortie se fait à l'aide du registre PORTA (0=0V ; 1=5V)
  • 30. RA4 ( Pic 16F84A) : • En entrée, la broche RA4 peut être utilisée soit comme E/S numérique normale, soit comme entrée horloge pour le TIMER TMR0 • En sortie, RA4 est une E/S à drain ouvert (open drain), pour l'utiliser comme sortie logique (0/1), il faut ajouter une résistance de pull-up externe (470 ohms–4.7 K ohms) , dans ce cas le courant provient de la résistance pull- up. •Output ‘open drain’ : ce type de broche a un mode ‘Out’ flexible , il peut être utilisé : comme sortie logique normal (fig. a) , ou comme un driver direct pour une charge légère (fig. b) (pour le Pic 16F84A Vod max =8.5 V ) Resistance Pull-up sur RA4
  • 31. 2-6 l’horloge ( Pic 16F84A) : • La fréquence de l'horloge interne du PIC est obtenue en divisant par 4 la fréquence de l'horloge externe. • Le PIC 16F84A peut opérer dans 4 mode : -LP : Low Power Crystal (32,768 kHz jusqu'à 200 kHz) -XT : Crystal/Resonator 1–4 MHz -HS : High Speed > 4MHz : grande consommation de courant -RC : Resistor/Capacitor difficile de prévoir la fréquence d'oscillation avec certitude. Mode LP , XT et HS Mode RC
  • 32. Sélection des capacités adéquates pour un Quartz Quartz
  • 33. 3 : les registres spéciaux ( Pic 16F84A) : vue générale des registres :
  • 34. 3-1 STATUS REGISTER : • Contient les différents bits flags liés aux opérations arithmétiques, les indicateurs de RESET et le bit de sélection de la BANK mémoire.
  • 35. 3-2 OPTION REGISTER : • Ce registre en lecture écriture permet de configurer les pré-diviseurs(Prescaler) du TIMER et du WATCHDOG, la source du TIMER, le front des interruptions et le choix du Pull up sur le Port B.
  • 36. 3-3 Gestion des interruptions : • Une interruption provoque l’arrêt du programme principal pour aller exécuter une procédure d'interruption (void interrupt() ). A la fin de cette procédure, le microcontrôleur reprend le programme à l’endroit où il s’était arrêté. • A chaque interruption sont associés deux bits: un bit de validation (E:enabale) et un drapeau (F:flag). Le premier permet d'autoriser ou non l'interruption, le second permet au programmeur de savoir de quelle interruption il s'agit. • Toutes les sources d’interruption arrivant à la même adresse, si le programmeur utilise plusieurs sources d’interruptions, il lui faudra déterminer lui-même laquelle il est en train de traiter. • Une interruption ne peut pas être interrompue par une autre interruption. Les interruptions sont donc invalidées automatiquement lors du saut à void interrupt() par l’effacement du bit GIE (que nous allons voir). • Les interruptions sont remises en service automatiquement lors du retour de l’interruption.
  • 37. INTCON REGISTER: • Ce registre en lecture écriture permet de configurer les différentes sources d'interruption • Le PIC16F84A possède 4 sources d'interruption
  • 38. 4 - TIMER/COUNTER TMR0 : • Rôle : Réaliser une temporisation • Élément essentiel : Compteur qui s'incrémente à chaque front montant (ou descendant ) du signal qui lui est appliqué : • Un TIMER doit pouvoir compter un temps défini par le programme (par exemple 1ms, 10ms,50ms, etc).  Pour cela, 2 paramètres peuvent être modifiés :  La fréquence du signal appliqué au compteur (prescaler)  Le nombre d'impulsions à compter
  • 39. • Le contenu du 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 instruction • Au débordement de TMR0 , le drapeau T0IF est placé à 1. Ceci peut déclencher l'interruption T0I si celle-ci est validée • Ce registre contient une valeur indéterminée à la mise sous tension, si vous désirez compter à partir d’une valeur précise (0 ou autre), placer explicitement cette valeur dans votre programme . • Ce module peut fonctionner en mode TIMER, quand il s'incrémente en fonction (PRESCALER ) du cycle instruction (Fosc/4) ou en mode compteur, quand il s'incrémente à chaque front montant/descendant de l'horloge externe appliquée sur le Port A0.
  • 40. • Quelque soit l'horloge choisie, on peut la passer dans un diviseur de fréquence programmable (prescaler) dont le rapport est fixés par les bits PS0, PS1 et PS2 du registre OPTION • Il importe de comprendre que le prédiviseur fonctionne de la façon suivante : - Le prédiviseur compte jusque sa valeur programmée par PS0/PS2. - Une fois cette valeur atteinte, TMR0 est incrémenté - Le prédiviseur recommence son comptage à l’impulsion suivante
  • 41. MODE TIMER (temporisateur) : • Dans ce mode , le TMR0 compte les cycles d’horloge du PIC lui-même éventuellement prédivisé . • Pour travailler dans le mode nous devons configurer OPTION de la façon suivante : OPTION= xx0abc bc : valeur du prescaler a : assignement du prescaler MODE compteur : • Dans ce mode , le TMR0 compte les impulsions (front mentant ou descendant) reçues sur la pin RA4/TOKI • Pour travailler dans le mode nous devons configurer OPTION de la façon suivante : OPTION= xx1fabc bc : valeur du prescaler a : assignement du prescaler
  • 42. • La formule suivante peut être utilisée pour calculer la duré nécessaire pour que TIMER génére un débordement/overflow : Overflow time = 4 * TOSC * Prescaler * (256 – TMR0) avec : Overflow time en µs ; TOSC est la période d’oscillation = 1/Fosc Prescaler est le pré-diviseur choisi par le registre OPTION TMR0 est la valeur chargée dans le registre TMR0 (valeur initiale) Exemple Calcul d'un temps de 10 ms : T= 10.10^-3 = X * Y * 4 /4.10^6 avec : X= valeur du pré-deviseur (Prescaler) Y= valeur à compter= 256 - valeur initiale Soit X * Y= 10000
  • 43. Remarque: • L’écriture dans le registre TMR0 efface le contenu du prédiviseur. Les événements survenus au niveau du prédiviseur sont donc perdus. ne pas confondre contenu (nombre d’événements comptés) et valeur (déterminée par les bits de configuration) • En mode compteur : pour ne pas rater un impulsion il faut Tsignal > Tcyc = 4*Tosc
  • 44. 4 - Le WatchdogTimer WDT (Chien de garde) Le WATCHDOG, ou chien de garde est un mécanisme de protection de votre programme. Il sert à surveiller si celui- ci s’exécute toujours dans l’espace et dans le temps que vous lui avez attribués. • 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 • L'utilisation du WDT doit se faire avec précaution pour éviter la réinitialisation (inattendue) répétée du programme. Pour éviter un WDT timeOut lors de l'exécution d'un programme, on a deux possibilités :  Inhiber le WDT d'une façon permanente en mettant à 0 le bit WDTE .  Remettre le WDT à 0 périodiquement dans le programme à l'aide de l'instruction CLRWDT pour éviter qu'il ne déborde
  • 46. 5- Redémarrage (RESET) : • Retenez ceci : pour faire fonctionner le PIC normalement, reliez la pin MCLR au +5V. La mise à la masse de cette broche provoque un reset du PIC. SI vous voulez par exemple un bouton reset sur votre montage, reliez la pin MCLR au +5 via une résistance de 10Kohms. Placez votre bouton reset entre la pin MCLR et la masse, comme dans ce schéma : Le tableau suivant vous montre tous les événements liés au reset, et leurs effets sur le PC (où le programme se branchera) et le registre STATUS. « x » renseignent un état inconnu, « u » signifie inchangé
  • 47. 4 - Le mode SLEEP : • Le PIC peut être placé en mode faible consommation à l'aide de l'instruction SLEEP (en asm). Dans ce mode, l'horloge système est arrêtée ce qui arrête l'exécution du programme. Pour sortir du mode SLEEP, il faut provoquer un WAKE-UP, pour cela il y a 3 possibilités :  RESET externe dû à l'initialisation du PIC en mettant l'entrée MCLR à 0. Le PIC reprend l'exécution du programme à partir du début.  Timeout du chien de garde WDT si celui-ci est validé. Le PIC reprend le programme à partir de l'instruction qui suit l'instruction SLEEP  Interruption INT (sur RB0) ou RBI (sur RB4-RB7) ou EEI (fin d'écriture en EEPROM de données). Le bit de validation de l'interruption en question doit être validé, par contre, le WAKE-UP a lieu quelque soit la position de bit de validation globale GIE. On a alors deux situations :  GIE = 0, Le PIC reprend l'exécution du programme à partir de l'instruction qui suit l'instruction SLEEP, l'interruption n'est pas prise en compte  GIE = 1, Le PIC exécute l'instruction qui se trouve juste après l'instruction SLEEP puis se branche à la fonction void interrupt() pour exécuter la procédure d'interruption.