TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: juanez en 02 de Noviembre de 2006, 02:43:27
-
Hola he conseguido simular un lcd en proteus, y ya he controlado como escribir en las 2 lineas, pero no consigo desplazar un texto de un lado a otro del lc.
Lo que quiero hacer es un texto que empieze en una punta del lcd y se valla desplazando hacia la otra punta, tipo letrero de farmacia.
Lo he intentado con bucles while wend pero no lo consigo.
salu2
-
Hola puedes usar la instruccion LCDOT$FE, $1C o bien la instruccion LCDOUT$FE, $18 dentro de un ciclo for para que se desplace
El sentido de desplazamiento no sabria decirte bien porque cuando uso LCDOUT$FE,$1C, en proteus va de izquierda a derecha, pero en la realidad con mi lcd va al reves de derecha a izquierda y viceversa con $18. Esto es si usas PBP
Si usas MKB es mas sencillo, puedes usar el indice del for como en los ejemplos o las instrucciones anteriores.
El for es para darle pausa al desplazamiento...
Suerte
-
Vale ya lo he conseguido, despues de darle 20000 vueltas alos bucles for.
Pero para desplazae los caracteres es:
$fe,$10 ----------- mueve el cursor una posicion a la izquierda
$fe,$14 ----------- mueve el cursor una posicion a la derecha
-
No se cómo se hace pero existe una forma de colocar todo el mensaje y que se desplace solo hacia la izquierda o derecha.
Busca la hoja de datos de Hitachi 44780, ese es el controlador que usa tu LCD.
Creo que es algo como dijo Navaismo.
-
si esas son las instrucciones default de los lcd's al menos los que yo ocupo, y como dije uso el for para darles una pausita. Ya que sin el for siempre se van muy rapido.
-
PUES VAYA QUE LAS DEZPLAZA JEJEJE
AMI ME DEZPLAZA TODA LA PANTALLA PORQUE SERA?
MI LCD ES UN 16X2 JHD 162A
-
mira es super facil solo debes de saber que la primera fila empieza en 128 y la segunda en 192
si quiero q se mueva la palabra hola por ejemplo de izquierda a derecha , cinco pasos lo hago asi:
for i=0 to 5
lcdout 254,1 'limpio
lcdout 254,128+i,"hola"
pause 1000
next i
y se movera la cosa en intervalos de 1 segundo, nunca me gusto usar numeros en hexadecimal por eso los pongo en decimal jaja con esa formulka puedes hacer un monton de trucos , y maximizarlo usando arreglos para lcds