ADC és el convertidor analògic a digital, que converteix les dades analògiques en format digital; normalment s’utilitza per convertir voltatge analògic a format digital. El senyal analògic té infinits de valors com una ona sinusoïdal o la nostra parla, ADC els converteix en nivells o estats particulars, que es poden mesurar en nombres com a magnitud física. En lloc de la conversió contínua, ADC converteix les dades periòdicament, que normalment es coneix com a taxa de mostreig. Mòdem telefònicés un dels exemples d’ADC, que s’utilitza per a Internet, converteix les dades analògiques en dades digitals perquè l’ordinador pugui entendre, perquè l’ordinador només pot entendre les dades digitals. L’avantatge principal d’utilitzar ADC és que el soroll es pot eliminar de manera eficient del senyal original i el senyal digital pot viatjar de manera més eficient que un analògic. Per això, l’àudio digital és molt clar mentre escoltem.
Actualment, hi ha un munt de microcontroladors al mercat que han incorporat ADC amb un o més canals. I mitjançant el registre ADC podem connectar-nos. Quan seleccionem la família de microcontroladors 8051 per fer qualsevol projecte en què necessitem una conversió ADC, fem servir ADC extern. Alguns xips ADC externs són 0803.0804.0808.0809 i n’hi ha molts més. Avui farem una interfície ADC de 8 canals amb el microcontrolador AT89s52, és a dir, ADC0808 / 0809.
Components:
- Microcontrolador 8051 (AT89S52)
- ADC0808 / 0809
- LCD de 16x2
- Resistència (1k, 10k)
- POT (10k x4)
- Condensador (10uf, 1000uf)
- Led vermell
- Taula de pa o PCB
- 7805
- Cristall de 11,0592 MHz
- Potència
- Connexió de cables
ADC0808 / 0809:
ADC0808 / 0809 és un dispositiu monolític CMOS i una lògica de control compatible amb microprocessador i té 28 pins que dóna un valor de 8 bits a la sortida i pins d'entrada ADC de 8 canals (IN0-IN7). La seva resolució és de 8, de manera que pot codificar les dades analògiques en un dels 256 nivells (2 8). Aquest dispositiu té una línia d’adreça de tres canals: ADDA, ADDB i ADDC per seleccionar el canal. A continuació es mostra el diagrama de pins per a ADC0808:

ADC0808 / 0809 requereix un pols de rellotge per a la conversió. Podem proporcionar-lo mitjançant un oscil·lador o mitjançant un microcontrolador. En aquest projecte hem aplicat la freqüència mitjançant microcontroladors.
Podem seleccionar qualsevol canal d’entrada utilitzant les línies d’adreces, de la mateixa manera que podem seleccionar la línia d’entrada IN0 mantenint les tres línies d’adreces (ADDA, ADDB i ADDC) baixes. Si volem seleccionar el canal d’entrada IN2, hem de mantenir ADDA, ADDB baix i ADDC alt. Per seleccionar tots els altres canals d’entrada, mireu la taula donada:
|
Nom del canal ADC |
PIN ADDC |
PIN ADDB |
PIN ADDA |
|
IN0 |
BAIX |
BAIX |
BAIX |
|
IN1 |
BAIX |
BAIX |
ALTA |
|
IN2 |
BAIX |
ALTA |
BAIX |
|
IN3 |
BAIX |
ALTA |
ALTA |
|
IN4 |
ALTA |
BAIX |
BAIX |
|
IN5 |
ALTA |
BAIX |
ALTA |
|
IN6 |
ALTA |
ALTA |
BAIX |
|
IN7 |
ALTA |
ALTA |
ALTA |
Descripció del circuit:
El circuit de "Interfacing ADC0808 with 8051" és poc complex, ja que conté més cable de connexió per connectar el dispositiu entre si. En aquest circuit hem utilitzat principalment AT89s52 com a microcontrolador 8051, ADC0808, potenciòmetre i LCD.
Una pantalla LCD de 16x2 està connectada amb un microcontrolador 89s52 en mode de 4 bits. Els pins de control RS, RW i En estan connectats directament als pins P2.0, GND i P2.2. I el pin de dades D4-D7 està connectat als pins P2.4, P2.5, P2.6 i P2.7 de 89s52. Els pins de sortida ADC0808 es connecten directament al port P1 de l'AT89s52. Els pins de línia d’adreces ADDA, ADDB, AADC estan connectats a P3.0, P3.1 i P3.2.
ALE (habilitació de bloqueig d’adreça), SC (conversió inicial), EOC (final de conversió), OE (habilitació de sortida) i pins de rellotge estan connectats a P3.3, P3.4, P3.5, P3.6 i P3.7.
I aquí hem utilitzat tres potenciòmetres connectats als pins 26, 27 i 28 de l'ADC0808.
Per alimentar el circuit s’utilitzen una bateria de 9 volts i un regulador de voltatge de 5 volts, és a dir 7805.

Treball:
En aquest projecte hem interfocat tres canals d'ADC0808. I per demostrar hem utilitzat tres resistències variables. Quan alimentem el circuit, el microcontrolador inicialitza la pantalla LCD mitjançant l'ordre adequat, dóna rellotge al xip ADC, selecciona el canal ADC mitjançant la línia d'adreces i envia el senyal de conversió d'inici a l'ADC. Després d'aquest ADC, es llegeix per primera vegada l'entrada de canal ADC seleccionada i dóna la seva sortida convertida a microcontrolador. A continuació, el microcontrolador mostra el seu valor a la posició Ch1 a la pantalla LCD. I després, el microcontrolador canvia el canal ADC mitjançant la línia d’adreça. I després ADC llegeix el canal seleccionat i envia la sortida al microcontrolador. I mostreu en pantalla LCD com a nom Ch2. I com a savi per a altres canals.

El funcionament de l'ADC0808 és molt similar al funcionament de l'ADC0804. En aquest primer microcontrolador proporciona un senyal de rellotge de 500 KHz a ADC0808, mitjançant la interrupció del temporitzador 0, ja que ADC requereix un senyal de rellotge per funcionar. Ara el microcontrolador envia un senyal de nivell BAIX a ALT al pin ALE (el seu pin actiu-alt) de l'ADC0808 per habilitar el tancament a l'adreça. A continuació, aplicant el senyal HIGH a LOW Level a SC (Start Conversion), ADC inicia la conversió analògica a digital. I, a continuació, espereu que el pin EOC (Fi de la conversió) baixi. Quan l’EOC baixa, significa que s’ha completat la conversió analògica a digital i que les dades estan a punt per utilitzar-se. Després d'això, el microcontrolador habilita la línia de sortida aplicant un senyal ALTA a BAIXA al pin OE de l'ADC0808.
ADC0808 proporciona una relació de conversió mètrica de sortida als seus pins de sortida. I la fórmula per a la conversió radiomètrica ve donada per:
V a / (V fs -V z) = D x / (D màx -D min)
On
V in és el voltatge d’entrada per a la conversió
V fs és a escala completa El voltatge
V z és el voltatge zero
D x és el punt de dades que es mesura
D max és Límit màxim de dades
D min és Límit mínim de dades
Explicació del programa:
Al programa, primer de tot, incloem el fitxer de capçalera que defineix els pins variables i d’entrada i sortida per a ADC i LCD.
# incloure
S'ha creat la funció per crear el retard (retard buit), juntament amb algunes funcions LCD com per a la inicialització del LCD, imprimir la cadena, per a comandes LCD, etc. Podeu trobar-les fàcilment a Code. Consulteu aquest article per a la interfície LCD amb el 8051 i les seves funcions.
Després d'això, al programa principal, hem inicialitzat LCD i configurat els pins EOC, ALE, EO, SC en conseqüència.
void main () {int i = 0; eoc = 1; ale = 0; oe = 0; sc = 0; TMOD = 0x02; TH0 = 0xFD; lcd_ini (); lcdprint ("ADC 0808/0809");
A continuació, el programa llegeix l'ADC i emmagatzema la sortida ADC en una variable i després l'envia al LCD després de la conversió decimal a ASCII, mitjançant les funcions void read_adc () i void adc (int i):
void read_adc () {número = 0; ale = 1; sc = 1; retard (1); ale = 0; sc = 0; mentre que (eoc == 1); while (eoc == 0); oe = 1; número = entrada_port; retard (1); oe = 0; } void adc (int i) {switch (i) {case 0: ADDC = 0; ADDB = 0; ADDA = 0; lcdcmd (0xc0); read_adc ();
