Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

AnnexeA PIC

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 7

ANNEXE A PIC16F877A

I Le PIC16F877A
Le PIC (Programmable Interface Controller) c’est la famille de microcontrôleurs µC de
constructeur Microchip Technology Inc. Un microcontrôleur c’est un circuit intégré IC inclut
une unité de traitement d’information c’est le microprocesseur µP, des mémoires, des registres plus
des interfaces de communication (entrées/sorties, ports séries . . .). Les PICs sont des composants
dits RISC (Reduced Instructions Set Computer), ou encore (composant à jeu d’instruction réduit).
Ces microcontrôleurs sont conçus sur une architecture dite HAVARD, elle est basée sur deux bus,
un pour les données (bus de données) et l’autre pour les instructions (bus de programme).

Dans ce travail notre choix est porté vers le PIC 16F877A.

I.1 Principales caractéristiques


Un pic 16F877A possède les caractéristiques suivantes :

 Une fréquence de fonctionnement  Timer2 (compteur 8-bits avec pré-


allant jusqu’à 20MHz. diviseur et post-diviseur).
 Jeu d’instructions de 35 instructions  Un convertisseur Analogique-
 Une mémoire de programme de type Numérique 10-bits à 8 entrées
FLASH sur 8K mots (1 mot=14 bits). multiplexées.
 Une mémoire de données de type  Deux modules de capture, comparai-
RAM sur 368 octets. son, PWM
 Une mémoire de données de type  Ports Entrées/Sorties : A, B, C, D et
EEPROM sur 256 octets. E.
 Une pile (Stack) à 8 niveaux.  Une interface de communication série
 14 sources d’interruptions. (MSSP, USART).
 Un chien de garde WDT (Watch Dog  Une interface de communication para-
Timer). llèle (PSP).
 Timer0 (compteur 8-bits avec pré-  Tension de fonctionnement est entre
diviseur). 2.0V et 5.5V
 Timer1 (compteur 16-bits avec pré-
diviseur et possibilité d’utiliser une
horloge externe).
ANNEXE A PIC16F877A

I.2 Branchement PIC16F877A

FIG 1 Branchement PIC16F877A

La figure au-dessus décrit l’architecture externe du 16F877 qui comprend 40 pins dont :
 33 pins d’entrées/sorties multiplexées avec d’autres fonctions.
 4 pins pour l’alimentation : VDD et VSS.
 2 pins pour l’oscillateur : OSC0 et OSC1
 1 pin pour le RESET : MCLR

I.3 L’architecture interne

FIG 2 L’architecture interne PIC16F877A


ANNEXE A PIC16F877A

I.4 Fonctionnement
Une fois le programme est stocké dans la mémoire (Program Memory) et le µC est initialisé,
l’instruction à exécuter est désignée par le PC (Program Counter) et sera chargée dans le registre
d’instruction (Instruction reg) au moyen d’un bus de programme sur 14-bits, puis elle sera décodée
dans le décodeur et le contrôleur d’instruction (Instruction De code & Control) et ensuite dirigée
vers l’UAL (ALU) avec les données chargées à partir des pins configurées comme entrées, l’UAL
fera l’opération nécessaire et sauvegardera le résultat temporairement dans le registre de travail
(Wreg) sur 8-bits, ce résultat sera aussi mit dans la RAM à l’aide d’un bus de données sur 8-bit
Organisation de la mémoire du PIC : La mémoire du PIC 16F877A est divisée en 3 parties :
1). La mémoire programme est constituée de 8k mots de 14 bits. C’est dans cette zone que nous
allons écrire notre programme. Le PIC exécute une à une les instructions logées dans la mémoire de
programme.
2). La mémoire EEPROM « Electrical Ecrasable Programmable Read Onlay Memory », est
constitué de 256 octets, ces octets sont conservés après une coupure de courant et sont très utiles
pour conserver des paramètres semi-permanents.
3). La mémoire RAM est celle qui est sauvant utilisée. Toutes les données qui y sont stockées sont
perdues lors d’une coupure de courant. La mémoire RAM disponible du 16F877A est de 368 octets.

I.5 Les registres du pic 16F877A


a. Le registre FSR d'adresse 0X04 appelées REGISTRES SPECIAUX et des cases mémoires «libres»
dont nous pouvons nous en servir à notre guise.
b. Le registre status d'adresse 0X03 ou registre d'états
Comme son nom l'indique ce registre contient un certain nombre de bits d'états de l'unité centrale
mais aussi des bits de sélection de la page qui s'appellent ici RP1 et RP0.De ce fait, il peut être lu
comme n'importe quel autre registre étant entendu que certains bits d'états restant non modifiables.

Le PIC 16F877A possède une unité arithmétique et logique « UAL » et un registre de travail
W. L'UAL effectue des fonctions arithmétiques booléennes entre les données se trouvant dans le
registre de travail et n'importe quel registre. Pour les instructions à deux opérandes, typiquement
une donnée est dans le registre de travail«W» et l'autre opérande dans un autre registre ou se trouve
une valeur immédiate constante. Pour les instructions à un seul opérande, la donnée se trouve soit
dans le registre de travail «W» soit dans un autre registre. Le registre de travail «W» possède 14bits,
utilisé pour les opérations avec l'UAL, ce n'est pas un registre adressable. Elle « UAL » est
composée :
▪ D'un accumulateur 8 bits W : WORKING «travail », c'est lui qui effectue toutes les opérations
arithmétiques et logiques.
▪Un registre d'état 8bits STATUS.

Bit 0 ou bit C Carry c'set le bit de retenue en addition ou soustraction sur un octet. Il
positionné a 1 si une retenue set générée depuis le bit de poids fort
▪ Bit 1 ou bit DC comme Digit Carry0 il est positionné à 1 si une retenue est générée du bit 3 « Bit
de poids fort du quartet inférieur » vers le bit 0 du quartet supérieur. Il se utile pour corriger le
résultat d'opérations effectuées en code BCD
ANNEXE A PIC16F877A

 Bit 2 ou Z comme Zéro, ce bit est mis à 1 si le résultat de l'opération arithmétique ou


logique est nul.
▪Bit 3ou PD comme Power Dowen, ce bit à 1 lors de la mise sous tension du circuit ou lors de
l'exécution d'une instruction CLWDT relative au timer chien de garde il est mis à 0 par l'instruction
SLEEP.
▪Bit 4 ou bit TO comme Time Out, ce bit est à 1 lors de la mise sous tension du circuit ou lors de
l'exécution d'une instruction CLWDT ou SLEEP, il passe à 0 si le timer chien de garde déborde.
▪Bit 5 ou bit RP0 « Registre Bank Select0 », ce bit sert à sélectionner l'une des deux pages de la
mémoire « Page 0 ou Page 1 » sachant que chaque page mesure 128 octet.
RP0 = 0 sélectionne la page mémoire 0 « adresse de 00 à 7F»
RP0 = 1 sélectionne la page mémoire 1« adresse de 80 à FF»
▪Bit 6 ou bit RP1 « Registre Bank Select1 », permet la sélection des pages 2 et 3.
▪Bit 7 ou bit IRP ce bit est prévu pour un future adressage paginé indirect.

I.6 Les timers


Les Pics 16F877A disposent 3 timers :
a. Le timer 0 « 8 bits »: il peut être incrémenté par des impulsions extérieures via la broche «
TOCKI/RA4 » ou par l'horloge interne «Fosc/4 ».

b. Le Timer1 : Le Timer1 fonctionne sur le même principe que le Timer0, mais avec un registre de
comptage plus gros : 16 bits au lieu de 8, ce qui étend notablement ces capacités de comptage. Il est
accessible en lecture/écriture par l'intermédiaire des registres 8 bits TMR1H et TMR1L, On le
configure à l'aide du registre T1CON. On peut l'utiliser en association avec un des modules CCP
(modules de capture et de comparaison)
ANNEXE A PIC16F877A

c. Le TIMER2 : Le Timer2 a un fonctionnement différent des Timer0 et Timer 1. C'est un


compteur 8 bits avec pré diviseur et post diviseur. Son horloge ne peut être que l'horloge interne
divisée par 4 (Fosc/4).On s'en sert pour générer des signaux carrés, ou, en association avec le
module CCP, des signaux PWM.

I.7 Les interruptions

le microcontrôleur dispose de 14 sources d'interruptions :

 Une interruption externe, action sur la  Fin d'émission d'une information sur
broche INT/RB0. la liaison série
 Débordement du Timer0.  Interruption SPI ou I2C du module
 Changement d'état logique sur une des MSSP
broches du PORTB (RB4 à RB7).  interruption du registre de capture
 Fin de programmation d'une case et/ou de comparaison 1
mémoire de l'EEPROM.  Interruption du registre de capture
 Changement d'état sur le PORTD et/ou de comparaison 2
 Fin de conversion analogique  Débordement du Timer 1
numérique  Débordement du Timer2
 Réception d'une information sur la
liaison série
ANNEXE A PIC16F877A

I.8 Les ports d’entré sorties :

Le microcontrôleur 16F877A dispose 5 PORT « A, B, C, D, E ». Tous ces ports sont


bidirectionnels. La plupart des lignes de Ports ont une double fonction.

 Le PORT A « 5 bits » I/O pure et/ou convertisseur analogique et/ou TIMER0. La broche
RA4 du PORT A « Entrée du TIMER T0CKI » est du type DRAIN OUVERT

 Le PORT B « 8 bits » I/O pure et/ou programmation ICSP/ICD « broche RB3/PGM,


RB6/PGC et RB7/PGD» et l'entrée d'interruption externe RB0/INT.
 Le PORT C « 8 bits » I/O : c’est un port tout ce qu’il a de plus classique, l’ lorsqu’ ’il a
Deux pins qu'on utilisera plus tard dans la communication série avec le PC à travers « TX et
RX ».
 Le PORT D « 8 bits » I/O Le registre TRISD comportera donc les 8bits de direction,
pendant que le registre port D correspond aux pins I/O concernés .D’où les 8 pins I/O, en
mode entrée, sont du type « trigger de Schmitt ».
 Le PORT E « 3 bits » I/O Ce port n’est présent que sur les PIC 16F877. Il ne comporte que
3 pins RE0 à RE, mais, contrairement aux ports, les bits non concernés de TRISE sont
implantés pour d’autres fonctions. Les pins REX peuvent également être utilisés comme
pins d’entrées analogiques. D’ou le registre ADCON1 qui détermine six port est utilisé
comme port I/O ou comme port analogique.

Notre PIC travaille avec un convertisseur analogique/numérique qui permet un échantillonnage


sur 10 bits. Il est composé de :

 Un multiplexeur analogique 5 voies


« PIC 16F877A ».
 Un échantillonneur bloqueur.
 Un convertisseur analogique
numérique de 10 bits.
ANNEXE A PIC16F877A

Ces deux modules peuvent fonctionner dans l'un des trois modes ci-dessous :

 Mode capture « CAPTURE »: ce mode permet en autre d'effectuer des mesures de temps.
 Mode comparaison « COMPARE »: ce mode permet en autre de générer des évènements
périodiques.
 Mode PWM signifie «Pulse Width Modulation», ce qu'on pourrait traduire par modulation
de largeur d'impulsion, il s'agit d'un signal binaire de fréquence fixe dont le rapport cyclique
peut être modulé par logiciel. Le rapport cyclique d'un signal binaire à fréquence fixe peut
être défini comme étant le rapport entre le temps ou il se trouve à l'état «1» par rapport au
temps total d'un cycle.
Ces modules sont associés aux broches RC2/CCP1 et RC1/T1OSI/CCP2 suivant le mode choisi,
les timer 1 ou 2 vont être utilisés. Les modes capture et comparaison utilisent le
timer 1, tandis que le mode PWM utilise le timer 2.

Vous aimerez peut-être aussi