ANNEXE PIC 4T 2020 2021 .pdf
Nom original: ANNEXE PIC 4T- 2020-2021 .pdf
Ce document au format PDF 1.5 a été généré par / doPDF Ver 7.3 Build 391 (unknown Windows version - Version: 10.0.19041 (x64)), et a été envoyé sur fichier-pdf.fr le 02/01/2021 à 15:09, depuis l'adresse IP 154.111.x.x.
La présente page de téléchargement du fichier a été vue 13 fois.
Taille du document: 701 Ko (8 pages).
Confidentialité: fichier public
Aperçu du document
I - PROGRAMMATION EN MIKROPASCAL :
1 - Structure d’un programme :
Un programme est un texte que le compilateur va traduire en fichier hexadécimal. Le texte d'un programme
contient au moins trois parties.
a- L'entête : commence par le mot réservé " Program " suivi par le nom du projet.
b- Les déclarations : On déclare les variables, les Procédures et les fonctions utilisées dans le
programme.
c- Le corps du programme : Commence par " Begin " et se termine par "End " suivi d'un point final.
Entre "Begin" et "End" se trouvent les instructions à effectuer par le programme.
Algorithmique
Langage PASCAL
Algoritme Nom Algorithme ;
Variables
Program Nom programme ;
Var
Nom variable : Type ;
Nom constante : Type =valeur ;
Début
Const
Nom constante : Type =valeur ;
Begin
……..
// Programme
……..
Fin.
// Entête
// Déclaration
Nom variable : Type ;
Constantes
Commentaires
principal
End.
2 - Les règles de bases :
a- Toutes instructions ou actions se terminent par un point virgule ;
b- Une ligne de commentaires doit commencer par "{" et se terminer par "}" ou commence par "//".
c- Un bloc d'instructions commence par "Begin" et se termine par "End".
3 - Les types de variables utilisées en Mikropascal :
Type
Désignation
Taille
Rang
Bit
Bit registre
octet
Caractère ASCII
mot
Octet signé
Entier
Entier long
bit
sbit
byte
char
word
short
integer
longint
1 bit
1 bit
8 bits
8 bits
16 bits
8 bits
16 bits
32 bits
Réel
real
32 bits
Tableau
Array[n]of type
n éléments
0 ou 1
0 ou 1
0 - 255
0 - 255
0 - 65535
-128 à +127
-32768 à +32767
-2147483648 à +214783647
±1.17549435082 * 10-38 à
±6.80564774407 * 1038
Rang du type
Chaîne de caractères
String[N]
N*8bits
0 – 255(pour chaque caractère)
N.L
Documents technologiques pour PIC
Page :
1/8
4 - Les bases du compilateur Mikropascal :
Le décimal : A = 12 ; L’hexadécimal : A = $0C ou A = 0x0C ; Le binaire A = %0001100
5- Les opérateurs arithmétiques :
Opérateur
+
*
Opération
Addition
Soustraction
Multiplication
Opérateur
/
Div
Mod
Opération
Division
Division : arrondit à l'entier le plus proche
reste de la division entière
6- Les opérateurs de comparaison :
Opérateur
=
<>
>
Opération
Egalité
Différent
Supérieur à
Opérateur
<
>=
<=
Opération
Inférieur à
Supérieur ou égale
Inférieur ou égale
7- Les opérateurs logiques :
Opérateur
Opération
And
Fonction ET logique
Or
Fonction OU logique
- décalage à droite
- chaque bit de l’octet a est déplacé
Shr
vers la droite
- exemple : si a = 1101 alors :
a shr 2 = 0011
Opérateur
Opération
Not
complement : inverser chaque bit
Xor
Fonction XOR logique
- décalage à gauche
- chaque bit de l’octet a est déplacé
Shl
vers la gauche
- exemple : si a = 1101 alors :
a shl 2 = 0100
8 - Les structures usuelles :
a- L'affectation : C'est l'action d'attribuer une valeur à une variable.
Langage graphique
a = b+c
Langage algorithmique
Langage PASCAL
a b+c
a : = b+c
b- Structure répétitive:
Structure : Boucle While
Langage Graphique
Langage algorithmique
Langage mikropascal
TANQUE condition
FAIRE
DEBUT
Action ;
FINFAIRE ;
WHILE condition DO
BEGIN
Action ;
END ;
- L’action est exécutée de façon répété tant que la condition est vraie.
- L’action ne s’exécute pas si la condition est fausse.
Structure : Boucle Repeat
Langage Graphique
Langage algorithmique
Langage mikropascal
REPETER
REPEAT
DEBUT
BEGIN
Action ;
Action ;
FIN ;
END ;
JUSQU’A condition
UNTIL condition;
-L’action est exécutée de façon répété tant que la condition est fausse.
-L’action est exécutée une seule fois si la condition est vraie.
N.L
Documents technologiques pour PIC
Page :
2/8
Structure : for .. To .. do :
Langage Graphique
Langage algorithmique
POUR n variant de valeur_initiale
JUSQU’A valeur_finale FAIRE
DEBUT
Action ;
FIN ;
FINFAIRE ;
Langage mikropascal
FOR n :=valeur_initiale
TO valeur_finale DO
DEBUT
Action ;
FIN ;
END ;
c- Structure conditionnelle :
Structure : if ... Then …
Langage graphique
Langage algorithmique
Langage MikroPascal
Si condition ALORS
DEBUT
Action ;
FINSI ;
IF condition THEN
BEGIN
Action ;
END;
Structure : if ... Then ... else …
Langage graphique
Langage algorithmique
SI condition ALORS Action1 ;
SINON Action2 ;
Langage MikroPascal
IF condition THEN Action1
ELSE Action2 ;
Structure : case ... of ...
Utiliser dans le cas d’une longue série des conditions en cascade
Langage graphique
Langage algorithmique
Selon expression
Val1 : Action1 ;
Val2 : Action2 ;
…
ValN : ActionN;
Autrement : Action0 ;
FinSelon
Langage MikroPascal
Case expression of
Val1 : Action1 ;
Val2 : Action2 ;
…
ValN : ActionN;
Else : Action0
End ;
II- Différents types de PIC :
Le PIC 16F84 :
La Figure ci-contre montre le brochage du circuit.
Les fonctions des pattes sont les suivantes :
- VSS, VDD : Alimentation
- OSC1, 2 : Horloge
- RA0-4 : Port A
- RB0-7 : Port B
- T0CKL : Entrée de comptage
- INT : Entrée d'interruption
- MCLR : Reset
N.L
Documents technologiques pour PIC
Page :
3/8
Le PIC 16F628 :
Le 16F628 possède jusqu'à
16 entrées/sorties :
6 dans le port A (RA0 à RA7)
8 dans le port B (RB0 à RB7)
Le PIC 16F876 :
Le 16F876 possède jusqu'à
22 entrées/sorties :
6 dans le port A (RA0 à RA5)
8 dans le port B (RB0 à RB7)
8 dans le port C (RC0 à RC7)
Le PIC 16F877 :
Le 16F877 possède jusqu'à
33 entrées/sorties :
6 dans le port A (RA0 à RA5)
8 dans le port B (RB0 à RB7)
8 dans le port C (RC0 à RC7)
8 dans le port D (RD0 à RD7)
3 dans le port E (RE0 à RE2)
III- LE TIMER :
1- Définition : Le Timer est un module intégré dans les microcontrôleurs type PIC. Il assure la
fonction comptage ou la fonction temporisation.
Le choix du mode de fonctionnement se fait par programmation du registre OPTION_REG.
Mode compteur : le TIMER0 est un compteur modulo 256 qui permet de compter le nombre des
impulsions reçues sur la broche RA4/TOCKI.
Mode Temporisateur : le TIMER0 est un compteur modulo 256 qui permet de compter le nombre
des impulsions d’horloge reçues sur la broche Osc1/Osc2.
2- Principe de fonctionnement :
N.L
Documents technologiques pour PIC
Page :
4/8
3- Registre de contrôle :OPTION_REG :
Bit 7
Bit 6
Bit5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RBPU
INTEDG
TOCS
TOSE
PSA
PS2
PS1
PS0
Le tableau suivant résume les huit bits du registre OPTION_REG:
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Prédivision
RBPU
INTEDG
TOCS
TOSE
PSA
PS2
PS1
PS0
TMR0 WDT
Pull up
1 : RB0/INT
Timer0
Timer0
Prédiviseur
0
0
0
2
1
sur portB
active au
clock select
source edge
0
0
1
4
2
0
1
0
8
4
0
1
1
16
8
1
0
0
32
16
1
0
1
64
32
1
1
0
128
64
1
1
1
256
128
front mon
1:
(RA4)
1 : Compteur (RA4)
désactivé
0 : activé
0: Timer0
0 : front
0 : RB0/INT
montant
1:chien de
active au
1 : front
garde
descendant
(WDT)
front des
0 : Temporisateur
NB : Quand le prédiviseur est affecté au watchdog (PSA=1), le TMR0 est prédivisé par 1.
IV- Les afficheurs LCD :
Les afficheurs à cristaux liquides, autrement appelés afficheurs LCD.
Bibliothèque LCD :
Lcd_Init();
Lcd_Out(ligne: byte;
colonne: byte; var texte:
string);
Lcd_Chr(ligne: byte;
colonne: byte;
caractere: byte);
Lcd_Cmd( commande:
byte);
Description
Initialiser le module LCD en
respectant les connexions déclarées
Imprime le texte sur l'écran LCD à
partir de la position spécifiée.
• ligne: la position de départ
numéro de ligne
• Colonne: la position de départ
numéro de colonne
• Texte: texte à rédiger
Afficher caractère sur l'écran LCD à
la position spécifiée.
Envoie une commande à LCD
Exemple
Lcd_Init();
Lcd_Out(1, 3, "Hello!");
// écrire texte « Hello! » sur LCD
à la position ( ligne 1, colonne 3)
Lcd_Chr(2, 3, 'i');
// écrire le caractère « i » sur LCD
à la position (ligne2, colonne3)
Lcd_Cmd(_LCD_CLEAR);
//effacer l’écran LCD
V- Conversion Analogique Numérique : CAN ou ADC
1- Introduction : - Le PortA est un Port multiplexé en mode analogique noté (AN) et en mode numérique
noté (RA) : (RA) : mode logique (0 ou 1) ; (AN) : mode analogique (de 0 à 5V)
Pour PIC16F628A : Pour initialiser les broches du PortA en mode logique en doit configurer le
registre CMCON :=7;
Pour PIC16F876A ou PIC16F877A : Pour initialiser les broches du PortA en mode logique en doit
configurer le registre : ADCON1 :=6 ;
Pour PIC16F84A : les broches du PortA sont non multiplexées et ils sont en mode logique.
N.L
Documents technologiques pour PIC
Page :
5/8
Les microcontrôleurs PIC 16F87X possèdent un module de conversion permettant de convertir une tension
analogique, appliquée sur l’un des 8 canaux (de AN0 à AN7 pour le PIC 16F877A) ou l’un des 5 canaux
(de AN0 à AN4 pour le PIC 16F876A), comprise entre Vréf - et Vréf + en une valeur numérique N de 10 bits
2- Principe de fonctionnement :
Le convertisseur analogique-numérique (CAN ou ADC) permet de convertir une grandeur analogique
(tension Ue) en une valeur numérique (nombre N) :
3- Bibliothèque d’un CAN :
Description
ADC_Init();
Exemple
- Initialiser le module ADC de PIC.
- initialiser le module et configurer le
channel spécifié comme entrée.
ADC_Init();
// Initialiser le module ADC
var tmp : word; // tmp : valeur
ADC_Read(channel : byte)
- démarrer une opération de conversion.
: word;
- lire la tension analogique sur le channel
et le convertir en une valeur numérique
numérique de 0..1023
- lire le résultat de conversion
ADC_Get_Sample(channel uniquement.
- Remarque : Il faut initialiser le module
: byte) : word;
avant d’appeler cette fonction
var tmp : word; // tmp : valeur
tmp := ADC_READ(2);
numérique de 0..1023
tmp := ADC_Get_Sample(2);
4- Conversion d’un nombre en une chaine de caractère :
ByteToStr :
procedure ByteToStr(nombre : byte; var chaine : array[3] of char);
Description Convertir un nombre en une chaine de caractères,
var N : byte;
txt : Sting[3] ;
N := 24;
Exemple
ByteToStr(N, txt);
// N = 24 = nombre , txt ="˽24" = 3 chaines de caractère
Autres procédures de conversion des données :
WordToStr( )
;
IntToStr ( ) ;
5- Registre de configuration :
ADCON1 :
Bit 7
Bit 6
Bit5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
ADFM
-
-
-
PCFG3
PCFG2
PCFG1
PCFG0
Bit « 7 » : ADFM : Justification du résultat
de la conversion sur 10 bits « ADRESH-ADRESL ».
ADFM = 1 : justification à droite,
ADFM = 0 : justification à gauche
Bits « 6 : 5 : 4 » : non utilisés lire 0.
Bits « 3 à 0 » : PCFG3 PCFG2 PCFG1 PCFG0 : Configuration des E/S et des tensions de références.
N.L
Documents technologiques pour PIC
Page :
6/8
Les 5 broches de PORTA peuvent être configurés soit en E/S digitales, soit en entrées analogiques.
RA2 et RA3 peuvent aussi être configurées en entrée de référence.
ADCON1
PIC 16F876
PIC 16F877
Port A
Port E
Tension de référence
ADFM
-
-
-
PCFG3
PCFG2
PCFG1
PCFG0
AN7/RE2
AN6/RE1
AN5/RE0
AN4/RA5
AN3/RA3
AN2/RA2
AN1/RA1
AN0/RA0
1
1
1
1
1
1
-
-
-
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
×
1
0
A
D
D
D
D
D
A
D
D
D
D
D
A
D
D
D
A
D
A
A
D
D
A
D
A
A
A
D
A
D
A
A
D
D
A
D
A
A
A
D
A
D
A
A
A
D
A
A
Vréf+
Vréf-
VDD
VDD
VDD
VDD
VDD
VDD
Vss
Vss
Vss
Vss
Vss
Vss
A : entrée analogique ; D : entrée numérique ; - : état 0 ou 1
VI- Modulation de largeur d’une impulsion : MLI ou PWM
1- Principe :
La PWM est un module intégré dans le PIC qui consiste à générer un signal carré de période constante
mais à rapport cyclique α variable. (C’est le principe d’un hacheur série)
2- Bibliothèque d’un MLI :
Description
Initialiser le module pour générer sur la
PWMi_Init(f)
sortie CCPi un signal PWM à la
fréquence f
Exemple
PWM1_ Init (5000) ;
Initialise le module à f = 5KHz
Changer le rapport α (0 < α < 1)
PWM1_Set_Duty(192) ;
α= alpha / 255 et 0 < alpha <255
= 192 / 255 = 0.75
PWMi_Start
Démarrer le signal PWM
PWM1_Start() ;
PWMi_Stop
Arrêter le signal PWM
PWM1_Stop() ;
PWMi_Set_Duty(alpha)
N.L
Documents technologiques pour PIC
Page :
7/8
VII - Procédure prédéfinie :
1- Procédure INC ( ) ;
L’instruction N :=N+1 peut être remplacée par la procédure prédéfinie INC
Prototype
Procedure Inc (var p : longint);
Description
Incrémenter p par 1.
Exemple
p := 4; // p =4
Inc(p); // p = 5
2- Procédure DEC ( ) ;
L’instruction N :=N-1 peut être remplacée par la procédure prédéfinie DEC
Prototype
Procedure Dec (var p : longint);
Description
décrémenter p par 1.
Exemple
p := 4; // p =4
Inc(p); // p = 3
3- Procédure Delay_ms ( ) ;
Prototype
procedure Delay_ms(time_in_ms : const
dword);
Exemple
Delay_ms(1000); // pause d’une seconde
4- Procédure SetBit :
Prototype
procedure SetBit(var register : byte; bit_registre : byte);
Description
Mettre le bit du registre à 1
Exemple
SetBit(PORTB, 2); // mettre à 1 le bit N°2 du registre PORTB
équivalence L’instruction SetBit(PORTB,2) est équivalente à l’instruction :
PORTB.2 :=1 ;
5- Procédure ClearBit :
Prototype
procedure ClearBit(var register : byte; bit_registre : byte);
Description
Mettre le bit du registre à 0
Exemple
ClearBit(PORTC,7) ; // mettre à 0 le bit N°7du registre PORTC
Equivalence L’instruction ClearBit(PORTC,7) est équivalente à l’instruction :
PORTC.7 := 0;
6- Procédure TestBit :
Prototype
function TestBit(register, bit_registre : byte) : byte;
Description
Si le bit du regsitre égale 1 alors TestBit = 1 sinon alors TestBit = 0
Exemple
KM:= TestBit(PORTD,3); // Si PORTD.3 = 1 alors le relais KM =1
// si PORTD = 0 alors le relais KM=0
Equivalence
If PortD.3 = 1 then KM :=1 else KM :=0 ; est équivalent à
KM :=TestBit(Portd,3) ;
N.L
Documents technologiques pour PIC
Page :
8/8
Télécharger le fichier (PDF)
ANNEXE PIC 4T- 2020-2021 .pdf (PDF, 701 Ko)