10
Lycée.Feriana // Labo : GE 4 éme Sc.T Prof : Mr Raouafi Abdallah Document élèves -------------------------- 2012 2013 -------------------- Page 1/10 I- MISE EN SITUATION : L’évolution technologique des composantes microélectroniques devient un facteur puissant qui nécessite une découverte assez profonde dans le terme de la connaissance et de l’exploitation. Parmi ces composantes, on cite les microprocesseurs, les microcontrôleurs, les ports USB et les cartes mémoires.etc... Exemples : Malgré la complexité des systèmes, leurs commandes deviennent plus simples. Réaliser les activités 1 et 2 du manuel d’activités page 71 et 72. ACTIVITE 2: On se propose d’étudier le fonctionnement d’un circuit électronique (déjà programmé par le professeur). Le schéma correspondant est donné ci-dessous. 1- Observer le fonctionnement et compléter la table de vérité suivante. a b c S 0 0 0 …… 0 0 1 …… 0 1 0 …… 0 1 1 …… 1 0 0 …… 1 0 1 …… 1 1 0 …… 1 1 1 …… 2- Déduire l’équation de la sortie : S = ……………………….……….……. 3- Quel est le nom et le rôle du circuit U1. Nom :………………….…………… Rôle :…………………………….4- En se reportant au schéma de montage, compléter les tableaux suivants : Tris A -- -- -- RA4 RA3 RA2 RA1 RA0 ….. ….. ….. ….. ….. Tris B RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 ….. ….. ….. ….. ….. ….. ….. ….. Donc : Tris A=………….….……. Tris B=………….………… CHAP : A.4 Leçon :A.4.2 LOGIQUE PROGRAMMEE « LES MICROCONTROLEURS » Partie : Automatique Durée : 10 Heures Entrée système Entrée 16F84A Sortie système Sortie 16F84A ……… ……… ……… ……… ……… ……… ……… ……… ……… ……… ……… ……… Rappel : En binaire On associe à une entrée le valeur...… On associe à une sortie le valeur…... On prend les broches restées comme des ………………… donc le valeur…... Commande d’un Robot Jeu de lumière

6. Micro-Controleurs 16F84A - Final

Embed Size (px)

Citation preview

Page 1: 6. Micro-Controleurs 16F84A - Final

Lycée.Feriana // Labo : GE 4éme Sc.T Prof : Mr Raouafi Abdallah

Document élèves -------------------------- 2012 – 2013 -------------------- Page 1/10

I- MISE EN SITUATION :

L’évolution technologique des composantes microélectroniques devient un facteur puissant qui nécessite une découverte assez profonde dans le terme de la connaissance et de l’exploitation. Parmi ces composantes, on cite les microprocesseurs, les microcontrôleurs, les ports USB et les cartes mémoires.etc...

Exemples :

Malgré la complexité des systèmes, leurs commandes deviennent plus simples.

Réaliser les activités 1 et 2 du manuel d’activités page 71 et 72.

ACTIVITE 2:

On se propose d’étudier le fonctionnement d’un circuit électronique (déjà programmé par le professeur). Le schéma correspondant est donné ci-dessous.

1- Observer le fonctionnement et compléter la table de vérité suivante.

a b c S

0 0 0 …… 0 0 1 …… 0 1 0 …… 0 1 1 …… 1 0 0 …… 1 0 1 …… 1 1 0 …… 1 1 1 ……

2- Déduire l’équation de la sortie :

S = ……………………….……….…….

3- Quel est le nom et le rôle du circuit U1.

Nom :………………….……………

Rôle :…………………………….…

4- En se reportant au schéma de montage, compléter les tableaux suivants :

Tris A

-- -- -- RA4 RA3 RA2 RA1 RA0

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

Tris B

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

….. ….. ….. ….. ….. ….. ….. ….. Donc : Tris A=………….….……. Tris B=………….…………

CHAP : A.4

Leçon :A.4.2 LOGIQUE PROGRAMMEE

« LES MICROCONTROLEURS »

Partie : Automatique

Durée : 10 Heures

Entrée

système

Entrée

16F84A

Sortie

système

Sortie

16F84A

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

Rappel : En binaire

On associe à une entrée le valeur...…

On associe à une sortie le valeur…...

On prend les broches restées comme des ………………… donc le valeur…...

Commande d’un Robot

Jeu de lumière

Page 2: 6. Micro-Controleurs 16F84A - Final

Lycée.Feriana // Labo : GE 4éme Sc.T Prof : Mr Raouafi Abdallah

Document élèves -------------------------- 2012 – 2013 -------------------- Page 2/10

II- RAPPEL

** Présentation générale :

Un microcontrôleur est une unité de traitement de l’information de type microprocesseur à

laquelle on a ajouté des périphériques internes permettant de réaliser des montages sans nécessiter

l’ajout de composants externes. C’est un système programmé qui va exécuter au rythme d’une

horloge, une suite d’instructions sur des données.

Plusieurs fondeurs se partage le marché des microcontrôleurs, citons INTEL, MOTOROLA, ATMEL,

ZILOG, PHILIPS et MICROCHIP.

Pour la programmation des microcontrôleurs on peut utiliser des langages mnémoniques

appropriés comme le Basic, le Pascal, le langage C, l’Assembleur, Java, Delphi, etc.…

On peut également, à l’aide de logiciels utilisés des langages graphiques. Il est nécessaire

d’utiliser un compilateur et une carte programmateur permettant de transférer le programme de

l’ordinateur dans les mémoires internes du circuit intégré (µC).Pour réaliser une application à base du

PIC, il est indispensable d’avoir une idée sur ce dernier afin de pouvoir l’utiliser.

Ce qui nécessite de connaître, au moins, quelques caractéristiques fondamentales pour ce circuit :

**Caractéristiques générales :

**Fonctions des broches : RA4/TOCKI : Peut être utilisé comme entrée d’horloge du timer.

RB0/INT : Peut être utilisé comme entrée d’interruption.

MCLR : Une entrée de RESET activé par niveau bas, permet de faire une remise à zéro du PIC.

VSS : 0 V de l’alimentation. VDD : +5 V OSC1/CLKIN -OSC1/CLKOUT : Ces deux bornes seront utilisées pour la liaison avec le QUARTZ

permettant le cadencement du PIC.

Si on utilise un signal d’horloge externe, on retrouve sur ces deux bornes la fréquence divisée par 4.

** Rappel sur la représentation graphique :

Il s’agit d’une représentation graphique et normalisée utilisée pour analyser un problème de logique. La

succession des symboles décrit l’Algorigramme ou l’organigramme.

Exemple sur la programmation graphique (RAPPEL) :

Soit l’algorigramme représentés ci-dessous :

1. Ecrire l’équation correspond à l’aide d’une table de vérité :

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

2. Déduire alors la fonction logique :……………………… ……………

Boîtier DIL 18

Fréquence maximale : 10 MHz

Nombre d’instructions pour la programmation en

assembleur : 35

Mémoire Flash (pour le programme) : 1ko

RAM : 68 octets.

EEprom : 64 octets.

Compteur/temporisateur 8 bits : 1

Chien de garde ( watch dog ) : 1

Sources d’interruptions : 4

Un mode sleep

Entrées-sorties (configurables) :13 E/S (RA0…RA4 et

RB0…RB7)

Table de vérité

Page 3: 6. Micro-Controleurs 16F84A - Final

Lycée.Feriana // Labo : GE 4éme Sc.T Prof : Mr Raouafi Abdallah

Document élèves -------------------------- 2012 – 2013 -------------------- Page 3/10

3. Lancer le logiciel «LogiPic» et représenter ce algorigramme.

4. Faire la saisie du schéma de simulation.

5. Charger le fichier ……HEX.

6. Vérifier le fonctionnement.

III- RROGRAMMATION EN LANGAGE EVOLUE

Réaliser l’activité 4 du manuel d’activités page 75.

Activité de motivation:

1- Ouvrir le logiciel « LOGIPIC », lancer un nouveau projet puis donner le nombre des Pic qu’on peut utiliser avec ce logiciel :…………………………………………….……

2- Ouvrir le logiciel « MIKROPASCAL », lancer un nouveau projet puis donner le nombre des Pic qu’on peut utiliser avec ce logiciel :…………………………..……………

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

Le langage évolué :

Autre que la méthode graphique (vue en 3ème année Sc.T), on peut écrire le programme en langage

évolué tel que le langage C, C++ ou le langage PASCAL duquel on s’intéressera dans la suite de ce cours.

On parle également du compilateur Mikropascal de Mikroelectronica. L’écriture du programme ainsi

que sa mise au point doivent, dans la plupart des cas, suivre le diagramme suivant.

III-1 : Structure d’un programme : (M.C. pages 103- 104)

III-2 : Les règles de base : (M.C. page 104)

III-3 : Mikropascal – Bases, Opérateurs, Structures usuelles, Procédures et fonctions:

(Voir M.C pages 104-105-106-107).

Réaliser l’activité 5 du manuel d’activités page 77. On prend le système: « Feux tricolores ».

Cahier

des

charges

(CDCF)

Algorithme Programmation

en langage

évolué

Compilateur

Fichier

(.hex)

Simulateur

Chargeur PIC

Page 4: 6. Micro-Controleurs 16F84A - Final

Lycée.Feriana // Labo : GE 4éme Sc.T Prof : Mr Raouafi Abdallah

Document élèves -------------------------- 2012 – 2013 -------------------- Page 4/10

PRESENTATION DU SYSTEME :

FONCTIONNEMENT : Le fonctionnement du feu est décrit par le schéma de

simulation sur l’ISIS et l’algorigramme représentés ci-dessous :

2- Pendant la nuit les deux feux « OB » et « OA » clignotent au rythme d’une seconde. Trouver

la valeur numérique à mettre dans le PORTB permettant d’allumer les deux feux « OB » et

« OA ».

** Feux « OB » et « OA » allumés ====PORTB = (…………..)16

** Feux « OB » et « OA » éteintes ====PORTB = (………....)16

On désigne par :

RA : feu rouge de la direction A.

OA : feu orange de la direction A.

VA : feu vert de la direction A.

RB : feu rouge de la direction B.

OB : feu orange de la direction B.

VB : feu vert de la direction B.

JN : commutateur permettant la sélection

entre mode « jour » et mode « nuit »

JN =1 : Position jour

JN=0 : Position nuit

OSC1/CLKIN16

RB0/INT6

RB17

RB28

RB39

RB410

RB511

RB612

RB713

RA017

RA118

RA21

RA32

RA4/T0CKI3

OSC2/CLKOUT15

MCLR4

U1

PIC16F84A

X1CRYSTAL

C1

15pF

C2

15pF

R110k

R210kRA

JN

OA VA

RB

OB

VB

1- Compléter la table de vérité ci-dessous :

A

B

RGE B ORE B

VRT B

RGE A

ORE A

VRT A

Commutateur

jour/nuit J N

Page 5: 6. Micro-Controleurs 16F84A - Final

Lycée.Feriana // Labo : GE 4éme Sc.T Prof : Mr Raouafi Abdallah

Document élèves -------------------------- 2012 – 2013 -------------------- Page 5/10

3- Compléter le tableau suivant :

Remarque : -[Mettre une croix pour préciser si la broche du PIC est configurée en entrée ou en sortie].

-[Mettre 1 ou 0 dans chaque case des deux lignes TRISA et TRISB].

4- Compléter l’algorithme correspondant et le programme Mikropascal.

4.1. Lancer le logiciel Mikropascal et faire la saisie du programme précédant puis faire la

compilation.

4.2. Simulation avec le logiciel ISIS.

- Faire la saisie du schéma de simulation, puis charger le fichier feu3coul.HEX.

- Faire et vérifier la simulation.

4.3. Utiliser le logiciel IC PROG pour charger le fichier.HEX dans le microcontrôleur 16F84A.

4.4. Placer le microcontrôleur déjà programmé sur la maquette et vérifier le fonctionnement.

Algorithme FEU3COUL;

Début trisa %...............; trisb %...............; portb 0; ........................................ début si (porta.0=1) alors début portb $................; attente 5000 ms; portb $...............; attente 1000 ms; portb $...............; attente 5000ms; portb $...............; .........................; fin ………. début .............................

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

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

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

fin; fin; fin.

Program FEU3COUL; Begin trisa:= %...............; trisb:= %...............; portb:= 0; ........................................ begin if (porta.0=1) then begin portb:=$................; delay_ms(5000); portb:=$...............; delay_ms(1000); portb:=$...............; delay_ms(5000); portb:=$...............; ..........................; end ........... begin ............................

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

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

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

end; end; end.

PORTA Choix arbitraire RA4 RA3 RA2 RA1 RA0

Entrée

Sortie

Non utilisé

TRIS A 0 1 0

PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

Entrée

Sortie

Non utilisé

TRIS B

Page 6: 6. Micro-Controleurs 16F84A - Final

Lycée.Feriana // Labo : GE 4éme Sc.T Prof : Mr Raouafi Abdallah

Document élèves -------------------------- 2012 – 2013 -------------------- Page 6/10

a b S 0 0 0

0 1 1

1 0 1

1 1 0

PIC

16F84A

RA2

RA3

RB4

a

b

S

IV- EXERCICES D’APPLICATIONS :

IV-1 : Logique combinatoire

Exemple 1 :

En se reportant à la figure et à la T.V. suivantes :

Ecrire l’expression à étudier en fonction des broches du PIC.

S = …….. ………………………..

En déduire les mots binaires, décimaux et hexadécimaux à installer dans les registres Tris A et Tris B.

Une broche non utilisée sera prise comme entrée.

Tris A = (…………………)2 = (…………)10 = (……………)16

Tris B = (…………………)2 = (…………)10 = (……………)16

Traduire l’expression trouvée par un algorithme à transformer en programme en Mikropascal.

Ecrire le programme sur Mikropascal, le compiler puis transférer le fichier (NON.hex) dans

le PIC et vérifier le fonctionnement.

Placer le microcontrôleur déjà programmé sur la maquette et vérifier le fonctionnement.

Exemple 2 :

En se reportant à la figure ci-contre et à la T.V. suivante :

Ecrire l’expression à étudier en fonction des broches du PIC.

S = …………….………….…… ……………..…………………..

En déduire les mots binaires et hexadécimaux à installer dans

les registres Tris A et Tris B.

** Une broche non utilisée sera prise comme une entrée :

Tris A = (…………………)2 = (…………)16

Tris B = (…………………)2 = (…………)16

a S

0 1

1 0

Algorithme Solution 1 Programme

Algorithme fonct_NON;

variables ………………….. :Octet;

DEBUT

Tris A $……; // RA2:entrée.

Tris B $……; // RB5: sortie.

Port B …..…; // Initialement, tous les RBi=0

TANQUE (1=1) FAIRE // Boucle infinie

Début

Si (port A.2 = 0) Alors port B.5……

………….. port B.5……… ; FINSI ;

FINFAIRE ;

FIN.

program fonct_NON;

var ………………….. :byte;

BEGIN

Tris A := %……..……..……;

Tris B := %……...…….....…;

Port B := ….…;

while (…………) do

……………………………

if (port A.2 = 0) ………... port B.5:= ……….

………….. port B.5 :=…….. ;

End ;

END.

PIC

16F84A RA2

RB5 a

S = …..

Page 7: 6. Micro-Controleurs 16F84A - Final

Lycée.Feriana // Labo : GE 4éme Sc.T Prof : Mr Raouafi Abdallah

Document élèves -------------------------- 2012 – 2013 -------------------- Page 7/10

PIC

16F84A RB2

D : diode

clignotante

Traduire l’expression trouvée par un algorithme à transformer en programme en Mikropascal.

Ecrire le programme sur Mikropascal, le compiler puis transférer le fichier (XOR.hex) dans le PIC

et vérifier le fonctionnement.

IV-2 : Logique séquentielle Exemple 1 : diode clignotante (NOTION DE TEMPORISATION)

Compiler puis transférer le fichier (CLIGNOT_LED.hex) dans le PIC et vérifier le fonctionnement.

Exemple 2: GRAFCET

**Cycle carré : Avec deux vérins C1 et C2 on veut réaliser un cycle carré. La partie commande peut être :

un séquenceur (vu en 3ème Sc. Tech).

un A.P.I. (vu dans la leçon précédente A.4.1).

à base du PIC 16F84A. (objectif de cet exemple).

Algorithme Solution 2 Programme

Algorithme fonct_XOR;

variables ………………….. :……………;

Début

trisa$…..…; // port a en entrée //

trisb$…..…; // port b en sortie //

portb$….…; // initialisation du portb à 0 //

TANQUE (1=1) FAIRE // boucle infinie //

Début

a………....…; // lecture de 'a' //

b………....…; // lecture de 'b' //

Si (a=….) …… (b=…..) …… (a=…...) ……

(b=…..) alors S…. Si non S ….;

si S=……. alors portb….……

// affectation de la sortie s //

Si non portb……….;

Fin faire;

FIN.

Program fonct_XOR;

var ………………….. :……………….;

…………………..

trisa:=$..........;

trisb:=$..........;

portb:=$.........;

while (True) do

Begin

a:=…………;

b:=…………;

if (a=….)……(b=…..)……(a=…...)……(b=…..)

…………… S:= …. else S:= ….;

if S=….Then portb…:=… else portb…:=0;

End;

END.

Algorithme Programme

Algorithme CLIGNOT_LED;

………………………

Trisa…………………………;

trisb…………………………;

portb………………;

TANQUE (………) FAIRE

Début

portb.2……………;

……………………………………………;

portb.2………………;

……………………………………………;

Fin ;

Fin.

Program CLIGNOT_LED;

Begin

trisa………………………;

trisb………………………;

portb………………;

WHILE (TRUE) DO

begin

portb.2 :=…… ;

Delay _ms(……………);

portb.2 :=…… ;

……………_ms(……………);

End ;

………………

10

11

Port b.2 = 0

Port b.2 = 1

t / 10 / 5s

t / 11 / 10s

Page 8: 6. Micro-Controleurs 16F84A - Final

Lycée.Feriana // Labo : GE 4éme Sc.T Prof : Mr Raouafi Abdallah

Document élèves -------------------------- 2012 – 2013 -------------------- Page 8/10

Ecrire l’algorithme et traduire en programme Mikropascal.

Entrées système Entrées PIC Sorties système Sorties PIC

Dcy RB1 12M1 RA1

L10 RB2 14M1 RA2

L11 RB3 12M2 RA3

L20 RB4 14M2 RA4

L21 RB5

Algorithme Programme Algorithme G7cycle_C ;

Variable ……………………………………………………:…………………;

X0,…………………………………: ……………………;

Début

trisa………$........;

trisb………$ ........;

porta………........; // initialisation du porta à 0 //

X0 ........; // Initialisation //

X1 ........;

X2 ........;

X3 ........;

X4 ........;

TANQUE (1=1) FAIRE

Début

Dcyportb.1; // lecture des entrées //

L11……………………;

L21……………………;

L20……………………;

L10……………………;

////// Programmation des étapes ///////////

Si (X0=1) ET (………………………………) Alors

Début

X0……; X1……; Fin si;

Programm G7cycle_C ;

Var ………………………………………………………:…………………;

X0,…………………………………: ……………………;

begin

trisa :=%.....................................;

trisb :=%.....................................;

porta := ............; // initialisation du porta à 0 //

X0:= ........; // Initialisation //

X1:= ........;

X2:= ........;

X3:= ........;

X4:= ........;

WHILE (TRUE) DO

Begin

Dcy:=portb.1; // lecture des entrées //

L11:= ..................;

L21:= .................;

L20:= .................;

L10:= ..................;

////// Programmation des étapes ///////////

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

begin

X0:=………; X1:=………; end;

Li1 Li0

14Mi

Ci

12Mi

RA0

…..

X1 ……

…..

X2 …… RB4

…..

X3 …… RB4

…..

X4 …… RB4

…..

GRAFCET codé PIC

Tris A = ………………..........

Tris B = ………………..…..

GRAFCET P.C

0

Dcy

1 ………

L11

2

L21

3

………

4

………

………

………

………

GRAFCET codé PIC

………

………

………

………

RB2

………

………

………

………

Page 9: 6. Micro-Controleurs 16F84A - Final

Lycée.Feriana // Labo : GE 4éme Sc.T Prof : Mr Raouafi Abdallah

Document élèves -------------------------- 2012 – 2013 -------------------- Page 9/10

Compiler puis transférer le fichier (G7cycle_L.hex) dans le PIC et vérifier le fonctionnement.

** Programmation d’un GRAFCET……div /cov en ET :

On donne le GRAFCET PC et le GRAFCET codé PIC.

Si …………………………………………………………………Alors

Début

…………………… ;……………………; Fin si;

Si …………………………………………………………………Alors

Début

…………………… ;……………………; Fin si;

Si …………………………………………………………………Alors

Début

…………………… ;……………………; Fin si;

Si …………………………………………………………………Alors

Début

…………………… ;……………………; Fin si;

/////////// Affectation des sorties //////////

Si X1=1 alors porta. ……… sinon porta.………;fin si ;

Si X2=1 alors porta. ……… sinon porta.………;fin si ;

Si X3=1 …………………………………………………………………………

Si X4=1 …………………………………………………………………………

Fin Faire ;

………….

if (……………………) and (…………………) then

begin

…………………… ;……………………; end;

if (……………………) and (…………………) then

begin

…………………… ;……………………; end;

if (……………………) and (…………………) then

begin

…………………… ;……………………; end;

if (……………………) and (…………………) then

begin

…………………… ;……………………; end;

//////// Affectation des sorties ////////

if X1=1 then porta……:=1 else porta………:=0;

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

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

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

……………… ;

END.

0

1 KM1

2 ATT1

5

S0…………

S1

3 KM2

4 ATT2

S2

=1

S3

KM3

ATT : Attente

.

RA3

X0

RB2

RB4

RA0.RA3

RA1

RB3

RB5

RA2

=1

RB6

Page 10: 6. Micro-Controleurs 16F84A - Final

Lycée.Feriana // Labo : GE 4éme Sc.T Prof : Mr Raouafi Abdallah

Document élèves -------------------------- 2012 – 2013 -------------------- Page 10/10

Traduire directement le programme Mikropascal correspond :

Compiler puis transférer le fichier (G7div_cv.hex) dans le PIC.

Vérifier le fonctionnement.

Begin ……...…. ;

♪♪♪♪♪♪♪ ; ♪♪♪♪♪♪♪ ;

…………. ; End.

"La vie, c'est comme une bicyclette, il faut avancer pour ne pas perdre l'équilibre." « Albert Einstein »

Programm G7div_cv;

Var………………………………………………………:…………………;

X0,X1…………………………………………: …………………;

Begin

trisa :=%.....................................;

trisb :=$...........;

port…… := $.........; // initialisation du …….. à 0 //

X0 := ..... ; // Initialisation //

X1 := ..... ;

X2 := ..... ;

………………………

………………………

………………………

WHILE (TRUE) DO

Begin

S0:=portA.0 ; // lecture des entrées //

………................. ;

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

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

////// Programmation des étapes ////

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

Begin

X0:=……… ; ………………………………

end;

if (……………………) and (S1=1) then

Begin

…………………… ;……………………;

end;

if (X2=1) and (…………………) then

Begin

…………………… ;……………………; ……………………;

end;

if (……………………) and (S2=1) then

Begin

…………………… ;……………………;

end;

if (……………………) and (…………………) then

Begin

…………………… ;……………………;

end;

//////// Affectation des sorties ////////

if X1=1 then portb……:=1 else portb………:=0 ;

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

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

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

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

……………… ;

END.