Manejo de Lcd-128x64 Con Pic18f4550
-
Upload
juan-david-ortiz -
Category
Documents
-
view
909 -
download
8
Transcript of 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
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.
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
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.
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
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
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)
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)