You are on page 1of 11

NOM : classe :

BAC Pro SEN - LPR Mendes France 05400 Veynes




TP Initiation langage C avec un microcontrleur PIC

Matriels :
Une carte PICdem2+ avec ICD2 ! ada"tate#r $V%C et cordons &
Un PC a'ec les lo()c)els PC*+ Co,")late#r C "o#r P-Cs de CCS& et MPLAB %e M)croc.)"
%oc#,entat)ons Al(or)(ra,,e - -n)t)at)on a# lan(a(e C & ! d)a"ora,a







Activits (surligne) Acquis
En cours dacquisition
(aide du professeur)
Non- acquis
Prparation
A1-1 Prparer, intgrer et assembler le
matriel

A1-2 Paramtrage logiciel
A1-3 Tester et valider
Installation
A2-1 Participer la prparation 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, paramtrer, tester
et valider

Maintenance
A3-1 Effectuer la maintenance prventive
A3-2 Effectuer la maintenance corrective
Organisation
A4-1 Raliser la prise en charge du matriel
A4-2 Sinformer et se documenter
A4-3 Participer la relation clientle
A4-4 Respecter les obligations lgales et
rglementaires

A4-5 Participer la gestion de son activit
Autonomie de llve
Signature de lenseignant

Prise en compte et
restitution du matriel.
Signature :
NOM : Classe :

LP Veynes Bac pro SEN Initiation au microcontrleur Page 2





INTRODUCTION

Le PIC18F242 (ou PIC18F452) est le micro contrleur retenu comme support
d'apprentissage de la logique micro programme. Il pourra tre utilis pour raliser les
fonctions Traitement de l'information souvent prsentent dans les systmes techniques
tudis. Il sera alors charg d'exploiter les informations d'entre (bouton poussoir, capteur,
clavier,) de manire commander les parties opratives ( LED, buzzer, affichage,
commande de moteur, lectrovanne,).

Un microcontrleur est un circuit intgr comprenant un microprocesseur , de la
mmoire (mmoire vive RAM et mmoire morte ROM) , une (ou plusieurs) interface de
communication permettant les changes avec les priphriques.









1) FONCTIONNEMENT DU MICRO-CONTROLEUR.

Le microcontrleur fonctionne l'aide d'un programme ralisant le traitement de
l'information et d'interfaces de communication avec l'extrieur matrialises par les ports
d'entre/sortie.


















Initiation au micro contrleur PIC18Fxx2
Traitement de
des informations

(micro contrleur
PIC18F242)

Parties
Opratives

(commande de moteur,
LED, buzzer, .)
Informations
d'entre
(Boutons poussoirs,
Clavier,
Capteurs, ).

PORTA
Traitement de
l'information

(programme)


Interface de
communication

(Ports d'Entre/Sortie)


PORTB
PORTC
Gnrateur de
frquence

Dmarrage du
programme

PIC18F242
NOM : Classe :

LP Veynes Bac pro SEN Initiation au microcontrleur Page 3

Les ports E/S possdent jusqu' 8 bits rattachs chacun une broche du botier et pouvant
tre configurs individuellement soit en entre soit en sortie, par programme.
Le programme ne peut raliser qu'une seule instruction (commande) la fois. On parle de
logique squentielle.
Les instructions sont ralises au rythme de l'oscillateur (une instruction toutes les 4
priodes de l'oscillateur).
Le microcontrleur se place en dbut de programme chaque impulsion ( l'tat bas) sur
la broche MCLR (en gnral 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 donnes tant sur 8 bits, ce microcontrleur est un C 8 bits))

Mmoire programme : 8 kmot (un mot est constitu de deux octets).
Le PIC18F242 possdent une mmoire programme de 8 kmot, ce qui lui permet
d'enregistrer 8 *1024= 8192 instructions. C'est une mmoire de type ROM FLASH : on
peut effacer ou programmer lectriquement la mmoire programme et le programme est
conserv aprs une mise hors tension.

Mmoire des variables : 768 octets
Cette mmoire est utilise lors de l'exploitation des informations d'E/S (calculs et rsultats
intermdiaires). Elle est de type RAM, c'est dire que son contenu est perdu aprs une
mise hors tension.

Frquence maximale de l'oscillateur : 40 MHz
NOM : Classe :

LP Veynes Bac pro SEN Initiation au microcontrleur Page 4

La frquence 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 botier et peut tre configurer en entre
ou en sortie. En outre ils sont tous configurables pour une application plus spcifique
(Conversion Analogique Numrique pour le PORTA, transmission srie 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 microcontrleur se fait en langage machine. Ce langage tant peu
comprhensible, le programmeur crit le programme dans un fichier source en langage
volu : assembleur, langage C, basic, etc.

Dans notre cas lcriture du programme du PIC se fait en langage C avec le
compilateur PCWH de CCS . La compilation gnre le code machine qui sera transfr dans
la mmoire du microcontrleur avec l'outil de dveloppement MPLAB IDE de MicroChip.

La mise au point du programme permet d'observer le droulement du programme. Elle
peut se faire :
-soit en simulation (lordinateur simule le comportement du microcontrleur )
-soit en dbogage (debugger) auquel cas le programme est transfr dans le
microcontrleur cible laide du module ICD2. Il est connect d'une part l'ordinateur par la
liaison USB et d'autre part la carte cible (microcontrleur) par un connecteur RJ11
spcifique.

Le module ICD2 permet galement de programmer le micro-contrleur pour un
fonctionnement autonome de la carte cible (on supprime alors la liaison avec lordinateur).














Liaison avec
lordinateur (cble
USB).
Module ICD2
Liaison avec la carte
cible (cble spcifique,
connecteur RJ11)
Carte cible
NOM : Classe :

LP Veynes Bac pro SEN Initiation au microcontrleur Page 5

4) PREMIERS PROGRAMMES AVEC LA CARTE PICDEM2+


4-1) programme 1

On souhaite raliser un programme qui allume les quatre DEL connectes sur les ports RB0
RB3 lorsque l'on appuie sur un bouton poussoir connect sur RA4.




Montage simplifi de l'application :






















Matriel utiliser :

Carte PICDEM 2 + (vrifier 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-alimente via le cordon USB par lordinateur. Ne pas
brancher le cordon adaptateur +9VDC cette carte.
Flcher le sens de linformation pour les leds
repres D1 D4 et le bouton poussoir SW1
En dduire ltat logique obtenu en RA4 si SW1 est
appuy.

Reprer le quartz et donner sa frquence doscillation.
NOM : Classe :

LP Veynes Bac pro SEN Initiation au microcontrleur Page 6


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



























Les commentaires :

Les commentaires sont ncessaires la comprhension du fichier source. Ils font le
lien entre lalgorigramme et le listing du fichier source. Ils sont introduits par le caractre // .
Les mots situs aprs le caractre // ne sont pas interprts par le compilateur.

ALGORITHME :
Dbut algorithme
Faire RB3 RB0 en sortie , RA4 en entre
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 lalgorigramme, complter le listing du
programme source fourni ci-dessous (parties encadres).
Retrouver sur le programme les diffrentes tapes de lalgorigramme (prendre 5
couleurs diffrentes

Pic 18F452 4MHz
Test bouton poussoir
RA4 = 0 BP appuy
RA4
= 0 ?
oui
non
B
o
u
c
l
e

s
a
n
s

f
i
n

NOM : Classe :

LP Veynes Bac pro SEN Initiation au microcontrleur Page 7

Instruction utiliser :

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

Fonctions utiliser : set_tris_x(valeur) , output_x , input_x (voir laide du logiciel PIC C)

A partir du diaporama :

Editer , compiler ce programme avec le compilateur C de CCS. (imprimer votre listing
avec en entte votre nom (en commentaire))
Programmer le PIC 18F242 (ou PIC 18F452) avec MPLAB (voir le diaporama pour la
procdure) .
Vrifier le fonctionnement du programme.

Listing du programme

void main() // programme principal
{

setup_adc_ports(NO_ANALOGS); // fonctions insres par le Wizard de PCWH
setup_adc(ADC_OFF); // pour initialiser le C PIC 18Fxx2 4Mhz
setup_spi(FALSE); // et paramtrer 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 ) ; // complter PORT A en entre (0b= valeur en binaire)
set_tris_b(0b ) ; // complter PORT B en sortie

//RB0 Rb3 0 leds teintes


while (TRUE) //permet de crer une boucle sans fin ( ou while(1) )
{
if ( !input(PIN_A4) ) // ou if ( input(PIN_A4) = = 0)
{
//RB0 RB3 1

}

else
{
// RB0 RB4 0

}

} }
Signature du professeur :
NOM : Classe :

LP Veynes Bac pro SEN Initiation au microcontrleur Page 8

4-2) programme 2

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

ALGORIGRAMME


ALGORITHME :
Dbut algorithme
Faire RB0 RB3 en sortie , RA4 en entre
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 :
PIC 18F452 4MHz
NOM : Classe :

LP Veynes Bac pro SEN Initiation au microcontrleur Page 9

A partir du fonctionnement souhait, faire le programme source (imprimer le listing avec
votre nom en entte). Tester ce programme.

Instructions : while (voir document initiation au langage C)
Fonctions : set_tris_x(valeur) ; output ; input ; delay (voir laide du logiciel PIC C)

4.3) TP chenillard simple dfilement
A. Prsentation
Cahier des charges : raliser un chenillard qui a un seul sens de dfilement. La premire LED
s'allumer est la LED1 relie RB. La LED! s"allume #$ sec%nde plus tard et ainsi de suite
&usqu" la LED'. Ce c(cle rec%mmence ensuite indfiniment tant que le )%ut%n p%uss%ir R*'
est appu( +sin%n les leds s%nt teintes,.
B. Algorigramme









































Initialisation du PIC
18F452 ( 4Mhz)
RA4 en entre
RB0 RB3 en sorties
Dclaration dune variable
entire valeur sur 8 bits

(PORT B) = 0
RA4 =1 ?

Valeur
<=
0000 1000
?
Temporisation de 0.5s
Dcalage gauche de 1
bit de la variable valeur
non
oui
non
oui
valeur = 0000 0001
dcalage de n bits gauche ( << ) :
x = y << n
B
O
U
C
L
E

F
O
R
(PORTB) = valeur
Boucle rpter tant que
NOM : Classe :

LP Veynes Bac pro SEN Initiation au microcontrleur Page 10

C. Algorithme

DEBUT ALGORITHME

FAIRE RB0 RB3 en sortie et RA4 en entre
Dclarer la variable valeur (entier sur 8 bits)
TANT QUE 1=1 (boucle sans fin)
Rpter
PORTB=0
Tant que RA4 = 1 (test BP si relch )

POUR valeur = (00000001)
2
valeur initiale
valeur <= 0000 1000 condition
et par dcalage 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.




Imprimer ce programme et encadrer sur celui-ci, les diffrentes tapes de lalgorigramme.

4.4) TP chenillard deux sens de dfilement
A. Prsentation

Cahier des charges : raliser un chenillard 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 LED4.
Ensuite, cest au tour de la LED3 de sallumer pour revenir la LED1. (la condition , pour que le
chenillard dmarre , est que le bouton poussoir RA4 soit appuy sinon les leds sont teintes.)

Travail faire :

Faire lalgorigramme, lalgorithme et le programme de ce cahier des charges.

Aide : utiliser le dcalage logique gauche puis le dcalage logique droite avec des boucles for

Tester votre programme et le faire vrifier votre professeur.





Imprimer ce programme et encadrer sur celui-ci, les diffrentes tapes de lalgorigramme.

Signature du professeur :
Signature du professeur :
PICDEM2+ with PIC18F452
MCLR/Vpp
1
RA0/AN0
2
RA1/AN1
3
RA2/AN2/VREF-
4
RA3/AN3/VREF+
5
RA4/T0CKI
6
RA5/AN4/SS/LVDIN
7
RE0/RD/AN5
8
RE1/WR/AN6
9
RE2/CS/AN7
10
OSC1/CLKI
13
RA6/OSC2/CLKO
14
RC0/T1OSO/T1CKI
15
RC2/CCP1
17
RC3/SCK/SCL
18
RD0/PSP0
19
RD1/PSP1
20
RD2/PSP2
21
RD3/PSP3
22
RD4/PSP4
27
RD5/PSP5
28
RD6/PSP6
29
RD7/PSP7
30
RC4/SDI/SDA
23
RC5/SDO
24
RC6/TX/CK
25
RC7/RX/DT
26
RB0/INT0
33
RB1/INT1
34
RB2/INT2
35
RB3/CCP2B
36
RB4
37
RB5/PGM
38
RB6/PGC
39
RB7/PGD
40
RC1/T1OSI/CCP2A
16
U1
PIC18F452
D
7
1
4
D
6
1
3
D
5
1
2
D
4
1
1
D
3
1
0
D
2
9
D
1
8
D
0
7
E
6
R
W
5
R
S
4
V
S
S
1
V
D
D
2
V
E
E
3
LCD1
LM032L
V
C
C
G
N
D
V
E
E
VCC = 5V
RA4
R2
4k7
Q1
2N2222
R4
470
VCC
R5
2k2
LS1
SOUNDER
5
0
%
RV1
5k
D2
LED-RED
D3
LED-RED
D4
LED-RED
D5
LED-RED
R21
470
R22
470
R23
470
R24
470
J6
JUMPER
D1
LED-GREEN
R15
470
VCC
J9
JUMPER
VCC
X1
Quartz 4MHz
J7
JUMPER
RB0
RB1
RB3
RB2

You might also like