Autor Tema: Problema con LCD 16X2 con PIC16F84A  (Leído 2930 veces)

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

Desconectado spire233

  • PIC10
  • *
  • Mensajes: 8
Problema con LCD 16X2 con PIC16F84A
« en: 06 de Febrero de 2015, 03:33:41 »
Buenas, Disculpen tengo una practica sobre el control las dos lineas de LCD, que una se mueva para la derecha y la otra para la izquierda, vi casi todos los videos de "PYRATAPCH" sobre los LCD pero no logro hacer que se mueva la linea de abajo, no se porque no se seleccione la linea 2, pero creo que en la libreria LCD_MENSD-R que es la que haria que el mensaje se moviera de derecha a izquierda le tengo que modificar algo mas desde "LCD_MensajeMovimiento1", o solo con poner los comandos de la linea 2 y que se decremente el cursor, pero no se si este en lo correcto, apenas estoy aprendiendo a programar con assembler.
les adjunto el archivo .ASM y las librerias que estoy usando. solo logro que se mueva la linea de arriba

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Problema con LCD 16X2 con PIC16F84A
« Respuesta #1 en: 06 de Febrero de 2015, 11:56:59 »
Debido a que es un codigo larguisimo para verificar que es o que no anduvo bien, o como mejorarlo, eso te lo dejo a vos.
Deberias de leer el datasheet del controlador de tu LCD

LCD_MENS.INC y LCD_MENSD-R.INC me parece que son identicos y no hay razon para tener 2, si con un una simple pregunta de un bit (BTFSS o BTFSC) podemos hacer que cambie la direccion. y tambien de linea, dejando 1 solo archivo para todo.

Y tu problema esta aca (dentro de esos archivos):

Citar
LCD_PrimeraPosicion
   clrf   LCD_CursorPosicion   ; El cursor en la posición 0 de la línea.
   call   LCD_Borra   

LCD_Borra envia el comando 0x1 al LCD, haciendo que se borre toda la pantalla y la direccion de datos pase a ser 0x0, es decir la linea 1.
Asi que si luego de esa linea queres que vaya a la linea 2 podrias hacer un CALL LCD_Linea2 ( Tambien podes agregarle un BTFSS o BTFSC para que quede para ambas lineas ) no me fije si en algun momento cambia de linea nuevamente, pero te digo que por ahi anda.
« Última modificación: 06 de Febrero de 2015, 14:56:15 por KILLERJC »

Desconectado spire233

  • PIC10
  • *
  • Mensajes: 8
Re: Problema con LCD 16X2 con PIC16F84A
« Respuesta #2 en: 06 de Febrero de 2015, 15:35:29 »
Hola ya le puse la instruccion del comando CALL LCD_Linea 2 en LCD_PrimeraPosicion como me comentaste después del LCD_Borra, lo probe en el circuito y sigue en la linea 1, lo agrege despues de LCD_Inicializa y tampoco cambio de linea :/ y ya no se que mas moverle, le cambio de lugar el LCD_Linea2 y no pasa nada :/

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Problema con LCD 16X2 con PIC16F84A
« Respuesta #3 en: 06 de Febrero de 2015, 16:04:24 »
Se lo modificaste a ambos archivos ?
Por que no hay otra cosa que este modificando el lugar de escritura de memoria mas que eso.

Desconectado spire233

  • PIC10
  • *
  • Mensajes: 8
Re: Problema con LCD 16X2 con PIC16F84A
« Respuesta #4 en: 06 de Febrero de 2015, 16:28:49 »
Se lo modifique tanto a las libreria de movimiento, a la de inicializa y al archivo pero no logro que funcione :/

Desconectado spire233

  • PIC10
  • *
  • Mensajes: 8
Re: Problema con LCD 16X2 con PIC16F84A
« Respuesta #5 en: 07 de Febrero de 2015, 00:40:40 »
Hola! que tal! porfin consegui que funcione el programa como lo queria, o parecido, el programa consiste en visualizar un mensaje en una linea y cuando acabe se visualice en la otra linea en un lcd de 16x2, junte las librerias necesarias en el archivo principal, asi reduci su tamaño (o eso creo), primero se visualiza la linea de abajo y luego la de arriba en el mismo sentido, aunque lo que yo buscaba era que una se moviera en sentido contrario, pero no logre hacerlo :/ pero dejo el archivo.asm para que lo revisen :D,
segui los consejos de KILLERJC y me dio una idea y la realice,  gracias


 

anything