SlideShare una empresa de Scribd logo
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M07 MICROCONTROLADORES II
Laboratorio: D-19
Duración: 3 Hs DISPLAY CONTROL
3.7. GLCD - Display de Cristal Liquido Gráfico
Objetivos
1. Configurar el ATMEGA128 para controlar un GLCD.
3.7.1. Esquemático
PE0/RXD0/PDI 2
PE1/TXD0/PDO 3
PE2/XCK0/AIN0 4
PE3/OC3A/AIN1 5
PE4/OC3B/INT4 6
PE5/OC3C/INT5 7
PE6/T3/INT6 8
PE7/ICP3/INT7 9
PB0/SS10
PB1/SCK11
PB2/MOSI12
PB3/MISO13
PB4/OC014
PB5/OC1A15
PB6/OC1B16
PB7/OC2/OC1C17
PG3/TOSC2 18
PG4/TOSC1 19
RESET20
XTAL223
XTAL124
PD0/SCL/INT0 25
PD1/SDA/INT1 26
PD2/RXD1/INT2 27
PD3/TXD1/INT3 28
PD4/ICP1 29
PD5/XCK1 30
PD6/T1 31
PD7/T2 32
PG0/WR 33
PG1/RD 34
PC0/A835
PC1/A936
PC2/A1037
PC3/A1138
PC4/A1239
PC5/A1340
PC6/A1441
PC7/A1542
PG2/ALE 43
PA7/AD744
PA6/AD645
PA5/AD546
PA4/AD447
PA3/AD348
PA2/AD249
PA1/AD150
PA0/AD051
PF7/ADC7/TDI 54
PF6/ADC6/TDO 55
PF5/ADC5/TMS 56
PF4/ADC4/TCK 57
PF3/ADC3 58
PF2/ADC2 59
PF1/ADC1 60
PF0/ADC0 61
AREF62
AVCC64 PEN 1
ATMEGA128
CS11
CS22
GND3
VCC4
V05
RS6
R/W7
E8
DB09
DB110
DB211
DB312
DB413
DB514
DB615
DB716
RST17
-Vout18
LCD1
AMPIRE128X64
Figura 3.1: Pantalla LCD
Observaciones:
En el Puerto B están conectados las lineas de Control del GLCD.
En el Puerto C están conectados las lineas de Datos del GLCD.
El GLCD que utilizaremos tiene 128x64 pixeles.
Pedro Ramírez <pedroramirez22@gmail.com> 1
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M07 MICROCONTROLADORES II
Laboratorio: D-19
Duración: 3 Hs DISPLAY CONTROL
3.7.2. Librería
Descargar carpeta de la librería GLCD del Dropbox y copiar los archivos dentro de la
ruta del Proyecto creado con el ATMEL STUDIO.
ks0108.h - Tiene las configuraciones de los Puertos.
//PUERTO DE CONTROL (J734)
#define LCD_CMD_PORT PORTB // Command Output Register
#define LCD_CMD_DIR DDRB // Data Direction Register for Command Port
//PUERTO DE DATOS (J731)
#define LCD_DATA_IN PINC // Data Input Register
#define LCD_DATA_OUT PORTC // Data Output Register
#define LCD_DATA_DIR DDRC // Data Direction Register for Data Port
ks0108.c - Tiene todas las funciones de las librería
1. void ks0108Init(uint8_t invert)
Inicializa el GLCD Inicializa el GLCD y el background.
a) invert - Activa o desactiva los pixeles del fondo del GLCD.
0 - disable
1 - enable
2. void ks0108SelectFont(const char* font, ks0108FontCallback callback,
uint8_t color)
Selecciona la fuente a utilizar.
a) font Selecciona la fuente a mostrar.
Arial_Bold_14
Corsiva_12
b) callback La acción a realizar.
ks0108ReadFontData
c) color El color de las letras a mostrar.
WHITE
BLACK
Pedro Ramírez <pedroramirez22@gmail.com> 2
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M07 MICROCONTROLADORES II
Laboratorio: D-19
Duración: 3 Hs DISPLAY CONTROL
3. void ks0108GotoXY(uint8_t x, uint8_t y)
Posiciona el cursor en la coordenada indicada.
a) x - Valor en x (horizontal hasta 127) desde la parte superior izquierda.
b) y - Valor en y (vertical hasta 63) desde la parte superior izquierda.
4. int ks0108PutChar(char c)
Muestra un char en pantalla. Retorna 1 si hubo error, 0 caso contrario.
a) c Valor ASCII a mostrar.
5. void ks0108Puts_P(PGM_P str)
Muestra un texto estático en la Pantalla (entre comillas).
a) str una cadena de texto que se desea mostrar del tipo PGM_P.
6. void ks0108Puts(char* str)
Muestra un texto dinámico en la Pantalla (buffer).
a) str una cadena de texto que se desea mostrar del tipo char.
7. void ks0108SetDot(uint8_t x, uint8_t y, uint8_t color)
Dibuja un punto en la pantalla.
a) x Valor en x (horizontal hasta 127) contando desde la parte superior izquierda.
b) y Valor en y (vertical hasta 63) contando desde la parte superior izquierda.
c) color color a mostrar (BLACK/WHITE dependiendo del background)
8. void ks0108DrawLine(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2,
uint8_t color)
Dibuja una linea recta.
a) x1 posición x inicial.
b) y1 posición y inicial.
c) x2 posición x final.
d) y2 posición y final.
e) color color a mostrar (BLACK/WHITE dependiendo del background).
9. void ks0108DrawRect(uint8_t x, uint8_t y, uint8_t width, uint8_t
height, uint8_t color)
Dibuja un rectángulo con bordes rectos.
a) x posición en (hasta 127) vértice superior izquierdo del rectángulo.
b) y posición en (hasta 63) vértice superior izquierdo del rectángulo.
Pedro Ramírez <pedroramirez22@gmail.com> 3
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M07 MICROCONTROLADORES II
Laboratorio: D-19
Duración: 3 Hs DISPLAY CONTROL
c) width ancho del rectángulo. (eje x)
d) height altura del rectángulo. (eje y)
e) color color a mostrar (BLACK/WHITE dependiendo del background)
10. void ks0108DrawRoundRect(uint8_t x, uint8_t y, uint8_t width, uint8_t
height, uint8_t radius, uint8_t color)
Dibuja un rectángulo con bordes redondeados.
a) x posición en (hasta 127) vértice superior izquierdo del rectángulo.
b) y posición en (hasta 63) vértice superior izquierdo del rectángulo.
c) width ancho del rectángulo. (eje x)
d) height altura del rectángulo. (eje y)
e) radius radio de los bordes. (pixeles que toma para hacer el borde)
f ) color color a mostrar (BLACK/WHITE dependiendo del background)
Pedro Ramírez <pedroramirez22@gmail.com> 4
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M07 MICROCONTROLADORES II
Laboratorio: D-19
Duración: 3 Hs DISPLAY CONTROL
3.8. Uso 1- Texto y Rectangulo
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <math.h>
#include "ks0108.h"
#include "ks0108.c"
#include "arial_bold_14.h"
#include "corsiva_12.h"
int main(void) {
_delay_ms(1000); //Esperar el inicio del GLCD
ks0108Init(0); // Initialize the LCD
//Seleccionar una fuente
ks0108SelectFont(Arial_Bold_14, ks0108ReadFontData, BLACK);
ks0108GotoXY(15,10);//Ir a la posicion
ks0108Puts_P(PSTR("MECATRONICA"));//Imprimir algun texto
ks0108DrawRoundRect(5, 5, 117, 20, 8, BLACK);//un lindo rectangulo
//Seleccionar una fuente
ks0108SelectFont(Corsiva_12, ks0108ReadFontData, BLACK);
ks0108GotoXY(5,30);//Ir a la posicion
//Imprimir algun texto
ks0108Puts_P(PSTR(" Centro Tecnologico n de Avanzada"));
while(1);//LOOP INFINITO
}
Pedro Ramírez <pedroramirez22@gmail.com> 5
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M07 MICROCONTROLADORES II
Laboratorio: D-19
Duración: 3 Hs DISPLAY CONTROL
3.8.1. Uso 2 - Grafica señal Senoidal
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <math.h>
#include "ks0108.h"
#include "ks0108.c"
int main(void) {
int x,y;
//Esperar el inicio del GLCD
_delay_ms(1000);
// Initialize the LCD
ks0108Init(0);
for (x=0;x<128;x++)
{
//en x=128 tenemos wt=2PI
y = (int)32*sin(2*M_PI/128*x)+32;
ks0108SetDot(x, y, BLACK);
}
while(1);//LOOP INFINITO
}
Pedro Ramírez <pedroramirez22@gmail.com> 6
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M07 MICROCONTROLADORES II
Laboratorio: D-19
Duración: 3 Hs DISPLAY CONTROL
3.8.2. Práctica
1. Interpretar el siguiente código, cargarlo en el Proteus y probarlo. Explicar que
realiza.
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <string.h>
#include <stdlib.h>
#include "ks0108.h"
#include "ks0108.c"
#include "arial_bold_14.h"
#include "corsiva_12.h"
int main(void) {
unsigned char count;
char buffer[5];
//Esperar el inicio del GLCD
_delay_ms(1000);
// Initialize the LCD
ks0108Init(0);
//Seleccionar una fuente
ks0108SelectFont(Arial_Bold_14, ks0108ReadFontData, BLACK);
//Ir a la poscion
ks0108GotoXY(0,0);
//Imprimir algun texto
ks0108Puts_P(PSTR("VALOR="));
while(1)//LOOP INFINITO
{
for (count=0; count < 15; count++)
{
ks0108GotoXY(60,0);//se posiciona
itoa(count,buffer,10);//convierte int a string
ks0108Puts(buffer);//imprime el valor
_delay_ms(1000);//espera
}
ks0108GotoXY(60,0);//se posiciona
ks0108Puts_P(PSTR(" "));;//borra las cifras
}
}
2. Realizar el código necesario para que en el GLCD muestre un contador de 0 a 999
Pedro Ramírez <pedroramirez22@gmail.com> 7
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M07 MICROCONTROLADORES II
Laboratorio: D-19
Duración: 3 Hs DISPLAY CONTROL
3. Realizar el código necesario para que en el GLCD muestre la cadena de texto Soy
un Mario centrado en la pantalla.
4. Realizar el código necesario para que en el GLCD muestre la cadena de texto Linea
12-1 en la primera fila, Terminal en la segunda fila y Diferencial en la tercera.
5. Realizar el código necesario para que en el GLCD muestre un cuadrado y un triángulo.
6. Realizar el código necesario para que en el GLCD muestre un circulo (x2 + y2 = r2).
7. Realizar el código necesario para que en el GLCD muestre un dos periodos de una
señal senoidal.
8. Realizar el código necesario para que en el GLCD muestre una cara feliz :].
9. Descargar de la carpeta Librerías del Dropbox el programa BMP_GLCD.exe y el
archivo de imagen snpp.bmp1. Generar el mapa de bits para el GLCD 128x64 con el
programa anterior, Luego realizar el código necesario para mostrar el mapa de bits
generado en el GLCD.
3.8.3. Conclusión
1
La imagen tiene que ser guardada en Paint como BMP monocromático.
Pedro Ramírez <pedroramirez22@gmail.com> 8

Más contenido relacionado

DOC
Micc final feb14_2009_soluc
DOCX
Leccion3 y4 agosto25_2011solucion
DOC
Micc final sep02_2010 solucion
DOCX
Mecatronica
PPT
Programación grafica en lenguaje c
DOC
Micc mejoramiento feb_28_2009_soluc
DOC
Micc mej feb18_2010_solucion
DOCX
Micc mej sept16_2010
Micc final feb14_2009_soluc
Leccion3 y4 agosto25_2011solucion
Micc final sep02_2010 solucion
Mecatronica
Programación grafica en lenguaje c
Micc mejoramiento feb_28_2009_soluc
Micc mej feb18_2010_solucion
Micc mej sept16_2010

La actualidad más candente (15)

PDF
Codigo distancia
DOC
Micc mej feb18_2010
DOCX
Leccion3 y4
DOCX
Parcial t1 2011 sol
DOCX
Parcial 2 tdic10_2010
PDF
Transacción
PDF
Adquisición de la señal de un sensor imu
DOCX
Micc final feb03_2011_solucion
DOCX
Micp mejoramiento-sept2011solucion
DOCX
Codigo adc
DOCX
Parcial t1 2010 sol
DOCX
Nueva secuencia
DOC
Parcial dic 13 t2 2008 sol
PPTX
80 vs now (3)
PDF
Intro opengl
Codigo distancia
Micc mej feb18_2010
Leccion3 y4
Parcial t1 2011 sol
Parcial 2 tdic10_2010
Transacción
Adquisición de la señal de un sensor imu
Micc final feb03_2011_solucion
Micp mejoramiento-sept2011solucion
Codigo adc
Parcial t1 2010 sol
Nueva secuencia
Parcial dic 13 t2 2008 sol
80 vs now (3)
Intro opengl
Publicidad

Similar a 3.7 lcd grafico glcd (20)

PDF
3.6 texto lcd
DOC
Micc final feb04_2010_soluc
DOC
Micc final feb04_2010_soluc
PDF
Manejo de perifericos para microcontroladore
DOC
Micc final sept05_2009
DOC
Micc mej sept16_2010_solucion
DOC
Micc final feb14_2009
DOC
Micc final feb14_2009_soluc
DOC
Micc final sept05 2009 soluc
DOC
Micc final sept05 2009 soluc
DOC
Micc final sep02_2010 solucion
DOCX
Mej feb17 2011_solucion
DOCX
Examen final micros t1 2011
PDF
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, 1er Parcial (2020 PAO 2)
DOCX
Micc mejoramiento-sept2011-solucion
PPTX
Lenguaje ensamblador
PPTX
Unidad 2 ensamblador
DOCX
Introducción
PDF
Microcontroladores: mikroBasic para microcontroladores PIC
PDF
Actividad 2 laboratorio 1
3.6 texto lcd
Micc final feb04_2010_soluc
Micc final feb04_2010_soluc
Manejo de perifericos para microcontroladore
Micc final sept05_2009
Micc mej sept16_2010_solucion
Micc final feb14_2009
Micc final feb14_2009_soluc
Micc final sept05 2009 soluc
Micc final sept05 2009 soluc
Micc final sep02_2010 solucion
Mej feb17 2011_solucion
Examen final micros t1 2011
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, 1er Parcial (2020 PAO 2)
Micc mejoramiento-sept2011-solucion
Lenguaje ensamblador
Unidad 2 ensamblador
Introducción
Microcontroladores: mikroBasic para microcontroladores PIC
Actividad 2 laboratorio 1
Publicidad

Más de SNPP (20)

PDF
proyecto electrico 1 plano de una instalacion.pdf
PDF
proyecto electrico 2 plano de una instalacion.pdf
PDF
RR00X_RESUMEN.pdf
PDF
RR_TAYI.pdf
PDF
1. panel de le ds
PDF
7. incubadora de huevos
PDF
6. visualizacion remota de consumo de agua en tiempo real
PDF
5. alimentador de animales domesticos smart feeder
PDF
3. radar medidor de velocidad
PDF
2. soft starter monofasico
PDF
Operadores y expresiones
PDF
6.2 cadenas de caracteres
PDF
6.1 vectores
PDF
5.5 instruccion for
PDF
5.4 instruccion do-while
PDF
5.3 instruccion while
PDF
5.2 instruccion switch
PDF
5.1 instruccion if-else
PDF
4. entrada y salida de datos
PDF
3.6 funciones de biblioteca
proyecto electrico 1 plano de una instalacion.pdf
proyecto electrico 2 plano de una instalacion.pdf
RR00X_RESUMEN.pdf
RR_TAYI.pdf
1. panel de le ds
7. incubadora de huevos
6. visualizacion remota de consumo de agua en tiempo real
5. alimentador de animales domesticos smart feeder
3. radar medidor de velocidad
2. soft starter monofasico
Operadores y expresiones
6.2 cadenas de caracteres
6.1 vectores
5.5 instruccion for
5.4 instruccion do-while
5.3 instruccion while
5.2 instruccion switch
5.1 instruccion if-else
4. entrada y salida de datos
3.6 funciones de biblioteca

Último (20)

PPTX
Electronica II, material basico de electronica II
PDF
Clase 2 de abril Educacion adistancia.pdf
PPTX
TECNOLOGIA EN CONSTRUCCION PUBLICO Y PRIVADA
PPTX
TOPOGRAFÍA - INGENIERÍA CIVIL - PRESENTACIÓN
PPTX
DEBL Presentación PG 23.pptx [Autoguardado].pptx
PDF
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
PPT
357161027-seguridad-industrial-diapositivas-ppt.ppt
PDF
Repaso sobre el Gusano_cogollero y como ataca .pdf
PDF
Módulo V. Tema 2. Disruptive & Transformation 2024 v.0.4.pdf
PDF
Seguridad vial en carreteras mexico 2003.pdf
PPTX
ARQUITECTURA INTEGRAL EN OBRA, PRINCIPIOS BASICOS Y TERMINOS
PDF
Diseño y Utiliación del HVAC Aire Acondicionado
PDF
LIBRO UNIVERSITARIO DESARROLLO ORGANIZACIONAL BN.pdf
PPTX
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
PDF
Prevención de estrés laboral y Calidad de sueño - LA PROTECTORA.pdf
PDF
SESION 10 SEGURIDAD EN TRABAJOS CON ELECTRICIDAD.pdf
PDF
Matriz_Seguimiento_Estu_Consult_2024_ACT.pdf
PPTX
clase MICROCONTROLADORES ago-dic 2019.pptx
PPTX
Expo petroelo 2do ciclo.psssssssssssssptx
PDF
MANTENIMIENTO AIRE ACOINDICIOANDO S1_ELEC_MANT.pptx.pdf
Electronica II, material basico de electronica II
Clase 2 de abril Educacion adistancia.pdf
TECNOLOGIA EN CONSTRUCCION PUBLICO Y PRIVADA
TOPOGRAFÍA - INGENIERÍA CIVIL - PRESENTACIÓN
DEBL Presentación PG 23.pptx [Autoguardado].pptx
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
357161027-seguridad-industrial-diapositivas-ppt.ppt
Repaso sobre el Gusano_cogollero y como ataca .pdf
Módulo V. Tema 2. Disruptive & Transformation 2024 v.0.4.pdf
Seguridad vial en carreteras mexico 2003.pdf
ARQUITECTURA INTEGRAL EN OBRA, PRINCIPIOS BASICOS Y TERMINOS
Diseño y Utiliación del HVAC Aire Acondicionado
LIBRO UNIVERSITARIO DESARROLLO ORGANIZACIONAL BN.pdf
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
Prevención de estrés laboral y Calidad de sueño - LA PROTECTORA.pdf
SESION 10 SEGURIDAD EN TRABAJOS CON ELECTRICIDAD.pdf
Matriz_Seguimiento_Estu_Consult_2024_ACT.pdf
clase MICROCONTROLADORES ago-dic 2019.pptx
Expo petroelo 2do ciclo.psssssssssssssptx
MANTENIMIENTO AIRE ACOINDICIOANDO S1_ELEC_MANT.pptx.pdf

3.7 lcd grafico glcd

  • 1. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M07 MICROCONTROLADORES II Laboratorio: D-19 Duración: 3 Hs DISPLAY CONTROL 3.7. GLCD - Display de Cristal Liquido Gráfico Objetivos 1. Configurar el ATMEGA128 para controlar un GLCD. 3.7.1. Esquemático PE0/RXD0/PDI 2 PE1/TXD0/PDO 3 PE2/XCK0/AIN0 4 PE3/OC3A/AIN1 5 PE4/OC3B/INT4 6 PE5/OC3C/INT5 7 PE6/T3/INT6 8 PE7/ICP3/INT7 9 PB0/SS10 PB1/SCK11 PB2/MOSI12 PB3/MISO13 PB4/OC014 PB5/OC1A15 PB6/OC1B16 PB7/OC2/OC1C17 PG3/TOSC2 18 PG4/TOSC1 19 RESET20 XTAL223 XTAL124 PD0/SCL/INT0 25 PD1/SDA/INT1 26 PD2/RXD1/INT2 27 PD3/TXD1/INT3 28 PD4/ICP1 29 PD5/XCK1 30 PD6/T1 31 PD7/T2 32 PG0/WR 33 PG1/RD 34 PC0/A835 PC1/A936 PC2/A1037 PC3/A1138 PC4/A1239 PC5/A1340 PC6/A1441 PC7/A1542 PG2/ALE 43 PA7/AD744 PA6/AD645 PA5/AD546 PA4/AD447 PA3/AD348 PA2/AD249 PA1/AD150 PA0/AD051 PF7/ADC7/TDI 54 PF6/ADC6/TDO 55 PF5/ADC5/TMS 56 PF4/ADC4/TCK 57 PF3/ADC3 58 PF2/ADC2 59 PF1/ADC1 60 PF0/ADC0 61 AREF62 AVCC64 PEN 1 ATMEGA128 CS11 CS22 GND3 VCC4 V05 RS6 R/W7 E8 DB09 DB110 DB211 DB312 DB413 DB514 DB615 DB716 RST17 -Vout18 LCD1 AMPIRE128X64 Figura 3.1: Pantalla LCD Observaciones: En el Puerto B están conectados las lineas de Control del GLCD. En el Puerto C están conectados las lineas de Datos del GLCD. El GLCD que utilizaremos tiene 128x64 pixeles. Pedro Ramírez <pedroramirez22@gmail.com> 1
  • 2. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M07 MICROCONTROLADORES II Laboratorio: D-19 Duración: 3 Hs DISPLAY CONTROL 3.7.2. Librería Descargar carpeta de la librería GLCD del Dropbox y copiar los archivos dentro de la ruta del Proyecto creado con el ATMEL STUDIO. ks0108.h - Tiene las configuraciones de los Puertos. //PUERTO DE CONTROL (J734) #define LCD_CMD_PORT PORTB // Command Output Register #define LCD_CMD_DIR DDRB // Data Direction Register for Command Port //PUERTO DE DATOS (J731) #define LCD_DATA_IN PINC // Data Input Register #define LCD_DATA_OUT PORTC // Data Output Register #define LCD_DATA_DIR DDRC // Data Direction Register for Data Port ks0108.c - Tiene todas las funciones de las librería 1. void ks0108Init(uint8_t invert) Inicializa el GLCD Inicializa el GLCD y el background. a) invert - Activa o desactiva los pixeles del fondo del GLCD. 0 - disable 1 - enable 2. void ks0108SelectFont(const char* font, ks0108FontCallback callback, uint8_t color) Selecciona la fuente a utilizar. a) font Selecciona la fuente a mostrar. Arial_Bold_14 Corsiva_12 b) callback La acción a realizar. ks0108ReadFontData c) color El color de las letras a mostrar. WHITE BLACK Pedro Ramírez <pedroramirez22@gmail.com> 2
  • 3. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M07 MICROCONTROLADORES II Laboratorio: D-19 Duración: 3 Hs DISPLAY CONTROL 3. void ks0108GotoXY(uint8_t x, uint8_t y) Posiciona el cursor en la coordenada indicada. a) x - Valor en x (horizontal hasta 127) desde la parte superior izquierda. b) y - Valor en y (vertical hasta 63) desde la parte superior izquierda. 4. int ks0108PutChar(char c) Muestra un char en pantalla. Retorna 1 si hubo error, 0 caso contrario. a) c Valor ASCII a mostrar. 5. void ks0108Puts_P(PGM_P str) Muestra un texto estático en la Pantalla (entre comillas). a) str una cadena de texto que se desea mostrar del tipo PGM_P. 6. void ks0108Puts(char* str) Muestra un texto dinámico en la Pantalla (buffer). a) str una cadena de texto que se desea mostrar del tipo char. 7. void ks0108SetDot(uint8_t x, uint8_t y, uint8_t color) Dibuja un punto en la pantalla. a) x Valor en x (horizontal hasta 127) contando desde la parte superior izquierda. b) y Valor en y (vertical hasta 63) contando desde la parte superior izquierda. c) color color a mostrar (BLACK/WHITE dependiendo del background) 8. void ks0108DrawLine(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t color) Dibuja una linea recta. a) x1 posición x inicial. b) y1 posición y inicial. c) x2 posición x final. d) y2 posición y final. e) color color a mostrar (BLACK/WHITE dependiendo del background). 9. void ks0108DrawRect(uint8_t x, uint8_t y, uint8_t width, uint8_t height, uint8_t color) Dibuja un rectángulo con bordes rectos. a) x posición en (hasta 127) vértice superior izquierdo del rectángulo. b) y posición en (hasta 63) vértice superior izquierdo del rectángulo. Pedro Ramírez <pedroramirez22@gmail.com> 3
  • 4. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M07 MICROCONTROLADORES II Laboratorio: D-19 Duración: 3 Hs DISPLAY CONTROL c) width ancho del rectángulo. (eje x) d) height altura del rectángulo. (eje y) e) color color a mostrar (BLACK/WHITE dependiendo del background) 10. void ks0108DrawRoundRect(uint8_t x, uint8_t y, uint8_t width, uint8_t height, uint8_t radius, uint8_t color) Dibuja un rectángulo con bordes redondeados. a) x posición en (hasta 127) vértice superior izquierdo del rectángulo. b) y posición en (hasta 63) vértice superior izquierdo del rectángulo. c) width ancho del rectángulo. (eje x) d) height altura del rectángulo. (eje y) e) radius radio de los bordes. (pixeles que toma para hacer el borde) f ) color color a mostrar (BLACK/WHITE dependiendo del background) Pedro Ramírez <pedroramirez22@gmail.com> 4
  • 5. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M07 MICROCONTROLADORES II Laboratorio: D-19 Duración: 3 Hs DISPLAY CONTROL 3.8. Uso 1- Texto y Rectangulo #define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> #include <math.h> #include "ks0108.h" #include "ks0108.c" #include "arial_bold_14.h" #include "corsiva_12.h" int main(void) { _delay_ms(1000); //Esperar el inicio del GLCD ks0108Init(0); // Initialize the LCD //Seleccionar una fuente ks0108SelectFont(Arial_Bold_14, ks0108ReadFontData, BLACK); ks0108GotoXY(15,10);//Ir a la posicion ks0108Puts_P(PSTR("MECATRONICA"));//Imprimir algun texto ks0108DrawRoundRect(5, 5, 117, 20, 8, BLACK);//un lindo rectangulo //Seleccionar una fuente ks0108SelectFont(Corsiva_12, ks0108ReadFontData, BLACK); ks0108GotoXY(5,30);//Ir a la posicion //Imprimir algun texto ks0108Puts_P(PSTR(" Centro Tecnologico n de Avanzada")); while(1);//LOOP INFINITO } Pedro Ramírez <pedroramirez22@gmail.com> 5
  • 6. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M07 MICROCONTROLADORES II Laboratorio: D-19 Duración: 3 Hs DISPLAY CONTROL 3.8.1. Uso 2 - Grafica señal Senoidal #define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> #include <math.h> #include "ks0108.h" #include "ks0108.c" int main(void) { int x,y; //Esperar el inicio del GLCD _delay_ms(1000); // Initialize the LCD ks0108Init(0); for (x=0;x<128;x++) { //en x=128 tenemos wt=2PI y = (int)32*sin(2*M_PI/128*x)+32; ks0108SetDot(x, y, BLACK); } while(1);//LOOP INFINITO } Pedro Ramírez <pedroramirez22@gmail.com> 6
  • 7. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M07 MICROCONTROLADORES II Laboratorio: D-19 Duración: 3 Hs DISPLAY CONTROL 3.8.2. Práctica 1. Interpretar el siguiente código, cargarlo en el Proteus y probarlo. Explicar que realiza. #define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> #include <string.h> #include <stdlib.h> #include "ks0108.h" #include "ks0108.c" #include "arial_bold_14.h" #include "corsiva_12.h" int main(void) { unsigned char count; char buffer[5]; //Esperar el inicio del GLCD _delay_ms(1000); // Initialize the LCD ks0108Init(0); //Seleccionar una fuente ks0108SelectFont(Arial_Bold_14, ks0108ReadFontData, BLACK); //Ir a la poscion ks0108GotoXY(0,0); //Imprimir algun texto ks0108Puts_P(PSTR("VALOR=")); while(1)//LOOP INFINITO { for (count=0; count < 15; count++) { ks0108GotoXY(60,0);//se posiciona itoa(count,buffer,10);//convierte int a string ks0108Puts(buffer);//imprime el valor _delay_ms(1000);//espera } ks0108GotoXY(60,0);//se posiciona ks0108Puts_P(PSTR(" "));;//borra las cifras } } 2. Realizar el código necesario para que en el GLCD muestre un contador de 0 a 999 Pedro Ramírez <pedroramirez22@gmail.com> 7
  • 8. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M07 MICROCONTROLADORES II Laboratorio: D-19 Duración: 3 Hs DISPLAY CONTROL 3. Realizar el código necesario para que en el GLCD muestre la cadena de texto Soy un Mario centrado en la pantalla. 4. Realizar el código necesario para que en el GLCD muestre la cadena de texto Linea 12-1 en la primera fila, Terminal en la segunda fila y Diferencial en la tercera. 5. Realizar el código necesario para que en el GLCD muestre un cuadrado y un triángulo. 6. Realizar el código necesario para que en el GLCD muestre un circulo (x2 + y2 = r2). 7. Realizar el código necesario para que en el GLCD muestre un dos periodos de una señal senoidal. 8. Realizar el código necesario para que en el GLCD muestre una cara feliz :]. 9. Descargar de la carpeta Librerías del Dropbox el programa BMP_GLCD.exe y el archivo de imagen snpp.bmp1. Generar el mapa de bits para el GLCD 128x64 con el programa anterior, Luego realizar el código necesario para mostrar el mapa de bits generado en el GLCD. 3.8.3. Conclusión 1 La imagen tiene que ser guardada en Paint como BMP monocromático. Pedro Ramírez <pedroramirez22@gmail.com> 8