Az ADC az analóg-digitális átalakító, amely az analóg adatokat digitális formátumba konvertálja; általában arra használják, hogy az analóg feszültséget digitális formátumra konvertálják. Az analóg jelnek végtelen értéke nincs, mint például a szinuszhullám vagy a beszédünk, az ADC átalakítja azokat meghatározott szintekké vagy állapotokba, amelyek számokban fizikai mennyiségként mérhetők. Folyamatos konvertálás helyett az ADC időszakosan konvertálja az adatokat, ami általában mintavételi arány néven ismert. Telefon modemaz internethez használt ADC egyik példája, az analóg adatokat digitális adatokká alakítja, hogy a számítógép megértse, mivel a számítógép csak a digitális adatokat érti. Az ADC használatának legfőbb előnye, hogy hatékonyan kiküszöbölhetjük a zajt az eredeti jelből, és a digitális jel hatékonyabban tud közlekedni, mint az analóg. Ez az oka annak, hogy a digitális hang hallgatás közben nagyon tiszta.
Jelenleg rengeteg mikrovezérlő van a piacon, amelyek beépítették az ADC-t egy vagy több csatornával. Az ADC regisztrációjukkal pedig interfészt tudunk teremteni. Amikor 8051 mikrovezérlő családot választunk bármely olyan projekt elkészítéséhez, amelyben ADC átalakításra van szükségünk, akkor külső ADC-t használunk. Néhány külső ADC chip 0803,0804,0808,0809 és még sok más. Ma 8 csatornás ADC-t fogunk összekötni az AT89s52 mikrovezérlővel, nevezetesen az ADC0808 / 0809-vel.
Alkatrészek:
- 8051 mikrokontroller (AT89S52)
- ADC0808 / 0809
- 16x2 LCD
- Ellenállás (1k, 10k)
- POT (10 ezer x 4)
- Kondenzátor (10uf, 1000uf)
- Piros vezetett
- Kenyérlemez vagy NYÁK
- 7805
- 11,0592 MHz kristály
- Erő
- Csatlakozó vezetékek
ADC0808 / 0809:
Az ADC0808 / 0809 egy monolit CMOS eszköz és mikroprocesszorral kompatibilis vezérlési logika, és 28 tűs, amely 8 bites értéket ad a kimenetben és a 8 csatornás ADC bemeneti tűket (IN0-IN7). Felbontása 8, így az analóg adatokat a 256 szint egyikébe kódolhatja (2 8). Ennek az eszköznek három csatornás címsora van: ADDA, ADDB és ADDC a csatorna kiválasztásához. Az alábbiakban látható az ADC0808 csapszeg diagramja:
Az ADC0808 / 0809 órajelre van szükség az átalakításhoz. Oszcillátorral vagy mikrokontrollerrel tudjuk biztosítani. Ebben a projektben a mikrovezérlő használatával alkalmaztuk a frekvenciát.
Bármelyik bemeneti csatornát kiválaszthatjuk a Cím sorok használatával, mint például az IN0 bemeneti sort kiválaszthatjuk mindhárom címsor (ADDA, ADDB és ADDC) alacsony szinten tartásával. Ha az IN2 bemeneti csatornát akarjuk kiválasztani, akkor az ADDA-t, az ADDB-t alacsonyan és az ADDC-t magasan kell tartanunk. Az összes többi bemeneti csatorna kiválasztásához nézze meg a megadott táblázatot:
ADC csatornanév |
ADDC PIN |
ADDB PIN |
ADDA PIN |
IN0 |
ALACSONY |
ALACSONY |
ALACSONY |
IN1 |
ALACSONY |
ALACSONY |
MAGAS |
IN2 |
ALACSONY |
MAGAS |
ALACSONY |
IN3 |
ALACSONY |
MAGAS |
MAGAS |
IN4 |
MAGAS |
ALACSONY |
ALACSONY |
IN5 |
MAGAS |
ALACSONY |
MAGAS |
IN6 |
MAGAS |
MAGAS |
ALACSONY |
IN7 |
MAGAS |
MAGAS |
MAGAS |
Áramkör leírása:
Az „Interfacing ADC0808 és 8051” áramköre kevéssé összetett, és több csatlakozó vezetéket tartalmaz az eszköz egymáshoz történő csatlakoztatásához. Ebben az áramkörben elsősorban az AT89s52-t használtuk 8051 mikrovezérlőként, az ADC0808-at, a potenciométert és az LCD-t.
Egy 16x2 LCD-t 89s52 mikrovezérlővel csatlakoztatnak 4 bites módban. Az RS, RW és En vezérlőcsapok közvetlenül csatlakoznak a P2.0, GND és P2.2 csapokhoz. És a D4-D7 adatcsatlakozó a 89s52 P2.4, P2.5, P2.6 és P2.7 érintkezõihez csatlakozik. Az ADC0808 kimeneti tű közvetlenül az AT89s52 P1 portjához csatlakozik. Az ADDA, ADDB, AADC címsor csapok a P3.0, P3.1 és P3.2 pontokon vannak összekötve.
Az ALE (címzár reteszelés engedélyezése), SC (átalakítás indítása), EOC (átalakítás vége), OE (kimenet engedélyezése) és az óraszegek a P3.3, P3.4, P3.5, P3.6 és P3.7 pontokon vannak összekötve.
És itt három potenciométert használtunk, amelyek az ADC0808 26., 27. és 28. érintkezőjéhez csatlakoztak.
Az áramellátáshoz 9 voltos akkumulátort és 5 voltos feszültségszabályozót, nevezetesen 7805-öt használnak.
Dolgozó:
Ebben a projektben három ADC0808 csatornát illesztettünk össze. A bemutatáshoz három változó ellenállást használtunk. Amikor az áramkört tápláljuk, a mikrovezérlő a megfelelő parancs használatával inicializálja az LCD-t, órát ad az ADC chipnek, a címsor segítségével kiválasztja az ADC csatornát, és elkezdi a konverzió kezdeti jelét az ADC-nek. Ezt követően az ADC először beolvassa a kiválasztott ADC csatorna bemenetet, és az átalakított kimenetet átadja a mikrovezérlőnek. Ezután a mikrovezérlő mutatja az értékét az LCD Ch1 helyzetében. Ezután a mikrovezérlő megváltoztatja az ADC csatornát a címsor használatával. Ezután az ADC beolvassa a kiválasztott csatornát, és kimenetet küld a mikrovezérlőnek. És mutassa az LCD-n Ch2 néven. És mint más csatornákhoz bölcsen.
Az ADC0808 működése nagyban hasonlít az ADC0804 működéséhez. Ebben az első mikrovezérlő 500 KHz-es órajelet ad az ADC0808-nak, a Timer 0 megszakításával, mivel az ADC működéséhez órajelre van szükség. Most a mikrovezérlő LOW - HIGH szintű jelet küld az ADC0808 ALE-tűjére (annak aktív-magas tűjére), hogy engedélyezze a címben lévő reteszt. Ezután a HIGH to LOW Level jelet alkalmazva az SC (Start Conversion) felé, az ADC megkezdi az analóg és a digitális átalakítást. Ezután várja meg, amíg az EOC (konverzió vége) tű alacsonyra megy. Amikor az EOC LOW szintre megy, ez azt jelenti, hogy az analóg-digitális átalakítás befejeződött, és az adatok használatra készek. Ezt követően a mikrovezérlő lehetővé teszi a kimeneti vonalat azáltal, hogy HIGH-LOW jelet alkalmaz az ADC0808 OE tűjére.
Az ADC0808 arányos metrikus konverziós kimenetet ad a kimeneti csapoknál. A radiometriai átalakítás képletét a következő képlet adja:
V in / (V fs -V z) = D x / (D max -D min)
Hol
V in az bemenet feszültsége az átalakításhoz.
V fs teljes skála. Feszültség
V z nulla feszültség
D x a mérendő adatpont
D max a maximális adathatár
D min a minimális adatkorlát
A program magyarázata:
A programban mindenekelőtt fejlécfájlt tartalmazunk, amely a sand meghatározza az ADC és az LCD változó és bemeneti és kimeneti csapjait.
# tartalmazza
Létrejött a késleltetés létrehozásának funkciója (void delay), néhány LCD funkcióval együtt, például az LCD inicializálásához, a karakterlánc nyomtatásához, az LCD parancsokhoz stb. Könnyen megtalálhatja őket a Code-ban. Ellenőrizze, hogy ebben a cikkben található-e LCD interfész a 8051-hez és annak funkcióihoz.
Ezt követően a fő programban inicializáljuk az LCD-t, és ennek megfelelően beállítjuk az EOC, ALE, EO, SC csapokat.
void main () {int i = 0; eoc = 1; ale = 0; oe = 0; sc = 0; TMOD = 0x02; TH0 = 0xFD; lcd_ini (); lcdprint ("ADC 0808/0809");
Ezután a program beolvassa az ADC-t, és eltárolja az ADC kimenetet egy változóban, majd decimális és ASCII átalakítás után elküldi az LCD-re, a void read_adc () és void adc (int i) függvények használatával:
void read_adc () {szám = 0; ale = 1; sc = 1; késés (1); ale = 0; sc = 0; míg (eoc == 1); míg (eoc == 0); oe = 1; szám = input_port; késés (1); oe = 0; } void adc (int i) {switch (i) {eset 0: ADDC = 0; ADDB = 0; ADDA = 0; lcdcmd (0xc0); read_adc ();