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 est fournie par un guide :
guide_flowcode.pdf.
ALGORITHMIQUE ET LANGAGES
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 :
Vous connecterez les leds sur le port B du PIC. Cliquer sur la flèche puis Connexions et choisir le PORT B
entier.
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
double-cliquez pour
définir les propriétés
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.
2726252423222120
Mot à tester 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
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !