TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: AABHGA en 12 de Septiembre de 2006, 02:49:12

Título: Loco con LCD y 16F877
Publicado por: AABHGA en 12 de Septiembre de 2006, 02:49:12
Hola, otra vez yo, en estos momentos me encuentro pasando mi proyecto anterior del LCD, Teclado y Sensor para detectar monedas y saber distinguir su valor, todo me trabajaba en el 877 utilizando los puertos predeterminados del LCD, pero ahora que pienso ampliar mi proyecto y que con el 628 y el oscilador interno no pude (me hablo el micro y me mentó la madre), quiero darle orden a las cosas y aquí es donde comienza mi problema, aprovechando (pensé yo) que el 877 el PORTA es de 6 bits, dije este es el ideal para el lcd, asi que con los define lo puse de esta manera:

Código: [Seleccionar]
DEFINE LCD_DREG PORTA
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTA
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTA
DEFINE LCD_EBIT 5
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2

y no trabajó, pensé que me había tirado la pantalla LCD, entonces quité los define y lo dejé predefinido donde utiliza como datos de PORTA.0 a PORTA.3, R/S a PORTA.4 y Enable a PORTB.3 y trabajo sin ningún problema, entonces me viene a la mente una pregunta ¿qué características debe tener el port donde va el Enable para que trabaje sin ningún problema?.

En sí, mi idea es utilizar todo el PORTA para el LCD, todo el PORTB para el Teclado, todo el PORTE para los 2 Opto acopladores y un led de indicación, el PORTC y PORTD para controlar 4 motores paso a paso.
Título: Re: Loco con LCD y 16F877
Publicado por: LordLafebre en 12 de Septiembre de 2006, 10:45:30
Hola:

no he trabajado con el PORTA para un lcd, la cuestion es la siguiente, ese puerto del pic el RA4 es colector abierto y ademas es analogico, para una configuracion diferente que no sea la predefinida trata poniendo una resistencia de Pull Up al Ra4 y digitalizando el puerto antes de utilizar la instruccion LCDOUT, insisto, pero como digo nunca he utilizado los pines del PORTA definiendo yo mismo, prueba con lo que te comente antes.
Título: Re: Loco con LCD y 16F877
Publicado por: LordLafebre en 12 de Septiembre de 2006, 11:00:30
Hola:

y por si no me crees lo que te digo :D :D :D, aqui esta la prueba :D :D :D


Código: FreeBasic
  1. DEFINE LCD_DREG PORTA
  2. DEFINE LCD_DBIT 0
  3. DEFINE LCD_RSREG PORTA
  4. DEFINE LCD_RSBIT 4
  5. DEFINE LCD_EREG PORTA
  6. DEFINE LCD_EBIT 5
  7.  
  8. ADCON1=7
  9.  
  10. pause 250
  11.  
  12. inicio:
  13.     lcdout $FE,1,"FUNCIONA EL LCD"
  14.     lcdout $FE,$C0,"EN EL PORTA"
  15.     pause 3000
  16.     goto inicio
  17. end


(http://img141.imageshack.us/img141/4471/dibujoip8.jpg)

Título: Re: Loco con LCD y 16F877
Publicado por: M.C_Barquin en 12 de Septiembre de 2006, 12:14:19
Totalmente de acuerdo con lo que comenta LordLafebre.Saludos.
Título: Re: Loco con LCD y 16F877
Publicado por: AABHGA en 12 de Septiembre de 2006, 13:31:53
Gracias por la info, voy a probar haber si es la digitalización del puerto que es lo único que hay diferente entre el tuyo y el mio, porque como comenté antes de la manera estandard como viene predefinido la conexión del LCD a un pic, el R/S esta con la resistencia de pull up al PORTA.4 y el Enable al PORTB.3 y asi me trabajo sin problemas (Por eso había pensado que en el enable estaba el problema). Voy a probar y les comento.

EDIT: Si, eso era, mil gracias por la info, por aca volveré a joderles la vida cuando tenga algun problema o cuando pueda ayudar a alguien.

EDIT2: Ahora tengo una pequeña duda, ¿con el comando ADCON1 = 7 estamos convirtiendo es el Pin 7 a digital cierto? osea  el PORTA.5, ¿osea que el problema si radicaba en el Enable?
Título: Re: Loco con LCD y 16F877
Publicado por: LordLafebre en 12 de Septiembre de 2006, 16:49:23
EDIT2: Ahora tengo una pequeña duda, ¿con el comando ADCON1 = 7 estamos convirtiendo es el Pin 7 a digital cierto? osea  el PORTA.5, ¿osea que el problema si radicaba en el Enable?

con Adcon1=7 estamos digitalizando todo el puerto, para mayor informacion revisa el registro adcon1 en la hoja de especificaciones del Pic 16F877
Título: Re: Loco con LCD y 16F877
Publicado por: LordLafebre en 12 de Septiembre de 2006, 17:23:21
Hola:

Mira, esta es la tabla que he sacado del data del micro en donde te muestra los valores para el ADCON1 para que lo puedas utilizar:

(http://img128.imageshack.us/img128/9464/adckn3.jpg)

Esta en la pagina 128 del datasheet.
Título: Re: Loco con LCD y 16F877
Publicado por: RALF2 en 28 de Septiembre de 2006, 17:08:16
Hola amigos!
Lo que dice el pana lordlafre es completamente cierto debes colocar el puerto A como digital ya que el lo trae por defecto como analogico y si esta de esa forma no te va a funcionar...

Saludos
Título: Re: Loco con LCD y 16F877
Publicado por: AABHGA en 28 de Septiembre de 2006, 22:02:07
Exacto, gracias a eso pude solucionar el problema hace bastante tiempo, pensé que había puesto que había resuelto el problema pero no xD.

Nos vemos.