14
Laboratoire génie électrique 4Stech Série d’exercices N°5 PIC Page 1 /14 Prof : Borchani hichem et Hammami mourad Exercice N°1 On désire programmer les équations suivantes par un PIC 16F84A On donne le tableau d’affectation des entrées et de sorties : 1°) compléter le tableau suivant par : Entrée « E », sortie « S », Non connecté « NC » : Affectation des entrées Affectation des sorties Entrées Entrées 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 Opérateur Opération NOT NON OR OU AND ET XOR OU exclusif Opérateurs logiques réalisés par le pic A B C D S1 S2 S3 S4 S5

On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Embed Size (px)

Citation preview

Page 1: On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Laboratoire génie électrique 4Stech Série d’exercices N°5 PIC Page 1 /14

Prof : Borchani hichem et Hammami mourad

Exercice N°1 On désire programmer les équations suivantes par un PIC 16F84A

On donne le tableau d’affectation des entrées et de sorties :

1°) compléter le tableau suivant par : Entrée « E », sortie « S », Non connecté « NC » :

Affectation des entrées Affectation des sorties

Entrées Entrées 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

Opérateur Opération

NOT NON OR OU AND ET XOR OU exclusif

Opérateurs logiques réalisés par le pic

A B C D

S1

S2

S3

S4

S5

Page 2: On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Laboratoire génie électrique 4Stech Série d’exercices N°5 PIC Page 2 /14

Prof : Borchani hichem et Hammami mourad

2°) Trouver les valeurs qu’on 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°) Compléter le programme en MikroPascal correspondant aux équations précédentes :

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 schéma à contact suivant : 1°) Déduire l’équation logique de RB0 RB0= …………………..

RA0 RA1 RB0

Page 3: On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Laboratoire génie électrique 4Stech Série d’exercices N°5 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 schémas à contacts suivants : On attribue à KM1 une variable X et à KM2 une variable Y 1°) Donner l’équation de X X= ……………………….. 2°) Donner l’équation 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

KM1S1

S2

KM1

KM2S4

S3

KM2

Affectation des entrées Affectation des sorties

Entrées Entrées PIC Sorties Sorties PIC

S1 RA0 KM1 RB0 S2 RA1 KM2 RB1 S3 RA2 S4 RA3

Page 4: On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Laboratoire génie électrique 4Stech Série d’exercices N°5 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 d’un système est décrit par le GRAFCET suivant: Le circuit de commande du système est le suivant :

1°) compléter le GRAFCET codé microcontrôleur

2°) Compléter 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/CLKIN16

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/CLKOUT15

MCLR4

U1

PIC16F84AS1S2S3S4

KA1

KA3

KA2

?

?

m

C1

33p

C2

33p

X1

CRYSTAL

0000

?

? KA4

0

KM1

KM2

KM3

KM4

m

S1

0

1 KM1

2 KM2

3 KM3

S2

S3.S4

KM4

…..

…..

X0

X1 ……

X2 ……

X3 ………..

….. ……

Page 5: On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Laboratoire génie électrique 4Stech Série d’exercices N°5 PIC Page 5 /14

Prof : Borchani hichem et Hammami mourad

3°) compléter le programme relatif au grafcet précédent program exercice4; Var X0 , ………………………………………………: byte ; // Déclaration des variables

BEGIN

………………................. ; // Configuration du registre TRISA en Hexadécimal

………….…...................... ; // Configuration du registre TRISB en Hexadécimal

……….. ………………….. ; // Initialisation du portA

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

........................................ // boucle infinie

BEGIN

IF ((…………………) AND (………………………)) THEN // Condition d’activation de l’étape1

BEGIN

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

END ;

IF ((…………………) AND (……………………..)) THEN // Condition d’activation de l’étape2

BEGIN

X1 := 0 ; X2 := 1 ;

END ;

…………………………………………………………………………. // Condition d’activation de l’étape3

BEGIN

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

END ;

............ ............................................................................................ // Condition d’activation de l’étape0

……………………

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

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

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.

Page 6: On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Laboratoire génie électrique 4Stech Série d’exercices N°5 PIC Page 6 /14

Prof : Borchani hichem et Hammami mourad

MT

Pièce Longue

Pièce Courte

S1 S2 S3

Solénoïde d’éjection

Zone de détection Pièce longue Pièce courte

Zone d’éjectio

Convoyeur à bande

Bac d’évacuation des pièces courtes

ExerciceN°5

Système : chaîne fonctionnelle : On peut assimiler la chaîne fonctionnelle à un système de tri de pièces. Les pièces longues et les pièces courtes arrivent sur le même convoyeur : Si la pièce est longue, elle doit passer jusqu’à la fin du tapis pour être évacuer. Si la pièce est courte, elle doit être éjectée dans un bac. On veut commander la chaîne fonctionnelle par un microcontrôleur PIC 16F84A. En se référant au grafcet P.O et du tableau d’affectation des entrées et sorties

1°) Compléter le GRAFCET codé microcontrôleur

Affectation des entrées Affectation des sorties Entrées système Entrées PIC Sorties système Sorties PIC

dcy RA0 MT RB0 S1 RA1 Se RB1 S2 RA2 S3 RA3

GRAFCET d’un point de vue P.O GRAFCET codé PIC

2°) Compléter 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

S1. S2

MT

4 MT

6

Se

T1 T2 MT

S1. S2

S3

S3

t1/4/5s

S3

t2/6/6s

X0

X2   X5         

  

X3

X1  

  

     

 

   

X4   X6    

  

 

   T1 T2

t1/X4/5s t2/X6/6s

Page 7: On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Laboratoire génie électrique 4Stech Série d’exercices N°5 PIC Page 7 /14

Prof : Borchani hichem et Hammami mourad

3°)Compléter le programme en langage pascal relatif à la commande du système :

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

If……………………………………………………………………………………then 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.

Page 8: On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Laboratoire génie électrique 4Stech Série d’exercices N°5 PIC Page 8 /14

Prof : Borchani hichem et Hammami mourad

 

S1 

Dcy

Chargement

Déchargement

S2 S3

Exercice N°6

Système : déplacement d’un chariot: Le chariot étant en position initiale (S1 est actionné) un ordre de départ cycle « dcy » provoque :

- Le déplacement du chariot jusqu’à « S2 »

- Le chargement du chariot avec un produit et une temporisation de 10s.

- Le déchargement en « S3 »

- Retour du chariot en « S2 » pour le charger et le décharger de nouveau en « S3». Enfin, il revient en

« S1 ».

Un compteur est incrémenté à la fin de chargement, sa sortie n=1 si le chariot est chargé 2 fois.

On veut commander le système par un microcontrôleur PIC 16F84A. En se référant au grafcet P.C et au tableau d’affectation des entrées et sorties

1°) Compléter le GRAFCET codé PIC

GRAFCET codé PIC

Affectation des entrées Affectation des sorties Entrées système Entrées PIC Sorties système Sorties PIC

Dcy RB0 KM1 RA0 S1 RB1 KM2 RA1 S2 RB2 14M1 RA2 S3 RB3 KA RA3 l11 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

Page 9: On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Laboratoire génie électrique 4Stech Série d’exercices N°5 PIC Page 9 /14

Prof : Borchani hichem et Hammami mourad

2°) Compléter les affectations des deux registres TRISA et TRISB.

3°) compléter le programme en langage pascal relatif à la commande du système :

program chariot; var X1, X2, X3, X4,X5,X6,X7,Dcy, S1, S2, S3,l11,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; l11:= ............ ; 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

……

……

……

……

……

……

……

……

Page 10: On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Laboratoire génie électrique 4Stech Série d’exercices N°5 PIC Page 10 /14

Prof : Borchani hichem et Hammami mourad

ExerciceN°7 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 répétitif suivant :

Compléter le programme en miKropascal ci-contre permettant de commander les diodes LED.

Diodes LED allumés duréeD1D2 1S D3D4 1S D5D6 1S D7D8 1S

Aucune diode 1S

OSC1/CLKIN16

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/CLKOUT15

MCLR4

U1

PIC16F84A

+5V

X1

CRYSTALFREQ=4MHz

C115pF

C215pF

R210k

220

R1010k

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.

Page 11: On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Laboratoire génie électrique 4Stech Série d’exercices N°5 PIC Page 11 /14

Prof : Borchani hichem et Hammami mourad

OSC1/CLKIN16

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/CLKOUT15

MCLR4

U1

PIC16F84A

+5V

RAZ

X1

CRYSTALFREQ=4MHz

C115pF

C215pF

R210k

N/J

R110k

+5V

ExerciceN°8 :

Feux tricolores de carrefour

Tableau de fonctionnement jour :( RA0=1) Fonctionnement nuit :(RA0=0) : Le feu orangé clignote pendant une seconde. Compléter l’algorithme et le programme donné permettant de gérer le fonctionnement du feux tricolore d’un carrefour en se référant au tableau de fonctionnement (jour et nuit) et au schéma du montage fourni.

Durée 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

Début

TrisA ⇐…….. TrisB ⇐……… PortB ⇐ ……

Tant que (1=1) Faire

Début

SI porta.0=1 alors

Début

Portb ⇐ …..

Attente ( )

………….

……………

portb: ⇐ …..

Attente (55s)

Finsi

SI non

Début

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.

Page 12: On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Laboratoire génie électrique 4Stech Série d’exercices N°5 PIC Page 12 /14

Prof : Borchani hichem et Hammami mourad

Exercice N°9 Compteur modulo 10 1°) Compléter l’algorithme d’un compteur modulo 10.

2°) Compléter le programme pascal correspondant.

Algorithme Programme

Algorithme : compteur m10

Program compteur m10 ;

Variable i :entier Var i:integer; // declaration d’une variable de type entier

Début Begin

TrisA ⇐ % ……………………..... PortA ⇐ % …………..... TrisA := %...................... ; Port ……. := %…………………………. ;

Tant que vrai faire while ......... do // boucle infinie

début begin

Pour i variant de ……... jusqu’à …….. faire For i:= …….. to ……….. do // boucle répétitive

début begin

PORTA ⇐ ……. PortA := ........ ;

Attente (0,5s) delay_ms( ………………… );

Fin faire end;

Fin faire end;

Fin End.

OSC1/CLKIN16

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/CLKOUT15

MCLR4

U1

PIC16F84A

A7 QA 13

B1 QB 12

C2 QC 11

D6 QD 10

BI/RBO4 QE 9

RBI5 QF 15

LT3 QG 14

U2

7448

Page 13: On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Laboratoire génie électrique 4Stech Série d’exercices N°5 PIC Page 13 /14

Prof : Borchani hichem et Hammami mourad

OSC1/CLKIN16

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/CLKOUT15

MCLR4

U1

PIC16F84A

Exercice N°10 compteur modulo 60

1°) Compléter l’algorithme d’un compteur modulo 60

2°) Compléter le programme pascal correspondant.

Algorithme Programme Algorithme compteur mod 60

variable i,j:entier

début

trisa ⇐ …. trisb ⇐ .. porta ⇐ …. portb ⇐ …..

Tant que (…….) faire

début

pour i variant de 0 jusqu’à 5 faire

début

………………………………………

début

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.

Page 14: On désire programmer les équations suivantes par un rie_pic-5.pdfEntrées système Entrées PIC Sorties système Sorties PIC ... Feux tricolores de carrefour ... Le feu orangé clignote

Laboratoire génie électrique 4Stech Série d’exercices N°5 PIC Page 14 /14

Prof : Borchani hichem et Hammami mourad

Exercice N°11: Réaliser un compteur et décompteur modulo12

• Compteur incrémenté par le bouton RA2 .

• Décompteur décrémenté par le bouton RA1.

Utilisation de la fonction Button (port,bit,temps d’appui en ms ,état logique actif)

Exemple :

if Button (portA,3,50,1) then « action1 »

On teste l’appui sur un bouton poussoir relié à la broche RA3 pendant 50ms pour faire l’action 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.