1 Les microcontrôleurs PIC de Microchip Le 16F84 2 Sommaire INTRODUCTION ......
1 Les microcontrôleurs PIC de Microchip Le 16F84 2 Sommaire INTRODUCTION ......................................................................................................................3 I Le PIC 16F84 ....................................................................................................................4 I.1 Aspect externe du 16F84 ............................................................................................4 I.2 La mémoire programme (flash)...................................................................................5 I.3 La mémoire RAM - Rrgistres........................................................................................5 I.4 L'ALU et le registre W.................................................................................................5 I.5 L'Horloge...................................................................................................................6 I.6 Le ports d' E/S PORTA................................................................................................6 I.7 Le ports d' E/S PORTB ................................................................................................7 I.8 Le Timer TMR0 ..........................................................................................................7 I.9 Le Timer Watchdog WDT (Chien de garde)..................................................................8 I.10 Le mode SLEEP..........................................................................................................8 I.11 La mémoire EEPROM de configuration.........................................................................9 I.12 La mémoire EEPROM de données................................................................................9 I.12.1 Procédure de lecture dans l'EEPROM de données................................................10 I.12.2 Procédure d'écriture dans l'EEPROM de données.................................................10 I.13 Les interruptions ......................................................................................................10 I.13.1 Déroulement d'une interruption .........................................................................10 I.13.2 L'interruption INT (Entrée RBO DU PORTB) ........................................................11 I.13.3 L'interruption RBI (RB4 A RB7 DU PORTB)..........................................................11 I.13.4 L'interruption T0I : Débordement du Timer TMR0...............................................11 I.13.5 L'interruption EEI : Fin d'écriture dans l'EEPROM.................................................11 I.14 L'adressage indirect..................................................................................................11 I.15 Le conteur programme .............................................................................................11 I.15.1 GOTO calculé....................................................................................................12 I.16 Les indicateurs.........................................................................................................12 I.17 Les instructions du 16F84 .........................................................................................12 I.17.1 Les instructions « orientées octet » (adressage direct) ........................................12 I.17.2 Les instructions « orientées bits » ......................................................................13 I.17.3 Les instructions opérant sur une donnée (adressage immédiat) ...........................13 I.17.4 Les instructions de saut et appel de procédures..................................................13 I.17.5 Le jeu d'instructions ..........................................................................................14 I.17.6 Etat de quelque registre à l'initialisation..............................................................14 II Les outils de développement ............................................................................................15 II.1 Deux mot sur MPLAB................................................................................................15 II.2 Les directives de MPASM ..........................................................................................16 II.2.1 Les directives les plus utilisées...........................................................................16 II.3 Format des nombres ................................................................................................17 II.4 Structure d'un programme écrit en assembleur ..........................................................17 II.5 Exemples de programme ..........................................................................................19 II.6 Références...............................................................................................................22 3 INTRODUCTION Un PIC est un microcontrôleur, c’est une unité de traitement de l’information de type microprocesseur à laquelle on a ajouté des périphériques internes permettant de faciliter l'interfaçage avec le monde extérieur sans nécessiter l’ajout de composants externes. Les PICs sont des composants RISC (Reduce Instructions Construction Set), ou encore composant à jeu d’instructions réduit. L'avantage est que plus on réduit le nombre d’instructions, plus facile et plus rapide en est le décodage, et plus vite le composant fonctionne. La famille des PICs est subdivisée en 3 grandes familles : La famille Base-Line, qui utilise des mots d’instructions de 12 bits, la famille Mid-Range, qui utilise des mots de 14 bits (et dont font partie la 16F84 et 16F876), et la famille High-End, qui utilise des mots de 16 bits. Nous nous limiterons dans ce document à la famille Mid-Range et particulièrement au PIC 16F84, sachant que si on a tout assimilé, on pourra facilement passer à une autre famille, et même à un autre microcontrôleur. Pour identifier un PIC, on utilise simplement son numéro : • Les 2 premiers chiffres indiquent la catégorie du PIC, 16 indique un PIC Mid-Range. • Vient ensuite parfois une lettre L, celle-ci indique que le PIC peut fonctionner avec une plage de tension beaucoup plus tolérante. • Vient en suite une ou deux lettres pour indiquer le type de mémoire programme : - C indique que la mémoire programme est une EPROM ou plus rarement une EEPROM - CR pour indiquer une mémoire de type ROM - F pour indiquer une mémoire de type FLASH. • On trouve ensuite un nombre qui constitue la référence du PIC. • On trouve ensuite un tiret suivi de deux chiffres indiquant la fréquence d’horloge maximale que le PIC peut recevoir. Donc, un 16F84-04 est un PIC Mid-Range donc la mémoire programme est de type FLASH de référence 84 et capable d’accepter une fréquence d’horloge de 4MHz. Notez que les PICs sont des composants STATIQUES, c’est à dire que la fréquence d’horloge peut être abaissée jusque l’arrêt complet sans perte de données et sans dysfonctionnement. Une version –10 peut donc toujours être employée sans problème en lieu et place d’une –04. Pas l’inverse, naturellement. Pourquoi choisir un PIC ? • Les performances sont identiques voir supérieurs à ses concurrents • Les prix sont les plus bas du marché • Très utilisé donc très disponible • Les outils de développement sont gratuits et téléchargeables sur le WEB • Le jeu d'instruction réduit est souple, puissant et facile à maîtriser • Les versions avec mémoire flash présentent une souplesse d'utilisation et des avantages pratiques indéniables • La communauté des utilisateurs des PICs est très présente sur le WEB. On trouve sur le net quasiment tout ce dont on a besoin, tutoriaux pour démarrer, documents plus approfondis, schémas de programmeurs avec les logiciels qui vont avec, librairies de routines, forums de discussion . . . 4 I LE PIC 16F84 Les caractéristiques principales du 16F84 sont : • Une mémoire programme de type flash de 1K (1024) mots de 14 bits • Une mémoire RAM constituée : o Des registres de control SFR (Special Function Registers) o 68 octets de RAM utilisateur appelés aussi GPR (General Propose Resisters) • Une mémoire EEPROM de donnée de 64 octets • Deux ports d'entrée sortie, un de 8 bits et un de 5 bits • Un timer/Compteur cadencé par une horloge interne ou externe • Un chien de garde / compteur qui est un timer particulier • Un prédiviseur de fréquence programmable permettant d'étendre les possibilités du Timer TMR0 et du chien de garde WDT • 4 sources d'interruption • L'horloge peut être générée par 4 types d'oscillateurs sélectionnables • Protection de code • Fonctionnement en mode sleep pour réduction de la consommation • Programmation par mode ICSP (In Circuit Serial Programming) Mémoire programme de type Flash 1024 mots de 14 bits EEPROM 64 octets 16 registres système RAM utilisateur 64 octets 14 bits : config timer TMR0 WDT timer Prédiviseur Horloge système Horloge WDT PORTA PORTB W ALU I.1 Aspect externe du 16F84 Le 16F84 est commercialisé dans un boîtier 18 broches classique 1 2 3 4 5 6 7 8 9 PIC 16F8X 10 11 12 13 14 15 16 17 18 RA1 RA0 OSC1 OSC2 Vdd RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0/INT VSS MCLR RA4/T0CKI RA3 RA2 Fig. I-1 : brochage du 16 F84 5 I.2 La mémoire programme (flash) Cette mémoire de 1024 mots stocke le programme. Elle est non volatile et reprogrammable à souhait. Chaque position de 14 bits contient une instruction. L'emplacement du programme peut se situer à n'importe quel endroit de la mémoire. Cependant il faut savoir que suite à un RESET ou lors de la mise sous tension, le PIC commence l'exécution à l'adresse 0000H. De plus, lorsqu'il y a une interruption, le PIC va à l'adresse 0004H. Il est donc conseillé de placer le début du programme après l'adresse 0004H et de mettre un branchement au début du programme à l'adresse 0000H et un branchement au début de la routine d'interruption s'il y en a une à l'adresse 0004H. Le programme est implanté dans la flash à l'aide d'un programmateur (hard+soft) sur lequel nous reviendrons dans la suite de ce document. I.3 La mémoire RAM - Rrgistres La mémoire RAM est constituée de deux parties : • Les registres SFR (Special Function Register), ce sont les registres de fonctionnement du PIC. L'ensemble de ces registres est souvent appelé fichier des registres. Nous reviendrons sur ces registres tout le long de ce document. • Les registres GPR (General Propose Register) sont des positions mémoire que l'utilisateur peut utiliser pour stocker ses variables et ces données. On remarquera donc que, indépendamment de leur nature, les position de la RAM sont toujours appelé registres bank 0 bank 1 00 INDF INDF 80 01 TMR0 OPTION 81 02 PCL PCL 82 03 STATUS STATUS 83 04 FSR FSR 84 05 PORTA TRISA 85 06 PORTB TRISB 86 07 87 08 EEDATA EECON1 88 09 EEADR EECON2 89 0A PCLATH PCLATH 8A 0B INTCON INTCON 8B 0C . . . . . Mémoire 8C . . . . . La mémoire RAM est organisée en deux banks, pour accéder à un registre, il faut d'abord se placer dans le bank où il se trouve. Ceci est réalisé en positionnant le bit RP0 du registre STATUS. (RP0 = 0 → Bank 0, RP0 = 1 → Bank 1) Maped in bank0 utilisateur 4F CF Registre STATUS IRP RP1 RP0 TO PD Z DC C Pour la mémoire utilisateur, l'utilisation des pages (Bank ) n'est pas nécessaire puisque le Bank 1 est "mapped" avec le Bank0. Cela signifie qu'écrire une donnée à l'adresse 0CH ou à l'adresse 8CH revient au même. I.4 L'ALU et le registre W C'est une ALU 8 Bits qui réalise les opérations arithmétique et logique entre l'accumulateur W et n'importe quel autre registre 'F' ou constante K. L'accumulateur W est un registre de travail 8 bits, il n'a pas d'adresse comme les autres SFR. Pour les instructions à deux opérandes, c'est toujours lui qui contient un des deux opérandes. Pour les instructions à un opérande, celui-ci peut être soit W soit n'importe quel registre F. Le résultat de l'opération peut être placé soit dans le registre de travail W soit dans le registre F. 6 I.5 L'Horloge L'horloge peut être soit interne soit externe. L'horloge interne est constituée d'un oscillateur à quartz uploads/s1/ cours-pic16f84-mod.pdf
Documents similaires










-
31
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 04, 2021
- Catégorie Administration
- Langue French
- Taille du fichier 0.2713MB