upload_série_pic-5.pdf

Embed Size (px)

Citation preview

  • 7/22/2019 upload_srie_pic-5.pdf

    1/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 :

    Af fectat ion des entres Af fectat ion des sor ties

    Entres Entres PIC Sorties Sorties PIC

    A RA0 S1 RB0

    B RA1 S2 RB1

    C RA2 S3 RB2

    D RA3S4 RB3

    S5 RB4

    PORT A PORT B

    RA0 RB0

    RA1 RB1

    RA2 RB2

    RA3 RB3

    RA4 RB4

    RB5

    RB6

    RB7

    Oprateur Opration

    NOT NONOR OUAND ETXOR OU exclusif

    Oprateurs logiques raliss par le pic

    A B C D

    S1

    S2

    S3

    S4

    S5

  • 7/22/2019 upload_srie_pic-5.pdf

    2/14

    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 ;

    BeginTrisa:=$ ;

    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

  • 7/22/2019 upload_srie_pic-5.pdf

    3/14

    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

    KM1S1

    S2

    KM1

    KM2S4

    S3

    KM2

    Af fectat ion des entres Affectat ion des sorties

    Entres Entres PIC Sorties Sorties PIC

    S1 RA0 KM1 RB0

    S2 RA1 KM2 RB1

    S3 RA2

    S4 RA3

  • 7/22/2019 upload_srie_pic-5.pdf

    4/14

    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 Aet TRIS B.

    TRIS ARA4 RA3 RA2 RA1 RA0

    TRIS BRB7

    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

    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

    ..

    ..

  • 7/22/2019 upload_srie_pic-5.pdf

    5/14

    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

    ....................... ; // Conf iguration du regist re TRISB en Hexadcimal

    .. .. ; // Initialisation du portA

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

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

    BEGIN

    IF (() AND ()) THEN // Condition dactivation de l tape1

    BEGIN

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

    END ;

    IF (() AND (..)) THEN // Condition dactivation de l tape2

    BEGIN

    X1 := 0 ; X2 := 1 ;

    END ;

    . // Condition dactivation de l tape3

    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 sor tie KM3

    .................................................................................................... //Programmation de la sortie KM4

    ..;

    END.

  • 7/22/2019 upload_srie_pic-5.pdf

    6/14

    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

    Solnodedjection

    Zone de dtection

    Pice longue

    Pice courte

    Zone

    dectio

    Convoyeur

    bande

    Bac dvacuation

    des pices courtes

    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

    Af fectat ion des entres Af fectation des sort ies

    Entres systme Entres PIC Sorties systme Sorties PICdcy RA0 MT RB0

    S1 RA1 Se RB1

    S2 RA2

    S3 RA3

    GRAFCET dun poin t de vue P.OGRAFCET cod PIC

    2)Complter les affectations des deux registres TRISAet TRISB.

    TRISARA4 RA3 RA2 RA1 RA0

    TRISBRB7 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 X6T1 T2t1/X4/5s t2/X6/6s

  • 7/22/2019 upload_srie_pic-5.pdf

    7/14

    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.

  • 7/22/2019 upload_srie_pic-5.pdf

    8/14

    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

    Af fectat ion des entres Af fectat ion des sorties

    Entres systme Entres PIC Sorties systme Sorties PIC

    Dcy RB0 KM1 RA0

    S1 RB1 KM2 RA1

    S2 RB2 14M1 RA2S3 RB3 KA RA3

    l11 RB5

    n RB6

    GRAFCET P.C

    12

    3

    S2

    4

    KA

    5 14M1S3

    6

    7

    Dcy.S1

    KM1

    t/3

    /10s

    KM1

    T

    KM

    2

    S2. n

    l11

    S2. n

    KM2

    S1

    X1

    X2

    t /X3/ 10s

    T X3

    X4

    X5

    X6

    X7

  • 7/22/2019 upload_srie_pic-5.pdf

    9/14

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

    Prof : Borchani hichem et Hammami mourad

    2) Complter les affectations des deux registres TRISAet 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,l11,n,

    t : byte;

    begintrisA := $.........; 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 (................)) thenbegin........................................

    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.

    TRISARA4 RA3 RA2 RA1 RA0

    TRISB RB7 RB6

    RB5

    RB4

    RB3 RB2

    RB1

    RB0

  • 7/22/2019 upload_srie_pic-5.pdf

    10/14

    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-contrepermettant de commander les diodes LED.

    Diodes LED allums dure

    D1D2 1SD3D4 1S

    D5D6 1SD7D8 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

    CRYSTAL

    FREQ=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.

  • 7/22/2019 upload_srie_pic-5.pdf

    11/14

    Laboratoire gnie lectrique 4Stech Srie dexercices N5 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

    CRYSTAL

    FREQ=4MHz

    C115pF

    C215pF

    R210k

    N/J

    R110k

    +5V

    ExerciceN8 :

    Feux t ricolores 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 duncarrefour en se rfrant au tableau de fonctionnement (jour et nuit) et au schma du montage fourni.

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

    Algori thme 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.

  • 7/22/2019 upload_srie_pic-5.pdf

    12/14

    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.

    Algori thme Programme

    Algorithme : compteur m10Program compteur m10 ;

    Variable i :entier Var i:integer; // declaration dune variable de type entier

    Dbut BeginTrisA % .....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/CLKIN16

    RB0/INT6

    RB17

    RB28

    RB39

    RB410

    RB511

    RB612

    RB713

    RA017

    RA118

    RA21

    RA32

    RA4/T0CKI3

    OSC2/CLKOUT15

    MCLR4

    U1

    PIC16F84A

    A7

    QA13

    B1

    QB12

    C2

    QC11

    D6

    QD10

    BI/RBO4

    QE9

    RBI5

    QF15

    LT3

    QG14

    U2

    7448

  • 7/22/2019 upload_srie_pic-5.pdf

    13/14

    Laboratoire gnie lectrique 4Stech Srie dexercices N5 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 N10

    compteur modulo 60

    1) Complter lalgorithme dun compteur modulo 60

    2) Complter le programme pascal correspondant.

    Algori thme 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.

  • 7/22/2019 upload_srie_pic-5.pdf

    14/14

    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.