SlideShare une entreprise Scribd logo
1  sur  49
1
2
3
4
5
6
Chaque instruction
contient la commande de
l'opération à
effectuer et l'adresse de la
donnée à utiliser, il faut
donc souvent plusieurs
cycles d'horloge pour
exécuter une instruction
On voit que les échanges s'effectuent de
manière double entre l'unité centrale et les
deux
mémoires, ce qui permet une grande
souplesse pour l'enregistrement et
l'utilisation des
données. D'ailleurs, la mémoire de
programme est également utilisée en
partie comme
mémoire de données pour obtenir encore
Architecture de Von Neumann
et de Harvard
7
8
Oscillateur
9
10
11
12
Organisation de la mémoire
13
Organisation de la mémoire RAM
14
 L’espace mémoire RAM adressable est de
512positions de 1 octet chacune type flash
divisée en 4 secteur:
• 96 positions sont réservées au SFR (Special
Function Registers) qui sont les registres de
configuration du PIC.
• Les 416 positions restantes constituent les
registres GPR (General Propose Registers) ou
RAM utilisateur. Sur le 16F876 et 16F877, 3
blocs de 16 octets chacun ne sont pas
implantés physiquement d’où une capacité de RAM
utilisateur de 368 GPR.
15
Utilisation de pipelines
16
Elle consiste à imposer un ordre et un rythme dans le déroulement des
instructions de manière à optimiser en rapidité leur exécution. En un cycle
processeur, les opérations élémentaires suivantes peuvent être
exécutées en parallèle :
1. aller chercher l’instruction en mémoire programme (Fetch) ;
2. réaliser le décodage de l’instruction, et des adresses des
opérandes (Decode) ;
3. lire les opérandes en mémoire de données (Read) ;
4. exécuter l’opération et écrire le résultat (Execute).
Tcyc: cycle machine
Tcyc=4*Tosc
Type d’adressage:
17
Le registre STATUS
18
19
20
Le jeu d’istruction
Le jeu d’istruction
21
Format générale d’un programme
22
Les ports d’E/S
23
Le PIC 16F877 dispose de 33 broches d’entrée sortie regroupés dans 5 ports PORTA,
PORTB,
PORTC, PORTD et PORTE. Chaque broche d’un port peut être configurée soit
en entrée soit en sortie à l’aide des registres de direction TRISA, TRISB, TRISC et
TRISD et TRISE:
24
 Pour les utiliser en SORTIES NUMERIQUES
 Pour les utiliser en ENTRÉES NUMERIQUES
 Pour les utiliser en ENTRÉE ANALOGIQUE
 déclencher l’interruption externe INT(RB0)
 Timer,communication I2C,SPI,PWM….
Au démarrage :
o Tous les ports sont configurés en entrée
o PORTD et PORTE sont configurés en mode
normal
o PORTA et PORTE sont configurés en analogique
25
Les interruptions
26
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 principal à l’endroit où il l’a laissé. 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.
Sur le 16F876/877, les interruptions sont classées en deux catégories, les
interruptions
primaires et les interruptions périphériques. Elles sont gérées par les registres :
Validation des interruptions
27
 Toutes les interruptions peuvent être validées/interdites
par le bit INTCON.GIE
 Toutes les interruptions périphériques peuvent être
validées/interdites par le bit INTCON.PEIE
 Chaque interruption peut être validée/interdite par son bit
de validation individuel
Déroulement d'une interruption
28
Lorsque l'événement déclencheur d'une interruption intervient, alors son
drapeau est
positionné à 1 (levé). Si l'interruption a été validée (bits de validations =
1), 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 4 en exécutant
les étapes suivantes :
• l'adresse contenue dans le PC (Program Counter) est sauvegardée dans la
pile, puis remplacée
par la valeur 0004 (adresse de la routine d'interruption).
• Le bit GIE est placé "0" pour inhiber toutes les interruptions (afin que
le PIC ne soit pas dérangé pendant l'exécution de la procédure
d'interruption).
• A la fin de la procédure d'interruption :
• le bit GIE est remis à 1 (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é
29
Les sources d'interruption
30
L'interruption INT (Entrée RB0 du port B)
Cette interruption est provoquée par un changement d'état sur l'entrée RB0 du
port B quand
elle est programmée en entrée. En plus de son bit de validation INTE et son
drapeau INTF, elle est
gérée aussi par le bit INTEDG (OPTION_REG) qui détermine le front sur
lequel l'interruption se déclenche, 1=montant, 0=descendant
Exemple d’interruption
31
 void interrupt()
{
// RB0 interrupt
if(INTCON.INTF == 1) // if RB0 Interrupt flag is set...
{
PORTB.F5 = 1;//la broche RB5=1
INTCON.INTF = 0;
}
else PORTB.F5 = 0;
}
 INTCON.GIE=1;
 OPTION_REG.INTEDG=1;
 INTCON.INTF = 1;
Le Timer TMR0
32
C’est un compteur 8 bits ayant les caractéristiques suivantes :
• Il est incrémenté en permanence soit par l’horloge interne Fosc/4
(mode timer) soit par une horloge externe appliquée à la broche RA4 du
port A (mode compteur). Le choix de l'horloge se fait à l'aide du bit T0CS du
registre OPTION_REG
o T0CS = 0 horloge interne
o T0CS = 1 horloge externe appliquée à RA4
Dans le cas de l'horloge externe, Le bit T0SE du registre
OPTION_REG permet de choisir le front sur lequel le TIMER
s'incrémente.
o T0SE = 0 incrémentation sur fronts montants
o T0SE = 1 incrémentation sur fronts descendants
33
Quelque soit l'horloge choisie, on peut la passer dans un diviseur de
fréquence programmable (prescaler) dont le rapport DIV est fixés par les bits
PS0, PS1 et PS2 du registre OPTION_REG (tableau ci-contre).
L'affectation ou non du prédiviseur se fait à l'aide du bit PSA du registre
OPTION_REG
o PSA = 0 on utilise le prédiviseur
o PSA = 1 pas de prédiviseur (affecté au chien de garde)
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, le timer ne comte pas pendant
deux cycles machine.
34
T=(256-TMR0)*Tcyc*Préd
T=N(256-TMR0)*Tcyc*Préd
Exemple
35
 Pour réaliser une temporisation de 8 seconde
Fosc=8/4=2MHZ
Tcyc=0.5µs
T=(256-TMR0)*Tcyc*Préd
Pour avoir 8 s
TMR0 ? Pour Pred=4
TMR0=256-(T/Pred*Tcyc)
TMR0=56
T=8µs
Un compteur de N=10000
T1=10000(256-TMR0)*0.5*4=8s
Le Watchdog Timer WDT (Chien de
garde)
36
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.
37
L'horloge du WDT a une période voisine de 70 µs ce donne un Time-Out
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). L'affectation se fait à l'aide du bit PSA du registre OPTION_REG :
o PSA = 1 on utilise le prédiviseur
o PSA = 0 pas de prédiviseur (affecté à TMR0)
Le rapport du prédiviseur est fixé par les bits PS0, PS1 et PS2 du registre
OPTION_REG .
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
dans l'EEPROM de
configuration
• Remettre le WDT à 0 périodiquement dans le programme à l'aide de l'instruction
CLRWDT pour
éviter qu'il ne déborde
38
Le module de conversion A/N
39
40
Ce module est constitué d'un convertisseur Analogique Numérique 10 bits
dont l'entrée
analogique peut être connectée sur l'une des 8 (5 pour 16F876) entrées
analogiques externes. On
dit qu'on a un CAN à 8 canaux. Les entrées analogiques doivent être configurées
en entrée à l'aide
des registres TRISA et/ou TRISE. L’échantillonneur bloqueur est intégré, il
est constitué d’un
interrupteur d’échantillonnage et d’une capacité de blocage de 120 pF.
Les tensions de références permettant de fixer la dynamique du
convertisseur. Elles peuvent
être choisies parmi Vdd, Vss, Vr+ ou Vr-
Le résultat de la conversion est codé sur 10 bits. C'est une valeur comprise entre
h'000' et h'3FF'.
Les 4 registres utilisés par le module convertisseur A/D sont :
- ADRESH en h'1E' page 0 : MSB des 10 bits du résultat.
- ADRESL en h'9E' page 1 : LSB des 10 bits du résultat.
- ADCON0 en h'1F' page 0 : registre de contrôle n°0 du convertisseur.
- ADCON1 en h'9F' page 1 : registre de contrôle n°1 du convertisseur.
Le module de conversion A/N
41
42
43
44
Déroulement d’une Conversion
45
Au départ il faut commencer par faire l’acquisition du signal en fermant
l’interrupteur S, ceci
se fait à l’aide du registre
Après la fin de l’acquisition, on peut démarrer une conversion en positionnant
le bit
GO_DONE, l'interrupteur S s’ouvre pour assurer le blocage de la tension. La
conversion commence,
elle est réalisée en 12 TAD, à la fin, le bit GO_DONE repasse à 0, le
drapeau ADIF passe à 1 et le résultat est chargé dans les registres ADRESL
et ADRESH. Le module met 2 TAD
supplémentaires pour fermer l'interrupteur S ce qui démarre une nouvelle
phase d’acquisition pendant laquelle la tension Ve rejoint la tension analogique
d'entrée Va. Le temps d'acquisition dépend de la constante de temps RC, R
étant la somme des résistances entre le module de conversion et la source
de la tension analogique. Après la fin de l’acquisition, on peut démarrer une
nouvelle conversion et ainsi de suite
46
Le temps de conversion est égal à 12 TAD
TAD est le temps de conversion d'un bit, il dépend de la fréquence
du quartz et du prédiviseur (div) choisi : TAD= div x 1/fosc. Le choix
de div doit être ajusté pour que TAD soit ≥ à 1,6 µs
Temps d'acquisition
47
Fréquence d'échantillonnage
48
• Configurer les E/S en Analogique/Numérique/Référence
(ADCON1)
• Configurer les entrées analogiques en entrées (TRISA,
TRISE)
• Définir l'horloge de conversion à l'aide du diviseur DIV dans
ADCON0
• Choisir le canal à convertir et valider le module (ADCON0)
• Attendre le temps d’acquisition (12 µs )
• Lancer la conversion, GO = 1 (ADCON0)
• Attendre fin de conversion, GO = 0 ou drapeau ADIF=1
• Traiter le résultat
Programmation
Mode Capture
49

Contenu connexe

Similaire à Microcontroller/microcontroleur/pic.pptx

Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Abdo Brahmi
 
Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84guest1e7b02
 
Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2Mohammed Lamghari
 
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
 
PréSentation Tsx37
PréSentation Tsx37PréSentation Tsx37
PréSentation Tsx37youri59490
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le MicroprocesseurTheCrazyMan
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Karim Touati
 
DSP FPGA.pdf
DSP FPGA.pdfDSP FPGA.pdf
DSP FPGA.pdfHouBou3
 
Programmation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSSProgrammation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSSECAM Brussels Engineering School
 
OS_S5_ISIL_B_Chapitre1.pptx
OS_S5_ISIL_B_Chapitre1.pptxOS_S5_ISIL_B_Chapitre1.pptx
OS_S5_ISIL_B_Chapitre1.pptxanisanima1
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..sunprass
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseurISIG
 
ETUDE D UN SYSTEME NUMERIQUE.pdf
ETUDE D UN SYSTEME NUMERIQUE.pdfETUDE D UN SYSTEME NUMERIQUE.pdf
ETUDE D UN SYSTEME NUMERIQUE.pdfssuser457a8b
 
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
 
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Fatima Zahra Fagroud
 
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
 
Cours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdfCours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdfHouBou3
 

Similaire à Microcontroller/microcontroleur/pic.pptx (20)

Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655
 
Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84
 
Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2
 
prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
 
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
 
PréSentation Tsx37
PréSentation Tsx37PréSentation Tsx37
PréSentation Tsx37
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
 
Cours pics16 f877
Cours pics16 f877Cours pics16 f877
Cours pics16 f877
 
DSP FPGA.pdf
DSP FPGA.pdfDSP FPGA.pdf
DSP FPGA.pdf
 
Ladder
LadderLadder
Ladder
 
Programmation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSSProgrammation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSS
 
OS_S5_ISIL_B_Chapitre1.pptx
OS_S5_ISIL_B_Chapitre1.pptxOS_S5_ISIL_B_Chapitre1.pptx
OS_S5_ISIL_B_Chapitre1.pptx
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
ETUDE D UN SYSTEME NUMERIQUE.pdf
ETUDE D UN SYSTEME NUMERIQUE.pdfETUDE D UN SYSTEME NUMERIQUE.pdf
ETUDE D UN SYSTEME NUMERIQUE.pdf
 
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
 
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
 
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
 
Cours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdfCours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdf
 

Dernier

Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEgharebikram98
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxmmatar2
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 

Dernier (20)

Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptx
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 

Microcontroller/microcontroleur/pic.pptx

  • 1. 1
  • 2. 2
  • 3. 3
  • 4. 4
  • 5. 5
  • 6. 6 Chaque instruction contient la commande de l'opération à effectuer et l'adresse de la donnée à utiliser, il faut donc souvent plusieurs cycles d'horloge pour exécuter une instruction On voit que les échanges s'effectuent de manière double entre l'unité centrale et les deux mémoires, ce qui permet une grande souplesse pour l'enregistrement et l'utilisation des données. D'ailleurs, la mémoire de programme est également utilisée en partie comme mémoire de données pour obtenir encore Architecture de Von Neumann et de Harvard
  • 7. 7
  • 8. 8
  • 10. 10
  • 11. 11
  • 12. 12
  • 13. Organisation de la mémoire 13
  • 14. Organisation de la mémoire RAM 14  L’espace mémoire RAM adressable est de 512positions de 1 octet chacune type flash divisée en 4 secteur: • 96 positions sont réservées au SFR (Special Function Registers) qui sont les registres de configuration du PIC. • Les 416 positions restantes constituent les registres GPR (General Propose Registers) ou RAM utilisateur. Sur le 16F876 et 16F877, 3 blocs de 16 octets chacun ne sont pas implantés physiquement d’où une capacité de RAM utilisateur de 368 GPR.
  • 15. 15
  • 16. Utilisation de pipelines 16 Elle consiste à imposer un ordre et un rythme dans le déroulement des instructions de manière à optimiser en rapidité leur exécution. En un cycle processeur, les opérations élémentaires suivantes peuvent être exécutées en parallèle : 1. aller chercher l’instruction en mémoire programme (Fetch) ; 2. réaliser le décodage de l’instruction, et des adresses des opérandes (Decode) ; 3. lire les opérandes en mémoire de données (Read) ; 4. exécuter l’opération et écrire le résultat (Execute). Tcyc: cycle machine Tcyc=4*Tosc
  • 19. 19
  • 22. Format générale d’un programme 22
  • 23. Les ports d’E/S 23 Le PIC 16F877 dispose de 33 broches d’entrée sortie regroupés dans 5 ports PORTA, PORTB, PORTC, PORTD et PORTE. Chaque broche d’un port peut être configurée soit en entrée soit en sortie à l’aide des registres de direction TRISA, TRISB, TRISC et TRISD et TRISE:
  • 24. 24  Pour les utiliser en SORTIES NUMERIQUES  Pour les utiliser en ENTRÉES NUMERIQUES  Pour les utiliser en ENTRÉE ANALOGIQUE  déclencher l’interruption externe INT(RB0)  Timer,communication I2C,SPI,PWM…. Au démarrage : o Tous les ports sont configurés en entrée o PORTD et PORTE sont configurés en mode normal o PORTA et PORTE sont configurés en analogique
  • 25. 25
  • 26. Les interruptions 26 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 principal à l’endroit où il l’a laissé. 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. Sur le 16F876/877, les interruptions sont classées en deux catégories, les interruptions primaires et les interruptions périphériques. Elles sont gérées par les registres :
  • 27. Validation des interruptions 27  Toutes les interruptions peuvent être validées/interdites par le bit INTCON.GIE  Toutes les interruptions périphériques peuvent être validées/interdites par le bit INTCON.PEIE  Chaque interruption peut être validée/interdite par son bit de validation individuel
  • 28. Déroulement d'une interruption 28 Lorsque l'événement déclencheur d'une interruption intervient, alors son drapeau est positionné à 1 (levé). Si l'interruption a été validée (bits de validations = 1), 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 4 en exécutant les étapes suivantes : • l'adresse contenue dans le PC (Program Counter) est sauvegardée dans la pile, puis remplacée par la valeur 0004 (adresse de la routine d'interruption). • Le bit GIE est placé "0" pour inhiber toutes les interruptions (afin que le PIC ne soit pas dérangé pendant l'exécution de la procédure d'interruption). • A la fin de la procédure d'interruption : • le bit GIE est remis à 1 (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é
  • 29. 29
  • 30. Les sources d'interruption 30 L'interruption INT (Entrée RB0 du port B) Cette interruption est provoquée par un changement d'état sur l'entrée RB0 du port B quand elle est programmée en entrée. En plus de son bit de validation INTE et son drapeau INTF, elle est gérée aussi par le bit INTEDG (OPTION_REG) qui détermine le front sur lequel l'interruption se déclenche, 1=montant, 0=descendant
  • 31. Exemple d’interruption 31  void interrupt() { // RB0 interrupt if(INTCON.INTF == 1) // if RB0 Interrupt flag is set... { PORTB.F5 = 1;//la broche RB5=1 INTCON.INTF = 0; } else PORTB.F5 = 0; }  INTCON.GIE=1;  OPTION_REG.INTEDG=1;  INTCON.INTF = 1;
  • 32. Le Timer TMR0 32 C’est un compteur 8 bits ayant les caractéristiques suivantes : • Il est incrémenté en permanence soit par l’horloge interne Fosc/4 (mode timer) soit par une horloge externe appliquée à la broche RA4 du port A (mode compteur). Le choix de l'horloge se fait à l'aide du bit T0CS du registre OPTION_REG o T0CS = 0 horloge interne o T0CS = 1 horloge externe appliquée à RA4 Dans le cas de l'horloge externe, Le bit T0SE du registre OPTION_REG permet de choisir le front sur lequel le TIMER s'incrémente. o T0SE = 0 incrémentation sur fronts montants o T0SE = 1 incrémentation sur fronts descendants
  • 33. 33 Quelque soit l'horloge choisie, on peut la passer dans un diviseur de fréquence programmable (prescaler) dont le rapport DIV est fixés par les bits PS0, PS1 et PS2 du registre OPTION_REG (tableau ci-contre). L'affectation ou non du prédiviseur se fait à l'aide du bit PSA du registre OPTION_REG o PSA = 0 on utilise le prédiviseur o PSA = 1 pas de prédiviseur (affecté au chien de garde) 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, le timer ne comte pas pendant deux cycles machine.
  • 35. Exemple 35  Pour réaliser une temporisation de 8 seconde Fosc=8/4=2MHZ Tcyc=0.5µs T=(256-TMR0)*Tcyc*Préd Pour avoir 8 s TMR0 ? Pour Pred=4 TMR0=256-(T/Pred*Tcyc) TMR0=56 T=8µs Un compteur de N=10000 T1=10000(256-TMR0)*0.5*4=8s
  • 36. Le Watchdog Timer WDT (Chien de garde) 36 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.
  • 37. 37 L'horloge du WDT a une période voisine de 70 µs ce donne un Time-Out 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). L'affectation se fait à l'aide du bit PSA du registre OPTION_REG : o PSA = 1 on utilise le prédiviseur o PSA = 0 pas de prédiviseur (affecté à TMR0) Le rapport du prédiviseur est fixé par les bits PS0, PS1 et PS2 du registre OPTION_REG . 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 dans l'EEPROM de configuration • Remettre le WDT à 0 périodiquement dans le programme à l'aide de l'instruction CLRWDT pour éviter qu'il ne déborde
  • 38. 38
  • 39. Le module de conversion A/N 39
  • 40. 40 Ce module est constitué d'un convertisseur Analogique Numérique 10 bits dont l'entrée analogique peut être connectée sur l'une des 8 (5 pour 16F876) entrées analogiques externes. On dit qu'on a un CAN à 8 canaux. Les entrées analogiques doivent être configurées en entrée à l'aide des registres TRISA et/ou TRISE. L’échantillonneur bloqueur est intégré, il est constitué d’un interrupteur d’échantillonnage et d’une capacité de blocage de 120 pF. Les tensions de références permettant de fixer la dynamique du convertisseur. Elles peuvent être choisies parmi Vdd, Vss, Vr+ ou Vr- Le résultat de la conversion est codé sur 10 bits. C'est une valeur comprise entre h'000' et h'3FF'. Les 4 registres utilisés par le module convertisseur A/D sont : - ADRESH en h'1E' page 0 : MSB des 10 bits du résultat. - ADRESL en h'9E' page 1 : LSB des 10 bits du résultat. - ADCON0 en h'1F' page 0 : registre de contrôle n°0 du convertisseur. - ADCON1 en h'9F' page 1 : registre de contrôle n°1 du convertisseur. Le module de conversion A/N
  • 41. 41
  • 42. 42
  • 43. 43
  • 44. 44
  • 45. Déroulement d’une Conversion 45 Au départ il faut commencer par faire l’acquisition du signal en fermant l’interrupteur S, ceci se fait à l’aide du registre Après la fin de l’acquisition, on peut démarrer une conversion en positionnant le bit GO_DONE, l'interrupteur S s’ouvre pour assurer le blocage de la tension. La conversion commence, elle est réalisée en 12 TAD, à la fin, le bit GO_DONE repasse à 0, le drapeau ADIF passe à 1 et le résultat est chargé dans les registres ADRESL et ADRESH. Le module met 2 TAD supplémentaires pour fermer l'interrupteur S ce qui démarre une nouvelle phase d’acquisition pendant laquelle la tension Ve rejoint la tension analogique d'entrée Va. Le temps d'acquisition dépend de la constante de temps RC, R étant la somme des résistances entre le module de conversion et la source de la tension analogique. Après la fin de l’acquisition, on peut démarrer une nouvelle conversion et ainsi de suite
  • 46. 46 Le temps de conversion est égal à 12 TAD TAD est le temps de conversion d'un bit, il dépend de la fréquence du quartz et du prédiviseur (div) choisi : TAD= div x 1/fosc. Le choix de div doit être ajusté pour que TAD soit ≥ à 1,6 µs
  • 48. Fréquence d'échantillonnage 48 • Configurer les E/S en Analogique/Numérique/Référence (ADCON1) • Configurer les entrées analogiques en entrées (TRISA, TRISE) • Définir l'horloge de conversion à l'aide du diviseur DIV dans ADCON0 • Choisir le canal à convertir et valider le module (ADCON0) • Attendre le temps d’acquisition (12 µs ) • Lancer la conversion, GO = 1 (ADCON0) • Attendre fin de conversion, GO = 0 ou drapeau ADIF=1 • Traiter le résultat Programmation