11
année 201 /201 Durée : 3h00 PROGRAMMATION FLOWCODE Structures de base

PROGRAMMATION FLOWCODE Structures de basemb13010.free.fr/TPs/TPs-1SI-SEQUENCE4/tp1_flowcode.pdf · On utilise le logiciel « Flowcode V3 » en mode simulation. Plus tard, il sera

  • Upload
    vuliem

  • View
    223

  • Download
    4

Embed Size (px)

Citation preview

Page 1: PROGRAMMATION FLOWCODE Structures de basemb13010.free.fr/TPs/TPs-1SI-SEQUENCE4/tp1_flowcode.pdf · On utilise le logiciel « Flowcode V3 » en mode simulation. Plus tard, il sera

année 2012/2013

Durée : 3h00

PROGRAMMATION

FLOWCODE

Structures de base

Page 2: PROGRAMMATION FLOWCODE Structures de basemb13010.free.fr/TPs/TPs-1SI-SEQUENCE4/tp1_flowcode.pdf · On utilise le logiciel « Flowcode V3 » en mode simulation. Plus tard, il sera

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

Page 3: PROGRAMMATION FLOWCODE Structures de basemb13010.free.fr/TPs/TPs-1SI-SEQUENCE4/tp1_flowcode.pdf · On utilise le logiciel « Flowcode V3 » en mode simulation. Plus tard, il sera

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

Page 4: PROGRAMMATION FLOWCODE Structures de basemb13010.free.fr/TPs/TPs-1SI-SEQUENCE4/tp1_flowcode.pdf · On utilise le logiciel « Flowcode V3 » en mode simulation. Plus tard, il sera

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

Page 5: PROGRAMMATION FLOWCODE Structures de basemb13010.free.fr/TPs/TPs-1SI-SEQUENCE4/tp1_flowcode.pdf · On utilise le logiciel « Flowcode V3 » en mode simulation. Plus tard, il sera

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.

27 26 25 24 23 22 21 20

Mot à tester X X X X X X X Bit 0ET 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ébutrépéter

valeur = état de l’inter0si valeur = 0alors

écrire 0 sur les ledssinon

écrire 255 sur les ledsfin Si

jusqu'à l'infinifin

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

Page 6: PROGRAMMATION FLOWCODE Structures de basemb13010.free.fr/TPs/TPs-1SI-SEQUENCE4/tp1_flowcode.pdf · On utilise le logiciel « Flowcode V3 » en mode simulation. Plus tard, il sera

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

Page 7: PROGRAMMATION FLOWCODE Structures de basemb13010.free.fr/TPs/TPs-1SI-SEQUENCE4/tp1_flowcode.pdf · On utilise le logiciel « Flowcode V3 » en mode simulation. Plus tard, il sera

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 :

ALGORITHMIQUE ET LANGAGES {\TP\flowcode\tp_flowcode.odt} - page 7/11

début

Décalage à gauche de

Valeur

Attendre 0,5s

Lire état de l'inter0

fin

Valeur≠0?

Écrire valeur sur les leds

Valeur=1

Inter0 OFF ?

Page 8: PROGRAMMATION FLOWCODE Structures de basemb13010.free.fr/TPs/TPs-1SI-SEQUENCE4/tp1_flowcode.pdf · On utilise le logiciel « Flowcode V3 » en mode simulation. Plus tard, il sera

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

Page 9: PROGRAMMATION FLOWCODE Structures de basemb13010.free.fr/TPs/TPs-1SI-SEQUENCE4/tp1_flowcode.pdf · On utilise le logiciel « Flowcode V3 » en mode simulation. Plus tard, il sera

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

Page 10: PROGRAMMATION FLOWCODE Structures de basemb13010.free.fr/TPs/TPs-1SI-SEQUENCE4/tp1_flowcode.pdf · On utilise le logiciel « Flowcode V3 » en mode simulation. Plus tard, il sera

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 RB6 RB5 RB4 RB3 RB2 RB1 RB0

afficheur(PORTB)

cathode dp cathode g cathode f cathode e cathode d cathode c cathode b cathode a

RA4 RA3 RA2 RA1 RA0

afficheur - switches (PORTA) 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

Page 11: PROGRAMMATION FLOWCODE Structures de basemb13010.free.fr/TPs/TPs-1SI-SEQUENCE4/tp1_flowcode.pdf · On utilise le logiciel « Flowcode V3 » en mode simulation. Plus tard, il sera

On donne ci-dessous l'algorithme du programme :

débutnombre = 0répéter

allumer afficheurlire bp_plussi bp_plus actifalors incrémenter nombrefin sisi nombre = 0alors afficher '0'sinon

si nombre = 1alors afficher '1'sinon

si nombre = 2alors afficher '2'sinon

si nombre = 3alors afficher '3'sinon

.... // à compléter sous Flowcodesi nombre = 9alors afficher '9'sinon nombre =0fin si

fin sifin si

fin sifin siattendre 200ms // anti-rebonds

à l'infinifin

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