Periferice electronice majore care se interconectează cu microcontrolerul 8051

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





Interfața este unul dintre conceptele importante din microcontroler 8051 deoarece microcontrolerul este un procesor care poate efectua o anumită operație pe date și oferă ieșirea. Cu toate acestea, pentru a efectua operația, avem nevoie de un dispozitiv de intrare pentru a introduce datele și, la rândul său, dispozitivul de ieșire afișează rezultatele operației. Aici folosim tastatura și afișajul LCD ca dispozitive de intrare și ieșire împreună cu microcontrolerul.

Microcontroler 8051 Dispozitive periferice

Microcontroler 8051 Dispozitive periferice



Interfața este procesul de conectare a dispozitivelor, astfel încât acestea să poată face schimb de informații și acest lucru se dovedește a fi mai ușor de scris programele. Există diferite tipuri de dispozitive de intrare și ieșire pentru cerințele noastre, cum ar fi LED-uri, LCD-uri, 7 segmente, tastatură, motoare și alte dispozitive.


Aici sunt date câteva module importante interfațate cu microcontrolerul 8051.



1. Interfață LED cu microcontroler:

Descriere:

LED-urile sunt utilizate cel mai frecvent în multe aplicații pentru indicarea ieșirii. Ei găsesc o gamă largă de aplicații ca indicatori în timpul testului pentru a verifica validitatea rezultatelor în diferite etape. Sunt foarte ieftine și ușor disponibile într-o varietate de forme, culori și dimensiuni.

Dioda electro luminiscenta

Dioda electro luminiscenta

Principiul funcționarea LED-urilor Este foarte ușor. Un LED-uri simple servere, de asemenea, ca dispozitive de afișare de bază, starea On și OFF exprimă informații complete despre un dispozitiv. LED-urile disponibile obișnuite au o cădere de tensiune de 1,7 V, ceea ce înseamnă că atunci când aplicăm peste 1,7 V, dioda conduce. Dioda are nevoie de 10mA curent pentru a străluci cu intensitate maximă.


Următorul circuit descrie „cum să aprindeți LED-urile”.

LED-urile pot fi interfațate la microcontroler în configurația anodului comun sau a catodului comun. Aici LED-urile sunt conectate în configurație anodică comună deoarece configurația comună a catodului consumă mai multă energie.

Diagrama circuitului

Interfață LED cu microcontroler

Interfață LED cu microcontroler

Cod sursa:

#include
void main ()
{
nesemnat int i
în timp ce (1)
{
P0 = 0x00
pentru (i = 0i<30000i++)
P0 = 0xff
pentru (i = 0i<30000i++)
}
}

2. Circuit de interfață a afișajului cu 7 segmente

Descriere:
Un afișaj pe șapte segmente este cel mai de bază afișaj electronic. Este format din opt LED-uri care sunt asociate într-o manieră secvențială, astfel încât să afișeze cifre de la 0 la 9 atunci când combinațiile adecvate de LED-uri sunt activate. Un afișaj pe 7 segmente utilizează șapte LED-uri pentru a afișa cifre de la 0 la 9, iar cel de-al 8-lea LED este utilizat pentru punct. Un tipic de șapte segmente arată așa cum se arată în figura de mai jos.

Afișaj pe 7 segmente

Afișaj pe 7 segmente

Afișajele cu 7 segmente sunt utilizate într-un număr de sisteme pentru a afișa informațiile numerice. Pot afișa câte o cifră la un moment dat. Astfel, numărul de segmente utilizate depinde de numărul de cifre de afișat. Aici cifrele de la 0 la 9 sunt afișate continuu la o întârziere predefinită.

Afișajele cu 7 segmente sunt disponibile în două configurații care sunt anod comun și catod comun. Aici este utilizată configurația comună a anodului deoarece curentul de ieșire al microcontrolerului nu este suficient pentru a conduce LED-urile. Afișajul pe 7 segmente funcționează pe logică negativă, trebuie să furnizăm logica 0 pinului corespunzător pentru a face lumină LED.

Configurări de afișare pe 7 segmente

Configurări de afișare pe 7 segmente

Următorul tabel prezintă valorile hexagonale utilizate pentru afișarea diferitelor cifre.

Tabel de afișare pe 7 segmente

Tabel de afișare pe 7 segmente

Diagrama circuitului

Interfață de afișare pe 7 segmente

Interfață de afișare pe 7 segmente

Cod sursa:

#include
sbit a = P3 ^ 0
void main ()
{
caracter nesemnat n [10] = {0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10}
unsigned int i, j
a = 1
în timp ce (1)
{
pentru (i = 0i<10i++)
{
P2 = n [i]
pentru (j = 0j<60000j++)
}
}
}

3. Interfață LCD cu microcontroler

LCD reprezintă afișaj cu cristale lichide care poate afișa caracterele pe linie. Aici afișajul LCD de 16 pe 2 poate afișa 16 caractere pe linie și există 2 linii. Pe acest ecran LCD fiecare caracter este afișat în matrice de 5 * 7 pixeli.

Ecran LCD

Ecran LCD

LCD-ul este un dispozitiv foarte important, care este utilizat pentru aproape toate dispozitivele automate, cum ar fi mașinile de spălat, un robot autonom, sisteme de control al puterii și alte dispozitive. Acest lucru se realizează prin afișarea stării lor pe module de afișaj mici, cum ar fi afișaje cu 7-șapte segmente, LED-uri cu mai multe segmente, etc.

Se compune din două registre, cum ar fi registrul de comandă / instrucțiuni și registrul de date.

Registrul de comandă / instrucțiuni stochează instrucțiunile de comandă date pe ecranul LCD. O comandă este o instrucțiune care este dată LCD-ului care efectuează un set de sarcini predefinite, cum ar fi inițializarea, ștergerea ecranului, setarea poziționării cursorului, controlul afișajului etc.

Registrul de date stochează datele care trebuie afișate pe ecranul LCD. Datele sunt o valoare ASCII a caracterelor care trebuie afișate pe ecranul LCD.

Funcționarea ecranului LCD este controlată de două comenzi. Când RS = 0, R / W = 1 citește datele și când RS = 1, R / W = 0, scrie (tipărește) datele.

LCD utilizează următoarele coduri de comandă:

Comenzi de afișare LCD

Comenzi de afișare LCD

Diagrama circuitului:

Interfață LCD cu microcontroler

Interfață LCD cu microcontroler

Cod sursa:

#include
#define kam P0

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

void lcd_initi ()
void lcd_dat (caracter nesemnat)
void lcd_cmd (caracter nesemnat)
întârziere nulă (int semnat)
afișare nulă (caractere nesemnate *, caractere nesemnate r)
void main ()
{

lcd_initi ()
lcd_cmd (0x80)
întârziere (100)
afișaj („EDGEFX TECHLNGS”, 15)
lcd_cmd (0xc0)
afișaj („Kituri și soluții”, 15)
în timp ce (1)
}

afișare nulă (caractere nesemnate *, caractere nesemnate r)
{
nesemnat int w
pentru (w = 0w{

lcd_dat (s [w])
}
}

void lcd_initi ()
{
lcd_cmd (0x01)
întârziere (100)
lcd_cmd (0x38)
întârziere (100)
lcd_cmd (0x06)
întârziere (100)
lcd_cmd (0x0c)
întârziere (100)
}
void lcd_dat (dat de caractere nesemnat)
{
pieptene = că
rs = 1
rw = 0

în = 1
întârziere (100)
în = 0
}
void lcd_cmd (caractere nesemnate cmd)
{
came = cmd
rs = 0
rw = 0

în = 1
întârziere (100)
în = 0
}
întârziere nulă (nesemnat int n)
{

nesemnat int a
pentru (a = 0a}

4. Circuitul de interfață a motorului pas cu pas

Tipuri de motoare pas cu pas-1

Motor pas cu pas unipolar

LA motor pas cu pas este unul dintre cele mai utilizate motoare pentru mișcări unghiulare precise. Avantajul utilizării unui motor pas cu pas este că poziția unghiulară a motorului poate fi controlată fără niciun mecanism de feedback. Motoarele pas cu pas sunt utilizate pe scară largă în aplicații industriale și comerciale. Ele sunt, de asemenea, utilizate în mod obișnuit ca în sistemele de acționare, cum ar fi roboții, mașinile de spălat etc.

Tipuri de motoare pas cu pas-2

Motor pas cu pas bipolar

Motoarele pas cu pas pot fi unipolare sau bipolare și aici folosim motor pas cu pas unipolar. Motorul pas cu pas unipolar este format din șase fire, dintre care patru sunt conectate la bobina motorului și două sunt fire comune. Fiecare fir comun este conectat la o sursă de tensiune, iar firele rămase sunt conectate la microcontroler.

Diagrama circuitului:

Circuit de interfață a motorului pas cu pas

Circuit de interfață a motorului pas cu pas

Cod sursa:

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

void delay ()

void main ()
{

în timp ce (1)
{

a = 0
b = 1
c = 1
d = 1
întârziere()
a = 1
b = 0
c = 1
d = 1
întârziere()
a = 1
b = 1
c = 0
d = 1
întârziere()
a = 1
b = 1
c = 1
d = 0

}
}

void delay ()
{

nesemnat char i, j, k
pentru (i = 0i<6i++)
pentru (j = 0j<255j++)
pentru (k = 0k<255k++)

}

5. Interfață cu tastatură matricială la 8051

Descriere:

Tastatură Matrix

Tastatură Matrix

Tastatura este un dispozitiv de intrare utilizat pe scară largă, cu multe aplicații, cum ar fi telefonul, computerul, bancomatul, blocarea electronică etc. Aici este o tastatură matricială 4 pe 3 formată din comutatoare dispuse în rânduri și coloane interfațat la microcontroler . Un ecran LCD de 16 pe 2 este, de asemenea, interfațat pentru afișarea ieșirii.

Conceptul de interfață al tastaturii este foarte simplu. Fiecărui număr de tastatură i se atribuie doi parametri unici, care sunt rândul și coloana (R, C). Prin urmare, de fiecare dată când este apăsată o tastă, numărul este identificat prin detectarea numerelor rândurilor și coloanelor tastaturii.

Diagrama internă a tastaturii

Diagrama internă a tastaturii

Inițial, toate rândurile sunt setate la zero („0”) de către controler și coloanele sunt scanate pentru a verifica dacă este apăsată vreo tastă. În cazul în care nu este apăsată nicio tastă, ieșirea tuturor coloanelor va fi ridicată („1”).

Diagrama circuitului

Interfață cu tastatură matrice la 8051

Interfață cu tastatură matrice la 8051

Cod sursa:

#include
#define kam P0
sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit la = 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 (caracter nesemnat)
void lcd_cmd (caracter nesemnat)
întârziere nulă (int semnat)
afișare nulă (caractere nesemnate *, caractere nesemnate r)

void main ()
{
lcd_initi ()
lcd_cmd (0x80)
întârziere (100)
afișaj („0987654321”, 10)
în timp ce (1)
}

afișare nulă (caractere nesemnate *, caractere nesemnate r)
{

nesemnat int w
pentru (w = 0w{

lcd_dat (s [w])
}
}
void lcd_initi ()
{
lcd_cmd (0x01)
întârziere (100)
lcd_cmd (0x38)
întârziere (100)
lcd_cmd (0x06)
întârziere (100)
lcd_cmd (0x0c)
întârziere (100)
}

void lcd_dat (dat de caractere nesemnat)
{
pieptene = că
rs = 1
rw = 0

în = 1
întârziere (100)
în = 0
}
void lcd_cmd (caractere nesemnate cmd)
{
came = cmd
rs = 0
rw = 0

în = 1
întârziere (100)
în = 0

}
întârziere nulă (nesemnat int n)
{

nesemnat int a
pentru (a = 0a}
}

Sperăm că am putut oferi cunoștințe ample despre circuitele de interfață de bază, dar importante microcontroler 8051 . Acestea sunt cele mai simple circuite necesare pentru orice aplicație de sistem încorporat și sperăm că v-am oferit o revizuire bună.

O altă interogare sau feedback legată de acest subiect este binevenită să fie menționată în secțiunea de comentarii de mai jos.

Credite foto