2010 Bouajila Wajdi Département Technologies de l’Informatique de DJERBA Pic 16

2010 Bouajila Wajdi Département Technologies de l’Informatique de DJERBA Pic 16f84 p. 2 Table des matières I. QU'EST-CE QU'UN PIC ? .......................................................................................... 4 II. PIC 16F84 ................................................................................................................. 6 1. Brochage et fonction des pattes ...................................................................................................................... 6 2. Architecture générale ......................................................................................................................................... 7 III. ORGANISATION DE LA MEMOIRE ........................................................................ 8 1. Mémoire de programme................................................................................................................................... 8 2. Mémoire de données.......................................................................................................................................... 8 a. Registres généraux ......................................................................................................................... 9 b. Registres spéciaux – SFRs .............................................................................................................. 9 c. Mémoire EEPROM ........................................................................................................................12 IV. JEU D'INSTRUCTIONS .......................................................................................... 12 1. Format général...................................................................................................................................................13 2. Exemple d'instruction – le transfert ..............................................................................................................13 3. Liste des instructions ........................................................................................................................................15 4. Exécution d'un programme – notion de pipe-line......................................................................................16 V. MODES D'ADRESSAGES ....................................................................................... 16 1. Adressage immédiat .........................................................................................................................................17 2. Adressage direct ................................................................................................................................................17 3. Adressage indirect.............................................................................................................................................17 VI. PORTS D'ENTREES/SORTIES ............................................................................. 18 1. Port A ...................................................................................................................................................................18 2. Port B....................................................................................................................................................................19 VII. COMPTEUR ............................................................................................................ 19 1. Registre TMR0 ....................................................................................................................................................20 2. Choix de l'horloge..............................................................................................................................................20 3. Pré-diviseur.........................................................................................................................................................20 4. Fin de comptage et interruption ....................................................................................................................21 5. Registres utiles à la gestion de timer0 ..........................................................................................................21 VIII. ACCES A LA MEMOIRE EEPORM ........................................................................ 22 1. Registres utilisés ................................................................................................................................................22 2. Lecture .................................................................................................................................................................23 3. Ecriture.................................................................................................................................................................23 IX. INTERRUPTIONS .................................................................................................. 23 1. Différentes sources d'interruption ................................................................................................................24 2. Validation des interruptions ...........................................................................................................................25 3. Séquence de détournement vers le sous-programme d'interruption ...................................................25 4. Sauvegarde et restitution du contexte .........................................................................................................26 a. Où sauvegarder ces registres ?...................................................................................................26 b. Comment sauvegarder ces registres ? ......................................................................................27 c. Comment restituer ces registres ?.............................................................................................27 d. Résumé ...........................................................................................................................................27 5. Reconnaissance de l'interruption active ......................................................................................................28 6. Retour au programme initial...........................................................................................................................28 X. CHIEN DE GARDE.................................................................................................. 28 1. Principe ................................................................................................................................................................28 2. Mise en service ..................................................................................................................................................29 3. Gestion.................................................................................................................................................................29 4. Choix de la durée ...............................................................................................................................................29 XI. MODE SOMMEIL ................................................................................................... 29 1. Principe ................................................................................................................................................................29 2. Gestion.................................................................................................................................................................29 a. Mise en sommeil ...........................................................................................................................29 b. Réveil...............................................................................................................................................30 p. 3 XII. ASTUCES DE PROGRAMMATION ....................................................................... 30 1. Les comparaisons ..............................................................................................................................................30 2. Soustraire une valeur de w ........................................................................................................................30 3. Les multiplications ........................................................................................................................................31 4. Adressage indirect pointant sur 2 zones différentes.......................................................................33 5. Les tableaux en mémoire programme...................................................................................................34 XIII. BIBLIOGRAPHIE ................................................................................................... 37 p. 4 I. Qu'est-ce qu'un PIC ? Un PIC est un microcontrôleur de chez Microchip. Ses caractéristiques principales sont :  Séparation des mémoires de programme et de données (architecture Harvard) : On obtient ainsi une meilleure bande passante et des instructions et des données pas forcément codées sur le même nombre de bits.  Communication avec l'extérieur seulement par des ports : il ne possède pas de bus d'adresses, de bus de données et de bus de contrôle comme la plupart des microprocesseurs.  Utilisation d'un jeu d'instructions réduit, d'où le nom de son architecture : RISC (Reduced Instructions Set Construction). Les instructions sont ainsi codées sur un nombre réduit de bits, ce qui accélère l'exécution (1 cycle machine par instruction sauf pour les sauts qui requirent 2 cycles). En revanche, leur nombre limité oblige à se restreindre à des instructions basiques, contrairement aux systèmes d'architecture CISC (Complex Instructions Set Construction) qui proposent plus d'instructions donc codées sur plus de bits mais réalisant des traitements plus complexes. Il existe trois familles de PIC :  Base-Line : Les instructions sont codées sur 12 bits  Mid-Line : Les instructions sont codées sur 14 bits  High-End : Les instructions sont codées sur 16 bits Un PIC est identifié par un numéro de la forme suivant : xx(L)XXyy –zz - xx : Famille du composant (12, 14, 16, 17, 18) - L : Tolérance plus importante de la plage de tension - XX : Type de mémoire de programme C - EPROM ou EEPROM CR - PROM F - FLASH - yy : Identification - zz : Vitesse maximum du quartz Nous utiliserons un PIC 16F84 –10, soit : - 16 : Mid-Line - F : FLASH - 84 : Type - 10 : Quartz à 10MHz au maximum PIC10 et PIC12 Ce sont des composants récents. Ils ont comme particularités d'être extrêmement petits (pour donner une idée, existe en boîtier SOT-23 à 6 broches de moins de 3×3 mm), simples et économiques. PIC16 Composants de milieu de gamme (mid-range family). C'est la famille la plus fournie. La Famille 16F dispose dorénavant de 2 sous-familles : - La sous-famille 16Fxxx (3 chiffres) est la famille la plus connue. Ses limitations au niveau du jeu d'instruction et de la pile en font un mauvais candidat à l'utilisation du C, le langage d'assemblage restant le langage le p. 5 mieux adapté à cette famille en terme d'efficacité. Microchip ne fournit du reste pas de compilateur C pour cette famille. - La sous-famille 16Fxxxx( 4 chiffres) : il s'agit d'une nouvelle famille créée spécifiquement pour permettre l'utilisation du C via principalement l'ajout d'une série d'instructions destinées à faciliter et améliorer la compilation. Il s'agit probablement plus d'une solution marketing permettant de rendre les 16F accessibles aux amateurs de C en leur évitant d'aller regarder du côté de la concurrence que d'une véritable innovation. En réalité, un utilisateur de langage C a avantage à utiliser des 18F, ou, mieux, des Pic 16 ou 32 bits. PIC17 Gamme intermédiaire entre PIC16 et PIC18. Cette gamme n'est plus enrichie par Microchip. Elle supporte la compilation en C. PIC 18 Cette famille a un jeu d'instruction plus complet puisqu'il comprend de l'ordre de 75 instructions. Cette palette d'instructions étendue lui permet de faire fonctionner du code C compilé de manière nettement plus efficace que les familles précédentes. Le format natif de cette famille restant en 8 bits, et l'utilisation de la pile restant limitée, l'utilisation du C n'est cependant pas aussi optimale que sur les familles >= 16 bits. Pour Microchip, il s'agit de la première famille où l'utilisation du C devient envisageable, bien que les documentations continuent de privilégier l'utilisation du langage d'assemblage. On peut les utiliser avec un quartz oscillant jusqu'à 64 MHz. PIC24 Cette famille est sortie en 2004. L'utilisation du C y est plus efficace que sur les familles précédentes, du fait de l'utilisation du format 16 bits, du jeu d'instruction prévu en conséquence, et de la plus grande souplesse de la pile matérielle. Quelques caractéristiques à remarquer :  programmable avec le compilateur MPLAB C30, dérivé de GCC 3.3 (toutes les familles de microcontrôleurs 16 bits de chez Microchip peuvent être programmées avec ce compilateur) ;  dispose d'un port JTAG. PIC32 Sortis en novembre 2007, les PIC32 sont des microcontrôleurs 32 bits. Ils sont basés sur le cœur MIPS M4K. dsPIC30/dsPIC33 Le dsPIC (digital signal PICs) est le premier microcontrôleur de la société Microchip qui ait une architecture 16 bits (les autres étant à 8 bits). Il est adapté aux applications de traitement du signal et peut donc remplacer un DSP. p. 6 II. Pic 16F84 Il s'agit d'un microcontrôleur 8 bits à 18 pattes. Principales caractéristiques : - 35 instructions - Instructions codées sur 14 bits - Données sur 8 bits - 1 cycle machine par instruction, sauf pour les sauts (2 cycles machine) - Vitesse maximum 10 MHz soit une instruction en 400 ns (1 cycle machine = 4 cycles d'horloge) - 4 sources d'interruption - 1000 cycles d'effacement/écriture pour la mémoire flash, 10.000.000 pour la mémoire de donnée EEPROM 1. Brochage et fonction des pattes La Figure II.1 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 : 0V Choix du mode programmation : 12V - 14V Exécution : 4.5V - 5.5V Figure II.1 : Brochage du circuit. p. 7 2. Architecture générale La Figure II.2 présente l'architecture générale du circuit. Il est constitué des éléments suivants - un système d'initialisation à la mise sous tension (power-up timer, …) - un système de génération d'horloge à partir du quartz externe (timing génération) - une unité arithmétique et logique (ALU) - une mémoire flash de programme de 1k "mots" de 14 bits (III.1 - XII) - un compteur de programme (program counter) et une pile (stack) - un bus spécifique pour le programme (program bus) - un registre contenant le code de l'instruction à exécuter - un bus spécifique pour les données (data bus) - une mémoire RAM contenant - les SFR (III.2.2) - 68 octets de données(III.2.1) - une mémoire EEPROM de 64 octets de données (VIII) - 2 ports d'entrées/sorties (VI) - un compteur (timer) (VII) - un chien de garde (watchdog) (X) Figure II.2 : Architecture générale du PIC 16F8X. p. 8 III. Organisation de la mémoire Le PIC contient de la mémoire de programme et de la mémoire de données. La structure Harvard des PICs fournit un accès séparé à chacune. Ainsi, un accès aux deux est possible pendant le même cycle machine. 1. Mémoire de programme C'est elle qui contient le programme à exécuter. Ce dernier est téléchargé par liaison série (voir § XII). La Figure III.1 montre l'organisation de cette mémoire. Elle contient 1k "mots" de 14 bits dans le cas du PIC 16F84, même si le compteur de programme (PC) de 13 bits peut en uploads/Management/ support-cours-pic16f84-wajdi-bouajila-pdf.pdf

  • 29
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jan 24, 2022
  • Catégorie Management
  • Langue French
  • Taille du fichier 1.0696MB