Académique Documents
Professionnel Documents
Culture Documents
LLeLeLes Microcontrô
Microcontrôleurs
## Activité N°1: Découverte du microcontrôleur122
## Activité N°7: Prise en main du logiciel FlowCode V4.3 (v. Demo) 130
+5V
AUTOMATIQUE
+5V
Support 18 broches
S1
S2 R5
330
H1
R1 R2 R3 R4
330 330 1K 1K
S1 S2 H1
1)- Monter le cicuit CI1. Manipuler les interrupteurs S1 et S2 et
0 0 0
observer l’état de H1 puis remplir le tableau ci-contre:
0 1 0
1 0 0
1 1 1
S1 S2 H1
2)- Reprendre le même travail pour l’autre circuit intégré CI2,
puis remplir le tableau ci-contre: 0 0 0
0 1 1
1 0 1
1 1 1
3)- Donner la fonction réalisée par le premier circuit, puis celle réalisée par le deu-
xième circuit.
## Fonction dans le premier cas : C’est une fonction ET logique..
## Fonction dans le deuxième cas : C’est une fonction OU logique.
Conclure : .Il s’agit des circuits intégrés programmable, appelés microcontrôleurs
122
Manuel d’activités
C2
LCD1
10p LM020L
X1 C1
R5
10k
10p
1MHz
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
U2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
9 21
OSC1/CLKIN RB0/INT
10 22
OSC2/CLKOUT RB1
1 23
MCLR/Vpp/THV RB2
24
RB3/PGM
2 25
RA0/AN0 RB4
3 26
RA1/AN1 RB5
C3 4
RA2/AN2/VREF- RB6/PGC
27
1uF 5 28
RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI
7 11
RA5/AN4/SS RC0/T1OSO/T1CKI
12
RC1/T1OSI/CCP2
13
RC2/CCP1
14
RC3/SCK/SCL
15
RC4/SDI/SDA
16
RC5/SDO
17
RC6/TX/CK
18
RC7/RX/DT
PIC16F876
KeyPad
D1
A 7 8 9
D2
B 4 5 6
D3
C 1 2 3
D4
R1
10k
R2
10k
R3
10k
R4
10k
D 0 = +
1
Fig. 1
5)- Le circuit intégré U2 est un microcontrôleur qui possède trois ports d’entrées/
sorties. Pour chaque port, indiquer le nombre des entrées/sorties.
N. B. : une entrée/sortie logique commence par la lettre ” R” ; une entrée
analogique par les lettres ”AN”.
B2
B1
B3 B4
B5
B6’
B6
B7
B8
B9
B10 B11
124
Manuel d’activités
125
hapitre A4
S1 S2 D1
0 0 1
0 1 1
1 0 1
1 1 0
D1=...S1 / S2.
126
Manuel d’activités
1 18
2 17
16 F 628
3 16
R 4 15 C1
5 14
XT
6 13
7 12 C2
8 11
S 9 10
Vcc
127
hapitre A4
1)- Identifier les entrées logiques, les entrées analogiques et les sorties en co-
chant la case correspondante à chaque composant donné dans le tableau suivant:
128
Manuel d’activités
129
hapitre A4
B C
E
D
A
Les six zones désignées par les lettres (A, B ..., F) sont :
A- Fenêtre Algorigramme:
Les icônes qui constituent l’algorigramme sont affichées dans cette fenêtre.
B- Barre des icones de commandes:
La barre d’outils propose les icônes de commandes usuelles . Cette barre contient
130
Manuel d’activités
BEGIN
n
Bl
oc
so
rti
0 -> PORT B
e
END
END
c- Sélectionner PORT B
d- Sélectionner Port entier
e - Taper 170
f- Cliquer sur OK
131
hapitre A4
♦ Choisir PORT B.
♦ Terminé
i- Lancer la simulation en cliquant sur le bouton .
j- Quelles sont les LEDs allumées ?
B1,B3,B5 et B7
k- Modifier la valeur associée au port B par 136 au lieu de 170. Quelles sont les
LEDs allumées .de nouveau?
B7 et B3
l- Quelle valeur doit-on associer au port B pour allumer uniquement les LEDs
B1,B3 et B6 ?
Portb= ( 01001010)2= 7410
2)- Modifier le programme
BEGIN
170
-> PORT B
85
-> PORT B
END
Fig.9
170
-> PORT B
a- Qu’observe-t-on ?
Les LEDS B7,B5,B3 et B1 s’allument durant une seconde puis
elles s’éteignent 1s
Puis les LEDS B6,B4,B2 et B0 s’allument et restent allumées
b- A quoi servent les temporisations?
Pour générer des pauses et d’arrêter l’exécution du programme 85
pendant une durée du temps exprimée en secondes, millisecondes -> PORT B
ou microsecondes.
c- Combien de fois le programme se répète-t-il ?
Il se répète une seule fois ....................................................... END
....................................................................................................
4)- Ajoutez une boucle et relancer la simulation: Fig.10
a- Qu’observe-t-on ?
L’exécution du programme se répéte infiniment
....................................................................................................
b- A quoi sert la boucle ?
Pour répéter l’exécution des instructions...... BEGIN
....................................................................................................
c- Le programme se termine-t-il ?
Non. While 1
5)- Modifier les propriétés de la boucle et relancer la simula-
tion.. 170
-> PORT B
5
1s
85
-> PORT B
a- Qu’observe-t-on ? 1s
Le programme s’exécute 5 fois et s’arrête
..
b- Quelle est la différence avec la boucle précédente?
Dans la boucle précédente le programme s’exécute infiniment et
ne s’arrête qu’après une action sur le bouton ‘‘arrêter la simulation’’
alors que pour la deuxième boucle on a fixer le nombre de fois END
d’exécution. Fig.11
133
hapitre A4
END
Fig.12
134
Manuel d’activités
BEGIN END
Fig.13
X=0
While 1
If Yes
X=9 a- Saisir l’algorigramme ci-contre,.
? b- Quel est le modulo de ce compteur?
No
C’est un compteur binaire modulo 10,
c- Remplacer dans la condition Test 9 par 15.
X=X+1 X=0 Que devient le modulo de ce compteur?
C’est un compteur binaire modulo 16.................
d- Déduire le rôle du Test dans cet algorigramme
X
Dans algorigramme on fait un test sur la valeur
-> PORT B de X
si X=9 ----->on remet X à 0
1s si X ≠ 9 ---->X s’incrémente de 1
Fig.14
END
135
hapitre A4
a b c S
AUTOMATIQUE
c\a.b 00 01 11 10
0 0 0 0 0 0 0 1 0
0 0 1 0 1 0 1 1 1
0 1 0 0
0 1 1 1 2)- Déduire l’équation logique
1 0 0 0
1 0 1 1 S = a.b + a.c + b.c...............
1 1 0 1
1 1 1 1
a b c S
RA0 RA1 RA2 RB1
c- Configurer les registres de direction des ports A et B
136
Manuel d’activités
A2 ->c
rigramme.
8)- Transférer le fichier .hex obtenu si
a=1 ?
Yes
Output
No 1 ->B1
sur la valise d’expérimentation. Yes
0 ->B1
si No si Yes
c =1 ? c =1 ?
Yes No
Output Output Output
Output
1 ->B1 0 ->B1 0 ->B1 1 ->B1
END
2ème méthode (fig 22) Fig. 21
While 1
BEGIN
Input
A0 ->a
While 1
Input
Input
A1 ->b
A0 ->a
Input
(a AND b) OR (a AND c) OR (b AND c)=1 Input
A2 ->c
A1 ->b
Input
Yes
A2 ->c
No
Output Output
0 ->B1 1 ->B1
S=(a AND b) OR (a AND c) OR (b AND c) Output
S ->B1
END Fig. 22
END
3ème méthode
Utiliser un bloc Calcul pour écrire l’équation entière. Fig. 23
137
hapitre A4
E\L.H 00 01 11 10
0 0 0 1 0
1 0 1 0 1
E\L.H 00 01 11 10
0 1 1 0 1
1 1 0 0 0
C = L.H + L.E + H.E
138
Manuel d’activités
L H E A B C
RA2 RA1 RA0 RB2 RB1 RB0
c- Compléter l’algorigramme correspondant en utilisant:
## L’icône multiple-décision
BEGIN
WHILE
1
Input
PORT A
X
Switch =1 =2 =3 =4 =5 =6 =7
SWITCH
X
END
## L’icône Calcul
BEGIN
Output
WHILE C
1 -> B0
Input Output
A0 B
->E -> B1
Intput
Output
A1
->H A
-> B2
Intput
A2
->L
Calcul
A= E AND E...
B=(E AND (.... END
If
No
m=1
x=0
?
If No
Yes
x=1
?
x=1 Yes
x=1 x=0
Output
x->B0
END
140
Manuel d’activités
6)- Quelles sont les modifications à apporter à l’algorigramme précédent pour que
la priorité devienne à la marche. Indiquer ces modifications sur l’algorigramme
ci-dessous:
BEGIN
While 1
Input
A0 ->a
Input
A1->m
If Yes
m=1
?
No
If
No
a=1
x=1
?
If No
Yes
x=1
?
x=0 Yes
x=1 x=0
Output
x->B0
END
141
hapitre A4
Écrit _ chaîne(....
END
2)- Glisser vers la zone de travail
deux instances de l'icône
"Routine composant"
142
Manuel d’activités
8)- Remplacer la routine « Curseur » par une routine « Efface » pour effacer
l’écran.
a- Simuler le fonctionnement
b- Quelle est la valeur maximale atteinte par le chronomètre ?
La valeur maximale atteinte est 255
9)- Double cliquer sur l’icône calcul. Cliquer sur « variable ». Renommer la variable
T et choisir l’option Entier.
a- Simuler le fonctionnement .
b- Quelle est la valeur finale affichée lorsque le programme atteint sa fin ?
La valeur finale affichée est 999.............................................
10)- Indiquer la nature de la variable T pour pouvoir afficher le nombre 1000 .
Pour pouvoir afficher le nombre 1000, T doit être choisi comme entier ( entre -32768
et 32767) et remplacer la condition ( tant que) du boucle par 1001 .
.........................................................................................................................................................................
143
hapitre A4
BEGIN
250 ms
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
LCDdisplay 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Start
13 33
OSC1/CLKIN RB0/INT
14
OSC2/CLKOUT RB1
34 While 1
35
RB2
2 36
RA0/AN0 RB3/PGM
3 37
RA1/AN1 RB4
4 38
RA2/AN2/VREF-/CVREF RB5
5
6
RA3/AN3/VREF+ RB6/PGC
39
40
KeyPad(0)
T<1000 2
7
RA4/T0CKI/C1OUT RB7/PGD ch[0]=GetKeypad
RA5/AN4/SS/C2OUT
15
RC0/T1OSO/T1CKI
8 16
RE0/AN5/RD RC1/T1OSI/CCP2
9 17
10
RE1/AN6/WR
RE2/AN7/CS
RC2/CCP1
RC3/SCK/SCL
18 LCDdisplay 3
1
MCLR/Vpp/THV
RC4/SDI/SDA
RC5/SDO
23
24
A 0 1 2 3 Cursor(0,0)
25
RC6/TX/CK
26
RC7/RX/DT
19
B 4 5 6 7 LCDdisplay 4
RD0/PSP0
RD1/PSP1
20 PrintString(ch)
21
RD2/PSP2
RD3/PSP3
RD4/PSP4
22
27
C
8 9 A B
28
RD5/PSP5
29
RD6/PSP6
RD7/PSP7
30
D C D9 E F
PIC16F877A
1
END
fier le fonctionnement.
L’algorigramme ci-contre permet d’afficher une chaîne de caractères issue du clavier.
BEGIN
LCDdisplay(0)
Start
Conclure END
Affichage d’une chaine des caractères suite aux caractères
actionnés ......
Texte=’’ ‘’
LCDdisplay
Start
While 1
145
hapitre A4
146
Manuel d’activités
A tout moment un piéton désirant traverser cette voie, actionne le bouton Bp, ce qui
entraîne:
- L’extinction du feu vert destiné aux automobilistes;
- L’allumage du feu jaune invitant les automobilistes à ralentir durant 5 s;
- L’allumage du feu rouge des automobilistes et l’allumage du feu vert
durant 20s autorisant le passage des piétons.
Après écoulement du temps prévu, le trafic reprend son cours normal (feu
vert pour les automobilistes et feu rouge pour les piétons)
E/S système Bp FA vert FA jaune FA rouge FP rouge FP vert
E/S µ contrôleur RB0 RB1 RB2 RB3 RB4 RB5
1)- Compléter l’algorigramme d’interruption gérant ce fonctionnement.
BEGIN
BEGIN
4
-> PORT B
Enable
RB0INT
5s
While 1
40
-> PORT B
18
-> PORT B
20 s
END
END
Programme
Programme d’interruption
principal
N=0
AUTOMATIQUE
Enable
RB0INT
While 1
N ->
1)- Établir l’algorigramme ci-contre. PortC
d- Nommer le programme
de l’interruption
e- Éditer le programme
de l’interruption
BEGIN
N=N+1
END
150
Manuel d’activités
END
7)- L’algorigramme de la question N°5 est
celui d’un compteur/décompteur modulo 255, compléter l’algorigramme ci-dessous
pour réaliser un compteur/décompteur modulo10.
BEGIN
Input
S ->B1
If Yes
S=1
?
N=N+1 N=N-1
If
N=255 Yes
If Yes ?
N=10
?
N=9
N=0
END
151