You are on page 1of 21

Microcontroladores PIC

Operação com Displays de Cristal Líquido


LCDs

1
Sumário
 Características dos módulos LCDs
 Tipos de LCDs
 Informações Comuns aos LCDs
 Conexão de LCDs com MCUs
 Programação de LCDs
 Exemplo em Linguagem C

2
Características dos Módulos LCDs
 Displays LCDs:
• Exibe informações alfa-numéricas (caracteres) e/ou gráficas
(pontos, linhas, curvas, etc.).

• Adequados a aplicações que não demandam alta visibilidade.


Ângulo de observação limitado.

• Na sua grande maioria: depende de iluminação externa.

• Baixo consumo de energia (da ordem de 1 mA).

• Elevado custo.

3
LCDs - Tecnologia TN
Funcionamento
Reflective twisted nematic w:liquid crystal display.
1. Vertical filter film to polarize the light as it enters.
2. Glass substrate with ITO electrodes. The shapes of these electrodes will
determine the dark shapes that will appear when the LCD is turned on. Vertical
ridges are etched on the surface so the liquid crystals are in line with the polarized
light.
3. Twisted nematic liquid crystals.
4. Glass substrate with common
electrode film (ITO) with horizontal ridges
to line up with the horizontal filter.
5. Horizontal filter film to block/allow
through light.
6. Reflective surface to send light back
to viewer.

Obtido em:
http://en.wikipedia.org/wiki/LCD
07 de Julho de 2007.
Tipos de Displays LCDs
 Alfanuméricos ou Gráficos.
 Número de Linhas.
 Resoluções variadas.
 Número de pinos para conexão.
 Com ou sem backlight.
 Tipo de caracteres.
 Tecnologias e Temporizações
diversas.
PINAGEM DE UM LCD 16x2

Controle do contraste
Controle do Backlight
Pinos de dados do LCD Pinos de controle para a comunicação 5
do LCD com o MCU
Módulos LCDs Alfanuméricos
mais Comuns
Pinagem Básica de um LCD Alfanumérico

PINAGEM DE UM LCD 16 x 2 (caracteres x linhas)

Controle do contraste

Controle do Backlight

Pinos de controle para a comunicação


Pinos de dados do LCD do LCD com o MCU
7
Pinagem Básica dos Módulos LCDs
Exemplo de um Esquema Elétrico de
Conexão de um LCD com um MCU
Temporização
dos LCDs

Ciclo de Escrita
Temporização dos
LCDs

Ciclo de Leitura
Ciclo de Escrita e Leitura do MCU 16F877A
Programação de LCDs
 Programar displays de LCDs:
• Configurar PORTs adequadas ao uso de LCDs.
• Configurar (inicializar) o LCD.
• Enviar dados de comandos para o LCD.
• Enviar dados de leitura ou escrita (LCD).

 Para escrever um caractere em uma


determinada posição do LCDs:
• Envia-se ao LCD um comando com o endereço da posição
onde se quer escrever.
• Envia-se logo a seguir o caractere a ser escrito na posição.

 Endereços:
LCD 16x2
Programação de LCDs:
Comandos mais Comuns
Programação de
LCDs:
Caracteres
• O código de cada
caractere é composto
por 8 bits sendo:
– nibble alto (upper bits)
– nibble baixo (lower bits).
• LCDs tem em comum
os caracteres entre 00h
e 7Fh
• O código dos
caracteres em LCDs
alfanuméricos podem
variar conforme
fabricante e o padrão:
(ASCII, Unicode, etc.)
Exemplo em Linguagem C: Arquivo
Header
void lcd_delay(void); void lcd_comando (char dado)
void lcd_comando(char); {
void lcd_dado(char); lcd_delay();
void lcd_init(void); RS=0;
lcd_delay();
void lcd_dado (char dado) swap(dado);
{ DISPLAY = dado;
lcd_delay(); lcd_delay();
RS=1; EN=1;
lcd_delay(); lcd_delay();
swap(dado); EN=0;
DISPLAY = dado;
lcd_delay(); swap(dado);
EN=1; DISPLAY = dado;
lcd_delay(); lcd_delay();
EN=0; EN=1;
lcd_delay();
swap(dado); EN=0;
DISPLAY = dado; }
lcd_delay();
EN=1;
lcd_delay();
EN=0;
}
Exemplo em Linguagem C: Arquivo
Header (continuação)
for(cont=0;cont<6;cont++){
void lcd_init() aux =Inic[cont];
{ RS=0;
int cont; delay_ms(5);
char aux; swap(aux);
char Inic[6]; DISPLAY = aux;
Inic[0] = 0x33;
Inic[1] = 0x32; EN=1;
Inic[2] = 0x28; delay_ms(5);
Inic[3] = 0x06; EN=0;
Inic[4] = 0x0C;
Inic[5] = 0x01; swap(aux);
DISPLAY = aux;
set_tris_d(0xf0);
set_tris_e(0x00); EN=1;
ADCON1 = 0x07; // desabilita entradas do ADC delay_ms(5);
EN=0;
EN=0; }
}
void lcd_delay(void)
{
delay_us(50);
}
Primeiro Exemplo em Linguagem C
// *** Definições do Microcontrolador ***
#include <16F877A.H> // arquivo de // Programa principal
definições do microcontrolador usado
#include <regs_16F87x.H> void main (void)
#fuses {
XT,NOWDT,PUT,NOBROWNOUT,NOLVP // lcd_init();
bits de configuração for(;;){
lcd_comando(0x84);
// Configurações do Projeto lcd_dado('E');
#use delay(clock=4000000) // informa ao sistema lcd_dado('x');
o frequência de clock, para temporização lcd_dado('s');
lcd_dado('t');
// Definições de Hardware lcd_dado('o');
#byte DISPLAY=PORTD
lcd_comando(0xc2);
#bit RS=PORTE.0 lcd_dado('T');
#bit EN=PORTE.1 lcd_dado('e');
lcd_dado('c');
#include<LCD.H> lcd_dado('n');
lcd_dado('o');
lcd_dado('l');
lcd_dado('o');
lcd_dado('g');
lcd_dado('i');
lcd_dado('a');
}
}
Displays LCD Gráficos: Pinagem Básica

O que varia é a resolução,


medida em pixels:
Comum: 128 x 64 pixels
Onde encontrar mais informações…
 http://www.microchip.com
 Desbravando o PIC – Editora Erica – David José de
Souza
 Conectando o PIC 16F877A – Recursos Avançados –
Editora Erica – David José de Souza e Nicholas C.
Lavínia
 PIC – Programação em C – Fábio Pereira – Editora Érica
 John Peatman’s
• And corresponding excellent book
• http://www.picbook.com/index.html
 http://www.piclist.com
 http://www.geocities.com/picmaniaco/indice.html

20
Onde encontrar mais informações…
 “Design with PIC Microcontrollers” by John B.
Peatman, published by Prentice Hall, ISBN 0-13-
759259-0.

 “Programming Embedded Systems, in C and C++”,


M. Barr, publ. byO’Reilly, ISBN 1-56592-354-5

 http://en.wikipedia.org/wiki/LCD

21

You might also like