Académique Documents
Professionnel Documents
Culture Documents
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
_____________________________________________________________
_____________________________________________________________
1=1 ?
VRAI
RB0=1
_____________________________________________________________
FAUX
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
Temporisation 0,5s
_____________________________________________________________
_____________________________________________________________
RB0=0
Temporisation 0,5s
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
Fin
_____________________________________________________________
FIN ALGORITHME
TP PROGRAMMATION
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
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
#include <pic.h>
___________________________________________________________________
#include <delay.h>
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
// Directives dassemblage
___________________________________________________________________
___________________________________________________________________
E. Exprimentation
Saisir et tester votre programme sur les maquettes PIC en utilisant le projet MPLAB prvu cet effet.
TP PROGRAMMATION
II.
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 )
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
PORTA en entre
_____________________________________________________________
_____________________________________________________________
FAUX
1=1 ?
VRAI
Lecture du
PORTA
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
criture du
rsultat dans le
PORTB
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
Fin
FIN ALGORITHME
TP PROGRAMMATION
___________________________________________________________________
D. Programme en langage C
1.
a)
page 4 / 10
___________________________________________________________________
Consignes
___________________________________________________________________
___________________________________________________________________
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
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
// Directives dassemblage
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
E. Exprimentation
Saisir et tester votre programme sur les maquettes PIC en utilisant le projet MPLAB prvu cet effet.
TP PROGRAMMATION
page 5 / 10
C. Algorithme
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
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
FAUX
1=1?
_____________________________________________________________
_____________________________________________________________
VRAI
_____________________________________________________________
PORTB = (00000001)2
_____________________________________________________________
FAUX
PORTB.(00111111)2
0?
VRAI
Temporisation 0,5s
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
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
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
___________________________________________________________________
___________________________________________________________________
#include <pic.h>
___________________________________________________________________
#include <delay.h>
___________________________________________________________________
___________________________________________________________________
#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.
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
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
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 :
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
2.
Programme en C
#include <pic16f6x.h>
___________________________________________________________________
// Fichier de dfinition des adresses des
// registres
// des PIC de la famille 16F6x
#include <pic.h>
#include <delay.h>
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
E. Exprimentation
Saisir et tester votre programme sur les maquettes PIC en utilisant le projet MPLAB prvu cet effet.
// Directives dassemblage
___________________________________________________________________
V.
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
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
page 9 / 10
TP PROGRAMMATION
___________________________________________________________________
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>
// Fonction principales
#include <pic.h>
___________________________________________________________________
#include <delay.h>
___________________________________________________________________
// Directives dassemblage
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
E. Exprimentation
Saisir et tester votre programme sur les maquettes PIC en utilisant le projet MPLAB prvu cet effet.