Vous êtes sur la page 1sur 14

Ports d’E/S

Afin de synchroniser le fonctionnement


des ports d’E / S avec l’organisation
interne à 8 bits du microcontrôleur, ils
sont, comme les registres, regroupés
en cinq ports désignés par A, B, C, D
et E. Tous ont plusieurs
caractéristiques communes:


Pour des raisons pratiques, de
nombreuses broches d'E / S sont
multifonctionnelles. Si une broche
remplit l'une de ces fonctions, elle ne
peut pas être utilisée comme broche
d'entrée / sortie à usage général.
En effaçant n'importe quel bit du registre TRIS

Chaque port a son «satellite», c’est- (bit = 0), la broche de port correspondante est
à-dire le registre TRIS configurée en tant que sortie. De même, en
correspondant: TRISA, TRISB, définissant n’importe quel bit du registre TRIS
TRISC, etc., qui détermine les (bit = 1), la broche de port correspondante est
performances des bits de port, mais configurée en tant qu’entrée. Cette règle est
pas leur contenu. facile à retenir 0 = Sortie, 1 = Entrée.
Ports d’E/S
Exemple de
configuration E/S :

Registre à 8 bits

Registre à 8 bits

Commande
de relais
Bouton
poussoir Capteur

Affichage
LED
Ports d’E/S
Configuration E/S numériques / Analogiques:
Le port A est un port bidirectionnel de 8 bits de large. Les bits des registres TRISA
et ANSEL contrôlent les broches du port A. Toutes les broches du port A servent
d’entrées / sorties numériques. Cinq d’entre elles peuvent également être des
entrées analogiques (notées AN):
Ports d’E/S
Configuration E/S numériques / Analogiques:

Les registres ANSEL et ANSELH permettent de configurer le mode d’entrée d’une


broche d’entrée / sortie sur analogique ou numérique.
Ports d’E/S
Configuration E/S numériques / Analogiques:
La règle est la suivante: Pour configurer une broche en tant qu'entrée analogique, le
bit approprié des registres ANSEL ou ANSELH doit être défini à « 1 ». Pour
configurer une broche en tant qu'entrée / sortie numérique, le bit approprié doit être
mis à « 0 ». L'état des bits ANSEL n'a aucune influence sur les fonctions de sortie
numérique. Le résultat de toute tentative de lecture d'une broche de port configurée
en tant qu'entrée analogique sera 0.
Ports d’E/S
Configuration E/S numériques / Analogiques:
Port A :

13 14 7 6 5 4 3 2
RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0
- - AN4 - AN3 AN2 AN1 AN0

Port B :
40 39 38 37 36 35 34 33
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
- - AN13 AN11 AN9 AN8 AN10 AN12

Port E :
36 35 34 33
RE3 RE2 RE1 RE0
- AN7 AN6 AN5
Ports d’E/S
Configuration E/S numériques / Analogiques:
Les registres ANSEL et ANSELH permettent de fixer le pin sélectionné comme (entrée)
analogique ou numérique:

0 : Numérique 1 : Analogique

ANSEL ANS7 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0

ANSELH - - ANS13 ANS12 ANS11 ANS10 ANS9 ANS8

Au démarrage du PIC 16F887 on a:


Tous les pins sont configurés des entrées


Toutes les entrées sont configurées comme étant analogiques (14) les restantes sont
numériques
Pour s’assurer à utiliser tous les pins comme des canaux numériques il est recommandé
! de forcer les registres ANSEL/ANSELH à zéro.
Conversion A → N
Outre un grand nombre de lignes d'E / S numériques, le PIC16F887 contient 14 entrées
analogiques. Ils permettent au microcontrôleur de reconnaître, non seulement si une
broche est commandée à zéro logique ou à un (0 ou + 5V), mais aussi de mesurer avec
précision sa tension et de la convertir en une valeur numérique, c'est-à-dire au format
numérique. Toute la procédure se déroule dans le module convertisseur A/N qui présente
les caractéristiques suivantes:

 Le convertisseur génère un résultat binaire sur 10 bits en utilisant la méthode

d'approximation successive et stocke les résultats de la conversion dans les registres


ADC (ADRESL et ADRESH);

 Il existe 14 entrées analogiques distinctes;

 Le convertisseur A / N permet la conversion d'un signal d'entrée analogique en une

représentation binaire sur 10 bits;

 En sélectionnant les références de tension Vref- et Vref +, la résolution minimale ou

la qualité de la conversion peut être ajustée à divers besoins.


Conversion A → N
Schéma fonctionnelle du convertisseur Analogique Numérique
(16F887)

0
Conversion A → N
Le module est sous le contrôle des bits de quatre registres:

 ADRESH - Contient l'octet de poids du résultat de la conversion;

 ADRESL - Contient un octet faible du résultat de la conversion;

 ADCON0 - Registre de contrôle 0;

 ADCON1 Registre de contrôle 1

Registres
ADRESH et ADRESL
Conversion A → N
Exigences relatives à l’acquisition A→N

Pour que l’ADC atteigne la précision spécifiée, il est nécessaire de prévoir un certain délai
entre la sélection de l’entrée analogique spécifique et la mesure elle-même. Ce temps est
appelé temps d'acquisition et dépend principalement de l'impédance de la source. Il existe
une équation utilisée pour calculer avec précision ce temps, qui dans le pire des cas équivaut
à environ 20 µS. En bref, après la sélection (ou la modification) de l'entrée analogique et
avant de commencer la conversion, il est nécessaire de prévoir une temporisation d'au moins
20 µS pour permettre la précision de conversion maximale de l'ADC.

Période d'horloge ADC


Conversion A → N
Exigences relatives à l’acquisition A→N
Toute modification de la fréquence d'horloge du système affectera la fréquence d'horloge du
convertisseur analogique-numérique, ce qui peut affecter le résultat de celui-ci. Les
caractéristiques de fréquence de l'appareil sont présentées dans le tableau ci-dessus.

Comment utiliser le convertisseur A→N?


Afin de permettre au convertisseur A/N de fonctionner sans problème et d'éviter des résultats
inattendus, il est nécessaire de prendre en compte les éléments suivants:

Le convertisseur A/N ne diffère pas entre les tensions numériques et analogiques. Afin
d'éviter toute erreur de mesure ou tout endommagement de la puce, les broches doivent
être configurées en tant qu'entrées analogiques avant le début de la conversion. Les bits
utilisés à cette fin sont stockés dans les registres TRIS et ANSEL/ANSELH;


Lorsque le port avec les entrées analogiques marquées CH0-CH13 est lu, les bits
correspondants sont activés au zéro logique (0);


En gros, la mesure de la tension dans le convertisseur est basée sur la comparaison de la
tension d'entrée avec l'échelle interne comportant 1024 valeurs (2^10 = 1024). La valeur la
plus basse correspond à la tension Vref-, tandis que la valeur la plus haute correspond à la
tension Vref +.
Conversion A → N
Les 14 E/S Analogique/Numérique (AN0 …AN13) du 16F887 sont configurées en
Analogique ou en numérique non seulement à l'aide des registres ADCON 0 et ADCON1
mais aussi à l'aide des deux registres ANSEL et ANSELH (bank 3)
Ces E/S sont distribuées sur des pins
des trois ports A, B et C selon le
tableau suivant :

Chaque pin représente un canal


(channel) numéroté par
{AN0,AN1,...AN13}

A noter bien qu’on a passé du pin 3


au pin 5 dans le PORTA !

Dans mikroC, l’exploitation du


module ADC est assurée par une
fonction prédéfinie « ADC_Read() »
qui s’occupe des configurations
nécessaires pour la conversion et
retourne une valeur numérique sur la
Conversion A → N
Exemple d’application:
Mesure
analogique

Prototype :

unsigned ADC_Read(unsigned short


channel);
AN2

Vous aimerez peut-être aussi