TP multiprog easypic 2eme partie rev00

Transcription

TP multiprog easypic 2eme partie rev00
Programmation de
microcontrôleurs
TP TSEN EIE
-ALGORIGRAMMESUtilisation du logiciel MULTIPROG
2ème partie
(carte EasyPIC5)
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
1
Programmation de
microcontrôleurs
TP TSEN EIE
ACTIVITÉ
(voir cours sur l’affichage multiplexé)
I – Schéma de principe pour l’utilisation de l’afficheur 7 segments
Barème
II – PREPARATION : configuration matérielle de la carte EasyPIC5
a) A quoi vont servir les lignes DIS0 à DIS3 ? Quel port du PIC est utilisé ? Comment doit être programmé ce
port ? (Entrée ou sortie).
b) Comment doivent être positionnés les interrupteurs de SW6 ? (utiliser la notation SW6-2 par exemple)
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
2
Programmation de
microcontrôleurs
TP TSEN EIE
c) Compléter le tableau de sélection des afficheurs. Les lignes du portA non concernées sont à 0.
PORTA
Afficheur sélectionné
0x
0x
0x
0x
d) Quel port est utilisé pour afficher un nombre sur un afficheur commandé ? Comment doit être programmé ce
port ? (entrée ou sortie).
III – Simples tests MULTIPROG
a) Réaliser un programme qui commande un segment de l’afficheur de droite. Compiler et tester.
b) Modifier le programme pour allumer le même segment sur tous les afficheurs mais l’un après l’autre (tempo de
500ms par exemple).
Validation prof :
c) Modifier le programme pour afficher 1, 2,3,4 de droite à gauche. Conserver la tempo. On pourra écrire
directement PORTD = 0x..avec le symbole calcul. Faire un copier/ coller de l’algorigramme.
Validation prof :
d) Que se passe-t-il lorsque vous diminuez les temporisations à 100ms ? Testez ensuite à 10ms. Que constatezvous ? Que pouvez –vous en déduire (aidez-vous du cours).
IV – Réalisation d’un compteur de 0 jusqu’à 100
Pour créer ce programme, on utilisera une autre méthode pour l’affichage car il n’est plus possible de gérer le
multiplexage et de réaliser une autre partie de programme.
Pour cela, on va utiliser le timer0 et l’interruption associée.
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
3
Programmation de
microcontrôleurs
TP TSEN EIE
Réaliser l’algorigramme du programme principal selon ces indications :
-
créer une variable compteur (qui va servir à sélectionner les afficheurs 1 par 1) , qui va de 1 à 4.
-
créer une variable num (qui va de 0 à 1000) et cette variable sera initialisée à 0 au départ
-
créer une boucle for (itérative) qui va incrémenter num toutes les secondes
-
créer des variables i0( uns char) ,i1,i2,i3 (uns short) qui sont les chiffres des unités, dizaines, centaines et
mille.
-
dans la configuration, il faut créer une interruption Timer 0 périodique de fréquence 100Hz (qui va servir
pour l’affichage multiplexé).
-
Principe pour la boucle :
Le chiffre des unités se calcule en effectuant une division de num mais il faut afficher le reste et non le
quotient
il existe un opérateur % qui s’appelle modulo.
exemples : 15%5 = 0,
21%5 = 1…….
Ecrire le petit calcul qui permet d’afficher le chiffre des unités de 0 à 9, qui sera égal à i0.
i0 = …………
De même, écrire le calcul qui permet d’obtenir les chiffres des dizaines, centaines et mille (attention, vous aurez
peut-être besoin de parenthèses).
i1 = ………..
i2 = ………..
i3 = ………..
-
Principe de l’interruption avec Timer0 :
A fréquence 100Hz, une interruption sera générée toutes les 1/100 soit 10ms. Un programme s’exécute,
celui que vous allez créer et qui va sélectionner un afficheur et écrire le chiffre num correspondant.
Procédure de sélection de
l’afficheur (unité, dizaine…)
Procédure d’écriture du
chiffre num sur l’afficheur
sélectionné
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
4
Programmation de
microcontrôleurs
-
TP TSEN EIE
Procédure de sélection de l’afficheur : sp2().
Suivez l’aide Multiprog pour créer cette procédure sp2() en mode graphique.
Etablir l’algorigramme correspondant à l’algorithme suivant :
Si compteur =1
Alors PORTA = 0x08
i=i3
Fin Si
Si compteur =2
Alors PORTA = 0x04
i=i2
Fin Si
Si compteur =3
Alors PORTA = 0x02
i=i1
Fin Si
Si compteur =4
Alors PORTA = 0x01
i=i0
Fin Si
De quel type de structure s’agit-il ?
-
Procédure d’écriture du chiffre num : sp1().
Suivez l’aide Multiprog pour créer cette procédure sp2() en mode graphique.
Etablir l’algorigramme correspondant à l’algorithme suivant :
Si
i =0
Alors
Fin Si
Si i =1
Alors
Fin Si
Si i=2
Alors
Fin Si
Si i =3
Alors
Fin Si
Si i =4
Alors
Fin Si
Si i =5
Alors
Fin Si
Si i=6
Alors
Fin Si
Si i =7
Alors
Fin Si
PORTD = 0x3F
PORTA = 0x06
PORTA = 0x5B
PORTA = 0x4F
PORTD = 0x66
PORTA = 0x6D
PORTA = 0x7D
PORTA = 0x07
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
5
Programmation de
microcontrôleurs
i =8
Alors
Fin Si
Si i =9
Alors
Fin Si
TP TSEN EIE
Si
PORTD = 0x7F
PORTA = 0x6F
Tester le programme.
Validation prof :
-
Modification de sp1() :
La création de cet algorigramme est assez long. Il est possible avec Multiprog de réaliser une procédure en
mode texte qui sera plus pratique et moins long à faire à condition de connaître un peu le langage C.
Supprimer sp1() et recréer-le en mode texte. Attention, conserver la même écriture.
Entrer ces instructions sans oublier de ;
Compiler et tester.
void sp1(void)
{
switch (i)
{
case 0: PORTD = 0x3F;
break;
case 1: PORTD = 0x06;
break;
case 2: PORTD = 0x5B;
break;
case 3: PORTD = 0x4F;
break;
case 4: PORTD = 0x66;
break;
case 5: PORTD = 0x6D;
break;
case 6: PORTD = 0X7D;
break;
case 7: PORTD = 0x07;
break;
case 8: PORTD = 0x7F;
break;
case 9: PORTD = 0x6F;
break;
}
}
-
nom de la procédure
test de la valeur de i
test de plusieurs cas
break signifie que si la valeur de i est trouvée, la procédure se
termine; les autres tests ne sont alors plus nécessaires.
Modification de sp2() :
Procéder de la même façon pour la procédure sp2(), puis tester.
Validation prof :
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
6
Programmation de
microcontrôleurs
TP TSEN EIE
V – Réalisation d’un chronomètre (minutes, secondes)
Si vous avez compris l’activité précédente, il est assez facile de modifier quelques données pour obtenir un
chronomètre.
Auparavant, le compteur allait jusqu’à 100, et comme nous avions placé une tempo de 1s, le comptage
s’effectuait en 100s.
Jusqu’à quelle valeur, num doit-elle s’incrémenter ? Que doit-il se passer lorsque num atteint cette valeur ?
Commenter ce qui doit se passer ensuite pour les minutes.
Pour le comptage des minutes, vous utiliserez une variable nommée min. Vous initialiserez les variables en tout
début de programme, juste après la configuration. Pour les tests, n’hésitez pas à diminuer la tempo.
Réaliser l’algorigramme, compiler et tester.
Validation prof :
VI – Modification du chronomètre en horloge (heure, minute)
A partir du programme précédent, quels changements pensez-vous apporter et pourquoi ?
Modifier l’algorigramme et tester.
Validation prof :
Pour régler l’heure, on propose d’utiliser un autre type d’interruption INT0 sur RB0.
Si on sélectionne front montant par exemple dans la configuration du projet, un appui sur RB0 provoquera un
front montant et lancera le programme INT0 , par exemple, l’incrémentation de la variable num.
Aidez –vous du document aide Multiprog et réalisez l’algorigramme et les tests sur le programme précédent.
Validation prof :
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
7