Vous êtes sur la page 1sur 22

Chapitre 2:

Les entrées – sorties


Configuration et Traitement

1
Brochage du PIC16F84
• Broches 1,2,3,18,17 : périphériques E/S gérées
par le port A

• Broches 6,7,8,9,10,11,12,13 :
périphériques E/S gérées par le port B

• Broche 5: VSS : 0V

• Broche 14: Vdd: 5V

• Broche 4: Reset

• Broche 15, 16 : horloge

2
Architecture interne du PIC16F84

3
Architecture interne du PIC 16F84
• Le PIC 16F84 est conçu selon l’architecture de Harvard donc il
possède 2 mémoires séparées physiquement ayant chacune les bus
nécessaires:
– Mémoire de programme ( ou de code avec bus @
d’instructions et bus des instructions véhiculant les codes d’instructions)
– Mémoire de données (avec bus d’adresses de données et bus qui véhicule les
données)

4
Processeur

• Le processeur est composé de:

– Unité arithmétique et logique(UAL): Chargé d’ exécuter les opérations


arithmétiques ( addition, soustraction, division,…) et logiques ( ET, Non, AND,…. ).

– Registre de Travail noté W.

– Unité de contrôle

5
Manipulation
Soit le montage suivant:

• L’objectif est d’écrire un programme à base du microcontrôleur PIC16F84 permettant d’allumer les
LEDs connectées aux pins RB0 et RB2.
Organigramme général du programme

Programme Principal
Début

CONFIGURARTION
Configurer les entrées.
Configurer les sorties.

INITIALISATION
Initialiser les sorties

Traitement
Boucle infinie Instruction 1
Instruction 2
.
.
Instruction n

Fin
7
Configuration des Entrées Sorties : Mémoire de données

La mémoire RAM :
• Elle contient deux types de registres :
SFR
 Les SFR ( Special Function Registers):  des
emplacements mémoires spécialisés et
ne peuvent contenir qu'un type bien
précis de données.

 des registres généraux (GPR: General Purpose


Registers) : Ceux-ci peuvent stocker
indifféremment adresses, entiers, flottants, GPR
etc

• Elle contient deux banques :


 Chaque banque est composée de 128 octets.
 Les 12 premières ligne de chaque
banque sont réservées pour les SFR.
28
Configuration des entrées - sorties
TRISA (Configuration des entrées – Sorties des broches RA)
Le programmateur peut configurer (fixer) les entrés
/ sorties du microcontrôleur PIC16F84 pour un
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

système donné à travers les registres :

0 : RA4 est Output 0 : RA2 est Output 0 : RA0 est Output


1 : RA4 est Input 1 : RA2 est Input 1 : RA0 est Input
 TRISA pour les broches RA0,RA1,RA2, RA3 et
RA4 0 : RA3 est Output 0 : RA1 est Output
1 : RA3 est Input 1 : RA1 est Input

NB : TRISA se trouve dans le Bank1 de la


TRISB (Configuration des entrées – Sorties des broches RB)
mémoire de données.
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

 TRISB pour les broches RB0,RB1,RB2, RB3 ,RB4,


RB5, RB6 et RB7
0 : RB6 est Output 0 : RB4 est Output 0 : RB2 est Output 0 : RB0 est Output
1 : RB6 est Input 1 : RB4 est Input 1 : RB2 est Input 1 : RB0 est Input
NB : TRISB se trouve dans le Bank1 de la
0 : RB7 est Output 0 : RB5 est Output 0 : RB3 est Output 0 : RB1 est Output
mémoire de données. 1 : RB7 est Input 1 : RB5 est Input 1 : RB1 est Input
1 : RB3 est Input
Configuration des entrées – sorties : exemples
TRISA
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
1

TRISB
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

1 0 0

TRISA
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

0 1
TRISB
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

0 1
10
Organigramme général du programme

Programme Principal
Début

CONFIGURARTION
Configurer les entrées.
Configurer les sorties.

INITIALISATION
Initialiser les sorties

Traitement
Boucle infinie Instruction 1
Instruction 2
.
.
Instruction n

Fin
11
Lecture et Ecriture des données: Mémoire de données

La mémoire RAM :
• Elle contient deux types de registres :
SFR
 Les SFR ( Special Function Registers):  des
emplacements mémoires spécialisés et
ne peuvent contenir qu'un type bien
précis de données.

 des registres généraux (GPR: General Purpose


Registers) : Ceux-ci peuvent stocker
indifféremment adresses, entiers, flottants, GPR
etc

• Elle contient deux banques :


 Chaque banque est composée de 128 octets.
 Les 12 premières ligne de chaque
banque sont réservées pour les SFR.
28
Lecture et écriture des données

 Si une broche est configurée comme entrée, le programmeur peut Lire les données envoyées par cette broche à travers les
registres :
 PORTA pour les broches RA0,RA1,RA2, RA3 et RA4
 PORTB pour les broches RB0,RB1,RB2, RB3 ,RB4, RB5, RB6 et RB7

 Si une broche est configurée comme Sortie, le programmeur peut écrire les données dans la broche à travers les registres :
 PORTA pour les broches RA0,RA1,RA2, RA3 et RA4
 PORTB pour les broches RB0,RB1,RB2, RB3 ,RB4, RB5, RB6 et RB7

NB : PORTA et PORTB se trouvent dans le Bank0 de la mémoire de données.


Lecture des entrées – Ecriture des sorties : exemple1
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
TRISA
0 1

Écrire (sortie) Lire (entrée)

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


PORTA
1 1

•Le programmeur a lu la valeur de l’entrée RA0 à travers le bit 0 du


PORTA : PORTA.RA0 == 1
•Le programmeur à allumé la sortie RA3 en écrivant 1 dans le bit 3
du PORTA : PORTA.RA3 = 1

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


TRISB 0 1 •Le programmeur a lu la valeur de l’entrée RB0 à
Écrire (sortie) Lire (entrée)
travers le bit 0 du PORTB: PORTB.RB0 == 0
•Le programmeur à éteint la sortie RB7 en écrivant 0
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PORTB dans le bit 7 du PORTA : PORTB.RB7= 0
0 0 14
Lecture des entrées – Ecriture des sorties : exemple1
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
TRISA
1

Lire (entrée)

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


PORTA
0

•Le programmeur a lu la valeur de l’entrée RA2 à travers le bit 2 du


PORTA : PORTA.RA2 == 0

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


TRISB 1 0 0 •Le programmeur a lu la valeur de l’entrée RB4 à
Lire (entrée) Écrire (sortie) travers le bit 4 du PORTB: PORTB.RB4== 1
•Le programmeur à allumé les sorties RB0 et RB2 en
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PORTB écrivant 1 dans les bits 0 et 2 du PORTB : PORTB.RB0=
1 1 1 1 , : PORTB.RB2= 1 15
Choix du Banque : Mémoire de données

La mémoire RAM :
• Elle contient deux types de registres :
SFR
 Les SFR ( Special Function Registers):  des
emplacements mémoires spécialisés et
ne peuvent contenir qu'un type bien
précis de données.

 des registres généraux (GPR: General Purpose


Registers) : Ceux-ci peuvent stocker
indifféremment adresses, entiers, flottants, GPR
etc

• Elle contient deux banques :


 Chaque banque est composée de 128 octets.
 Les 12 premières ligne de chaque
banque sont réservées pour les SFR.
28
choix du Banque
• Le choix de la banque est assurée par
un bit de contrôle qui se trouvent dans
le registre STATUS.
STATUS
• Avec 16F84, on utilise le bit Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
numéro 5, dont le nom est RP0:
RP0

• La banque 0 est sélectionnée en


mettant le bit RP0 du registre 0 : Bank0
1 : Bank1
STATUS à 0.

• La banque 1 est sélectionnée en


mettant le bit RP0 du registre
STATUS à 1.
17
Manipulation
• Soit le montage suivant:

• L’objectif est d’écrire un programme à base du microcontrôleur PIC16F84 permettant d’allumer 2


LEDs connectées aux pins RB0 et RB2 .
Organigramme général du programme
Algorithme
Organigramme
Début
Début
CONFIGURARTION
CONFIGURARTION STATUS.5 = 1
TRISB (Bank1)
Choisir Bank1 TRISB.RB0 =0, TRISB.RB1 =0, TRISB.RB2 =0,
RB0,RB1,RB2 et RB3 sont des sorties TRISB.RB03=0

INITIALISATION INITIALISATION
PORTB (Bank0)
Choisir Bank0 STATUS.5 = 0
Les Leds sont éteintes PORTB.RB0 =0, PORTB.RB1 =0, PORTB.RB2
=0, PORTB.RB03=0

PORTB
Traitement
Allumer RB0 Traitement
Boucle infinie PORTB.RB0 =1,
Allumer RB2
Boucle infinie
PORTB.RB2 =1,

Fin 19
Fin
Quelques Instructions assembleur
instruction Arguments de l’instructions

• BSF f,b ; Bit Set File = Mettre 1 dans le bit numéro bit b du registre f
File /registre numéro du bit

Exemple :
 BSF PORTA,5 ; PORTA.RA5 = 1
 BSF TRISA,2 ; TRISA.RA2 = 1
 BSF STATUS,5 ; STATUS.5 = 1

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH 20


Quelques Instructions assembleur
instruction Arguments de l’instructions

• BCF f,b ; Bit Clear File = Mettre 0 dans le bit numéro bit b du registre f
File /registre numéro du bit

Exemple :
 BCF PORTA,4 ; PORTA.RA4 = 0
 BCF TRISA,1 ; TRISA.RA1 = 0
 BCF STATUS,5 ; STATUS.5 = 0

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH 21


Manipulation
• TP

22

Vous aimerez peut-être aussi