Vous êtes sur la page 1sur 4

TP Dure : 3 heures

TSTI2 anne 2011/2012

Programmation en C TP n2 : Le chronomtre

Prrequis :
- algorithme, algorigramme - notions de programmation en langage C

Objectifs :
C : traitement programm de l'information : structures algorithmiques de base (linaire, alternative, itrative) ; lment de programmation Comptence F3 : utiliser un systme informatique d'aide au dveloppement

SECTION STI

ELECTRONIQUE

L'affichage multiplex
Notre chronomtre est un systme lmentaire deux afficheurs, le premier pour les secondes, le second pour les 1/10 de secondes. Schma de la carte

Implantation de la carte

LE CHRONOMTRE

{\TP progC_chronomtre.odt} - page 2/4

Afin de limiter le nombre dentressorties au niveau du microcontrleur, on ralise un affichage multiplex . On va envoyer le code sur tous les afficheurs ( deux dans notre cas, mais nous verrons des cas o il y en a davantage ) et slectionner laide de signaux logiques lafficheur qui doit afficher le code. 1. A laide de la documentation technique des afficheurs MAN74, donner le type de lafficheur ( anodes ou cathodes communes ). Quel niveau logique faut-il mettre sur la broche 4 de l'afficheur pour l'allumer ? Quel niveau logique en RA0 ou RA1 permet dallumer un segment ? 2. Remplir le tableau ci-dessous : RA0 0 0 1 indiquer dans le tableau : RA1 0 1 0 Bloqu ou Satur pour les transistors Allum ou teint pour les afficheurs Q1 Q2 aff D1 aff D2

Dterminer les codes de laffichage


Le but est de trouver les codes envoyer sur le PORTB du PIC pour d'allumer les chiffres sur un afficheur. 3. Copier le dossier \TP\prog_c\TP2 - chronomtre\chrono_mplab_eleve sous votre lecteur v:\. Ouvrir le projet chrono_mplab . Ouvrir le fichier source chiffre_eleve.c . Complter le sous-programme init() qui dclare les ports A et B en sortie. 4. Ce fichier envoie sur le PORTB le code du chiffre 0 qui est $3F (voir dtail ci-dessous). Compiler, assembler le fichier source. Connecter le programmateur ICD2 au PC puis la carte chronomtre au programmateur. N'oubliez pas d'alimenter cette carte sous +9V. Tlcharger le programme dans le microcontrleur. Tester et faire valider par le professeur. 5. Complter ci-dessous le tableau donnant les codes de chaque chiffre. Tester chaque chiffre sur la carte en modifiant votre programme. 6. Modifier le programme afin d'allumer lautre afficheur. Expliquer vos modifications. 27 anode code afficheur X X 26 g 0 25 f 24 e 23 d 1 22 c 1 21 b 1 20 a 1

1 1 Chiffre 0 5

0 $3F

Dfilement des secondes et 1/10 de seconde


7. Sauvegarder le programme prcdent sous seconde.c. Modifier ce programme afin de faire dfiler l'infini les secondes sur l'afficheur de gauche. Tester et faire vrifier par le professeur. Temporisation de 1s : delay_ms(1000); 8. Modifier ce programme pour afficher les diximes de seconde sur l'afficheur de droite. Faire vrifier par le professeur.

LE CHRONOMTRE

{\TP progC_chronomtre.odt} - page 3/4

Votre programme a une structure trs lourde, on rpte souvent la mme chose. Il faut trouver une autre manire de l'crire de manire plus compacte. Vous allez ranger les codes dans une table et aller les chercher en fonction d'un indice. Par exemple : code_afficheur n0 = $3F. C'est la notion de tableau. On dclare en dbut de programme un tableau de valeurs. Ex : unsigned char static const tab[10]={0x3F,.......,0xF4}; Il faut spcifier le type du tableau : ici c'est un tableau de constantes de type caractres non signs. Le nom tab est le nom du tableau. Vous utiliserez chiffre comme nom de tableau par exemple.. Ensuite, nous appellerons la donne par tab[i]. Comme vous connaissez le nombre de rptition de votre itration, vous utiliserez une boucle for.

9. Modifier votre programme afin dutiliser un tableau. Tester et faire vrifier par le professeur.

Le chronomtre
10. Ouvrir le programme chrono_eleve.c. Compiler et tlcharger ce programme dans la maquette. Vrifiez le fonctionnement du chronomtre.

Gestion de l'arrt : on demande de modifier ce programme afin que le chronomtre reparte zro lorsqu'on appuie sur RAZ. Il faut reconfigurer le PORTA avec RA2 dclare cette fois en entre. Il faut lire priodiquement cette entre et mettre i et j 0 si celle-ci est 1.

11. Modifier le programme. Tester et faire vrifier par le professeur.

LE CHRONOMTRE

{\TP progC_chronomtre.odt} - page 4/4

Vous aimerez peut-être aussi