Sei sulla pagina 1di 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

PIC18F4550.

quede prendiendo y pagado un led.

Usando el

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.

0

Segmento 1

63

64

Segmento 2

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

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

Pin

Símbolo

Función

1

V

SS

0

V

2

V

DD

5

V

3

V

O

Ajuste de Contraste

4

RS/DI

Selector de modo

5

 

Selector

6

E

Enable

7

DB 0

Línea de datos D 0

8

DB 1

Línea de datos D 1

9

DB 2

Línea de datos D 2

10

DB 3

Línea de datos D 3

11

DB 4

Línea de datos D 4

12

DB 5

Línea de datos D 5

13

DB 6

Línea de datos D 6

14

DB 7

Línea de datos D 7

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 128X64 2 .

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 otras 3 . (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

visualizar 4 . (RS = 1 y

10 nS.

= 0). Una operación de este modo tarda un máximo de

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

2 www.datasheetcatalog.com

3 PENDIENTE.

4 PENDIENTE.

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

controlar la LCD.

Función

RS

 

DB 7

DB 6

DB 5

DB 4

DB 3

 

DB 2

DB 1

DB 0

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

0

0

0

1

 

0

a 63

 

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 128x64 5 .

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 D 7 .

apreciar todo esto. El led se puede colocar en D 7 . Figura 2. Diagrama de

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

5 www.datasheetcatalog.com

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.

Linea Port B B B B B B B B B

0

1

2

3

4

5

6

7

 

C1

C2

C3

C4

C5

C6

C7

C8

F1

1

0

0

0

0

0

0

1

F2

1

0

0

0

0

0

0

1

F3

1

0

0

0

0

0

0

1

F4

1

0

0

0

0

0

0

1

F5

1

1

1

1

1

1

1

1

F6

1

0

0

0

0

0

0

1

F7

1

0

0

0

0

0

0

1

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.

Diagrama 1. Programa manejo LCD 128x64. INICIO Definición del Microcontrolador Registros de Propósito General
Diagrama 1. Programa manejo LCD 128x64.
INICIO
Definición del Microcontrolador
Registros de Propósito General
PROGRAMAR PUERTOS DE SALIDA
CONFIGURA OSCILADOR A 4 MHZ
PUERTO B COMO IN/OUT DIGITAL
LLAMAR TIEMPO 100 mS
LLAMAR
PRENDE_LCD
LLAMAR
PAGINA 0

LLAMAR

DIRECCIÓN 0

LLAMAR PRENDE_LCD LLAMAR PAGINA 0 LLAMAR DIRECCIÓN 0 LLAMAR LÍNEA 0 LLMAR “LETRA H” LLAMAR ESPACIO

LLAMAR

LÍNEA 0

LLAMAR PAGINA 0 LLAMAR DIRECCIÓN 0 LLAMAR LÍNEA 0 LLMAR “LETRA H” LLAMAR ESPACIO LLMAR “LETRA

LLMAR “LETRA H”

LLAMAR DIRECCIÓN 0 LLAMAR LÍNEA 0 LLMAR “LETRA H” LLAMAR ESPACIO LLMAR “LETRA O” LLAMAR ESPACIO

LLAMAR ESPACIO

LLMAR “LETRA O”

LLAMAR ESPACIO

LLMAR “LETRA L”

LLAMAR ESPACIO

LLMAR “LETRA A”

LLMAR “LETRA L” LLAMAR ESPACIO LLMAR “LETRA A” LLAMAR ESPACIO = A3 1 0 LLAMAR TIEMPO

LLAMAR ESPACIO

= A3

1 0

1

0

LLAMAR TIEMPO 30 mS

= A3

LLAMAR TIEMPO 30 mS

Diagrama 2. Subrutina LETRA H.

LETRA H 255 = W LLAMAR DATO
LETRA H
255 = W
LLAMAR
DATO

16 = W

2. Subrutina LETRA H. LETRA H 255 = W LLAMAR DATO 16 = W LLAMAR DATO

LLAMAR

DATO

LETRA H. LETRA H 255 = W LLAMAR DATO 16 = W LLAMAR DATO 16 =

16 = W

LETRA H 255 = W LLAMAR DATO 16 = W LLAMAR DATO 16 = W LLAMAR

LLAMAR DATO

16

= W

LLAMAR DATO

16

LLAMAR DATO

16 = W

= W LLAMAR DATO 16 = W LLAMAR DATO 16 LLAMAR DATO 16 = W LLAMAR

LLAMAR DATO

16 = W

= W LLAMAR DATO 16 LLAMAR DATO 16 = W LLAMAR DATO 16 = W LLAMAR

LLAMAR DATO

16 = W

16 LLAMAR DATO 16 = W LLAMAR DATO 16 = W LLAMAR DATO 16 = W

LLAMAR DATO

255 = W

W LLAMAR DATO 16 = W LLAMAR DATO 16 = W LLAMAR DATO 255 = W

LLAMAR DATO

RETORNAR

Diagrama 3. Subrutina PRENDE_LCD.

PRENDE LCD 0 = C6 SEG 1 ON 1 = C7 SEG 1 OFF 0
PRENDE LCD
0 = C6 SEG 1 ON
1 = C7 SEG 1 OFF
0 = C2 (E)
0 = C0 (RS)

„00111111‟ = PORTB

1 = C7 SEG 1 OFF 0 = C2 (E) 0 = C0 (RS) „00111 111

LLAMAR TIEMPO 3mS

1 = C7 SEG 1 OFF 0 = C2 (E) 0 = C0 (RS) „00111 111

1

= C2 (E)

1 = C7 SEG 1 OFF 0 = C2 (E) 0 = C0 (RS) „00111 111

0

= C2 (E)

1 = C7 SEG 1 OFF 0 = C2 (E) 0 = C0 (RS) „00111 111

RETORNAR

Diagrama 4. Subrutina PÁGINA_0

PAGINA 0Diagrama 4. Subrutina PÁGINA_0 0 = C2 (E) 0 = C0 (RS) „10111000‟ = PORTB LLAMAR

0 = C2 (E)

Diagrama 4. Subrutina PÁGINA_0 PAGINA 0 0 = C2 (E) 0 = C0 (RS) „10111000‟ =

0 = C0 (RS)

4. Subrutina PÁGINA_0 PAGINA 0 0 = C2 (E) 0 = C0 (RS) „10111000‟ = PORTB

„10111000‟ = PORTB

PAGINA 0 0 = C2 (E) 0 = C0 (RS) „10111000‟ = PORTB LLAMAR TIEMPO 3mS

LLAMAR TIEMPO 3mS

C2 (E) 0 = C0 (RS) „10111000‟ = PORTB LLAMAR TIEMPO 3mS 1 = C2 (E)

1 = C2 (E)

C0 (RS) „10111000‟ = PORTB LLAMAR TIEMPO 3mS 1 = C2 (E) 0 = C2 (E)

0 = C2 (E)

= PORTB LLAMAR TIEMPO 3mS 1 = C2 (E) 0 = C2 (E) RETORNAR Diagrama 5.

RETORNAR

Diagrama 5. Subrutina DIRECCIÓN_0

DIRECCIÓN 0(E) 0 = C2 (E) RETORNAR Diagrama 5. Subrutina DIRECCIÓN_0 0 = C2 (E) 0 =

0 = C2 (E)

Diagrama 5. Subrutina DIRECCIÓN_0 DIRECCIÓN 0 0 = C2 (E) 0 = C0 (RS) „01000000‟ =

0 = C0 (RS)

Subrutina DIRECCIÓN_0 DIRECCIÓN 0 0 = C2 (E) 0 = C0 (RS) „01000000‟ = PORTB LLAMAR

„01000000‟ = PORTB

DIRECCIÓN 0 0 = C2 (E) 0 = C0 (RS) „01000000‟ = PORTB LLAMAR TIEMPO 3mS

LLAMAR TIEMPO 3mS

C2 (E) 0 = C0 (RS) „01000000‟ = PORTB LLAMAR TIEMPO 3mS 1 = C2 (E)

1

= C2 (E)

(RS) „01000000‟ = PORTB LLAMAR TIEMPO 3mS 1 = C2 (E) 0 = C2 (E) RETORNAR

0

= C2 (E)

= PORTB LLAMAR TIEMPO 3mS 1 = C2 (E) 0 = C2 (E) RETORNAR Diagrama 6.

RETORNAR

Diagrama 6. Subrutina LÍNEA_0 LÍNEA 0 0 = C2 (E) 0 = C0 (RS)
Diagrama 6. Subrutina LÍNEA_0
LÍNEA 0
0 = C2 (E)
0 = C0 (RS)

„11000000‟ = PORTB

LÍNEA 0 0 = C2 (E) 0 = C0 (RS) „11000000‟ = PORTB LLAMAR TIEMPO 3mS

LLAMAR TIEMPO 3mS

C2 (E) 0 = C0 (RS) „11000000‟ = PORTB LLAMAR TIEMPO 3mS 1 = C2 (E)

1

= C2 (E)

(E) 0 = C0 (RS) „11000000‟ = PORTB LLAMAR TIEMPO 3mS 1 = C2 (E) 0

0

= C2 (E)

(E) 0 = C0 (RS) „11000000‟ = PORTB LLAMAR TIEMPO 3mS 1 = C2 (E) 0

RETORNAR

Diagrama 6. Subrutina DATO.

DATO 1 = C2 (RS) 1 = C0 (E) W = PORTB TIEMPO 80 µS
DATO
1 = C2 (RS)
1 = C0 (E)
W = PORTB
TIEMPO 80 µS
1
= C0 (E)
0
= C0 (E)
RETORNAR

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.