A interface de LCD de 5V com um controlador de 3,3V como LPC1768 é um pouco complicada de manusear. Este é o artigo que explica como um LCD 16×2 faz interface com LPC1768 no modo de 4 bits. LCD em 4 bits, o que significa que usaremos 4 linhas em vez de 8 linhas, o que economiza 4 GPIOs que podem ser usados para outros fins. A configuração do ambiente para o desenvolvimento do ARM córtex M3 é bem discutida neste artigo.
O LPC 1768 é um microcontrolador baseado em ARM Cortex-M3 para recursos de aplicação embarcados com baixo consumo de energia e alto nível de integração. O ARM Cortex M3 foi projetado de forma a aprimorar os recursos de depuração e um nível mais alto de integração do sistema. Ele funciona a uma frequência de CPU de 100 MHz e incorpora um pipeline de 3 estágios e usa uma arquitetura Harvard com instruções locais separadas e barramentos de dados para periféricos de terceiro barramento. A CPU ARM Cortex-M3 possui uma unidade interna de pré-busca para suportar ramificações especulativas. Os componentes periféricos incluem 512 KB de memória flash, 64 KB de memória de dados, Ethernet MAC, USB OTG, 4 UARTs, controlador DMA de uso geral de 8 canais, 2 controladores SSP, DAC de 10 bits, interface de codificador de quadratura, interface SPI, 3 barramentos I2C interface, interface de barramento I2S de 2 entradas mais 2 saídas, 4 temporizadores de uso geral, relógio em tempo real (RTC) de consumo ultrabaixo com fonte de bateria separada e até 70 pinos de E/S de uso geral, PWM de uso geral de 6 saídas. Os LPC1768/66/65/64 são compatíveis com os pinos da série de microcontroladores baseados em LPC236x ARM7 de 100 pinos.
Noções básicas do LCD 16X2:
O LCD chinês usado aqui é o JHD162A. Possui um controlador KS0066U/ HD44780U. Possui um dispositivo de interface de 16 pinos que consiste em 2 linhas com 16 caracteres cada. A tensão de operação é 5V. Além disso, possui retroiluminação LED. Existem 2 modos de operação:
1) Modo de Instrução: Para inicializar e configurar o LCD antes de seu uso
2) Modo de Dados: Exibe os caracteres dos respectivos códigos que são fornecidos ao LCD por meio dos Pinos de Dados.
Descrição do pino LCD:
Pino Não |
Símbolo |
E/S |
Descrição |
1 |
VSS |
– |
Chão |
2 |
CCV |
|
+5V |
3 |
VEE |
|
Controle de contraste |
4 |
RS |
Entrada |
Registro de comando/dados |
5 |
R/W |
Entrada |
Registro de leitura/gravação |
6 |
E |
Entrada/Saída |
Habilitar |
7 |
DB0 |
Entrada/Saída |
Não usado no modo de 4 bits |
8 |
DB1 |
Entrada/Saída |
Não usado no modo de 4 bits |
9 |
DB2 |
Entrada/Saída |
Não usado no modo de 4 bits |
10 |
DB3 |
Entrada/Saída |
Não usado no modo de 4 bits |
11 |
DB4 |
Entrada/Saída |
Barramento de dados no modo de 4 bits |
12 |
DB5 |
Entrada/Saída |
Barramento de dados no modo de 4 bits |
13 |
DB6 |
Entrada/Saída |
Barramento de dados no modo de 4 bits |
14 |
DB7 |
Entrada/Saída |
Barramento de dados no modo de 4 bits |
15 |
CCV |
– |
Para luz traseira LCD |
16 |
VSS |
– |
Para luz traseira LCD |
Fig. 1: Descrição do pino do LCD
Inicializando Módulo LCD:
Depois de verificar todas as conexões do MCU ao HFC4050 e ao Módulo LCD, podemos prosseguir para exibir o texto no LCD. Mas primeiro, o LCD precisa ser inicializado corretamente. (De acordo com a folha de dados) Antes de inicializar o LCD, você precisará aguardar um tempo mínimo de cerca de 15 milissegundos após a alimentação da tensão de entrada estar estável e superior a 4,5 Volts.
O primeiro passo é certificar-se de que RS e Enable estejam mantidos em nível BAIXO. O próximo passo é inserir alguns comandos no LCD usando os pinos de dados. Esses comandos não serão executados até que um pulso seja fornecido ao pino Enable. Depois de fornecer um pulso ao comando, a Habilitação deve ser definida como Alta e, em seguida, Baixa após um pequeno atraso. Então, o comando é executado.
O LCD pode ser configurado no modo de 4 bits enviando o comando apropriado chamado “Function set” para ele. O conjunto de funções é um comando hexadecimal da unidade LCD MPU, que seleciona os modos de funcionamento do LCD. O “Conjunto de Funções” é mencionado na tabela a seguir:
Fig. 2: Conjunto de funções do LCD para configurar no modo 4 bits
Descrição:
DL – Comprimento dos dados (DL = 1 8 bits, DL = 0 4 bits)
N – Nº de linhas (N = 1 2Lines, N = 0 1Lines)
F – Fontes (F = 1 5×10 pontos, F = 0 5×7 pontos)
De acordo com a tabela, o valor do Conjunto de Funções para o modo de 4 bits será 0010 0000(0x20) porque DL=0. O valor “Function Set” para a configuração LCD 2 linhas (N=1), 5X7 pontos (F=0) e modo 4 bits (DL=0) será 0010 1000(0x28).
Quando a fonte de alimentação é fornecida ao LCD, ele permanece no modo de 8 bits. Agora, se 0x20 for enviado, o nibble inferior não será recebido pelo LCD porque quatro linhas de dados (D4-D7) estão conectadas, então 0x02 é enviado em vez de 0x20. Para obter mais detalhes sobre a interface do LCD, consulte estes links.
Como fazer a interface do LCD no modo de 4 bits com o microcontrolador AVR.
Como fazer a interface do LCD com LPC2148.
Crie um projeto usando Keil uvision4 para microcontrolador LPC1768:
Nesta seção, começaremos a criar um projeto no Keil MDK, já instalamos Keil µVision e Co-MDK Plug-in + CoLinkEx Drivers necessários para o adaptador de programação CoLinkEx. Você pode começar baixando os arquivos do projeto e iniciar seu experimento prático.
Código.rar
Descrição do código:
Essas funções explicadas são incluídas na criação de uma biblioteca LCD e incluídas nos arquivos de codificação.
A função abaixo é enviar bytes de comando para o LCD:
Lcd_CmdWrite
A função abaixo é enviar bytes de dados para o LCD:
LCD_DataWrite
Inicialização do modo de 4 bits:
LCD_CmdWrite(0x02); // Inicializa o LCD no modo 4 bits
LCD_CmdWrite(0x28); // habilita o modo 5×7 para caracteres
Lcd_CmdWrite(0x0E); // Exibição DESLIGADA, Cursor LIGADO
LCD_CmdWrite(0x01); //Limpa a exibição
LCD_CmdWrite(0x80); // Move o cursor para o início da primeira linha
Código-fonte do projeto
###
Diagramas de circuito
Diagrama de circuito da interface LCD no modo 4 bits com LPC1768 |
Componentes do Projeto
- LCD
- LIDERADO
- Resistor
Vídeo do projeto