A 8051 mikrokontrollerrel összekötő főbb perifériák

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Az interfész az egyik fontos fogalom mikrovezérlő 8051 mert a mikrovezérlő olyan CPU, amely valamilyen műveletet képes végrehajtani egy adaton és megadja a kimenetet. A művelet végrehajtásához azonban bemeneti eszközre van szükségünk az adatok megadásához, és a kimeneti eszköz viszont megjeleníti a művelet eredményeit. Itt billentyűzetet és LCD kijelzőt használunk bemeneti és kimeneti eszközként a mikrovezérlővel együtt.

Mikrokontroller 8051 Perifériás eszközök

Mikrokontroller 8051 Perifériás eszközök



Az interfész az eszközök összekapcsolásának folyamata annak érdekében, hogy kicserélhessék az információkat, és ez könnyebbnek bizonyul a programok megírásában. Különböző típusú bemeneti és kimeneti eszközök léteznek, mint a követelményeink, például a LED-ek, az LCD-k, a 7 szegmens, a kezelő, a motorok és más eszközök.


Itt van néhány fontos modul, amely a 8051 mikrovezérlővel kapcsolódik.



1. LED interfész a mikrovezérlőhöz:

Leírás:

A LED-eket a legtöbb esetben a kimenet jelzésére használják. A teszt során indikátorok széles skáláját találják, hogy ellenőrizzék az eredmények érvényességét a különböző szakaszokban. Nagyon olcsók és könnyen elérhetőek különböző formában, színben és méretben.

Fénykibocsátó dióda

Fénykibocsátó dióda

Az elv a LED-ek működése nagyon könnyű. Egy egyszerű LED-ek alapkijelzőként is kiszolgálnak, az On és a OFF állapot pedig teljes információt jelent az eszközről. A rendelkezésre álló általános LED-ek 1,7 V-os feszültségeséssel rendelkeznek, ami azt jelenti, hogy amikor 1,7 V felett működünk, a dióda vezet. A diódának 10mA áramra van szüksége, hogy teljes intenzitással világítson.


A következő áramkör leírja a „LED-ek világításának módját”.

A LED-ek összekapcsolhatók a mikrovezérlővel közös anód vagy közös katód konfigurációban. Itt a LED-ek közös anódkonfigurációban vannak csatlakoztatva, mert a közös katódkonfiguráció több energiát fogyaszt.

Kördiagramm

LED interfész a mikrovezérlőhöz

LED interfész a mikrovezérlőhöz

Forráskód:

#include
void main ()
{
aláíratlan int
míg (1)
{
P0 = 0x00
mert (i = 0i<30000i++)
P0 = 0xff
mert (i = 0i<30000i++)
}
}

2. 7 szegmenses kijelző interfész áramkör

Leírás:
Hét szegmenses kijelző a legalapvetőbb elektronikus kijelző. Nyolc LED-ből áll, amelyek egymás után vannak összekapcsolva úgy, hogy 0 és 9 közötti számjegyeket jelenítsenek meg, amikor a LED megfelelő kombinációi be vannak kapcsolva. A 7 szegmenses kijelző hét LED-et használ a 0 és 9 közötti számjegyek megjelenítésére, a 8. LED pedig a pontra szolgál. Egy tipikus hét szegmens tetszik az alábbi ábrán látható módon.

7 szegmenses kijelző

7 szegmenses kijelző

A 7 szegmenses kijelzőket számos rendszerben használják a numerikus információk megjelenítésére. Egyszerre egy számjegyet tudnak megjeleníteni. Így a felhasznált szegmensek száma a megjelenítendő számjegyek számától függ. Itt a 0 és 9 közötti számjegyek folyamatosan, előre meghatározott késleltetéssel jelennek meg.

A 7 szegmenses kijelzők kétféle konfigurációban állnak rendelkezésre, amelyek közös anód és közös katód. Itt szokásos anódkonfigurációt alkalmaznak, mivel a mikrovezérlő kimeneti árama nem elegendő a LED-ek meghajtásához. A 7 szegmenses kijelző negatív logikán működik, 0 logikát kell megadnunk a megfelelő csapnak, hogy a LED világítson.

7 szegmenses kijelzőkonfigurációk

7 szegmenses kijelzőkonfigurációk

Az alábbi táblázat a különböző számok megjelenítéséhez használt hexa értékeket mutatja.

7 szegmenses kijelző táblázat

7 szegmenses kijelző táblázat

Kördiagramm

7 szegmenses kijelző interfész

7 szegmenses kijelző interfész

Forráskód:

#include
sbit a = P3 ^ 0
void main ()
{
aláíratlan karakter n [10] = {0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10}
aláíratlan int i, j
a = 1
míg (1)
{
mert (i = 0i<10i++)
{
P2 = n [i]
(j = 0j<60000j++)
}
}
}

3. LCD interfész a mikrovezérlővel

Az LCD jelentése folyadékkristályos kijelző, amely soronként képes megjeleníteni a karaktereket. Itt 16 x 2 LCD kijelző soronként 16 karaktert jeleníthet meg, és 2 sor van. Ebben az LCD-ben minden karakter 5 * 7 pixeles mátrixban jelenik meg.

LCD kijelzö

LCD kijelzö

Az LCD nagyon fontos eszköz, amelyet szinte minden automatizált eszközhöz használnak, például mosógépekhez, autonóm robotokhoz, teljesítményszabályozó rendszerek és egyéb eszközök. Ezt úgy érik el, hogy állapotukat kis kijelző modulokon jelenítik meg, például 7–7 szegmenses kijelzőkön, több szegmenses LED-eken stb. Ennek oka az, hogy az LCD-k ésszerű árúak, könnyen programozhatók, és nincs korlátozásuk a speciális karakterek megjelenítésére.

Két regiszterből áll, mint például a parancs / utasítás regiszter és az adat regiszter.

A parancs / utasítás regiszter tárolja az LCD-nek adott parancs utasításokat. A parancs egy olyan utasítás, amelyet az LCD-nek adnak, és amely előre meghatározott feladatokat hajt végre, mint például inicializálás, a képernyő törlése, a kurzor pozícionálása, a kijelző ellenőrzése stb.

Az adatregiszter tárolja az LCD-n megjelenítendő adatokat. Az adatok az LCD-n megjelenítendő karakterek ASCII értéke.

Az LCD működését két parancs vezérli. Amikor RS = 0, R / W = 1 olvassa az adatokat, és amikor RS = 1, R / W = 0, akkor az adatokat írja (kinyomtatja).

Az LCD a következő parancskódokat használja:

LCD kijelzőparancsok

LCD kijelzőparancsok

Kördiagramm:

LCD interfész a mikrovezérlővel

LCD interfész a mikrovezérlővel

Forráskód:

#include
#define kam P0

sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit = P2 ^ 2

void lcd_initi ()
void lcd_dat (aláíratlan karakter)
void lcd_cmd (aláíratlan karakter)
érvénytelen késleltetés (aláíratlan int)
érvénytelen kijelző (aláíratlan karakterek *, aláíratlan karakterek)
void main ()
{

lcd_initi ()
lcd_cmd (0x80)
késés (100)
kijelző („EDGEFX TECHLNGS”, 15)
lcd_cmd (0xc0)
kijelző („KIT & SOLTIONS”, 15)
míg (1)
}

érvénytelen kijelző (aláíratlan karakterek *, aláíratlan karakterek)
{
aláíratlan int w
(w = 0w{

lcd_dat (s [w])
}
}

void lcd_initi ()
{
lcd_cmd (0x01)
késés (100)
lcd_cmd (0x38)
késés (100)
lcd_cmd (0x06)
késés (100)
lcd_cmd (0x0c)
késés (100)
}
void lcd_dat (aláíratlan karakter)
{
fésű = az
rs = 1
rw = 0

= 1
késés (100)
= 0
}
void lcd_cmd (aláíratlan karakter cmd)
{
jött = cmd
rs = 0
rw = 0

= 1
késés (100)
= 0
}
érvénytelen késleltetés (aláíratlan int n)
{

aláíratlan int a
mert (a = 0a}

4. Léptetőmotor interfész áramköre

A léptető motorok típusai-1

Unipoláris léptetőmotor

NAK NEK léptetőmotor az egyik leggyakrabban használt motor a pontos szögmozgáshoz. A léptetőmotor használatának előnye, hogy a motor szöghelyzete visszacsatolási mechanizmus nélkül szabályozható. A léptetőmotorokat széles körben használják ipari és kereskedelmi alkalmazásokban. Szintén gyakran használják olyan meghajtórendszerekben, mint például robotok, mosógépek stb.

A léptető motorok típusai-2

Bipoláris léptetőmotor

A léptetőmotorok lehetnek egypólusúak vagy bipolárisak, és itt egypólusú léptetőmotort használunk. Az unipoláris léptetőmotor hat huzalból áll, amelyekből négy a motor tekercséhez csatlakozik, kettő pedig közös vezeték. Minden közös vezeték egy feszültségforráshoz, a fennmaradó vezeték pedig a mikrovezérlőhöz csatlakozik.

Kördiagramm:

Léptetőmotor interfész áramköre

Léptetőmotor interfész áramköre

Forráskód:

#include
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3

érvénytelen késés ()

void main ()
{

míg (1)
{

a = 0
b = 1
c = 1
d = 1
késleltetés()
a = 1
b = 0
c = 1
d = 1
késleltetés()
a = 1
b = 1
c = 0
d = 1
késleltetés()
a = 1
b = 1
c = 1
d = 0

}
}

érvénytelen késés ()
{

aláíratlan char i, j, k
mert (i = 0i<6i++)
(j = 0j<255j++)
for (k = 0k<255k++)

}

5. Mátrix kezelő interfész a 8051-hez

Leírás:

Mátrix kezelő

Mátrix kezelő

A Billentyűzet egy széles körben használt beviteli eszköz, sok alkalmazással, például telefon, számítógép, ATM, elektronikus zár stb. A kezelő segítségével a felhasználótól további feldolgozás céljából bemenet érkezhet. Itt egy sorokba és oszlopokba rendezett kapcsolókból álló 4 x 3 mátrixos billentyűzet található a mikrovezérlőhöz kapcsolódva . A kimenet megjelenítéséhez 16 × 2 LCD is csatlakozik.

A kezelő interfész-koncepciója nagyon egyszerű. A kezelő minden számához két egyedi paraméter tartozik, amelyek sor és oszlop (R, C). Ezért minden egyes gombnyomásra a szám a kezelő sor- és oszlopszámainak felismerésével azonosul.

Kezelő belső rajza

Kezelő belső rajza

Kezdetben az összes sort nullára (‘0’) állítja a vezérlő, és az oszlopokat átvizsgálja, hogy ellenőrizzen-e valamilyen gombot. Ha egyetlen gombot sem nyom meg, akkor az összes oszlop kimenete magas lesz (’1’).

Kördiagramm

Mátrix kezelő interfész a 8051-hez

Mátrix kezelő interfész a 8051-hez

Forráskód:

#include
#define kam P0
sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit = P2 ^ 2
sbit c1 = P1 ^ 4
sbit c2 = P1 ^ 5
sbit c3 = P1 ^ 6
sbit r1 = P1 ^ 0
sbit r2 = P1 ^ 1
sbit r3 = P1 ^ 2
sbit r4 = P1 ^ 3
void lcd_initi ()
void lcd_dat (aláíratlan karakter)
void lcd_cmd (aláíratlan karakter)
érvénytelen késleltetés (aláíratlan int)
érvénytelen kijelző (aláíratlan karakterek *, aláíratlan karakterek)

void main ()
{
lcd_initi ()
lcd_cmd (0x80)
késés (100)
kijelző („0987654321”, 10)
míg (1)
}

érvénytelen kijelző (aláíratlan karakterek *, aláíratlan karakterek)
{

aláíratlan int w
(w = 0w{

lcd_dat (s [w])
}
}
void lcd_initi ()
{
lcd_cmd (0x01)
késés (100)
lcd_cmd (0x38)
késés (100)
lcd_cmd (0x06)
késés (100)
lcd_cmd (0x0c)
késés (100)
}

void lcd_dat (aláíratlan karakter)
{
fésű = az
rs = 1
rw = 0

= 1
késés (100)
= 0
}
void lcd_cmd (aláíratlan karakter cmd)
{
jött = cmd
rs = 0
rw = 0

= 1
késés (100)
= 0

}
érvénytelen késleltetés (aláíratlan int n)
{

aláíratlan int a
mert (a = 0a}
}

Reméljük, hogy bőséges ismereteket tudtunk nyújtani a mikrovezérlő 8051 . Ezek a beágyazott rendszeralkalmazásokhoz szükséges legalapvetőbb áramkörök, és reméljük, hogy jó átdolgozást nyújtunk Önnek.

A témával kapcsolatos további kérdést vagy visszajelzést szívesen megemlítenek az alábbi megjegyzés részben.

Fotók