WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Etude et application de microcontroleur 16f84

( Télécharger le fichier original )
par Mustapha BOUZIANE
Université de Mascara, Algérie - Génie électrique et électronique 2007
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

8.1. Tableau des registres :

Adresse

Registre

Registre

Adresse

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 à 4F

68 mémoires

disponibles

Accès aux même Mémoires que page 0

8C à CF

Page 0

 
 

Page 1

( Tableau : 2 ) , Les registres internes du PIC 16F84 [3]

?8.1.1. Les registres PCL (h'02' et h'82') et PCLATH (h'0A' et h'8A' )

- Le compteur de programme ou compteur ordinal nommé PC permet de pointer sur la prochaine instruction a exécuter, le PC complet étant d'office sur 13 bits .Il faut 2 registres , le premier accessible en lecture et écriture contient l'adresse basse du PC sur 8 bits , il est appelé PCL (PC Low ), le deuxième s'appelle : PCLATH (PC LATch counter High ).

-Le compteur PC pour PIC 16F84 travaille sur 10 bits , les 6 bits forts du PCLATH maintenus a 0 . [3]

? 8.1.2. Le registre STATUS (h'03' et h'83' ) ou registre d'état

-Est en relation avec l'UAL et permet de tester le résultat de la dernière opération effectuée par le microcontrôleur . Selon la dernière opération effectuée des bits sont positionnes dans le registre d'état et ceux-ci peuvent être tester a l'aide d'une instruction de bronchement pour effectuer des sauts conditionnels .

7 0

IRP

RP1

RP0

TO

PD

Z

DC

C

BIT 0 : C ( Carry ) , retenue ou report .

Il passe a "1" lorsque le résultat d'une opération dépasse la valeur FF. BIT 1 : DC ( Digit Carry ).

Il indique un report ou retenue du bit 3 ver le bit 4 .

BIT 2 : Z (Zéro ).

Quand il est a "1", il indique que le résultat de l'opération est nul. BIT 3 : PD ( Power-down ).

Ce bit est actif au niveau zéro . Il est mis a 1 a la mis sous tension.

PD est mis a 0 par l'instruction SLEEP ( état de basse consommation ). PD est mis a 1 par l'instruction CLRWDT ( mise a 0 du chien de garde). BIT 4 : TO (Time-out bit ).

Ce bit est actif au niveau zéro. Ce bit est mis a 1 a la mise sou tension. Ce bit est mis a 0 par le débordement du chien de garde.

BIT 5 : RP0 ( Registre Bank Select ).

Ce bit permet d'indiquer dans quel bloc de RAM on veut travailler. RP0 mis a 0 on utilise le bloc 0 .

RP0 mis a 1 on utilise le bloc 1 .

BIT 6 : RP1 ( Registre Bank Select ).

Ce bit est inutilisé pour le PIC 16F84 , il doit être laissé a 0 .

BIT 7 : IRP ( Indirect RP ).

Ce bit n'est pas utilisé dans le PIC 16F84 , il faut maintenu a 0 .

[3]

? 8.1.3. Les registres INDF (h'00' et h'80' ) et FSR (h'04' et h'84' ).

-Le registre INDF ainsi que FSR permettent l'adressage INDIRECTE.

-Le principe est d'utiliser deux registres intermédiaires pour accéder aux données: -Dans le premier appelé FSR , on inscrit l'adresse (en fait , il est utilisé comme un pointeur).L'autre registre INDF contient la valeur qui se trouve à l'adresse définie dans le FSR. . [1]

? 8.1.4. Le registre OPTION ( h'81' )

-Le registre OPTION est un registre utilisable en lecture et en écriture. Il permet de configurer le pré diviseur du compteur, l'interruption externe INT et de mettre en place des rappels de potentiel sur le port B. Après le RESET

Tous ses bits sont à 1.

7 0

RBPU

INTEDG

TOCS

TOSE

PSA

PS2

PS1

PS0

BIT 7 : RBPU ( pull up du port B).

Une résistance de rappel est relié au +5 volt sur chaque connexion du PORTB, quand le bit RBPU est mis à0 (actif au niveau bas ).

Ce bit valide simultanément les résistances sur toutes les connexion du PORTB. BIT 6 : INTEDG ( INTerrupt EDGe).

Sélection du front du signal de demande d'interruption.

Si INTEDG =1 alors la broche RBO/INT génère une interruption sur un front montant.

Si INTEDG =0 alors la broche RBO/INT génère une interruption sur un front descendant.

BIT 5 : TOCS ( Timer zero Clock Source )

Sélection de la source d'horloge du compteur . Le timer0 es t incrémenté par l'horloge interne Fosc/4 ( synchronisé au programme) si TOCS = 0 , sinon .Il compte les impulsions reçues sur la connexion RA4/TOCKI.

BIT 4 : TOSE (Timer zero Signal Edge ).

Ce bit détermine sur quel front ( montant ou descendant) l'entrée RA4

incrémentera le registre TMR0.

TOSE=1 Front descendant.

TOSE=0 Front montant.

BIT 3 : PSA (Pre-Scaler Assignement).

Si PSA = 1 alors le pré diviseur est associé avec le WD .

Si PSA = 0 alors le pré diviseur est associé avec le TIMER

BIT 2-1-0 : PS2 - PS1 - PS0 (Pre-Scaler rate ).

Réglage de la pré division . Ces trios bits déterminant la valeur de pré division pou le registre détermine par le bit PSA . La pré division est différente pour le compteur timer0 ( TMR0 ) et pour chien de garde (Watch Dog ). Voir tableau suivant (tableau : 3) .

PSA

PS2

PS1

PS0

TMR0

Watch Dog

0

0

0

0

2

1

0

0

0

1

4

1

0

0

1

0

8

1

0

0

1

1

16

1

0

1

0

0

32

1

0

1

0

1

64

1

0

1

1

0

128

1

0

1

1

1

256

1

1

0

0

0

1

1

1

0

0

1

1

2

1

0

1

0

1

4

1

0

1

1

1

8

1

1

0

0

1

16

1

1

0

1

1

32

1

1

1

0

1

64

1

1

1

1

1

128

(tableau : 3 ), de la pré division [3]

? 8.1.5. Le registre PORTA (h'05').

- Ce registre est un port d'entrée / sortie de 5 bits,reprisant image des pins RA0 à RA4 . - La configuration de chaque bit du port est déterminée avec le registre TRIS A.

7 0

 
 
 

R / W

R / W

R / W

R / W

R / W

 
 
 

EEIF

WRERR

WREN

WR

RD

[1]

GIE

EEIE

TOIE

INTE

RBIE

TOIF

INTF

RBIF

? 8.1.6. Le registre TRISA ( h'85' ).

-C'est le registre de configuration du registre port A .Seuls les cinq bits de poids faible son utilisés. Si le bit = 1, le bit correspondant du port A est en entrée, s'il est égale à 0, le bit correspondant du port A est en sortie .

7 0

 
 
 

R / W

R / W

R / W

R / W

R / W

 
 
 

TrisA4

TrisA3

TrisA2

TrisA1

TrisA0

[1]

? 8.1.7. Le registre PORTB (h'06' ).

-Le PORTB est un port bidirectionnel de 8 bits, reprisant image des pins RB0 à RB7 . -La configuration du PORTB est réalisée avec le registre TRISB .

7 0

R / W

R / W

R / W

R / W

R / W

R / W

R / W

R / W

RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

[1]

? 8.1.8. Le registre TRISB ( h'86' ).

-C'est le registre de configuration du registre port B . Si le bit = 1, le bit correspondant du port B est en entrée, s'il est égale à 0,le bit correspondant du port B est en sortie.

7 0

R / W

R / W

R / W

R / W

R / W

R / W

R / W

R / W

TrisB7

TrisB6

TrisB5

TrisB4

TrisB3

TrisB2

TrisB1

TrisB0

[1]

? 8.1.9. Le registre INTCON : INTerrupt CONtrol (h'0B' et h'8B' ). -C'est le registre qui préside au fonctionnement des interruptions .

-Ces bit passent à 1 quand une demande est apparue.

-Dans le pic 16f84 il y a quatre source possibles d'interruptions.

1) La fin d'une programmation de l'EEPROM de données .

2) Le débordement du (timer ) interne .

3) Une commande externe appliquée sur la pin 6 (RB0/INT) .

4) Un changement d'état sur l'une des pins 10 , 11 , 12 ou 13 .

7 0

BIT 0: RBIF ( RB port change Interrupt Flag)

-C'est un drapeau d'interruption qui indique un changement d'état du PORT (RB4àRB7).

RBIF=1 une broche (RB4 à RB7) à changé d'état.

RBIF=0 pas de changement d'état. BIT 1: INTF (INT interrupt Flag). Drapeau d'interruption de l'entrée RB0. RBIF=1 une interruption est apparue. RBIF=0 pas d'interruption.

BIT 2: TOIF ( TMRO Overflow Interrupt Flag).

Ce drapeau indique un dépassement du registre TMRO (passage de FF à 00).

TOIF= 1 dépassement de TMR0. TOIF= 0 pas de dépassement.

BIT 3: RBIE (RB Interrupt Enable).

Bit de validation qui autorise une interruption lors d'un changement d'état du

PORT B (RB4 à RB7).

RBIE =1 Autorise l'interruption.

RBIE =0 Les changement d'état du PORT B (RB4 à RB7) ne générant pas d'interruption. BIT 4: INTE ( INT interrupt Enable).

Valide ou non l'interruption généré par la broche RB0/INT

INTE = 1 Valide l'interruption INT.

INTE = 0 Pas d'interruption provenant de INT.

BIT 5: TOIE (TMRO Overflow Interrupt Enable).

- Autorise ou non l'interruption provoqué par le dépassement du registre TMRO (passage de FF à 00)

TOIE = 1 Valide l'interruption.

TOIE = 0 Pas d'interruption provenant du registre TMR0.

BIT 6 : EEIE (EE write Interrupt Enable).

-Ce bit autorise ou non une interruption lorsqu'un cycle d'écriture dans L'EEPROM c'est déroulé normalement.

EEIE=1 Génère une interruption lorsqu'une cycle d'écriture c'est déroulé normalement. EEIE=0 Pas d'interruption.

BIT 7: GIE (Global Interrupt Enable).

-Ce bit autorise ou non toutes les interruptions.

GIE=1 Toutes les interruptions sont prises en compte par le microcontrôleur.

GIE=0 Aucune interruption ne sera validée .

[3]

? 8.1.10. Le registre EEDATA : EEprom DATA ( h'08' ) .

-Ce registre de 8 bits permet de lire ou d'écrire une donnée dans la mémoire non

volatile (EEPROM).

[1]

? 8.1.11. Le registre EEADR : EEprom ADRess ( h'09' ) .

Registre de 8 bits qui contient l'adresse de la donnée se trouvant dans l'EEPROM. [1]

? 8.1.12. Le registre EECON 1 : EEprom CONtrol ( h'88' ) .

Registre de contrôle permettant de définir le mode de fonctionnement (écriture et l'écriture ) de la mémoire de donnée EEPROM ,Seuls les 5 bits de poids faible sont utilisés .

7 0

EEIF

WRERR

WREN

WR

RD

BIT 0 : RD ( RaeD).

-Lorsque ce bit est mis à "1", il indique au microcontrôleur que l'on souhaite une lecture de l'EEPROM. Apres le cycle de lecture, il est mis automatiquement à 0. BIT 1 : WR ( WRite ).

-Lorsque ce bit est mis à "1", il indique au microcontrôleur que l'on souhaite une écriture de l'EEPROM; Apres le cycle d'écriture, il est mis automatique à 0.

BIT 2 : WREN ( WRite ENable ).

Mis à 0 , interdit toute écriture en mémoire .

Mis à 1 , autorise une écriture en mémoire .

BIT 3 : WRERR ( WRite ERRor ) .

C'est un bit d'erreur. Il passe à 1 s i une opération d'écriture en EEprom à été interrompue , par exemple par un reset

BIT 4 : EEIF ( EEprom Interrupt Flag ). Flag d'interruption .

C'est le flag qui est en liaison avec l'interruption EEPROM .Il passe à 1 une fois l'écriture en EEprom terminée.

Si le bit EEIE du registre INTCON est à 1, une interruption sera alors générée. [1]

? 8.1.13. Le registre EECON 2 : EEprom CONtrol ( h'89' ) .

Registre n'ayant aucune consistance physique , et dont le seul rôle consiste à obliger le programmeur à vérifier les données qu'il envoie dans l'EEPROM. il compte jusqu'à 256

[ 1 ]

? 8.1.14. Le registre TMR0 ( TiMeR zero).

- Ce registre de 8 bits s'incrémente de "1" a chaque impulsion de l'horloge (externe ou interne)Ce timer peut soit fonctionner seul, soit être précédé par un pré diviseur programmable à 8 bits dont la programmation se fait par l'intermédiaire du registre OPTION .

Programmation de PIC 16F84

1. INTRODUCTION

- Maintenant que nous avons acquis les rudiments du microcontrôleur .Il est le temps de passer à pratique.

- Au début on a créer un programme qui répond au cahier des charges de notre projet.

pour créer le programme source il faut uniquement un éditeur de texte,un logiciel spécifique permet de compiler le programme . ( le plus connu MPLAB chez microchip) c'est - à - dire la transformation du programme source en un programme dit hexadécimal ou Binaire , suite de 0 et 1 . - Une fois compilé le fichier sousce est transféré via un logiciel approprié vers la mémoire de programme du PIC, Cette logiciel appelé « ic-prog ».

- Ce dernier opération de transformation du programme à mémoire de PIC , elle est faite à l'aide d'un outil appelé «programmateur des PICs » .

2. Le langage assembleur

- Le langage assembleur est une interface entre l'homme et le microcontrôleur pour la compréhension d'un programme .

- En effet , il est difficile pour l'homme d'écrire ou de comprendre une représentation binaire d'une suite d'instructions .Quant au microcontrôleur, il ne reconnaît qu'une suite de 0 et de 1 (langage binaire ).

- Pour une représentation plus explicite d'un langage binaire on utilise le langage assembleur ou les instructions sont représentées par leur mnémonique .un fichier source contient le programme écrit dans un langage compréhensible pour l'homme . Edité sous le format ASCII , il décrit sous une forme le plus souvent mnémonique les instructions que doit exécuter le microcontrôleur .

3. Règles de rédaction en langage d'assemblage

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Qui vit sans folie n'est pas si sage qu'il croit."   La Rochefoucault