SlideShare une entreprise Scribd logo
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

Contenu connexe

Tendances

Presentation arduino
Presentation arduinoPresentation arduino
Presentation arduino
SinGuy
 
Microo exercices 16f877/877A
Microo exercices 16f877/877AMicroo exercices 16f877/877A
Microo exercices 16f877/877A
omar bllaouhamou
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industriel
Adnane Ahmidani
 
Supervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.comSupervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.com
Adnane Ahmidani
 
Intro arduino
Intro arduinoIntro arduino
Intro arduino
SOAEnsAD
 
version finale de rapport de stage
version finale de rapport de stageversion finale de rapport de stage
version finale de rapport de stage
Abdelaziz ED-DAOUY
 
Tp transcodage logique combinatoire
Tp transcodage logique combinatoireTp transcodage logique combinatoire
Tp transcodage logique combinatoire
bilal001
 
Les circuits combinatoires
Les circuits combinatoires Les circuits combinatoires
Les circuits combinatoires
wafawafa52
 
Formation arduino 2018
Formation arduino 2018Formation arduino 2018
Formation arduino 2018
Hichem Hamdi
 
presentation pic 16f84.ppt
presentation pic 16f84.pptpresentation pic 16f84.ppt
presentation pic 16f84.ppt
saidmahfoud2
 
Câblage Entrées / Sorties Automate programmable
Câblage Entrées / Sorties Automate programmable Câblage Entrées / Sorties Automate programmable
Câblage Entrées / Sorties Automate programmable
morin moli
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
TheCrazyMan
 
Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)
Tarik Zakaria Benmerar
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseur
Peronnin Eric
 
Tp informatique industrielle
Tp informatique industrielleTp informatique industrielle
Tp informatique industrielle
Hajer Dahech
 
Introduction to pic microcontroller
Introduction to pic microcontrollerIntroduction to pic microcontroller
Introduction to pic microcontroller
Siva Kumar
 
Conception avec pic
Conception avec pic Conception avec pic
Conception avec pic
nawzat
 
Tp n6 les compteurs
Tp n6 les compteursTp n6 les compteurs
Tp n6 les compteurs
Hatem Jebali
 
Cours capteur final
Cours capteur finalCours capteur final
Cours capteur final
Abdellah Zahidi
 
Projet PFE: Réalisation d'une armoire électrique
Projet PFE: Réalisation d'une armoire électriqueProjet PFE: Réalisation d'une armoire électrique
Projet PFE: Réalisation d'une armoire électrique
Ridha Chayeh
 

Tendances (20)

Presentation arduino
Presentation arduinoPresentation arduino
Presentation arduino
 
Microo exercices 16f877/877A
Microo exercices 16f877/877AMicroo exercices 16f877/877A
Microo exercices 16f877/877A
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industriel
 
Supervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.comSupervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.com
 
Intro arduino
Intro arduinoIntro arduino
Intro arduino
 
version finale de rapport de stage
version finale de rapport de stageversion finale de rapport de stage
version finale de rapport de stage
 
Tp transcodage logique combinatoire
Tp transcodage logique combinatoireTp transcodage logique combinatoire
Tp transcodage logique combinatoire
 
Les circuits combinatoires
Les circuits combinatoires Les circuits combinatoires
Les circuits combinatoires
 
Formation arduino 2018
Formation arduino 2018Formation arduino 2018
Formation arduino 2018
 
presentation pic 16f84.ppt
presentation pic 16f84.pptpresentation pic 16f84.ppt
presentation pic 16f84.ppt
 
Câblage Entrées / Sorties Automate programmable
Câblage Entrées / Sorties Automate programmable Câblage Entrées / Sorties Automate programmable
Câblage Entrées / Sorties Automate programmable
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseur
 
Tp informatique industrielle
Tp informatique industrielleTp informatique industrielle
Tp informatique industrielle
 
Introduction to pic microcontroller
Introduction to pic microcontrollerIntroduction to pic microcontroller
Introduction to pic microcontroller
 
Conception avec pic
Conception avec pic Conception avec pic
Conception avec pic
 
Tp n6 les compteurs
Tp n6 les compteursTp n6 les compteurs
Tp n6 les compteurs
 
Cours capteur final
Cours capteur finalCours capteur final
Cours capteur final
 
Projet PFE: Réalisation d'une armoire électrique
Projet PFE: Réalisation d'une armoire électriqueProjet PFE: Réalisation d'une armoire électrique
Projet PFE: Réalisation d'une armoire électrique
 

Similaire à cour PIC16F877.pptx

Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84
guest1e7b02
 
Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655
Abdo Brahmi
 
Microcontroller/microcontroleur/pic.pptx
Microcontroller/microcontroleur/pic.pptxMicrocontroller/microcontroleur/pic.pptx
Microcontroller/microcontroleur/pic.pptx
SABIR Hamza
 
pic16f84-200306072553.pdf
pic16f84-200306072553.pdfpic16f84-200306072553.pdf
pic16f84-200306072553.pdf
Abdo Brahmi
 
Pic 16 f84
Pic 16 f84Pic 16 f84
Pic 16 f84
babaoui mohamed
 
Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2
Mohammed Lamghari
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
Karim Touati
 
Arduino cottenceau1112
Arduino cottenceau1112Arduino cottenceau1112
Arduino cottenceau1112
Hafid Moujane
 
le-pic-16f84.pdf
le-pic-16f84.pdfle-pic-16f84.pdf
le-pic-16f84.pdf
IMADABOUDRAR1
 
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
AliRami3
 
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
Mouhcine Nid Belkacem
 
pres_chapter5 (5).pptx
pres_chapter5 (5).pptxpres_chapter5 (5).pptx
pres_chapter5 (5).pptx
Abdo Brahmi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
Abdo Brahmi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
Abdo Brahmi
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
mohamedsaidi212001
 
prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
MbarkiIsraa
 
Tp bus i2_c
Tp bus i2_cTp bus i2_c
Tp bus i2_c
MOHAMED ZARBOUBI
 
presentation serrure codee
presentation serrure codeepresentation serrure codee
presentation serrure codee
MohammedFassih
 
Tp bus i2_c_partie_2
Tp bus i2_c_partie_2Tp bus i2_c_partie_2
Tp bus i2_c_partie_2
MOHAMED ZARBOUBI
 
Utilisation et programmation en c
Utilisation et programmation en cUtilisation et programmation en c
Utilisation et programmation en c
Cecilia Bevilaqua
 

Similaire à cour PIC16F877.pptx (20)

Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84
 
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
 
presentation serrure codee
presentation serrure codeepresentation serrure codee
presentation serrure codee
 
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
 

Plus de KamalZeghdar

003404788(1).pptx
003404788(1).pptx003404788(1).pptx
003404788(1).pptx
KamalZeghdar
 
Lecture6.pptx
Lecture6.pptxLecture6.pptx
Lecture6.pptx
KamalZeghdar
 
Chapitre 3 Modbus.pptx
Chapitre 3 Modbus.pptxChapitre 3 Modbus.pptx
Chapitre 3 Modbus.pptx
KamalZeghdar
 
2_Unit1_1-1.ppt
2_Unit1_1-1.ppt2_Unit1_1-1.ppt
2_Unit1_1-1.ppt
KamalZeghdar
 
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
KamalZeghdar
 
cours-gratuit.com--system1id048.pdf
cours-gratuit.com--system1id048.pdfcours-gratuit.com--system1id048.pdf
cours-gratuit.com--system1id048.pdf
KamalZeghdar
 
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
KamalZeghdar
 

Plus de 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
 

Dernier

cours-sur-les-stations-de-pompageen génie civil.pdf
cours-sur-les-stations-de-pompageen génie civil.pdfcours-sur-les-stations-de-pompageen génie civil.pdf
cours-sur-les-stations-de-pompageen génie civil.pdf
afigloria194
 
Etude de la faisabilité de la climatisation solaire pour l’habitat individuel...
Etude de la faisabilité de la climatisation solaire pour l’habitat individuel...Etude de la faisabilité de la climatisation solaire pour l’habitat individuel...
Etude de la faisabilité de la climatisation solaire pour l’habitat individuel...
iheberry
 
Theorie du trafic on telecommunication network
Theorie du trafic on telecommunication networkTheorie du trafic on telecommunication network
Theorie du trafic on telecommunication network
MahamaneAliSalatou
 
Webinaire BL 28_06_02_Consommation Energie.pdf
Webinaire BL 28_06_02_Consommation Energie.pdfWebinaire BL 28_06_02_Consommation Energie.pdf
Webinaire BL 28_06_02_Consommation Energie.pdf
Institut de l'Elevage - Idele
 
Webinaire BL 28_06_03_Transmissibilité.pdf
Webinaire BL 28_06_03_Transmissibilité.pdfWebinaire BL 28_06_03_Transmissibilité.pdf
Webinaire BL 28_06_03_Transmissibilité.pdf
Institut de l'Elevage - Idele
 
Webinaire BL 28_06_01_robots de traite.pdf
Webinaire BL 28_06_01_robots de traite.pdfWebinaire BL 28_06_01_robots de traite.pdf
Webinaire BL 28_06_01_robots de traite.pdf
Institut de l'Elevage - Idele
 
Note agro-climatique et prairies n°5 - Juillet 2024
Note agro-climatique et prairies n°5 - Juillet 2024Note agro-climatique et prairies n°5 - Juillet 2024
Note agro-climatique et prairies n°5 - Juillet 2024
idelewebmestre
 

Dernier (7)

cours-sur-les-stations-de-pompageen génie civil.pdf
cours-sur-les-stations-de-pompageen génie civil.pdfcours-sur-les-stations-de-pompageen génie civil.pdf
cours-sur-les-stations-de-pompageen génie civil.pdf
 
Etude de la faisabilité de la climatisation solaire pour l’habitat individuel...
Etude de la faisabilité de la climatisation solaire pour l’habitat individuel...Etude de la faisabilité de la climatisation solaire pour l’habitat individuel...
Etude de la faisabilité de la climatisation solaire pour l’habitat individuel...
 
Theorie du trafic on telecommunication network
Theorie du trafic on telecommunication networkTheorie du trafic on telecommunication network
Theorie du trafic on telecommunication network
 
Webinaire BL 28_06_02_Consommation Energie.pdf
Webinaire BL 28_06_02_Consommation Energie.pdfWebinaire BL 28_06_02_Consommation Energie.pdf
Webinaire BL 28_06_02_Consommation Energie.pdf
 
Webinaire BL 28_06_03_Transmissibilité.pdf
Webinaire BL 28_06_03_Transmissibilité.pdfWebinaire BL 28_06_03_Transmissibilité.pdf
Webinaire BL 28_06_03_Transmissibilité.pdf
 
Webinaire BL 28_06_01_robots de traite.pdf
Webinaire BL 28_06_01_robots de traite.pdfWebinaire BL 28_06_01_robots de traite.pdf
Webinaire BL 28_06_01_robots de traite.pdf
 
Note agro-climatique et prairies n°5 - Juillet 2024
Note agro-climatique et prairies n°5 - Juillet 2024Note agro-climatique et prairies n°5 - Juillet 2024
Note agro-climatique et prairies n°5 - Juillet 2024
 

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