You are on page 1of 20

MANEJO Y USO DE PANTALLAS GLCD Y TECLADO MATRICIAL

estas últimas poseen internamente predefinidos todos los caracteres alfanuméricos. por medio de los datos obtenidos del diseño de dicha imagen. . la GLCD tiene un funcionamiento diferente a las LCD alfanuméricas. 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.Esta LCD grafica es monocromática y de 128 x 64 pixeles. y por medio de su código ASCII se logran visualizar.

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 (Habilitación 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 (Cátodo de la luz de fondo) .La distribución de pines y los puertos utilizados por la librería GLCD.

La librería utilizada para el manejo de la LCD gráfica es la GLCD.C. COLOR) . Y1 y la coordenada X2 . dicha librería posee las siguientes funciones:  GLCD_INIT (ON) Inicializa la GLCD  Dibuja una línea entre la coordenada X1 . X2 . también se pueden utilizar el 1 y el 0 respectivamente. Y2 con un color determinado. Y1 . GLCD_LINE ( X1 . si color = ON lo dibuja en negro y si color = OFF lo dibuja en blanco. Y2 .

Y1 . COLOR) Dibuja un rectángulo con vértices entre la coordenada X1 . de igual forma se puede utilizar el 1 y el 0 respectivamente. si se quiere el rectángulo relleno o solo de desea el contorno del rectángulo. X2 . Y2 . GLCD_PIXEL (X . Y1 y la coordenada X2 . Y . con un color determinado. Y de un color determinado (Blanco o Negro)  GLCD_RECT ( X1 . Y2 . COLOR) Dibuja un pixel en la coordenada X . . además tiene la función FILL que me indica. FILL . puede ser YES para que sea relleno o NO para que sea el contorno.

WIDTH . con un color determinado. Y1 . Y2. COLOR) Dibuja una barra entre la coordenada X1 . GLCD_BAR ( X1 . además tiene la función WIDTH que me indica el ancho de la barra en pixeles. Y1 y la coordenada X2 . X2 . . Y2 . hay que tener en cuenta que las coordenadas son el centro de la barra y esta tiene la propiedad que siempre es rellena y también se puede dibujar en diagonal.

 GLCD_FILLSCREEN (COLOR) Dibuja toda la pantalla de un color determinado. ON de negro y OFF de blanco. Y de un radio determinado. GLCD_CIRCLE ( X . Y . . Radio . la función FILL me determina si el circulo es relleno o únicamente el contorno y el color conserva las mismas propiedades de las funciones anteriores. dado en pixeles. FILL . COLOR) Dibuja un circulo con centro en la coordenada X .

el cual se puede ampliar con la función size donde 1 es el tamaño predeterminado. 2 es el doble. 1 . TEXT. COLOR) Escribe texto iniciando en la posición X . 1). GLCD_TEXT57 (X . MENSAJE . SIZE . Y . . Y con un tamaño predeterminado de 5 x 7 pixeles. 3 el triple. Hay que tener en cuenta que la función TEXT debe ir asignada a un vector tipo char. 2 . Ejemplo: CHAR MENSAJE [ 4 ] = ‘’HOLA’’ GLCD_TEXT57(2 .

para este trabajo existen muchos programas. 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. Después de tener la tabla de datos. se necesita un código para tomar dato por dato y visualizar todos los pixeles. uno de los más utilizados es el Bitmap2LCD. el cual me acepta una imagen y me la convierte a una tabla de datos que simplemente pegamos en el código. .Puesto que en esta LCD se pueden dibujar diferentes graficas. también se logra pasar imágenes jpg.

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 siguiente grafico.

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

.

.

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

El compilador C incluye la librería kbd. Si se quiere manejar teclados 4x4 debe considerarse la librería kbd4x4.c para manejar el teclado 4x3.c .

Las funciones que se incorporan son las siguientes:  kbd_init(). .  #define_use_portb_kbd true con esto definimos usar el Puerto B. debe ser la primera función a ser llamada. devuelve el valor de la tecla pulsada en función a la tabla que se tiene programada.  kbd_getc (). inicializa el teclado.

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 A 2 5 8 0 B 3 6 9 C D E F 7 2ND I G H 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 . Realizar un rastreo básico de las teclas de un teclado matricial de 4x4 y mostrar el dato en un LCD.