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