0% ont trouvé ce document utile (0 vote)
2K vues8 pages

Activites Microcontroleur 16f84a

Le document présente des activités pratiques utilisant le microcontrôleur PIC16F84A, incluant la création d'un comparateur binaire, la commande d'un moteur, un compteur/décompteur, et la gestion d'un convoyeur à bande. Chaque activité demande de compléter des algorithmes et des programmes en MikroPascal, ainsi que d'utiliser des outils de simulation comme ISIS. Les activités visent à développer des compétences en programmation et en utilisation de microcontrôleurs dans divers scénarios d'application.

Transféré par

Hichem Hamdi
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2K vues8 pages

Activites Microcontroleur 16f84a

Le document présente des activités pratiques utilisant le microcontrôleur PIC16F84A, incluant la création d'un comparateur binaire, la commande d'un moteur, un compteur/décompteur, et la gestion d'un convoyeur à bande. Chaque activité demande de compléter des algorithmes et des programmes en MikroPascal, ainsi que d'utiliser des outils de simulation comme ISIS. Les activités visent à développer des compétences en programmation et en utilisation de microcontrôleurs dans divers scénarios d'application.

Transféré par

Hichem Hamdi
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

ACTIVITES MICROCONTROLEUR 16F84A

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


1- Complter un algorithme.
2-Ecrire un programme en MikroPascal.
a-Complter le tableau des affectations :
Entres /sorties
Entre : a0
Entre : b0
Sortie H0 (A>B)
Sortie H1 (A=B)
Sortie H2 (A<B)

Broches du PIC16F84A

b- Complter la table de vrit du comparateur


binaire et dterminer les quations des sorties :
a0
0
0
1
1

b0
0
1
0
1

H0

H1

H2

H0 = ..
H1 = ..
H2 = ...

1re Mthode
1- Complter lalgorithme ainsi que le programme relatif au comparateur binaire.
Algorithme
Algorithme Comparateur ;

Programme en MikroPascal
Program Comparateur;

DEBUT

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

TrisA ...; {RA0, RA1 : entres}

TrisA .. ;

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

TrisB ...;

Port B ..... ; {Initialisation}

PortB .. ;

TANT QUE (1=1) FAIRE

..

DEBUT

BEGIN

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

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

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

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

ALORS

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

portb.1 1 SINON portb.1 0 ;

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

ALORS portb.2 1 SINON portb.2 0 ;

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

FIN FAIRE ;

then portb.2................................;
if ((porta.0 ................
then portb.0..... ;
;

FIN.

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


3- Simuler le fonctionnement avec le logiciel ISIS

ACTIVTES : PIC16F84A

4SC.TECH.

M.JEMIL

Page 1 /8

2me Mthode
1 -

Complter un algorithme et Ecrire un programme en MikroPascal.

2 -

Utiliser les oprateurs de comparaison.

1- Complter lalgorithme ainsi que le programme relatif au comparateur binaire.


Algorithme

Programme en MikroPascal

Algorithme Comparateur2;

Program Comparateur2;

DEBUT

TrisA .;

TrisA .. ;

TrisB .;

TrisB ...;

PortB .;

.. ;

TANT QUE VRAI FAIRE

....

Dbut

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

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

SINON portB.0...; FIN SI

else

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

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

SINON portB.1...; FIN SI

else

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

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

SINON portB.2...; FIN SI

else .... ;

FIN FAIRE;

..;

FIN DU PROGRAMME

port..... ;
port...... ;

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


3- Simuler le fonctionnement avec le logiciel ISIS
3me Mthode
1 - Modifier un programme en utilisant les fonctions adaptes aux microcontrleurs.
2 - Utiliser les instructions suivantes : Setbit et Clearbit.
Partie modifier du programme

Nouvelle partie du programme

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

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

else portB.0:= ;

else

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

if . ... then ...................................

else portB.0:=.. ;

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

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

if .. then...................................

else portB.2:=.. ;

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

ACTIVTES : PIC16F84A

4SC.TECH.

Clearbit(portB, .....);

M.JEMIL

Page 2 /8

Activit 2 : Commande dun moteur dans un seul sens de rotation


1 - Ecrire un programme en MikroPascal.
2 - Amliorer un programme en utilisant la notion de procdure.
Circuit de commande du moteur (mmoire arrt prioritaire) :
S1

S2

KM1
KM1

Schma ISIS:

1- Trouver la valeur du registre TrisA:


PORT A

RA4

RA3

RA2

RA1

RA0

TrisA =
TRIS A
2- On va associe KM1 une variable X de type Octet et dont l'quation est :

X RA0.( RA1 X )
Proposer un programme en MikroPascal traduisant le fonctionnement de cette quation.
Programme MikroPascal
Program act2;
Var .................. : ....................... ;

// Dclaration de la variable X du type Octet

..

Trisa:=%..........................; // RA0, RA1:Entres et RA3:Sortie et les non utilises comme


Entres

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

4SC.TECH.

M.JEMIL

Page 3 /8

3- Simuler le fonctionnement avec le logiciel ISIS


2me Partie
Un afficheur 7 segments cathode commune branch sur le port B signale ltat du moteur :
Etat du moteur

Etat de X

Etat de l'afficheur

Valeur du port[B] en Hexadcimal

Arrt

Marche

A
F

1- Trouver la valeur affecte au port B traduisant les diffrents tats de lafficheur. (Dans le
menu Tools choisir la commande Seven segment convertor).
Remarque: Cet outil nest valable que si les segments
de lafficheur sont connects au port B comme suit:

Seven segment convertor

2- Modifier le programme en faisant les actions suivantes :


Complter la procdure ETAT qui permet de commander lafficheur 7 segments
selon ltat logique de X
Trouver la configuration des ports A et B.
Appeler la procdure ETAT dans le programme principal.
Program act2A;
Var X: .;
Procedure ETAT;
Begin
If

X=.......... then

// Dclaration de la variable X du type OCTET


// Procdure ETAT
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 procdure ETAT
if ((porta.0=0) .. ((.......................) .. (...................... ))) then X:=..... Else X: =.....;
.............................................................................................................; //RA3 = X
End;

ACTIVTES : PIC16F84A

4SC.TECH.

M.JEMIL

Page 4 /8

Activit 3 : Compteur/dcompteur modulo 10


Cahier des charges :
Afficheur 7segments
... commune.

Remarque :
Le temps dattente entre deux
tats successifs est de 0.5s.

1) Trouver la valeur du registre TrisB:


2) Utiliser loutil SEVEN SEGMENT CONVERTOR pour complter le tableau suivant :
Nombre afficher

0 1 2 3 4 5 6 7 8 9

Valeur du port[B]
en dcimal
1re Mthode (structures itratives ou rptitives)
Ecrire un programme en MikroPascal utilisant les instructions suivantes : Repeat..until

1-Complter le programme relatif au compteur.


Program Compteur ;
BEGIN
TrisB:=. ;
Repeat
if portb.7= then
portb:=63

begin

; 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

end;

; delay_ms(500);

Until .................;

ACTIVTES : PIC16F84A

END.

4SC.TECH.

M.JEMIL

Page 5 /8

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


ISIS .

2me Mthode (notion des variables, Tableaux, procdures, structures itratives ou


rptitives)
Ecrire un programme en MikroPascal utilisant les instructions suivantes :
Forto et/ou For .downto
Repeat . until
Array[.] of ..
const
On va utiliser une variable i de type entier et un tableau nomm chiffre contenant 10
constantes de type entier relatives aux diffrentes valeurs affectes au port B.
1- Complter le programme suivant traduisant le fonctionnement du compteur.
Programme MikroPascal
Program compteur1;
Var

i: integer;

Const

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

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


Procedure affichage ;
Begin

portb:= ......;
BEGIN

delay_ms (....);

end;

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

repeat
if portb.7=1 then begin for i:=0
Else begin for i:=9

........

do

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

end

............. 0 do

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

end;

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

..

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


Activit 4 : Commande dun convoyeur bande avec le microcontrleur.
Traduire Le Grafcet PC en un programme MikroPascal
Le cycle raliser avec le convoyeur bande est dcrit par le Grafcet ci-dessous :
0
S1

AV
S3

T=5s
t/2/5s

EJ
S3

ACTIVTES : PIC16F84A

4SC.TECH.

M.JEMIL

Page 6 /8

Affection
Entres
PIC 16F84A
Sorties
PIC 16F84A
S1
RA1
EJ: Ejection
RB1
S2
RA2
AV: Avance
RB2
S3
RA3
Configuration des ports A et B (une broche non utilise sera configure comme entre).
TrisA :=

TrisB :=

1- Complter lalgorithme 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 microcontrleur.

X0
RA1
..

X1
.
X2
t

X3
.

Complter le programme en MikroPascal.


Programme MikroPascal

Commentaire

Program convoyeur;

Nom du programme

Var X . ;

Dclaration des variables

BEGIN
...;

Configuration : RA1, RA2, RA3 entres

...;

Configuration : RB1, RB2 sorties

.;

Initialement toutes les sorties sont 0

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

Initialement seule l'tape initiale est active.

boucle infinie

begin
if ((X0=) and (..)) then
begin X0:=;

Activation de l'tape 1 et dsactivation de l'tape 0

X1:=.; end;

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

Activation de l'tape 2 et dsactivation de l'tape 1

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


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

Activation de l'tape 3 et dsactivation de l'tape 2

begin X2:=.; ..; end;


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

Activation de l'tape 0 et dsactivation de l'tape 3

begin X3:=.; .; end;

ACTIVTES : PIC16F84A

4SC.TECH.

M.JEMIL

Page 7 /8

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

Programmation de la sortie AV (avance tapis)

if X3=. then . else ;

Programmation de la sortie EJ (Ejection)

if X2=0

then

t:=0 else

begin

Programmation du temporisateur T

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

t:=1;

;
End;

FIN TANT QUE

. .

FIN du programme

Activit 5 Commande dun moteur : Daprs le GRAFCET cod microcontrleur complter le


programme en langage volu (Mickropascal).

X0

RB0
RA0
RB1

X1

T1

t1/300s
X2
RA1.t4

Program_MT ;
Var X0, , ;
Begin
TrisA :=
TrisB :=
portB
X0 :=1 ;
While . ;
Begin
if....then
Begin
X0 :=0 ; X1 :=1 ;
;
if.then
Begin
;
End ;
if.then
..
;
.
...then
..
;
. ;

ACTIVTES : PIC16F84A

4SC.TECH.

T4
NotRA1.t4

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
.. ;
;

M.JEMIL

Page 8 /8

Vous aimerez peut-être aussi