Interface de periféricos eletrônicos principais com o microcontrolador 8051

Experimente Nosso Instrumento Para Eliminar Problemas





A interface é um dos conceitos importantes em microcontrolador 8051 porque o microcontrolador é uma CPU que pode realizar alguma operação em um dado e fornece a saída. No entanto, para realizar a operação, precisamos de um dispositivo de entrada para inserir os dados e, por sua vez, o dispositivo de saída exibe os resultados da operação. Aqui, estamos usando teclado e display LCD como dispositivos de entrada e saída junto com o microcontrolador.

Dispositivos periféricos microcontroladores 8051

Dispositivos periféricos microcontroladores 8051



Interface é o processo de conectar dispositivos entre si para que possam trocar as informações e que seja mais fácil escrever os programas. Existem diferentes tipos de dispositivos de entrada e saída conforme nossa necessidade, como LEDs, LCDs, 7segment, teclado, motores e outros dispositivos.


Aqui estão alguns módulos importantes com interface com o microcontrolador 8051.



1. Interface de LED com microcontrolador:

Descrição:

Os LEDs são mais comumente usados ​​em muitas aplicações para indicar a saída. Eles encontram grande variedade de aplicações como indicadores durante o teste para verificar a validade dos resultados em diferentes estágios. Eles são muito baratos e facilmente disponíveis em uma variedade de formas, cores e tamanhos.

Diodo emissor de luz

Diodo emissor de luz

O princípio de operação de LEDs é muito fácil. Um LED simples também serve como um dispositivo de exibição básico, seu estado ligado e desligado expressam informações completas sobre um dispositivo. Os LEDs comuns disponíveis têm uma queda de tensão de 1,7 V, o que significa que quando aplicamos acima de 1,7 V, o diodo conduz. O diodo precisa de corrente de 10mA para brilhar com intensidade total.


O circuito a seguir descreve “como acender os LEDs”.

Os LEDs podem ser conectados ao microcontrolador na configuração de ânodo comum ou cátodo comum. Aqui, os LEDs são conectados na configuração de ânodo comum porque a configuração de cátodo comum consome mais energia.

Diagrama de circuito

Interface de LED para microcontrolador

Interface de LED para microcontrolador

Código fonte:

#incluir
void main ()
{
sem sinal int i
enquanto (1)
{
P0 = 0x00
para (i = 0i<30000i++)
P0 = 0xff
para (i = 0i<30000i++)
}
}

2. Circuito de interface de exibição de 7 segmentos

Descrição:
Um display de sete segmentos é o display eletrônico mais básico. Consiste em oito LEDs que são associados de forma sequencial para exibir dígitos de 0 a 9 quando as combinações adequadas de LEDs são ligadas. Um display de 7 segmentos usa sete LEDs para exibir os dígitos de 0 a 9 e o 8º LED é usado para o ponto. Um típico segmento de sete parece como mostrado na figura abaixo.

Display de 7 segmentos

Display de 7 segmentos

Os visores de 7 segmentos são usados ​​em vários sistemas para exibir as informações numéricas. Eles podem exibir um dígito por vez. Portanto, o número de segmentos usados ​​depende do número de dígitos a serem exibidos. Aqui, os dígitos de 0 a 9 são exibidos continuamente em um atraso de tempo predefinido.

Os visores de 7 segmentos estão disponíveis em duas configurações, que são ânodo comum e cátodo comum. Aqui, a configuração de ânodo comum é usada porque a corrente de saída do microcontrolador não é suficiente para acionar os LEDs. O display de 7 segmentos funciona com lógica negativa, temos que fornecer a lógica 0 ao pino correspondente para fazer o LED acender.

Configurações de exibição de 7 segmentos

Configurações de exibição de 7 segmentos

A tabela a seguir mostra os valores hexadecimais usados ​​para exibir os diferentes dígitos.

Tabela de exibição de 7 segmentos

Tabela de exibição de 7 segmentos

Diagrama de circuito

Interface de exibição de 7 segmentos

Interface de exibição de 7 segmentos

Código fonte:

#incluir
sbit a = P3 ^ 0
void main ()
{
unsigned char n [10] = {0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10}
sem sinal int i, j
a = 1
enquanto (1)
{
para (i = 0i<10i++)
{
P2 = n [i]
para (j = 0j<60000j++)
}
}
}

3. Interface do LCD com o microcontrolador

LCD significa display de cristal líquido, que pode exibir os caracteres por linha. Aqui, o display LCD de 16 por 2 pode exibir 16 caracteres por linha e há 2 linhas. Neste LCD, cada caractere é exibido em uma matriz de 5 * 7 pixels.

Tela de LCD

Tela de LCD

LCD é um dispositivo muito importante que é usado para quase todos os dispositivos automatizados, como máquinas de lavar, um robô autônomo, sistemas de controle de energia e outros dispositivos. Isso é obtido exibindo seu status em pequenos módulos de display, como displays de 7 a sete segmentos, LEDs de vários segmentos, etc. As razões são, LCDs têm preços razoáveis, são facilmente programáveis ​​e não têm limitações de exibição de caracteres especiais.

Consiste em dois registros, como registro de comando / instrução e registro de dados.

O registro de comando / instrução armazena as instruções de comando fornecidas ao LCD. Um comando é uma instrução fornecida ao LCD que executa um conjunto de tarefas predefinidas, como inicializar, limpar a tela, definir a posição do cursor, controlar a exibição, etc.

O registro de dados armazena os dados a serem exibidos no LCD. Os dados são um valor ASCII dos caracteres a serem exibidos no LCD.

A operação do LCD é controlada por dois comandos. Quando RS = 0, R / W = 1 ele lê os dados e quando RS = 1, R / W = 0, ele escreve (imprime) os dados.

LCD usa os seguintes códigos de comando:

Comandos do display LCD

Comandos do display LCD

Diagrama de circuito:

Interface de LCD com microcontrolador

Interface de LCD com microcontrolador

Código fonte:

#incluir
#define kam P0

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

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

lcd_initi ()
lcd_cmd (0x80)
atraso (100)
display (“EDGEFX TECHLNGS”, 15)
lcd_cmd (0xc0)
display (“KITS & SOLTIONS”, 15)
enquanto (1)
}

void display (unsigned char * s, unsigned char r)
{
sem sinal int w
para (w = 0w{

lcd_dat (s [w])
}
}

void lcd_initi ()
{
lcd_cmd (0x01)
atraso (100)
lcd_cmd (0x38)
atraso (100)
lcd_cmd (0x06)
atraso (100)
lcd_cmd (0x0c)
atraso (100)
}
void lcd_dat (unsigned char dat)
{
pente = isso
rs = 1
rw = 0

em = 1
atraso (100)
em = 0
}
void lcd_cmd (unsigned char cmd)
{
veio = cmd
rs = 0
rw = 0

em = 1
atraso (100)
em = 0
}
void delay (unsigned int n)
{

não assinado int a
para (a = 0a}

4. Circuito de interface do motor de passo

Tipos de motores de passo-1

Motor de passo unipolar

PARA motor de passo é um dos motores mais comumente usados ​​para movimentos angulares precisos. A vantagem de usar um motor de passo é que a posição angular do motor pode ser controlada sem qualquer mecanismo de feedback. Os motores de passo são amplamente utilizados em aplicações industriais e comerciais. Eles também são comumente usados ​​em sistemas de acionamento, como robôs, máquinas de lavar, etc.

Tipos de motores de passo-2

Motor de passo bipolar

Os motores de passo podem ser unipolares ou bipolares e aqui estamos usando o motor de passo unipolar. O motor de passo unipolar consiste em seis fios, dos quais quatro são conectados à bobina do motor e dois são fios comuns. Cada fio comum é conectado a uma fonte de tensão e os fios restantes são conectados ao microcontrolador.

Diagrama de circuito:

Circuito de interface do motor de passo

Circuito de interface do motor de passo

Código fonte:

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

atraso vazio ()

void main ()
{

enquanto (1)
{

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

}
}

atraso vazio ()
{

caracteres não assinados i, j, k
para (i = 0i<6i++)
para (j = 0j<255j++)
para (k = 0k<255k++)

}

5. Interface do teclado de matriz para 8051

Descrição:

Teclado Matrix

Teclado Matrix

O teclado é um dispositivo de entrada amplamente usado com muitas aplicações, como telefone, computador, ATM, fechadura eletrônica, etc. Um teclado é usado para receber a entrada do usuário para processamento posterior. Aqui, um teclado de matriz 4 por 3 consistindo de interruptores dispostos em linhas e colunas é interface com o microcontrolador . Um LCD 16 por 2 também tem interface para exibir a saída.

O conceito de interface do teclado é muito simples. Cada número de teclado é atribuído a dois parâmetros exclusivos que são linha e coluna (R, C). Portanto, toda vez que uma tecla é pressionada, o número é identificado pela detecção dos números de linha e coluna do teclado.

Diagrama interno do teclado

Diagrama interno do teclado

Inicialmente, todas as linhas são definidas como zero ('0') pelo controlador e as colunas são digitalizadas para verificar se alguma tecla foi pressionada. No caso de nenhuma tecla ser pressionada, a saída de todas as colunas será alta ('1').

Diagrama de circuito

Interface do teclado matricial para 8051

Interface do teclado matricial para 8051

Código fonte:

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

void main ()
{
lcd_initi ()
lcd_cmd (0x80)
atraso (100)
display (“0987654321”, 10)
enquanto (1)
}

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

sem sinal int w
para (w = 0w{

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

void lcd_dat (unsigned char dat)
{
pente = isso
rs = 1
rw = 0

em = 1
atraso (100)
em = 0
}
void lcd_cmd (unsigned char cmd)
{
veio = cmd
rs = 0
rw = 0

em = 1
atraso (100)
em = 0

}
void delay (unsigned int n)
{

não assinado int a
para (a = 0a}
}

Esperamos ter sido capazes de fornecer amplo conhecimento sobre os circuitos de interface básicos, mas importantes de microcontrolador 8051 . Esses são os circuitos mais básicos necessários em qualquer aplicativo de sistema embarcado e esperamos ter fornecido a você uma boa revisão.

Uma outra consulta ou feedback relacionado a este tópico é bem-vindo para ser mencionado na seção de comentários abaixo.

Créditos fotográficos