12
ACTIVITES MICROCONTROLEUR 16F84A Activité 1 : Comparateur binaire de deux nombres à un bit (A=a 0 , B=b 0 ) 1- Compléter un algorithme. 2-Ecrire un programme en MikroPascal. a-Compléter le tableau des affectations : b- Compléter la table de vérité du comparateur binaire et déterminer les équations des sorties : 1 ère Méthode 1- Compléter l’algorithme ainsi que le programme relatif au comparateur binaire. Algorithme Programme en MikroPascal Algorithme Comparateur ; DEBUT TrisA …...……; {RA0, RA1 : entrées} TrisB …...……; {RB0, RB1 et RB2:Sorties} Port B …...…….. ; {Initialisation} TANT QUE (1=1) FAIRE Program Comparateur; …….............TrisA ……….. ; TrisB ……..….; PortB ……….. ; …………………………….. BEGIN If (((porta.0=……….................... .……………… ACTIVTES : PIC16F84A 4°SC.TECH. M.JEMIL Page 1 /8 H 0 = ………………………………………………….. H 1 = ………………………………………………….. H 2 = ………………………………….……………….. Entrées /sorties Broches du PIC16F84A Entrée : a 0 Entrée : b 0 Sortie H 0 (A>B) Sortie H 1 (A=B) Sortie H 2 (A<B) a 0 b 0 H 0 H 1 H 2 0 0 0 1 1 0 1 1

Activites Microcontroleur 16f84a

Embed Size (px)

Citation preview

Page 1: Activites Microcontroleur 16f84a

ACTIVITES MICROCONTROLEUR 16F84A

Activité 1 : Comparateur binaire de deux nombres à un bit (A=a0, B=b0)

1- Compléter un algorithme. 2-Ecrire un programme en MikroPascal.a-Compléter le tableau des affectations :

b- Compléter la table de vérité du comparateur binaire et déterminer les équations des sorties :

1 ère Méthode 1- Compléter l’algorithme ainsi que le programme relatif au comparateur binaire.

Algorithme Programme en MikroPascalAlgorithme Comparateur ;

DEBUT

TrisA …...……; {RA0, RA1 : entrées}

TrisB …...……; {RB0, RB1 et RB2:Sorties}

Port B …...…….. ; {Initialisation}

TANT QUE (1=1) FAIRE

DEBUT

SI (((porta.0 = ….) ET (porta.1 = ….)) OU

((porta.0 =….) ET (porta.1 =..….)))

ALORS portb.1 1 SINON portb.1 0 ;

SI ((porta.0 = …….....) ET (porta.1 = ………..))

ALORS portb.2 1 SINON portb.2 0 ;

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

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

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

FIN FAIRE ; FIN.

Program Comparateur;

…….............…

TrisA ……….. ;

TrisB ……..….;

PortB ……….. ;

……………………………..

BEGIN

If (((porta.0=……….....................……………… 

…………………….....…......…........…………….

Then portb.1…...……………………..........…;

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

If ((porta.0 …………....….....…........………....

then portb.2……….…...............................…;

if ((porta.0 …………......……….......….……..

then portb.0……………………..…….…..… ;

………; …… .

2- Saisir ce programme avec le logiciel « MikroPascal » et faire la compilation.3- Simuler le fonctionnement avec le logiciel « ISIS »

ACTIVTES : PIC16F84A 4°SC.TECH. M.JEMIL Page 1 /8

H0 = …………………………………………………..

H1 = …………………………………………………..

H2 = ………………………………….………………..

Entrées /sorties Broches du PIC16F84AEntrée : a0

Entrée : b0

Sortie H0 (A>B)Sortie H1 (A=B)Sortie H2 (A<B)

a0 b0 H0 H1 H2

0 00 11 01 1

Page 2: Activites Microcontroleur 16f84a

2 ème Méthode

1 - Compléter un algorithme et Ecrire un programme en MikroPascal.

2 - Utiliser les opérateurs de comparaison.

1- Compléter l’algorithme ainsi que le programme relatif au comparateur binaire.

Algorithme Programme en MikroPascal

Algorithme Comparateur2;

DEBUT

TrisA …….;

TrisB …….;

PortB …….;

TANT QUE VRAI FAIRE

Début

SI portA.0 …... portA.1 ALORS portB.0 …….

SINON portB.0...…; FIN SI

SI portA.0 …... portA.1 ALORS portB.1 …….

SINON portB.1...…; FIN SI

SI portA.0 …... portA.1 ALORS portB.2 …….

SINON portB.2...…; FIN SI

FIN FAIRE;

FIN DU PROGRAMME

Program Comparateur2;

……………….

TrisA ……….. ;

TrisB ……..….;

…………….. ;

……………………………....

…………

if portA.0 …................………….…………….…

else port………..……...… ;

if portA.0 …...... ………………..……………..…

else port………..…....…… ;

if portA.0 …........................................……..…

else …………………....… ;

………………..;

…………….

2- Saisir ce programme avec le logiciel « MikroPascal » et faire la compilation.

3- Simuler le fonctionnement avec le logiciel « ISIS »

3 ème Méthode

1 - Modifier un programme en utilisant les fonctions adaptées aux microcontrôleurs.

2 - Utiliser les instructions suivantes : Setbit et Clearbit.

Partie à modifier du programme Nouvelle partie du programme

if portA.0 > portA.1 then portB.0:=…..

else portB.0:=…… ;

if portA.0 = portA.1 then portB.1:=….

else portB.0:=….. ;

if portA.0 < portA.1 then portB.2:=…..

else portB.2:=….. ;

If portA.0 > portA.1 then Setbit(portB, 0)

else Clearbit(portB, .....);

if ………. ………..…. then ...................................

else ................................;

if ………….…………. then...................................

else …..............................;

ACTIVTES : PIC16F84A 4°SC.TECH. M.JEMIL Page 2 /8

Page 3: Activites Microcontroleur 16f84a

1 - Ecrire un programme en MikroPascal.2 - Améliorer un programme en utilisant la notion de procédure.

Activité 2 : Commande d’un moteur dans un seul sens de rotation

Circuit de commande du moteur (mémoire à arrêt prioritaire) :

S1S2

KM1KM1

Schéma ISIS:

1- Trouver la valeur du registre TrisA:

TrisA =………

2- On va associe à KM1 une variable X de type Octet et dont l'équation est :

X=RA 0 .(RA 1+ X ) Proposer un programme en MikroPascal traduisant le fonctionnement de cette équation.

Programme MikroPascalProgram act2;

Var .................. : ....................... ; // Déclaration de la variable X du type Octet

……………………..

Trisa:=%..........................; // RA0, RA1:Entrées et RA3:Sortie et les non utilisées comme Entrées

X:=............................; // Initialisation de la variable X

While ................................... Begin

if ((porta.0..........) ….. ((........................)…...(................... ))) then X:=...... Else X: =......;

........................................................................................................................; // RA3 = X

End; …………………...

2- Saisir ce programme avec le logiciel « MikroPascal » et faire la compilation.

ACTIVTES : PIC16F84A 4°SC.TECH. M.JEMIL Page 3 /8

PORT ARA4 RA3 RA2 RA1 RA0

TRIS A

Page 4: Activites Microcontroleur 16f84a

3- Simuler le fonctionnement avec le logiciel « ISIS »2 ème Partie Un afficheur 7 segments à cathode commune branché sur le port B signale l’état du moteur :

Etat du moteur Etat de X Etat de l'afficheur Valeur du port[B] en Hexadécimal

Arrêt ……… A ……………………………

Marche ……. F ……………………………

1- Trouver la valeur affectée au port B traduisant les différents états de l’afficheur. (Dans le menu Tools choisir la commande Seven segment convertor).Remarque: Cet outil n’est valable que si les segments de l’afficheur sont connectés au port B  comme suit:

2- Modifier le programme en faisant les actions suivantes :Compléter la procédure « ETAT »  qui permet de commander l’afficheur à 7 segments selon l’état logique de XTrouver la configuration des ports A et B.Appeler la procédure « ETAT » dans le programme principal.

Activité 3 : Compteur/décompteur modulo 10

ACTIVTES : PIC16F84A 4°SC.TECH. M.JEMIL Page 4 /8

Seven segment convertor

Program act2A;Var X: …………….; // Déclaration de la variable X du type OCTETProcedure ETAT; // Procédure ETAT Begin

If X=.......... then portb:=$ ............ else portb:=$ ............;

…………….;

BEGIN

trisa:= $ ...................; //Configuration du port A trisb:= $.....................; // Toutes les broches du port B sont des Sorties Portb:=0; // Initialisation du port B X:=0; // Initialisation de la variable X While ………………. Begin ....................................; // appel de la procédure ETAT

if ((porta.0=0) ….. ((.......................) …….. (...................... ))) then X:=..... Else X: =.....;

.............................................................................................................; //RA3 = X

End; ………….

Page 5: Activites Microcontroleur 16f84a

Ecrire un programme en MikroPascal utilisant les instructions suivantes : Repeat…………..until

Cahier des charges :

1) Trouver la valeur du registre TrisB: …………………………………………………………

2) Utiliser l’outil « SEVEN SEGMENT CONVERTOR » pour compléter le tableau suivant :

Nombre à afficher 0 1 2 3 4 5 6 7 8 9Valeur du port[B]

en décimal

1 ère Méthode (structures itératives ou répétitives)

1-Compléter le programme relatif au compteur.

Program Compteur ;

BEGIN

TrisB:=…………………………………………. ;

Repeat

if portb.7=… then begin

portb:=63 ; delay_ms(500); portb:=……… ; delay_ms(500); portb:= …… ; delay_ms(500);

portb:= …… ; delay_ms(500); portb:= ………; delay_ms(500); portb:= …… ; delay_ms(500);

portb:= …… ; delay_ms(500); portb:= ………; delay_ms(500); portb:= …… ; delay_ms(500);

portb:= …… ; delay_ms(500); End

else begin

portb:= …… ; delay_ms(500); portb:= ………; delay_ms(500); portb:= …… ; delay_ms(500);

portb:= …… ; delay_ms(500); portb:= ………; delay_ms(500); portb:= …… ; delay_ms(500);

portb:= …… ; delay_ms(500); portb:= ………; delay_ms(500); portb:= …… ; delay_ms(500);

portb:= 63 ; delay_ms(500); end;

Until ….................…………; END.

2- Saisir ce programme avec « MikroPascal », le compiler et simuler le fonctionnement avec

« ISIS ».

ACTIVTES : PIC16F84A 4°SC.TECH. M.JEMIL Page 5 /8

Afficheur 7segments à

………………... commune.

Remarque :

Le temps d’attente entre deux

états successifs est de 0.5s.

Page 6: Activites Microcontroleur 16f84a

Ecrire un programme en MikroPascal utilisant les instructions suivantes :

For…………to et/ou For ……….downto Repeat …………. until Array[….] of ………….. const

Traduire Le Grafcet PC en un programme

S1

S3

T=5s

EJ t/2/5s

S3

AV

3

1

2

0

2 ème Méthode (notion des variables, Tableaux, procédures, structures itératives ou

répétitives)

On va utiliser une variable i de type entier et un tableau nommé « chiffre » contenant 10

constantes de type entier relatives aux différentes valeurs affectées au port B.

1- Compléter le programme suivant traduisant le fonctionnement du compteur.

Programme MikroPascalProgram compteur1;

Var i: integer;

Const chiffre : array[10] of …….………= (........, .......

, .........., .........., ........., ......., ......., ......, ......, 111);

Procedure affichage ;

Begin portb:= ………..………..……..; delay_ms (…..…..); end;

BEGIN trisB:=%......................;

repeat

if portb.7=1 then begin for i:=0 ........ 9 do ......................; end

Else begin for i:=9 ............. 0 do .....................; end;

………………….……. .................. .

2- Saisir ce programme avec le logiciel « MikroPascal » et faire la compilation.

Activité 4 : Commande d’un convoyeur à bande avec le microcontrôleur.

Le cycle à réaliser avec le convoyeur à bande est décrit par le Grafcet ci-dessous :

ACTIVTES : PIC16F84A 4°SC.TECH. M.JEMIL Page 6 /8

Affection Entrées PIC 16F84A Sorties PIC 16F84A

S1 RA1 EJ: Ejection RB1S2 RA2 AV: Avance RB2S3 RA3

Page 7: Activites Microcontroleur 16f84a

RA1

…….

……. t

…….

……..

X3

X1

X2

X0

Configuration des ports A et B (une broche non utilisée sera configurée comme entrée).

TrisA :=………… TrisB :=…………

1- Compléter l’algorithme ainsi que le programme relatif au convoyeur.2-Saisir ce programme avec le logiciel « MikroPascal » puis compiler.3- Simuler le fonctionnement avec le logiciel « ISIS ».

Grafcet codé microcontrôleur.

Compléter le programme en MikroPascal.

Programme MikroPascal Commentaire

Program convoyeur;

Var X……………………………………… ……. ;

BEGIN

………..….……;

………..……….;

………….………;

X0:=….; X1:=….; X2:=….; X3:=…..;

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

begin

if ((X0=………) and (……..………)) then

begin X0:=………; X1:=………….; end;

if ((X1=……….) …….. (……..………)) then

begin X1:=………; ……..…………..; end;

if ((X2=………) ….….(t=……………)) then

begin X2:=……….; …….………….; end;

if ((X3=………) …. (porta.3=……….)) then

begin X3:=……….; ……………….; end;

if X1=… then portb.2:=… else portb.2:=0;

if X3=…. then ………….……… else ……………;

Nom du programme

Déclaration des variables

Configuration : RA1, RA2, RA3 entrées

Configuration : RB1, RB2 sorties

Initialement toutes les sorties sont à 0

Initialement seule l'étape initiale est active.

boucle infinie

Activation de l'étape 1 et désactivation de l'étape 0

Activation de l'étape 2 et désactivation de l'étape 1

Activation de l'étape 3 et désactivation de l'étape 2

Activation de l'étape 0 et désactivation de l'étape 3

Programmation de la sortie AV (avance tapis)

Programmation de la sortie EJ (Ejection)

ACTIVTES : PIC16F84A 4°SC.TECH. M.JEMIL Page 7 /8

Page 8: Activites Microcontroleur 16f84a

RA0

T4

t1/300s

RA1.t4

RB1 T1

X2

X1

X0

if X2=0 then t:=0 else

begin

t:=0; …….……………..(5000); t:=1;

………;

End; ………. .

Programmation du temporisateur T

FIN TANT QUE

FIN du programme

Activité 5 Commande d’un moteur : D’après le GRAFCET codé microcontrôleur compléter le programme en langage évolué (Mickropascal).

Program_MT ;Var X0, ……,………………………………… ;BeginTrisA :=……………………TrisB :=……………………portB………………………X0 :=1 ;…………………………………………While ………………………………. ; Begin if………..…………………………….……….thenBeginX0 :=0 ; X1 :=1 ;…………;if……………………………………………….thenBegin………………………………… ;End ;if……………………………………………….then……………..………………………………… ;……………...……………………………………………….then……………..………………………………… ;……………. ;

if X0=1 ………………………………………… ;if X1=1 then Begin portb.1 :=1 ; t1 :=0 ;Vdelay_ms(…………………..) ; t1 :=…………. ; End ……………  Begin Portb.1 :=0 ; t1 :=0 ; End ;if X2=1 then Begin …………………… ;………………………………………………….. ; End …………… ………….. ; ……… ;

……….

ACTIVTES : PIC16F84A 4°SC.TECH. M.JEMIL Page 8 /8

RB0

NotRA1.t4