Vous êtes sur la page 1sur 11

NOM : classe :

TP Initiation langage C avec un microcontrôleur PIC

Activités (surlignée) Acquis En cours d’acquisition Non- acquis


(aide du professeur)
Préparation A1-1 Préparer, intégrer et assembler le
matériel
A1-2 Paramétrage logiciel
A1-3 Tester et valider
Installation A2-1 Participer à la préparation sur site
A2-2 Mettre en place, raccorder, tester et
valider les supports de transmission
A2-3 Mettre en place les équipements, les
logiciels, configurer, paramétrer, tester
et valider
Maintenance A3-1 Effectuer la maintenance préventive
A3-2 Effectuer la maintenance corrective
Organisation A4-1 Réaliser la prise en charge du matériel
A4-2 S’informer et se documenter
A4-3 Participer à la relation clientèle
A4-4 Respecter les obligations légales et
réglementaires
A4-5 Participer à la gestion de son activité
Autonomie de l’élève
Signature de l’enseignant

Matériels :

Une carte PICdem2+ avec ICD2 (+ adaptateur 9VDC et cordons )

Un PC avec les logiciels PCWH ( Compilateur C pour PICs de CCS) et MPLAB De Microchip

Documentations (Algorigramme - Initiation au langage C ) + diaporama

Prise en compte et
restitution du matériel.

Signature :

BAC Pro SEN - LPR Mendes France 05400 Veynes


NOM : Classe :

Initiation au micro contrôleur PIC18Fxx2

INTRODUCTION

Le PIC18F242 (ou PIC18F452) est le micro contrôleur retenu comme support


d'apprentissage de la logique micro programmée. Il pourra être utilisé pour réaliser les
fonctions Traitement de l'information souvent présentent dans les systèmes techniques
étudiés. Il sera alors chargé d'exploiter les informations d'entrée (bouton poussoir, capteur,
clavier,…) de manière à commander les parties opératives ( LED, buzzer, affichage,
commande de moteur, électrovanne,…).

Un microcontrôleur est un circuit intégré comprenant un microprocesseur , de la


mémoire (mémoire vive RAM et mémoire morte ROM) , une (ou plusieurs) interface de
communication permettant les échanges avec les périphériques.

Informations Traitement de Parties


d'entrée des informations Opératives
(Boutons poussoirs,
Clavier, (micro contrôleur (commande de moteur,
Capteurs, …). PIC18F242) LED, buzzer, ….)

1) FONCTIONNEMENT DU MICRO-CONTROLEUR.

Le microcontrôleur fonctionne à l'aide d'un programme réalisant le traitement de


l'information et d'interfaces de communication avec l'extérieur matérialisées par les ports
d'entrée/sortie.
Générateur de
fréquence

PIC18F242

Traitement de Interface de PORTA


l'information communication
PORTB
(programme) (Ports d'Entrée/Sortie)
PORTC

Démarrage du
programme

LP Veynes Bac pro SEN Initiation au microcontrôleur Page 2


NOM : Classe :

Les ports E/S possèdent jusqu'à 8 bits rattachés chacun à une broche du boîtier et pouvant
être configurés individuellement soit en entrée soit en sortie, par programme.
Le programme ne peut réaliser qu'une seule instruction (commande) à la fois. On parle de
logique séquentielle.
Les instructions sont réalisées au rythme de l'oscillateur (une instruction toutes les 4
périodes de l'oscillateur).
Le microcontrôleur se place en début de programme à chaque impulsion (à l'état bas) sur
la broche MCLR (en général à la mise sous tension ou lors de l'appui sur le bouton
RESET).

Symbole et implantation du PIC18F242:

Vss br 8 et br 19 (Masse )
Vdd br 20 (+5V DC)

2) CARACTERISTIQUES TECHNIQUE DU PIC18F242


(Le bus de données étant sur 8 bits, ce microcontrôleur est un µC 8 bits))

Mémoire programme : 8 kmot (un mot est constitué de deux octets).


Le PIC18F242 possèdent une mémoire programme de 8 kmot, ce qui lui permet
d'enregistrer 8 *1024= 8192 instructions. C'est une mémoire de type ROM FLASH : on
peut effacer ou programmer électriquement la mémoire programme et le programme est
conservé après une mise hors tension.

Mémoire des variables : 768 octets


Cette mémoire est utilisée lors de l'exploitation des informations d'E/S (calculs et résultats
intermédiaires). Elle est de type RAM, c'est à dire que son contenu est perdu après une
mise hors tension.

Fréquence maximale de l'oscillateur : 40 MHz

LP Veynes Bac pro SEN Initiation au microcontrôleur Page 3


NOM : Classe :

La fréquence de l'oscillateur peut aller jusqu'à 40 MHz, soit une instruction toutes les
100ns.
Trois ports d'E/S
Chaque bit des ports est rattaché à une broche du boîtier et peut être configurer en entrée
ou en sortie. En outre ils sont tous configurables pour une application plus spécifique
(Conversion Analogique Numérique pour le PORTA, transmission série pour le PORTC,
PWM et capture d'impulsions pour le PORTB, …).

Dispose de 70 instructions pour l'écriture des programmes.

3) PROGRAMMATION DU MICRO-CONTROLEUR.

La programmation du microcontrôleur se fait en langage machine. Ce langage étant peu


compréhensible, le programmeur écrit le programme dans un fichier source en langage
évolué : assembleur, langage C, basic, etc.

Dans notre cas l’écriture du programme du PIC se fait en langage C avec le


compilateur PCWH de CCS . La compilation génère le code machine qui sera transféré dans
la mémoire du microcontrôleur avec l'outil de développement MPLAB IDE de MicroChip.

La mise au point du programme permet d'observer le déroulement du programme. Elle


peut se faire :
-soit en simulation (l’ordinateur simule le comportement du microcontrôleur )
-soit en débogage (debugger) auquel cas le programme est transféré dans le
microcontrôleur cible à l’aide du module ICD2. Il est connecté d'une part à l'ordinateur par la
liaison USB et d'autre part à la carte cible (microcontrôleur) par un connecteur RJ11
spécifique.

Le module ICD2 permet également de programmer le micro-contrôleur pour un


fonctionnement autonome de la carte cible (on supprime alors la liaison avec l’ordinateur).

Module ICD2 Carte cible

Liaison avec Liaison avec la carte


l’ordinateur (câble cible (câble spécifique,
USB). connecteur RJ11)

LP Veynes Bac pro SEN Initiation au microcontrôleur Page 4


NOM : Classe :

4) PREMIERS PROGRAMMES AVEC LA CARTE PICDEM2+

4-1) programme 1

On souhaite réaliser un programme qui allume les quatre DEL connectées sur les ports RB0 à
RB3 lorsque l'on appuie sur un bouton poussoir connecté sur RA4.

Montage simplifié de l'application :

Flécher le sens de l’information pour les leds


repérées D1 à D4 et le bouton poussoir SW1
En déduire l’état logique obtenu en RA4 si SW1 est
appuyé.

Repérer le quartz et donner sa fréquence d’oscillation.


Matériel à utiliser :

• Carte PICDEM 2 + (vérifier la mise en place du cavalier J9 pour valider le


buzzer et du cavalier J6 pour valider les 4 leds )
• Adaptateur +9VDC pour alimenter la carte cible
• Carte ICD2
• Cordons (1 USB + cordon de liaison entre carte ICD2 et carte cible)
• 1 PC
• Logiciels : PCWH de CCS et MPLAB de Microchip

La carte ICD2 est auto-alimentée via le cordon USB par l’ordinateur. Ne pas
brancher le cordon adaptateur +9VDC à cette carte.

LP Veynes Bac pro SEN Initiation au microcontrôleur Page 5


NOM : Classe :

L'organisation du programme (algorigramme) est la suivante :

Pic 18F452 à 4MHz

oui non Test bouton poussoir


RA4 RA4 = 0 →BP appuyé
= 0?
Boucle sans fin

Les commentaires :

Les commentaires sont nécessaires à la compréhension du fichier source. Ils font le


lien entre l’algorigramme et le listing du fichier source. Ils sont introduits par le caractère // .
Les mots situés après le caractère // ne sont pas interprétés par le compilateur.

ALGORITHME :
Début algorithme
Faire RB3 à RB0 en sortie , RA4 en entrée
Tant que 1=1 (boucle sans fin)
Si RA4 = 0
Alors
Faire RB0 à RB3 =1
Sinon
Faire RB0 à RB3 = 0
Fin Si
Fin tant que
Fin algorithme

Travail demandé :
A partir du fonctionnement souhaité et de l’algorigramme, compléter le listing du
programme source fourni ci-dessous (parties encadrées).
Retrouver sur le programme les différentes étapes de l’algorigramme (prendre 5
couleurs différentes

LP Veynes Bac pro SEN Initiation au microcontrôleur Page 6


NOM : Classe :

Instruction à utiliser :

If …….else…. (voir le document initiation au langage C)

Fonctions à utiliser : set_tris_x(valeur) , output_x , input_x (voir l’aide du logiciel PIC C)

A partir du diaporama :

Editer , compiler ce programme avec le compilateur C de CCS. (imprimer votre listing


avec en entête votre nom (en commentaire))
Programmer le PIC 18F242 (ou PIC 18F452) avec MPLAB (voir le diaporama pour la
procédure) .
Vérifier le fonctionnement du programme.
Signature du professeur :

Listing du programme

void main() // programme principal


{

setup_adc_ports(NO_ANALOGS); // fonctions insérées par le « Wizard » de PCWH


setup_adc(ADC_OFF); // pour initialiser le µC PIC 18Fxx2 à 4Mhz
setup_spi(FALSE); // et paramétrer les ports
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);

set_tris_a(0b ); // à compléter PORT A en entrée (0b= valeur en binaire)


set_tris_b(0b ); // à compléter PORT B en sortie

//RB0 à Rb3 à 0 leds éteintes

while (TRUE) //permet de créer une boucle sans fin ( ou while(1) )


{
if ( !input(PIN_A4) ) // ou if ( input(PIN_A4) = = 0)
{
//RB0 à RB3 à 1

else
{
// RB0 à RB4 à 0

} }

LP Veynes Bac pro SEN Initiation au microcontrôleur Page 7


NOM : Classe :

4-2) programme 2

Cahier des charges : 4 leds clignotent pendant 200ms si le bouton poussoir RA4 est appuyé,
sinon elles sont éteintes.

ALGORIGRAMME

PIC 18F452 à 4MHz

ALGORITHME :
Début algorithme
Faire RB0 à RB3 en sortie , RA4 en entrée
Faire RB0 à RB3 à 0
Tant que 1=1
Tant que RA4 = 0
Faire
RB0 à RB3 = 1
Temprisation 0.2s
RB0 à RB3 = 0
Temporisation 0.2s
Fin tant que
Fin tant que
Fin algorithme

Travail demandé :

LP Veynes Bac pro SEN Initiation au microcontrôleur Page 8


NOM : Classe :

A partir du fonctionnement souhaité, faire le programme source (imprimer le listing avec


votre nom en entête). Tester ce programme.

Instructions : while (voir document initiation au langage C)


Fonctions : set_tris_x(valeur) ; output ; input ; delay (voir l’aide du logiciel PIC C)

4.3) TP chenillard simple défilement


A. Présentation
Cahier des charges : réaliser un chenillard qui a un seul sens de défilement. La première LED
à s'allumer est la LED1 reliée à RB0. La LED2 s’allume 0,5 seconde plus tard et ainsi de suite
jusqu’à la LED4. Ce cycle recommence ensuite indéfiniment tant que le bouton poussoir RA4
est appuyé (sinon les leds sont éteintes).
B. Algorigramme
Initialisation du PIC
18F452 (à 4Mhz)
RA4 en entrée
RB0 à RB3 en sorties
Déclaration d’une variable
entière « valeur » sur 8 bits

(PORT B) = 0

Boucle répéter… tant que


oui
RA4 =1 ?

non

valeur = 0000 0001

B
O
U non
Valeur
C <=
L 0000 1000
E ?

F oui
O
R Décalage à gauche de 1
décalage de n bits à gauche ( << ) :
bit de la variable valeur
x = y << n

(PORTB) = valeur

Temporisation de 0.5s

LP Veynes Bac pro SEN Initiation au microcontrôleur Page 9


NOM : Classe :

C. Algorithme

DEBUT ALGORITHME

FAIRE RB0 à RB3 en sortie et RA4 en entrée


Déclarer la variable « valeur » (entier sur 8 bits)
TANT QUE 1=1 (boucle sans fin)
Répéter
PORTB=0
Tant que RA4 = 1 (test BP si relâché )

POUR valeur = (00000001) 2 valeur initiale


à valeur <= 0000 1000 condition
et par décalage à gauche de 1 modification
FAIRE (PORTB) = valeur
FAIRE Temporisation 0,5s

FIN POUR

FIN TANT QUE

FIN ALGORITHME

Aide : utiliser la condition do … while et la boucle For… (voir document initiation au langage C)

Travail à faire :
Faire le programme de cet ordinogramme (ajouter votre nom en commentaire) et le tester.

Signature du professeur :

Imprimer ce programme et encadrer sur celui-ci, les différentes étapes de l’algorigramme.

4.4) TP chenillard à deux sens de défilement


A. Présentation

Cahier des charges : réaliser un chenillard à deux sens de défilement. La première LED à s'allumer
est la LED1 reliée à RB0. La LED2 s’allume 0,5 seconde plus tard et ainsi de suite jusqu’à la LED4.
Ensuite, c’est au tour de la LED3 de s’allumer pour revenir à la LED1. (la condition , pour que le
chenillard démarre , est que le bouton poussoir RA4 soit appuyé sinon les leds sont éteintes.)

Travail à faire :

Faire l’algorigramme, l’algorithme et le programme de ce cahier des charges.

Aide : utiliser le décalage logique à gauche puis le décalage logique à droite avec des boucles for

Tester votre programme et le faire vérifier à votre professeur.

Signature du professeur :

Imprimer ce programme et encadrer sur celui-ci, les différentes étapes de l’algorigramme.

LP Veynes Bac pro SEN Initiation au microcontrôleur Page 10


VCC LCD1 VCC
LM032L

R15 R21 R22 R23 R24 LS1


470 470 470 470 470
SOUNDER

VDD
VSS

VEE
R4

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
470

1
2
3

4
5
6

7
8
9
D1 D2 D3 D4 D5

10
11
12
13
14
LED-GREEN LED-RED LED-RED LED-RED LED-RED

VEE
VCC
GND
R5 Q1
J6 2N2222
JUMPER 2k2

J9

JUMPER
VCC = 5V

VCC
X1

Quartz 4MHz
R2
4k7 J7 U1
RV1 13 15
JUMPER OSC1/CLKI RC0/T1OSO/T1CKI
1 16
MCLR/Vpp RC1/T1OSI/CCP2A
17
RC2/CCP1
2 18
50%

RA0/AN0 RC3/SCK/SCL
3 23
RA1/AN1 RC4/SDI/SDA
4 24
RA4 5
RA2/AN2/VREF- RC5/SDO
25
RA3/AN3/VREF+ RC6/TX/CK
5k 6 26
RA4/T0CKI RC7/RX/DT
7
RA5/AN4/SS/LVDIN
14 19
RA6/OSC2/CLKO RD0/PSP0
20
RB2 RD1/PSP1
RB0 33 21
RB0/INT0 RD2/PSP2
34 22
RB1/INT1 RD3/PSP3
35 27
RB1 RB2/INT2 RD4/PSP4
36 28
RB3/CCP2B RD5/PSP5
37 29
RB3 RB4 RD6/PSP6
38 30
RB5/PGM RD7/PSP7
39
RB6/PGC
40 8
RB7/PGD RE0/RD/AN5
9
RE1/WR/AN6
10
RE2/CS/AN7

PIC18F452

PICDEM2+ with PIC18F452

Vous aimerez peut-être aussi