TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Artesano en 11 de Octubre de 2006, 16:36:08

Título: Problema con 16F88 al usar LCD
Publicado por: Artesano en 11 de Octubre de 2006, 16:36:08
Weeeenas...

Tengo un problema al usar una pantalla LCD con un PIC16F88 con cristal a 20Mhz. Resulta que hago una rutina simple con mikrobasic para que me muestre un mensaje en la pantalla y no hace nada, solo se enciende la primera fila como si no estuviesen conectados los pines .

Esta es la rutina:

Código: [Seleccionar]

program Lcd_demo

main:
  Lcd_Init(PORTB)                  ' Initialize LCD connected to PORTB
  Lcd_Cmd(LCD_CLEAR)               ' Send command to LCD "clear display"
  Lcd_Cmd(LCD_CURSOR_OFF)          ' Send command cursor off
  Lcd_Out(2,1,"mikroElektronika")  ' Print txt to LCD, 2nd row, 1st column
end.


Este es el resultado (foto):

http://upload4.postimage.org/1367271/photo_hosting.html

Así está conectada la pantalla (imagen):

http://upload4.postimage.org/1367321/photo_hosting.html


Pero si hago una rutina con 8 leds (para el puerto B igual) y hago cualquier tipo de efectos y combinaciones con el encendido de los leds funciona perfectamente (por lo menos se ve que hace todo lo que le indico en la rutina)


¿Alguien me puede echar una mano?


GRACIAS! 


Título: Re: Problema con 16F88 al usar LCD
Publicado por: Nocturno en 11 de Octubre de 2006, 18:03:50
No se ven las fotos que has adjuntado, concretamente el esquema, por revisar si tienes algún fallo.
Título: Re: Problema con 16F88 al usar LCD
Publicado por: LordLafebre en 11 de Octubre de 2006, 18:09:53
Hola:

Es cuestion de tu programa, recuerda que debes declarar el puerto como salida antes de utilizar las instrucciones, no lo digo yo, lo dice la ayuda, es bueno revisarla de ves en cuando.  :mrgreen:
Título: Re: Problema con 16F88 al usar LCD
Publicado por: LordLafebre en 11 de Octubre de 2006, 18:11:44
esto menciona la ayuda:

Citar
LCD Library
mikroBasic provides a library for communicating with commonly used LCD (4-bit interface). Figures showing HW connection of PIC and LCD are given at the end of the chapter.

Note: Be sure to designate port with LCD as output, before using any of the following library functions

Título: Re: Problema con 16F88 al usar LCD
Publicado por: Artesano en 11 de Octubre de 2006, 19:11:18

Ya solucioné problema agregando a la rutina ANSEL = 0. El esquema esta bien.


Gracias a todos!
Título: Re: Problema con 16F88 al usar LCD
Publicado por: Artesano en 11 de Octubre de 2006, 19:24:03

Nocturno si uso el explorer 7 (que es el q normalmente uso) puedo ver la foto y el esquema de conexion que publiqué, pero si uso firefox 1.5 no se ven, prueba usando explorer.


Saludos
Título: Re: Problema con 16F88 al usar LCD
Publicado por: LordLafebre en 12 de Octubre de 2006, 00:21:41
Hola:

Yo tengo explorer y tampoco los puedo ver.
Título: Re: Problema con 16F88 al usar LCD
Publicado por: Nocturno en 12 de Octubre de 2006, 01:42:24
Yo también tengo Explorer, pero bueno, ya no tiene importancia porque gracias a Gio está resuelto.
Título: Re: Problema con 16F88 al usar LCD
Publicado por: LordLafebre en 12 de Octubre de 2006, 01:46:44
gracias a Gio está resuelto.

Hola:

je je, el credito no es mio, veo que pudo arreglar configurando el registro ansel, pero aun asi con ese me imagino que te debio faltar declarar el puerto como salida, no es asi Artesano?
Título: Re: Problema con 16F88 al usar LCD
Publicado por: Artesano en 12 de Octubre de 2006, 16:27:18

Hola.

Ya arreglé los vínculos rotos de la imágenes. Estoy usando el servidor de imagenes gratuito de www.jvmbots.com y no me permite accesar la imagen directamente. Coloqué los vinculos del servidor y ahora si se ven.

En mikrobasic se declara un puerto como entrada o como salida así:

Código: [Seleccionar]

TRISB = $FF      'puerto B como entrada
TRISB = 0         'puerto B como salida


Ya termine mi programa, y el lcd funciona perfectamente sin colocar TRISB = 0, no se si será un caso aislado. Pero el lcd no hace nada si no coloco ANSEL = 0, indiferentemente si coloco como salida el purto B.


Cuando le digo en la primera linea para activar el lcd...

Código: [Seleccionar]
Lcd_Init(PORTB)                  ' Initialize LCD connected to PORTB

me imagino que ya se asume que el puerto B esa la salida para el lcd y no hace falta colocar el TRISB = 0


Saludos





Título: Re: Problema con 16F88 al usar LCD
Publicado por: LordLafebre en 12 de Octubre de 2006, 18:54:56
me imagino que ya se asume que el puerto B esa la salida para el lcd y no hace falta colocar el TRISB = 0

Hola:

Se supone que noberia ser asi, por eso la ayuda recalca esto:

Note: Be sure to designate port with LCD as output, before using any of the following library functions

En fin, seran los bugs que dicen que MKB tiene, o algo que desconozco, de ser asi ese comentario sería contradictorio.  :?
Título: Re: Problema con 16F88 al usar LCD
Publicado por: navaismo en 12 de Octubre de 2006, 18:57:06
Hola Gio, ha habido veces que igual yo no declaro el puerto como salida y funciona. Les digo que MKB no es de fiar y no me creen :D
Título: Re: Problema con 16F88 al usar LCD
Publicado por: LordLafebre en 12 de Octubre de 2006, 19:01:20
Hola:

Bueno, será de ver que pasa, aun no le meto mano al MKB.  :mrgreen: