Está en la página 1de 13

CHAPITRE 1 AUTOMATIQUE

Arithmtique binaire Cours de Kaouana Ismail 49 ~


les microcontrleurs
Objectifs spcifiques :
- Identifier partir dune application industrielle et /ou de son dossier technique un microcontrleur.
- Elaborer un programme spcifique une application base de microcontrleur .
A Rappels :
1 -Raliser lactivit N1 page 71
2 Le microcontrleur :
Un microcontrleur se prsente sous la forme d'un circuit intgr runissant tous les lments d'une structure
base de microprocesseur. Voici gnralement ce que l'on trouve l'intrieur d'un tel composant :
Un microprocesseur (C.P.U.).
Une mmoire de donne (RAM et EEPROM).
Une mmoire programme (ROM, OTPROM, UVPROM ou EEPROM).
Une interface parallle pour la connexion des entres / sorties.
Une interface srie (synchrone ou asynchrone) pour le dialogue avec d'autres units.
Des timers pour gnrer ou mesurer des signaux avec une grande prcision temporelle.
Des convertisseurs analogique / numrique pour le traitement des
signaux analogiques.
a- Microprocesseur (C.P.U.) :
Un microprocesseur excute squentiellement les instructions stockes dans la mmoire programme.
On peut noter qu'il existe 2 catgories de microprocesseur : les CISC et les RISC. CISC (Complex Instruction
Set Computer) : Ce microprocesseur possde un nombre important d'instructions. Chacune d'elles s'excute en
plusieurs priodes d'horloges.
RISC (Reduced Instruction Set Computer) : Ce microprocesseur possde un nombre rduit d'instructions.
Chacune d'elles s'excute en une priode d'horloge. Il est gnralement construit autour d'une unit arithmtique
et logique (ALU) permettant d'effectuer des oprations de calcul arithmtique et des oprations binaires.
CHAPITRE 1 AUTOMATIQUE
Arithmtique binaire Cours de Kaouana Ismail 50 ~
b- Mmoires programmes.
Ce dispositif contient les instructions du programme que doit excuter le microprocesseur. Ce type de mmoire
est uniquement accessible en lecture. Sa programmation ncessite une procdure particulire et un matriel
adquat.
Il en existe diffrents types selon leur mode de programmation :
ROM dont le contenu est programm lors de sa fabrication (appele mmoire morte).
PROM programmable lectriquement une seule fois par le dveloppeur (appele aussi OTPROM),
EPROM programmable lectriquement et effaable aux U-V (appele aussi UVPROM),
EEPROM ou FLASH programmable et effaable lectriquement.
c- Mmoires de donnes.
Ce dispositif permet de mmoriser temporairement les donnes gnres par le microprocesseur pendant les
diffrentes phases du traitement numrique (rsultats d'oprations, tats logiques...). Ces mmoires sont
accessibles en criture et en lecture.
On en trouve 2 types :
- La mmoire (RAM) volatile (donnes perdues en cas de coupure de l'alimentation) ayant un temps
de lecture et criture assez court (quelques ns),
- La mmoire (EEPROM) non-volatile (donnes conserves en cas de coupure de l'alimentation)
ayant un temps d'criture assez lev (quelques ms) par rapport au temps de lecture qui est assez faible
(quelques ns).n temps d'criture assez lev (quelques ms) par rapport au temps de lecture qui est assez faible
(quelques ns).
d- L'interface parallle.
Ce type d'interface, rpartie sur plusieurs ports (maximum 8 bits), permet de prendre en compte des tats
logiques appliqus en entre (tat de capteurs) ou de gnrer des signaux binaires en sortie (commande
d'actionneurs). Les broches de ces ports peuvent donc tre configures en entre ou en sortie, avec diffrentes
options (rsistances de rappel, sorties collecteurs ouverts, interruption...). La configuration
ainsi que l'tat logique de ces broches est obtenue par des oprations d'criture ou de lecture dans diffrents
registres associs chaque port. On trouve gnralement :
Un registre de direction (TRISX) pour une configuration en entre ou en sortie du Port X .
Exemple :
on crit dans le registre TRISB la valeur binaire 10100110, le tableau suivant donne la configuration du port B
correspondante.
TRISB 1 0 1 0 0 1 1 0
PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
Entre Sortie Entre Sortie Sortie Entre Entre Sortie
Un registre de donne (PORTX) recopiant les tats logiques de chaque broche du port X. Il est accessible en
criture (sortie) ou en lecture (entre). Un registre d'interruption (INTCON) permettant d'activer ou de
dsactiver les interruptions.
e- Le timer.
Le Timer permet de raliser les fonctions suivantes :
Gnration d'un signal priodique.
Temporisation.
Comptage d'vnements.
Plusieurs registres associs au Timer permettent de configurer les diffrents modes dcrits prcdemment.
CHAPITRE 1 AUTOMATIQUE
Arithmtique binaire Cours de Kaouana Ismail 51 ~
f- Le chien de garde.
Ce dispositif est un systme anti-plantage du microcontrleur. Il s'assure qu'il n'y ait pas d'excution prolonge
d'une mme suite d'instruction. Si oui un Reset est gnr automatiquement relanant ainsi le microcontrleur.
Il faut donc penser dsactiver le chien de garde lorsqu'il y a des boucles rptitives dans le programme
3 Raliser lactivit N2 page72 :
4 Programmation graphique :
a- L'algorigramme ou l'organigramme :
Dfinition : il s'agit d'une reprsentation graphique normalise . Il est utilis pour analyser ou dcoder un
problme de logique en utilisant les symboles normaliss suivants :
Symboles Dsignations Symboles Dsignations
Opration gnrale
condition vraie ?
Oui
Non
Test avec alternative
Appel dune
Sous-procdure
Dbut
Dbut de procdure
Entre de donnes
ou sortie de rsultats
fin
Fin de procdure
b applications :
Fonction mmoire arrt prioritaire : = ( + )
Organigramme
Dbut
Fin
a
m
X=1
X=0
x
0
1
1
0
0
1
Algorithme
Algorithme M/A ;
Variables : a , m , x , bits
Dbut
Si a = 0 Alors
Si m = 1 Alors X = 1
Sinon Si x = 1 Alors X = 1
Sinon X = 0
FinSi
FinSi
Sinon X = 0
FinSi
Fin
CHAPITRE 1
Arithmtique binaire
Tableau daffectations :
Entres/systme
a
m
x
Application relative la tlcommande de la porte automatique
Raliser lactivit N3 Page 73 .
B La programmation en langage volu
Que ce soit par la mthode graphique ou en langage volu, lcriture du programme ainsi que sa mise au
point doivent suivre le diagramme suivant :
Il faut traduire le cahier des charges en une suite ordonne dactions que doit raliser le processus de
commande, cette suite doprations sera dcompose en actions lmentaires ou instructions cest
lAlgorithme. Par la suite il suffit de transformer cet algorithme en un langage volu tel que le langage
PASCAL ou le langage C.

Arithmtique binaire Cours de Kaouana Ismail
Entres/16F84A Sortie/Systme Sortie/16F84A
RA0 X RB0
RA1
RA2
Application relative la tlcommande de la porte automatique : ( voir livre de cours page 102 )
La programmation en langage volu :
ce soit par la mthode graphique ou en langage volu, lcriture du programme ainsi que sa mise au
point doivent suivre le diagramme suivant :
traduire le cahier des charges en une suite ordonne dactions que doit raliser le processus de
ande, cette suite doprations sera dcompose en actions lmentaires ou instructions cest
. Par la suite il suffit de transformer cet algorithme en un langage volu tel que le langage
AUTOMATIQUE
52 ~
Sortie/16F84A
RB0
: ( voir livre de cours page 102 )
ce soit par la mthode graphique ou en langage volu, lcriture du programme ainsi que sa mise au
traduire le cahier des charges en une suite ordonne dactions que doit raliser le processus de
ande, cette suite doprations sera dcompose en actions lmentaires ou instructions cest
. Par la suite il suffit de transformer cet algorithme en un langage volu tel que le langage
CHAPITRE 1 AUTOMATIQUE
Arithmtique binaire Cours de Kaouana Ismail 53 ~
Dans la suite du cours on sintressera au langage PASCAL. (Compilateur Mikropascal de Mikroelektronika.)
1 Structure dun programme :
Un programme est un texte que le compilateur va traduire en fichier hexadcimal. Alors il doit avoir une
structure particulire. Le texte d'un programme contient au moins trois parties.
L'entte
Ne contient qu'une ligne; commence par le mot rserv Program et donne un nom au programme. ( program
Hannibal ; )
Les dclarations
Elles permettent de dfinir les lments utiliss dans le programme. En effet on devra dclarer les variables
utilises pour permettre au compilateur d'effectuer les rservations de mmoire ainsi que les sous-programmes
(Procdures et fonctions).
Le corps du programme
Commence par le mot rserv Begin et se termine par le mot rserv "End " suivi d'un point final. Ce qui
suit ce "End" n'est pas pris en compte par le compilateur.
Entre "Begin" et "End" se trouvent les instructions effectuer par le programme.
Algorithmique Langage PASCAL Commentaires
Algorithme NomAlgorithme ProgramNomProgramme ; entte
Variables
Nomvariable <2080-ARIANA>
type
Nomconstante : Type
=valeur ;
Var
Nomvariable : Type ;
Const
Nomconstante : Type =
valeur ;
// dclaration
Dbut
.

Fin.
Begin
.
.
End.
// Programme
// principal
2- Les Rgles de bases :
Toutes instructions ou actions se terminent par un point virgule ;
Une ligne de commentaires doit commencer par "{" et se terminer par "}" ou commence par "//". Un bloc
dinstructions commence par "Begin" et se termine par "End".
3- Les types de variables utilises en Mikropascal :
Type Dsignation Taille Rang
octet byte 8bit 0 255
caractre char 8bit 0 255
Mot word 16bit 0 65535
Octet sign short 8bit -128 127
Entier integer 16bit -32768 32767
Entier long longint 32bit -2147483648 2147483647
Rel real
32bit 1.17549435082 * 10
-38
..
6.80564774407 * 10
38
Tableau Array[a..b] of type (b-a) lments Rang du type
CHAPITRE 1 AUTOMATIQUE
Arithmtique binaire Cours de Kaouana Ismail 54 ~
Chane de
caractres
string[n]
n caractre 0 255
4- Les bases du compilateur Mikropascal :
Le dcimal : A=10 ;
Lhexadcimal A=$0F ; ou A=0x0F ;
Le binaire A=%11010100 ;
5- les oprateurs arithmtiques et logiques :
Oprateurs arithmtiques Oprateurs de comparaison Oprateurs logiques
Oprateur Opration Oprateur Opration Oprateur Opration
+ Addition = Egalit AND ET
- Soustraction <> Diffrent OR OU
* Multiplication > Suprieur XOR OU exclusif
/ Division < Infrieur NOT NON
div Division entire <= Infrieur ou gale SHL Dcalage gauche
mod Reste de la division
entire
>= Suprieur ou gale SHR Dcalage droite
6- Les structures usuelles :
a- Laffectation : Cest laction dattribuer une valeur une variable.
Langage algorithmique Langage PASCAL
a<== b+c a :=b+c
b- Les structures alternatives :
Langage algorithmique
Langage PASCAL
SI condition ALORS
DEBUT
Traitement ;
;
FINSI ;
IFcondition THEN
BEGIN
Traitement ;
.
END;
SI condition ALORS
DEBUT
Traitement 1;
;
FIN
SINON
DEBUT
Traitement 2;
;
FINSI ;
IFcondition THEN
BEGIN
Traitement 1;
;
END
ELSE
BEGIN
Traitement 2;
;
END;
SELON expression
Valeur_1 : action_ 1 ;
;
Valeur_n : action_n ;
autrement : action_0 ;
FINSELON ;
CASE expression OF
Valeur_1 :action_1;
;
Valeur_n : action _n ;
ELSE action_0 ;
END;
CHAPITRE 1 AUTOMATIQUE
Arithmtique binaire Cours de Kaouana Ismail 55 ~
c- Les structures itratives ou rptitives :
Langage algorithmique Langage PASCAL
I : entier ;
;
POUR I <Valeur initiale>
JUSQU'A <valeur finale>
FAIRE
DEBUT
Traitement ;
;
FINFAIRE ;
I: integer;
..
FOR I:= <valeur initiale>
TO <Valeur finale>
DO
BEGIN
Traitement ;
;
END;
TANQUE condition FAIRE
DEBUT
Traitement ;
;
FINTANQUE ;
WHILE condition DO
BEGIN
Traitement ;
;
END;
d- Les procdures et les fonctions :
Une suite d'instructions peut tre rassemble en un bloc qui peut tre appel depuis plusieurs endroits d'un
programme. Ceci donne lieu aux notions de sous programme appel aussi procdures ou fonctions.
Procdures :
Ce sont des groupes d'instructions qui vont former une nouvelle instruction simple utilisable dans un
programme. En Pascal il faut les dfinir avant de les utiliser. Ceci se fait en utilisant une structure similaire
celle d'un programme.
Entte :
Procedure Identificateur (Param1:Type1, Param2:Type2,...);
Identificateur est le nom de la procdure; Param1, Param2 ... sont des paramtres que le programme fournit la
procdure sous forme de constantes, de variables ou d'expressions; Type1, Type2 ... sont les types de ces
paramtres.
Dclarations :
Dclarations de constantes, types, variables utiliss l'intrieur de la procdure
Corps de la procdure
Begin
Instruction1; Instruction2;..
End;
Il s'agit des instructions excutes par le programme l'appel de la procdure. Une procdure peut appeler
d'autres procdures dfinies avant elle. L'appel d'une procdure se fait en crivant son nom suivi des paramtres
ncessaires entre parenthses.
Fonctions :
Une fonction est une procdure qui devra fournir un rsultat de type numrique ou chane de caractres. La
dfinition se fait en utilisant une structure similaire celle de la procdure.
Entte :
Function Identificateur (Param1:Type1, Param2:Type2,...):Type_R;
Identificateur est le nom de la procdure; Param1, Param2 ... sont des paramtres que le programme fournit la
fonction sous forme de constantes, de variables ou d'expressions; Type1, Type2 ... sont les types de ces
paramtres; Type_R est le type du rsultat fourni par la fonction.
Dclarations
Dclarations de constantes, types, variables utiliss l'intrieur de la fonction.
CHAPITRE 1 AUTOMATIQUE
Arithmtique binaire Cours de Kaouana Ismail 56 ~
Corps de la fonction
Begin
Instruction1;
Instruction2;..
Identificateur:=rsultat;
End;
Il s'agit des instructions excutes par le programme l'appel de la fonction. L'une de ces instructions doit
fournir le rsultat de la fonction en l'affectant au nom de la fonction. L'appel d'une fonction se fait en crivant
son nom suivi des paramtres ncessaires entre parenthses. Elle reprsente une expression du type du rsultat
fourni.
7- Les fonctions adaptes aux microcontrleurs PIC :
Le compilateur mikropascal apporte une large bibliothque de procdures et fonctions adaptes aux
microcontrleurs de la famille PIC de MICROCHIP. Ces fonctions sont accessibles dans laide du logiciel
nanmoins on va citer quelque une.
Fonctions / Procdures
Exemple
Setbit(port , bit) ; Setbit(portB,2) ; mettre la broche RB2 1
Clearbit(port , bit) ; Clearbit(portB,5); mettre la broche RB5 0
Testbit(port , bit) A :=testbit(portB,7);affecter la variable A ltat de RB7
Delay_ms(temps) ; Delay_ms(150) ; attente de 150 ms
Button(port,bit,temps dappui,tat logique actif) If Button(portA,2,10,1) then <Action 1> ;
On teste lappui sur un bouton poussoir
reli la broche RA2 pendant 10 ms
pour faire lAction 1
8 - Les interruptions
a- Qu'est-ce qu'une interruption ?
Imaginez une conversation normale. Chaque interlocuteur prend la parole quand vient son tour de parler.
Survient alors un vnement extrieur dont le traitement est urgent. Par exemple une voiture s'engage dans
votre direction. Vous imaginez bien que votre interlocuteur ne va pas attendre la fin de votre phrase pour vous
signaler le danger. Il va donc vous interrompre durant le
cours normal de votre conversation ; afin de pouvoir traiter immdiatement l'vnement extrieur.
Les interlocuteurs reprendront leur conversation o elle en tait arrive, sitt le danger cart.
b- Les interruptions du microcontrleur PIC16F84:
L'excution d'une procdure d'interruption rpond un vnement qui peut tre interne ou externe au
microcontrleur. L'appel d'une procdure d'interruption ne dpend pas du programme principal, mais elle
l'interrompe pendant son excution.
Dans une procdure d'interruption on ne peut pas appeler une autre procdure. Le compilateur Mikropascal
utilise une directive spciale pour le nom de la procdure (Procedure interrupt) pour la diffrencier avec les
autres procdures logicielles.
Syntaxe :
Procedure interrupt;
Begin
Instruction 1;

Instruction n;
End;
On notera que le 16F84 possde 4 sources d'interruptions:
Un changement d'tat sur les broches RB4 RB7;
CHAPITRE 1 AUTOMATIQUE
Arithmtique binaire Cours de Kaouana Ismail 57 ~
Une source externe via la broche RB0/INT ;
Le dbordement du timer 0 ;
La programmation de l'EEPROM de donnes.
Le registre INTCON est utilis pour le contrle et la gestion des interruptions.
On s'intressera uniquement l'interruption externe via la broche RB0/INT, donc on aura manipuler
uniquement les trois bits suivants:
Le bit GIE, "Global lnterrupt Enable", mis 1 autorise toutes les interruptions non masques par leur bit
individuel.
Le bit INTE, "Interrupt Enable", mis 1, autorise les interruptions sur RB0/INI.
Le bit INTF, "Interrupt Flag", est un indicateur, il est mis 1 si une interruption est gnre sur RB0/INI. Il
doit tre remis 0 par le logiciel dans le programme de traitement de l'interruption.
Les autres bits du registre INTCON sont utiliss pour le contrle des trois autres sources d'interruptions, dans
notre cas ces bits sont gales 0.
Pour activer l'interruption externe via la broche RB0/INT on doit affecter la valeur (90)H au registre INTCON :
INTCON GIE EEIE TOIE INTE RBIE TOIF INTF RBIF
INTCON 1 0 0 1 0 0 0 0 =(90)H
Raliser lactivit pratique N7 du TP-A41 dans le manuel dactivits
e Applications :
Exercice N1 : Traduction d'un GRAFCET de point de vue partie commande en un programme en Mikropascal
pour le microcontrleur PIC16F84A.- Soit le GRAFCET suivant :
0
Dcy
1
a
2
3
14M1
KM2
12M1
b
c
Tableau daffectations
Entres Sorties
Capteurs Broches PIC Practionneurs Broches PIC
Dcy RBo 14M1 RA0
a RB1 KM2 RA1
b RB2 12M1 RA2
c RB3
1- Traduire le GRAFCET en algorithme.
2- Transformer cet algorithme en programme en Mikropascal .
3- Donner le schma de simulation avec le logiciel ISIS
CHAPITRE 1 AUTOMATIQUE
Arithmtique binaire Cours de Kaouana Ismail 58 ~
On donne le schma de simulation :
Exercice N2 : Traduction des quations d'un systme combinatoire en un programme en Mikropascal pour le
microcontrleur PIC16F84A.Soit les quations suivantes :
1 = . .

; S2 BC ; S3 A+B.

; S4 A +B

; S =

1-Traduire les quations en algorithme.


2-Transformer cet algorithme en programme en Mikropascal .
3-Donner le schma de simulation avec le logiciel ISIS
On donne le tableau daffectation :
Affectations des entres / sorties pour le PIC 16F84A
Entres Sorties
A RA0 S1 RB0
B RA1 S2 RB1
C RA2 S3 RB2
S4 RB3
S5 RB4
OSC1/CLKIN
16
RB0/INT
6
RB1
7
RB2
8
RB3
9
RB4
10
RB5
11
RB6
12
RB7
13
RA0
17
RA1
18
RA2
1
RA3
2
RA4/T0CKI
3
OSC2/CLKOUT
15
MCLR
4
U1
PIC16F84A
X1
CRYSTAL
C1
15p
C2
15p
VCC
VCC
R2
4.7k
R3
4.7k
R4
4.7k
R8
4.7k
R1
4.7k
Dcy
a
b
c
R5
270
R6
270
R7
270
14M1
KM2
12M1
CHAPITRE 1
Arithmtique binaire
On donne le schma de simulation :
Exercice N3 : (Perceuse automatique)
Le systme prsent est une perceuse qui est insre dans une ligne de production continue.
Un oprateur place la pice devant tre perce et la serre dans un tau.
Aprs l'ordre de dpart cycle"dcy" la perceuse effectue, selon l'paisseur de la pice, un cycle avec ou sans dbourrage. On
donne le Grafcet de point de vue partie commande.
KM1 : contacteur pour la descente rapide. KM2 : contacteur pour la descente lente.
Travail demand :
1- Reprsenter le fonctionnement par un algorithme.
2- Traduire cet algorithme en un programme en mikropascal.
Exercice N4 : Compteur modulo 10 avec afficheur 7 sgments

Arithmtique binaire Cours de Kaouana Ismail
Le systme prsent est une perceuse qui est insre dans une ligne de production continue.
devant tre perce et la serre dans un tau.
Aprs l'ordre de dpart cycle"dcy" la perceuse effectue, selon l'paisseur de la pice, un cycle avec ou sans dbourrage. On
donne le Grafcet de point de vue partie commande.
KM2 : contacteur pour la descente lente. KM3 : contacteur pour la monte rapide.
Reprsenter le fonctionnement par un algorithme.
Traduire cet algorithme en un programme en mikropascal.
modulo 10 avec afficheur 7 sgments :
AUTOMATIQUE
59 ~
Aprs l'ordre de dpart cycle"dcy" la perceuse effectue, selon l'paisseur de la pice, un cycle avec ou sans dbourrage. On vous
KM3 : contacteur pour la monte rapide.
CHAPITRE 1
Arithmtique binaire
Exercice N5 : Afficheur LCD
Programme :
program Exemple1;
begin
lcd_init(portb);
while true do
begin
lcd_cmd(lcd_cursor_off);
lcd_out(1,4,'FORMATION');
lcd_out(2,2,'En MikroPascal');
delay_ms(1000);
lcd_Cmd(lcd_clear);
delay_ms(1000);
end;
end.
Schma de la simulation :
Exercice N6 : Compteur modulo100 avec afficheur LCD
Schma de simulation :

Arithmtique binaire Cours de Kaouana Ismail
: Compteur modulo100 avec afficheur LCD
AUTOMATIQUE
60 ~
CHAPITRE 1
Arithmtique binaire
Exercice N8 : Commande dun moteur pas pas unipolaire
Le moteur pas pas doit tre utilis avec un buffer ULN2003A
phase1
phase2 phase3
phase 4
Moteur pas pas unipolaire 4 phases
Sens AV
Ph1
Ph2 Ph3
1
1
0
1
0
0
1
0
Schma de simulation : Attention aux ordre des phases

Arithmtique binaire Cours de Kaouana Ismail
Commande dun moteur pas pas unipolaire dans les deux sens de rotations
Le moteur pas pas doit tre utilis avec un buffer ULN2003A
+VCC
phase3
Sens AV Sens AR
Ph3 Ph4 Dec Ph1 Ph2 Ph3 Ph4 Dec
0 0 12 1 0 0 1 9
1 0 6 0 0 1 1 3
1 1 3 0 1 1 0 6
0 1 9 1 1 0 0 12
Attention aux ordre des phases
Si PortA.0 = 1 Sens avant AV
Si portA.0 = 0 Sens Arrire AR
RB0 , RB1, RB2 ,RB3 sont affects
respectivement au phase1 , phase2 ,
phase3 et phase4 .
AUTOMATIQUE
61 ~
dans les deux sens de rotations :
Dec
9
3
6
12
Sens avant AV
Sens Arrire AR
RB1, RB2 ,RB3 sont affects
respectivement au phase1 , phase2 ,

También podría gustarte