6. Micro-Controleurs 16F84A - Final
-
Upload
elmokh-lassaad -
Category
Documents
-
view
73 -
download
1
Transcript of 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
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é
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
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
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
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 = …..
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
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
………
………
………
………
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
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.