Vous êtes sur la page 1sur 20

MANEJO Y USO DE PANTALLAS GLCD Y TECLADO MATRICIAL

Esta LCD grafica es monocromtica y de 128 x 64 pixeles, la GLCD tiene un funcionamiento diferente a las LCD alfanumricas, estas ltimas poseen internamente predefinidos todos los caracteres alfanumricos, y por medio de su cdigo ASCII se logran visualizar, por el contrario en una GLCD lo que se tiene es una matriz de 128 x 64 puntos y el usuario define la imagen a visualizar, por medio de los datos obtenidos del diseo de dicha imagen.

La distribucin de pines y los puertos utilizados por la librera GLCD.C es la siguiente:


PIN1: GND PIN2: VCC (5V) PIN3: V0 (Voltaje de Ajuste) PIN4: D/I (Control Datos o Instrucciones) PIN5: R/W (lectura o Escritura) PIN6: E (Habilitacin de la GLCD) PIN7 PIN14: Bus de Datos PIN15: CS1 (Chip Select 1) PIN16: CS2 (Chip Select 2) PIN17: RST (Reset) PIN18: VEE (Voltaje Negativo para el Ajuste de Contraste) PIN19: A (nodo de la luz de fondo) PIN20: K (Ctodo de la luz de fondo)

La librera utilizada para el manejo de la LCD grfica es la GLCD.C, dicha librera posee las siguientes funciones:

GLCD_INIT (ON)
Inicializa la GLCD

Dibuja una lnea entre la coordenada X1 , Y1 y la coordenada X2 , Y2 con un color determinado, si color = ON lo dibuja en negro y si color = OFF lo dibuja en blanco, tambin se pueden utilizar el 1 y el 0 respectivamente.

GLCD_LINE ( X1 , Y1 , X2 , Y2 , COLOR)

GLCD_PIXEL (X , Y , COLOR)
Dibuja un pixel en la coordenada X , Y de un color determinado (Blanco o Negro)

GLCD_RECT ( X1 , Y1 , X2 , Y2 , FILL , COLOR)


Dibuja un rectngulo con vrtices entre la coordenada X1 , Y1 y la coordenada X2 , Y2 , con un color determinado, adems tiene la funcin FILL que me indica, si se quiere el rectngulo relleno o solo de desea el contorno del rectngulo, puede ser YES para que sea relleno o NO para que sea el contorno, de igual forma se puede utilizar el 1 y el 0 respectivamente.

GLCD_BAR ( X1 , Y1 , X2 , Y2 , WIDTH , COLOR)


Dibuja una barra entre la coordenada X1 , Y1 y la coordenada X2 , Y2, con un color determinado, adems tiene la funcin WIDTH que me indica el ancho de la barra en pixeles, hay que tener en cuenta que las coordenadas son el centro de la barra y esta tiene la propiedad que siempre es rellena y tambin se puede dibujar en diagonal.

GLCD_CIRCLE ( X , Y , Radio , FILL , COLOR)


Dibuja un circulo con centro en la coordenada X , Y de un radio determinado, dado en pixeles, la funcin FILL me determina si el circulo es relleno o nicamente el contorno y el color conserva las mismas propiedades de las funciones anteriores.

GLCD_FILLSCREEN (COLOR)
Dibuja toda la pantalla de un color determinado, ON de negro y OFF de blanco.

GLCD_TEXT57 (X , Y , TEXT, SIZE , COLOR)


Escribe texto iniciando en la posicin X , Y con un tamao predeterminado de 5 x 7 pixeles, el cual se puede ampliar con la funcin size donde 1 es el tamao predeterminado, 2 es el doble, 3 el triple. Hay que tener en cuenta que la funcin TEXT debe ir asignada a un vector tipo char. Ejemplo: CHAR MENSAJE [ 4 ] = HOLA GLCD_TEXT57(2 , 2 , MENSAJE , 1 , 1);

Puesto que en esta LCD se pueden dibujar diferentes graficas, tambin se logra pasar imgenes jpg; hay que tener en cuenta que primero hay que pasarla a pixeles y de esto se obtiene una tabla con todos los valores de la imagen, para este trabajo existen muchos programas, uno de los ms utilizados es el Bitmap2LCD, el cual me acepta una imagen y me la convierte a una tabla de datos que simplemente pegamos en el cdigo. Despus de tener la tabla de datos, se necesita un cdigo para tomar dato por dato y visualizar todos los pixeles.

Mostrar en un GLCD el siguiente grafico.


LCD1
LGM12641BS1R

U1
13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 CS1 CS2 DI

RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A

RST

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 RST E RW DI

DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7

CS2 CS1

18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

-Vout RST DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 E R/W DI V0 VCC GND CS2 CS1

RW E

Mostrar en un GLCD el siguiente grafico.


LCD1
LGM12641BS1R

U1
13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 CS1 CS2 DI

RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A

RST

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 RST E RW DI

DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7

CS2 CS1

18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

-Vout RST DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 E R/W DI V0 VCC GND CS2 CS1

RW E

Mostrar en un GLCD el estado de 6 pulsadores, de modo grafico.


RP1
1 2 3 4 5 6 7 8 9 RESPACK-8

LCD1
LGM12641BS1R

U1
13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 CS1 CS2 DI RW E

RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A

RST

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 RST E RW DI

DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7

CS2 CS1

18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

-Vout RST DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 E R/W DI V0 VCC GND CS2 CS1

Un teclado matricial es un simple arreglo de botones en filas y columnas, de modo que se pueden leer varios botones con el mnimo numero de pines requeridos.

El compilador C incluye la librera kbd.c para manejar el teclado 4x3.

Si se quiere manejar teclados 4x4 debe considerarse la librera kbd4x4.c

Las funciones que se incorporan son las siguientes:


kbd_init();

inicializa el teclado, debe ser la primera funcin a ser llamada.


kbd_getc ();

devuelve el valor de la tecla pulsada en funcin a la tabla que se tiene programada.


#define_use_portb_kbd true

con esto definimos usar el Puerto B.

Realizar un rastreo bsico de las teclas de un teclado matricial de 4x4 y mostrar el dato en un LCD.

1 4
U1
13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 RS RW E D4 D5 D6 D7 C3 C2 C1 C0 F3 F2 F1 F0

2 5 8 0

3 6 9

2ND
I

RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A

Clear

HELP
J

ENTER

C3 C2 C1 C0 F3 F2 F1 F0

1 2 3 4 5 6 7 8 9

1 2 3 4 A B C D S

LCD1
LM016L

VSS VDD VEE

RS RW E 4 5 6 RS RW E

1 2 3

D4 D5 D6 D7

7 8 9 10 11 12 13 14

D0 D1 D2 D3 D4 D5 D6 D7

Vous aimerez peut-être aussi