SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Présentée par :
MOHAMED BABAOUI
Les microcontrôlleurs PIC
1
2
3
4
5
6
7
Microprocesseur / microcontrôleur?
Quelle est la difference ?
Un microprocesseur est un moteur de calcul programmable constitué
d’une unité arithmétique et logique, d’un processeur et de registres,
capable d’effectuer des calculs et de prendre des décisions.
Tandis qu’un microcontrôleur est un microprocesseur spécialisé
considéré comme un ordinateur sur une puce car il intègre
des composants tels qu’un microprocesseur, une mémoire et des E/S.
1
Microprocesseur / microcontrôleur?
Architecture d’un
microprocesseur
Architecture d’un
microcontrôleur
2
Un microcontrôleur est un circuit intégré qui rassemble les éléments
essentiels d'un ordinateur.
Les microcontrôleurs se caractérisent par un plus haut degré
d'intégration, une plus faible consommation électrique, une vitesse d
e fonctionnement plus faible et un coût réduit par rapport aux
microprocesseurs polyvalents utilisés dans les ordinateurs personnels
Définition d’un microcontrôlleur
3
Les architectures des microcontrôleur
Von Neuman Harvard
Le μP utilise le même canal
d’échange pour lire les instruction
s et manipuler des données :
le bus de données.
La CPU utilise 2 canaux d'échange(
lire les instructions et manipuler les
données) : le bus instruction et le b
us de donnée.
4
Programmation des microcontrôleurs
les uCs se programmaient en assembleur. Fortement
bas niveau 'assembleur posa et pose toujours d'énormes problèmes
pour la maintenance et l'évolution des logiciels embarqués.
On utilise de plus en plus des langages de haut niveau, notamment l
e langage C , capable de faciliter la programmation de uC.
Une base solide en
Langage C embaquée est requise
pour
programmer les microcontrolleurs !!
5
Différence entre CISC et RISC
RISC et CISC sont les caractérisations de jeux d'instructions
informatiques qui font partie de l'architecture informatique
RISC
les jeux d'instructions contiennent
généralement moins de 100 instructions et
utilisent un format d'instructions fixe
Il utilise quelques modes d'adressage
simples.
Des instructions basées sur des registres
sont utilisées, ce qui signifie qu'un mécanis
me d'enregistrement pour enregistrer est
utilisé.
les jeux d'instructions contient environ 120
à 350 instructions. Il utilise des formats
d'instruction / données variables, mais un
petit ensemble de registres à usage général
, à savoir 8-24. La raison des grands
ensembles d'instructions est l'utilisation
d'instructions à format variable. Un grand
nombre d'opérations de référence de
mémoire sont exécutées en utilisant un
nombre énorme de modes d'adressage.
CISC
6
Familles de microcontrôleurs
Et autres familles ….
7
Le microcontrôleur PIC de MICROCHIP
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 d
e composants externes.
Les PICs sont des composants RISC L'avantage est que plus on réduit le nombre d’i
nstructions, plus facile et plus rapide en est le décodage, et plus vite le composant
fonctionne.
8
Le microcontrôleur PIC
Le nom PIC initialement appelé "Peripheral Interface Controller".
Un PIC est identifié par une référence de la forme suivante :
xx(L)XXyy-zz
xx : famille du composant actuellement <<12, 14, 16, 17 et 18 >>
(L): tolérance plus importante de la plage de tension
XX: type de mémoire programme
yy: identificateur
zz: vitesse maximale du quartz de pilotage.
Exemple :
16F84A/16F877-16F876….
C EEPROM
CR ROM
FFLASH
9
LE PIC 16F84
10
LE PIC 16F84
Architecture interne du pic 16F84 Aspect externe du pic 16F84
11
La mémoire FLASH
Adresse Contenu(14 bits)
0X0000
0X0004
Mot 1
Mot 2
Mot 3
Mot 1024
Mot 4
.…….
Elle est non volatile et
reprogrammable à
Souhait e PIC commence
l'exécution à l'adresse
0X0000
De plus, lorsqu'il y a
une interruption, le PIC va
à l'adresse 0X0004
12
La mémoire RAM - Registres
IRP RP1 RP0 T0 PD Z DC C
Registre STATUS
La mémoire RAM est constituée de deux parties :
• Les registres SFR (Special Function Register)
• Les registres GPR (General Propose Register)
La mémoire RAM est organisée en deux banks,
le bit RP0 du registre STATUS. (RP0 = 0
→ Bank 0, RP0 = 1 → Bank 1)
Pour la mémoire utilisateur,
l'utilisation des pages (Bank) n'est
pas nécessaire puisque le Bank
1 est "mapped" avec le Bank0.
13
La mémoire RAM - Registres
Etat de quelque registre à l'initialisation
Lors de démarrage du Pic les registres ont
des valeurs par défaut
Pour faire fnctionner le Pic dépend nos
objectifs il faut faire attention à l’état
initiale de ces registeres
L'ALU et le registre W
W
UAL
16 registres
système
User RAM(64 octets)
Registre F
Résultat
C'est une ALU 8 Bits qui réalise
les opérations arithmétique et
logique entre l'accumulateur W
et n'importe quel autre registre
'F' ou constante K
Le résultat de
l'opération peut
être placé soit
dans le registre de
travail W soit dans l
e registre F.
14
L'Horloge
L'horloge peut être soit interne soit
externe.
L'horloge interne est constituée d’un
oscillateur à quartz ou d'un oscillateur
RC.
L'horloge système est obtenue en divisant
la fréquence par 4.
Avec un quartz de 4 MHz, on obtient une
horloge instruction de 1 MHz, soit le tem
ps pour exécuter une instruction de 1µs
𝑇 =
1
𝐹𝑜𝑠𝑐
=
4
𝐹𝑒𝑥𝑡
15
Le port d’E/S PORTA
RA4 RA3 RA2 RA1 RA0
Compatibles TTL
La configuration de direction pour chaque bit du port est déterminée avec le re
gistre TRISA.
• Bit i de TRISA = 0 bit i de PORTA configuré en sortie
• Bit i de TRISA = 1 bit i de PORTA configuré en entrée
La broche RA4 peut donc être utilisée
soit comme E/S normale du port A, soit comme entrée horloge pour le Tim
er TMR0
• T0CS = 0 RA4 est une E/S normale
• T0CS = 1 RA4 = horloge externe pour le timerTMR0
RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0
Registre OPTION_REG
16
Le port B
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
Compatibles TTL
La configuration de direction se fait à l'aide du registre TRISB.
• Bit i de TRISB = 0 bit i de PORTB configuré en sortie
• Bit i de TRISB = 1 bit i de PORTB configuré en entrée
En entrée, la ligne RB0 appelée
aussi INT peut déclencher l’inter
ruption externe INT.
En entrée, une quelconque des
lignes RB4 à RB7 peut déclench
er l'interruption RBI
17
Le Timer TMR0
RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0
Registre OPTION_REG
C’est un compteur 8 bits ayant les caractéristiques suivantes :
o TOCS = 0 horloge interne
o TOCS = 1 horloge externe appliquée à RA4
Dans le cas de l'horloge externe.
o TOSE = 0 incrémentation sur fronts montants
o TOSE = 1 incrémentation sur fronts descendants
Quelque soit l'horloge choisie:
PSA = 0 on utilise le prédiviseur
PSA = 1 pas de prédiviseur (affecté au chien de garde)
18
Le Watchdog Timer WDT
C’est un compteur 8 bits incrémenté en permanence (même si le µC est en mode sleep)
(WDT TimeOut)
Si le µC est en
fonctionnement
normal, le WDT time-out
provoque un RESET
Si le µC est en mode
SLEEP, le WDT time-out
provoque un WAKE-UP
o PSA = 1 on utilise le prédiviseur
o PSA = 0 pas de prédiviseur (affecté à TMR0)
L'utilisation du WDT doit se faire avec précaution
mettant à 0 le bit WDTE dans l'EEPROM de
Configuration
remettre le WTD périodiquement avec
l’instrcution CLRWDT
19
Le mode SLEEP
Le PIC peut être placé en mode faible consommation à l'aide de l'instruction
SLEEP.
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 M
CLR à 0
Timeout du chien de g
arde WDT si
celui-ci est validé
Interruption INT (sur
RB0) ou RBI (sur RB4-
RB7) ou
EEI
20
La mémoire EEPROM de configuration
4 Mots d’identification
Mot de configuration
0X2000
0x2007
le type de l'oscillateur
pour l'horloge
Validation WDT
Permettre ou interdire
la lecture de L’EEPROM
CP CP CP CP CP CP CP CP CP PWRTE WDTE FOSC0 FOSC0 FOSC0
21
La mémoire EEPROM de configuration
CP CP CP CP CP CP CP CP CP CP PWRTE WDTE FOSC1 FOSC0
FOSC
1
FOSC
0
Horloge
0 0 Oscillateur RC
0 1 Oscillateur HS
1 0 Oscillateur XT
1 1 Oscillateur LP
WDTE WDT
0 Validé
1 Inhibé
PWRTE Temporisation
0 Validé
1 Inhibé
CP Protection du code
0 Activée
1 Désactivée
22
La mémoire EEPROM de données
Cette mémoire est constituée de 64 octets commençant à l'adresse 0x2100 que l'on peut
lire et écrire depuis un programme.
Ces octets sont conservés après une coupure de courant et sont très utiles pour conserver
des paramètres semi permanents.
On y accède à l'aide des registres EEADR et EEDATA.
Deux registres de contrôle (EECON1 et EECON2) sont associés à la mémoire EEMROM.
Adresse Contenu
0X2100
…..
23
Procédure de lecture dans l'EEPROM
de données
• Placer l’adresse relative dans EEADR
• Mettre le bit RD de EECON1 à 1
• Lire le contenu du registre EEDATA
Procédure d'écriture dans l'EEPROM
de données
1. L'écriture dans L'EEPROM doit être autorisée :
bit WREN = 1
2. Placer l’adresse relative dans EEADR
3. Placer la donnée à écrire dans EEDATA
4. Placer 0x55 dans EECON2
5. Placer 0xAA dans EECON2
6. Démarrer l'écriture en positionnant le bit WR
7. Attendre la fin de l'écriture, (10 ms)
(EEIF=1 ou WR=0)
8. recommencer au point 2 si on a d'autres
données à écrire
- - - EEIF WRERR WREN WR RD
Registre EEICON1
La mémoire EEPROM de données
24
Les interruptions
Adresse Contenu(14 bits)
0X0000
0X0004
.…….
Bit de validation
globale des interruptions
GIE
INT
RBI
T0I
EEI
INTF
INTF
EEIF
EEIE T0IF
T0IE RBIF
RBIE
Dans l’interruption INT:
on choisit le front de déclenchement en agissant sur le bit INTEDG
du registre OPTION_REG
INTEDG front
0 Descendant
1 Montant
25
Le compteur program (PC) et L'adressage relatif
26
PCL
PCH
Le PC contient l'adresse de la prochaine instruction que doit
exécuter le programme.
Le programme est stocké dans la mémoire de programme aux
adresses 0x0000 à 0x3FF (soit 1024 adresses).
(PCL) = B'10110011’
(PCLATH) =B'---00010’
(PC) = B'0001010110011' adresse 0x2B3
Les instructions du 16F84
26
 Les PICs Mid-Range ont un jeu de 35 instructions.
 Chaque instruction est codée sur un mot de 14 bits.
 L’instruction est constituée du code opération (OC) ainsi que
l'opérande
Les instructions
« orientées octet »
(adressage direct)
Les instructions
« orientées bits »
Les instructions opérant
sur une donnée
(adressage immédiat)
Les instructions
de saut et appel
de procédures
Exemples d’instructions:
MOVWF F recopie W dans le registre d'adresse F :
F (File) désigne l'adresse de n'importe quel registre SFR ou GPR. Pour les registres SFR
MOVWF 0x2C ; recopie W dans la case mémoire d'adresse 2Ch
MOVWF EEDATA ; recopie W dans le registre EEDATA
MOVF 0x08 ; recopie W dans le registre EEDATA
MOVF F,d ; recopie le registre F soit dans W soit dans lui-même
27
Le jeux d’instructions
Les instructions orientées Octets »
28
Le jeux d’instructions
Les instructions orientées bits»
Les instructions opérant sur donnés »
Les instructions Générales»
29
29
30
31
Adressage indirect
L'adressage indirect se fait par l'intermédiaire des registres FSR et
INDF.
Exemple
movf PORTB, W movlw H'06’
movwf FSR
movf INDF, W
pic16f84-200306072553.pdf

Contenu connexe

Similaire à pic16f84-200306072553.pdf

Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
TheCrazyMan
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
mohamedsaidi212001
 
a_introduction ElectroniqueDesSysEmbarqués.pdf
a_introduction ElectroniqueDesSysEmbarqués.pdfa_introduction ElectroniqueDesSysEmbarqués.pdf
a_introduction ElectroniqueDesSysEmbarqués.pdf
AnasAsran1
 

Similaire à pic16f84-200306072553.pdf (20)

cour PIC16F877.pptx
cour PIC16F877.pptxcour PIC16F877.pptx
cour PIC16F877.pptx
 
8. introduction a larchitecture arm
8. introduction a larchitecture arm8. introduction a larchitecture arm
8. introduction a larchitecture arm
 
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
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
 
prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
 
Cours pics16 f877
Cours pics16 f877Cours pics16 f877
Cours pics16 f877
 
presentation pic 16f84.ppt
presentation pic 16f84.pptpresentation pic 16f84.ppt
presentation pic 16f84.ppt
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptx
 
Chapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptxChapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptx
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
 
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
 
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
 
le-pic-16f84.pdf
le-pic-16f84.pdfle-pic-16f84.pdf
le-pic-16f84.pdf
 
DSP FPGA.pdf
DSP FPGA.pdfDSP FPGA.pdf
DSP FPGA.pdf
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
presentation serrure codee
presentation serrure codeepresentation serrure codee
presentation serrure codee
 
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
 
a_introduction ElectroniqueDesSysEmbarqués.pdf
a_introduction ElectroniqueDesSysEmbarqués.pdfa_introduction ElectroniqueDesSysEmbarqués.pdf
a_introduction ElectroniqueDesSysEmbarqués.pdf
 

Plus de Abdo Brahmi

Cours_P627_19_03_2024.pptfjghgfjjfjhggjb
Cours_P627_19_03_2024.pptfjghgfjjfjhggjbCours_P627_19_03_2024.pptfjghgfjjfjhggjb
Cours_P627_19_03_2024.pptfjghgfjjfjhggjb
Abdo Brahmi
 
capteurs I.pptxfgggghghghghhghhhhhhhhhhh
capteurs I.pptxfgggghghghghhghhhhhhhhhhhcapteurs I.pptxfgggghghghghhghhhhhhhhhhh
capteurs I.pptxfgggghghghghhghhhhhhhhhhh
Abdo Brahmi
 
Cours_P627_09_03_2023.pptafrsecxghgghjgj
Cours_P627_09_03_2023.pptafrsecxghgghjgjCours_P627_09_03_2023.pptafrsecxghgghjgj
Cours_P627_09_03_2023.pptafrsecxghgghjgj
Abdo Brahmi
 
Cours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.pptCours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.ppt
Abdo Brahmi
 
Cours_Physique_des_Composants_dElectroni.pptx
Cours_Physique_des_Composants_dElectroni.pptxCours_Physique_des_Composants_dElectroni.pptx
Cours_Physique_des_Composants_dElectroni.pptx
Abdo Brahmi
 
Outils Analytiques pour l Electronique de Puissance.pdf
Outils Analytiques pour l Electronique de Puissance.pdfOutils Analytiques pour l Electronique de Puissance.pdf
Outils Analytiques pour l Electronique de Puissance.pdf
Abdo Brahmi
 

Plus de Abdo Brahmi (20)

Cours_P627_19_03_2024.pptfjghgfjjfjhggjb
Cours_P627_19_03_2024.pptfjghgfjjfjhggjbCours_P627_19_03_2024.pptfjghgfjjfjhggjb
Cours_P627_19_03_2024.pptfjghgfjjfjhggjb
 
Cours_P627_09_03_2023.pptghfgggghgghhghh
Cours_P627_09_03_2023.pptghfgggghgghhghhCours_P627_09_03_2023.pptghfgggghgghhghh
Cours_P627_09_03_2023.pptghfgggghgghhghh
 
capteurs I.pptxfgggghghghghhghhhhhhhhhhh
capteurs I.pptxfgggghghghghhghhhhhhhhhhhcapteurs I.pptxfgggghghghghhghhhhhhhhhhh
capteurs I.pptxfgggghghghghhghhhhhhhhhhh
 
Cours_P627_11_03_2023.ppthghggggghhhjhhh
Cours_P627_11_03_2023.ppthghggggghhhjhhhCours_P627_11_03_2023.ppthghggggghhhjhhh
Cours_P627_11_03_2023.ppthghggggghhhjhhh
 
Cours_P627_09_03_2023.pptafrsecxghgghjgj
Cours_P627_09_03_2023.pptafrsecxghgghjgjCours_P627_09_03_2023.pptafrsecxghgghjgj
Cours_P627_09_03_2023.pptafrsecxghgghjgj
 
Cours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.pptCours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.ppt
 
M312_Electricité_BCG.ppt
M312_Electricité_BCG.pptM312_Electricité_BCG.ppt
M312_Electricité_BCG.ppt
 
Cours_P627_11_03_2023.ppt
Cours_P627_11_03_2023.pptCours_P627_11_03_2023.ppt
Cours_P627_11_03_2023.ppt
 
Cours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxCours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptx
 
capteurs II.pptx
capteurs II.pptxcapteurs II.pptx
capteurs II.pptx
 
diaporama_1_professeurs_94e.ppt
diaporama_1_professeurs_94e.pptdiaporama_1_professeurs_94e.ppt
diaporama_1_professeurs_94e.ppt
 
pres_chapter5 (5).pptx
pres_chapter5 (5).pptxpres_chapter5 (5).pptx
pres_chapter5 (5).pptx
 
card_sorting.ppt
card_sorting.pptcard_sorting.ppt
card_sorting.ppt
 
Initiation_a_l_informatique.pptx
Initiation_a_l_informatique.pptxInitiation_a_l_informatique.pptx
Initiation_a_l_informatique.pptx
 
Les microcontrôleurs PIC.pptx
Les microcontrôleurs PIC.pptxLes microcontrôleurs PIC.pptx
Les microcontrôleurs PIC.pptx
 
Cours_Physique_des_Composants_dElectroni.pptx
Cours_Physique_des_Composants_dElectroni.pptxCours_Physique_des_Composants_dElectroni.pptx
Cours_Physique_des_Composants_dElectroni.pptx
 
le-courant-electrique-continu-cours-ppt-3.pdf
le-courant-electrique-continu-cours-ppt-3.pdfle-courant-electrique-continu-cours-ppt-3.pdf
le-courant-electrique-continu-cours-ppt-3.pdf
 
Cours - Lois de l'électricité - Light.pptx
Cours - Lois de l'électricité - Light.pptxCours - Lois de l'électricité - Light.pptx
Cours - Lois de l'électricité - Light.pptx
 
manual-pe-2017_compress.pdf
manual-pe-2017_compress.pdfmanual-pe-2017_compress.pdf
manual-pe-2017_compress.pdf
 
Outils Analytiques pour l Electronique de Puissance.pdf
Outils Analytiques pour l Electronique de Puissance.pdfOutils Analytiques pour l Electronique de Puissance.pdf
Outils Analytiques pour l Electronique de Puissance.pdf
 

pic16f84-200306072553.pdf

  • 1. Présentée par : MOHAMED BABAOUI Les microcontrôlleurs PIC
  • 3. Microprocesseur / microcontrôleur? Quelle est la difference ? Un microprocesseur est un moteur de calcul programmable constitué d’une unité arithmétique et logique, d’un processeur et de registres, capable d’effectuer des calculs et de prendre des décisions. Tandis qu’un microcontrôleur est un microprocesseur spécialisé considéré comme un ordinateur sur une puce car il intègre des composants tels qu’un microprocesseur, une mémoire et des E/S. 1
  • 4. Microprocesseur / microcontrôleur? Architecture d’un microprocesseur Architecture d’un microcontrôleur 2
  • 5. Un microcontrôleur est un circuit intégré qui rassemble les éléments essentiels d'un ordinateur. Les microcontrôleurs se caractérisent par un plus haut degré d'intégration, une plus faible consommation électrique, une vitesse d e fonctionnement plus faible et un coût réduit par rapport aux microprocesseurs polyvalents utilisés dans les ordinateurs personnels Définition d’un microcontrôlleur 3
  • 6. Les architectures des microcontrôleur Von Neuman Harvard Le μP utilise le même canal d’échange pour lire les instruction s et manipuler des données : le bus de données. La CPU utilise 2 canaux d'échange( lire les instructions et manipuler les données) : le bus instruction et le b us de donnée. 4
  • 7. Programmation des microcontrôleurs les uCs se programmaient en assembleur. Fortement bas niveau 'assembleur posa et pose toujours d'énormes problèmes pour la maintenance et l'évolution des logiciels embarqués. On utilise de plus en plus des langages de haut niveau, notamment l e langage C , capable de faciliter la programmation de uC. Une base solide en Langage C embaquée est requise pour programmer les microcontrolleurs !! 5
  • 8. Différence entre CISC et RISC RISC et CISC sont les caractérisations de jeux d'instructions informatiques qui font partie de l'architecture informatique RISC les jeux d'instructions contiennent généralement moins de 100 instructions et utilisent un format d'instructions fixe Il utilise quelques modes d'adressage simples. Des instructions basées sur des registres sont utilisées, ce qui signifie qu'un mécanis me d'enregistrement pour enregistrer est utilisé. les jeux d'instructions contient environ 120 à 350 instructions. Il utilise des formats d'instruction / données variables, mais un petit ensemble de registres à usage général , à savoir 8-24. La raison des grands ensembles d'instructions est l'utilisation d'instructions à format variable. Un grand nombre d'opérations de référence de mémoire sont exécutées en utilisant un nombre énorme de modes d'adressage. CISC 6
  • 9. Familles de microcontrôleurs Et autres familles …. 7
  • 10. Le microcontrôleur PIC de MICROCHIP 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 d e composants externes. Les PICs sont des composants RISC L'avantage est que plus on réduit le nombre d’i nstructions, plus facile et plus rapide en est le décodage, et plus vite le composant fonctionne. 8
  • 11. Le microcontrôleur PIC Le nom PIC initialement appelé "Peripheral Interface Controller". Un PIC est identifié par une référence de la forme suivante : xx(L)XXyy-zz xx : famille du composant actuellement <<12, 14, 16, 17 et 18 >> (L): tolérance plus importante de la plage de tension XX: type de mémoire programme yy: identificateur zz: vitesse maximale du quartz de pilotage. Exemple : 16F84A/16F877-16F876…. C EEPROM CR ROM FFLASH 9
  • 13. LE PIC 16F84 Architecture interne du pic 16F84 Aspect externe du pic 16F84 11
  • 14. La mémoire FLASH Adresse Contenu(14 bits) 0X0000 0X0004 Mot 1 Mot 2 Mot 3 Mot 1024 Mot 4 .……. Elle est non volatile et reprogrammable à Souhait e PIC commence l'exécution à l'adresse 0X0000 De plus, lorsqu'il y a une interruption, le PIC va à l'adresse 0X0004 12
  • 15. La mémoire RAM - Registres IRP RP1 RP0 T0 PD Z DC C Registre STATUS La mémoire RAM est constituée de deux parties : • Les registres SFR (Special Function Register) • Les registres GPR (General Propose Register) La mémoire RAM est organisée en deux banks, le bit RP0 du registre STATUS. (RP0 = 0 → Bank 0, RP0 = 1 → Bank 1) Pour la mémoire utilisateur, l'utilisation des pages (Bank) n'est pas nécessaire puisque le Bank 1 est "mapped" avec le Bank0. 13
  • 16. La mémoire RAM - Registres Etat de quelque registre à l'initialisation Lors de démarrage du Pic les registres ont des valeurs par défaut Pour faire fnctionner le Pic dépend nos objectifs il faut faire attention à l’état initiale de ces registeres
  • 17. L'ALU et le registre W W UAL 16 registres système User RAM(64 octets) Registre F Résultat C'est une ALU 8 Bits qui réalise les opérations arithmétique et logique entre l'accumulateur W et n'importe quel autre registre 'F' ou constante K Le résultat de l'opération peut être placé soit dans le registre de travail W soit dans l e registre F. 14
  • 18. L'Horloge L'horloge peut être soit interne soit externe. L'horloge interne est constituée d’un oscillateur à quartz ou d'un oscillateur RC. L'horloge système est obtenue en divisant la fréquence par 4. Avec un quartz de 4 MHz, on obtient une horloge instruction de 1 MHz, soit le tem ps pour exécuter une instruction de 1µs 𝑇 = 1 𝐹𝑜𝑠𝑐 = 4 𝐹𝑒𝑥𝑡 15
  • 19. Le port d’E/S PORTA RA4 RA3 RA2 RA1 RA0 Compatibles TTL La configuration de direction pour chaque bit du port est déterminée avec le re gistre TRISA. • Bit i de TRISA = 0 bit i de PORTA configuré en sortie • Bit i de TRISA = 1 bit i de PORTA configuré en entrée La broche RA4 peut donc être utilisée soit comme E/S normale du port A, soit comme entrée horloge pour le Tim er TMR0 • T0CS = 0 RA4 est une E/S normale • T0CS = 1 RA4 = horloge externe pour le timerTMR0 RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 Registre OPTION_REG 16
  • 20. Le port B RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Compatibles TTL La configuration de direction se fait à l'aide du registre TRISB. • Bit i de TRISB = 0 bit i de PORTB configuré en sortie • Bit i de TRISB = 1 bit i de PORTB configuré en entrée En entrée, la ligne RB0 appelée aussi INT peut déclencher l’inter ruption externe INT. En entrée, une quelconque des lignes RB4 à RB7 peut déclench er l'interruption RBI 17
  • 21. Le Timer TMR0 RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 Registre OPTION_REG C’est un compteur 8 bits ayant les caractéristiques suivantes : o TOCS = 0 horloge interne o TOCS = 1 horloge externe appliquée à RA4 Dans le cas de l'horloge externe. o TOSE = 0 incrémentation sur fronts montants o TOSE = 1 incrémentation sur fronts descendants Quelque soit l'horloge choisie: PSA = 0 on utilise le prédiviseur PSA = 1 pas de prédiviseur (affecté au chien de garde) 18
  • 22. Le Watchdog Timer WDT C’est un compteur 8 bits incrémenté en permanence (même si le µC est en mode sleep) (WDT TimeOut) Si le µC est en fonctionnement normal, le WDT time-out provoque un RESET Si le µC est en mode SLEEP, le WDT time-out provoque un WAKE-UP o PSA = 1 on utilise le prédiviseur o PSA = 0 pas de prédiviseur (affecté à TMR0) L'utilisation du WDT doit se faire avec précaution mettant à 0 le bit WDTE dans l'EEPROM de Configuration remettre le WTD périodiquement avec l’instrcution CLRWDT 19
  • 23. Le mode SLEEP Le PIC peut être placé en mode faible consommation à l'aide de l'instruction SLEEP. 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 M CLR à 0 Timeout du chien de g arde WDT si celui-ci est validé Interruption INT (sur RB0) ou RBI (sur RB4- RB7) ou EEI 20
  • 24. La mémoire EEPROM de configuration 4 Mots d’identification Mot de configuration 0X2000 0x2007 le type de l'oscillateur pour l'horloge Validation WDT Permettre ou interdire la lecture de L’EEPROM CP CP CP CP CP CP CP CP CP PWRTE WDTE FOSC0 FOSC0 FOSC0 21
  • 25. La mémoire EEPROM de configuration CP CP CP CP CP CP CP CP CP CP PWRTE WDTE FOSC1 FOSC0 FOSC 1 FOSC 0 Horloge 0 0 Oscillateur RC 0 1 Oscillateur HS 1 0 Oscillateur XT 1 1 Oscillateur LP WDTE WDT 0 Validé 1 Inhibé PWRTE Temporisation 0 Validé 1 Inhibé CP Protection du code 0 Activée 1 Désactivée 22
  • 26. La mémoire EEPROM de données Cette mémoire est constituée de 64 octets commençant à l'adresse 0x2100 que l'on peut lire et écrire depuis un programme. Ces octets sont conservés après une coupure de courant et sont très utiles pour conserver des paramètres semi permanents. On y accède à l'aide des registres EEADR et EEDATA. Deux registres de contrôle (EECON1 et EECON2) sont associés à la mémoire EEMROM. Adresse Contenu 0X2100 ….. 23
  • 27. Procédure de lecture dans l'EEPROM de données • Placer l’adresse relative dans EEADR • Mettre le bit RD de EECON1 à 1 • Lire le contenu du registre EEDATA Procédure d'écriture dans l'EEPROM de données 1. L'écriture dans L'EEPROM doit être autorisée : bit WREN = 1 2. Placer l’adresse relative dans EEADR 3. Placer la donnée à écrire dans EEDATA 4. Placer 0x55 dans EECON2 5. Placer 0xAA dans EECON2 6. Démarrer l'écriture en positionnant le bit WR 7. Attendre la fin de l'écriture, (10 ms) (EEIF=1 ou WR=0) 8. recommencer au point 2 si on a d'autres données à écrire - - - EEIF WRERR WREN WR RD Registre EEICON1 La mémoire EEPROM de données 24
  • 28. Les interruptions Adresse Contenu(14 bits) 0X0000 0X0004 .……. Bit de validation globale des interruptions GIE INT RBI T0I EEI INTF INTF EEIF EEIE T0IF T0IE RBIF RBIE Dans l’interruption INT: on choisit le front de déclenchement en agissant sur le bit INTEDG du registre OPTION_REG INTEDG front 0 Descendant 1 Montant 25
  • 29. Le compteur program (PC) et L'adressage relatif 26 PCL PCH Le PC contient l'adresse de la prochaine instruction que doit exécuter le programme. Le programme est stocké dans la mémoire de programme aux adresses 0x0000 à 0x3FF (soit 1024 adresses). (PCL) = B'10110011’ (PCLATH) =B'---00010’ (PC) = B'0001010110011' adresse 0x2B3
  • 30. Les instructions du 16F84 26  Les PICs Mid-Range ont un jeu de 35 instructions.  Chaque instruction est codée sur un mot de 14 bits.  L’instruction est constituée du code opération (OC) ainsi que l'opérande Les instructions « orientées octet » (adressage direct) Les instructions « orientées bits » Les instructions opérant sur une donnée (adressage immédiat) Les instructions de saut et appel de procédures Exemples d’instructions: MOVWF F recopie W dans le registre d'adresse F : F (File) désigne l'adresse de n'importe quel registre SFR ou GPR. Pour les registres SFR MOVWF 0x2C ; recopie W dans la case mémoire d'adresse 2Ch MOVWF EEDATA ; recopie W dans le registre EEDATA MOVF 0x08 ; recopie W dans le registre EEDATA MOVF F,d ; recopie le registre F soit dans W soit dans lui-même
  • 31. 27 Le jeux d’instructions Les instructions orientées Octets »
  • 32. 28 Le jeux d’instructions Les instructions orientées bits» Les instructions opérant sur donnés » Les instructions Générales»
  • 33. 29
  • 34. 29
  • 35. 30
  • 36. 31
  • 37. Adressage indirect L'adressage indirect se fait par l'intermédiaire des registres FSR et INDF. Exemple movf PORTB, W movlw H'06’ movwf FSR movf INDF, W