Autor Tema: Loco con LCD y 16F877  (Leído 4821 veces)

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

AABHGA

  • Visitante
Loco con LCD y 16F877
« 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.
« Última modificación: 12 de Septiembre de 2006, 18:03:03 por LordLafebre »

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Loco con LCD y 16F877
« Respuesta #1 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.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Loco con LCD y 16F877
« Respuesta #2 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





Desconectado M.C_Barquin

  • PIC12
  • **
  • Mensajes: 69
Re: Loco con LCD y 16F877
« Respuesta #3 en: 12 de Septiembre de 2006, 12:14:19 »
Totalmente de acuerdo con lo que comenta LordLafebre.Saludos.
Pensando en Verdiblanco

AABHGA

  • Visitante
Re: Loco con LCD y 16F877
« Respuesta #4 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?
« Última modificación: 12 de Septiembre de 2006, 14:51:14 por AABHGA »

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Loco con LCD y 16F877
« Respuesta #5 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

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Loco con LCD y 16F877
« Respuesta #6 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:



Esta en la pagina 128 del datasheet.

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Loco con LCD y 16F877
« Respuesta #7 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

AABHGA

  • Visitante
Re: Loco con LCD y 16F877
« Respuesta #8 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.


 

anything