TP1 Flowcode

publicité
année 201/201
Durée : 3h00
PROGRAMMATION
FLOWCODE
Structures de base
On utilise le logiciel « Flowcode V3 » en mode simulation. Plus tard, il sera possible de transférer le programme
dans un microcontrôleur PIC de chez Microchip.
1. Lancement du logiciel FLOWCODE V3
L'outil de développement utilisé est le logiciel FLOWCODE de chez MULTIPOWER. Il permet de programmer
directement en algorigramme.
 Pour lancer le logiciel, double-cliquez sur l'icône Flowcode V3
.
La fenêtre principale s'ouvre :
 Choisir " Crée un nouvel algorigramme FlowCode " puis cliquez sur Ok.
Vous devez maintenant choisir le microcontrôleur que vous allez programmer à partir de Flowcode.
 Choisir le microcontrôleur " 16F84 ".
Ce microcontrôleur est un circuit intégré de 18 broches. Il intègre
principalement un microprocesseur, de la mémoire RAM, de la mémoire EEPROM, et
des ports d'entrées / sorties :
– le port A de 5 bits : RA0 à RA4
– le port B de 8 bits : RB0 à RB7
Durant le TP, vous allez connecter des leds et des interrupteurs sur ces
ports, programmer le microcontrôleur et tester vos programmes à l'aide du
simulateur de Flowcode.
Une aide sur flowcode
guide_flowcode.pdf.
ALGORITHMIQUE ET LANGAGES
est
fournie
par
un
guide :
2. Exemple : allumer une led - fichier led.fcf
L'objectif est d'allumer la première led. L'algorithme est le suivant :
début
Écrire la valeur 1 sur le PORT B
fin
On donne l’algorigramme suivant :
double-cliquez pour
définir les propriétés
Vous connecterez les leds
entier.
sur le port B du PIC. Cliquer sur la flèche ↓ puis Connexions et choisir le PORT B
2.1 Quelle est la structure algorithmique employée dans cet exemple ?
………………………………………………..........…………………………...................………………………
2.2 Saisir l'algorigramme et lancer la simulation en cliquant sur l'icône
ou en appuyant sur la touche F5.
Faire valider par le professeur.
2.3 Modifier le programme afin d'allumer uniquement la led 4. Faire valider par le professeur.
2.4 Modifier le programme afin d'allumer les leds 3 et 7. Faire valider par le professeur.
ALGORITHMIQUE ET LANGAGES
3. Les interrupteurs version 1 – inter1.fcf
L'objectif est de recopier l'état de 5 interrupteurs sur les leds. Un interrupteur en position ON allume
la led correspondante. Le programme doit s'exécuter à l'infini.
Vous connecterez 5 switches de type "bascule" au PORT A ( ↓ puis Propriétés ), les leds étant
connectées sur le PORT B comme dans l’exercice précédent. Vous utiliserez une variable pour
passer de la lecture des interrupteurs vers l’écriture sur les leds.
Remarque : répéter à l'infini est une « Boucle » tant que, sans condition de sortie ou avec une condition de sortie
qui ne sera jamais satisfaite (1=1).
3.1 Écrire l'algorithme.
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
3.2 Écrire le programme inter1.fcf sous Flowcode. Tester et faire vérifier par le professeur.
3.3 Modifier le programme afin d'allumer la led si l'interrupteur est en position OFF. Pour cela vous utiliserez un
bloc CALCUL
où vous complémenterez la variable utilisée avec l'instruction NOT.
Ex : TOTO = NOT (TOTO)
Tester et faire valider par le professeur.
ALGORITHMIQUE ET LANGAGES
{\TP\flowcode\tp_flowcode.odt} - page 4/11
4. Les interrupteurs version 2 - inter2.fcf
L'interrupteur 0 commande toutes les leds. Lorsqu'il est en position ON, elles s'allument ; elles s'éteignent lorsqu'il
repasse en position OFF. Ceci peut importe la position des autres interrupteurs. Le programme s'exécute à l'infini.
Il vous faut utiliser le principe du masquage : sur 8 bits en entrée, on ne veut tester que le bit 0.
Mot à tester
27
26
25
24
23
22
21
20
X
X
X
X
X
X
X
Bit 0
ET logique
Masque
0
0
0
0
0
0
0
1
Résultat
0
0
0
0
0
0
0
Bit 0
En faisant un ET logique, c'est-à-dire bit à bit, entre le mot de 8 bits à tester et le masque (ici 00000001), le résultat
sera nul si le bit0 est 0 et sera non nul si le bit 0 est 1.
Ainsi on fait le test du bit 0 sans s'occuper de l'état des autres bits.
Flowcode intègre la notion de masquage dans sa fonction
« Entrée ». Il suffit de cocher l’option masquage ainsi que
les bits non masqués.
Exemple : dans la fenêtre ci-contre la variable INTER prendra la
valeur du bit RA0, peu importe les états des bits RA1 à RA4
puisqu'ils sont masqués (décochés).
L'algorithme du programme inter2 est le suivant :
début
répéter
valeur = état de l’inter0
si valeur = 0
alors
écrire 0 sur les leds
sinon
écrire 255 sur les leds
fin Si
jusqu'à l'infini
fin
4.1 Quel(s) type(s) de structure algorithmique reconnaissez-vous dans l'algorithme ?
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
4.2 Écrire inter2.fcf. Faire vérifier par le professeur et tester.
4.3 Modifier le programme afin que les leds s'allument si les interrupteurs 0 ou 4 sont en position ON. Tester et
faire valider par le professeur.
4.4 Réaliser un programme qui lit en permanence l'état du bit 4 du port A (indépendamment des autres) et
recopie son état sur le bit 0 du port B. Tester et faire valider par le professeur.
ALGORITHMIQUE ET LANGAGES
{\TP\flowcode\tp_flowcode.odt} - page 5/11
5. Le chenillard version 1 - fichier chenil1.fcf
L'objectif est de faire défiler sans interruption les leds 0 à 7. L'interrupteur 0 sert à arrêter le défilement.
Algorithme :
début
répéter
Allumer la led 0
Attendre 0,5s
Allumer la led 1
Attendre 0,5s
tant que interrupteur 0 en position OFF
fin
5.1 A quel type de structure algorithmique correspond le Répéter …. Tant que ?
………………………………………………..........…………………………...................………………………
5.2 Compléter l'algorithme.
5.3 Écrire chenil1.fcf. Compléter le programme. Faire vérifier par le professeur et tester.
ALGORITHMIQUE ET LANGAGES
{\TP\flowcode\tp_flowcode.odt} - page 6/11
6. Le chenillard version 2 - chenil2.fcf
L'objectif est de réécrire le même programme que dans le 5. en utilisant les opérateurs de décalage.
La fonction décalage permet de décaler vers la gauche ou la droite le contenu d'un octet.
<< décalage à gauche
>> décalage à droite
exemple :
2 << 1 = 4
02 = 00000010
décalage de 1 bit vers la gauche
04 = 00000100
Les bits sortants sont perdus. On réinjecte des 0 par la droite.
Sous Flowcode le décalage s'écrit à l'intérieur d'un bloc CALCUL. Exemple : TOTO = TOTO << 1
On donne l'algorigramme :
début
Valeur=1
Écrire valeur sur
les leds
Attendre 0,5s
Décalage à
gauche de
Valeur
Valeur≠0
?
Lire état de
l'inter0
Inter0
OFF ?
fin
ALGORITHMIQUE ET LANGAGES
{\TP\flowcode\tp_flowcode.odt} - page 7/11
6.1 A quel type de structure algorithmique correspond la boucle 1 ?
………………………………………………..........…………………………...................………………………
6.2 A quel type de structure algorithmique correspond la boucle 2 ?
………………………………………………..........…………………………...................………………………
6.3 Écrire l'algorithme de ce programme.
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
6.4 Écrire chenil2.fcf. Faire vérifier par le professeur et tester.
ALGORITHMIQUE ET LANGAGES
{\TP\flowcode\tp_flowcode.odt} - page 8/11
7. Le chenillard version 3 - chenil3.c
L'objectif est de faire défiler les leds dans les deux sens, de gauche à droite puis de droite à gauche, etc. Vous
utiliserez toujours les opérateurs de décalage de bit.
7.1 Écrire l'algorithme de ce programme.
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
………………………………………………..........…………………………...................………………………
7.2 Écrire chenil3.fcf. Faire vérifier par le professeur et tester.
ALGORITHMIQUE ET LANGAGES
{\TP\flowcode\tp_flowcode.odt} - page 9/11
8. L'afficheur 7 segments – afficheur.fcf
L'objectif est d'incrémenter un nombre sur un afficheur 7 segments à partir d'appui sur un bouton poussoir.
Le microcontrôleur est utilisé de la façon suivante :
RB7
afficheur
(PORTB)
RB6
cathode
dp
RB5
RB4
RB3
RB2
RB1
RB0
cathode g cathode f cathode e cathode d cathode c cathode b cathode a
RA4
RA3
afficheur - switches
(PORTA)
RA2
RA1
RA0
bp_raz
bp_plus
anode
afficheur
8.1 Quel doit être l'état du bit RA0 pour allumer l'afficheur ?
.........................................................................................................................................................................
8.2 Compléter le tableau ci-dessous donnant la valeur binaire et décimale à placer sur le port B pour les nombres
de 0 à 9.
nombre
RB7
RB6
RB5
RB4
RB3
RB2
RB1
RB0
valeur du port B
en décimal
0
1
2
3
4
5
6
7
8
9
ALGORITHMIQUE ET LANGAGES
{\TP\flowcode\tp_flowcode.odt} - page 10/11
On donne ci-dessous l'algorithme du programme :
début
nombre = 0
répéter
allumer afficheur
lire bp_plus
si bp_plus actif
alors incrémenter nombre
fin si
si nombre = 0
alors afficher '0'
sinon
si nombre = 1
alors afficher '1'
sinon
si nombre = 2
alors afficher '2'
sinon
si nombre = 3
alors afficher '3'
sinon
.... // à compléter sous Flowcode
si nombre = 9
alors afficher '9'
sinon nombre =0
fin si
fin si
fin si
fin si
fin si
attendre 200ms
// anti-rebonds
à l'infini
fin
8.3 Écrire le programme sous Flowcode. Tester et faire valider par le professeur.
8.4 Modifier le programme afin de rajouter une remise à zéro du nombre en cas d'appui sur bp_raz.
ALGORITHMIQUE ET LANGAGES
{\TP\flowcode\tp_flowcode.odt} - page 11/11
Téléchargement