Manejo de Lcd-128x64 Con Pic18f4550

8
4.3. MANEJO DE LCD GRAFICA 128X64 En un ejemplo (xx) anterior se trabajo la LCD 16X2, con ella se pueden visualizar letras, números y algunos símbolos ya predefinidos por el fabricante, sin embargo con la misma filosofía que aprendió con esta LCD se pude controlar una LCD grafica 128x64. Ejemplo 17. Se desea visualizar la palabra HOLA en una LCD de 128 X 64 y posteriormente que el microcontrolador quede prendiendo y pagado un led. Usando el PIC18F4550. A continuación se desarrollará paso por paso: Paso 1. Las LCD graficas 128X64, están construidas por dos segmentos cada uno de ellos 64x64, y cada uno de ellos tienen ocho páginas y estas formada por 8x64 asi como se muestra en la figura 1. Además en cada una de las paginas se puede subir o bajar de 0 a 64. Segmento 1 Segmento 2 0 63 64 127 Página 0 Página 0 Página 1 Página 1 Página 2 Página 2 Página 3 Página 3 Página 4 Página 4 Página 5 Página 5 Página 6 Página 6 Página 7 Página 7 Figura 1. Diagrama de LCD 128X64 1 . 1 www.datasheetcatalog.com

Transcript of Manejo de Lcd-128x64 Con Pic18f4550

Page 1: Manejo de Lcd-128x64 Con Pic18f4550

4.3. MANEJO DE LCD GRAFICA 128X64

En un ejemplo (xx) anterior se trabajo la LCD 16X2, con ella se pueden visualizar letras,

números y algunos símbolos ya predefinidos por el fabricante, sin embargo con la misma

filosofía que aprendió con esta LCD se pude controlar una LCD grafica 128x64.

Ejemplo 17. Se desea visualizar la palabra HOLA en una LCD de 128 X 64 y

posteriormente que el microcontrolador quede prendiendo y pagado un led. Usando el

PIC18F4550.

A continuación se desarrollará paso por paso:

Paso 1. Las LCD graficas 128X64, están construidas por dos segmentos cada uno de ellos

64x64, y cada uno de ellos tienen ocho páginas y estas formada por 8x64 asi como se muestra

en la figura 1. Además en cada una de las paginas se puede subir o bajar de 0 a 64.

Segmento 1 Segmento 2

0 63 64 127

Página 0 Página 0

Página 1 Página 1

Página 2 Página 2

Página 3 Página 3

Página 4 Página 4

Página 5 Página 5

Página 6 Página 6

Página 7 Página 7

Figura 1. Diagrama de LCD 128X641.

1 www.datasheetcatalog.com

Page 2: Manejo de Lcd-128x64 Con Pic18f4550

La distribución de de pines se puede ver en la tabla 1

Pin Símbolo Función

1 VSS 0 V

2 VDD 5 V

3 VO Ajuste de Contraste

4 RS/DI Selector de modo

5 Selector

6 E Enable

7 DB0 Línea de datos D0

8 DB1 Línea de datos D1

9 DB2 Línea de datos D2

10 DB3 Línea de datos D3

11 DB4 Línea de datos D4

12 DB5 Línea de datos D5

13 DB6 Línea de datos D6

14 DB7 Línea de datos D7

15 CS1 Selector segmento 1

16 CS1 Selector segmento 2

17 RET Reset LCD

18 VEE Voltaje negativo -10V

19 A 5 V

20 K 0 V

Tabla 1. Distribución de pines LCD 128X642.

La LCD 128x64 tiene dos modos de funcionamiento fundamentales los cuales son:

1) Modo Comando: Cuando en el Bus de datos la LCD recibe un comando como:

Prender LCD, Apagar LCD, Selector Pagina, Selector Línea, Selector Dirección

entre otras3. (RS = 0 y = 0). Una operación de este modo tarda un máximo de

200 nS. Los modos comando que puede recibir la LCD se muestran en la tabla 2.

2) Modo Carácter o Dato: Cuando en el Bus de datos la LCD recibe un dato a

visualizar4. (RS = 1 y = 0). Una operación de este modo tarda un máximo de

10 nS.

Cada vez que se escribe un dato automáticamente se apunta a la siguiente posición.

2 www.datasheetcatalog.com

3 PENDIENTE. 4 PENDIENTE.

Page 3: Manejo de Lcd-128x64 Con Pic18f4550

En la tabla 2 se muestra algunos de los comandos necesarios que recomienda el fabricante para

controlar la LCD.

Función RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

Display ON 0 0 0 0 0 0 0 0 0 1

Display OFF 0 0 0 0 0 0 0 0 0 0

Selector de Dirección (0 a

63).

0 0 0 1 0 a 63

En cada página se puede variar la dirección.

Selector de Pagina (0 a 7) 0 0 1 0 1 1 1 0 a 7

Selector de Línea (0 a 63). 0 0 1 1 0 a 63

En cada página se puede variar la línea.

Escribir dato en la LCD 0 1 Write Data

Tabla 2. Modos de una LCD 128x645.

aqui

Paso 2. La distribución del circuito puede ser de la siguiente forma: el Puerto B para el bus de

datos de la LCD; y las líneas de control en el Puerto C asi: C0 = E, C2 = RS/DI, C6 = CS1,

C7 = CS2, R/W = GND, RST = VCC, en la figura 2 se puede apreciar todo esto. El led se

puede colocar en D7.

Figura 2. Diagrama de conexiones del ejemplo XX. (Proteus, 2003).

5 www.datasheetcatalog.com

Page 4: Manejo de Lcd-128x64 Con Pic18f4550

Paso 3. Para hacer el diagrama de flujo es necesario tener en cuenta que cada uno decide que

tamaño tiene cada unas de las letras, para este caso el tamaño pude ser 8x8, para ello se pude

observar la tabla 3, en ella solo está la letra H, la cual se forma mandando uno a las filas que se

quieren prender y cero a las que se quieren a pagar. El lector pude hacer lo mismo para las

otras letras.

C1 C2 C3 C4 C5 C6 C7 C8

Linea Port B

B0 F1 1 0 0 0 0 0 0 1

B1 F2 1 0 0 0 0 0 0 1

B2 F3 1 0 0 0 0 0 0 1

B3 F4 1 0 0 0 0 0 0 1

B4 F5 1 1 1 1 1 1 1 1

B5 F6 1 0 0 0 0 0 0 1

B6 F7 1 0 0 0 0 0 0 1

B7 F8 1 0 0 0 0 0 0 1

Código 255 16 16 16 16 16 16 255

Tabla 3. Códigos para la letra H 8x8.

Se plantea un programa principal el cuál está en cargado primero prender la LCD, Configura la

pagina 0, Configura la dirección 0, Configura la línea 0, llamar cada una de las letras que se

quieren visualizar, ver diagrama 1. Tener en cuenta que hay un espacio entre cada letra, para lo

cual se usa la subrutina ESPACIO, y por último prende y apaga el led indefinidamente. El

lector podrá darse cuenta que controlar esta LCD gráfica es muy sencillo, cuando se quiera

cambiar de dirección o de pagina o de línea solo es agregar una nueva subrutina para cada caso,

teniendo en cuenta lo que dice la tabla 2.

Page 5: Manejo de Lcd-128x64 Con Pic18f4550

Diagrama 1. Programa manejo LCD 128x64.

INICIO

Definición del Microcontrolador

Registros de Propósito General

PROGRAMAR PUERTOS DE SALIDA

LLAMAR TIEMPO 100 mS

LLAMAR PRENDE_LCD

CONFIGURA OSCILADOR A 4 MHZ

DIGITAL

LLAMAR PAGINA 0

LLAMAR DIRECCIÓN 0

= W

LLAMAR LÍNEA 0

LLMAR “LETRA H”

LLAMAR ESPACIO

1 = A3

0 = A3

LLAMAR TIEMPO 30 mS

LLAMAR TIEMPO 30 mS

PUERTO B COMO IN/OUT DIGITAL

LLMAR “LETRA O”

LLAMAR ESPACIO

LLMAR “LETRA L”

LLAMAR ESPACIO

LLMAR “LETRA A”

LLAMAR ESPACIO

Page 6: Manejo de Lcd-128x64 Con Pic18f4550

Diagrama 2. Subrutina LETRA H.

Diagrama 3. Subrutina PRENDE_LCD.

PRENDE_LCD

1 = C7 SEG 1 OFF

RETORNAR

0 = C2 (E)

„00111111‟ = PORTB

LLAMAR TIEMPO 3mS

1 = C2 (E)

0 = C2 (E)

0 = C0 (RS)

0 = C6 SEG 1 ON

LETRA H

255 = W

LLAMAR DATO

16 = W

= W

LLAMAR DATO

16 = W

LLAMAR DATO

16 = W

LLAMAR DATO

16 = W

LLAMAR DATO

16 = W

LLAMAR DATO

16 = W

LLAMAR DATO

16 = W

LLAMAR DATO

255 = W

LLAMAR DATO

RETORNAR

Page 7: Manejo de Lcd-128x64 Con Pic18f4550

Diagrama 4. Subrutina PÁGINA_0

Diagrama 5. Subrutina DIRECCIÓN_0

Diagrama 6. Subrutina LÍNEA_0

Diagrama 6. Subrutina DATO.

LÍNEA 0

RETORNAR

0 = C2 (E)

„11000000‟ = PORTB

LLAMAR TIEMPO 3mS

1 = C2 (E)

0 = C2 (E)

0 = C0 (RS)

DIRECCIÓN 0

RETORNAR

0 = C2 (E)

„01000000‟ = PORTB

LLAMAR TIEMPO 3mS

1 = C2 (E)

0 = C2 (E)

0 = C0 (RS)

PAGINA 0

RETORNAR

0 = C2 (E)

„10111000‟ = PORTB

LLAMAR TIEMPO 3mS

1 = C2 (E)

0 = C2 (E)

0 = C0 (RS)

Page 8: Manejo de Lcd-128x64 Con Pic18f4550

Paso 4. El programa es el siguiente,

Favor seguir los diagramas de flujo…..

Paso 5. Programar el microcontrolador, armar el circuito y probar. En este paso hay que

tener cuidado cuando se este cableando en el protoboard, para ello hay que saber la

distribución del microcontrolador (ver figura 1), y la distribución de pines de la LCD (ver

tabla 19).

Paso 6. Si hay que hacer correcciones, hacerlas y volver al paso tres.

DATO

1 = C2 (RS)

RETORNAR

1 = C0 (E)

W = PORTB

0 = C0 (E)

TIEMPO 80 µS

1 = C0 (E)