ADC est le convertisseur analogique-numérique, qui convertit les données analogiques en format numérique; il est généralement utilisé pour convertir la tension analogique en format numérique. Le signal analogique a un nombre infini de valeurs comme une onde sinusoïdale ou notre parole, ADC les convertit en niveaux ou états particuliers, qui peuvent être mesurés en nombres comme une quantité physique. Au lieu de la conversion continue, ADC convertit les données périodiquement, ce qui est généralement appelé taux d'échantillonnage. Modem téléphoniqueest l'un des exemples d'ADC, qui est utilisé pour Internet, il convertit les données analogiques en données numériques, afin que l'ordinateur puisse comprendre, car l'ordinateur ne peut comprendre que les données numériques. Le principal avantage de l'utilisation de l'ADC est que le bruit peut être efficacement éliminé du signal d'origine et que le signal numérique peut voyager plus efficacement que le signal analogique. C'est la raison pour laquelle l'audio numérique est très clair, à l'écoute.
À l'heure actuelle, il existe de nombreux microcontrôleurs sur le marché dotés d'un ADC intégré avec un ou plusieurs canaux. Et en utilisant leur registre ADC, nous pouvons nous connecter. Lorsque nous sélectionnons la famille de microcontrôleurs 8051 pour réaliser n'importe quel projet, dans lequel nous avons besoin d'une conversion ADC, nous utilisons un ADC externe. Certaines puces ADC externes sont 0803,0804,0808,0809 et il y en a beaucoup plus. Aujourd'hui, nous allons interfacer l'ADC 8 canaux avec le microcontrôleur AT89s52, à savoir ADC0808 / 0809.
Composants:
- Microcontrôleur 8051 (AT89S52)
- ADC0808 / 0809
- Écran LCD 16x2
- Résistance (1k, 10k)
- POT (10 000 x 4)
- Condensateur (10uf, 1000uf)
- LED rouge
- Planche à pain ou PCB
- 7805
- Cristal 11,0592 MHz
- Puissance
- Fils de connexion
ADC0808 / 0809:
L'ADC0808 / 0809 est un dispositif CMOS monolithique et une logique de commande compatible avec un microprocesseur et possède 28 broches qui donnent une valeur de 8 bits en sortie et des broches d'entrée ADC à 8 canaux (IN0-IN7). Sa résolution est de 8 et peut donc encoder les données analogiques dans l'un des 256 niveaux (2 8). Cet appareil a trois lignes d'adresse de canal à savoir: ADDA, ADDB et ADDC pour sélectionner le canal. Voici le diagramme des broches pour ADC0808:
ADC0808 / 0809 nécessite une impulsion d'horloge pour la conversion. Nous pouvons le fournir en utilisant un oscillateur ou en utilisant un microcontrôleur. Dans ce projet, nous avons appliqué la fréquence en utilisant un microcontrôleur.
Nous pouvons sélectionner n'importe quel canal d'entrée en utilisant les lignes d'adresse, comme nous pouvons sélectionner la ligne d'entrée IN0 en gardant les trois lignes d'adresse (ADDA, ADDB et ADDC) au niveau bas. Si nous voulons sélectionner le canal d'entrée IN2, nous devons maintenir ADDA, ADDB bas et ADDC haut. Pour sélectionner tous les autres canaux d'entrée, regardez le tableau ci-dessous:
Nom du canal ADC |
PIN ADDC |
PIN ADDB |
PIN ADDA |
IN0 |
FAIBLE |
FAIBLE |
FAIBLE |
EN 1 |
FAIBLE |
FAIBLE |
HAUTE |
EN 2 |
FAIBLE |
HAUTE |
FAIBLE |
IN3 |
FAIBLE |
HAUTE |
HAUTE |
IN4 |
HAUTE |
FAIBLE |
FAIBLE |
IN5 |
HAUTE |
FAIBLE |
HAUTE |
IN6 |
HAUTE |
HAUTE |
FAIBLE |
IN7 |
HAUTE |
HAUTE |
HAUTE |
Description du circuit:
Le circuit «d'interfaçage ADC0808 avec 8051» est peu complexe et contient plus de fil de connexion pour connecter le dispositif entre eux. Dans ce circuit, nous avons principalement utilisé AT89s52 comme microcontrôleur 8051, ADC0808, potentiomètre et LCD.
Un écran LCD 16x2 est connecté au microcontrôleur 89s52 en mode 4 bits. Les broches de commande RS, RW et En sont directement connectées aux broches P2.0, GND et P2.2. Et la broche de données D4-D7 est connectée aux broches P2.4, P2.5, P2.6 et P2.7 de 89s52. Les broches de sortie ADC0808 sont directement connectées au port P1 de l'AT89s52. Les broches de la ligne d'adresse ADDA, ADDB, AADC sont connectées à P3.0, P3.1 et P3.2.
Les broches ALE (activation de verrouillage d'adresse), SC (conversion de début), EOC (fin de conversion), OE (activation de sortie) et d'horloge sont connectées à P3.3, P3.4, P3.5, P3.6 et P3.7.
Et ici, nous avons utilisé trois potentiomètres connectés aux broches 26, 27 et 28 de l'ADC0808.
Une batterie de 9 volts et un régulateur de tension de 5 volts, à savoir 7805, sont utilisés pour alimenter le circuit.
Travail:
Dans ce projet, nous avons interfacé trois canaux de ADC0808. Et pour démonstration, nous avons utilisé trois résistances variables. Lorsque nous alimentons le circuit, le microcontrôleur initialise l'écran LCD en utilisant la commande appropriée, donne l'horloge à la puce ADC, sélectionne le canal ADC en utilisant la ligne d'adresse et envoie le signal de conversion de démarrage à l'ADC. Après cet ADC lit d'abord l'entrée du canal ADC sélectionné et donne sa sortie convertie au microcontrôleur. Ensuite, le microcontrôleur affiche sa valeur à la position Ch1 sur l'écran LCD. Et puis le microcontrôleur change le canal ADC en utilisant la ligne d'adresse. Et puis ADC lit le canal sélectionné et envoie la sortie au microcontrôleur. Et afficher sur l'écran LCD sous le nom Ch2. Et comme sage pour les autres chaînes.
Le fonctionnement de l'ADC0808 est très similaire à celui de l'ADC0804. Dans ce cas, le premier microcontrôleur fournit un signal d'horloge de 500 KHz à l'ADC0808, en utilisant l'interruption du temporisateur 0, car l'ADC a besoin d'un signal d'horloge pour fonctionner. Maintenant, le microcontrôleur envoie un signal de niveau BAS à HAUT à la broche ALE (sa broche active-haute) de l'ADC0808 pour activer le verrou de l'adresse. Ensuite, en appliquant un signal de niveau HAUT à BAS au SC (conversion de démarrage), l'ADC commence la conversion analogique-numérique. Et puis attendez que la broche EOC (fin de conversion) passe à BAS. Lorsque l'EOC passe à FAIBLE, cela signifie que la conversion analogique-numérique est terminée et que les données sont prêtes à être utilisées. Après cela, le microcontrôleur active la ligne de sortie en appliquant un signal HAUT à BAS à la broche OE de l'ADC0808.
ADC0808 donne la sortie de conversion métrique de rapport à ses broches de sortie. Et la formule de conversion radiométrique est donnée par:
V dans / (V fs -V z) = D x / (D max -D min)
Où
V in est la tension d'entrée pour la conversion
V fs est la pleine échelle Tension
V z est la tension nulle
D x est le point de données mesuré
D max est la limite de données maximale
D min est la limite de données minimale
Explication du programme:
Dans le programme, nous incluons tout d'abord le fichier d'en-tête sand définit les broches variables et d'entrée et de sortie pour ADC et LCD.
# comprendre
Une fonction de création du délai a été créée (délai d'annulation), ainsi que certaines fonctions LCD comme pour l'initialisation LCD, l'impression de la chaîne, pour les commandes LCD etc. Vous pouvez les trouver facilement dans Code. Consultez cet article pour l'interfaçage LCD avec 8051 et ses fonctions.
Après cela dans le programme principal, nous avons initialisé l'écran LCD et défini les broches EOC, ALE, EO, SC en conséquence.
void main () {int i = 0; eoc = 1; ale = 0; oe = 0; sc = 0; TMOD = 0x02; TH0 = 0xFD; lcd_ini (); lcdprint ("ADC 0808/0809");
Et puis le programme lit l'ADC et stocke la sortie ADC dans une variable, puis l'envoie à l'écran LCD après la conversion décimale en ASCII, en utilisant les fonctions void read_adc () et void adc (int i):
void read_adc () {nombre = 0; ale = 1; sc = 1; retard (1); ale = 0; sc = 0; tandis que (eoc == 1); tandis que (eoc == 0); oe = 1; nombre = entrée_port; retard (1); oe = 0; } void adc (int i) {switch (i) {case 0: ADDC = 0; ADDB = 0; ADDA = 0; lcdcmd (0xc0); read_adc ();