Vous êtes sur la page 1sur 40

CHAPITRE II HARDWARE DE LA CARTE

Le pic 16f84

Introduction :
Depuis l 'arrivée du premier microprocesseur dans les années 70 ,conçu par INTEL
les progrès en intégration de composants n 'ont cessé d 'évoluer, faisant de ce fait augmenter
la puissance de calcul et la rapidité des microprocesseurs.
Un microprocesseur peut être assimilé à un circuit logique complexe exécutant un à un des
ordres (instructions) enregistrés dans une mémoire de programme externe.
Un microprocesseur ne fonctionne jamais seul on lui associe toujours des
périphériques d'entrées- sorties afin de pouvoir exécuter une fonction particulière et
dialoguer avec "l 'extérieur" ( prise en compte de l 'état d 'un capteur , commande d 'un
relais , mémoire programme de l 'application , etc.. .).
Le grand avantage de cette logique programmable est que la modification d’une
fonction ou d'une tâche ne nécessite pas de câblage supplémentaire, mais uniquement un
nouveau programme à loger en mémoire. L’arrivée du microcontrôleur qui est un
microprocesseur auquel on a intégré les Périphériques d’entrées sorties, va faire que les
montages et applications deviennent Encore plus simple à mettre en oeuvre, avec un gain
de temps, de vitesse et un coût.

CLAVIER RS232 ET PARALLELE Page 1


CHAPITRE II HARDWARE DE LA CARTE

1- Le microcontrôleur pic :
a- Définition :
Le microcontrôleur pic est un ordinateur monté dans un circuit intégré. Les avancées
technologiques en matière d’intégration, ont permis d’implanter sur une puce de silicium
de quelques millimètres carrés la totalité des composants qui forment la structure de base
d’un ordinateur.
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. Comme tout ordinateur, on peut décomposer la structure interne d’un
microcontrôleurs en trois parties :
-Les mémoires
-Le processeur
-Les périphériques
C’est ce qu’on peut voir sur la figure II.1:

FIG II.1 : la structure interne d’un microcontrôleur

• Les mémoires sont chargées de stocker le programme qui sera exécuté ainsi que les
données nécessaires et les résultats obtenus
• Le processeur est le cœur du système puisqu’il est chargé d’interpréter les
instructions du programme en cours d’exécution et de réaliser les opérations
qu’elles contiennent .Au sein du processeur, l’unité arithmétique et logique
interprète, traduit et exécute les instructions de calcul.
• Les périphériques ont pour tâche de connecter le processeur avec le monde extérieur
dans les deux sens. Soit le processeur fournit des informations vers l’extérieur
(périphérique de sortie), soit il en reçoit (périphérique d’entrée).

CLAVIER RS232 ET PARALLELE Page 2


CHAPITRE II HARDWARE DE LA CARTE

Il existe trois familles de PIC :

• Base-Line : Les instructions sont codées sur 12 bits

• Mid-Range : 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-Range
- F : FLASH
- 84 : Type
- 10 : Quartz à 10MHz au maximum

b- Intérêt des microcontrôleurs :


Les microcontrôleurs sont de taille tellement réduite qu’ils peuvent être sans difficulté
implantés sur l’application même qu’ils sont censés piloter. Leur prix et leurs performances
simplifient énormément la conception de système électronique et informatique.
L’utilisation des microcontrôleurs ne connaît de limite que l’ingéniosité des concepteurs,
on les trouve dans nos cafetières, les magnétoscopes, les radios …..

CLAVIER RS232 ET PARALLELE Page 3


CHAPITRE II HARDWARE DE LA CARTE

2- Présentation générale du PIC 16F84 :

a- Le PIC 16F84 :
Le PIC 16F84 est un microcontrôleur de 8 bits. Il dispose donc d'un bus de données
de huit bits. Puisqu’il traite des données de huit bits, il dispose d’une mémoire de donnée
dans laquelle chaque emplacement (défini par une adresse) possède huit cases pouvant
contenir chacune un bit.

b- Principales caractéristiques de pic:


• 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

CLAVIER RS232 ET PARALLELE Page 4


CHAPITRE II HARDWARE DE LA CARTE

2- Description du pic :
a- Brochage et fonction des pattes :
Le 16F84A est un circuit intégré de 18 broches, que l'on peut trouver dans un boîtier
PDIP.

FIG II.2 : description externe

Broche Description
VDD Alimentation (2.0Và5.5VDC)
VSS Masse (0V)
/MCLR Reset (actif au niveau bas)
OSC1/CLKIN,OSC2/CLKOUT Circuit d’horloge
RA0,RA1,RA2,RA3,RA4/T0CKI Port A (5 bits)
RB0/INT,RB1,RB2,RB3,RB4,RB5,RB6,RB7 Port B (8bits)

CLAVIER RS232 ET PARALLELE Page 5


CHAPITRE II HARDWARE DE LA CARTE

b- Architecture interne :
La structure générale du PIC 16F84 comporte 4 blocs comme le montre la figure :
-Mémoire de programme
-Mémoire de données
-Processeur
-Ressources auxiliaires (périphériques)

FIG II.3 : Architecture interne

• La mémoire de programme contient les instructions pilotant l’application à laquelle


le microcontrôleur est dédié. Il s’agit d’une mémoire non volatile (elle garde son
contenu, même en l’absence de tension), elle est de type FLASH c’est à dire qu’elle
peut être programmée et effacée par l’utilisateur via un programmateur et un PC. La
technologie utilisée permet plus de 1000 cycles d’effacement et de programmation.
Pour le PIC 16F84 cette mémoire est d’une taille de 1024*14 bits, c’est à dire qu’elle
dispose de 1024 emplacements (de 000h à 3FFh) contenant chacun 14 cases car
dans le cas du PIC, les instructions sont codées sur 14 bits. On peut donc stocker
1024 instructions.

CLAVIER RS232 ET PARALLELE Page 6


CHAPITRE II HARDWARE DE LA CARTE

• La mémoire de donnée est séparée en deux parties :


-une mémoire RAM de 68 octets puisque le bus de donnée est de huit bits. Cette
RAM est volatile (les données sont perdues à chaque coupure de courant). On peut
y lire et écrire des données.
-une mémoire EEPROM de 64 octets dans laquelle on peut lire et écrire des
données (de huit bits soit un octet) et qui possède l’avantage d’être non volatile (les
données sont conservées même en l’absence de tension). La lecture et l’écriture dans
cette mémoire de données sont beaucoup plus lentes que dans la mémoire de
données RAM.
• Le processeur est formé de deux parties :
-une unité arithmétique et logique (UAL) chargée de faire des calculs.
-un registre de travail noté W sur lequel travail l’UAL.
• les ressources auxiliaires qui sont dans le cas du PIC16F84
-ports d’entrées et de sorties.
-temporisateur.
-interruptions
-chien de garde
-mode sommeil

CLAVIER RS232 ET PARALLELE Page 7


CHAPITRE II HARDWARE DE LA CARTE

c- Structure interne :
La structure interne du PIC16F84 est donnée figure 4 : (structure HARVARD : la
mémoire de programme et la mémoire de données sont séparées contrairement à
l'architecture Von Neuman qui caractérise d'autres fabricants de microcontrôleurs)

FIG II.4 : Structure interne

On retrouve sur ce schéma la mémoire de programme, la mémoire RAM de données,


la mémoire EEPROM, les ports A et B, ainsi que la partie processeur avec l’UAL et le
registre de travail W (work).

CLAVIER RS232 ET PARALLELE Page 8


CHAPITRE II HARDWARE DE LA CARTE

3- Principe de fonctionnement du PIC :


Un microcontrôleur exécute des instructions. On définit « le cycle instruction »
comme le temps nécessaire à l’exécution d’une instruction. Attention de ne pas confondre
cette notion avec le cycle d’horloge qui correspond au temps nécessaire à l’exécution d’une
opération élémentaire (soit un coup d’horloge).
Une instruction est exécutée en deux phases :
• la phase de recherche du code binaire de l’instruction stocké dans la mémoire de
programme
• la phase d’exécution ou le code de l’instruction est interprété par le processeur et
exécuté.
Chaque phase dure 4 cycles d’horloge comme le montre la figure II.5 :

FIG II.5 : Cycle instruction

On pourrait donc croire qu’un cycle instruction dure 8 cycles d’horloge mais
l’architecture particulière du PIC lui permet de réduire ce temps par deux. En effet, comme
les instructions issues de la mémoire de programme circulent sur un bus différent de celui
sur lequel circulent les données, ainsi le processeur peut effectuer la phase de recherche
d’une instruction pendant qu’il exécute l’instruction précédente (figureII.6 et7).

FIG II.6 : Cycle instruction

CLAVIER RS232 ET PARALLELE Page 9


CHAPITRE II HARDWARE DE LA CARTE

FIG II.7 : Schéma de l’exécution d’une instruction

4- Déroulement d’un programme :


Le déroulement d’un programme s’effectue de façon très simple. A la mise sous
tension, le processeur va chercher la première instruction qui se trouve à l’adresse 0000 de
la mémoire de programme, puis va chercher la deuxième instruction à l’adresse 0001 et
ainsi de suite (sauf cas de saut ou d’appel de sous programme). On parle de fonctionnement
séquentiel. La figureII.8 va nous permettre de mieux comprendre le fonctionnement :

FIG II.8 : Schéma de déroulement d’un programme

CLAVIER RS232 ET PARALLELE Page 10


CHAPITRE II HARDWARE DE LA CARTE

• On constate sur cette figure que la mémoire de programme contient 1024


emplacements (3FF en hexadécimale) contenant 14 bits (de 0 à 13). Une instruction
occupe un emplacement qui est défini par une adresse. Le processeur peut alors
sélectionner l'emplacement souhaité grâce au bus d’adresse et il peut lire son
contenu grâce à son bus d’instruction (figure II.7). Cet adressage s’effectue à l’aide
d’un compteur ordinal appelé PC qui lors de la mise sous tension démarre à zéro
puis s’incrémente de 1 tous les quatre coups d’horloge, on exécute bien ainsi les
instructions les unes à la suite des autres.
• Mais il arrive que dans un programme on fasse appel à un sous programme dont
l’adresse de l’instruction ne se trouve pas juste après celle qui est en train d’être
exécutée. C’est le rôle de la pile qui sert à emmagasiner de manière temporaire
l’adresse d’une instruction. Elle est automatiquement utilisée chaque fois que l’on
appelle un sous programme et elle permet une fois que l’exécution du sous
programme est terminée de retourner dans le programme principal juste après
l’endroit où l’on a appelé le sous programme. On constate que cette pile possède
huit niveaux, cela signifie qu’il n’est pas possible d’imbriquer plus de huit sous
programmes, car au-delà de huit, le processeur ne sera plus capable de retourner à
l’adresse de base du programme principal.
• L’adresse 0000 est réservée au vecteur RESET, cela signifie que c’est à cette
position que l’on accède chaque fois qu’il se produit une réinitialisation ( 0 volts sur
la patte MCLR ). C’est pour cette raison que le programme de fonctionnement du
microcontrôleur doit toujours démarrer à cette adresse.
• L’adresse 0004 est assignée au vecteur d’interruption et fonctionne de manière
similaire à celle du vecteur de Reset. Quand une interruption est produite et validée,
le compteur ordinal PC se charge avec 0004 et l’instruction stockée à cet
emplacement est exécutée.

5- La mémoire de données RAM :

CLAVIER RS232 ET PARALLELE Page 11


CHAPITRE II HARDWARE DE LA CARTE

Si l’on regarde la mémoire de donnée RAM, on s’aperçoit que celle-ci est un peu
particulière comme le montre la figure II. 9 :
On constate en effet que cette mémoire est séparée en deux pages (page 0 et page 1).
De plus, on remarque que tant pour la page 0 que pour la page 1, les premiers octets
sont réservés (SFR pour Special File Register). Ces emplacements sont en effet utilisés par
le microcontrôleur pour configurer l’ensemble de son fonctionnement. On les appelle
registres spécifiques.
Le bus d’adresse qui permet d’adresser la RAM est composé de 7 fils ce qui veut dire
qu’il est capable d’adresser 128 emplacements différents. Chaque page de la RAM est
composée de 128 octets, le bus d’adresse ne peut donc pas accéder aux deux pages, c’est
pourquoi on utilise une astuce de programmation qui permet de diriger le bus d’adresse
soit sur la page 0, soit sur la page 1. Cela est réalisé grâce à un bit d’un registre spécifique
(le bit RP0 du registre STATUS) dont nous verrons le fonctionnement plus loin.
La RAM de données proprement dite se réduit donc à la zone notée GPR (Registre à
usage générale ) qui s’étend de l’adresse 0Ch ( 12 en décimale ) jusqu’à 4Fh ( 79 en
décimale ) soit au total 68 registres en page 0 et autant en page 1, mais on constate que les
données écrites en page 1 sont redirigées en page 0 cela signifie qu’au final l’utilisateur
dispose uniquement de 68 registres ( donc 68 octets de mémoire vive) dans lesquels il peut
écrire et lire à volonté en sachant qu’à la mise hors tension, ces données seront perdues.

CLAVIER RS232 ET PARALLELE Page 12


CHAPITRE II HARDWARE DE LA CARTE

FIG II.9 :La mémoire RAM

6- Les registres :
La mémoire de données RAM contenait des registres spécifiques qui permettent de
configurer le PIC, on a détailler un à un et voir comment on peut accéder à la page 0 ou la
page 1. Afin de faciliter la compréhension, les registres les plus utilisés sont encadrés.
➢ Adresse 00 et 80, INDF. Cette adresse ne contient pas de registre physique, elle
sert pour l’adressage indirect.
➢ Adresse 01, TMR0. Contenu du Timer (8 bits). Il peut être incrémenté par l’horloge
(fosc/4) c'est à dire tous les 4 coups d'horloge ou par la broche RA4.
➢ Adresse 02 et 82, PCL. 8 bits de poids faibles du compteur ordinal PC. Les 5 (13-
8) bits de poids forts sont dans PCLATH.

CLAVIER RS232 ET PARALLELE Page 13


CHAPITRE II HARDWARE DE LA CARTE

➢ Adresse 03 et 83, STATUS Registre d’état.


Les cinq bits de poids faible de ce registre sont en lecture seule, ce sont des témoins
(Drapeaux ou flag en anglais) caractérisant le résultat de l’opération réalisée par l’UAL.
Le bit RP0 est lui en lecture/écriture et c’est lui qui permet de sélectionner la page dans la
mémoire RAM.
• Si RP0=0 on accède à la page 0 et si RP0=1 on accède à la page 1.

RP0 TO/ PD/ Z DC C

• Au reset, seul le bit RP0 de sélection de page est fixé (RP0=0 : page 0)
TO/ (Time Out) : débordement du timer WDT.
PD/ (Power Down) : caractérise l’activité du chien de garde WDT.
Z (zéro) résultat nul pour une opération arithmétique et logique.
DC (digit carry) retenue sur un quartet (4 bits)
C (carry) retenue sur un octet (8 bits).
➢ Adresse 04 et 84, FSR. Registre de sélection de registre : contient l’adresse d’un
autre registre.
➢ Adresse 05, PORTA. Ce registre contient l’état des lignes du port A.
➢ Adresse 06, PORTB. Ce registre contient l’état des lignes du port B.
➢ Adresse 08, EEDATA .Contient un octet lu ou à écrire dans l’EEPROM de
données.
➢ Adresse 09, EEADR. Contient l’adresse de la donnée lue ou écrite dans l’EEPROM
de données.
➢ Adresse 0A et 8A, PCLATH. Voir l’adresse 02 PCL.
➢ Adresse 88, EECON1 Contrôle le comportement de l’EEPROM de données.

EEIF WRERR WREN WR RD

• EEIF (EEProm Interrupt Flag) passe à 1 quand l’écriture est terminée.


• WRERR (Write Error) 1 si erreur d’écriture.
• WREN (Write Enable) : 0 pour interdire l’écriture en EEPROM de données.
• WR (Write) 1 pour écrire une donnée. Bit remis automatiquement à 0
• RD (Read) : 1 pour lire une donnée. Bit remis automatiquement à 0

CLAVIER RS232 ET PARALLELE Page 14


CHAPITRE II HARDWARE DE LA CARTE

➢ Adresse 89, EECON2. Registre de sécurité d’écriture en EEPROM de données.


Une donnée ne peut être écrite qu’après avoir écrit successivement 0x55 et 0xAA
dans ce registre.

7- 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.

8- L'Horloge :
L'horloge peut être soit interne soit externe.
L'horloge interne est constituée d'un
oscillateur à quartz ou d'un oscillateur RC.
Avec l'oscillateur à Quartz, on peut avoir
des fréquences allant jusqu'à 4, 10 ou 20 MHz
selon le type de µC. Le filtre passe bas RS, C2
limite les harmoniques dus à l’écrêtage et Réduit
l’amplitude de l’oscillation. (il n'est pas
obligatoire)
Avec un oscillateur RC, la fréquence de
l'oscillation est fixée par Vdd, Rext et Cext. Elle
peut varier légèrement d'un circuit à l'autre.
Dans certains cas, une horloge externe au
microcontrôleur peut être utilisée pour
synchroniser le PIC sur un processus particulier.

CLAVIER RS232 ET PARALLELE Page 15


CHAPITRE II HARDWARE DE LA CARTE

Quelque soit l'oscillateur utilisé, l'horloge système dite aussi horloge instruction est
obtenue en divisant la fréquence par 4. Dans la suite de ce document on utilisera le terme
Fosc/4 pour désigner l'horloge système.
Avec un quartz de 4 MHz, on obtient une horloge instruction de 1 MHz, soit le temps
pour exécuter une instruction de 1µs.

9- Le port d’E/S PORT A :


Le port A désigné par PORT A est un port de 5 bits (RA0 à RA4). Chaque E/S est
compatible TTL. La configuration de direction pour chaque bit du port est déterminée avec
le registre TRISA.
• Bit i de TRISA = 0 bit i de PORT A configuré en sortie
• Bit i de TRISA = 1 bit i de PORT A configuré en entrée
La broche RA4 est multiplexée avec l'entrée horloge du timer TMR0, elle peut donc
être utilisée soit comme E/S normale du port A, soit comme entrée horloge pour le Timer
TMR0, le choix se fait à l'aide du bit T0CS du registre OPTION_REG.
• T0CS = 0 RA4 est une E/S normale
• T0CS = 1 RA4 = horloge externe pour le timerTMR0
RA4 est une E/S à drain ouvert, si on veut l'utiliser comme sortie
(pour allumer une LED par exemple), il ne faut pas oublier de mettre
une résistance externe vers Vdd. Le schéma ci contre illustre le principe
d'une sortie drain ouvert (ou collecteur ouvert) :
Si RA4 est positionnée à 0, l'interrupteur est fermé, la sortie est reliée à la masse.
Si RA4 est placée à 1, l'interrupteur est ouvert, la sortie est déconnectée d'où la
nécessite de la résistance externe pour amener le courant de l'alimentation vers la LED.

Registre OPTION_REG

CLAVIER RS232 ET PARALLELE Page 16


CHAPITRE II HARDWARE DE LA CARTE

10- Le port d’E/S PORT B :


Le port B désigné par PORT B est un port bidirectionnel de 8 bits (RB0 à RB7).
Toutes les broches sont compatibles TTL. La configuration de direction se fait à l'aide du
registre TRISB. (Voir PORT A / TRISA)
En entrée, la ligne RB0 appelée aussi INT peut déclencher l’interruption externe INT.
En entrée, une quelconque des lignes RB4 à RB7 peut déclencher l'interruption RBI.

11- Le Timer TMR0 :


C’est un compteur 8 bits ayant les caractéristiques suivantes :
➢ Il est incrémenté en permanence soit par l’horloge interne Fosc/4 (mode timer) soit par
une horloge externe appliquée à la broche RA4 du port A (mode compteur). Le chois
de l'horloge se fait à l'aide du bit T0CS du registre OPTION_REG
• TOCS = 0 horloge interne
• TOCS = 1 horloge externe appliquée à RA4
➢ Dans le cas de l'horloge externe, on peut choisir le front sur lequel le TIMER
s'incrémente.
• TOSE = 0 incrémentation sur fronts montants PS2 PS1 PS0 DIV
• TOSE = 1 incrémentation sur fronts descendants 0 0 0 2
➢ Quelque soit l'horloge choisie, on peut la passer dans un 0 0 1 4
diviseur de fréquence programmable dont le rapport est 0 1 0 8
fixés par les bits PS0, PS1 et PS2 du registre 0 1 1 16
OPTION_REG (tableau ci-contre). L'affectation ou non du 1 0 0 32
prédiviseur se fait à l'aide du bit PSA du registre 1 0 1 64
OPTION_REG 1 1 0 128
• PSA = 0 on utilise le prédiviseur 1 1 1 256
• PSA = 1 pas de prédiviseur (affecté au chien de garde)
➢ Le contenu du timer TMR0 est accessible par le registre qui porte le
même nom. Il peut être lu ou écrit à n'importe quel moment. Après une écriture,
l'incrémentation est inhibée pendant deux cycles instruction
➢ Au débordement de TMR0 (FF 00), le drapeau T0IF est placé à 1. Ceci peut
déclencher l'interruption T0I si celle-ci est validée

CLAVIER RS232 ET PARALLELE Page 17


CHAPITRE II HARDWARE DE LA CARTE

Registre OPTION_REG

FIG II.10: Le Timer

12- Le Watchdog Timer WDT (Chien de garde) :


C’est un compteur 8 bits incrémenté en permanence (même si le µC est en mode
sleep) par une horloge RC intégrée indépendante de l'horloge système. Lorsqu’il déborde,
(WDT TimeOut), deux situations sont possibles :
• Si le µC est en fonctionnement normal, le WDT time-out provoque un RESET.
Ceci permet d’éviter de rester planté en cas de blocage du microcontrôleur par un
processus indésirable non contrôlé
• Si le µC est en mode SLEEP, le WDT time-out provoque
PS2 PS1 PS0 DIV
un WAKE-UP, l'exécution du programme continue
0 0 0 1
normalement là où elle s'est arrêtée avant de rentrer en
0 0 1 2
mode SLEEP. Cette situation est souvent exploitée pour
0 1 0 4
réaliser des temporisations
0 1 1 8
L'horloge du WDT est ajustée pour que Le Time-Out
1 0 0 16
arrive toutes les 18 ms. Il est cependant possible d'augmenter
1 0 1 32
cette durée en faisant passer le signal Time-Out dans un
1 1 0 64
prédiviseur programmable (partagé avec le timer TMR0).
1 1 1 128
L’affectation se fait à l'aide du bitPSA du registre
OPTION_REG

CLAVIER RS232 ET PARALLELE Page 18


CHAPITRE II HARDWARE DE LA CARTE

• PSA = 1 on utilise le prédiviseur


• PSA = 0 pas de prédiviseur (affecté à TMR0)
Le rapport du prédiviseur est fixé par les bits PS0, PS1 et PS2 du registre
OPTION_REG .
L'utilisation du WDT doit se faire avec précaution pour éviter la réinitialisation
(inattendue) répétée du programme. Pour éviter un WDT timeOut lors de l'exécution d'un
programme, on a deux possibilités :
➢ Inhiber le WDT d'une façon permanente en mettant à 0 le bit WDTE dans l'EEPROM
de configuration
➢ Remettre le WDT à 0 périodiquement dans le programme à l'aide de l'instruction
CLRWDT pour éviter qu'il ne déborde

FIG II.11: Le Watchdog Timer WDT

CLAVIER RS232 ET PARALLELE Page 19


CHAPITRE II HARDWARE DE LA CARTE

13- Le mode SLEEP :


Le PIC peut être placé en mode faible consommation à l'aide de l'instruction SLEEP.
Dans ce mode, l'horloge système est arrêtée ce qui arrête l'exécution du programme. Pour
sortir du mode SLEEP, il faut provoquer un WAKE-UP, pour cela il y a 3 possibilités :
• RESET externe dû à l'initialisation du PIC en mettant l'entrée MCLR à 0. Le PIC
reprend l'exécution du programme à partir du début.
• Timeout du chien de garde WDT si celui-ci est validé. Le PIC reprend le programme
à partir de l'instruction qui suit l'instruction SLEEP
• Interruption INT (sur RB0) ou RBI (sur RB4-RB7) ou EEI (fin d'écriture en
EEPROM de données). Le bit de validation de l'interruption en question doit être
validé, par contre, le WAKE-UP a lieu quelque soit la position de bit de validation
globale GIE. On a alors deux situations :
• GIE = 0, Le PIC reprend l'exécution du programme à partir de l'instruction qui suit
l'instruction SLEEP, l'interruption n'est pas prise en compte
• GIE = 1, Le PIC exécute l'instruction qui se trouve juste après l'instruction SLEEP
puis se branche à l'adresse 0004 pour exécuter la procédure d'interruption. Dans le
cas où l'instruction suivant SLEEP n'est pas désirée, il faut utiliser l'instruction NOP.
L'utilisation des interruptions pour réaliser un WAKE-UP doit être utilisée avec
précaution.

14- La mémoire EEPROM de configuration :


Pendant la phase d'implantation d'un programme dans la mémoire programme du PIC,
on programme aussi une EEPROM de configuration constituée de 5 mots de 14 bits:
➢ 4 mots d’identification (ID) à partir de l’adresse 0x2000 pouvant contenir un
repérage quelconque que nous n'utiliserons pas,
➢ 1 mot de configuration (adresse 0x2007) qui permet :
• de choisir le type de l'oscillateur pour l'horloge
• de valider ou non le WDT timer
• d’interdire la lecture des mémoires EEPROM de programme et de données.

CLAVIER RS232 ET PARALLELE Page 20


CHAPITRE II HARDWARE DE LA CARTE

• Bits 1:0 FOSC1:FOSC0 Sélection du type d'oscillateur pour l'horloge


11 : Oscillateur RC
10 : Oscillateur HS (High speed) : quartz haute fréquence (jusqu'à 10 MHz)
01 : Oscillateur XT, c'est le mode le plus utilisé, quartz jusqu'à 4 MHz
00 : Oscillateur LP (Low power), consommation réduite, jusqu'à 200 kHz
• Bit 2 WDTE validation du timer WDT (chien de garde)
1 : WDT validé
0 : WDT inhibé
• Bit 3 PWRTE validation d'une temporisation à la mise sous tension
1 : temporisation inhibée
0 : temporisation validée
• Bit 13:4 CP Protection en lecture du code programme
1 : pas de protection
0 : protection activée

15- La mémoire EEPROM de données :


La mémoire EEPROM de données est constituée de 64 octets commençant à l'adresse
0x2100 que l'on peut lire et écrire depuis un programme. Ces octets sont conservés après
une coupure de courant et sont très utiles pour conserver des paramètres semi permanents.
On y accède à l'aide des registres EEADR et EEDATA : toute lecture écriture dans le
registre EEDATA se fait dans la position mémoire pointée par EEADR. En fait EEADR
contient l'adresse relative par rapport à la page qui commence en 0x2100, autrement dit,
l'adresse va de 0 à 63. Deux registres de contrôle (EECON1 et EECON2) sont associés à
la mémoire EEMROM.
La durée d’écriture d’un octet est de l’ordre de 10 ms, la fin de chaque écriture réussie
est annoncé par le drapeau EEIF et la remise à zéro du bit RW du registre EECON1.Le
drapeau EEIF peut déclencher l'interruption EEI si elle a été validée.
16- Procédure de lecture dans l'EEPROM de données :

CLAVIER RS232 ET PARALLELE Page 21


CHAPITRE II HARDWARE DE LA CARTE

• Placer l’adresse relative dans EEADR


• Mettre le bit RD de EECON1 à 1
• Lire le contenu du registre EEDATA

17- Procédure d'écriture dans l'EEPROM de données :


1. L'écriture dans L'EEPROM doit être autorisée : bit WREN = 1
2. Placer l’adresse relative dans EEADR
3. Placer la donnée à écrire dans EEDATA
4. Placer 0x55 dans EECON2
5. Placer 0xAA dans EECON2
6. Démarrer l'écriture en positionnant le bit WR
7. Attendre la fin de l'écriture, (10 ms) (EEIF=1 ou WR=0)
8. recommencer au point 2 si on a d'autres données à écrire
Le drapeau WRERR est positionné si une erreur d'écriture intervient

EECON1

EECON2 n’en est pas véritablement un Registre. Microchip l’utilise en tant que registre
de commande. L’écriture de valeurs spécifiques dans EECON2 provoque l’exécution
d’une commande spécifique dans l’électronique interne du PIC.

18- Les interruptions :


Une interruption provoque l’arrêt du programme principal pour aller exécuter une
procédure d'interruption.
A la fin de cette procédure, le microcontrôleur reprend le programme à l’endroit où il
s’était arrêté. Le PIC16F84 possède 4 sources d'interruption. A chaque interruption sont
associés deux bits: un bit de validation et un drapeau. Le premier permet d'autoriser ou non
l'interruption, le second permet au programmeur de savoir de quelle interruption il s'agit.
Tous ces bits sont dans le registre INTCON à part le drapeau EEIF de l'interruption EEI
qui se trouve dans le registre EECON1.
a- Déroulement d'une interruption :

CLAVIER RS232 ET PARALLELE Page 22


CHAPITRE II HARDWARE DE LA CARTE

Lorsque l'événement déclencheur d'une interruption intervient, alors son drapeau est
positionné à un (levé). Si l'interruption correspondante a été validée, elle est alors
déclenchée : le programme arrête ce qu'il est en train de faire et va exécuter la procédure
d'interruption qui se trouve à l'adresse 4 en exécutant les étapes suivantes :
➢ l'adresse contenue dans le PC (Program Counter) est sauvegardée dans la pile, puis
remplacée par la valeur 0004 (adresse de la routine d'interruption).
➢ Le bit GIE est placé "0" pour inhiber toutes les interruptions
➢ A la fin de la procédure d'interruption (instruction RETFIE) :
• le bit GIE est replacé à l'état haut (autorisant ainsi un autre événement)
• le contenu du PC est rechargé à partir de la pile ce qui permet au programme de
reprendre là où il s'est arrêté Deux remarques importantes sont à faire :
Le drapeau reste à l’état haut même après le traitement de l’interruption. Par
conséquent, il faut toujours le remettre à "0" à la fin de la routine d'interruption sinon
l'interruption sera déclenchée de nouveau juste après l'instruction RETFI.
Seul le PC est empilé automatiquement. Si cela est nécessaire, les registres W et
STATUS doivent être sauvegardés en RAM puis restaurés à la fin de la routine pour que
le microcontrôleur puisse reprendre le programme dans les mêmes conditions où il l'a
laissé.

b- L'interruption INT (Entrée RB0 du port B) :


Cette interruption est provoquée par un changement d'état sur l'entrée RB0 du port B
quand elle est programmée en entrée. Elle est gérée par les bits :
- INTE : bit de validation (1=oui, 0=non)
- INTF : drapeau
- INTEDG : front de déclenchement, 1=montant, 0=descendant (registre OPTION_REG)

c- L'interruption RBI (RB4 A RB7 du port B) :

CLAVIER RS232 ET PARALLELE Page 23


CHAPITRE II HARDWARE DE LA CARTE

Cette interruption est provoquée par un changement d'état sur l'une des entrées RB4
à RB7 du port B, Le front n'a pas d'importance. Les bits associés sont RBIE (validation) et
RBIF (drapeau)

d- L'interruption T0I : Débordement du Timer TMR0 :


Cette interruption est provoquée par le débordement du timer TMR0. Les bits associés
sont T0IE (validation) et T0IF (drapeau)
e- L'interruption EEI : Fin d'écriture dans l'EEPROM :
Cette interruption est déclenchée à la fin d'une écriture réussie dans l'EEPROM.
Les bits associés sont EEIE (validation) et EEIF (drapeau).

GIE : ce bit permet de valider ou d'interdire (globalement) toutes les interruptions

19- Les modes d’ adressage :


Ce sont les diverses techniques qui permettent de retrouver l’adresse physique de
l’information dans la mémoire.
Le 16F84 possède 3 modes d’adressage, l’immédiat, le directe et l’indirecte
➢ L’IMMÉDIAT : La donnée manipulée par l’instruction est codée avec elle même
Ex : MOVLW 10h ; charge la valeur 10h dans W.
➢ LE DIRECT : La donnée manipulée par l’instruction ne figure pas dans l’instruction,
mais le nom du fichier conservé par l’instruction est codé avec elle
Ex : MOVF 10h ; charge le contenu de l’emplacement 10h
➢ L’INDIRECTE : Avec ce mode on à besoin de 2 registres. L’un qui contient l’adresse
de l’opérande : c’est le registre FSR, et l’autre utilisé pour accéder à cette adresse qui
est le registre INDF.

20- Mise en œuvre :

CLAVIER RS232 ET PARALLELE Page 24


CHAPITRE II HARDWARE DE LA CARTE

L’utilisation et la mise en œuvre très simple des PICs les a rendus extrêmement
populaire au point que la société qui les fabrique ( MICROCHIP ) est en passe de devenir
le leader mondial dans le domaine des microcontrôleurs devant MOTOROLA et INTEL.
Il suffit d’alimenter le circuit par ses deux broches VDD et VSS, de fixer sa vitesse de
fonctionnement à l’aide d’un quartz et d’élaborer un petit système pour permettre de
réinitialiser le microcontrôleur sans avoir à couper l’alimentation.

FIG II.12 : la mise en œuvre de pic

Jeu d’instruction :

CLAVIER RS232 ET PARALLELE Page 25


CHAPITRE II HARDWARE DE LA CARTE

Afin de comprendre la fonction de chaque instruction, la notation adoptée pour les


données et adresses manipulées par les instructions est fort simple et est la suivante :
• f représente un registre
• b représente un numéro de bit en sachant que 0 correspond toujours au bit de poids
faible (le plus à droite dans le registre)
• k représente une donnée aussi appelée littérale

Un certain nombre d’instructions (ADDWF, ANDWF, etc…) utilise une notation


spéciale présentée sous la forme : 0
ADDWF f, d Où f indique le registre et où d peut prendre deux valeurs (0 ou 1),
ce qui change le comportement de l’instruction. Si d est à 0, le
résultat est placé dans le registre de travail W, la valeur dans le
registre f est alors inchangée, alors que si d est à 1, le résultat est
placé dans le registre f.

Un autre type d’instruction mérite quelques éclaircissements, ce sont les instructions


de branchement conditionnel. Prenons comme exemple :
BTFSC f, b Qui va vouloir dire (Bit Test File Skip if Clear) qui signifie que l’on
va tester le bit b du registre f (b peut prendre une valeur de 0 à 7
pour un registre 8 bits) .Il peut alors y avoir deux solutions :

• Soit le bit testé est à 1, donc la condition testée n’est pas réalisée, le programme
continue alors son déroulement normalement en séquence avec l’instruction juste
en dessous.
• Soit le bit testé vaut 0, donc la condition testée est réalisée et le programme saute
l’instruction qui suit le BTFSC dans le programme.

Les 35 instructions sont donc les suivantes :

CLAVIER RS232 ET PARALLELE Page 26


CHAPITRE II HARDWARE DE LA CARTE

• ADDLW ( Add Literal to W )


Syntaxe : ADDLW k
Opération : W+k→W
Bits d’état du registre STATUS affectés : C, DC, Z
On ajoute au registre de travail la valeur k et on place le résultat dans le registre de travail
W
Durée : 1 cycle instruction (4 cycles d’horloge)

• ADDWF (Add W to F )
Syntaxe : ADDWF f, d
Opération : W+f→f si d=1 ou W+f→W si d=0
Bits d’état du registre STATUS affectés : C, DC, Z
On ajoute le contenu de W et le contenu de f et on place le résultat dans f si d=1 ou dans
W si d=0
Durée : 1 cycle instruction (4 cycles d’horloge)

• ANDLW ( And Literal and W )


Syntaxe : ANDLW k
Opération : W ET k→W
Bit d’état du registre STATUS affecté : Z
On effectue un ET logique entre le contenu de W et le littéral k , on place le résultat dans
W
Durée : 1 cycle instruction (4 cycles d’horloge)

• ANDWF ( And W with F )

CLAVIER RS232 ET PARALLELE Page 27


CHAPITRE II HARDWARE DE LA CARTE

Syntaxe : ANDWF f, d
Opération : W ET f→f si d=1 ou W ET f→W si d=0
Bit d’état du registre STATUS affecté : Z
On effectue un ET logique entre le contenu de W et le contenu de f , on place le résultat
dans W si d=0 ou dans f si d=1
Durée : 1 cycle instruction ( 4 cycles d’horloge )

• BCF ( Bit Clear F )


Syntaxe : BCF f, b
Opération : 0→b (f)
Bits d’état du registre STATUS affectés : aucuns
On met à 0 le bit b du registre f
Durée : 1 cycle instruction (4 cycles d’horloge)

• BSF ( Bit Set F )


Syntaxe : BSF f, b
Opération : 1→b (f)
Bits d’état du registre STATUS affectés : aucuns
On met à 1 le bit b du registre f
Durée : 1 cycle instruction (4 cycles d’horloge)

• BTFSC ( Bit Test , Skip if Clear )


Syntaxe : BTFSC f, b
Opération : saut de l’instruction qui suit si b (f)=0
Bits d’état du registre STATUS affectés : aucuns
Si le bit b de f est nul, l’instruction qui suit celle-ci est ignorée et traitée comme un NOP.
Dans ce cas et dans ce cas seulement, l’instruction BTFSC demande deux cycles pour
s’exécuter.
Durée : 1 cycle instruction (4 cycles d’horloge) ou 2 cycles

• BTFSS ( Bit Test , Skip if Set )

CLAVIER RS232 ET PARALLELE Page 28


CHAPITRE II HARDWARE DE LA CARTE

Syntaxe : BTFSS f, b
Opération : saut de l’instruction qui suit si b (f)=1
Bits d’état du registre STATUS affectés : aucuns
Si le bit b de f est à 1, l’instruction qui suit celle-ci est ignorée et traitée comme un NOP.
Dans ce cas et dans ce cas seulement, l’instruction BTFSS demande deux cycles pour
s’exécuter.
Durée : 1 cycle instruction (4 cycles d’horloge) ou 2 cycles

• CALL (subroutine Call)


Syntaxe : CALL label
Bits d’état du registre STATUS affectés : aucuns
On sauvegarde l’adresse de retour dans la pile puis on appelle le sous programme définit
avec l’étiquette label
Durée : 2 cycles instruction (8 cycles d’horloge)

• CLRF ( Clear F )
Syntaxe : CLRF f
Opération : 0→F
Bit d’état du registre STATUS affecté : Z
On met le contenu du registre f à 0 et on positionne Z
Durée : 1 cycle instruction (4 cycles d’horloge)

• CLRW ( Clear W )
Syntaxe : CLRW
Opération : 0→W
Bit d’état du registre STATUS affecté : Z
On met le contenu du registre W à 0 et on positionne Z
Durée : 1 cycle instruction (4 cycles d’horloge)

• CLRWDT ( Clear WatchDog Timer )

CLAVIER RS232 ET PARALLELE Page 29


CHAPITRE II HARDWARE DE LA CARTE

Syntaxe : CLRWDT
Opération : 0→WDT et 0→pré diviseur du Timer
On met le contenu du registre du timer chien de garde à 0 ainsi que le pré diviseur
Durée : 1 cycle instruction (4 cycles d’horloge)

• COMF ( Complement F )
Syntaxe : COMF f, d
Opération : /f→f si d=1 ou /f→W si d=0
Bit d’état du registre STATUS affecté : Z
On complémente le contenu du registre f bit à bit, le résultat est placé dans f si d=1, dans
W si d=0.
Durée : 1 cycle instruction (4 cycles d’horloge)

• DECF ( Decrement F )
Syntaxe : DECF f, d
Opération : f-1→f si d=1 ou f-1→W si d=0
Bit d’état du registre STATUS affecté : Z
On diminue le contenu du registre f d’une unité, le résultat est placé dans f si d=1, dans W
si d=0 (dans ce cas f reste inchangé).
Durée : 1 cycle instruction (4 cycles d’horloge)

• DECFSZ ( Decrement F ,Skip if Zero )


Syntaxe : DECFSZ f, d
Opération : f-1→f si d=1 ou f-1→W si d=0 et saut si f-1=0
Bit d’état du registre STATUS affecté : aucun
On diminue le contenu du registre f d’une unité, le résultat est placé dans f si d=1, dans W
si d=0 (dans ce cas f reste inchangé).Si le résultat est nul, l’instruction suivante est ignorée
et dans ce cas, cette instruction dure deux cycles.
Durée : 1 cycle instruction ( 4 cycles d’horloge ) ou 2 cycles

• GOTO (branchement inconditionnel)

CLAVIER RS232 ET PARALLELE Page 30


CHAPITRE II HARDWARE DE LA CARTE

Syntaxe : GOTO label


Bit d’état du registre STATUS affecté : aucun
On effectue un saut dans le programme pour aller à l’adresse pointé par le label précisé
dans GOTO
Durée : 2 cycles ( 8 cycles d’horloge )

• INCF (Incrément F)
Syntaxe : INCF f, d
Opération : f+1→f si d=1 ou f+1→W si d=0
Bit d’état du registre STATUS affecté : Z
On augment le contenu du registre f d’une unité, le résultat est placé dans f si d=1, dans W
si d=0 (dans ce cas f reste inchangé).
Durée : 1 cycle instruction (4 cycles d’horloge)

• INCFSZ ( Increment F , Skip if Zero )


Syntaxe : INCFSZ f, d
Opération : f+1→f si d=1 ou f+1→W si d=0 et saut si f-1=0
Bit d’état du registre STATUS affecté : aucun
On augmente le contenu du registre f d’une unité, le résultat est placé dans f si d=1, dans
W si d=0 (dans ce cas f reste inchangé).Si le résultat est nul, l’instruction suivante est
ignorée et dans ce cas, cette instruction dure deux cycles.
Durée : 1 cycle instruction (4 cycles d’horloge) ou 2 cycles

• IORLW ( Inclusive Or Literal with W )


Syntaxe: IORLW k
Opération: W OU k → W
Bit d’état du registre STATUS affecté : Z
On effectue un OU logique entre le contenu de W et le littéral k, le résultat est placé dans
W.
Durée : 1 cycle instruction (4 cycles d’horloge)
• IORWF ( Inclusive Or W with F )

CLAVIER RS232 ET PARALLELE Page 31


CHAPITRE II HARDWARE DE LA CARTE

Syntaxe : IORWF f, d
Opération : W OU f→f si d=1 ou W OU f→W si d=0
Bit d’état du registre STATUS affecté : Z
On effectue un OU entre le contenu de W et le contenu de f, on place le résultat dans f si
d=1, dans W si d=0
Durée : 1 cycle instruction (4 cycles d’horloge)

• MOVF ( Move F )
Syntaxe : MOVF f, d
Opération : f→f si d=1 ou f→W si d=0
Bit d’état du registre STATUS affecté : Z
On déplace le contenu de f dans f si d=1 ou de f dans W si d=0. Attention, le déplacement
de f dans f semble à priori inutile, mais il permet en fait de tester le contenu de f par rapport
à 0 et de positionner le bit Z
Durée : 1 cycle instruction (4 cycles d’horloge)

• MOVLW ( Move Literal to W )


Syntaxe : MOVLW k
Opération : k→W
Bit d’état du registre STATUS affecté : aucun
On charge le contenu de W avec le littéral k
Durée : 1 cycle instruction (4 cycles d’horloge)

• MOVWF ( Move W to F )
Syntaxe : MOVWF f
Opération : W→f
Bit d’état du registre STATUS affecté : aucun
On charge le contenu de f avec le contenu de W
Durée : 1 cycle instruction (4 cycles d’horloge)

• NOP ( No Operation )

CLAVIER RS232 ET PARALLELE Page 32


CHAPITRE II HARDWARE DE LA CARTE

Syntaxe: NOP
Opération: néant
Bit d’état du registre STATUS affecté : aucun
On ne fait que consommer du temps machine (un cycle dans ce cas)
Durée : 1 cycle instruction ( 4 cycles d’horloge )

• RETFIE ( Return From Interrupt )


Syntaxe : RETFIE
Opération : Pile→ PC
Bit d’état du registre STATUS affecté : aucun
On charge le compteur ordinal avec la valeur qui se trouve au sommet de la pile pour
revenir au programme principal lorsque l’exécution du sous programme est terminée.
Durée : 2 cycles instruction (8 cycles d’horloge)

• RETLW ( Return Literal to W )


Syntaxe : RETLW k
Opération : k→W, Pile→PC
Bit d’état du registre STATUS affecté : aucun
On charge le contenu de W avec le littéral k puis on charge le compteur ordinal PC avec la
valeur qui se trouve au sommet de la pile effectuent ainsi un retour de sous programme.
Durée : 2 cycles instruction (8 cycles d’horloge)

• RETURN ( Return from subroutine )


Syntaxe : RETURN
Opération : Pile→PC
Bit d’état du registre STATUS affecté : aucun
On charge le compteur ordinal PC avec la valeur qui se trouve au sommet de la pile
effectuent ainsi un retour de sous programme. C’est un RETLW simplifié.
Durée : 2 cycles instruction (8 cycles d’horloge)
• RLF ( Rotate Left F through carry )
Syntaxe : RLF f, d

CLAVIER RS232 ET PARALLELE Page 33


CHAPITRE II HARDWARE DE LA CARTE

Opération :
7 6 5 4 3 2 1 0
C

Registre f

Bit d’état du registre STATUS affecté : C


On effectue une rotation à gauche de un bit du contenu du registre f en passant par le bit
de retenu C. Si d=1 le résultat est placé dans f, si d=0, le résultat est placé dans W
Durée : 1 cycle instruction (4 cycles d’horloge)

RRF ( Rotate Right F through carry )


Syntaxe : RRF f, d
Opération :
7 6 5 4 3 2 1 0
C

Registre f

Bit d’état du registre STATUS affecté : C


On effectue une rotation à droite de un bit du contenu du registre f en passant par le bit de
retenu C. Si d=1 le résultat est placé dans f, si d=0, le résultat est placé dans W
Durée : 1 cycle instruction ( 4 cycles d’horloge )

• SLEEP ( Sleep )
Syntaxe : SLEEP
Opération : 0→PD, 1→T0, 0→WDT, 0→ pré diviseur
On place le circuit en mode sommeil avec arrêt de l’oscillateur. Cette commande est à
utiliser avec précaution, elle nécessite la connaissance du mode sommeil.

• SUBLW ( Substract W from Literal )


Syntaxe : SUBLW k

CLAVIER RS232 ET PARALLELE Page 34


CHAPITRE II HARDWARE DE LA CARTE

Opération : k-W→W
Bits d’état du registre STATUS affectés : C, DC, Z
On soustrait le contenu du registre W du littéral k et on place le résultat dans W
(soustraction par la méthode du complément à 2).
Durée : 1 cycle instruction (4 cycles d’horloge)

• SUBWF ( Substract W from F )


Syntaxe : SUBWF f, d
Opération : f-W→W si d=0 ou f-W→f si d=1
Bits d’état du registre STATUS affectés : C, DC, Z
On soustrait le contenu du registre W du contenu du registre f et on place le résultat dans
W si d=0, ou dans f si d=1 (soustraction par la méthode du complément à 2).
Durée : 1 cycle instruction (4 cycles d’horloge)

• SWAPF ( Swap F )
Syntaxe : SWAPF f, d
Opération : f(0-3)→f(4-7) et f(4-7)→f(0-3) résultat dans W ou f selon d
Bit d’état du registre STATUS affecté : aucun
On échange les quatre bits de poids forts avec les quatre bits de poids faibles et on place le
résultat dans W si d=0, ou dans f si d=1
Durée : 1 cycle instruction (4 cycles d’horloge)

• XORLW ( Exclusive Or Literal with W )


Syntaxe : XORLW k
Opération : W OU EXCLUSIF k→W
Bit d’état du registre STATUS affecté : Z
On effectue un OU Exclusif entre W et le littéral k, le résultat est placé dans W
Durée : 1 cycle instruction (4 cycles d’horloge)

• XORWF ( Exclusive Or W with F)


Syntaxe : XORWF f, d

CLAVIER RS232 ET PARALLELE Page 35


CHAPITRE II HARDWARE DE LA CARTE

Opération : W OU EXCLUSIF f→W si d=0 ou W OU EXCLUSIF f→f si d=1


Bit d’état du registre STATUS affecté : Z
On effectue un OU Exclusif entre W et le contenu de f, le résultat est placé dans W si d=0,
sinon il est placé dans f.
Durée : 1 cycle instruction (4 cycles d’horloge)

CLAVIER RS232 ET PARALLELE Page 36


CHAPITRE II HARDWARE DE LA CARTE

JEU D'INSTRUCTION

CLAVIER RS232 ET PARALLELE Page 37


CHAPITRE II HARDWARE DE LA CARTE

Le max 232

Introduction :
Le MAX232 est un composant créé par MAXIM que l'on trouve sous d'autres
références chez d'autres fabricants. Il sert d'interface entre une liaison série TTL/CMOS
(0-5V) et une liaison série RS232 (+12 -12V) et ce avec une simple alimentation
5V.Pourtant le célèbre MAX232 a beaucoup évolué depuis sa création mais le brochage
est identique aux premières versions.

1/ Définition et brochage :

Le MAX 232 est un standard depuis longtemps , il permet de réaliser des liaisons RS232 et
des interfaces de communications , il amplifie et met en forme deux entrées et deux sorties
TTL/CMOS vers deux entrées et deux sorties RS232.

Le MAX 232 est un petit circuit intégré mono tension qui couplé à cinq condensateurs permet
de faire l’adaptation entre les signaux TTL d’un microcontrôleur et les signaux RS232 de
l’ordinateur,il vous suffit donc de câbler ce composant avec ses condensateurs de 1µF.

CLAVIER RS232 ET PARALLELE Page 38


CHAPITRE II HARDWARE DE LA CARTE

FIG II.13 : Description externe

Description des broches :

Broche Nom Fonction


1 C1+ Capacité externe « + » pour tension interne double
2 V+ Tension générale interne +10V (typique) alimente
3 C1- Capacité « - pour doubleur de tension interne
4 C2+ Capacité externe « + » inverseur de tension interne
5 C2- Capacité externe « - » inverseur de tension interne
6 V- Tension générale interne -10V (typique) alimente
7 T2OUT RS232 récepteur 2 entrées +-10V (typique)
8 R2IN Rs232 récepteur a 2 entrées +-10V (typique)
9 R2OUT Récepteur ITTL/CMOS de sortie
10 T2IN Récepteur 2TTL/CMOS avec une impédance d’entrée 400K de rappel à
Vcc
11 T1IN Entrée émetteur 1TTL/CMOS avec une impédance d’entrée 400K de
rappel à GND
12 R1OUT Récepteur 1TTL/CMOS de sortie
13 R1IN RS232 récepteur 1 entrée avec résistance 5 K de rappel à la masse GND
14 T1OUT RS232 émetteur 1 sortie de +-10V (typique)
15 GND Masse
16 Vcc Alimentation

CLAVIER RS232 ET PARALLELE Page 39


CHAPITRE II HARDWARE DE LA CARTE

Schéma interne du MAX232 :

FIG II.14 : schéma interne

Le fonctionnement de MAX232 :
Ce circuit sert à générer les niveaux logiques nécessaires pour la partie RS232. En
effet, sur ce circuit la seule tension disponible est le 5V.
Le RS232 aura besoin d'une tension positive supérieure à 3V et d'une tension
négative inférieure à -3V. Ce circuit fait exactement cela. Les signaux Vs+ et Vs- sont
respectivement des tensions de +10V et de -10V. Ce circuit converti le signal RS232 en
logique positive avec des niveaux entre 0V et 5V.
Ces niveaux sont compatibles TTL. Ce sont les niveaux de tension utilisable par le
microcontrôleur.

CLAVIER RS232 ET PARALLELE Page 40

Vous aimerez peut-être aussi