Vous êtes sur la page 1sur 14

Laboratoire gnie lectrique 4Stech Srie dexercices N5 PIC Page 1 /14

Prof : Borchani hichem et Hammami mourad


Exercice N1
On dsire programmer les quations suivantes par un PIC 16F84A




















On donne le tableau daffectation des entres et de sorties :









1) complter le tableau suivant par : Entre E , sortie S , Non connect NC :









Affectation des entres Affectation des sorties
Entres Entres PIC Sorties Sorties PIC
A RA0 S1 RB0
B RA1 S2 RB1
C RA2 S3 RB2
D RA3
S4 RB3
S5 RB4
PORT A PORT B
RA0 RB0
RA1 RB1
RA2 RB2
RA3 RB3
RA4 RB4
RB5
RB6
RB7
Oprateur Opration
NOT NON
OR OU
AND ET
XOR OU exclusif
Oprateurs logiques raliss par le pic
A B C D
S1
S2
S3
S4
S5
Laboratoire gnie lectrique 4Stech Srie dexercices N5 PIC Page 2 /14

Prof : Borchani hichem et Hammami mourad
2) Trouver les valeurs quon devra placer dans les registres TRISA et TRISB du PIC16F84A :
TRIS A

=( ........ )Hex
TRIS B

=( ........ )Hex

3) Etablir les quations des sorties :
S1 = S2 =
S3 = S4 =
S5 =
4) Complter le programme en MikroPascal correspondant aux quations prcdentes :
Program equations ;
Begin
Trisa:=$ ;
Trisb:=$ ;
Portb :=.. ; // initialisation
While true do // boucle infinie
Begin
// equation de S1
If((PortA.0=0) and ( ........................)............( ...........................)............(.................... ))
then portb.0:=1 else portb.0:=0;
// equation de S2
If .....................
// equation de S3
.....................
// equation de S4
.......................
// equation de S5
.....................

END .
Exercice 2:

Soit le schma contact suivant :





1) Dduire lquation logique de RB0

RB0=..

RA0
RA1
RB0
Laboratoire gnie lectrique 4Stech Srie dexercices N5 PIC Page 3 /14

Prof : Borchani hichem et Hammami mourad
2) Traduire cette quation par un programme Mikropascal
Program equation2 ;
Begin
Trisa:=$ ;
Trisb:=$ ;
Portb :=.. ; // initialisation
While true do
Begin

If(( ) and ( ........................)) then................................................ ;



Exercice 3:

Soit les schmas contacts suivants :



















On attribue KM1 une variable X et KM2 une variable Y

1) Donner lquation de X X= ..

2) Donner lquation de Y Y= ..

3) Traduire ces deux quations par un programme Mikropascal
Program equation3 ;
var X,Y:byte;
Begin
X:=0;Y:=0;
Trisa:=$ ;
Trisb:=$ ;
Portb :=.. ; // initialisation
KM1
S1
S2
KM1
KM2
S4
S3
KM2
Affectation des entres Affectation des sorties
Entres Entres PIC Sorties Sorties PIC
S1 RA0 KM1 RB0
S2 RA1 KM2 RB1
S3 RA2
S4 RA3
Laboratoire gnie lectrique 4Stech Srie dexercices N5 PIC Page 4 /14

Prof : Borchani hichem et Hammami mourad
while true do
Begin
if ((porta.0=0) and ((porta.1=..)... (X=))) then X:=1 else X:=.;
if ..;
if X=0 then portb.0:=0 else portb.0:=;
if Y=0 then.;
end;
end.
Exercice 4:
Le fonctionnement dun systme est dcrit par le GRAFCET suivant:













Le circuit de commande du systme est le suivant :













1) complter le GRAFCET cod microcontrleur













2) Complter les affectations des deux registres TRIS A et TRIS B.


TRIS A





RA4



RA3



RA2



RA1



RA0



























TRIS B











RB7



RB6



RB5



RB4



RB3



RB2



RB1



RB0
































OSC1/CLKIN
16
RB0/INT
6
RB1
7
RB2
8
RB3
9
RB4
10
RB5
11
RB6
12
RB7
13
RA0
17
RA1
18
RA2
1
RA3
2
RA4/T0CKI
3
OSC2/CLKOUT
15
MCLR
4
U1
PIC16F84A
S1
S2
S3
S4
KA1
KA3
KA2
?
?
m
C1
33p
C2
33p
X1
CRYSTAL
0
0
0
0
?
? KA4
0
KM1
KM2
KM3
KM4
m
S1

0
1
KM1
2
KM2
3
KM3
S2
S3.S4
KM4
..
..

X0
X1

X2

X3

..
..

Laboratoire gnie lectrique 4Stech Srie dexercices N5 PIC Page 5 /14

Prof : Borchani hichem et Hammami mourad
3) complter le programme relatif au grafcet prcdent

program exercice4;
Var X0 , : byte ; // Dclaration des variables
BEGIN
................. ; // Configuration du registre TRISA en Hexadcimal

....................... ; // Configuration du registre TRISB en Hexadcimal

.. .. ; // Initialisation du portA

X0:=1 ; X1:=0 ; ; // Initialisation des variables

........................................ // boucle infinie
BEGIN
IF (() AND ()) THEN // Condition dactivation de ltape1
BEGIN
........................................... ;
END ;
IF (() AND (..)) THEN // Condition dactivation de ltape2
BEGIN
X1 :=0 ; X2 :=1 ;
END ;
. // Condition dacti vation de ltape3




BEGIN
...................................
END ;

............ ............................................................................................ // Condition dactivation de ltape0

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


IF (X1=1) THEN porta.0:=1 ELSE // Programmation de la sortie KM1

....................................................................................................// Programmation de la sortie KM2

....................................................................................................// Programmation de la sortie KM3
.................................................................................................... //Programmation de la sortie KM4
..;
END.
Laboratoire gnie lectrique 4Stech Srie dexercices N5 PIC Page 6 /14

Prof : Borchani hichem et Hammami mourad

MT
Pice
Longue
Pice
Courte
S1
S2 S3
Solnode
djection
Zonededtection
Picelongue
Picecourte
Zone
djectio
Convoyeur
bande
Bacdvacuation
despicescourtes
ExerciceN5


Systme : chane fonctionnelle :
On peut assimiler la chane fonctionnelle un systme de tri de pices.
Les pices longues et les pices courtes arrivent sur le mme convoyeur :
Si la pice est longue, elle doit passer jusqu la fin du tapis pour tre vacuer.
Si la pice est courte, elle doit tre jecte dans un bac.









On veut commander la chane fonctionnelle par un microcontrleur PIC 16F84A.
En se rfrant au grafcet P.O et du tableau daffectation des entres et sorties
1) Complter le GRAFCET cod microcontrleur

















































Affectation des entres Affectation des sorties
Entres systme Entres PIC Sorties systme Sorties PIC
dcy RA0 MT RB0
S
1
RA1 S
e
RB1
S
2
RA2
S
3
RA3
GRAFCET dun point de vue P.O
GRAFCET cod PIC
2) Complter les affectations des deux registres TRISA et TRISB.


TRISA





RA4



RA3



RA2



RA1



RA0


























TRISB











RB7



RB6



RB5



RB4



RB3



RB2



RB1



RB0
































5


0


2


MT








MT




3





MT

Se



1






dcy







S
1
. S
2

MT


4



MT


6







Se



T1


T2

MT

S
1
. S
2

S
3

S
3

t
1
/4/5s
S
3

t
2
/6/6s
X0
X2

X5

X3
X1

X4

X6

T1
T2
t
1
/X4/5s t
2
/X6/6s
Laboratoire gnie lectrique 4Stech Srie dexercices N5 PIC Page 7 /14

Prof : Borchani hichem et Hammami mourad
3)Complter le programme en langage pascal relatif la commande du systme :

program chaine fonctionnelle;

var X0, X1, X2, X3, X4,X5,X6,dcy, S1, S2, S3, t1, t2: byte;
begin
trisa :=$.........; trisb :=$......; portB :=.;
X0 :=1; X1 ..;X2 ;X3 .. 0; X4 ..;X5 .;X6 ..;
while .............. do
begin
dcy :=porta.0; S1 :=............;
S2 :=..........; S3:=porta.3;
if ((X0=1) and (dcy=1)) then
begin
X0 :=0; X1 :=1;
end;
if ((X1=1) and ( .............) and( S1 =0)) then
begin
X1 :=0; X2 :=1;
end;
if.................................................................
begin
X2 :=0; X3 :=1;
end;
if ((X3=1) and ( S3 =0)) then
begin
..............................................................
end;
if ((X1=1) and (........) and( ..........)) then
begin
X1 :=0; X5 :=1;
end;
if ............................................... then
begin
X5 :=0; X6 :=1;
end;
if (X6=1) .......................
begin
X6 :=0; X5:=0;X0 :=1;
end;
// programmation des sorties
Ifthen portb.0 :=1 else portb.0:=0;
if ((X3=1) or (X4=1))

// programmation des temporisations
if (X4=0) then t1 :=0 else
begin
delay_ms(5000); t1 :=1;
end;
if (X6=0) then t2 :=0 else
begin
..
end;
end;
end.

Laboratoire gnie lectrique 4Stech Srie dexercices N5 PIC Page 8 /14

Prof : Borchani hichem et Hammami mourad

S1

Dcy
Chargement
Dchargement
S2 S3
Exercice N6


Systme : dplacement dun chariot:
Le chariot tant en position initiale (S1 est actionn) un ordre de dpart cycle dcy provoque :

- Le dplacement du chariot jusqu S2
- Le chargement du chariot avec un produit et une temporisation de 10s.
- Le dchargement en S3
- Retour du chariot en S2 pour le charger et le dcharger de nouveau en S3. Enfin, il revient en
S1 .
Un compteur est incrment la fin de chargement, sa sortie n=1 si le chariot est charg 2 fois.









On veut commander le systme par un microcontrleur PIC 16F84A.
En se rfrant au grafcet P.C et au tableau daffectation des entres et sorties

1) Complter le GRAFCET cod PIC
































GRAFCET cod PIC

Affectation des entres Affectation des sorties
Entres systme Entres PIC Sorties systme Sorties PIC
Dcy RB0 KM1 RA0
S1 RB1 KM2 RA1
S2 RB2 14M1 RA2
S3 RB3 KA RA3
l
11

RB5
n RB6
GRAFCET P.C


1

2

3

S2
4



KA

5

1 4M1

S3


6



7




Dcy.S1

KM1

t

/ 3

/

10s

KM1

T

KM 2

S2

. n

l 1 1

S2

. n

K M 2

S1

X1

X2
















t / X3 /10 s


T




X3
X4
X5
X6
X7
Laboratoire gnie lectrique 4Stech Srie dexercices N5 PIC Page 9 /14

Prof : Borchani hichem et Hammami mourad
2) Complter les affectations des deux registres TRISA et TRISB.
















3) complter le programme en langage pascal relatif la commande du systme :
program chariot;

var X1, X2, X3, X4,X5,X6,X7,Dcy, S1, S2, S3,l
11
,n,
t : byte;
begin
trisA :=$.........; trisB :=$......; portA :=.;
X1 :=1; X2 ..;X3 ;X4 .. 0; X5 ..;X6 .;X7 ..;
while .............. do
begin
Dcy :=portb.0; S1 :=............ ; S2 :=.......... ;S3:=portb.3;
l
11
:=............ ; n:=............;
if ((X1=1) and (Dcy=1) and( S1 =1)) then
begin
X1 :=0; X2 :=1;
end;
if ((X2=1) and ( .............) or (X6=1) and (..........) and(..........)) then
begin
X2 :=0; X6 :=0; X3 :=1;
end;
if (............................and (t=1)) .......
begin
X3 :=0; X4 :=1;
end;
if ((X4=1) and ( S3 =1)) then
begin
..............................................................
end;
if ((X5=1) and (................)) then
begin
........................................
end;
if ((X6=1) and ( ....... .) and( .......... )) then
begin
X6 :=0; X7 :=1;
end;
...............................................
begin
X7 :=0; X1 :=1;
end;

// programmation des sorties
if(X1=1) then porta :=0 ;
if (X2=1) then ;
if (X3=1) then porta :=8;
if(X4=1)

then ;
if(X5=1)

then ;
if(X6=1)

then ..;
if(X7=1)

then ..;

// programmation du temporisation
if (X3=0) then t :=0 else
begin
delay_ms(.); t :=;
end;
;
end.

TRISA





RA4



RA3



RA2



RA1



RA0

























TRISB











RB7



RB6



RB5



RB4



RB3



RB2



RB1



RB0
































Laboratoire gnie lectrique 4Stech Srie dexercices N5 PIC Page 10 /14

Prof : Borchani hichem et Hammami mourad
ExerciceN7
Soit le montage suivant permettant de commander 8 diodes LED :

















Fonctionnement :

Si RA0 =1 les 8 LED clignotent pendant 2 secondes.

Si RA0 =0 on obtient le cycle rptitif suivant :








Complter le programme en miKropascal ci-contre
permettant de commander les diodes LED.




















Diodes LED allums dure
D1D2 1S
D3D4 1S
D5D6 1S
D7D8 1S
Aucune diode 1S
OSC1/CLKIN
16
RB0/INT
6
RB1
7
RB2
8
RB3
9
RB4
10
RB5
11
RB6
12
RB7
13
RA0
17
RA1
18
RA2
1
RA3
2
RA4/T0CKI
3
OSC2/CLKOUT
15
MCLR
4
U1
PIC16F84A
+5V
X1
CRYSTAL
FREQ=4MHz
C1
15pF
C2
15pF
R2
10k
220
R10
10k
D1
D2
D3
D4
D5
D6
D7
D8
program LED8;
begin
trisA:=$FF;trisB:=$.... ;portb:=$00;
While (1 =1) do begin
if porta.0 =.. then
begin
PORTB:=3;
delay_ms(.);
PORTB:=
..
..
.
..
delay_ms(..);

delay_ms();
end;
if . then
begin
PORTB:=255;
delay_ms(1000);

delay_ms(1000);


end.
Laboratoire gnie lectrique 4Stech Srie dexercices N5 PIC Page 11 /14

Prof : Borchani hichem et Hammami mourad
OSC1/CLKIN
16
RB0/INT
6
RB1
7
RB2
8
RB3
9
RB4
10
RB5
11
RB6
12
RB7
13
RA0
17
RA1
18
RA2
1
RA3
2
RA4/T0CKI
3
OSC2/CLKOUT
15
MCLR
4
U1
PIC16F84A
+5V
RAZ
X1
CRYSTAL
FREQ=4MHz
C1
15pF
C2
15pF
R2
10k
N/J
R1
10k
+5V
ExerciceN8 :
Feux tricolores de carrefour
Tableau de fonctionnement jour :( RA0=1)







Fonctionnement nuit :(RA0=0) : Le feu orang clignote pendant une seconde.

Complter lalgorithme et le programme donn permettant de grer le fonctionnement du feux tricolore dun
carrefour en se rfrant au tableau de fonctionnement (jour et nuit) et au schma du montage fourni.






































Dure en secondes 60 05 55
Rouge (portb .0) 1 0 0
Orang (portb.1) 0 1 0
Vert (portb.2) 0 0 1

Algorithme Programme
Algorithme : feu_tri
Dbut
TrisA .. TrisB PortB
Tant que (1=1) Faire
Dbut
SI porta.0=1 alors
Dbut
Portb ..
Attente ( )
.

portb: ..
Attente (55s)
Finsi
SI non
Dbut
portb: .
Attente (0,5s)
portb:
Attente (0,5s)
Fin SI
Fin Faire
Fin
program feu_tri;
begin
trisA:=$..;trisb:=$...;portb:=$00;
while true do
begin
...........................
begin
.........................
Vdelay_ms(60000);
.............
.....................
portb:=4;
Vdelay_ms(55000)
end
............
begin
portb:=2;
delay_ms(500);
portb:=0;
...........................;
end;
end;
end.

Laboratoire gnie lectrique 4Stech Srie dexercices N5 PIC Page 12 /14

Prof : Borchani hichem et Hammami mourad
Exercice N9
Compteur modulo 10

1) Complter lalgorithme dun compteur modulo 10.
2) Complter le programme pascal correspondant.














































Algorithme Programme

Algorithme : compteur m10

Program compteur m10 ;
Variable i :entier Var i:integer; // declaration dune variable de type entier
Dbut Begin
TrisA % ..... PortA % ..... TrisA :=%...................... ; Port . :=%. ;
Tant que vrai faire while ......... do // boucle infinie
dbut begin
Pour i variant de ... jusqu .. faire For i:=.. to .. do // boucle rptitive
dbut begin
PORTA . PortA := ........ ;
Attente (0,5s) delay_ms( );
Fin faire end;
Fin faire end;
Fin End.


OSC1/CLKIN
16
RB0/INT
6
RB1
7
RB2
8
RB3
9
RB4
10
RB5
11
RB6
12
RB7
13
RA0
17
RA1
18
RA2
1
RA3
2
RA4/T0CKI
3
OSC2/CLKOUT
15
MCLR
4
U1
PIC16F84A
A
7
QA
13
B
1
QB
12
C
2
QC
11
D
6
QD
10
BI/RBO
4
QE
9
RBI
5
QF
15
LT
3
QG
14
U2
7448

Laboratoire gnie lectrique 4Stech Srie dexercices N5 PIC Page 13 /14

Prof : Borchani hichem et Hammami mourad
OSC1/CLKIN
16
RB0/INT
6
RB1
7
RB2
8
RB3
9
RB4
10
RB5
11
RB6
12
RB7
13
RA0
17
RA1
18
RA2
1
RA3
2
RA4/T0CKI
3
OSC2/CLKOUT
15
MCLR
4
U1
PIC16F84A
Exercice N10
compteur modulo 60


1) Complter lalgorithme dun compteur modulo 60
2) Complter le programme pascal correspondant.




















































Algorithme Programme
Algorithme compteur mod 60
variable i,j:entier
dbut
trisa . trisb .. porta . portb ..
Tant que (.) faire
dbut
pour i variant de 0 jusqu 5 faire
dbut

dbut
porta portb
Attente (1s)
finfaire
fin faire
finfaire
fin
program compteur60;
VAR i,j:integer;
begin
trisa:=.....;trisb:=........;porta:=....; portb:=.... ;
................
begin
.......................
begin
for j:=0 to 9 do
begin
.................................................
delay_ms(1000)
. ..............
end;
end;
end.


Laboratoire gnie lectrique 4Stech Srie dexercices N5 PIC Page 14 /14

Prof : Borchani hichem et Hammami mourad
Exercice N11:

Raliser un compteur et dcompteur modulo12
Compteur incrment par le bouton RA2 .
Dcompteur dcrment par le bouton RA1.
Utilisation de la fonction Button (port,bit,temps dappui en ms ,tat logique actif)
Exemple :
if Button (portA,3,50,1) then action1
On teste lappui sur un bouton poussoir reli la broche RA3 pendant 50ms pour faire laction 1
















Programme
program Compt et DECOMP;
var x:byte;
begin
trisa:=$...;trisb:=.;portb:=.;x:=..;
while true do
begin
if button(porta,2,100,1) then
if x=12
if button(porta,1,100,1) then .
if x=255 ..
portb:=;
end;
end.

Vous aimerez peut-être aussi