Główne elektroniczne urządzenia peryferyjne łączące się z mikrokontrolerem 8051

Wypróbuj Nasz Instrument Do Eliminowania Problemów





Interfejs jest jedną z ważnych koncepcji w mikrokontroler 8051 ponieważ mikrokontroler to procesor, który może wykonać jakąś operację na danych i daje wyjście. Jednak do wykonania operacji potrzebujemy urządzenia wejściowego do wprowadzania danych, które z kolei wyświetla wyniki operacji. Tutaj używamy klawiatury i wyświetlacza LCD jako urządzeń wejściowych i wyjściowych wraz z mikrokontrolerem.

Mikrokontroler 8051 Urządzenia peryferyjne

Mikrokontroler 8051 Urządzenia peryferyjne



Łączenie to proces łączenia urządzeń, aby mogły wymieniać informacje, co okazuje się łatwiejsze w pisaniu programów. Istnieją różne typy urządzeń wejściowych i wyjściowych, jak na nasze wymagania, takie jak diody LED, wyświetlacze LCD, 7segmentowe, klawiatura, silniki i inne urządzenia.


Tutaj podano kilka ważnych modułów połączonych z mikrokontrolerem 8051.



1. Interfejs LED do mikrokontrolera:

Opis:

Diody LED są najczęściej używane w wielu aplikacjach do wskazywania wyjścia. Znajdują szeroki zakres zastosowań jako wskaźników podczas testów, aby sprawdzić ważność wyników na różnych etapach. Są bardzo tanie i łatwo dostępne w różnych kształtach, kolorach i rozmiarach.

Dioda LED

Dioda LED

Zasada działanie diod LED jest bardzo łatwe. Proste diody LED służą również jako podstawowe urządzenia wyświetlające, stan włączenia i wyłączenia oznacza pełną informację o urządzeniu. Typowe dostępne diody LED mają spadek napięcia o 1,7 V, co oznacza, że ​​gdy zastosujemy powyżej 1,7 V, dioda przewodzi. Dioda potrzebuje prądu 10 mA, aby świecić z pełną intensywnością.


Poniższy obwód opisuje „jak świecić diodami LED”.

Diody LED mogą być podłączone do mikrokontrolera w konfiguracji ze wspólną anodą lub ze wspólną katodą. Tutaj diody LED są połączone w konfiguracji ze wspólną anodą, ponieważ konfiguracja ze wspólną katodą zużywa więcej energii.

Schemat obwodu

Interfejs LED do mikrokontrolera

Interfejs LED do mikrokontrolera

Kod źródłowy:

#zawierać
void main ()
{
unsigned int i
podczas gdy (1)
{
P0 = 0x00
dla (i = 0i<30000i++)
P0 = 0xff
dla (i = 0i<30000i++)
}
}

2. Obwód interfejsu wyświetlacza 7-segmentowego

Opis:
Wyświetlacz siedmiosegmentowy to najbardziej podstawowy wyświetlacz elektroniczny. Składa się z ośmiu diod LED, które są skojarzone sekwencyjnie tak, aby wyświetlały cyfry od 0 do 9, gdy włączone są odpowiednie kombinacje diod. 7-segmentowy wyświetlacz wykorzystuje siedem diod LED do wyświetlania cyfr od 0 do 9, a ósma dioda służy do oznaczania kropek. Typowy siedem segmentów wygląda tak, jak pokazano na poniższym rysunku.

7-segmentowy wyświetlacz

7-segmentowy wyświetlacz

Wyświetlacze 7-segmentowe są używane w wielu systemach do wyświetlania informacji numerycznych. Mogą wyświetlać jedną cyfrę na raz. Zatem liczba użytych segmentów zależy od liczby wyświetlanych cyfr. Tutaj cyfry od 0 do 9 są wyświetlane w sposób ciągły ze wstępnie określonym opóźnieniem.

Wyświetlacze 7-segmentowe są dostępne w dwóch konfiguracjach: ze wspólną anodą i wspólną katodą. Tutaj używana jest wspólna konfiguracja anody, ponieważ prąd wyjściowy mikrokontrolera nie jest wystarczający do wysterowania diod LED. Wyświetlacz 7-segmentowy działa na logice ujemnej, musimy podać logikę 0 do odpowiedniego pinu, aby zapalić diodę LED.

7-segmentowe konfiguracje wyświetlania

7-segmentowe konfiguracje wyświetlania

W poniższej tabeli przedstawiono wartości szesnastkowe używane do wyświetlania różnych cyfr.

7-segmentowy wyświetlacz

7-segmentowy wyświetlacz

Schemat obwodu

Interfejs wyświetlacza 7-segmentowego

Interfejs wyświetlacza 7-segmentowego

Kod źródłowy:

#zawierać
sbit a = P3 ^ 0
void main ()
{
unsigned char n [10] = {0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10}
unsigned int i, j
a = 1
podczas gdy (1)
{
dla (i = 0i<10i++)
{
P2 = n [i]
dla (j = 0j<60000j++)
}
}
}

3. Interfejs LCD do mikrokontrolera

LCD oznacza wyświetlacz ciekłokrystaliczny, który może wyświetlać znaki w linii. Tutaj wyświetlacz LCD 16 na 2 może wyświetlać 16 znaków w linii i są 2 linie. Na tym wyświetlaczu LCD każdy znak jest wyświetlany w matrycy 5 * 7 pikseli.

Wyświetlacz LCD

Wyświetlacz LCD

LCD to bardzo ważne urządzenie, które jest używane w prawie wszystkich zautomatyzowanych urządzeniach, takich jak pralki, autonomiczny robot, systemy sterowania mocą i inne urządzenia. Osiąga się to poprzez wyświetlanie ich stanu na małych modułach wyświetlaczy, takich jak wyświetlacze 7-siedmiosegmentowe, wielosegmentowe diody LED itp. Powodem jest to, że wyświetlacze LCD są przystępne cenowo, łatwo programowalne i nie mają ograniczeń w wyświetlaniu znaków specjalnych.

Składa się z dwóch rejestrów, takich jak rejestr poleceń / instrukcji i rejestr danych.

Rejestr poleceń / instrukcji przechowuje instrukcje poleceń podawane do wyświetlacza LCD. Polecenie to instrukcja wydawana wyświetlaczowi LCD, która wykonuje zestaw predefiniowanych zadań, takich jak inicjalizacja, czyszczenie ekranu, ustawianie pozycji kursora, sterowanie wyświetlaczem itp.

Rejestr danych przechowuje dane do wyświetlenia na LCD. Dane to wartości ASCII znaków, które mają być wyświetlane na wyświetlaczu LCD.

Działanie wyświetlacza LCD jest kontrolowane za pomocą dwóch poleceń. Gdy RS = 0, R / W = 1, odczytuje dane, a gdy RS = 1, R / W = 0, zapisuje (drukuje) dane.

LCD używa następujących kodów poleceń:

Polecenia wyświetlacza LCD

Polecenia wyświetlacza LCD

Schemat obwodu:

Interfejs LCD do mikrokontrolera

Interfejs LCD do mikrokontrolera

Kod źródłowy:

#zawierać
#define kam P0

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

void lcd_initi ()
void lcd_dat (znak bez znaku)
void lcd_cmd (znak bez znaku)
void delay (unsigned int)
void display (unsigned char * s, unsigned char r)
void main ()
{

lcd_initi ()
lcd_cmd (0x80)
opóźnienie (100)
wyświetlacz („EDGEFX TECHLNGS”, 15)
lcd_cmd (0xc0)
wyświetlacz („ZESTAWY I ROZWIĄZANIA”, 15)
podczas gdy (1)
}

void display (unsigned char * s, unsigned char r)
{
unsigned int w
dla (w = 0w{

lcd_dat (s [w])
}
}

void lcd_initi ()
{
lcd_cmd (0x01)
opóźnienie (100)
lcd_cmd (0x38)
opóźnienie (100)
lcd_cmd (0x06)
opóźnienie (100)
lcd_cmd (0x0c)
opóźnienie (100)
}
void lcd_dat (data bez znaku)
{
grzebień = to
rs = 1
rw = 0

in = 1
opóźnienie (100)
in = 0
}
void lcd_cmd (unsigned char cmd)
{
came = cmd
rs = 0
rw = 0

in = 1
opóźnienie (100)
in = 0
}
void delay (unsigned int n)
{

unsigned int a
for (a = 0a}

4. Obwód sprzęgający silnika krokowego

Rodzaje silników krokowych-1

Jednobiegunowy silnik krokowy

DO silnik krokowy jest jednym z najczęściej używanych silników do precyzyjnego ruchu kątowego. Zaletą stosowania silnika krokowego jest to, że położenie kątowe silnika można kontrolować bez żadnego mechanizmu sprzężenia zwrotnego. Silniki krokowe są szeroko stosowane w zastosowaniach przemysłowych i komercyjnych. Są również powszechnie stosowane, np. W układach napędowych robotów, pralek itp.

Rodzaje silników krokowych-2

Bipolarny silnik krokowy

Silniki krokowe mogą być jednobiegunowe lub bipolarne i tutaj używamy jednobiegunowego silnika krokowego. Jednobiegunowy silnik krokowy składa się z sześciu przewodów, z których cztery są podłączone do cewki silnika, a dwa to przewody wspólne. Każdy wspólny przewód jest podłączony do źródła napięcia, a pozostałe przewody są podłączone do mikrokontrolera.

Schemat obwodu:

Obwód sprzęgający silnika krokowego

Obwód sprzęgający silnika krokowego

Kod źródłowy:

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

void delay ()

void main ()
{

podczas gdy (1)
{

a = 0
b = 1
c = 1
d = 1
opóźnienie()
a = 1
b = 0
c = 1
d = 1
opóźnienie()
a = 1
b = 1
c = 0
d = 1
opóźnienie()
a = 1
b = 1
c = 1
d = 0

}
}

void delay ()
{

unsigned char i, j, k
dla (i = 0i<6i++)
dla (j = 0j<255j++)
dla (k = 0k<255k++)

}

5. Klawiatura macierzowa podłączona do 8051

Opis:

Klawiatura Matrix

Klawiatura Matrix

Klawiatura jest szeroko stosowanym urządzeniem wejściowym z wieloma zastosowaniami, takimi jak telefon, komputer, bankomat, zamek elektroniczny itp. Klawiatura jest używana do pobierania danych wejściowych od użytkownika do dalszego przetwarzania. Oto klawiatura matrycowa 4 na 3 składająca się z przełączników ułożonych w rzędy i kolumny połączony z mikrokontrolerem . Wyświetlacz LCD 16 na 2 jest również podłączony do wyświetlania sygnału wyjściowego.

Koncepcja interfejsu klawiatury jest bardzo prosta. Każdej liczbie klawiatur przypisane są dwa unikalne parametry, którymi są wiersz i kolumna (R, C). Stąd za każdym naciśnięciem klawisza numer identyfikuje się poprzez wykrywanie numerów wierszy i kolumn klawiatury.

Schemat wewnętrzny klawiatury

Schemat wewnętrzny klawiatury

Początkowo wszystkie wiersze są ustawiane na zero („0”) przez kontroler, a kolumny są skanowane w celu sprawdzenia, czy nie został naciśnięty jakikolwiek klawisz. W przypadku, gdy żaden klawisz nie zostanie naciśnięty, wynik wszystkich kolumn będzie wysoki („1”).

Schemat obwodu

Klawiatura macierzowa podłączona do 8051

Klawiatura macierzowa podłączona do 8051

Kod źródłowy:

#zawierać
#define kam P0
sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit at = 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 (znak bez znaku)
void lcd_cmd (znak bez znaku)
void delay (unsigned int)
void display (unsigned char * s, unsigned char r)

void main ()
{
lcd_initi ()
lcd_cmd (0x80)
opóźnienie (100)
wyświetlacz („0987654321”, 10)
podczas gdy (1)
}

void display (unsigned char * s, unsigned char r)
{

unsigned int w
dla (w = 0w{

lcd_dat (s [w])
}
}
void lcd_initi ()
{
lcd_cmd (0x01)
opóźnienie (100)
lcd_cmd (0x38)
opóźnienie (100)
lcd_cmd (0x06)
opóźnienie (100)
lcd_cmd (0x0c)
opóźnienie (100)
}

void lcd_dat (data bez znaku)
{
grzebień = to
rs = 1
rw = 0

in = 1
opóźnienie (100)
in = 0
}
void lcd_cmd (unsigned char cmd)
{
came = cmd
rs = 0
rw = 0

in = 1
opóźnienie (100)
in = 0

}
void delay (unsigned int n)
{

unsigned int a
for (a = 0a}
}

Mamy nadzieję, że byliśmy w stanie dostarczyć obszerną wiedzę na temat podstawowych, ale ważnych obwodów interfejsów mikrokontroler 8051 . Są to najbardziej podstawowe obwody wymagane w każdej aplikacji systemu wbudowanego i mamy nadzieję, że dostarczyliśmy Ci dobrą wersję.

Dalsze pytania lub uwagi związane z tym tematem są mile widziane w sekcji komentarzy poniżej.

Kredyty fotograficzne