You are on page 1of 10

Lyce.

Feriana // Labo : GE

CHAP : A.4
Leon :A.4.2

4me Sc.T

Prof : Mr Raouafi Abdallah

LOGIQUE PROGRAMMEE
LES MICROCONTROLEURS

Partie : Automatique

Dure : 10 Heures

I- MISE EN SITUATION :

Lvolution technologique des composantes microlectroniques devient un facteur puissant qui ncessite
une dcouverte assez profonde dans le terme de la connaissance et de lexploitation. Parmi ces composantes, on
cite les microprocesseurs, les microcontrleurs, les ports USB et les cartes mmoires.etc...
Exemples :

Commande dun Robot

Jeu de lumire

Malgr la complexit des systmes, leurs commandes deviennent plus simples.


Raliser les activits 1 et 2 du manuel dactivits page 71 et 72.
ACTIVITE 2:
On se propose dtudier le fonctionnement dun circuit lectronique (dj programm par le
professeur). Le schma correspondant est donn ci-dessous.
1- Observer le fonctionnement et complter la table de vrit suivante.
a
b
c
S
0
0
0

0
0
1

0
1
0

0
1
1

1
0
0

1
0
1

1
1
0

1
1
1

2- Dduire lquation de la sortie :


S = ...
3- Quel est le nom et le rle du circuit U1.
Nom :.
Rle :.
Rappel : En binaire
On associe une entre le valeur...
On associe une sortie le valeur...
On prend les broches restes comme des donc le valeur...

4- En se reportant au schma de montage, complter les tableaux suivants :


---RA4 RA3 RA2 RA1 RA0
Entre
Entre
Sortie
Sortie
Tris
.. .. .. .. ..
A
systme 16F84A systme 16F84A
RB7
RB6
RB5
RB4 RB3 RB2 RB1 RB0
Tris

.. .. .. .. .. .. .. ..
B

Donc
:
Tris A=... Tris B=.

Document lves -------------------------- 2012 2013 -------------------- Page 1/10

Lyce.Feriana // Labo : GE

4me Sc.T

Prof : Mr Raouafi Abdallah

II- RAPPEL

** Prsentation gnrale :
Un microcontrleur est une unit de traitement de linformation de type microprocesseur
laquelle on a ajout des priphriques internes permettant de raliser des montages sans ncessiter
lajout de composants externes. Cest un systme programm qui va excuter au rythme dune
horloge, une suite dinstructions sur des donnes.
Plusieurs fondeurs se partage le march des microcontrleurs, citons INTEL, MOTOROLA, ATMEL,
ZILOG, PHILIPS et MICROCHIP.
Pour la programmation des microcontrleurs on peut utiliser des langages mnmoniques
appropris comme le Basic, le Pascal, le langage C, lAssembleur, Java, Delphi, etc.
On peut galement, laide de logiciels utiliss des langages graphiques. Il est ncessaire
dutiliser un compilateur et une carte programmateur permettant de transfrer le programme de
lordinateur dans les mmoires internes du circuit intgr (C).Pour raliser une application base du
PIC, il est indispensable davoir une ide sur ce dernier afin de pouvoir lutiliser.
Ce qui ncessite de connatre, au moins, quelques caractristiques fondamentales pour ce circuit :

**Caractristiques gnrales :

Botier DIL 18
Frquence maximale : 10 MHz
Nombre dinstructions pour la programmation en
assembleur : 35
Mmoire Flash (pour le programme) : 1ko
RAM : 68 octets.
EEprom : 64 octets.
Compteur/temporisateur 8 bits : 1
Chien de garde ( watch dog ) : 1
Sources dinterruptions : 4
Un mode sleep
Entres-sorties (configurables) :13 E/S (RA0RA4 et
RB0RB7)

**Fonctions des broches :


RA4/TOCKI : Peut tre utilis comme entre dhorloge du timer.
RB0/INT : Peut tre utilis comme entre dinterruption.
MCLR : Une entre de RESET activ par niveau bas, permet de faire une remise zro du PIC.
VSS : 0 V de lalimentation.
VDD : +5 V
OSC1/CLKIN -OSC1/CLKOUT : Ces deux bornes seront utilises pour la liaison avec le QUARTZ
permettant le cadencement du PIC.
Si on utilise un signal dhorloge externe, on retrouve sur ces deux bornes la frquence divise par 4.

** Rappel sur la reprsentation graphique :


Il sagit dune reprsentation graphique et normalise utilise pour analyser un problme de logique. La
succession des symboles dcrit lAlgorigramme ou lorganigramme.
Table de vrit
Exemple sur la programmation graphique (RAPPEL) :

Soit lalgorigramme reprsents ci-dessous :


1. Ecrire lquation correspond laide dune table de vrit :

2. Dduire alors la fonction logique :

Document lves -------------------------- 2012 2013 -------------------- Page 2/10

4me Sc.T

Lyce.Feriana // Labo : GE

Prof : Mr Raouafi Abdallah

3. Lancer le logiciel LogiPic et reprsenter ce algorigramme.

4. Faire la saisie du schma de simulation.


5. Charger le fichier HEX.
6. Vrifier le fonctionnement.
III- RROGRAMMATION EN LANGAGE EVOLUE
Raliser lactivit 4 du manuel dactivits page 75.

Activit de motivation:
1- Ouvrir le logiciel LOGIPIC , lancer un nouveau projet puis donner le nombre des Pic
quon peut utiliser avec ce logiciel :.
2- Ouvrir le logiciel MIKROPASCAL , lancer un nouveau projet puis donner le nombre
des Pic quon peut utiliser avec ce logiciel :..
.................................................................................................................................

Le langage volu :
Autre que la mthode graphique (vue en 3me anne Sc.T), on peut crire le programme en langage
volu tel que le langage C, C++ ou le langage PASCAL duquel on sintressera dans la suite de ce cours.
On parle galement du compilateur Mikropascal de Mikroelectronica. Lcriture du programme ainsi
que sa mise au point doivent, dans la plupart des cas, suivre le diagramme suivant.
Cahier
des
charges
(CDCF)

Algorithme

Programmation
en langage

Compilateur

Fichier
(.hex)

Simulateur

volu

PIC

Chargeur

III-1 : Structure dun programme : (M.C. pages 103- 104)


III-2 : Les rgles de base : (M.C. page 104)
III-3 : Mikropascal Bases, Oprateurs, Structures usuelles, Procdures et fonctions:
(Voir M.C pages 104-105-106-107).
Raliser lactivit 5 du manuel dactivits page 77. On prend le systme: Feux tricolores .

Document lves -------------------------- 2012 2013 -------------------- Page 3/10

4me Sc.T

Lyce.Feriana // Labo : GE

Prof : Mr Raouafi Abdallah

PRESENTATION DU SYSTEME :

N
jour/nuit
J

JN : commutateur permettant la slection


JN =1 : Position jour

JN=0 : Position nuit

RGE B
ORE B

entre mode jour et mode nuit

ORE A

RGE A

Commutateur

RA : feu rouge de la direction A.


OA : feu orange de la direction A.
VA : feu vert de la direction A.
RB : feu rouge de la direction B.
OB : feu orange de la direction B.
VB : feu vert de la direction B.

VRT A

On dsigne par :

VRT B

FONCTIONNEMENT : Le fonctionnement du feu est dcrit par le schma de

simulation sur lISIS et lalgorigramme reprsents ci-dessous :

R1

JN

10k

C1
U1

15pF

X1
CRYSTAL

C2

16
15
4

OSC1/CLKIN
OSC2/CLKOUT
MCLR

15pF

RA0
RA1
RA2
RA3
RA4/T0CKI
RB0/INT
RB1
RB2
RB3
RB4
RB5
RB6
RB7

17
18
1
2
3
6
7
8
9
10
11
12
13

PIC16F84A

R2

RA OA VA
RB

10k

OB
VB

1- Complter la table de vrit ci-dessous :

2- Pendant la nuit les deux feux OB et OA clignotent au rythme dune seconde. Trouver
la valeur numrique mettre dans le PORTB permettant dallumer les deux feux OB et
OA .

** Feux OB et OA allums ====PORTB = (..)16


** Feux OB et OA teintes ====PORTB = (....)16

Document lves -------------------------- 2012 2013 -------------------- Page 4/10

4me Sc.T

Lyce.Feriana // Labo : GE

Prof : Mr Raouafi Abdallah

3- Complter le tableau suivant :


PORTA

Choix arbitraire

RA4

RA3

RA2

RA1

RA0

RB4

RB3

RB2

RB1

RB0

Entre
Sortie
Non utilis
TRIS A
PORTB
Entre
Sortie
Non utilis
TRIS B

RB7

RB6

RB5

Remarque :
-[Mettre une croix pour prciser si la broche du PIC est configure en entre ou en sortie].
-[Mettre 1 ou 0 dans chaque case des deux lignes TRISA et TRISB].

4- Complter lalgorithme correspondant et le programme Mikropascal.


Algorithme FEU3COUL;
Dbut
trisa
%...............;
trisb
%...............;
portb
0;
........................................
dbut
si (porta.0=1) alors
dbut
portb $................;
attente 5000 ms;
portb $...............;
attente 1000 ms;
portb $...............;
attente 5000ms;
portb
$...............;
.........................;
fin
.
dbut
.............................
.............................
.............................
.............................
fin;
fin;
fin.

Program FEU3COUL;
Begin
trisa:= %...............;
trisb:= %...............;
portb:= 0;
........................................
begin
if (porta.0=1) then
begin
portb:=$................;
delay_ms(5000);
portb:=$...............;
delay_ms(1000);
portb:=$...............;
delay_ms(5000);
portb:=$...............;
..........................;
end
...........
begin
............................
............................
............................
............................
end;
end;
end.

4.1. Lancer le logiciel Mikropascal et faire la saisie du programme prcdant puis faire la
compilation.
4.2. Simulation avec le logiciel ISIS.
- Faire la saisie du schma de simulation, puis charger le fichier feu3coul.HEX.
- Faire et vrifier la simulation.
4.3. Utiliser le logiciel IC PROG pour charger le fichier.HEX dans le microcontrleur 16F84A.
4.4. Placer le microcontrleur dj programm sur la maquette et vrifier le fonctionnement.

Document lves -------------------------- 2012 2013 -------------------- Page 5/10

4me Sc.T

Lyce.Feriana // Labo : GE

Prof : Mr Raouafi Abdallah

IV- EXERCICES DAPPLICATIONS :


IV-1 : Logique combinatoire
Exemple 1 :
En se reportant la figure et la T.V. suivantes :

PIC
a
RA2
S = ..
S
16F84A RB5
0
1
1
0
Ecrire lexpression tudier en fonction des broches du PIC.
S = .. ..
En dduire les mots binaires, dcimaux et hexadcimaux installer dans les registres Tris A et Tris B.
a

Une broche non utilise sera prise comme entre.


Tris A = ()2 = ()10 = ()16
Tris B = ()2 = ()10 = ()16
Traduire lexpression trouve par un algorithme transformer en programme en Mikropascal.

Solution 1
program fonct_NON;

Algorithme

Algorithme fonct_NON;
variables .. :Octet;

var .. :byte;

DEBUT

BEGIN

Programme

Tris A $;

// RA2:entre.

Tris A := %....;

Tris B $;

// RB5: sortie.

Tris B := %........;

Port B ..; // Initialement, tous les RBi=0

Port B := .;

TANQUE (1=1) FAIRE

while () do

// Boucle infinie

Dbut

Si (port A.2 = 0) Alors port B.5

if (port A.2 = 0) ... port B.5:= .

.. port B.5 ; FINSI ;

.. port B.5 :=.. ;

FINFAIRE ;
FIN.

End ;
END.

Ecrire le programme sur Mikropascal, le compiler puis transfrer le fichier (NON.hex) dans
le PIC et vrifier le fonctionnement.

Placer le microcontrleur dj programm sur la maquette et vrifier le fonctionnement.


Exemple 2 :

En se reportant la figure ci-contre et la T.V. suivante :

RA2

Ecrire lexpression tudier en fonction des broches du PIC.

RA3

PIC
16F84A RB4

S = .. ....
En dduire les mots binaires et hexadcimaux installer dans
les registres Tris A et Tris B.
** Une broche non utilise sera prise comme une entre :
Tris A = ()2 = ()16

0
0
1
1

0
1
0
1

0
1
1
0

Tris B = ()2 = ()16

Document lves -------------------------- 2012 2013 -------------------- Page 6/10

4me Sc.T

Lyce.Feriana // Labo : GE

Prof : Mr Raouafi Abdallah

Traduire lexpression trouve par un algorithme transformer en programme en Mikropascal.

Solution 2

Algorithme

Programme

Algorithme fonct_XOR;
Program fonct_XOR;
variables .. :;
var .. :.;
Dbut
..
trisa $..; // port a en entre //
trisa:=$..........;
trisb $..; // port b en sortie //
trisb:=$..........;
portb $.; // initialisation du portb 0 //
portb:=$.........;
TANQUE (1=1) FAIRE
// boucle infinie //
Dbut
while (True) do
a ....; // lecture de 'a' //
Begin
b ....; // lecture de 'b' //
a:=;
Si (a=.) (b=..) (a=...) b:=;
if (a=.)(b=..)(a=...)(b=..)
(b=..) alors S . Si non S .;
si S=. alors portb.
S:= . else S:= .;
// affectation de la sortie s //
if S=.Then portb:= else portb:=0;
Si non portb .;
Fin faire;
End;
FIN.
END.
Ecrire le programme sur Mikropascal, le compiler puis transfrer le fichier (XOR.hex) dans le PIC
et vrifier le fonctionnement.
IV-2 : Logique squentielle
Exemple 1 : diode clignotante (NOTION DE TEMPORISATION)
PIC
RB2 D : diode
16F84A

Algorithme
Algorithme CLIGNOT_LED;

Program CLIGNOT_LED;

Begin

clignotante

10

Port b.2 = 0

t / 10 / 5s

11

Programme

Port b.2 = 1

t / 11 / 10s

Trisa;

trisa;

trisb;

trisb;

portb;
TANQUE () FAIRE
Dbut

portb;
WHILE (TRUE) DO
begin

portb.2;

portb.2 := ;

Delay _ms();

portb.2;

portb.2 := ;

_ms();

Fin ;
Fin.

End ;

Compiler puis transfrer le fichier (CLIGNOT_LED.hex) dans le PIC et vrifier le fonctionnement.


Exemple 2: GRAFCET

**Cycle carr :
Avec deux vrins C1 et C2 on veut raliser un cycle carr. La partie commande peut tre :
un squenceur (vu en 3me Sc. Tech).
un A.P.I. (vu dans la leon prcdente A.4.1).
base du PIC 16F84A. (objectif de cet exemple).

Document lves -------------------------- 2012 2013 -------------------- Page 7/10

Lyce.Feriana // Labo : GE
Entres systme
Dcy
L10
L11
L20
L21

Entres PIC
RB1
RB2
RB3
RB4

4me Sc.T

Sorties systme
12M1
14M1
12M2
14M2

Prof : Mr Raouafi Abdallah


14Mi

Sorties PIC
RA1
RA2
RA3
RA4

12Mi

Ci

Li0

RB5

Li1

GRAFCET cod PIC

GRAFCET P.C
0

Dcy

L11

Tris A = ..........

Tris B = ....

L21

RB2

Ecrire lalgorithme et traduire en programme Mikropascal.

Algorithme

Programme

Algorithme G7cycle_C ;

Programm G7cycle_C ;

Variable :;

Var :;

X0,: ;

X0,: ;

Dbut

begin

trisa$........;

trisa :=%.....................................;

trisb$ ........;

trisb :=%.....................................;

porta........; // initialisation du porta 0 //

porta := ............; // initialisation du porta 0 //

X0 ........;

X0:= ........;

// Initialisation //

// Initialisation //

X1 ........;

X1:= ........;

X2 ........;

X2:= ........;

X3 ........;

X3:= ........;

X4 ........;
TANQUE (1=1) FAIRE

X4:= ........;
WHILE (TRUE) DO
Begin

Dbut
Dcy portb.1;

// lecture des entres //

Dcy:=portb.1;

// lecture des entres //

L11;

L11:= ..................;

L21;

L21:= .................;

L20;

L20:= .................;

L10;

L10:= ..................;

////// Programmation des tapes ///////////

////// Programmation des tapes ///////////

Si (X0=1) ET () Alors

if (X0=1) and () then

Dbut

begin

X0 ; X1 ; Fin si;

X0:=; X1:=; end;

Document lves -------------------------- 2012 2013 -------------------- Page 8/10

4me Sc.T

Lyce.Feriana // Labo : GE
Si Alors

if () and () then

Dbut

begin

;; Fin si;

;; end;

Si Alors

if () and () then

Dbut

begin

;; Fin si;

;; end;

Si Alors

if () and () then

Dbut

begin

;; Fin si;

;; end;

Si Alors

if () and () then

Dbut

begin

;; Fin si;

;; end;

/////////// Affectation des sorties //////////

//////// Affectation des sorties ////////

Si X1=1 alors porta. sinon porta.;fin si ;

if X1=1 then porta:=1

Si X2=1 alors porta. sinon porta.;fin si ;

Si X3=1

Si X4=1

Fin Faire ;

else porta:=0;

Prof : Mr Raouafi Abdallah

END.

Compiler puis transfrer le fichier (G7cycle_L.hex) dans le PIC et vrifier le fonctionnement.

** Programmation

dun GRAFCETdiv /cov en ET :

On donne le GRAFCET PC et le GRAFCET cod PIC.

X0
S0

KM1

ATT1

RB5

RB4

ATT2

=1
RB6

KM3

S3

RA2

RA1

=1
5

RB3

RB2

KM2

S2

S1

RA0.RA3

RA3

ATT :

Attente

Document lves -------------------------- 2012 2013 -------------------- Page 9/10

Lyce.Feriana // Labo : GE

4me Sc.T

Prof : Mr Raouafi Abdallah

Traduire directement le programme Mikropascal correspond :


if () and (S1=1) then

Programm G7div_cv;
Var:;

Begin

X0,X1: ;

;;

Begin

end;
if (X2=1) and () then

trisa :=%.....................................;

Begin

trisb :=$...........;

;; ;

port := $.........; // initialisation du .. 0 //


X0 := ..... ;

end;

// Initialisation //

if () and (S2=1) then

X1 := ..... ;
X2 := ..... ;

Begin

;;

end;
if () and () then

WHILE (TRUE) DO

Begin

Begin

;;

S0:=portA.0 ; // lecture des entres //

end;

................. ;

//////// Affectation des sorties ////////

.................

if X1=1 then portb:=1 else portb:=0 ;

.................

////// Programmation des tapes ////

if (X0=1) and () and () then


Begin
X0:= ;
end;

;
END.

Compiler puis transfrer le fichier (G7div_cv.hex) dans le PIC.


Vrifier le fonctionnement.

Begin
.... ;
;
;
. ;
End.

"La vie, c'est comme une bicyclette, il faut avancer pour ne pas perdre l'quilibre."
Albert Einstein

Document lves -------------------------- 2012 2013 -------------------- Page 10/10