Exercice 1
a) C’est le compteur programme qui sert à indiquer l’adresse de la prochaine
instruction à exécuter.
b) À la mise sous tension, le programme qui est exécuté doit être dans la mémoire
programme (FLASH ROM).
c) La durée d’un cycle (Tcy) pour exécuter une instruction est telle que :
Tcy = Tosc x 4 Fcy = Fosc/4 avec Tosc la période de l’horloge du
microcontrôleur PIC.
Fosc = 4MHz Fcy = 4MHz / 4 = 1MHz Tcy = 1 / Fcy = 1µs
d) Les données utilisées par le programme doivent être dans la mémoire de données
(RAM)
e) La longueur d’une instruction est de 14 bits.
I13 I12 I11 I10 I9 I8 I7 I6 I5 I4 I3 I2 I1 I0
Instruction codée sur 14 bits
Instruction
Code opération opérande
f) La longueur d’une donnée dans la mémoire programme est de 8 bits.
D7 D6 D5 D4 D3 D2 D1 D0
Donnée codée sur 8 bits
Les broches OSC1 et OSC2 ou CLKIN et CLOUT permettent de faire fonctionner
l’oscillateur interne du PIC. On peut utiliser 3 types d’horloge :
• Un quartz ou résonateur céramique
• Un oscillateur externe
• Un réseau RC
Exercice 3
1) Le port A désigné par PORTA est un port de 5 bits (RA0 à RA4). La configuration
de direction pour chaque bit du port est déterminée avec le registre de direction :
TRISA.
• Bit n de TRISA = 0 (Output) → bit n de PORTA configuré en sortie
• Bit n de TRISA = 1 (Input) → bit n de PORTA configuré en entrée
Pour configurer le PORTA en sortie, il faut mettre des zéros (0) dans TRISA
TRISA x x x 0 0 0 0 0
2) RA4 est une E/S à drain ouvert, si on veut l'utiliser comme sortie il ne faut pas
oublier de mettre une résistance de rappel vers Vcc.
Exemple : allumer une LED
Donc, il faut modifier le schéma pour obtenir le schéma suivant :
Exercice 4
1) Voir : exercice1- question 2
2) Voir : exercice1- question 1
TRISA x x x 0 0 0 0 0
3)
RA4 RA3 RA2 RA1 RA0 Donnée en hexa
0RA4 0RA3 RA2
0 0
RA1 0 Donnée0x00
RA0 en hexa
0 0 00 00 00 01 0x01
0x00
0 0 00 00 10 11 0x01
0x03
0
0 0
0 1
0 1
1 11
0x03
0x07
0 0 1 1 1 0x07
0 0 11 11 11 11 0x0F
0x0F
1 1 11 11 11 11 0x1F
0x1F
0 0 11 11 11 11 0x0F
0x0F
0 0 1 1 1 0x07
0 0 1 1 1 0x07
0 0 0 1 1 0x03
0 0 00 00 10 11 0x03
0x01
0 0 0 0 1 0x01
Exercice 5
a) Le microcontrôleur est branché au décodeur 7segment 74LS47 par RB0, RB1, RB2 et
RB3 qui amènent le code de la donnée à afficher sur les afficheurs.
Pour sélectionner, le microcontrôleur doit commander l’un des transistors de type PNP,
par RB4 (afficheur M), RB5 (afficheur C), RB6 (afficheur D) et RB7 (afficheur U).
Le PORTB doit être configuré en sortie, et :
TRISB 0 0 0 0 0 0 0 0
b) pour afficher le 6 sur l’afficheur U, on doit avoir sur le port B :
PORTB 0 1 1 1 0 1 1 0
Q4 seul saturé Code du 6
c) pour afficher 1356, on doit mettre :
Chiffre Afficheur RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Transistor
6 U 0 1 1 1 0 1 1 0 Q4
5 D 1 0 1 1 0 1 0 1 Q3
3 C 1 1 0 1 0 0 1 1 Q2
1 M 1 1 1 0 0 0 0 1 Q1
Choix de l’afficheur (transistor) Code du chiffre à afficher