5.5.4. Organisation de la mémoire
Comme les PICs utilisent un bus pour les
instructions et un bus pour les données, il faut considérer deux
plans mémoire l'un pour les instructions et l'autre pour les
données ainsi que les registres internes.
Chapitre 2
Les microcontrôleurs
23
Figure 2.15 : Plan Mémoire pour les
instructions (Code programme)
Le plan mémoire est linéaire ; les adresses vont
de 0000h à 1FFFh (8k
mots de 14 bits), par page de 2K
mots. On peut remarquer, le vecteur de reset est figé en
0000h. Les PICs n'ont qu'un seul vecteur
d'interruption en 0004h. Lors d'une interruption, le
sous-programme associé devra déterminer quel
périphérique a demandé une interruption. La pile
utilisée par les sous programmes n'est pas implantée en
mémoire de donnée comme avec les microcontrôleurs
classiques, mais dans la mémoire programme. Elles sont utilisées
lors d'appels de sous programmes, on ne peut pas imbriquer plus de 8
sous programmes.
5.5.5 Les Timers
Notre PIC possède 3 timers qui sont :
-Le Timer0 (8bits) : il peut être
incrémenté par des impulsions extérieures via la broche
(TOCKI/RA4) ou par l'horloge interne Fosc/4 (mode Timer).
-Le Timer1 (16 bits) : il peut être
incrémenté soit par l'horloge interne par des impulsions sur la
broche T1CKI/RC0 ou par un oscillateur (RC ou quartz) connecté sur les
broches T1OSO/RC0 et T1OSI/RC1.
- Le Timer2 (8bits) : il est incrémenté par
l'horloge interne, celle peut être pré divisée.
Chapitre 2
Les microcontrôleurs
24
Chapitre 2
Les microcontrôleurs
25
Tous ces timers peuvent déclencher une interruption
interne, s'ils ont été autorisés. 5.5.6 Le
convertisseur
Le CAN est un périphérique intégré
destiné à mesurer une tension et la convertir en nombre binaire
qui pourra être utilisé par un programme. Notre 16F877 travaille
avec un convertisseur analogique/numérique qui permet un
échantillonnage sur 10 bits. Le signal numérique peut donc
prendre 1024 valeurs possibles. On sait que pour pouvoir numériser une
grandeur, nous devons connaître la valeur minimale qu'elle peut prendre,
ainsi que sa valeur maximale, Les pics considèrent par défaut que
la valeur minimale correspond à leur Vss
d'alimentation, tandis que la valeur maximale correspond à la
tension positive d'alimentation Vdd [11].
Le module de conversion utilise 4 registres disposés comme
suit :
*Registre de Résultat uigh (ADRESu)
*Registre de Résultat Low (ADRESL)
*Registre 0 de Contrôle (ADCON0)
*Registre 1 de Contrôle (ADCON1)
Regardons cela de prés dans la figure ci-dessous :
Configuration interne du module de convertisseur
analogique/numérique :
Figure 2.16 : module du convertisseur
|