SlideShare a Scribd company logo
1 of 34
PIC16F877
ARCHETECTURE ET PROGRAMMATION
UNIVERSITEMOHAMEDV -Agdal-RABAT
ECOLESUPERIEURDE TECHNOLOGIE–Salé
Licence Professionnelle: Instrumentation et Maintenance
Biomédicale
Réalisé par:
-AITTALEB Anwar
- BARI Rachid
Année universitaire: 2014/2015
2
3
I. Architecture générale du PIC16F877
I.Architecture générale du PIC16F877
1. Aspect externe du 16F877:
4
5
2. Les éléments constitutifs du PIC 16F877:
I.Architecture générale du PIC16F877
6
2.1. L’Horloge:
Il permet de fixer le temps d’exécution d’une instruction par le µcontrôleur.
L’Horloge peut être soit interne soit externe. L'horloge interne est constituée
d'un oscillateur a quartz ou d'un oscillateur RC.
Avec l'oscillateur à Quartz, on peut avoir des fréquences allant jusqu‘à 20
MHz selon le type de μC. Le filtre passe bas (Rs, C2) limite les harmoniques
dus à l’écrêtage et Réduit l’amplitude de l’oscillation, il n'est pas obligatoire.
Quelque soit l'oscillateur utilise, l'horloge système dite aussi horloge
instruction est obtenue en divisant la fréquence par 4. Dans la suite de ce
document on utilisera le terme Fosc/4 pour designer l'horloge système.
I.Architecture générale du PIC16F877
7
2.2. L’ALU et le registre W :
L’ALU est une Unité Arithmétique et logique 8 Bits qui réalise les opérations
arithmétiques et logique de base. L’accumulateur W est un registre de travail
8 bits, toutes les opérations à deux opérandes passe par lui. On peut avoir :
• Une instruction sur un seul opérande qui est en général un registre
situé dans la RAM.
• Une instruction sur 2 opérandes. Dans ce cas, l’un des deux
opérandes est toujours l’accumulateur W, l’autre peut être soit un
registre soit une constante.
Pour les instructions dont un des opérandes est un registre, le résultat peut
être récupère soit dans l’accumulateur, soit dans le registre lui-même.
I.Architecture générale du PIC16F877
Figure: Emplacement de l’ALU et le Registre W
8
3.Les mémoires:
3.1. Mémoire Programme(Flash):
Cette mémoire de 8 x 1024 mots de 14 bits sert à stocker le programme, mais
elle est accessible par programme. Elle est non volatile (flash) et
reprogrammable à souhait. Chaque position de 14 bits contient une instruction.
L'emplacement du programme peut se situer à n'importe quel endroit de la
mémoire. Cependant il faut savoir que suite à un RESET ou lors de la mise
sous tension, le PIC commence l‘exécution a l'adresse 0000H. De plus, lorsqu'il
y à une interruption, le PIC va à l'adresse 0004H. Il est donc nécessaire de bien
organiser le programme si celui-ci utilise des interruptions.
Le programme exécutable par le PIC est implanté dans la mémoire flash à
l'aide d'un programmateur (hard+soft).
I.Architecture générale du PIC16F877
Figure X : Emplacement du mémoire
flash
9
3.1. Mémoire RAM:
La mémoire RAM est constituée de deux parties:
• Les registres SFR (Special Function Registre), ce sont les registres de
fonctionnement du PIC. L’ensemble de ces registres est souvent appelé
fichier des registres.
• Les registres GPR (General Propose Register), sont des positions mémoire
que l’utilisateur peut utiliser pour stocker ses variables et ses données.
I.Architecture générale du PIC16F877
10
*Organisation de la RAM:
La mémoire RAM est organisée en quatre BANKS de 128 octets chacun,
pour accéder à un registre il faut d’abord se placer dans le bank où il se trouve.
Pour accéder à ces Banks, on dispose de deux modes d’adressage, direct et
indirect:
Adressage direct:
Dans ce mode d’adressage, en ait dispose d’un registre STATUT qui nous
permet de préciser le Bank souhaitée en commutant les bits RP0 et RP1 de ce
registre.
I.Architecture générale du PIC16F877
RP0,RP1: bits de sélection de Banks
Nous allons anticiper un peu et présenter les instructions bcf et bsf et qui
permettent de positionner un bit a 0 ou a 1:
bcf STATUS,RP0 ; place le bit RP0 à 0
bsf STATUS,RP1 ; place le bit RP1 à 1
11
Adressage Indirect:
Pour accéder a une position de la RAM en utilisant l’adressage indirect, on
passe toujours par une position fictive appelée INDF (Indirect File).
Exemple : l’instruction CLRF INDF signifie : mettre a zéro la case mémoire
d’adresse INDF.
I.Architecture générale du PIC16F877
Mais quelle est l’adresse de cette position appelée INDF ?
12
I.Architecture générale du PIC16F877
la Réponse est :
INDF est la case mémoire pointée par le pointeur IRP/FSR.
IRP est un bit qui se trouve dans STATUS et FSR est un registre
accessible dans tous les bancs. On peut se demander pourquoi on
ajoute le bit IRP. En effet, le registre de pointage FSR est un registre
8 bits, il peut donc adresser au maximum 256 positions mémoire (de
00h a FFh), c’est seulement la moitié de la RAM dont on dispose. Il
nous manque un bit pour avoir les 9 bits nécessaires. On utilise le bit
IRP qui se trouve dans le registre STATUS.
IRP/FSR: sélection de Pages en adressage
indirect.
13
I.Architecture générale du PIC16F877
En Résumé :
14
4. Les Ports E/S:
Le PIC 16F877 dispose de 33 broches d’entrée sortie regroupées 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:
• Bit k de TRISx = 0  broche k de PORTx = SORTIE.
• Bit k de TRISx = 1  broche k de PORTx = ENTREE.
PORTA  6 bits E/S(de RA0 à RA5)
PORTB  8 bits E/S (de RB0 à RB7)
PORTC  8bits E/S (de RC0 à RC7)
PORTD  8bits E/S (de RD0 à RD7)
PORTE  3bits E/S (de RE0 à RE2)
I.Architecture générale du PIC16F877
15
NB: la broche RA4 du PORTA a une particularité par rapport au autres
broches.
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 a drain ouvert, pour l'utiliser comme sortie logique,
il faut ajouter une résistance de pull-up externe. le principe d'une sortie drain
ouvert (ou collecteur ouvert) est: si RA4 est positionnée à 0, l'interrupteur est
fermé, la sortie est reliée à la masse, c'est un niveau bas. Si RA4 est placée à 1,
l'interrupteur est ouvert, la sortie serait déconnectée s'il n'y avait pas la
résistance externe qui la place au niveau haut.
I.Architecture générale du PIC16F877
Figure: broche RA4.
16
5.Les Interruptions :
Une interruption provoque l’arrêt du programme principal pour aller exécuter
une procédure d'interruption. A la fin de cette procédure, le microcontrôleur
reprend le programme principal à l’endroit ou il l’a laissé. A chaque
interruption sont associes 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.
I.Architecture générale du PIC16F877
17
 Type et configuration d’interruptions :
Sur le 16F877, 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 :
I.Architecture générale du PIC16F877
18
 Déroulement d’une Interruption :
Lorsque l’événement déclencheur d'une interruption intervient, alors son
drapeau est positionne à 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
0004h 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 place "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 (instruction RETFIE) :le bit GIE est
remis a 1 (autorisant ainsi un autre événement).
• le contenu du PC est recharge à partir de la pile ce qui permet au programme
de reprendre la où il s'est arrêté.
I.Architecture générale du PIC16F877
19
Deux remarques importantes sont à faire :
Le drapeau reste à l’état haut même après le traitement de l’interruption. Par
conséquent, il faut toujours le remettre à "0" à la fin de la routine
d'interruption sinon l'interruption sera déclenchée de nouveau juste après
l'instruction RETFIE.
Seul le PC est empilé automatiquement. Si cela est nécessaire, les registres
W et STATUS doivent être sauvegardés en RAM puis restaurés à la fin de la
routine pour que le microcontrôleur puisse reprendre le programme principal
dans les mêmes conditions où il l'a laissé.
I.Architecture générale du PIC16F877
20
6.Les TIMERs :
6.1. Le TIMER TMR0:
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.
• Au débordement de TMR0 (FF  00), le drapeau I NTCON.T0IF est placé
à 1. Ceci peut déclencher l'interruption T0I si celle-ci est validée.
I.Architecture générale du PIC16F877
En résumé, chaque fois que le compteur compète un tour, le drapeau T0IF
se lève. Si on note TH la période de l'horloge source, T0 l'horloge de TMR0
et TF0 le temps qui sépare 2 levés de drapeau successifs :
• Sans prédiviseur : TF0 = 256 T0 = 256 TH.
• Avec prédiviseur : TF0 = 256 T0 = 256 x (DIV x TH).
21
I.Architecture générale du PIC16F877
6.2. Le Watchdog Timer WDT (Chien de garde) :
C’est un compteur 8 bits incrémente 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 plante en cas de blocage du
microcontrôleur par un processus indésirable non contrôle.
• On peut ainsi l’utiliser pour réaliser des temporisations, puisque 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 (partage avec le timer
TMR0). L'affectation se fait a l'aide du bit PSA du registre OPTION_REG.
22
7.Le module de conversion A/N :
Ce module est constitue d'un convertisseur Analogique Numérique 10 bits
dont l'entrée analogique peut être connectée sur l'une des 8 entrées analogiques
externes. On dit qu'on a un CAN a 8 canaux. Les entrées analogiques doivent
être configurées en entrée a l'aide des registres TRISA et/ou TRISE.
L’échantillonneur bloqueur est intégré, il est constitue d’un interrupteur
d’échantillonnage et d’une capacité de blocage de 120 pF.
I.Architecture générale du PIC16F877
Le control du module se fait par les deux registres ADCON0 et
ADCON1
23
Pour les bits PCFG3-PCFG0 : configuration des E/S et des tensions de
références. Les 5 broches de PORTA et les 3 de PORTE peuvent être
configurés soit en E/S digitales, soit en entrées analogiques. RA2 et RA3
peuvent aussi être configurées en entrée de référence.
I.Architecture générale du PIC16F877
24
II. Programmation avec ASM.
25
1. Les instructions du 16F876/877 :
• Tous les PICs Mid-Range ont un jeu de 35 instructions,
• Chaque instruction est codée sur un mot de 14 bits qui contient le code
opération (OC) ainsi que l'opérande,
• Toutes les instructions sont exécutées en un cycle d'horloge, à part les
instructions de saut qui sont exécutées en 2 cycles d’horloge. Sachant que
l’horloge système est égale a fosc/4, si on utilise un quartz de 4MHz, on
obtient une horloge fosc/4 = 1000000 cycles/seconde, cela nous donne une
puissance de l’ordre de 1MIPS (1 Million d’ Instructions Par Seconde). Avec
un quartz de 20MHz, on obtient une vitesse de traitement de 5 MIPS.
II. Programmation avec ASM.
26
1.1. INSTRUCTIONS OPERANT SUR REGISTRE:
Ce sont des instructions qui manipulent un octet se trouvant dans la RAM. Ca
peut être un registre de configuration SFR ou une case mémoire quelconque
(Registre GPR).
1.2. INSTRUCTIONS OPERANT SUR BIT :
Ce sont des instructions destinées a manipuler directement un bit d’un registre
que se soit un registre de configuration SFR ou une case mémoire quelconque
(registre GPR). Tous les bits de la RAM peuvent être manipule
individuellement.
1.3. INSTRUCTIONS OPERANT SUR CONSTANTE :
Ce sont les instructions entre l’accumulateur W est une constante K.
1.4. LES INSTRUCTIONS DE SAUT ET APPEL DE PROCÉDURES:
Ce sont les instructions qui permettent de sauter a une autre position dans le
programme et de continuer l’exécution du programme a partir de cette
position.
II. Programmation avec ASM.
27
2. Configuration des PORTs:
II. Programmation avec ASM.
RX7 RX6 RX5 RX4 RX3 RX2 RX1 RX0
TRISX(BK1):
PORTX(BK0): RX7 RX6 RX5 RX4 RX3 RX2 RX1 RX0
Si TRISX = 0x00  PORTX est configuré en sortie.
Si TRISX = 0xFF  PORTX est configuré en entrée.
Exemple : on veut allumer une LED sur le PORTB.
Programme : bsf STATUS,RP0 ; Accéder au Bank1.
clrf TRISB ; PORTB est en sortie.
bcf STATUS,RP0 ; Accéder au Bank0.
bsf PORTB,RB0 ; mettre à 1 le bit0 du PORTB.
end
28
3. La Temporisation :
Il arrive souvent qu'on désire introduire des temporisations pendant
l'exécution d'un programme. Dans ce cours, nous allons traiter deux manière
pour réaliser une temporisation, soit à l’aide de simples boucles soit à l’aide de
l’un des trois TIMERs existant dans le PIC16F877 qui permettent de gérer le
temps avec une grande précision.
3.1. Temporisation avec boucles :
L'idée est d'initialiser une variable à une valeur donnée et ensuite la
décrémenter en boucle jusqu‘à ce qu'elle atteint 0. Connaissant le temps
d'exécution de chaque instruction, on peut ainsi calculer le temps que mettra le
processeur pour terminer la boucle de décrémentation.
II. Programmation avec ASM.
29
Temporisation avec une boucle:
II. Programmation avec ASM.
Début
CTRN
CTRCTR-1
CTR=0
FIN
NON
OUI
Programme correspond:
CTR EQU @
movlw N1
call tempo1
tempo1:
movwf CTR
t1: decfsz CTR,f
goto t1
return
T=3N+5
30
Temporisation avec deux boucles imbriquées:
Le principe reste le même sauf cette fois, on réalise une boucle antérieure
dans une extérieur.(Tmax = 0.197s).
II. Programmation avec ASM.
movlw N
tempo: movwf CTR2
tmp : decfsz CTR1,f
goto tmp
decfsz CTR2,f
goto tmp
return
Début
CTR2N
CTR1CTR1-1
CTR1=0
FIN
NON
OUI
CTR2CTR2-1
CTR2=0
NON
OUI
T=762 + 770N cycles
31
3.2. Temporisations avec TIMERs :
On veut faire clignoter une LED connecter sur une sortie du PORTB. La temporisation
permettant d’ajuster la fréquence est obtenue en comptant les débordements du timer
TMR0 à l’intérieure de l’interruption T0I. TMR0 est utilisé en timer avec un
prédiviseur de 256. en comptant 5 débordement on obtient un temporisation de
4*256*256 µs.
3.3. Temporisation avec watchdog (WDT):
Clignotement d’une LED reliée à la sortie 0 du PORTB. Les autres bits de PORTB ne
sont pas affectés. La temporisation est réalisée à l’aide du watchdog timer.
II. Programmation avec ASM.
32
4. Les Interruptions :
Exemple d’applications:
1. On veut commander une LED à l’aide d’un bouton poussoir.
2. Le chenillard.
II. Programmation avec ASM.
33
III. Exemple d’Application.
34

More Related Content

What's hot

Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2Mohammed Lamghari
 
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
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industrielAdnane Ahmidani
 
Exercices corrigés-sur-convertisseurs-statiques-2-bac-science-d ingénieur
Exercices corrigés-sur-convertisseurs-statiques-2-bac-science-d ingénieurExercices corrigés-sur-convertisseurs-statiques-2-bac-science-d ingénieur
Exercices corrigés-sur-convertisseurs-statiques-2-bac-science-d ingénieurzahir99
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le MicroprocesseurTheCrazyMan
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseurISIG
 
Exercices vhdl
Exercices vhdlExercices vhdl
Exercices vhdlyassinesmz
 
Automates programmables industriels
Automates programmables industrielsAutomates programmables industriels
Automates programmables industrielsHafsaELMessaoudi
 
Télécharger Exercices corrigés sur le gradateur triphasé
Télécharger Exercices corrigés sur le gradateur triphaséTélécharger Exercices corrigés sur le gradateur triphasé
Télécharger Exercices corrigés sur le gradateur triphasémorin moli
 
PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877
PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877
PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877RAMZI EL IDRISSI
 
Presentation fpga
Presentation fpgaPresentation fpga
Presentation fpgaImad Bourja
 
API et Supervision industrielle
API et Supervision industrielle API et Supervision industrielle
API et Supervision industrielle sarah Benmerzouk
 
presentation pic 16f84.ppt
presentation pic 16f84.pptpresentation pic 16f84.ppt
presentation pic 16f84.pptsaidmahfoud2
 
presentation serrure codee
presentation serrure codeepresentation serrure codee
presentation serrure codeeMohammedFassih
 
Slides_Choppers_2022.pdf
Slides_Choppers_2022.pdfSlides_Choppers_2022.pdf
Slides_Choppers_2022.pdfmouadbouaicha
 

What's hot (20)

Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2
 
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
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industriel
 
Exercices corrigés-sur-convertisseurs-statiques-2-bac-science-d ingénieur
Exercices corrigés-sur-convertisseurs-statiques-2-bac-science-d ingénieurExercices corrigés-sur-convertisseurs-statiques-2-bac-science-d ingénieur
Exercices corrigés-sur-convertisseurs-statiques-2-bac-science-d ingénieur
 
Microcontroleurs
MicrocontroleursMicrocontroleurs
Microcontroleurs
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
Presentation automatisme
Presentation automatismePresentation automatisme
Presentation automatisme
 
Exercices vhdl
Exercices vhdlExercices vhdl
Exercices vhdl
 
Automates programmables industriels
Automates programmables industrielsAutomates programmables industriels
Automates programmables industriels
 
Télécharger Exercices corrigés sur le gradateur triphasé
Télécharger Exercices corrigés sur le gradateur triphaséTélécharger Exercices corrigés sur le gradateur triphasé
Télécharger Exercices corrigés sur le gradateur triphasé
 
PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877
PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877
PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877
 
Presentation fpga
Presentation fpgaPresentation fpga
Presentation fpga
 
Microcontroleurs
MicrocontroleursMicrocontroleurs
Microcontroleurs
 
API et Supervision industrielle
API et Supervision industrielle API et Supervision industrielle
API et Supervision industrielle
 
presentation pic 16f84.ppt
presentation pic 16f84.pptpresentation pic 16f84.ppt
presentation pic 16f84.ppt
 
presentation serrure codee
presentation serrure codeepresentation serrure codee
presentation serrure codee
 
Slides_Choppers_2022.pdf
Slides_Choppers_2022.pdfSlides_Choppers_2022.pdf
Slides_Choppers_2022.pdf
 
Cours capteur final
Cours capteur finalCours capteur final
Cours capteur final
 

Similar to cour PIC16F877.pptx

Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Abdo Brahmi
 
Microcontroller/microcontroleur/pic.pptx
Microcontroller/microcontroleur/pic.pptxMicrocontroller/microcontroleur/pic.pptx
Microcontroller/microcontroleur/pic.pptxSABIR Hamza
 
pic16f84-200306072553.pdf
pic16f84-200306072553.pdfpic16f84-200306072553.pdf
pic16f84-200306072553.pdfAbdo Brahmi
 
Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2Mohammed Lamghari
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Karim Touati
 
Arduino cottenceau1112
Arduino cottenceau1112Arduino cottenceau1112
Arduino cottenceau1112Hafid Moujane
 
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
 
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
 
pres_chapter5 (5).pptx
pres_chapter5 (5).pptxpres_chapter5 (5).pptx
pres_chapter5 (5).pptxAbdo 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
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDmohamedsaidi212001
 
Utilisation et programmation en c
Utilisation et programmation en cUtilisation et programmation en c
Utilisation et programmation en cCecilia Bevilaqua
 
DSP FPGA.pdf
DSP FPGA.pdfDSP FPGA.pdf
DSP FPGA.pdfHouBou3
 

Similar to cour PIC16F877.pptx (20)

Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655
 
Microcontroller/microcontroleur/pic.pptx
Microcontroller/microcontroleur/pic.pptxMicrocontroller/microcontroleur/pic.pptx
Microcontroller/microcontroleur/pic.pptx
 
pic16f84-200306072553.pdf
pic16f84-200306072553.pdfpic16f84-200306072553.pdf
pic16f84-200306072553.pdf
 
Pic 16 f84
Pic 16 f84Pic 16 f84
Pic 16 f84
 
Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
 
Arduino cottenceau1112
Arduino cottenceau1112Arduino cottenceau1112
Arduino cottenceau1112
 
le-pic-16f84.pdf
le-pic-16f84.pdfle-pic-16f84.pdf
le-pic-16f84.pdf
 
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
 
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
 
pres_chapter5 (5).pptx
pres_chapter5 (5).pptxpres_chapter5 (5).pptx
pres_chapter5 (5).pptx
 
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
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
 
prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
 
Tp bus i2_c
Tp bus i2_cTp bus i2_c
Tp bus i2_c
 
Tp bus i2_c_partie_2
Tp bus i2_c_partie_2Tp bus i2_c_partie_2
Tp bus i2_c_partie_2
 
Utilisation et programmation en c
Utilisation et programmation en cUtilisation et programmation en c
Utilisation et programmation en c
 
Mini projet 3t2i se
Mini projet 3t2i seMini projet 3t2i se
Mini projet 3t2i se
 
DSP FPGA.pdf
DSP FPGA.pdfDSP FPGA.pdf
DSP FPGA.pdf
 

More from KamalZeghdar

Chapitre 3 Modbus.pptx
Chapitre 3 Modbus.pptxChapitre 3 Modbus.pptx
Chapitre 3 Modbus.pptxKamalZeghdar
 
cours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdf
cours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdfcours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdf
cours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdfKamalZeghdar
 
cours-gratuit.com--system1id048.pdf
cours-gratuit.com--system1id048.pdfcours-gratuit.com--system1id048.pdf
cours-gratuit.com--system1id048.pdfKamalZeghdar
 
cours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdf
cours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdfcours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdf
cours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdfKamalZeghdar
 

More from KamalZeghdar (7)

003404788(1).pptx
003404788(1).pptx003404788(1).pptx
003404788(1).pptx
 
Lecture6.pptx
Lecture6.pptxLecture6.pptx
Lecture6.pptx
 
Chapitre 3 Modbus.pptx
Chapitre 3 Modbus.pptxChapitre 3 Modbus.pptx
Chapitre 3 Modbus.pptx
 
2_Unit1_1-1.ppt
2_Unit1_1-1.ppt2_Unit1_1-1.ppt
2_Unit1_1-1.ppt
 
cours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdf
cours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdfcours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdf
cours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdf
 
cours-gratuit.com--system1id048.pdf
cours-gratuit.com--system1id048.pdfcours-gratuit.com--system1id048.pdf
cours-gratuit.com--system1id048.pdf
 
cours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdf
cours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdfcours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdf
cours-gratuit.com--pas-a-pas-vers-l-assembleur-par-lord-noteworthyid045.pdf
 

Recently uploaded

comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusInstitut de l'Elevage - Idele
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéInstitut de l'Elevage - Idele
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirstjob4
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfSophie569778
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageInstitut de l'Elevage - Idele
 

Recently uploaded (20)

comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversité
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
 

cour PIC16F877.pptx

  • 1. PIC16F877 ARCHETECTURE ET PROGRAMMATION UNIVERSITEMOHAMEDV -Agdal-RABAT ECOLESUPERIEURDE TECHNOLOGIE–Salé Licence Professionnelle: Instrumentation et Maintenance Biomédicale Réalisé par: -AITTALEB Anwar - BARI Rachid Année universitaire: 2014/2015
  • 2. 2
  • 4. I.Architecture générale du PIC16F877 1. Aspect externe du 16F877: 4
  • 5. 5 2. Les éléments constitutifs du PIC 16F877: I.Architecture générale du PIC16F877
  • 6. 6 2.1. L’Horloge: Il permet de fixer le temps d’exécution d’une instruction par le µcontrôleur. L’Horloge peut être soit interne soit externe. L'horloge interne est constituée d'un oscillateur a quartz ou d'un oscillateur RC. Avec l'oscillateur à Quartz, on peut avoir des fréquences allant jusqu‘à 20 MHz selon le type de μC. Le filtre passe bas (Rs, C2) limite les harmoniques dus à l’écrêtage et Réduit l’amplitude de l’oscillation, il n'est pas obligatoire. Quelque soit l'oscillateur utilise, l'horloge système dite aussi horloge instruction est obtenue en divisant la fréquence par 4. Dans la suite de ce document on utilisera le terme Fosc/4 pour designer l'horloge système. I.Architecture générale du PIC16F877
  • 7. 7 2.2. L’ALU et le registre W : L’ALU est une Unité Arithmétique et logique 8 Bits qui réalise les opérations arithmétiques et logique de base. L’accumulateur W est un registre de travail 8 bits, toutes les opérations à deux opérandes passe par lui. On peut avoir : • Une instruction sur un seul opérande qui est en général un registre situé dans la RAM. • Une instruction sur 2 opérandes. Dans ce cas, l’un des deux opérandes est toujours l’accumulateur W, l’autre peut être soit un registre soit une constante. Pour les instructions dont un des opérandes est un registre, le résultat peut être récupère soit dans l’accumulateur, soit dans le registre lui-même. I.Architecture générale du PIC16F877 Figure: Emplacement de l’ALU et le Registre W
  • 8. 8 3.Les mémoires: 3.1. Mémoire Programme(Flash): Cette mémoire de 8 x 1024 mots de 14 bits sert à stocker le programme, mais elle est accessible par programme. Elle est non volatile (flash) et reprogrammable à souhait. Chaque position de 14 bits contient une instruction. L'emplacement du programme peut se situer à n'importe quel endroit de la mémoire. Cependant il faut savoir que suite à un RESET ou lors de la mise sous tension, le PIC commence l‘exécution a l'adresse 0000H. De plus, lorsqu'il y à une interruption, le PIC va à l'adresse 0004H. Il est donc nécessaire de bien organiser le programme si celui-ci utilise des interruptions. Le programme exécutable par le PIC est implanté dans la mémoire flash à l'aide d'un programmateur (hard+soft). I.Architecture générale du PIC16F877 Figure X : Emplacement du mémoire flash
  • 9. 9 3.1. Mémoire RAM: La mémoire RAM est constituée de deux parties: • Les registres SFR (Special Function Registre), ce sont les registres de fonctionnement du PIC. L’ensemble de ces registres est souvent appelé fichier des registres. • Les registres GPR (General Propose Register), sont des positions mémoire que l’utilisateur peut utiliser pour stocker ses variables et ses données. I.Architecture générale du PIC16F877
  • 10. 10 *Organisation de la RAM: La mémoire RAM est organisée en quatre BANKS de 128 octets chacun, pour accéder à un registre il faut d’abord se placer dans le bank où il se trouve. Pour accéder à ces Banks, on dispose de deux modes d’adressage, direct et indirect: Adressage direct: Dans ce mode d’adressage, en ait dispose d’un registre STATUT qui nous permet de préciser le Bank souhaitée en commutant les bits RP0 et RP1 de ce registre. I.Architecture générale du PIC16F877 RP0,RP1: bits de sélection de Banks Nous allons anticiper un peu et présenter les instructions bcf et bsf et qui permettent de positionner un bit a 0 ou a 1: bcf STATUS,RP0 ; place le bit RP0 à 0 bsf STATUS,RP1 ; place le bit RP1 à 1
  • 11. 11 Adressage Indirect: Pour accéder a une position de la RAM en utilisant l’adressage indirect, on passe toujours par une position fictive appelée INDF (Indirect File). Exemple : l’instruction CLRF INDF signifie : mettre a zéro la case mémoire d’adresse INDF. I.Architecture générale du PIC16F877 Mais quelle est l’adresse de cette position appelée INDF ?
  • 12. 12 I.Architecture générale du PIC16F877 la Réponse est : INDF est la case mémoire pointée par le pointeur IRP/FSR. IRP est un bit qui se trouve dans STATUS et FSR est un registre accessible dans tous les bancs. On peut se demander pourquoi on ajoute le bit IRP. En effet, le registre de pointage FSR est un registre 8 bits, il peut donc adresser au maximum 256 positions mémoire (de 00h a FFh), c’est seulement la moitié de la RAM dont on dispose. Il nous manque un bit pour avoir les 9 bits nécessaires. On utilise le bit IRP qui se trouve dans le registre STATUS. IRP/FSR: sélection de Pages en adressage indirect.
  • 13. 13 I.Architecture générale du PIC16F877 En Résumé :
  • 14. 14 4. Les Ports E/S: Le PIC 16F877 dispose de 33 broches d’entrée sortie regroupées 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: • Bit k de TRISx = 0  broche k de PORTx = SORTIE. • Bit k de TRISx = 1  broche k de PORTx = ENTREE. PORTA  6 bits E/S(de RA0 à RA5) PORTB  8 bits E/S (de RB0 à RB7) PORTC  8bits E/S (de RC0 à RC7) PORTD  8bits E/S (de RD0 à RD7) PORTE  3bits E/S (de RE0 à RE2) I.Architecture générale du PIC16F877
  • 15. 15 NB: la broche RA4 du PORTA a une particularité par rapport au autres broches. 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 a drain ouvert, pour l'utiliser comme sortie logique, il faut ajouter une résistance de pull-up externe. le principe d'une sortie drain ouvert (ou collecteur ouvert) est: si RA4 est positionnée à 0, l'interrupteur est fermé, la sortie est reliée à la masse, c'est un niveau bas. Si RA4 est placée à 1, l'interrupteur est ouvert, la sortie serait déconnectée s'il n'y avait pas la résistance externe qui la place au niveau haut. I.Architecture générale du PIC16F877 Figure: broche RA4.
  • 16. 16 5.Les Interruptions : Une interruption provoque l’arrêt du programme principal pour aller exécuter une procédure d'interruption. A la fin de cette procédure, le microcontrôleur reprend le programme principal à l’endroit ou il l’a laissé. A chaque interruption sont associes 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. I.Architecture générale du PIC16F877
  • 17. 17  Type et configuration d’interruptions : Sur le 16F877, 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 : I.Architecture générale du PIC16F877
  • 18. 18  Déroulement d’une Interruption : Lorsque l’événement déclencheur d'une interruption intervient, alors son drapeau est positionne à 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 0004h 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 place "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 (instruction RETFIE) :le bit GIE est remis a 1 (autorisant ainsi un autre événement). • le contenu du PC est recharge à partir de la pile ce qui permet au programme de reprendre la où il s'est arrêté. I.Architecture générale du PIC16F877
  • 19. 19 Deux remarques importantes sont à faire : Le drapeau reste à l’état haut même après le traitement de l’interruption. Par conséquent, il faut toujours le remettre à "0" à la fin de la routine d'interruption sinon l'interruption sera déclenchée de nouveau juste après l'instruction RETFIE. Seul le PC est empilé automatiquement. Si cela est nécessaire, les registres W et STATUS doivent être sauvegardés en RAM puis restaurés à la fin de la routine pour que le microcontrôleur puisse reprendre le programme principal dans les mêmes conditions où il l'a laissé. I.Architecture générale du PIC16F877
  • 20. 20 6.Les TIMERs : 6.1. Le TIMER TMR0: 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. • Au débordement de TMR0 (FF  00), le drapeau I NTCON.T0IF est placé à 1. Ceci peut déclencher l'interruption T0I si celle-ci est validée. I.Architecture générale du PIC16F877 En résumé, chaque fois que le compteur compète un tour, le drapeau T0IF se lève. Si on note TH la période de l'horloge source, T0 l'horloge de TMR0 et TF0 le temps qui sépare 2 levés de drapeau successifs : • Sans prédiviseur : TF0 = 256 T0 = 256 TH. • Avec prédiviseur : TF0 = 256 T0 = 256 x (DIV x TH).
  • 21. 21 I.Architecture générale du PIC16F877 6.2. Le Watchdog Timer WDT (Chien de garde) : C’est un compteur 8 bits incrémente 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 plante en cas de blocage du microcontrôleur par un processus indésirable non contrôle. • On peut ainsi l’utiliser pour réaliser des temporisations, puisque 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 (partage avec le timer TMR0). L'affectation se fait a l'aide du bit PSA du registre OPTION_REG.
  • 22. 22 7.Le module de conversion A/N : Ce module est constitue d'un convertisseur Analogique Numérique 10 bits dont l'entrée analogique peut être connectée sur l'une des 8 entrées analogiques externes. On dit qu'on a un CAN a 8 canaux. Les entrées analogiques doivent être configurées en entrée a l'aide des registres TRISA et/ou TRISE. L’échantillonneur bloqueur est intégré, il est constitue d’un interrupteur d’échantillonnage et d’une capacité de blocage de 120 pF. I.Architecture générale du PIC16F877 Le control du module se fait par les deux registres ADCON0 et ADCON1
  • 23. 23 Pour les bits PCFG3-PCFG0 : configuration des E/S et des tensions de références. Les 5 broches de PORTA et les 3 de PORTE peuvent être configurés soit en E/S digitales, soit en entrées analogiques. RA2 et RA3 peuvent aussi être configurées en entrée de référence. I.Architecture générale du PIC16F877
  • 25. 25 1. Les instructions du 16F876/877 : • Tous les PICs Mid-Range ont un jeu de 35 instructions, • Chaque instruction est codée sur un mot de 14 bits qui contient le code opération (OC) ainsi que l'opérande, • Toutes les instructions sont exécutées en un cycle d'horloge, à part les instructions de saut qui sont exécutées en 2 cycles d’horloge. Sachant que l’horloge système est égale a fosc/4, si on utilise un quartz de 4MHz, on obtient une horloge fosc/4 = 1000000 cycles/seconde, cela nous donne une puissance de l’ordre de 1MIPS (1 Million d’ Instructions Par Seconde). Avec un quartz de 20MHz, on obtient une vitesse de traitement de 5 MIPS. II. Programmation avec ASM.
  • 26. 26 1.1. INSTRUCTIONS OPERANT SUR REGISTRE: Ce sont des instructions qui manipulent un octet se trouvant dans la RAM. Ca peut être un registre de configuration SFR ou une case mémoire quelconque (Registre GPR). 1.2. INSTRUCTIONS OPERANT SUR BIT : Ce sont des instructions destinées a manipuler directement un bit d’un registre que se soit un registre de configuration SFR ou une case mémoire quelconque (registre GPR). Tous les bits de la RAM peuvent être manipule individuellement. 1.3. INSTRUCTIONS OPERANT SUR CONSTANTE : Ce sont les instructions entre l’accumulateur W est une constante K. 1.4. LES INSTRUCTIONS DE SAUT ET APPEL DE PROCÉDURES: Ce sont les instructions qui permettent de sauter a une autre position dans le programme et de continuer l’exécution du programme a partir de cette position. II. Programmation avec ASM.
  • 27. 27 2. Configuration des PORTs: II. Programmation avec ASM. RX7 RX6 RX5 RX4 RX3 RX2 RX1 RX0 TRISX(BK1): PORTX(BK0): RX7 RX6 RX5 RX4 RX3 RX2 RX1 RX0 Si TRISX = 0x00  PORTX est configuré en sortie. Si TRISX = 0xFF  PORTX est configuré en entrée. Exemple : on veut allumer une LED sur le PORTB. Programme : bsf STATUS,RP0 ; Accéder au Bank1. clrf TRISB ; PORTB est en sortie. bcf STATUS,RP0 ; Accéder au Bank0. bsf PORTB,RB0 ; mettre à 1 le bit0 du PORTB. end
  • 28. 28 3. La Temporisation : Il arrive souvent qu'on désire introduire des temporisations pendant l'exécution d'un programme. Dans ce cours, nous allons traiter deux manière pour réaliser une temporisation, soit à l’aide de simples boucles soit à l’aide de l’un des trois TIMERs existant dans le PIC16F877 qui permettent de gérer le temps avec une grande précision. 3.1. Temporisation avec boucles : L'idée est d'initialiser une variable à une valeur donnée et ensuite la décrémenter en boucle jusqu‘à ce qu'elle atteint 0. Connaissant le temps d'exécution de chaque instruction, on peut ainsi calculer le temps que mettra le processeur pour terminer la boucle de décrémentation. II. Programmation avec ASM.
  • 29. 29 Temporisation avec une boucle: II. Programmation avec ASM. Début CTRN CTRCTR-1 CTR=0 FIN NON OUI Programme correspond: CTR EQU @ movlw N1 call tempo1 tempo1: movwf CTR t1: decfsz CTR,f goto t1 return T=3N+5
  • 30. 30 Temporisation avec deux boucles imbriquées: Le principe reste le même sauf cette fois, on réalise une boucle antérieure dans une extérieur.(Tmax = 0.197s). II. Programmation avec ASM. movlw N tempo: movwf CTR2 tmp : decfsz CTR1,f goto tmp decfsz CTR2,f goto tmp return Début CTR2N CTR1CTR1-1 CTR1=0 FIN NON OUI CTR2CTR2-1 CTR2=0 NON OUI T=762 + 770N cycles
  • 31. 31 3.2. Temporisations avec TIMERs : On veut faire clignoter une LED connecter sur une sortie du PORTB. La temporisation permettant d’ajuster la fréquence est obtenue en comptant les débordements du timer TMR0 à l’intérieure de l’interruption T0I. TMR0 est utilisé en timer avec un prédiviseur de 256. en comptant 5 débordement on obtient un temporisation de 4*256*256 µs. 3.3. Temporisation avec watchdog (WDT): Clignotement d’une LED reliée à la sortie 0 du PORTB. Les autres bits de PORTB ne sont pas affectés. La temporisation est réalisée à l’aide du watchdog timer. II. Programmation avec ASM.
  • 32. 32 4. Les Interruptions : Exemple d’applications: 1. On veut commander une LED à l’aide d’un bouton poussoir. 2. Le chenillard. II. Programmation avec ASM.
  • 34. 34