- Componentes necessários:
- LCD gráfico:
- Mostrando uma imagem no LCD gráfico usando 8051:
- Explicação do circuito:
- Explicação de programação:
Em nossa vida diária, vemos muitos tipos de dispositivos para exibição de texto, imagens e gráficos. Os LCDs são um dos dispositivos de exibição mais populares em eletrônicos e são usados principalmente em todos os projetos que exibem algum tipo de informação. Existem muitos tipos de LCDs usados em projetos eletrônicos. Já usamos o LCD 16X2 em muitos de nossos projetos e também usamos o LCD TFT com Arduino. Você pode encontrar todos os nossos projetos relacionados ao LCD 16X2 seguindo este link, incluindo interface com 8051, AVR, Arduino e muitos mais.
Neste tutorial faremos interface do LCD gráfico com o microcontrolador 8051. Neste projeto, mostraremos como Exibir uma Imagem em LCD Gráfico (GLCD).
Componentes necessários:
- LCD gráfico
- Microcontrolador AT89c52 8051
- Regulador de tensão 7805
- Capacitor 1000uf
- Capacitor 10 uF
- Resistor de 10K
- 10K POT
- Oscilador de cristal 12 MH
- Fio de conexão
- Tábua de pão
- Tiras de burg masculino
- Fonte de energia
- CONDUZIU
- Resistor de 220 ohms
- Resistor 1K
LCD gráfico:
Um LCD 16x2 simples tem 16 pinos, mas o LCD gráfico tem 20 pinos. A descrição do pino é fornecida abaixo de acordo com sua folha de dados:
Pin No. | Nome do Pin | Descrição | Função |
1 | VSS | Terra | 0 Volt |
2 | VDD | Fonte de energia | 5 volts |
3 | V0 | Ajuste de contraste do LCD | |
4 | RS | Seleção de registro de comando / dados | RS = 0: Seleção de Comando e RS = 1: Seleção de Dados |
5 | R / W | Registro de leitura / gravação | R / W = 0: Seleção de gravação e R / W = 1: Seleção de leitura |
6 | E | Habilitar Sinal | |
7 | DB0 | Pino de entrada / saída de dados (DB0-DB7) | 8 bits (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Chip Select | CS1 = 1, sinal de seleção de chip para IC1 |
16 | CS2 | Chip Select | CS2 = 1, Sinal de Seleção de Chip para IC2 |
17 | RST | Redefinir | Reiniciar GLCD |
18 | VEE | Tensão negativa para driver de LCD | |
19 | UMA | LED de luz traseira | 5 volts |
20 | K | LED de luz traseira | Terra |
Mostrando uma imagem no LCD gráfico usando 8051:
Para mostrar uma imagem no LCD gráfico, primeiro precisamos converter essa imagem em código de montagem, para que o microcontrolador 8051 possa entendê-la e lê-la. Portanto, precisamos seguir as etapas abaixo para converter a imagem em código HEX:
Passo 1: Primeiro, precisamos baixar um aplicativo que converte a imagem (formato BMP) em código de montagem. Portanto, baixe o aplicativo de conversão de imagem BMP2ASM neste link, apenas clique com o botão direito do mouse no link e clique em Salvar link como…
Passo 2: Em seguida, selecione a imagem que deseja exibir no LCD gráfico e converta-a em BMP (se ainda não estiver no formato BMP) usando qualquer aplicativo como MS Paint, Photoshop etc. Ou você pode encontrar muitos sites online para conversão de formato de imagem. Temos imagem abaixo do BMP, com tamanho 128x64:
Etapa 3: agora extraia o arquivo BMP2ASM.zip, que baixamos na Etapa 1, abra Bmp2asm.exe dentro dele e selecione a imagem BMP.
Passo 4: Agora pressione “Converter” na janela do aplicativo BMP2ASM.
Passo 5: A seguir copie o código gerado e cole no programa do 8051 no Keil uVision. Faça algumas alterações e compile o código.
Agora seu código está pronto para ser carregado no microcontrolador 8051.
Explicação do circuito:
As conexões de circuito, para a interface do LCD gráfico com o microcontrolador 8051, são fáceis e quase iguais a conectar o LCD 16x2 ao 8051. Mas o LCD 16x2 tem 16 pinos e o GLCD tem 20 pinos.
Um potenciômetro de 10K é usado para definir o contraste para GLCD. Controlo pins de GLCD RS, R / W e E estão directamente ligados à 89C52 número pino P1.0, P1.1 e P1.2. Os pinos de seleção de chip CS1 e CS2 do LCD são conectados aos pinos P1.3 e P1.4 respectivamente. Os pinos de dados DB0-DB7 são conectados diretamente na PORTA P2. Um regulador de tensão 7805 é usado para alimentação regular de 5 volts. No vídeo de demonstração, usei a fonte de alimentação Arduino.
Explicação de programação:
Em primeiro lugar, incluímos os arquivos de cabeçalho necessários no programa e definimos bits para os pinos de controle e dados do GLCD.
#incluir
Depois disso, criamos uma função de atraso.
void delay (int itime) {int i, j; para (i = 0; i
A função void lcd_disp_on () é usada para ligar o display.
A função void setCursorY (int y) é criada para definir a coluna no GLCD e a função void setCursorX (int x) é criada para definir a página no GLCD. O arquivo de código completo é fornecido na seção de código abaixo.
Depois de definir a coluna e a página, escrevemos uma função para enviar comandos e dados ao GLCD.
void lcdprint (dat char, tamanho int) {unsigned int i; para (i = 0; i
Na função void main () , limpamos o GLCD e definimos a coluna e a página. Depois disso, envie os dados para o LCD usando a função void lcdprint (char dat, int size) .
void main () {int x, y; P3 = 0xff; enquanto (1) {lcdclear (); for (y = 0; y <8; y ++) {for (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (imagem, x); }}…………………..
Fluxo de código:
- Primeiro, quando ligamos o sistema, o programa limpa o GLCD e liga a tela.
- Em seguida, defina o cursor para Coluna, de onde queremos escrever os dados.
- Em seguida, defina o cursor para Página, de onde queremos escrever os dados.
- Agora o programa envia dados para o local selecionado um por um até 128X8 vezes. Porque um GLCD tem 8 páginas e 128 colunas.