Professional Documents
Culture Documents
Feriana // Labo : GE
CHAP : A.4
Leon :A.4.2
4me Sc.T
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 :
Jeu de lumire
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
.. .. .. .. .. .. .. ..
B
Donc
:
Tris A=... Tris B=.
Lyce.Feriana // Labo : GE
4me Sc.T
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)
4me Sc.T
Lyce.Feriana // Labo : GE
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
4me Sc.T
Lyce.Feriana // Labo : GE
PRESENTATION DU SYSTEME :
N
jour/nuit
J
RGE B
ORE B
ORE A
RGE A
Commutateur
VRT A
On dsigne par :
VRT B
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
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 .
4me Sc.T
Lyce.Feriana // Labo : GE
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].
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.
4me Sc.T
Lyce.Feriana // Labo : GE
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
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 := .;
while () do
// Boucle infinie
Dbut
FINFAIRE ;
FIN.
End ;
END.
Ecrire le programme sur Mikropascal, le compiler puis transfrer le fichier (NON.hex) dans
le PIC et vrifier le fonctionnement.
RA2
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
4me Sc.T
Lyce.Feriana // Labo : GE
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 ;
**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).
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
Sorties PIC
RA1
RA2
RA3
RA4
12Mi
Ci
Li0
RB5
Li1
GRAFCET P.C
0
Dcy
L11
Tris A = ..........
Tris B = ....
L21
RB2
Algorithme
Programme
Algorithme G7cycle_C ;
Programm G7cycle_C ;
Variable :;
Var :;
X0,: ;
X0,: ;
Dbut
begin
trisa$........;
trisa :=%.....................................;
trisb$ ........;
trisb :=%.....................................;
X0 ........;
X0:= ........;
// Initialisation //
// Initialisation //
X1 ........;
X1:= ........;
X2 ........;
X2:= ........;
X3 ........;
X3:= ........;
X4 ........;
TANQUE (1=1) FAIRE
X4:= ........;
WHILE (TRUE) DO
Begin
Dbut
Dcy portb.1;
Dcy:=portb.1;
L11;
L11:= ..................;
L21;
L21:= .................;
L20;
L20:= .................;
L10;
L10:= ..................;
Si (X0=1) ET () Alors
Dbut
begin
X0 ; X1 ; Fin si;
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;
Si X3=1
Si X4=1
Fin Faire ;
else porta:=0;
END.
** Programmation
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
Lyce.Feriana // Labo : GE
4me Sc.T
Programm G7div_cv;
Var:;
Begin
X0,X1: ;
;;
Begin
end;
if (X2=1) and () then
trisa :=%.....................................;
Begin
trisb :=$...........;
;; ;
end;
// Initialisation //
X1 := ..... ;
X2 := ..... ;
Begin
;;
end;
if () and () then
WHILE (TRUE) DO
Begin
Begin
;;
end;
................. ;
.................
.................
;
END.
Begin
.... ;
;
;
. ;
End.
"La vie, c'est comme une bicyclette, il faut avancer pour ne pas perdre l'quilibre."
Albert Einstein