Académique Documents
Professionnel Documents
Culture Documents
I. Objectif du TP
La fiche de TP décrite ci-dessous a pour but de permettre à l'utilisateur, d'établir le schéma d'une application et la
simuler par le logiciel ISIS ensuite de programmer en C le PIC16F84A utilisant un quartz de 4 MHz.
Dans cette application, voir le schéma ci-dessous, nous allons programmer et simuler la commande de 4 Leds,
par l'interrupteur SW du Port A. Les 4 Leds D1, D2, D3 et D4 sont reliées au Port B.
* Si le switch SW, relié à RA2, est Ouvert (RA2=1) alors les 4 Leds du PORTB clignotent toutes les 500 ms.
* Sinon (SW Fermé : RA2=0) alors les 4 Leds s'allument une après l'autre selon le cycle suivant :
- D1 s'allume pendant 400 ms puis s'éteint, ensuite
- D2 s'allume pendant 800ms puis s'éteint, ensuite
- D3 s'allume pendant 1200ms puis s'éteint, ensuite
- D4 s'allume pendant 1600ms puis s'éteint, ensuite le cycle reboucle indéfiniment.
1
IV. Squelette du programme en C associé à cette application
/ TP_LED.c sous MikroC PRO for PIC ************************************************************
Commande de LED
==============
L'interrupteur SW (RA2) commande les 4 Leds du Port B
Si SW est Ouvert (RA2=1) alors les 4 Leds du PORTB clignotent toutes les 500 ms.
Sinon (SW Fermé : RA2=0) alors les 4 Leds s'allument une après l'autre selon le cycle :
D1 s'allume pendant 400ms puis s'éteint.
D2 s'allume pendant 800ms puis s'éteint.
D3 s'allume pendant 1200ms puis s'éteint.
D4 s'allume pendant 1600ms puis s'éteint.
PIC16F84A, Oscillateur : XT, 4 Mhz
*******************************************************************************************/
void main()
{
……………………………………… // RA2 en entrée les autres en sorties
……………………………………… // PORTB en sortie
……………………………………… // LED éteintes
while(1) // Boucle sans fin
{
if (PORTA.F2 == 1) // Si RA2 = 1 (SW Ouvert) ==> Faire clignoter les 4 Led
{
……………………………………… // Allume les 4 Led
……………………………………… // Temporisation
……………………………………… // Eteindre les Led
……………………………………… // Temporisation
}
else // Sinon (RA2=0: SW Fermé) ==> Allume D1, D2, D3 et D4 selon le cycle donné
{
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
}
}
}