Vous êtes sur la page 1sur 11

Institut supérieure des études technologique de JENDOUBA

Travaux pratiques

Programmation des microcontrôleurs

PIC16F877

Année universitaire 23/24

1
TP1

Exercice1 :

On veut faire clignoter une diode led sur le port A pin A0 du microcontrôleur 16F877
pendant une seconde.

Réaliser le montage suivant sur PROTEUS (ISIS).

Figure 1.

Suivez les étapes suivantes pour créer et compiler le programme.

- Ouvrir PIC C compiler

- Choisir Project wizard dans l’onglet file et puis new.

- Enregistrer le fichier avec le nom clign_led dans un dossier spécifique a votre


travail.

- Dans l’onglet Device

o Choisir dans l’item Family : PIC16.

o Choisir dans l’item Device : PIC16F877.

- Dans l’onglet Clock :

o L’item Oscillator Type : Crystal.

o Dans l’item Crystal Clock Speed : 20000000Hz.

1
- Ensuite taper sur le bouton create project

- Le code suivant apparait

#include <clign_led.h>

void main()

While(TRUE)

//TODO : user code

- Remplisser le code suivant

#include <test.h>

#byte PORTA = 6

#use delay (clock=20000000)

#define LED PIN_A0

void main()

set_tris_a(0x00);

while(TRUE)

output_high(LED);

delay_ms(1000);

output_low(LED);

delay_ms(1000);

//TODO: User Code

1
- Appuier sur l’onget compile puis sur le bouton Build et vérifier qu’il n’y a pas
d’erreur.

- Aller vers le schéma dans ISIS et double click sur le µcontrôleur.

- Aller vers l’item Processor clock frequency et la changer a 20MHz.

- Dans l’item Program File cliquer sur l’icône du dossier.

- Aller vers le dossier ou vous avez enregistrer le programme C. et choisir cliign_led


de type HEX File et cliquer en dessus.

- Ensuite appuier sur le bouton run dans ISIS.

- Commenter le programme précédant.

Exercice 2 :

1- Dans le même contexte réaliser un circuit qui permet d’allumer une led parmis 8
durant 0.5 seconde.

2- Ecrire le programme nécécaire.

3- Vérifier le montage.

Figure 2.

1
TP2

Exercice 1 :

1- Réaliser le montage suivant :

Figure 3

2- Ecrire le programme suivant :

#include <bouton.h>

#byte PORTA=6

#byte portb=8

void main()

set_tris_a(0x00) ;

set_tris_b(0b00000000) ;

while(true)

if(bit_test(portb,0)==1)

porta = !PORTA ;

1
3- Commenter le résultat.

Exercice 2 :

1- Conserver le montage de l’exercice 1.

2- Ecrire et compiler le programme suivant :

#include <interuption_RB0.h>

#byte PORTA = 5

#byte PORTB = 6

#use delay (clock = 20000000)

void cligne(void)

PORTA = !PORTA;

#int_ext

void rb_ext(void)

cligne();

void main(void)

set_tris_a(0x00);

ext_int_edge(H_TO_L);

enable_interrupts(INT_EXT);

enable_interrupts(GLOBAL);

while(TRUE)

1
Exercice 3 :

En utilisant un afficheur 7 segment, écrire un programme qui incrémente l’afficheur


par interruption a chaque appuie sur le bouton RB0 /INT.

Figue 4.

1
TP3

Exercice 1 :

1- Réaliser le montage suivant :

Figure5

2- Ecrire, compiler et télé verser le code hexadécimal suivant dans schéma précédent.

1
#include <afficheur lcd.h>

// Interfacing PIC16F877A with LCD display

// http://ccspicc.blogspot.com/

// electronnote@gmail.com

//LCD module connections

#define LCD_RS_PIN PIN_C0

#define LCD_RW_PIN PIN_C1

#define LCD_ENABLE_PIN PIN_C2

#define LCD_DATA4 PIN_C3

#define LCD_DATA5 PIN_C4

#define LCD_DATA6 PIN_C5

#define LCD_DATA7 PIN_C6

//End LCD module connections

#use delay(clock=8000000)

#include <lcd.c>

char i;

void main()

lcd_init(); // Initialize LCD module

while(TRUE)

lcd_putc('\f'); // LCD clear

lcd_gotoxy(4, 1); // Go to column 4 row 1

1
lcd_putc("PIC16F877A");

lcd_gotoxy(4, 2); // Go to column 4 row 2

lcd_putc("LCD example");

delay_ms(5000);

lcd_putc('\f'); // LCD clear

lcd_gotoxy(3, 1); // Go to column 3 row 1

lcd_putc("Hello world!");

lcd_gotoxy(2, 2); // Go to column 2 row 2

lcd_putc("Have a nice day");

delay_ms(5000);

lcd_putc('\f'); // LCD clear

lcd_gotoxy(3, 1); // Go to column 3 row 1

lcd_putc("Hello world!");

for(i = 0; i < 200; i++){

lcd_gotoxy(7, 2); // Go to column 7 row 2

printf(lcd_putc,"%3u",i); // Write i with 3 numbers max

delay_ms(100);}

3- Commenter chaque ligne du programme.

Exercice 2 :

Ecrire un programme qui affiche sue l’écran LCD, « vous avez appuier » sur la
première ligne et sur la deuxième ligne le nombre de fois d’appuis sur l’interruption INT.

1
TP4

Problème :écrire un programme en se référant au note de cours sur l’interruption RB4-RB7,


et sur le TP précédant qui permet de gérer une serrure électrique, telque on tappant sur le code
correcte la gâchette s’amorce, si non afficher code invalide.

Vous aimerez peut-être aussi