Autor Tema: Desplazamiento de variables en lcd  (Leído 2863 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado talegres

  • PIC10
  • *
  • Mensajes: 13
Desplazamiento de variables en lcd
« en: 24 de Julio de 2009, 14:48:34 »
 Bueno colegas, tras buscar y probar todo lo leído en el foro sobre desplazamiento de textos en lcd,
soy incapaz de aclararme.

Estoy tratando de escribir en un LCD de 16x2 lineas, variables de tres carácteres que recibo vía serin.

Pero no se como conseguir que vayan apareciendo en la pantalla una tras otra a medida que son recibidas.

Es decir, que se imprima la primera ("ABC"), que al recibir la siguiente ("DEF"), se desplace ABC a la derecha y aparezca DEF al inicio del lcd.
Cuando se recibe la siguiente variable ("GHI"), se desplacen las anteriores y ésta última aparezca al inicio del lcd.

La situación debería quedar así en el lcd:
GHI DEF ABC

Gracias a todos de antemano como siempre.


Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Desplazamiento de variables en lcd
« Respuesta #1 en: 24 de Julio de 2009, 15:39:08 »
Hola.

Lo que se me ocurre es controlar el orden de despliegue del bufer de recepcion. Cuando recibes el dato lo vas ubicando desde la posicion 0 hasta la posicion n, cuando lo despliegas en la LCD lo haces desde la pocion n hasta la posicion 0. De hecho, puedes aprobechar el hecho de que la variable en el bufer es 0 cuando no hay dato, para desplegar el dato en la LCD desde la ultima posicion que sea diferente de cero.

Código: [Seleccionar]
BuferData[10] = {'A',0,0,0,0,0,0,0,0,0}

Cuando llega un dato nuevo:
Código: [Seleccionar]
BuferData[10] = {'A','B',0,0,0,0,0,0,0,0}

En la LCD despliego siempre y cuando se cumpla que BuferData[ i ]!=0, hasta que i=0.

Saludos
« Última modificación: 25 de Julio de 2009, 11:50:43 por MLO__ »
El papel lo aguanta todo

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Desplazamiento de variables en lcd
« Respuesta #2 en: 25 de Julio de 2009, 01:01:44 »
Cambia el modo de entrada enviando alguno de los siguientes comandos:

Código: [Seleccionar]
'--- Modos de Entrada
' Incrementa Direccion, Display fijo 0x06
' Decrementa Direccion, Display fijo 0x04
' Incrementa Direccion, Cursor fijo         0x07
' Decrementa Direccion, Cursor fijo 0x05

Otra forma seria por ejemplo si recibes de a 3 caracteres, mover el display a la izquierda enviando el comando 0x18 al LCD 3 veces, luego mover el cursor a la izquierda 6 veces enviando el comando 0x10 y imprimir los 3 caracteres nuevos.

Sino hacer lo que indica MLO_, es mas sencillo  :mrgreen:

Saludos!
« Última modificación: 25 de Julio de 2009, 13:53:03 por Suky »
No contesto mensajes privados, las consultas en el foro