DOC

Exercice complémentaire : ... Par exemple les PIC16C7X possèdent un C.A.N.
intégré multiplexé (4 ou 8 voies) et le PIC16C84 et le PIC16F84 ont leur mémoire
 ...

Part of the document


TABLE DES MATIERES

1. Introduction : 2
1.1. Présentation de la famille PIC : 2
1.2. Les caractéristiques de la famille PIC : 3
1.3. Les applications : 3
1.4. Les 3 différentes options de mémoire programme : 3
1.5. Les outils de développement : 3
2. Le PIC16C5X : 4
2.1. Présentation : 4
2.2. Mémoire programme : 5
2.3. Mémoire de données : 6
2.4. Les modes d'adressage : 7
2.4.1. Adressage direct : 7
2.4.2. Adressage indirect : 7
2.4.3. Adressage immédiat : 7
2.5. Codage des instructions : 8
2.5.1. Instructions sur les octets : 8
2.5.2. Instructions sur les bits : 8
2.5.3. Instructions adressage immédiat et CALL : 8
2.5.4. instruction GOTO : 8
2.6. Les registres du SFR : 8
2.6.1. W : Working Register 8
2.6.2. STATUS : registre d'état 9
2.6.3. FSR et INDF : 9
2.6.4. PC : Program Counter : 9
2.6.5. Les ports d'entrée/sortie : 11
2.7. Les registres d'entrées/sorties : 11
2.7.1. Présentation : 11
2.7.2. Exemple : commande d'un moteur pas à pas 12
2.7.3. Rappels : le moteur pas à pas 12
2.7.4. Solution : 13
2.7.5. Exercice complémentaire : 13
2.8. Les registres OPTION et RTCC (ou TMR0) : gestion du Timer et du
Watchdog 14
2.8.1. Le timer : 14
2.8.2. Le Watchdog : 17
2.9. Les bits de configuration : 18
3. Applications diverses : 18
3.1. Exemples : 18
3.2. Génération d'une sinusoïde : 19
3.3. Gestion d'un clavier : 19
3.3.1. Lecture de boutons poussoirs : 19
3.3.2. Gestion d'un clavier en connexion matricielle en lecture :
20
3.3.3. Gestion d'un clavier en connexion matricielle en lecture-
écriture : 20
3.3.4. Gestion d'un clavier 4x4 et d'un afficheur à LED : AN 529
21
3.4. Asservissement d'un moteur à courant continu : 23




Introduction :


1 Présentation de la famille PIC :

Il existe 3 grandes catégories de microcôntroleurs PIC :
1. la famille PIC16C5X : 33 instructions, instructions sur 12
bits, prix très bas, pas d'interruptions, 18 ou 28 broches.
Cette famille est la plus ancienne et la plus répandue. C'est
grâce à cette famille et notamment le PIC16C54 que Microchip a
pu se placer et dominer le marché des produits « grand
public » (four à micro-onde, machine à laver, console de jeu,
...).
2. la famille PIC16CXX : 35 instructions, instructions sur 14
bits, milieu de gamme. Cette famille qui n'est malheureusement
pas compatible avec la précédente est beaucoup plus complète.
Par exemple les PIC16C7X possèdent un C.A.N. intégré
multiplexé (4 ou 8 voies) et le PIC16C84 et le PIC16F84 ont
leur mémoire programme respectivement en EEPROM et en FLASH
(Cette technologie permet la programmation du composant IN
SITU, c'est à dire sans manipulation).
3. la famille PIC17CXX : 35 instructions, instructions sur 16
bits, mémoire programme extensible à 64 k*16bits. Ce
microcôntroleur ressemble à des microcôntroleurs 8 bits
classiques type 80C51, avec une différence essentielle : le
nombre d'instructions (microcôntroleur à structure RISC).

Remarque : il existe aussi la famille PIC12CXX, 33 instructions,
instructions sur 12 bits et 8 broches seulement. Cette famille convient aux
applications intelligentes ne demandant que très peu d'entrées/sorties.
Un extrait du catalogue Micochip est donné à la
figure 1 :

[pic]
fig.1 :famille PIC16/17.


2 Les caractéristiques de la famille PIC :

Les principaux avantages de la famille PIC sont les suivants :
4. structure interne statique ce qui leur permet un arrêt de l'horloge
(instruction SLEEP) pour une économie d'énergie dans les
applications embarquées,
5. jeu d'instructions réduit (33 ou 35 instructions),ce qui permet un
apprentissage rapide,
6. microcôntroleur rapide puisque 1 instruction est exécutée en 4
cycles d'horloge (sauf les sauts),
7. keeloq system permet une confidentialité.

3 Les applications :

L'arrivée des microcôntroleurs à structure R.I.S.C. sur le marché, au
début des années 90 et notamment l'arrivée des PIC a vu l'apparition de
nouveaux marchés qui auparavant n'étaient pas investis par les
microcôntroleurs. Ainsi une politique de prix agressive, alliée à un
produit innovant, a permis aux PIC de se retrouver dans les téléviseurs,
les fours à micro-onde et dans beaucoup de produits « grand public » qui
auparavant ne comportaient pas de microcôntroleurs. Chez les industriels
aussi, des cartes logiques qui ne comportaient pas de microcôntroleurs ont
été envahis par les PIC et autres microcôntroleurs à structure R.I.S.C.
Les applications à base de PIC sont nombreuses :
8. remplacement de circuits spécifiques (gain d'argent),
9. remplacement de batterie de circuits logiques (gain de place),
10. application de contrôle moteur,
11. filtrage, transmission / réception,
12. automatismes,
13. applications portables,
14. applications qui demandent une confidentialité du circuit,
15. cartes spécifiques pour PC.

4 Les 3 différentes options de mémoire programme :

PIC1XCXX : la mémoire programme est en EPROM. Pour ce type de
microcôntroleur, il existe 2 solutions : le boitier comporte une fenêtre
d'effacement (plus cher, mais permet le développement du programme avec des
cycles d'effacement par UV et écriture) ou le boitier est dit « O.T.P »
(One Time Programmable), moins cher mais ne permet pas la réécriture du
programme.
PIC1XCRXX : la mémoire programme est en ROM et est donc
programmée en usine par le fondeur. Ces circuits sont utilisés pour la
grande série.
PIC16FXX : la mémoire programme est une mémoire FLASH ce qui
permet un cycle d'effacement très rapide et sur toute la mémoire (flash).

5 Les outils de développement :

Les logiciels de développement sont les suivants :
MPASM : cross-assembleur universel pour PIC 16/17, cet assembleur
permet l'utilisation de macros et fournit un fichier objet et un fichier
listing.
MPLAC : cross-assembleur pour PIC 16CXX, cet assembleur permet
l'utilisation macros et fournit un fichier objet et un fichier listing.
MPSIM : simulateur de PIC. Cet outil est très utile pour l'auto
formation sur le produit.
MP-C : compilateur C pour la famille PIC 16/17.

Il existe 2 principaux types d'outils de développement : les
programmateurs et les émulateurs dont quelques-uns sont listés ci-dessous :
le PICSTART PLUS : programmateur de PIC16CXX (bon marché)
le PROMATE II : programmateur universel (PIC 16/17)
le PICMASTER : émulateur haut de gamme.

Le PIC16C5X :


1 Présentation :

[pic]

Les principales caractéristiques de la famille PIC16C5X sont résumés
à la figure 3. La mémoire de données RAM comporte les registres à fonction
spéciale (SFR) et la mémoire utilisateur.

|PIC |EPROM |RAM |Ports d'E/S |
|PIC 16C54 |512 x 12 |32 x 8 |12 |
|PIC 16C55 |512 x 12 |32 x 8 |20 |
|PIC 16C56 |1k x 12 |32 x 8 |12 |
|PIC 16C57 |2k x 12 |80 x 8 |20 |
|PIC 16C58 |2k x 12 |80 x 8 |12 |


fig.3 : caractéristiques principales des membres de la famille
PIC16C5X.

Les composants de la série se distinguent aussi par la cadence
paramétrable de leur oscillateur. Le choix d'un des modes de fonctionnement
se fait par 2 bits de configurations programmé par l'utilisateur. Les
quatre possibilités sont données à la figure 4. Pour plus de détail, on se
reportera à la notice constructeur.


|Identification |fréquence MIN |fréquence MAX |Commentaire |
| LP |DC |32 kHz |Low Power |
| RC |DC |4 MHz |Oscillateur RC |
| XT |DC |4 MHz |Oscillateur à |
| | | |quartz |
| HS |DC |20 MHz |High Speed |


fig.4 : cadence de fonctionnement.

Une instruction est exécutée en 4 cycles machine sauf pour les sauts.
En effet, grâce à sa structure de Harvard ( bus de données et bus d'adresse
séparés), le microcôntroleur utilise un pipe-line à 2 couches. Pendant le
premier cycle il va cherché l'instruction suivante (Fetch) et il exécute
l'instruction courante (Execute). Cette chaîne est cassée lors de saut, et
il faut donc faire un fetch et ensuite un execute, ce qui prend 8 cycles.
[pic]


2 Mémoire programme :

La mémoire programme est organisée en pages de 512 mots d'instruction
chacune. Les PIC16C54 et PIC16C55 ne disposent que d'une page, le PIC16C56
en a deux, sélectionnées par le bit 5 du registre d'état STATUS et le
PIC16C57 en a quatre, sélectionnées par les bits 6-5 de STAT