View
277
Download
3
Category
Preview:
Citation preview
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
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
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
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; ………….
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.
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
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
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
Recommended