Principali periferiche elettroniche che si interfacciano al microcontrollore 8051

Principali periferiche elettroniche che si interfacciano al microcontrollore 8051

L'interfacciamento è uno dei concetti importanti in microcontrollore 8051 perché il microcontrollore è una CPU che può eseguire alcune operazioni su un dato e fornisce l'output. Tuttavia per eseguire l'operazione abbiamo bisogno di un dispositivo di input per inserire i dati e, a sua volta, il dispositivo di output visualizza i risultati dell'operazione. Qui stiamo usando la tastiera e il display LCD come dispositivi di input e output insieme al microcontrollore.



Microcontrollore 8051 Dispositivi periferici

Microcontrollore 8051 Dispositivi periferici

L'interfacciamento è il processo di connessione dei dispositivi insieme in modo che possano scambiare le informazioni e che risulta più facile scrivere i programmi. Ci sono diversi tipi di dispositivi di input e output in base alle nostre esigenze come LED, LCD, 7 segmenti, tastiera, motori e altri dispositivi.






Di seguito sono riportati alcuni importanti moduli interfacciati con il microcontrollore 8051.

1. Interfaccia LED per microcontrollore:

Descrizione:



I LED sono più comunemente usati in molte applicazioni per indicare l'uscita. Trovano una vasta gamma di applicazioni come indicatori durante i test per verificare la validità dei risultati in diverse fasi. Sono molto economici e facilmente disponibili in una varietà di forme, colori e dimensioni.

Diodo ad emissione luminosa

Diodo ad emissione luminosa

Il principio di funzionamento dei LED è molto semplice. Un semplice LED serve anche come dispositivo di visualizzazione di base, lo stato di accensione e spegnimento esprime il significato di informazioni complete su un dispositivo. I LED comuni disponibili hanno una caduta di tensione di 1,7 V, il che significa che quando applichiamo oltre 1,7 V, il diodo conduce. Il diodo ha bisogno di una corrente di 10 mA per illuminarsi con la massima intensità.


Il circuito seguente descrive 'come accendere i LED'.

I LED possono essere interfacciati al microcontrollore in configurazione con anodo comune o catodo comune. Qui i LED sono collegati nella configurazione dell'anodo comune perché la configurazione del catodo comune consuma più energia.

Schema elettrico

Interfaccia LED con microcontrollore

Interfaccia LED con microcontrollore

Codice sorgente:

#includere
void main ()
{
unsigned int i
mentre (1)
{
P0 = 0x00
per (i = 0i<30000i++)
P0 = 0xff
per (i = 0i<30000i++)
}
}

2. Circuito di interfacciamento del display a 7 segmenti

Descrizione:
Un display a sette segmenti è il display elettronico più semplice. Consiste di otto LED che vengono associati in sequenza in modo da visualizzare le cifre da 0 a 9 quando si accendono opportune combinazioni di LED. Un display a 7 segmenti utilizza sette LED per visualizzare le cifre da 0 a 9 e l'ottavo LED viene utilizzato per il punto. Un tipico sette segmento appare come mostrato nella figura sotto.

Display a 7 segmenti

Display a 7 segmenti

I display a 7 segmenti vengono utilizzati in diversi sistemi per visualizzare le informazioni numeriche. Possono visualizzare una cifra alla volta. Pertanto il numero di segmenti utilizzati dipende dal numero di cifre da visualizzare. Qui le cifre da 0 a 9 vengono visualizzate continuamente con un ritardo di tempo predefinito.

I display a 7 segmenti sono disponibili in due configurazioni che sono anodo comune e catodo comune. Qui viene utilizzata la configurazione dell'anodo comune perché la corrente di uscita del microcontrollore non è sufficiente per pilotare i LED. Il display a 7 segmenti funziona in logica negativa, dobbiamo fornire 0 logico al pin corrispondente per far accendere il LED.

Configurazioni del display a 7 segmenti

Configurazioni del display a 7 segmenti

La tabella seguente mostra i valori esadecimali utilizzati per visualizzare le diverse cifre.

Tabella di visualizzazione a 7 segmenti

Tabella di visualizzazione a 7 segmenti

Schema elettrico

Interfaccia con display a 7 segmenti

Interfaccia con display a 7 segmenti

Codice sorgente:

#includere
sbit a = P3 ^ 0
void main ()
{
carattere non firmato n [10] = {0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10}
unsigned int i, j
a = 1
mentre (1)
{
per (i = 0i<10i++)
{
P2 = n [i]
per (j = 0j<60000j++)
}
}
}

3. Interfaccia LCD con il microcontrollore

LCD sta per display a cristalli liquidi che può visualizzare i caratteri per riga. Qui il display LCD 16 x 2 può visualizzare 16 caratteri per riga e ci sono 2 righe. In questo display LCD ogni carattere viene visualizzato in una matrice di 5 * 7 pixel.

Display LCD

Display LCD

L'LCD è un dispositivo molto importante che viene utilizzato per quasi tutti i dispositivi automatizzati come lavatrici, un robot autonomo, sistemi di controllo della potenza e altri dispositivi. Ciò si ottiene visualizzando il loro stato su piccoli moduli di visualizzazione come display a 7-sette segmenti, LED multisegmento, ecc. I motivi sono che gli LCD hanno un prezzo ragionevole, facilmente programmabili e non hanno limitazioni nella visualizzazione di caratteri speciali.

Consiste di due registri come il registro di comando / istruzione e il registro dei dati.

Il registro di comando / istruzione memorizza le istruzioni di comando fornite all'LCD. Un comando è un'istruzione fornita all'LCD che esegue una serie di attività predefinite come l'inizializzazione, la cancellazione dello schermo, l'impostazione della posizione del cursore, il controllo del display, ecc.

Il registro dati memorizza i dati da visualizzare sul display LCD. I dati sono un valore ASCII dei caratteri da visualizzare sull'LCD.

Il funzionamento dell'LCD è controllato da due comandi. Quando RS = 0, R / W = 1 legge i dati e quando RS = 1, R / W = 0, scrive (stampa) i dati.

L'LCD utilizza i seguenti codici di comando:

Comandi del display LCD

Comandi del display LCD

Schema elettrico:

Interfacciamento LCD al microcontrollore

Interfacciamento LCD al microcontrollore

Codice sorgente:

#includere
#define kam P0

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

void lcd_initi ()
void lcd_dat (carattere non firmato)
void lcd_cmd (carattere non firmato)
void delay (unsigned int)
void display (unsigned char * s, unsigned char r)
void main ()
{

lcd_initi ()
lcd_cmd (0x80)
ritardo (100)
display ('EDGEFX TECHLNGS', 15)
lcd_cmd (0xc0)
display ('KIT E SOLZIONI', 15)
mentre (1)
}

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

lcd_dat (s [w])
}
}

void lcd_initi ()
{
lcd_cmd (0x01)
ritardo (100)
lcd_cmd (0x38)
ritardo (100)
lcd_cmd (0x06)
ritardo (100)
lcd_cmd (0x0c)
ritardo (100)
}
void lcd_dat (dat char non firmato)
{
pettine = quello
rs = 1
rw = 0

in = 1
ritardo (100)
in = 0
}
void lcd_cmd (char cmd non firmato)
{
came = cmd
rs = 0
rw = 0

in = 1
ritardo (100)
in = 0
}
void delay (unsigned int n)
{

unsigned int a
per (a = 0a}

4. Circuito di interfacciamento del motore passo-passo

Tipi di motori passo-passo-1

Motore passo-passo unipolare

PER motore passo-passo è uno dei motori più comunemente usati per movimenti angolari precisi. Il vantaggio dell'utilizzo di un motore passo-passo è che la posizione angolare del motore può essere controllata senza alcun meccanismo di feedback. I motori passo-passo sono ampiamente utilizzati in applicazioni industriali e commerciali. Sono anche comunemente usati come nei sistemi di azionamento come robot, lavatrici ecc.

Tipi di motori passo-passo-2

Motore passo-passo bipolare

I motori passo-passo possono essere unipolari o bipolari e qui stiamo usando motori passo-passo unipolari. Il motore passo-passo unipolare è costituito da sei fili di cui quattro sono collegati alla bobina del motore e due sono fili comuni. Ogni filo comune è collegato a una sorgente di tensione e i fili rimanenti sono collegati al microcontrollore.

Schema elettrico:

Circuito di interfacciamento motore passo-passo

Circuito di interfacciamento motore passo-passo

Codice sorgente:

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

void delay ()

void main ()
{

mentre (1)
{

a = 0
b = 1
c = 1
d = 1
ritardo()
a = 1
b = 0
c = 1
d = 1
ritardo()
a = 1
b = 1
c = 0
d = 1
ritardo()
a = 1
b = 1
c = 1
d = 0

}
}

void delay ()
{

caratteri non firmati i, j, k
per (i = 0i<6i++)
per (j = 0j<255j++)
per (k = 0k<255k++)

}

5. Tastiera a matrice interfacciata con 8051

Descrizione:

Tastiera a matrice

Tastiera a matrice

La tastiera è un dispositivo di input ampiamente utilizzato con molte applicazioni come telefono, computer, bancomat, serratura elettronica ecc. Una tastiera viene utilizzata per ricevere input dall'utente per ulteriori elaborazioni. Qui è presente una tastiera a matrice 4 per 3 composta da interruttori disposti in righe e colonne interfacciato al microcontrollore . Un LCD 16 x 2 è anche interfacciato per la visualizzazione dell'output.

Il concetto di interfacciamento della tastiera è molto semplice. Ad ogni numero di tastiere vengono assegnati due parametri univoci che sono riga e colonna (R, C). Quindi ogni volta che si preme un tasto il numero si identifica rilevando i numeri di riga e colonna del tastierino.

Diagramma interno della tastiera

Diagramma interno della tastiera

Inizialmente tutte le righe vengono impostate a zero ('0') dal controller e le colonne vengono scansionate per verificare se viene premuto un tasto. Se non viene premuto alcun tasto, l'output di tutte le colonne sarà alto ('1').

Schema elettrico

Tastiera a matrice interfacciabile con 8051

Tastiera a matrice interfacciabile con 8051

Codice sorgente:

#includere
#define kam P0
sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit a = 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 (carattere non firmato)
void lcd_cmd (carattere non firmato)
void delay (unsigned int)
void display (unsigned char * s, unsigned char r)

void main ()
{
lcd_initi ()
lcd_cmd (0x80)
ritardo (100)
display ('0987654321', 10)
mentre (1)
}

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

unsigned int w
per (w = 0w{

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

void lcd_dat (dat char non firmato)
{
pettine = quello
rs = 1
rw = 0

in = 1
ritardo (100)
in = 0
}
void lcd_cmd (char cmd non firmato)
{
came = cmd
rs = 0
rw = 0

in = 1
ritardo (100)
in = 0

}
void delay (unsigned int n)
{

unsigned int a
per (a = 0a}
}

Ci auguriamo di essere stati in grado di fornire un'ampia conoscenza dei circuiti di interfaccia di base ma importanti di microcontrollore 8051 . Questi sono i circuiti più basilari richiesti in qualsiasi applicazione di sistema embedded e speriamo di averti fornito una buona revisione.

Un'ulteriore domanda o feedback relativo a questo argomento è gradito per essere menzionato nella sezione commenti di seguito.

Crediti fotografici