Vous êtes sur la page 1sur 68

Ecole Nationale des Sciences Appliquées

Microcontrôleur Avancé
GMSA: 2ème Année

elafou.youssef@gmail.com

1
Plan de la première partie
du cours cours
 Généralités
 Architecture & Familles des µCs
 Caractéristiques et Fonctionnalités des µC
(PICs)
 Organisation des mémoires/Registres
 Configuration des ports d’entrée/sortie

µContrôleur avancé / GMSA 2 2


Microcontrôleurs

µContrôleur avancé / GMSA 2 3


Microcontrôleur
 Introduction
Microcontrôleur :
Un µC est un circuit qui intègre un maximum de fonctions
dans un même boitier. L’intégration de ces fonctions dans le
même environnement permet de créer des applications plus
simplement.

µContrôleur avancé / GMSA 2 4


Microcontrôleur
 Intégration

µContrôleur avancé / GMSA 2 5


Microcontrôleur
 Technologies Concurrentes

Le microcontrôleur est en avec


concurrence technologies Suivants les d’autres
applications technologies : 3 types de

 Logique câblée
 Réseaux de logique programmables (PAL, GAL,
PLD, FPGA, ...)
 Les μprocesseurs

µContrôleur avancé / GMSA 2 6


Microcontrôleur
 Technologies Concurrentes
 Logique câblée
 très rapide, fonctions réalisées par une voie matérielle
 non programmable,
 peu économique quand l’application est complexe
 peu de souplesse : durée d’étude prohibitif et circuit
difficilement
modifiable
 Réseaux de logique programmables (PAL, LCA,..)
 rapide, adapté au traitement de signaux complexes
 prix élevé et langage de programmation non standard
 Les μprocesseurs
 grande souplesse :
 fonctions sont réalisées par voie logicielle
 puissance de calcul élevée
 langage évolué
 nombre important de composant à réunir, solution onéreuse
µContrôleur avancé / GMSA 2 7
Microcontrôleur
 A retenir
 si la fonction à réaliser est simple ⇒ une logique câblée
 si le nombre d'unités à réaliser est très important ⇒ circuits
intégrés dédié en logique câblée
 Une réalisation logicielle (µP) est toujours plus lente qu'une
réalisation en logique câblée
 Les μc = avantage des μp mais limités aux applications
ne nécessitant pas trop de puissance de calcul, nombre de
composant très réduit,

 mais souvent surdimensionnement devant les


besoins de l’application
µContrôleur avancé / GMSA 2 8
Microcontrôleur
 Les avantages des µCs

 Encombrement du matériel moindre


 Simplification du tracé du circuit imprimé
 Consommation plus faible
 Le µC contribue à réduire les coûts à plusieurs niveaux:
 moins cher que les composants qu’il remplace
 Diminution des coûts de main d’oeuvre
(conception et montage)
 Environnement de programmation et de
simulation évolués

µContrôleur avancé / GMSA 2 9


Microcontrôleur
 Les défauts des microcontrôleurs

 Le microcontrôleur est souvent


surdimensionné devant les besoins de l’application

 Investissement dans les outils de développement:


Écrire les programmes, les tester et tester leur mise
en place sur le matériel qui entoure le µC

µContrôleur avancé / GMSA 2 10


Microcontrôleur

Exemple : Système à microcontrôleur

µC Actionneur

Unité
Interfaçage Interfaçage
Capteur centrale de
d’entrée de sortie
traitement

Opérateur
Signaux Signaux Signaux
analogique, numérique à Signaux
analogique,
Numérique et/ou traiter numérique
Numérique
logique traités
et/ou
µContrôleur avancé / GMSA 2 logique
11
Microcontrôleur
 Fabricants et familles
 Arizona Microchip (Série PIC)
 Intel (80C51)
 Motorola (Série 68HC11)
 Atmel (Série AVR)
 Parallax (Série Basic Stamp)
 Rabbit Semiconductor (Série Rabbit)
 Cypress Microsystem (PSoC)
 ST(ST7)
 …
µContrôleur avancé / GMSA 2 12
Microcontrôleur (PIC)
Les PICs sont des µC à architecture RISC.
La famille des PICs est subdivisée en 3 grandes
familles :
 La famille Base-Line, qui utilise des mots
d’instructions de 12 bits,
 la famille Mid-Range, qui utilise des mots de
14 bits (16F8xx, 18Fxxx),
 et la famille High-End, qui utilise des mots de T
>16 bits (les PIC 18Fxxx, 24F, 32F, ..).

µContrôleur avancé / GMSA 2 13


Familles Microchip (Série PIC)

µContrôleur avancé / GMSA 2 14


Familles Microchip: identification

µContrôleur avancé / GMSA 2 15


Architecture du µC (PIC)
Boîtier PIC PIC

Plastic Dual in-line Package Plastic Leaded Chip Carrier

µContrôleur avancé / GMSA 2 16


Architecture du µC (PIC)
 La structure interne d'un microcontrôleur
comporte
 typiquement :
▶ Une unité de calcul et de commande
▶ Mémoire ROM
▶ Mémoire RAM
▶ Un contrôleur d’interruption
▶ Un compteur/temporisateur (Timer)
▶ Des entrées/sorties parallèles
 Il peut aussi posséder :
▶ Un Watchdog : (surveillance du programme)
▶ Une sortie PWM (modulation d’impulsion)
▶ Un CAN/CNA (Convertisseur analogique
numérique)

µContrôleur avancé / GMSA 2 Une interface I²C, CAN… 17
Architecture du µC (PIC)
16F877
 Structure interne du PIC 16F877 :
 Une mémoire programme de type EEPROM flash de 8K mots de 14 bits,
 Une RAM donnée de 368 octets,
 Une mémoire EEPROM de 256 octets,
 05 ports d'entrée sortie, A (6 bits), B (8 bits), C (8 bits), D (8 bits) et E
(3 bits)
 Convertisseur Analogiques numériques 10 bits à 8 entrées
sélectionnables,
 USART, Port série universel, mode asynchrone (RS232) et mode
synchrone
 SSP, Port série synchrone supportant I2C
 Trois TIMERS; TMR0, TMR1, TMR2
 Deux modules de comparaison et Capture CCP1 et CCP2 et PWM
 15 sources d'interruption,
 Générateur d'horloge, à quartz (jusqu’à 20 MHz)
 Protection de code,
 Tension de fonctionnement de 2 à 5V,
µContrôleur avancé / GMSA 2 18
 Jeux de 35 instructions
Architecture: PIC 16F87X

µContrôleur avancé / GMSA 2 19


Architecture du µC

Évolution de l’architecture:
Séparation des espaces
mémoires données et
programmes

µContrôleur avancé / GMSA 2 20


PIC
18F45K22

µContrôleur avancé / GMSA 2 22


Architecture du µC (PIC 16F8XX)

 Tailles des bus


 Bus Mémoire Données
 Bus addresses: 9 bits (512 octets)
 Bus données: 8 bits (taille des données)
 Bus Mémoire Programme
 Bus adresses : 13 bits (8k instructions)
 Bus données : 14 bits (taille d’une instruction)

µContrôleur avancé / GMSA 2 22


Architecture de µC
Programmer un µC

µContrôleur avancé / GMSA 2 23


PIC 16F877 PINOUT Description

µContrôleur avancé / GMSA 2 25


PIC 16F877: description des pins (suite)

µContrôleur avancé / GMSA 2 25


PIC 16F877: description des pins (suite)

µContrôleur avancé / GMSA 2 26


Architecture PIC 16F8XX
 Mémoires:

▶ Les mémoires internes Il existe trois


types de mémoire :
 RAM pour les registres internes et les
données
 EEPROM de données ;
 EEPROM FLASH programme (données
aussi)

µContrôleur avancé / GMSA 2 27


Architecture PIC 16F8XX
PIC

▶ Organisation de la mémoire RAM


 RAM adressable de 512 de 1 octet
positions chacune :
 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.
 Remarque:

Sur le 16F877, 3 blocs de 16 octets chacun ne sont


pas implantés physiquement d’où une capacité de
RAM utilisateur de 368 octets.
µContrôleur avancé / GMSA 2 28
Organisation de la mémoire RAM

µContrôleur avancé / GMSA 2 30


Organisation de La mémoire RAM

µContrôleur avancé / GMSA 2 31


Organisation de La mémoire RAM

µContrôleur avancé / GMSA 2 32


Microcontrôleur PIC 16F87X
 Accès à la mémoire RAM :deux modes d'adressage
 Adressage DIRECT
 Dans l'instruction la valeur de l'adresse à laquelle on veut accéder.
 Adressage des registres de la RAM sur 7 bits (128 registres),
 mais l'espace mémoire de 4 bancs de 128 registres.
 9 bits pour adresser 512 octets.
Le PIC complète les 7 bits par deux bits du registre STATUS(RP0 et
RP1)

 Registre d’Etat

Au reset : STATUS = 00011XXX


µContrôleur avancé / GMSA 2 32
Organisation de La RAM
 Registre d’Etat (STATUS)
 Bits 6 et 5 : RP1 et RP0 = permettent la sélection des
pages
en adressage direct.

 Bit 7 : IRP = permet la sélection des pages en adressage indirect.


 Pour la PAGE 0 (de 00 à 7F) et la PAGE 1 (de 80 à FF) ce bit doit être
laissé à "0".
 Mis à "1" il permettra d'atteindre la PAGE 3 (de 100 à17F) et la PAGE 4
(de 180 à 1FF).
µContrôleur avancé / GMSA 2 33
Organisation de La RAM
 Adressage INDIRECT
L'adressage indirect est possible en passant par un registre virtuel
(INDF) dont l'adresse est contenue dans le registre FSR (File
Select Register) et le bit IRP du registre STATUS.

µContrôleur avancé / GMSA 2 34


Microcontrôleur PIC 16F877

▶ Mémoire Programme
 Stack : Pile dans laquelle est sauvegardé
l’état du microprocesseur (PC,W) lors
d’appel à sous-programmes ou
d’interruptions.
 Vecteur Reset : contient l’adresse
de début de programme (2 octets)
 Interrupt Vector : contient
l’adresse du
début de programme d’interruption quand
on utilise les interruptions.
 Page : zone de mémoire contenant
des
registres de configuration, des
données variables ou du programme
µContrôleur avancé / GMSA 2 36
Les registres internes (16F8XX)
 Registre d’Etat (Adresse 03h, 83h, 103h,
183h)

Bit 4 : TO = Time Out bit. Bit en lecture seulement.


1 = Après une mise sous tension, après une RAZ du watchdog (CLRWDT) ou
bien après l'instruction SLEEP.
0 = Signifie qu'un Time Out du timer de watchdog est survenu.
Bit 3 : PD = Power Down bit.
1 = Après une mise sous tension ou bien après une RAZ du Watchdog.
0 = Après l'instruction SLEEP.
Bit 2 : Z = Zero bit.
1 = Le résultat d'une opération arithmétique ou logique est zéro.
0 = Le résultat d'une opération arithmétique ou logique est différent de
zéro.

37

µContrôleur avancé / GMSA 2


Les registres internes (16F8XX)
 Registre d’Etat (Adresse 03h, 83h, 103h,
183h)

Bit 1 : DC = Digit Carry bit.


1 = Une retenue sur le 4eme bit des poids faible est survenue
après les instructions : ADDWF et ADDLW.
0 = Pas de retenue sur le 4eme bit des poids faible.
Bit 0 : C = Carry bit.
1 = Une retenue sur le bit MSB est survenue après les
instructions
ADDWF et ADDLW.
0 = Pas de retenue sur le bit MSB.
µContrôleur avancé / GMSA 2 37
Les registres internes (16F8XX)
 OPTION REGISTER (OPTION-REG) : h'81' ou h'181'.

Ce registre en lecture et en écriture, contient un


nombre de bit qui permet de configurer les
prédiviseurs du Timer et du Watchdog, la source du
Timer, le front des interruptions et le choix du Pull
up sur le Port B.

Au reset : OPTION = 11111111

µContrôleur avancé / GMSA 2 38


Les registres internes
 OPTION REGISTER

Bit 7 : RBPU = Pull up Enable bit on Port B.


1 = Pull up désactivé sur le Port B.
0 = Pull up activé.
Bit 6 : INTEDG = Interrupt Edge select bit.
1 = Interruption si front montant sur
la broche RB0/IRQ .
0 = Interruption si front descendant
sur RB0/IRQ.
Bit 5 : TOCS = Timer TMR0 Clock Source
select bit.
1 = L'horloge du Timer est l'entrée PA4/Clk .
0 = Le Timer utilise l'horloge interne du
PIC.
Bit 4 : TOSE = Timer TMR0 Source Edge select
bit.
1 = Le Timer s'incrémente à chaque front
montant de la broche PA4/Clk.
µContrôleur avancé / GMSA 2 39
0 = Le Timer s'incrémente à chaque front
descendant de la broche PA4/Clk.
Les registres internes
PIC
 OPTION REGISTER

Quand le pré diviseur est affecté au Watchdog (PSA=1), TMR0 est


pré
divisé par 1.
µContrôleur avancé / GMSA 2 40
Les registres internes RAM

 INTCON REGISTER : ( h'0B' ou h'8B' ou h'10B' ou h'18B').


Ce registre en lecture écriture permet de configurer les différentes sources
d'interruption.

 Au reset : INTCON = 0000000X


Bit 7 : GIE = Global Interrup Enable bit
1 = Autorise toutes les interruptions non masquées.
0 = Désactive toutes les interruptions.
Bit 6 : PEIE = Peripheral Interrupt Enable bit.
1 = Autorise les interruptions causées par les périphériques.
0 = Désactive les interruptions causées par les périphériques.
Bit 5 : TOIE = Timer TMR0 Overflow Interrup Enable bit.
1 = Autorise les interruptions du Timer TMR0.
0 = Désactive les interruptions du Timer TMR0.
µContrôleur avancé / GMSA 2 41
Les registres internes PIC

 INTCON REGISTER : ( h'0B' ou h'8B' ou h'10B' ou h'18B') (suite).

IF
Bit 4 : INTE = RB0/Int Interrup Enable bit.
1 = Autorise les interruptions sur la broche : RB0/IRQ (pin6).
0 = Désactive les interruptions sur la broche : RB0/IRQ (pin6).
Bit 3 : RBIE = RB Port Change Interrup Enable bit.
1 = Autorise les interruptions par changement d'état du Port B
(RB4
0 = Désactive
à RB7). les interruptions par changement d'état du Port B (RB4 à RB7).
Bit 2 : TOIF = Timer TMR0 Overflow Interrup Flag bit.
1 = Le Timer a débordé. Ce flag doit être remis à zéro par programme.
0 = Le Timer n'a pas débordé.
Bit 1 : INTF = RB0/Int Interrup Flag bit.
1 = Une interruption sur la broche PB0/IRQ ( pin 6) est survenue.
0 = Pas d' interruption sur la broche PB0/IRQ ( pin 6).
Bit 0 : RBIF = RB Port Change Interrup Flag bit. Ce flag doit être remis à zéro
par programme.
1 = Quand au moins une entrée du port B (de RB4 à RB7) a changé d'état.
0 = Aucune entrée de RB4 à RB7 n'a changé d'état.
µContrôleur avancé / GMSA 2 42
Les Registres Internes
 Les registres de configuration avec leurs états après
un RESET

µContrôleur avancé / GMSA 2 43


Microcontrôleur PIC 16F87XX
Cadencement du PIC 16F876/877
 L'Horloge Quartz
 Cadencer le rythme d’exécution des instructions.
 Plus souvent un quartz (de 1MHZ-20MHZ) relié
avec deux
condensateurs de filtrage.
 Le filtre passe bas (Rs, C1, C2) limite les
harmoniques dus à l’écrêtage et réduit l’amplitude de
l’oscillation.

Oscillateur à quartz du PIC


16F87x
µContrôleur avancé / GMSA 2 44
Microcontrôleur PIC 16F87XX
 L'Horloge RC
oscillateur RC, la fréquence de l'oscillation est fixée par Vdd, Rext
et Cext. Elle peut varier légèrement d'un circuit à l'autre.

Remarque
 Quelque soit utilisé, l'horloge système dite
horloge instruction est obtenue
l'oscillateur aussi en divisant la fréquence par 4.
Dans la suite de ce document on utilisera le terme Fosc/4 pour
désigner l'horloge système.
 Avec un quartz de 4 MHz, on obtient une horloge instruction de 1
MHz, soit le temps pour exécuter une instruction d e 1μs.
46

µContrôleur avancé / GMSA 2


Exemple: Horloge de type Quartz

µContrôleur avancé / GMSA 2 46


Microcontrôleur PIC 16F87XX
PIC

 Circuit de RESET
 On utilise un circuit de reset externe qui permet la mise à la
masse de l’entrée MCLR qui permet l’initialisation du PIC
(Master clear) à l’aide d’un bouton poussoir.
 Un niveau bas sur l’entrée MCLR entraîne une réinitialisation
complète du microcontrôleur.
 D’une façon générale ce signal est activé à la mise sous tension.
 Un bouton poussoir est souvent rajouté afin qu’une
réinitialisation manuelle soit possible.
 Lorsque le signal de “RESET” est activé, tous les registres
sont initialisé et le compteur programme se place à une
adresse
spécifique appelée “Vecteur de RESET”.

µContrôleur avancé / GMSA 2 47


Module de conversion A/N
Architecture

 Ce module est constitué d'un


convertisseur Analogique Numérique10 bits
dont
connectée
l'entrée
suranalogique
l'une des 8peut
(5 être
pour 16F876)
entrées
analogiques externes.
PIC
 Les entrées analogiques doivent être configurées
en entrée à l'aide des registres TRISA et/ou TRISE.

µContrôleur avancé / GMSA 2 48


Le module de conversion A/N

Le control du module se fait par les deux registres ADCON0


et ADCON1.
µContrôleur avancé / GMSA 2 49
Le module de conversion A/N
 Registre ADCON0
Le registre ADCON0 permet de sélectionner quelle entrée analogique
va
être connectée à l’entrée du CAN (bit CHS2 à CHS0).

ADCS1:ADCS0 : Choix de l'horloge de conversion donc du temps de


conversion
1. : Fosc/2
2. : Fosc/8
10 : Fosc/32
11 : Oscillateur RC dédié au CAN
CHS2:CHS0
000 = channel:0,choix de l'entrée analogique
100 = channel 4,
(RA0) (RA5)
001 = channel 1, 101 = channel 5, (RE0)
(RA1) 110 = channel 6, (RE1)
010 = channel 2, 111 = channel 7, (RE2)
(RA2) 51

011 = channel 3, (RA3) µContrôleur avancé / GMSA 2


Le module de conversion A/N
 Registre ADCON0
(suite)

 Bit ADON: doit être activé, et le bit GO/DONE donne l’ordre de


départ. Ce bit permet de mettre le module AN en service

 GO/DONE : Une conversion démarre quand on place ce bit à 1. A la


fin de la conversion, il est remis automatiquement à zéro.
 Ce bit peut aussi être positionné automatiquement par le
module
CCP2.

µContrôleur avancé / GMSA 2 51


Le module de conversion A/N
 Registre
ADCON1

ADFM : justification à droite ou à gauche du résultat dans les registre


ADRESH et ADRESL

PCFG3:PCFG0 : configuration des E/S et des tensions de références.

µContrôleur avancé / GMSA 2 52


Le module de conversion
A/N
Les 5 broches de PORTA et les 3 de PORTE peuvent être configurés soit
en E/S digitales, soit en entrées analogiques. RA2 et RA3 peuvent
aussi être configurées en entrée de référence.

configuration des E/S et des tensions de référence du pic 16F877


Pour les utiliser en E/S numériques, '00000110' dans le registre
ADCON1.
µContrôleur avancé / GMSA 2 54
Le module de conversion A/N
 PIC 18F and Registres ANSEL et ANSELH (9Bh,
9Ch)
Les registres ANSEL et ANSELH permettent configurer
de
broches AN<13:0> lesentrées/sorties
en entrées analogiques ou en
TOR.
 Attention ! : par défaut, ces registres ne contiennent que des
'1'
logiques, ce qui place toutes ces broches en entrées analogiques !

 Registres ANSEL

µContrôleur avancé / GMSA 2 54


Le module de conversion A/N

 PIC 18F and Registres


ANSELH

µContrôleur avancé / GMSA 2 55


Les ports d’E/S PIC

 Le port d' E/S PORTA


 Le port A désigné par PORTA est un port de 6 bits (RA0
à RA5).
 La configuration de direction se fait à l'aide du registre
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
 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, pour l'utiliser
comme sortie logique, il faut ajouter une résistance de pull-
up externe (résistance de tirage). Registers

µContrôleur avancé / GMSA 2 56


Les ports d’E/S
 RA4 est positionnée à 0 ( GND).
 RA4 est placée à 1 (5V).
 Exemple:
Si on veut utiliser RA4 pour allumer une LED, on peut utiliser le
schéma ci-contre. Il faut juste remarquer que la logique est
inversée,
 si on envoie 0 sur RA4, l'interrupteur se ferme et la LED
s'allume.
 Si on envoie 1, l'interrupteur s'ouvre et la LED s'éteint.
 Les autres broches (RA0, RA1, RA2, RA3 et RA5) peuvent être utilisées
soit comme E/S numériques soit comme entrées analogiques.
 Au RESET, ces E/S sont configurées en entrées analogiques.

 Pour utiliser PORTA en port Numérique (normal), il faut placer 06h dans le
registre ADCON1 (bank1)
Registers

µContrôleur avancé / GMSA 2 57


Les ports d’E/S
 Le port d' E/S PORTB PIC

 PORTB est un port bidirectionnel de 8 bits (RB0 a RB7).


Toutes les broches sont compatibles TTL.

 La configuration de direction se fait a l'aide du registre


TRISB, positionner un bit de TRISB a 1 configure la broche
correspondante de PORTB en entre et inversement. Au
départ toutes les broches sont configurées en entrée.

 En entrée, la ligne RB0 appelée aussi INT peut déclencher


l’interruption externe INT.

µContrôleur avancé / GMSA 2 58


Les ports d’E/S PIC
 Le port d' E/S PORTC
 PORTC est un port bidirectionnel de 8 bits (RC0 a RC7). Toutes
les
broches sont compatibles TTL.

 Configuration à l'aide du registre TRISC, positionner un bit de TRISC à


1 configure la broche correspondante de PORTC en entre et
inversement. Au départ toutes les broches sont configurées en entrée.

 Toutes les broches du port C peuvent être utilisées soit comme E/S
normales soit comme broches d'accès a différents modules comme le
timer 1, les modules de comparaison et de capture CCP1/2, le timer
2, le port I2C ou le port série.

 Pour l’utilisation d’une broche du port C comme E/S normale, il faut


s’assurer qu’elle n’a pas été affectée à un de ces modules. Par
exemple, si TIMER1 est valide, il peut utiliser les broches RC0 et RC1
selon
µContrôleursa configuration.
avancé / GMSA 2 59
Les ports d’E/S
 Le port d' E/S PORTD PIC

 PORTD est un port bidirectionnel de 8 bits (RD0 a RD7). Toutes les


broches sont compatibles TTL et ont la fonction trigger de Schmitt en
entrée.

 Configurable en entrée ou en sortie à l’aide du registre TRISD. Pour


configurer une broche en entrée, on positionne le bit correspondant
dans TRISD à 1 et inversement.

 PORTD peut être utilisé dans un mode particulier appelé parallèle slave
port, pour cela il faut placer le bit PSPMODE (bit 4) de TRISD à 1. Dans
ce cas les 3 bits de PORTD deviennent les entrées de control de ce port
(RE, WE et CS).
 Pour utiliser PORTD en mode normal, il faut placer le bit PSPMODE de
TRISD a 0
µContrôleur avancé / GMSA 2 60
Les ports d’E/S
PIC
 Le port d' E/S PORTE

 PORTE contient seulement 3 bits RE0, RE1 et RE2. Les 3 sont


configurables en entrée ou en sortie à l’aide des bits 0, 1 ou 2 du
registre TRISE.
 Les 3 bits de PORTE peuvent être utilises soit comme E/S numérique
soit comme entrées analogiques du CAN. La configuration se
fait à l’aide du registre ADCON1.
 Si le bit PSPMODE de TRISE est place à 1, Les trois bits de
PORTE
deviennent les entrées de control du PORTD qui (dans ce
A cas) la fonctionne
mise sous
en mode
tension
parallèle
(RESET),
Slaveles
mode
broches de PORTE
configurées
3 comme entrées analogiques. sont
 Pour utiliser les broches de PORTE en E/S numériques
normales  Placer: 06h dans ADCON1 Registres
 Placer le bit PSPMODE de TRISE à
µContrôleur avancé / GMSA 2 61
0
PIC

 Situation au démarrage
oTous 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

µContrôleur avancé / GMSA 2 62


▶Annexe

µContrôleur avancé / GMSA 2 63


µContrôleur avancé / GMSA 2 64
Configuration du µC
 Directives
 La directive ORG, définit la position dans la mémoire
programme à partir de laquelle seront inscrites les instructions
suivantes.
 _ _CONFIG : permet de définir les 14 bits (fusibles ou switch)
de
configuration qui seront copiés dans l'EEPROM de configuration
(adresse 2007h) lors de l'implantation du programme dans le
PIC.
CP1/CP0 : bits 13/12 ;
protéger la totalité de la mémoire ou seulement une
partie. 1 1 : Aucune protection (_CP_OFF)
1 0 : Protection de la zone 0x1F00 à 0x1FFF
(_CP_UPPER_256)
0 1 : Protection de la zone 0x1000 à 0x1FFF (_CP_HALF)
0 0µContrôleur
: Protection
avancé / GMSA 2 de l’intégralité de la mémoire (_CP_ALL)
65

20
Configuration du µC
 Directives (suite)
config _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC

WRT : bit 9 : Autorisation d’écriture en flash


1 : Le programme peut écrire dans les zones non protégées par les
bits CP1/CP0 (_WRT_ENABLE_ON)
1 : Le programme ne peut pas écrire en mémoire flash
(_WRT_ENABLE_OFF)
CPD : bit 8 : Protection en lecture de la mémoire EEPROM de
données.
2 : mémoire EEPROM non protégée (_CPD_OFF)
3: mémoire EEPROM protégée contre la lecture externe via ICSP (_CPD_ON)
LVP : bit 7 : Utilisation de la pin RB3/PGM comme broche de
programmation 5V
4 : La pin RB3 permet la programmation du circuit sous tension de 5V
(_LVP_ON)
µContrôleur avancé / GMSA 2 67

0 : La pin RB3 est utilisée comme I/O standard (_LVP_OFF)


Configuration du µC
 Directives (suite)
BODEN : bit 6 : provoque le reset du PIC en cas de chute de
tension 1 : En service (_BODEN_ON)
0 : hors service (_BODEN_OFF)
PWRTE : bit 3 : Délai de démarrage à la mise en service. Attention,
est automatiquement mis en service si le bit BODEN est positionné.
1 : délai hors service (sauf si BODEN = 1) (_PWRTE_OFF)
1 : délai en service (_PWRTE_ON)
WDTE : bit 2 : Validation du Watchdog timer
2 : WDT en service (_WDT_ON)
0 : WDT hors service (_WDT_OFF)
FOSC1/FOSC0 : bits 1/0 : sélection du type d’oscillateur
11 : Oscillateur de type RC (_RC_OSC) (3K < R < 100k, C > 20 pF)
10 : Oscillateur haute vitesse (_HS_OSC) (4 Mhz à 20 Mhz)
01 : Oscillateur basse vitesse (_XT_OSC) (200 kHz à 4
Mhz)
00 : Oscillateur faible consommation (_LP_OSC) (32 k67 à
µContrôleur avancé / GMSA 2
200 kHz)
bibiographie

▶www.microchip.com

▶ Datasheet PIC 16F8XX


▶ Datasheet 18F45K22

µContrôleur avancé / GMSA 2 68

Vous aimerez peut-être aussi