Animacion en LCD 16X2 con el PIC16F877A

Hola a todos los amigos del foro quisiera preguntarles por que cuando trato de realizar una animacion en un LCD 16X2 esta no me sale como debe ser, bien cuando ingreso un caracter animado en la CGRAM "0" de la primera linea y a la vez otra imagen que complementa la figura completa en la CGRAM "0" de la segunda linea esta se repite con la de arriba? si bien lo programo de la siguiente manera en PicBasic:

DEFINE OSC 4 ;OSCILADOR A 4 MHZ
DEFINE LCD_LINES 2 ;DEFINIR LINEAS DEL LCD "2"
DEFINE LCD_DREG PORTB ;DEFINIR PUERTOS BITS DEL LCD
DEFINE LCD_DBIT 4 ;CUATRO BITS PARA EL LCD DESDE B4 HASTA B7
DEFINE LCD_RSREG PORTB ;RS POR EL PUERTO B
DEFINE LCD_RSBIT 2 ;RS PUERTO B2
DEFINE LCD_EREG PORTB ;E POR EL PUERTO B
DEFINE LCD_EBIT 3 ;E PUERTO B3

PAUSE 500 ;PAUSAR 500 ms
LCDOUT $FE,1 ;LIMPIAR LCD PARA INICIAR

INICIO: ;BLOQUE CON NOMBRE INICIO

LCDOUT 0 ;CGRAM 0 DE LA LINEA 1
LCDOUT $FE,$C0,0 ;CGRAM 0 DE LA LINEA 2
LCDOUT 254,64,14,31,31,31,31,31,,31,14 ;MUESTRA UN CIRCULO RELLENO DE LA LINEA 1
LCDOUT 254,64,14,17,17,17,17,17,17,31 ;MUESTRA UN CIRCULO VACIO EN EL CENTRO POR LA LINEA 2
PAUSE 200 ;PAUSAR 200 ms
GOTO INICIO ;IR AL INICIO
END ;FIN

Ahi estan mis dudas, por que si le especifico a la programacion donde aparecer los caracteres entonces por que falla colocando la imagen de abajo en la linea de arriba??? que locura!!
 
Creo que comprendes mal la memoria CGRAM, esta solo puede almacenar 8 caracteres que no tienen nada que ver con la líneas del LCD. Luego de grabar el carácter que sea en una posición de la memoria CGRAM se le llama mediante la dirección desde 0 (para el 1er carácter) a 7 (para el último carácter).

Esto te sirve Creación de nuevos caracteres en LCDs alfanuméricos.

saludos.
 
Gracias ByAxel esta muy bueno los tutoriales que muestra la pagina, entonces en ese tipo de lcd no se puede hacer una animacion independiente al mismo tiempo de la linea 1 o linea 2 del lcd?
hay otro tipo de lcd que si realice graficos o cosas asi por el estilo?
 
Tienes 8 caracteres independientes en la CGRAM, los cuales puedes mostrar en cualquier parte o línea del LCD; fíjate del ejemplo anterior donde 1ro carga los caracteres en la CGRAM y luego los muestra intercalando un texto...

Código:
LCDOUT 254,64, 14 ,31 ,0, 10 ,0 ,17 ,14 ,0    'cgram posición 0   
LCDOUT 254,72, 4 ,14 ,4, 14 ,21 ,21 ,10 ,10   'cgram posición 1
LCDOUT 254,80, 0 ,14 ,27, 31 ,3 ,31 ,14 ,0    'cgram posición 2 
LCDOUT 254,88, 4 ,14 ,21, 4 ,4 ,4 ,4 ,0       'cgram posición 3
'*******************************************************************************  
LCDOUT $FE, 1                                 'Borrado de la pantalla 
LCDOUT " ",0, 1, " Zaxione ", 2, 3            'Imprimir en pantalla

como vez, se puede mostrar en cualquier parte del LCD los caracteres grabados en la CGRAM... inténtalo...
saludos.
 
Coo cosa curiosa alguna vez vi en un caraudio o pasacintas SONY que usaba un LCD 2x16 normal una animacion de un caballo corriendo, era muy pero muy buena y usaba al momento 3 caracteres nada mas, solo eso, chauuuuuuuu
 
Hola, aunque hace tiempo que este tema quedo parado, me gustaría comentar que tengo un tutorial muy interesante sobre animaciones en LCDs alfanuméricos.
Si cambiamos el carácter número 0 que esta en la posición de memoria nº 64 del LCD progresivamente podemos hacer una simulación de movimiento.

Aquí dejo el enlace espero que les sirva de referencia para los que pasen por este foro.

Formas de Onda en movimiento en un LCD no gráfico.

Un saludo.
 
Atrás
Arriba