ADC ist der Analog-Digital-Wandler, der analoge Daten in ein digitales Format konvertiert. Normalerweise wird es verwendet, um analoge Spannung in digitales Format umzuwandeln. Das analoge Signal hat unendlich viele Werte wie eine Sinuswelle oder unsere Sprache. Der ADC wandelt sie in bestimmte Pegel oder Zustände um, die in Zahlen als physikalische Größe gemessen werden können. Anstelle einer kontinuierlichen Konvertierung konvertiert der ADC Daten periodisch, was normalerweise als Abtastrate bezeichnet wird. Telefonmodemist eines der Beispiele für ADC, das für das Internet verwendet wird. Es wandelt analoge Daten in digitale Daten um, damit der Computer sie verstehen kann, da der Computer nur digitale Daten verstehen kann. Der Hauptvorteil der Verwendung von ADC besteht darin, dass wir Rauschen effizient aus dem ursprünglichen Signal eliminieren können und das digitale Signal effizienter als das analoge Signal übertragen werden kann. Das ist der Grund, warum digitales Audio beim Hören sehr klar ist.
Gegenwärtig gibt es viele Mikrocontroller auf dem Markt, die ADC mit einem oder mehreren Kanälen eingebaut haben. Und durch die Verwendung ihres ADC-Registers können wir eine Schnittstelle herstellen. Wenn wir die 8051-Mikrocontrollerfamilie für die Erstellung eines Projekts auswählen, für das eine ADC-Konvertierung erforderlich ist, verwenden wir einen externen ADC. Einige externe ADC-Chips sind 0803,0804,0808,0809 und es gibt viele weitere. Heute werden wir einen 8-Kanal-ADC mit dem AT89s52-Mikrocontroller ADC0808 / 0809 verbinden.
Komponenten:
- 8051 Mikrocontroller (AT89S52)
- ADC0808 / 0809
- 16x2 LCD
- Widerstand (1k, 10k)
- POT (10k x 4)
- Kondensator (10uf, 1000uf)
- Rot führte
- Brotplatte oder Leiterplatte
- 7805
- 11,0592 MHz Kristall
- Leistung
- Kabel anschließen
ADC0808 / 0809:
ADC0808 / 0809 ist eine mit monolithischen CMOS-Bauelementen und Mikroprozessoren kompatible Steuerlogik und verfügt über 28 Pins, die einen 8-Bit-Wert im Ausgang und 8-Kanal-ADC-Eingangspins (IN0-IN7) liefern. Die Auflösung beträgt 8, sodass die analogen Daten in eine der 256 Ebenen (2 8) codiert werden können. Dieses Gerät verfügt über eine dreikanalige Adressleitung: ADDA, ADDB und ADDC zur Kanalauswahl. Unten ist das Pin-Diagramm für ADC0808:
ADC0808 / 0809 benötigt einen Takt zur Umwandlung. Wir können es mit einem Oszillator oder einem Mikrocontroller bereitstellen. In diesem Projekt haben wir die Frequenz mithilfe eines Mikrocontrollers angewendet.
Wir können jeden Eingangskanal mithilfe der Adressleitungen auswählen, ebenso wie wir die Eingangsleitung IN0 auswählen können, indem wir alle drei Adressleitungen (ADDA, ADDB und ADDC) niedrig halten. Wenn wir den Eingangskanal IN2 auswählen möchten, müssen wir ADDA, ADDB niedrig und ADDC hoch halten. Schauen Sie sich zur Auswahl aller anderen Eingangskanäle die folgende Tabelle an:
ADC-Kanalname |
ADDC PIN |
ADDB PIN |
ADDA PIN |
IN0 |
NIEDRIG |
NIEDRIG |
NIEDRIG |
IN 1 |
NIEDRIG |
NIEDRIG |
HOCH |
IN 2 |
NIEDRIG |
HOCH |
NIEDRIG |
IN3 |
NIEDRIG |
HOCH |
HOCH |
IN4 |
HOCH |
NIEDRIG |
NIEDRIG |
IN5 |
HOCH |
NIEDRIG |
HOCH |
IN6 |
HOCH |
HOCH |
NIEDRIG |
IN7 |
HOCH |
HOCH |
HOCH |
Schaltungsbeschreibung:
Die Schaltung „ADC0808 mit 8051 verbinden“ ist wenig komplex und enthält mehr Verbindungskabel zum Verbinden des Geräts miteinander. In dieser Schaltung haben wir hauptsächlich AT89s52 als 8051-Mikrocontroller, ADC0808, Potentiometer und LCD verwendet.
Ein 16x2-LCD ist im 4-Bit-Modus mit dem 89s52-Mikrocontroller verbunden. Die Steuerstifte RS, RW und En sind direkt mit den Stiften P2.0, GND und P2.2 verbunden. Der Datenstift D4-D7 ist mit den Stiften P2.4, P2.5, P2.6 und P2.7 von 89s52 verbunden. Der ADC0808-Ausgangspin ist direkt mit Port P1 von AT89s52 verbunden. Die Adressleitungsstifte ADDA, ADDB, AADC sind an P3.0, P3.1 und P3.2 angeschlossen.
ALE (Address Latch Enable), SC (Start Conversion), EOC (End of Conversion), OE (Output Enable) und Clock Pins sind an P3.3, P3.4, P3.5, P3.6 und P3.7 angeschlossen.
Und hier haben wir drei Potentiometer verwendet, die an Pin 26, 27 und 28 von ADC0808 angeschlossen sind.
Eine 9-Volt-Batterie und ein 5-Volt-Spannungsregler, nämlich 7805, werden zur Stromversorgung der Schaltung verwendet.
Arbeiten:
In diesem Projekt haben wir drei Kanäle von ADC0808 angeschlossen. Und zur Demonstration haben wir drei variable Widerstände verwendet. Wenn wir die Schaltung mit Strom versorgen, initialisiert der Mikrocontroller das LCD mit einem geeigneten Befehl, gibt dem ADC-Chip einen Takt, wählt den ADC-Kanal mithilfe der Adressleitung aus und sendet ein Startumwandlungssignal an den ADC. Danach liest der ADC zuerst den ausgewählten ADC-Kanaleingang und gibt seinen konvertierten Ausgang an den Mikrocontroller weiter. Dann zeigt der Mikrocontroller seinen Wert an der Position Ch1 im LCD an. Und dann ändert der Mikrocontroller den ADC-Kanal mithilfe der Adressleitung. Dann liest der ADC den ausgewählten Kanal und sendet die Ausgabe an den Mikrocontroller. Und auf dem LCD als Name Ch2 anzeigen. Und wie weise für andere Kanäle.
Die Arbeitsweise von ADC0808 ist der Arbeitsweise von ADC0804 sehr ähnlich. In diesem Fall liefert der erste Mikrocontroller ein 500-kHz-Taktsignal an den ADC0808 unter Verwendung des Timer 0-Interrupts, da der ADC zum Betrieb ein Taktsignal benötigt. Jetzt sendet der Mikrocontroller ein Signal mit niedrigem bis hohem Pegel an den ALE-Pin (seinen Aktiv-Hoch-Pin) des ADC0808, um die Verriegelung in der Adresse zu aktivieren. Durch Anlegen des Signals HIGH to LOW Level an SC (Start Conversion) startet der ADC die Analog-Digital-Umwandlung. Warten Sie dann, bis der EOC-Pin (End of Conversion) auf LOW steht. Wenn das EOC auf LOW geht, bedeutet dies, dass die Analog-Digital-Umwandlung abgeschlossen ist und die Daten einsatzbereit sind. Danach aktiviert der Mikrocontroller die Ausgangsleitung durch Anlegen eines HIGH-LOW-Signals an den OE-Pin des ADC0808.
ADC0808 gibt die Ausgabe der Verhältnismetrikumwandlung an seinen Ausgangspins aus. Die Formel für die radiometrische Umwandlung lautet:
V in / (V fs -V z) = D x / (D max -D min)
Wo
V in ist die Eingangsspannung für die Umwandlung.
V fs ist der volle Maßstab. Spannung
V z ist die Spannung Null.
D x ist der Datenpunkt, der gemessen wird.
D max ist die maximale Datengrenze.
D min ist die minimale Datengrenze
Programmerklärung:
Im Programm enthalten wir zunächst die Header-Datei Sand, die Variablen- und Eingangs- und Ausgangspins für ADC und LCD definiert.
# include
Die Funktion zum Erstellen der Verzögerung wurde erstellt (ungültige Verzögerung), zusammen mit einigen LCD-Funktionen wie zum Beispiel zur LCD-Initialisierung, zum Drucken der Zeichenfolge, für LCD-Befehle usw. Sie können sie leicht im Code finden. In diesem Artikel finden Sie Informationen zur LCD-Schnittstelle mit 8051 und seinen Funktionen.
Danach haben wir im Hauptprogramm LCD initialisiert und die Pins EOC, ALE, EO, SC entsprechend gesetzt.
void main () {int i = 0; eoc = 1; Ale = 0; oe = 0; sc = 0; TMOD = 0x02; TH0 = 0xFD; lcd_ini (); lcdprint ("ADC 0808/0809");
Das Programm liest dann den ADC und speichert die ADC-Ausgabe in einer Variablen und sendet sie nach der Dezimal-ASCII-Konvertierung mit den Funktionen void read_adc () und void adc (int i) an das LCD:
void read_adc () {number = 0; Ale = 1; sc = 1; Verzögerung (1); Ale = 0; sc = 0; while (eoc == 1); while (eoc == 0); oe = 1; number = input_port; Verzögerung (1); oe = 0; } void adc (int i) {switch (i) {case 0: ADDC = 0; ADDB = 0; ADDA = 0; lcdcmd (0xc0); read_adc ();