1 REGISTRES INTERNES 1. Organisation de la mémoire La mémoire du PIC 16F877 est
1 REGISTRES INTERNES 1. Organisation de la mémoire La mémoire du PIC 16F877 est divisée en deux blocs, la mémoire programme et la mémoire data, chaque bloc possède son propre bus d’adresse de telle sorte que l’accès à chacun des deux blocs peut être réalisé pendant le même cycle d’horloge. 1.1. La mémoire programme de type FLASH Pour la mémoire programme de type flash, La famille PIC 16F87x est constitué d’un compteur de programme à 13bits, capable d’adresser un espace mémoire de 8K x 14 mots. Pour les PIC 16F873 et 16F874, les premiers 4K x 14 (0000h-0FFFh) sont physiquement implémentés et pour les PIC 16F876 et 16F877, les 8K x 14 (0000h-1FFFh) sont physiquement implémentés (figure 1.1). C’est dans cet espace mémoire que le programme sera stocké. Cette mémoire peut être programmée et effacée plusieurs fois, ce qui est intéressant pour développer des programmes. En effet une lecture d’un PIC vierge, donne des 0x3FFF (en binaire B’11111111111111’), soit 14 bits. Une instruction est codée sur 1 mot soit 14 bits. Accéder à des adresses supérieures à l’espace physiquement implémenté entraîne une redondance c’est à dire pour le 16F873, les adresses 20h et 1020h pointent à la même case mémoire. Le vecteur reset et le vecteur d’interruption sont respectivement casés dans les adresses 0000h et 0004h. Figure 1.1 : Architecture de la mémoire programme [2] 2 1.2. La mémoire EEPROM La mémoire EEPROM (Electrical Erasable Programmable Read Only Memory), est constituée de 256 octets (00h-FFh) qui peuvent être lus ou écrits a partir du programme. Ces octets sont conservés après une coupure de courant et sont très utiles pour conserver des paramètres semi-permanents. Leur utilisation implique une procédure spéciale. 1.3. La mémoire RAM La mémoire RAM (Random Access Memory) est celle qu’on utilise pour stocker des données temporaires. Cette mémoire est partagée en deux parties. Un premier espace mémoire pour les registres spéciaux ( SFR Special Function Register ) et un second comme RAM statique pour les registres à usage général (GPR General Purpose Register ). Les SFRs sont utilisés pour le control du PIC. Tout cet espace mémoire est organisé sous forme de quatre banques pour les deux types de registres SFRs et GPRs. L’accès à l’une des deux banques nécessite l’utilisation des bits de control RP0 et RP1qui font partie du registre STATUS (tableau 1.1). La zone libre (GPRs) est constitué de 368 octets ; pour les quatre banques (70h-7Fh), (F0h- FFh), (170h-17Fh) ou (1F0h-1FFh) ne forment qu’un seul espace c’est à dire adresser 70h, F0, 170 ou 1F0h entraîne une sélection de la même case mémoire. La totalité de l’espace mémoire libre peut être adressé directement en utilisant une adresse absolue pour chaque registre ou bien indirectement via le registre FSR (File Select Register). 3 : les zones non utilisées. Tableau 1.1 : architecture de la RAM [2] 4 La partie supérieure spécifie tous les registres spéciaux utilisés dans le PIC. Chaque registre provoque un fonctionnement spécial du PIC ou la mise en service d’une fonction particulière. Certains registres sont identiques dans les 2 banques (FSR par exemple). Cela signifie qu’y accéder depuis les banques 0, 1, 2 ou 3 ne fait pas de différence. Remarque : la banque 0 utilise les adresses de 0x20 à 0x7F, la banque 1 allant de 0xA0 à 0xFF, la banque 2 de 0x110 à 0x170 et la banque 3 de 0x190 à 0x1FF. Les zones grisées sont des emplacements non utilisés (et non utilisables). L’emplacement 0x00 est un emplacement auquel on ne peut pas accéder. Pour la grande majorité des registres, chaque bit a une fonction spéciale. Le tableau 1.2 spécifie les noms des bits utilisés dans ces registres. 5 Tableau 1.2.a : Architecture détaillée des registres [2] 6 Tableau 1.2.b : Architecture détaillée des registres [2] 7 Tableau 1.2.c : Architecture détaillée des registres [2] 1.4. Les registres internes 1.4.1. Le registre STATUS Le registre STATUS, appelé registre d’état, contient l’état arithmétique de l’unité arithmétique et logique. Les bits de ce registre sont modifiés après chaque exécution d’une instruction. Quelques bits peuvent être modifiés par programmation. 8 Registre STATUS (Adresse 03h-83h-103h-183h) R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x IRP RP1 RP0 /TO /PD Z DC C bit 7 bit 0 IRP : ( Indirect RP bit ) bit de sélection de banque ( utilisé en adressage indirecte ). 0 = banques 0, 1 (00h-FFh) 1 = banques 2, 3 (100h-1FFh) IRP est non utilisé par le PIC 16F8X ( maintenu toujours à 0 ) RP1,RP0 : ( Register bank select bit) bits de sélection de banques ( utilisé en adressage directe ) 00 = banque 0 (00h-7Fh) 01 = banque 1 (80h-FFh) 10 = banque 2 (100h-17Fh) 11 = banque 3 (180h-1FFh) chaque banque représente 128 octets. TO : ( Time Out bit) Ce bit indique (si 0), que la mise en service suit un arrêt provoqué par un dépassement de temps ou une mise en sommeil. Dans ce cas, PD effectue la distinction. 1 = après la mise sous tension, instructions CLRWDT ou SLEEP 0 = dépassement de temps du watchdog PD : ( Power Down bit) Indique quel événement a entraîner le dernier arrêt du PIC (instruction sleep ou dépassement du temps du watchdog). 1 = après la mise sous tension, ou l’instruction CLRWDT 0 = après l’exécution de l’instruction SLEEP Z : ( Zéro bit) bit d’indication d’un résultat nul. 1 = résultat d’une opération arithmétique ou logique nul 0 = résultat d’une opération arithmétique ou logique est non nul DC : ( Digit Carry bit) bit de retenue / emprunt sur un digit ( pour les instructions ADDWF, ADDLW, SUBWF, et SUBLW ). Ce bit indique une retenue à partir de l'addition des 2 quartets de plus faible poids (si la valeur > 15) 1 = retenue à partir du bit 3 (4ème bit à partir de la droite) 0 = pas de retenue à partir du bit 3 Pour l’emprunt la polarité est inversée. C : (Carry / /Borrow bit) bit de retenue / emprunt ( pour les instructions ADDWF, ADDLW, SUBWF et SUBLW). Ce bit est positionné à 1 si une addition de 2 bytes donne une valeur >255. Pour l’emprunt la polarité est inversée. 1 = retenue à partir du bit de plus fort poids (bit 7) 0 = pas de retenue à partir du bit de plus fort poids (bit 7) R : bit en lecture W : bit en écriture U : non utilisé n : valeur après reset 9 1.4.2. Le registre OPTION_REG (Adresse 81h-181h) Ce registre est un registre accessible en lecture et écriture, il contient les bits de contrôle pour configurer le prédiviseur du TMR0 / WDT, les demandes d’interruption et les résistances de tirage ( pull-up ) des lignes du port B. Registre OPTION_REG ( Adresse 81h -181h) R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 /RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 bit 7 bit 0 RBPU : ( Port B Pull-up Enable bit ) bit d’activation des résistances de pull-up du port B. 1 = les résistances de pull-up sont désactivées 0 = les résistances de pull-up sont activées INTEDG: ( Interrupt Edge Select bit) bit de sélection du front pour la demande d’interruption. 1 = interruption sur front montant sur l’entrée RB0 / INT 0 = interruption sur front descendant sur l’entrée RB0 / INT T0CS : ( Timer Clock Source Select bit) bit de sélection de la source d’horloge pour le timer TMR0. 1 = transition sur l’entrée RA4 / T0CKI 0 = instruction interne du cycle d’horloge (CLKOUT) T0SE :( Timer 0 Source Edge Select bit) bit de sélection du front de la source pour le TMR0. 1 = incrémentation sur front descendant de l’entrée RA4 / T0CKI 0 = incrémentation sur front montant de l’entrée RA4 / T0CKI PSA : ( Prescaler Assignment bit ) bit d’affectation du prédiviseur (prescaler). 1 = affecté au watch-dog WDT 0 = affecté au timer TMR0 PS2, PS1, PS0: ( Prescaler rate Select bit) bits de sélection du taux du prédiviseur. PS2 PS1 PS0 Taux de TMR0 Taux de WDT 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 / 2 1 / 4 1 / 8 1 / 16 1 / 32 1 / 64 1 / 128 1 / 256 1 / 1 1 / 2 1 / 4 1 / 8 1 / 16 1 / 32 1 / 64 1 / 128 R : bit en lecture W : bit en écriture U : non utilisé n : valeur après un reset 10 1.4.3. Le registre INTCON (Adresse 0Bh, 8Bh, 10Bh, 18Bh) Le registre INTCON est un registre accessible en lecture et écriture, il permet la configuration des différentes sources d’interruption. Registre INTCON (Adresse 0Bh, 8Bh, 10Bh, 18Bh) R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-x GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF bit 7 bit 0 GIE : ( Global uploads/Finance/ 16f877-ch2-registres-internes.pdf
Documents similaires







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