Vous êtes sur la page 1sur 10

TP PROGRAMMATION

INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC

TP DINITIATION AU LANGAGE C
I.

page 1 / 10

C. Algorithme
Proposer un algorithme structur traduisant lordinogramme prcdent.

TP Clignotement de RB0

A. Prsentation
L'objectif est de faire clignoter une LED la frquence de 1Hz. Pour cela, il faudra qu'elle soit
allume pendant 0,5s puis teinte pendant aussi pendant 0,5s. La LED utilise est connecte sur le bit
0 du port B.

B. Ordinogramme

DEBUT ALGORITHME
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________

Dbut

_____________________________________________________________
_____________________________________________________________

RB0 RB5 en sortie


RB6 et RB7 en entre

1=1 ?
VRAI
RB0=1

_____________________________________________________________
FAUX

_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________

Temporisation 0,5s

_____________________________________________________________
_____________________________________________________________

RB0=0

Temporisation 0,5s

_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________

Fin

_____________________________________________________________
FIN ALGORITHME

TP PROGRAMMATION

INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC


// Dfinitions des Fonctions

D. Programme en langage C
1.
a)

page 2 / 10

___________________________________________________________________

Consignes

___________________________________________________________________
___________________________________________________________________

Fonction prdfinie

Pour raliser la temporisation de 500ms, nous utiliserons une fonction prdfinie du fichier delay.h :
DelayMs(x). Pour appeler cette fonction, il suffit dutiliser la syntaxe prcdente en remplaant x par
la dure en milliseconde. La valeur de x ne doit pas excder 255.

___________________________________________________________________

Remarque : Le fichier delay.h doit tre ajout comme fichier dentte et le fichier delay.c doit tre
inclus au projet MPLAB.

___________________________________________________________________

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________

b) Fonction crer
Afin de structurer le programme, la fonction main devra appeler les fonctions suivantes :
Configuration_PORTB() qui doit fixer la direction de RB0 RB7.
Allumer_RB0() qui doit faire passer RB0 1.
Eteindre_RB0() qui doit faire passer RB0 0.
Laccs la Bank0 et Bank1 se fait automatiquement grce au fichier pic16f6x.h

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
// Fonction principales

2.

Programme en C

___________________________________________________________________
___________________________________________________________________

// Fichiers denttes
#include <pic16f6x.h>

___________________________________________________________________
// Fichier de dfinition des

___________________________________________________________________

// adresses des registres des

___________________________________________________________________

// PIC de la famille 16F6x

___________________________________________________________________

#include <pic.h>

// Fichier de fonctions prdfinies

___________________________________________________________________

#include <delay.h>

// Fichier de fonctions prdfinies

___________________________________________________________________

// pour temporisations logiciels

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________

// Directives dassemblage

___________________________________________________________________

__CONFIG(MCLRDIS & LVPDIS & PWRTEN & BORDIS & \

___________________________________________________________________

UNPROTECT & DATUNPROT & WDTDIS & XT);

E. Exprimentation
Saisir et tester votre programme sur les maquettes PIC en utilisant le projet MPLAB prvu cet effet.

TP PROGRAMMATION

II.

INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC

TP Lecture et affichage de ltat des boutons poussoirs

A. Prsentation

page 3 / 10

C. Algorithme
Proposer un algorithme structur traduisant lordinogramme prcdent.

L'objectif est de lire l'tat des boutons poussoirs connects sur le port A (RA0 RA3). L'tat de
chaque boutons sera visualis par une LED. Les LED sont connectes sur le port B. Nous utiliserons
les LED 0 3.

B. Ordinogramme

DEBUT ALGORITHME
_____________________________________________________________
_____________________________________________________________

Dbut

_____________________________________________________________
Inhiber les comparateurs
( CMCON=(00000111)2 )

_____________________________________________________________
_____________________________________________________________

RB0 RB5 en sortie


RB6 et RB7 en entre

_____________________________________________________________
_____________________________________________________________

PORTA en entre

_____________________________________________________________
_____________________________________________________________
FAUX

1=1 ?
VRAI
Lecture du
PORTA

_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________

Ne garder que RA0 RA3


(Forcer les autres 0)

_____________________________________________________________

criture du
rsultat dans le
PORTB

_____________________________________________________________

_____________________________________________________________
_____________________________________________________________
_____________________________________________________________

Fin

FIN ALGORITHME

TP PROGRAMMATION

INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC

___________________________________________________________________

D. Programme en langage C
1.
a)

page 4 / 10

___________________________________________________________________

Consignes

___________________________________________________________________
___________________________________________________________________

Fonction prdfinie

Le programme nutilisera pas de fonction prdfinie.

___________________________________________________________________
___________________________________________________________________

b) Fonction crer

___________________________________________________________________

Afin de structurer le programme, la fonction main devra appeler les fonctions suivantes :
Inhiber_comparateur() qui doit inhiber le fonctionnement des comparateur afin dutiliser
le PORTA en entre numrique.
Configuration_PORTB() qui doit fixer la direction de RB0 RB7.
Configuration_PORTA() qui doit fixer la direction de RA0 RA7.
Lecture_et_Affichage() qui doit lire ltat des quatre bits de poids faible du PORTA et
afficher le rsultat sur le PORTB. RB4 RB7 doivent tre forcs 0.

2.

#include <pic.h>

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________

Programme en C

#include <pic16f6x.h>

___________________________________________________________________

___________________________________________________________________
// Fichier de dfinition des adresses des
// registres

// Fonction principales

// des PIC de la famille 16F6x

___________________________________________________________________

// Fichier de fonctions prdfinies

___________________________________________________________________
___________________________________________________________________

// Directives dassemblage

___________________________________________________________________

__CONFIG(MCLRDIS & LVPDIS & PWRTEN & BORDIS & \

___________________________________________________________________

UNPROTECT & DATUNPROT & WDTDIS & XT);

___________________________________________________________________
___________________________________________________________________

// Dfinitions des Fonctions

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________

E. Exprimentation
Saisir et tester votre programme sur les maquettes PIC en utilisant le projet MPLAB prvu cet effet.

TP PROGRAMMATION

INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC

page 5 / 10

C. Algorithme

III. TP chenillard simple dfilement


A. Prsentation

Proposer un algorithme structur traduisant lordinogramme prcdent.

L'objectif est de raliser un chenillard qui a un seul sens de dfilement. La premire LED s'allumer
est la LED1 relie RB0. La LED2 sallume 0,5 seconde plus tard et ainsi de suite jusqu la LED6.
Ce cycle recommence ensuite indfiniment.

Remarque : Le premier test correspond une structure rptitive et le second test une structure
rptitive contrle.

DEBUT ALGORITHME

B. Ordinogramme
Dbut

_____________________________________________________________

RB0 RB5 en sortie et RB6 et RB7 en entre

_____________________________________________________________
_____________________________________________________________

FAUX
1=1?

_____________________________________________________________
_____________________________________________________________

VRAI

_____________________________________________________________

PORTB = (00000001)2

_____________________________________________________________
FAUX
PORTB.(00111111)2
0?
VRAI
Temporisation 0,5s

_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________

Dcalage gauche du PORTB

_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________

Fin

_____________________________________________________________
_____________________________________________________________

Remarque : Le deuxime test comporte un masque (ET logique) car nous ne connaissons pas la
valeur de RB6 et RB7 qui sont en entre sur nos carte PIC.

FIN ALGORITHME

TP PROGRAMMATION

INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC


// Fonction principales

D. Programme en langage C
1.
a)

page 6 / 10

___________________________________________________________________

Consignes

___________________________________________________________________
___________________________________________________________________

Fonction prdfinie

Pour raliser la temporisation de 500ms, nous utiliserons une fonction prdfinie du fichier delay.h :
DelayMs(x). Pour appeler cette fonction, il suffit dutiliser la syntaxe prcdente en remplacant x par
la dure en milliseconde. La valeur de x ne doit pas excder 255.

___________________________________________________________________

Remarque : Le fichier delay.h doit tre ajout comme fichier dentte et le fichier delay.c doit tre
inclus au projet MPLAB.

___________________________________________________________________

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________

b) Fonction crer
Afin de structurer le programme, la fonction main devra appeler les fonctions suivantes :
Configuration_PORTB() qui doit fixer la direction de RB0 RB7.

2.

___________________________________________________________________

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________

Programme en C

___________________________________________________________________
// Fichier de dfinition des adresses des

___________________________________________________________________

// registres

___________________________________________________________________

// des PIC de la famille 16F6x

___________________________________________________________________

#include <pic.h>

// Fichier de fonctions prdfinies

___________________________________________________________________

#include <delay.h>

// Fichier de fonctions prdfinies

___________________________________________________________________

// pour temporisations logiciels

___________________________________________________________________

#include <pic16f6x.h>

___________________________________________________________________
// Directives dassemblage
__CONFIG(MCLRDIS & LVPDIS & PWRTEN & BORDIS & \
UNPROTECT & DATUNPROT & WDTDIS & XT);

___________________________________________________________________

E. Exprimentation
Saisir et tester votre programme sur les maquettes PIC en utilisant le projet MPLAB prvu cet effet.

// Dfinitions des Fonctions

IV. TP chenillard deux sens de dfilement


___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________

A. Prsentation
L'objectif est de raliser un chenillard a deux sens de dfilement. La premire LED s'allumer est la
LED1 relie RB0. La LED2 sallume 0,5 seconde plus tard et ainsi de suite jusqu la LED6.
Ensuite, cest au tour de la LED5 de sallume pour revenir la LED1.

TP PROGRAMMATION

INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC

B. Algorithme

page 7 / 10

C. Ordinogramme
Proposer un ordinogramme structur traduisant lalgorithme prcdent en prenant soin de masquer
les bits RB6 et RB7 qui sont entre sur nos cartes lectroniques.

DEBUT ALGORITHME
FAIRE RB0 RB5 en sortie et RB6 RB7 en entre
TANT QUE 1=1
POUR PORTB = (00000001)2
PORTB.(00111111)2 0
et par dcalage gauche de 1
FAIRE Temporisation 0,5s
FIN POUR
POUR PORTB = (00010000)2
PORTB.(00111110)2 0
et par dcalage droite de 1
FAIRE Temporisation 0,5s
FIN POUR
FIN TANT QUE
FIN ALGORITHME

TP PROGRAMMATION

INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC


// Fonction principales

D. Programme en langage C
1.
a)

page 8 / 10

___________________________________________________________________

Consignes

___________________________________________________________________
___________________________________________________________________

Fonction prdfinie

Pour raliser la temporisation de 500ms, nous utiliserons une fonction prdfinie du fichier delay.h :
DelayMs(x). Pour appeler cette fonction, il suffit dutiliser la syntaxe prcdente en remplaant x par
la dure en milliseconde. La valeur de x ne doit pas excder 255.
Remarque : Le fichier delay.h doit tre ajout comme fichier dentte et le fichier delay.c doit tre
inclus au projet MPLAB.

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________

b) Fonction crer

___________________________________________________________________

Afin de structurer le programme, la fonction main devra appeler les fonctions suivantes :

___________________________________________________________________

Configuration_PORTB() qui doit fixer la direction de RB0 RB7.

___________________________________________________________________
___________________________________________________________________

2.

Programme en C

#include <pic16f6x.h>

___________________________________________________________________
// Fichier de dfinition des adresses des
// registres
// des PIC de la famille 16F6x

#include <pic.h>

// Fichier de fonctions prdfinies

#include <delay.h>

// Fichier de fonctions prdfinies


// pour temporisations logiciels

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________

E. Exprimentation
Saisir et tester votre programme sur les maquettes PIC en utilisant le projet MPLAB prvu cet effet.

// Directives dassemblage

__CONFIG(MCLRDIS & LVPDIS & PWRTEN & BORDIS & \

Que ce passe-t-il si la condition du dernier teste est PORTB.(00111111)2 0 ? Modifier


votre programme et commenter le rsultat obtenu.

UNPROTECT & DATUNPROT & WDTDIS & XT);


___________________________________________________________________
// Dfinitions des Fonctions
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________

___________________________________________________________________

V.

TP lecture de ltat des boutons poussoirs et clignotement de la LED5

A. Prsentation
L'objectif est dafficher sur LED1 LED4 (RB0 RB3) l'tat des boutons poussoirs SW1 SW4
(RA0 RA3) tout en faisant clignoter 1Hz la LED5 (RB4).

TP PROGRAMMATION

INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC

B. Algorithme

C. Ordinogramme

DEBUT ALGORITHME
FAIRE Inhiber les comparateurs
FAIRE RB0 RB5 en sortie et RB6 RB7 en entre
FAIRE PORTA en entre
FAIRE PORTB = 0
TANT QUE 1 = 1
FAIRE RB4 = /RB4
FAIRE i = 0
FAIRE
FAIRE RB0=RA0 RB1=RA1 RB2=RA2 RB3=RA3
FAIRE i = i +1
FAIRE Temporisation 250ms
TANT QUE i < 2
FIN TANT QUE
FIN ALGORITHME

Proposer un ordinogramme structur traduisant lalgorithme prcdent.

page 9 / 10

TP PROGRAMMATION

INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC

___________________________________________________________________

D. Programme en langage C
1.

___________________________________________________________________

Consignes

___________________________________________________________________

Afin de structurer le programme, la fonction main devra appeler les fonctions suivantes :
Inhiber_comparateur(), Configuration_PORTB(), Configuration_PORTA()
DelayMs(x) identiques celles utilise prcdemment.

___________________________________________________________________
et

char Lecture_Poids_Faible(char a) qui doit lire ltat des quatre bits de poids faible du
PORTA et les afficher sur les quatre bits de poids faible du PORTB. Elle doit galement incrmenter
la variable passe en paramtre et retourner cette valeur.

2.

page 10 / 10

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________

Programme en C

___________________________________________________________________

#include <pic16f6x.h>

// Fichier de dfinition des registres

// Fonction principales

#include <pic.h>

// Fichier de fonctions prdfinies

___________________________________________________________________

#include <delay.h>

// Fonctions prdfinies de temporisation

___________________________________________________________________

// Directives dassemblage

___________________________________________________________________

__CONFIG(MCLRDIS & LVPDIS & PWRTEN & BORDIS & \

___________________________________________________________________

UNPROTECT & DATUNPROT & WDTDIS & XT);

___________________________________________________________________
___________________________________________________________________

// Dfinitions des Fonctions

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________
___________________________________________________________________

E. Exprimentation
Saisir et tester votre programme sur les maquettes PIC en utilisant le projet MPLAB prvu cet effet.