Autor Tema: Como conectar LCD a otro puerto ??  (Leído 4696 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Como conectar LCD a otro puerto ??
« en: 28 de Febrero de 2004, 08:27:00 »
Necesito saber la forma de reformar la libreria de CCS para poder conectar mi LCD al portC del 16F876.

La configuracion es la siguiente:

RC4 -------> Enable -------> pin 6 del LCd
RC5 -------> RS ------------> pin 4 del LCd
RC0 -------> DB4 ----------> pin 11 del LCd
RC1 -------> DB5 ----------> pin 12 del LCd
RC2 -------> DB6 ----------> pin 13 del LCd
RC3 -------> DB7 ----------> pin 14 del LCd

Como veran la interfase es a 4 bits.

Alguien puede ayudarme ??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Como conectar LCD a otro puerto ??
« Respuesta #1 en: 28 de Febrero de 2004, 09:22:00 »
Cuando tenga un rato te lo miro más detenidamente.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Como conectar LCD a otro puerto ??
« Respuesta #2 en: 28 de Febrero de 2004, 13:45:00 »
Lo prometido es deuda. Aquí la tienes: http://miarroba.com/foros/ver.php?foroid=85505&temaid=1599315

He cambiado la asignación de pines al PORTC, por comparación con la original de CCS.

Un saludo

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
RE: Como conectar LCD a otro puerto ??
« Respuesta #3 en: 01 de Marzo de 2004, 06:02:00 »
Gracias Pocher !!

Voy a probarlo..

Una duda.

de donde saco los valores hexa de los puertos ?, no lo encontre en la documentacion que tengo..
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Como conectar LCD a otro puerto ??
« Respuesta #4 en: 01 de Marzo de 2004, 06:26:00 »
No te entendí, podrías ser más explícito?

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
RE: Como conectar LCD a otro puerto ??
« Respuesta #5 en: 01 de Marzo de 2004, 06:54:00 »
Me referia a lo siguiente:


struct lcd_pin_map { // This structure is overlayed
boolean rs; //enable en CCS // on to an I/O port to gain
boolean rw; //rs en CCS // access to the LCD pins.
boolean enable; //rw en CCS // The bits are allocated from
boolean unused; // low order up. ENABLE will
int data : 4; // be pin B0.
} lcd;


#ifdef(__PCH__)
#ifdef use_portc_lcd
#byte lcd = 0xF82  <---
#else
#byte lcd = 0xF83 <--- // This puts the entire structure
#endif
#else
#ifdef use_portc_lcd
#byte lcd = 7
#else
#byte lcd = 8 // on to port D (at address 8)
#endif
#endif



De donde saco esos valores para todos los puertos??
Ademas:


struct lcd_pin_map {
int data : 4;
boolean enable;
boolean rs;
boolean rw;//no lo uso en realidad
boolean unused;  
} lcd;



Si lo escribo asi, estara bien para mis propositos??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Como conectar LCD a otro puerto ??
« Respuesta #6 en: 01 de Marzo de 2004, 07:07:00 »
Las direcciones 0xF84 (PORTE), 0xF83 (PORTD), 0xF82 (PORTC), 0xF81 (PORTB) y 0xF80 (PORTA) son las direcciones de los registros pero solo si vas a usar un PIC de la serie 18, no es tu caso.

Respecto al cambio de orden en la estructura déjame que lo piense ahora me llaman a comer.

Un saludo

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
RE: Como conectar LCD a otro puerto ??
« Respuesta #7 en: 01 de Marzo de 2004, 07:11:00 »
Buen provecho !!
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Como conectar LCD a otro puerto ??
« Respuesta #8 en: 01 de Marzo de 2004, 11:46:00 »
Con solo ese cambio no te funcionarIa.

Hace falta también cambiar:

STRUCT lcd_pin_map const LCD_READ = {0,0,0,0,15}; // For read mode data pins are in

por:

STRUCT lcd_pin_map const LCD_READ = {15,0,0,0,0}; // For read mode data pins are in

Obligatorio tener el pin RW conectado, si no, no va. Para eliminarlo habría que pensar un poco más ...

Un saludo

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
RE: Como conectar LCD a otro puerto ??
« Respuesta #9 en: 01 de Marzo de 2004, 12:16:00 »
Lo hice asi y anduvo bien en el PortD y el PortB, pero no podia hacerlo funcionar en el PortC (simulado en Proteus, se entiende).

Para que funcionara tuve que deshabilitar los modulos PSP y CCP1 y CCP2.

Recien alli anduvo!!

Ahora bien, estuve leyendo mas acerca del uso de la estructura del LCD y creo que si dejo de lado la funcion de leer del LCD puedo prescindir del uso del pin RW, dejandolo siempre a VDD, como siempre lo hago.

Que opinas??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Como conectar LCD a otro puerto ??
« Respuesta #10 en: 01 de Marzo de 2004, 12:51:00 »
He estado haciendo algunos cambios y no hay manera, si te sale avisa.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
RE: Como conectar LCD a otro puerto ??
« Respuesta #11 en: 01 de Marzo de 2004, 14:01:00 »
OK, si consigo que ande te digo como, sino snif, snif
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
RE: Como conectar LCD a otro puerto ??
« Respuesta #12 en: 02 de Marzo de 2004, 05:27:00 »
Oye, instale el QuickBuilder DEMO en mi maquina, este me permite tomar todos los bits del port al LCD sueltos (fuera de una estructura).
Lo probare y si me anda OK pongo aqui el codigo de la libreria LCD y traducida.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado pikman

  • Moderador Local
  • PIC24F
  • *****
  • Mensajes: 679
RE: Como conectar LCD a otro puerto ??
« Respuesta #13 en: 06 de Marzo de 2004, 16:48:00 »
Hola MARCOS y Pocher, pues me di el gusto de no usar el RW, con los contratiempos que trae, para esto hay que agragar retardos en lugar del chequear el BUsy Flag que varian segun la pantalla LCD y ademas cuando cambia la temperatura de esta, por lo tanto siempre se hace mas lerda la aplicacion, esto lo hice con el fin de usar un registro  de despalzamiento para controlar el LCD y ahorrar mas pines aun, cansado de ver que a veces falle el inicio del LCD o se cuelgue, decidi usar directamente un 16C54, que actua como bakpak, con un pequeño programa en asm y listo, asi con 1 pin controlo el lcd, hace un tiempo me habia propuesto hacer un soft para que este micro sea esclavo I2C y en aplicaciones donde hay este bus ahorar 1 pin mas, pero no lo termine, bueno
voy a buscar la libreria y la cuelgo para que experimenten.

saludos

Ariel

 
saludos
PikMan

adolfoadc

  • Visitante
RE: Como conectar LCD a otro puerto ??
« Respuesta #14 en: 06 de Marzo de 2004, 18:20:00 »
Tengo claro como definir el puerto que voy a utilizar mediante set_tris_lcd(x), pero no entiendo donde defino los pins a utilizar, a caso es en la struct lcd_pin_map, como se hace para decir cuales son los pines que eligo, no lo termino de entender. La unica variacion entonces siempre que se utilizen el mismo orden en el puerto c que en el d es la definicion de set_tris_lcd(x), pero si deseo cambiar el orden de los pines de control como lo haría, haciendome una libreria nueva o hay alguna modificacion posible en este codigo?


 

anything