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

Compt Rendu TP4

Ce TP vise à configurer un module ADC pour convertir une tension analogique d'un potentiomètre en un affichage numérique sur 10 bits via des LEDs. Le circuit utilise un microcontrôleur PIC16F877A et implique la configuration des ports, l'acquisition de données, et l'affichage des résultats. Les simulations sous Proteus ont validé le bon fonctionnement du système, démontrant une conversion fluide et précise.

Transféré par

aminebhilisse20
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)
4 vues4 pages

Compt Rendu TP4

Ce TP vise à configurer un module ADC pour convertir une tension analogique d'un potentiomètre en un affichage numérique sur 10 bits via des LEDs. Le circuit utilise un microcontrôleur PIC16F877A et implique la configuration des ports, l'acquisition de données, et l'affichage des résultats. Les simulations sous Proteus ont validé le bon fonctionnement du système, démontrant une conversion fluide et précise.

Transféré par

aminebhilisse20
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

TP4 : Convertisseur Analogique / Numérique (ADC)

Introduction
L'objectif principal de cette séance est de configurer le module ADC pour acquérir une tension
analogique variable provenant d'un potentiomètre, et de représenter le résultat de cette conversion sur
10 bits à l'aide de 10 LEDs. Ce TP met en œuvre la simulation du circuit électronique sous le logiciel
Proteus (ISIS) ainsi que le développement du programme correspondant avec MPLAB X. Le cahier
des charges nous impose des contraintes techniques précises, notamment la justification à droite du
résultat de conversion (ADFM = 1), l'utilisation de la méthode par scrutation (polling) pour tester la fin
de conversion, ainsi que le respect strict du temps d'acquisition avant chaque mesure.

Description du circuit
Le schéma s'articule autour d'un microcontrôleur PIC16F877A. Le circuit met en œuvre un
oscillateur à quartz de 4 MHz accompagné de ses deux condensateurs de 22 pF (C1 et C2) pour
l'horloge système, ainsi qu'une résistance de pull-up de 10 kΩ (R1) reliée à la broche MCLR
(reset) et à l'alimentation Vdd. La partie acquisition analogique est réalisée à l'aide d'un
potentiomètre de 10 kΩ (RV1). Le curseur de ce potentiomètre, qui fournit une tension
analogique variable (entre 0 et Vdd), est connecté directement à la broche RA0 (canal AN0) du
microcontrôleur. Pour l'affichage numérique de la conversion sur 10 bits, le circuit utilise 10 LEDs
rouges, chacune protégée par une résistance de limitation de courant de 220 Ω :
• Les 8 bits de poids faible (LSB) du résultat de la conversion sont affichés par 8 LEDs
connectées aux huit broches du PORTB (RB0 à RB7).
• Les 2 bits de poids fort (MSB) du résultat sont affichés par 2 LEDs connectées aux broches
RC0 et RC1 du PORTC.
Explication du fonctionnement
Configuration des Entrées/Sorties et de l'ADC : Le programme débute par la configuration des
ports en sélectionnant la Banque 1. Le registre TRISA est mis à 0xFF pour configurer la broche RA0
(AN0) en entrée. Les registres TRISB et TRISC sont effacés (0x00) pour configurer les ports B et C en
sorties afin de piloter les LEDs. La configuration du convertisseur se fait via deux registres spécifiques
:• ADCON1 (Banque 1) : Il est chargé avec la valeur B'10001110'. Le bit 7 (ADFM) mis à 1 indique
que le résultat de la conversion sur 10 bits sera justifié à droite. Les bits PCFG3:0 (1110) configurent
RA0 comme unique entrée analogique (AN0), en utilisant Vdd et Vss comme tensions de référence.
• ADCON0 (Banque 0) : Après un retour en Banque 0, il est configuré avec B'01000001'. Cela
sélectionne la fréquence d'horloge de conversion Fosc/8, active le canal AN0, et allume le module
ADC (ADON = 1).
Acquisition et Lancement de la conversion (Polling) : La boucle principale commence par
appeler une sous-routine Delay_Acq. Cette temporisation d'environ 23 µs est indispensable pour
respecter le temps d'acquisition de l'ADC. Une fois le temps écoulé, la conversion est initiée en
mettant à 1 le bit GO/DONE du registre ADCON0. Le programme utilise ensuite la méthode par
scrutation (polling) : l'instruction BTFSC ADCON0, GO teste en permanence ce bit. Tant que le bit
est à 1, la conversion est en cours.
Lecture et Affichage du résultat sur 10 bits :
• Lecture des bits 9-8 : Le registre ADRESH est lu directement (Banque 0) et sauvegardé dans
ADRESH_VAL.
• Lecture des bits 7-0 : Le programme bascule en Banque 1 pour lire ADRESL, puis revient en
Banque 0 pour le sauvegarder dans ADRESL_VAL.
• Affichage des poids faibles : La valeur de ADRESL_VAL est copiée dans le PORTB (RB0 à RB7).
• Affichage des poids forts par masquage : Le programme isole les deux bits de poids faible de
ADRESH_VAL avec un ET logique. Ensuite, il lit le PORTC actuel, efface ses bits RC1 et RC0, puis
fusionne l'ancienne valeur du port avec les nouveaux bits via un OU logique (IORWF). Le résultat est
écrit sur le PORTC.
Conclusion
Ce TP a permis de mettre en pratique l'acquisition et le traitement de signaux analogiques en
programmation assembleur sur le microcontrôleur PIC16F877A. L'utilisation de l'environnement
MPLAB X pour l'écriture du code et de Proteus ISIS pour la simulation a facilité la
compréhension du fonctionnement interne du module ADC. La réalisation de ce cahier des
charges a illustré plusieurs concepts fondamentaux liés aux microcontrôleurs :
• La configuration matérielle du module ADC (registres ADCON0 et ADCON1).
• La gestion des contraintes temporelles (temporisation de 23 µs pour l'acquisition).
• La synchronisation par scrutation (polling du bit GO/DONE).
• Le traitement de données sur 10 bits (réparties sur ADRESH et ADRESL).
• La manipulation avancée des bits (Masquage avec ANDLW et IORWF sur le PORTC). Les
simulations sous Proteus ont confirmé le bon fonctionnement de la chaîne de conversion
analogique-numérique. La variation de la tension via le potentiomètre s'est traduite de manière
fluide et précise par une mise à jour binaire sur les 10 LEDs, validant ainsi la cohérence globale
entre le schéma électronique et le programme en assembleur.

Vous aimerez peut-être aussi