Projet à microcontrôleur PIC 18F2550

Circuit de test : clignotant à LED

 

 

Ce circuit fait clignoter deux leds.

Vous me direz qu'il est superflu d'utiliser un microcontrôleur pour réaliser cette tâche.

Je vous répondrai que je suis d'accord : un multivibrateur à NE555 est bien suffisant.

Mais la simplicité du montage devrait intéresser les débutants.

On pourra aussi se servir de ce montage comme circuit de test, pour mettre en évidence la défaillance du microcontrôleur.

 

Schéma électrique (réalisé avec ISIS-Proteus) avec un PIC 18F2550 (28 broches) :

On veillera à utiliser les deux masses (broches 8 et 19) et l'alimentation (broche 20).

 

 

J'utilise le compilateur C18 de Microchip (une version de démonstration est téléchargeable gratuitement).

 

#include <p18f2550.h>

#pragma config WDT = OFF // watchdog timer OFF

#pragma config PWRT = ON // power-up timer ON

#pragma config BOR = ON // brown-out detect ON

#pragma config FOSC = HS // oscillator HS (quartz 4 MHz)

#pragma config PBADEN = OFF // PORTB<4:0> pins are configured as digital I/O on Reset

#pragma config LVP = OFF // low voltage programming OFF

 

void temporisation (int max)

{

// boucle de temporisation

int i ;

for (i = 0 ; i < max ; i++) ;

}

void main (void)

{

// Initialisation

TRISB = 0x00 ; // Configuration en sortie des broches RB0 à RB7 du port B

PORTB = 0xFF ; // On éteint les LEDs

while (1)

{

// On éteint la LED 0

PORTBbits.RB0 = 1 ; // RB0 = 1

// On éteint la LED 1

PORTBbits.RB1 = 1 ; // RB1 = 1

// Temporisation

temporisation (7500) ;

// On allume la LED 0

PORTBbits.RB0 = 0 ; // RB0 = 0

// Temporisation

temporisation (7500) ;

// On éteint la LED 0

PORTBbits.RB0 = 1 ; // RB0 = 1

// On allume la LED 1

PORTBbits.RB1 = 0 ; // RB1 = 0

// Temporisation

temporisation (7500) ;

// On allume la LED 0

PORTBbits.RB0 = 0 ; // RB0 = 0

// Temporisation

temporisation (7500) ;

}

}

 

 

Proteus est une suite logicielle de CAO électronique éditée par la société Labcenter Electronics.

ISIS est la composante de Proteus qui permet la création de schémas et la simulation électrique.

La grande force de ISIS est de pouvoir simuler le comportement d'un microcontrôleur (PIC, Atmel, 8051, ARM, HC11...) et de son interaction avec les composants qui l'entourent :

Par simulation, la LED 0 clignote à 2,56 Hz, et la LED 1 à 1,28 Hz.

Cela est parfaitement en accord avec la pratique.

 

 

(C) Fabrice Sincère ; Révision 1.0.4