0% ont trouvé ce document utile (0 vote)
63 vues4 pages

Programmation du Convertisseur A/N PIC16F877

Ce document présente un TP sur la programmation d'un convertisseur analogique-numérique (CAN) dans un microcontrôleur PIC16F877. Il décrit le fonctionnement du CAN, les étapes de programmation et donne un exemple de programme pour effectuer une conversion sur l'entrée AN0 toutes les 32 ms via une interruption timer0.

Transféré par

Fadwa GHANI
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
63 vues4 pages

Programmation du Convertisseur A/N PIC16F877

Ce document présente un TP sur la programmation d'un convertisseur analogique-numérique (CAN) dans un microcontrôleur PIC16F877. Il décrit le fonctionnement du CAN, les étapes de programmation et donne un exemple de programme pour effectuer une conversion sur l'entrée AN0 toutes les 32 ms via une interruption timer0.

Transféré par

Fadwa GHANI
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ISET Siliana Atelier circuits

Département GE Programmables 1

TP5 CONVERTISSEUR ANALOGIQUE NUMERIQUE

1. Objectifs
- Apprendre à programmer le convertisseur Analogique-Numérique.
- Utiliser les bibliothèques de PCW Compiler.
2. Présentation

Le microcontrôleur PIC16F877 dispose d’un convertisseur analogique numérique 8 voies avec une
résolution sur 10 bits. La figure suivante présente le schéma synoptique.

Le convertisseur A/N utilise les broches RA0, RA1, RA2, RA3, RA4 et RA5 du port A et les trois broches
du port E (RE0, RE1 et RE2) pour former les 8 entrées. Les entrées RA2 et RA3 peuvent etre utiliséées
comme niveaux de références.

3. Programmation du CAN

Pour programmer le convertisseur, on dispose de 4 registres :

3.1 les registres ADRESL et ADRESH

C’est dans ce registre que le convertisseur charge le résultat de conversion. Selon la valeur du bit
ADFM du registre ADCON1, le résultat peut être justifié à gauche ou à droite.

3.2 Le registre ADCON1

ASKRI Tahar 19 AII2


ISET Siliana Atelier circuits
Département GE Programmables 1

Ce registre permet de déterminer la configuration de chaque broche AN0…AN7.

3.3 Le registre ADCON0

3.4 Etapes de programmation du convertisseur


1) Configurez ADCON1 en fonction des pins utilisés en mode analogique, ainsi que les registres
TRISA et TRISE si nécessaire.
2) Validez, si souhaité, l’interruption du convertisseur ADIE.
3) Paramétrez sur ADCON0 le diviseur utilisé.
4) Choisissez le canal en cours de digitalisation sur ADCON0.
5) Positionnez, si ce n’est pas déjà fait, le bit ADON du registre ADCON0.
6) Attendez le temps Tacq (typiquement 19.7µs sous 5V).
7) Démarrez la conversion en positionnant le bit GO du régistre ADCON0.
8) Attendez la fin de conversion (test de GO/DONE ou ADIF).
9) Lisez les registres ADRESH et si nécéssaire ADRESL.
10) Attendez un temps équivalent à 2 Tad (typiquement 3.2 µs).
11) Recommensez au point 7 (ou 4 si vous changez le canal).

ASKRI Tahar 20 AII2


ISET Siliana Atelier circuits
Département GE Programmables 1

4. Schéma de connexion
Le kit EasyPIC5 dispose de trois entrées analogiques. Deux entrées sont délivrées par deux
potentiomètres P1 et P2, alors que la troisième est obtenue à partir d’un capteur de température. Les
cavaliers J15, J16 et J11 permettent de connecter les trois entrées analogiques au microcontrôleur
selon le schéma suivant :

Travail demandé
Ecrire un programme qui permet de convertir un signal analogique appliqué à l’entrée AN0 (signal
délivré par le potentiomètre P1). La valeur convertie sera envoyée sur le PORTC. La période
d’échantillonnage étant fixée par le timer0 à 32 ms environ.

1- Donnez les valeurs à charger dans les registres ADCON1, ADCON0, OPTION_REG et TRISC.
2- Completer le programme suivant :
Void init()
{
……………………....
T0IE=1 ; //validation de l’interruption timer0
PEIE =1 ; //validation de l'IT périphériques
GIE = 1 ; //validation globale des IT
}
#int_timer0
Void timer0_ISR()
{
……………………………………….
}
Void main()
{ init() ;
while(1) ;}

ASKRI Tahar 21 AII2


ISET Siliana Atelier circuits
Département GE Programmables 1

3- Reprendre le programme précédent, en utilisant deux sources d’interruption : interruption


timer0 et interruption ADC.

4- Réécrire le programme précédent, en utilisant le mode scrutation.

ASKRI Tahar 22 AII2

Vous aimerez peut-être aussi