1/10 N.L Documents technologiques pour PIC Page : I - PROGRAMMATION EN MIKROPAS
1/10 N.L Documents technologiques pour PIC Page : 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. 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 1 bit 0 ou 1 Bit registre sbit 1 bit 0 ou 1 octet byte 8 bits 0 - 255 Caractère ASCII char 8 bits 0 - 255 mot word 16 bits 0 - 65535 Octet signé short 8 bits -128 à +127 Entier integer 16 bits -32768 à +32767 Entier long longint 32 bits -2147483648 à +214783647 Réel real 32 bits ±1.17549435082 * 10-38 à ±6.80564774407 * 1038 Tableau Array[n]of type n éléments Rang du type Chaîne de caractères String[N] N*8bits 0 – 255(pour chaque caractère) Algorithmique Langage PASCAL Commentaires Algoritme Nom Algorithme ; Variables Nom variable : Type ; Constantes Nom constante : Type =valeur ; Début …….. Fin. Program Nom programme ; Var Nom variable : Type ; Const Nom constante : Type =valeur ; Begin …….. End. // Entête // Déclaration // Programme principal 2/10 N.L Documents technologiques pour PIC Page : 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 Opérateur Opération + Addition / Division - Soustraction Div Division : arrondit à l'entier le plus proche * Multiplication Mod reste de la division entière 6- Les opérateurs de comparaison : Opérateur Opération Opérateur Opération = Egalité < Inférieur à <> Différent >= Supérieur ou égale > Supérieur à <= Inférieur ou égale 7- Les opérateurs logiques : Opérateur Opération Opérateur Opération And Fonction ET logique Not complement : inverser chaque bit Or Fonction OU logique Xor Fonction XOR logique Shr - décalage à droite - chaque bit de l’octet a est déplacé vers la droite - exemple : si a = 1101 alors : a shr 2 = 0011 Shl - décalage à gauche - chaque bit de l’octet a est déplacé 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. 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 DEBUT Action ; FIN ; JUSQU’A condition REPEAT BEGIN Action ; END ; 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. Langage graphique Langage algorithmique Langage PASCAL a b+c a : = b+c a = b+c 3/10 N.L Documents technologiques pour PIC Page : Structure : for .. To .. do : Langage Graphique Langage algorithmique Langage mikropascal POUR n variant de valeur_initiale JUSQU’A valeur_finale FAIRE DEBUT Action ; FIN ; FINFAIRE ; 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 Langage MikroPascal SI condition ALORS Action1 ; SINON Action2 ; 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 Langage MikroPascal Selon expression Val1 : Action1 ; Val2 : Action2 ; … ValN : ActionN; Autrement : Action0 ; FinSelon 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 4/10 N.L Documents technologiques pour PIC Page : 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- Les interruptions : 1- Définition : Une interruption est un événement qui provoque l’arrêt d’un programme en cours d’exécution pour aller exécuter un autre programme appelé programme (ou routine ) d’interruption. A la fin du programme d’interruption le microcontrôleur reprend le programme principal à l’endroit où il s’est arrêté. Donc Une interruption est un programme qui a une totale priorité sur le déroulement global d’un programme. En l’absence d’interruption, le programme se déroule de la façon dont a décidé L'exécution d'une procédure d'interruption répond à un évènement qui peut être interne ou externe au microcontrôleur. Dans la suite, on s’intéresse uniquement aux interruptions externes. 2- Les interruptions externes : Un changement d'état sur la broche RB0/INT Un changement d'état sur l’une des broches RB4 à RB7; R Re eg gi is st tr re e I IN NT TC CO ON N (INTerrupt CONTroler): : ( (P PI IC C 1 16 6F F6 62 28 8 - - P PI IC C 1 16 6F F8 87 76 6 - - P PI IC C1 16 6F F8 87 77 7) ) Pour le PIC 16F84A le bit 6 est : EEIE (EEPROM Interrupt Enable bit) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 5/10 N.L Documents technologiques pour PIC Page : 3- Déroulement d'une interruption : Lorsque l'événement déclencheur d'une interruption intervient, alors son drapeau est positionné à un (levé). Si l'interruption correspondante a été validée (au cours du programme), elle est alors déclenchée : le programme arrête ce qu'il est en train de faire et va exécuter la procédure d’interruption. Interruption RB0/INT : L’interruption externe RB0/INT se produit sur le front montant ou descendant sur l’entrée RB0. Configuration de l’interruption RB0/INT : L’interruption externe RB0/INT est gérée par 4 bits : - GIE : bit de validation globale de toutes les interruptions (1 = oui, 0 = non) - INTE : bit de validation de l’interruption externe RB0/INT (1 = oui, 0 = non) - INTF : indicateur ou drapeau correspondant à l’interruption externe RB0/INT - INTEDG : type du front sur l’entrée RB0/INT (INTEDG = 1 : Front montant ; INTEDG = 0 : Front descendant) (Registre PTION_REG) Pour activer l'interruption externe via la broche RB0/INT on doit affecter au registre INTCON : Pour pouvoir revenir au programme principal et autoriser de nouvelles interruptions sur la broche RB0/INT, il faut mettre : Intcon.GIE :=1 ; Intcon.INTF :=0 ; à la fin du sous-programme d’interruption. N.B : si on veut produire l’interruption sur le front descendant ou le front montant d’une impulsion appliquée sur RB0 on doit configurer le registre OPTION_REG INTEDG = 1 : interruption si front montant sur RB0. INTEDG = 0 : interruption si front descendant sur RB0. Bit7 GIE Global Interrupt Enable : autorise toute les sources d’interruption Bit6 PEIE Peripheral Interrupt Enable : interruptions causées par les périphériques. Bit5 T0IE Timer0 Overflow Interrupt Enable : Interruption suite au débordement du uploads/Finance/ annexe2-pic-lotfi-pdf.pdf
Documents similaires








-
27
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 26, 2022
- Catégorie Business / Finance
- Langue French
- Taille du fichier 0.6296MB