Vous êtes sur la page 1sur 10

06/11/2019

Microprocesseurs et Microcontrôleurs

PORTS E/S du PIC 16F84A


Pr. A. AIT MADI

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 1

Plan

PORTA et TRISA
PORTB et TRISB
Applications

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 2

1
06/11/2019

PORTA et TRISA

 PORTA (Adresse 05h)


• Un port parallèle de 5 bits (RA0 à RA4)
• Chaque E/S est compatible TTL (Transistor Transistor Logic)
 TRISA (Adresse 85h)
• Il sert pour la configuration de direction (entrée ou sortie) pour chaque bit du
PORTA
• Bit i de TRISA = 0  bit i de PORTA configuré en sortie
• Bit i de TRISA = 1  bit i de PORTA configuré en entrée

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 3

PORTA et TRISA
Block diagramme des E/S RA3-RA0 Configuration en entrée

1
0
1
0

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 4

2
06/11/2019

PORTA et TRISA
Configuration en sortie et écriture d’un 0 Configuration en sortie et écriture d’un 1

0 1
0 1
1 1 0 0
0 1
1 0

0 0

1 1

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 5

PORTA et TRISA

• Exemple :
1-Donner les mots binaires qu’on doit mettre dans TRISA pour :
 Configurer PORTA en sortie (TRISA=---00000)
 Configurer PORTA en entrée (TRISA=---11111)
 Configurer RA0 et RA1 en entrée et le reste en sortie (TRISA=---00011)
2- Pour ce dernier cas, écrire la partie du programme qui permet de:
 Se placer sur la banque 1
 Placer la valeur de configuration, 00000011=0x03, dans TRISA
 Revenir sur la banque 0
 Écrire 0, 1 et 1 respectivement sur les broches RA4,RA3 et RA2

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 6

3
06/11/2019

PORTA et TRISA

• Corrigé
1-Donner les mots binaires qu’on doit mettre dans TRISA pour:
 Configurer PORTA en sortie (TRISA=---00000)
 Configurer PORTA en entrée (TRISA=---11111)
 Configurer RA0 et RA1 en entrée et le reste en sortie (TRISA=---00011)
2-

BSF STATUS ,RP0 ; se mettre sur la banque 1


MOVLW 0x03 ; mettre 0x03 dans le registre W
MOVWF TRISA ; mettre la valeur 0x03 dans TRISA
BCF STATUS, RP0 ; revenir sur la banque 0
BCF PORTA, RA4 ; écrire 0 sur la broche RA4
BSF PORTA, RA3 ; écrire 1 sur la broche RA3
BSF PORTA, RA2 ; écrire 1 sur la broche RA2

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 7

PORTA et TRISA

• La broche RA4 est multiplexée avec l'entrée horloge du timer TMR0


• Elle peut être utilisée soit :
 Comme E/S normale du port A
 Comme entrée horloge pour le Timer TMR0
• Le choix se fait à l'aide du bit T0CS du registre OPTION_REG (Adresse 81h) .
 T0CS = 0  RA4 est une E/S normale
 T0CS = 1  RA4 = horloge externe pour le timer TMR0

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 8

4
06/11/2019

PORTA et TRISA

• Exemple
1-Donner un exemple de valeur à mettre dans le registre OPTION_REG pour que
la broche RA4 soit une E/S normale ?
2- Écrire la partie du programme qui permet de:
 Se placer sur la banque 1
 Placer la valeur choisie dans OPTION_REG
 Placer une valeur de votre choix dans TRISA pour configurer RA4 en sortie
 Revenir sur la banque 0
 Écrire 1 sur la broche RA4

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 9

PORTA et TRISA
• Corrigé :
1-Donner un exemple de valeur à mettre dans le registre OPTION_REG pour que
la broche RA4 soit une E/S normale ? L’important c’est de mettre TOCS=0 donc on
peut choisir OPTION_REG=0x00
2- Écrire la partie du programme qui permet de:
 Se placer sur la banque 1
 Placer la valeur choisie dans OPTION_REG
 Placer une valeur de votre choix dans TRISA pour configurer RA4 en sortie
 Revenir sur la banque 0
 Écrire 1 sur la broche RA4

BSF STATUS, RP0 ; se mettre sur la banque 1


MOVLW 0x00 ; mettre 0x00 dans le registre W
MOVWF OPTION_REG ; mettre la valeur 0x00 dans OPTION_REG
CLRF TRISA ; TRISA=0x00 tout le port A en sortie
BCF STATUS, RP0 ; revenir sur la banque 0
BSF PORTA, RA4 ; écrire 1 sur la broche RA4
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 10

5
06/11/2019

PORTA et TRISA
• RA4 est une E/S à drain ouvert
• Si on veut l'utiliser comme sortie (pour allumer une LED par exemple), il ne faut
pas oublier de mettre une résistance externe vers Vdd

• Le schéma ci-dessus illustre le principe d'une sortie drain ouvert (ou collecteur
ouvert) :
• si RA4 est positionnée à 0, l'interrupteur est fermé, la sortie est reliée à la masse
• Si RA4 est placée à 1, l'interrupteur est ouvert, la sortie est déconnectée d'où la
nécessite de la résistance externe pour amener le courant de l'alimentation vers la
LED
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 11

PORTB et TRISB

 Les registres PORTB et TRISB


• PORTB (Adresse 06h)
 C’est un port bidirectionnel de 8 bits (RB0 à RB7)
 Toutes les broches sont compatibles TTL
 En entrée, la ligne RB0 appelée aussi INT peut déclencher l’interruption
externe INT
 En entrée, une quelconque des lignes RB4 à RB7 peut déclencher
l'interruption RBI
• TRISB (Adresse 86h)
• Il sert pour la configuration de direction (entrée ou sortie) de chaque bit du
registre PORTB (Voir PORTA / TRISA)

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 12

6
06/11/2019

PORTB et TRISB

• Exemple
1-Donner un exemple de valeur à mettre dans le registre OPTION_REG pour
utiliser des faibles résistances de tirage RBUP, pour le port B ?
2- Écrire la partie du programme qui permet de:
 Se placer sur la banque 1
 Placer la valeur choisie dans OPTION_REG

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 13

PORTB et TRISB

• Corrigé
1-Donner un exemple de valeur à mettre dans le registre OPTION_REG pour
utiliser des faibles résistances de tirage RBUP, pour le port B ? L’important c’est de
mettre à 0 le bit RBPU. La valeur 0x00 peut être convenable
2- Écrire la partie du programme qui permet de:
 Se placer sur la banque 1
 Placer la valeur choisie dans OPTION_REG

BSF STATUS ,RP0 ; se mettre sur la banque 1


MOVLW 0x00 ; mettre 0x00 dans le registre W
MOVWF OPTION_REG ; mettre la valeur 0x00 dans OPTION_REG

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 14

7
06/11/2019

Applications

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 15

Applications

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 16

8
06/11/2019

Applications

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 17

Applications

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 18

9
06/11/2019

Quelques applications des PICs

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 19

Applications

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 20

10