Autor Tema: Problema LCD del PICDEM 2 PLUS  (Leído 2033 veces)

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

Desconectado pabrocpe

  • PIC10
  • *
  • Mensajes: 10
Problema LCD del PICDEM 2 PLUS
« en: 26 de Mayo de 2004, 02:11:00 »
Hola a todos,
quería utilizar una PICDEM 2 PLUS que tengo para hacer algunas pruebas con el C. El problema es que el LCD va conectado de la siguiente forma:
RA1--->E
RA2--->R/W
RA3--->RS

RD4--->RD0
RD5--->RD1
RD6--->RD2
RD7--->RD3

El problema es que no se como modificar la librería lcd.c de CCS no para seleccionar los bits E R/W RS para el puerto A.
Os agradecería cualquier ayuda al respecto, ya que posiblemente no esté cogiendo el camono corrrecto

Desconectado gauchosuizo

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 457
RE: Problema LCD del PICDEM 2 PLUS
« Respuesta #1 en: 26 de Mayo de 2004, 03:08:00 »
hola pabrocpe

explicate un poco mejor, porque no entiendo que es lo que quieres hacer. Yo he modificado la Rutina lcd.c y anduvo sin problemas.

Pablo
Saludos desde Suiza, Pablo.

Desconectado pabrocpe

  • PIC10
  • *
  • Mensajes: 10
RE: Problema LCD del PICDEM 2 PLUS
« Respuesta #2 en: 26 de Mayo de 2004, 03:31:00 »
El problema es que no se como modificar la rutina lcd.c para asignar los pines RA1,RA2,RA3 del micro para controlar E,RS,R/W. No entiendo muy bien como se hace la asignación de pines en la rutina lcd.c

Desconectado gauchosuizo

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 457
RE: Problema LCD del PICDEM 2 PLUS
« Respuesta #3 en: 26 de Mayo de 2004, 06:40:00 »
hola pabrocpe

mira yo hice un programa que lee el sensor de temperatura que tiene el DEMPIC2 y lo muestra en el Display. Para ello tuve que modificar, entre otros, al lcd.c. Aqui te mando el codigo. Algunas explicaciones del codigo estan en Aleman, si tienes preguntas estoy a tu disposicion.

Que te diviertas. Saludos desde Suiza, Pablo.

PD.: lcd.c tuyo = lcdAnzeige.c mio
       lcd.c mio = es el programa principal
       lcd.h mio = es el Header datei, ahi vas a ver como se asignan los pines que tu quieres.
 PD2.: no puedo subir las files!!
Saludos desde Suiza, Pablo.

Desconectado odukec

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 174
RE: Problema LCD del PICDEM 2 PLUS
« Respuesta #4 en: 26 de Mayo de 2004, 11:22:00 »
Hola

pues mira.. en el lcd.c hay un pin map, que se hace por medio de una estructura

#define set_tris_lcd(x) set_tris_d(x)

struct lcd_pin_map {                
           /*BOOLEAN enable;          
           BOOLEAN rs;              
           BOOLEAN rw;              
           BOOLEAN unused;*/
 Comentar esto
           int     otro :  4;         //Esto se hace para que puedas usar
           int     data : 4;         // los primeros cuatro pines del puerto d
        } lcd;

#byte  lcd = 8  // pone la estructura sobre el puerto d

/*esto seria para usar las patillas de control del lcd en
el puerto a */

struc lcd_control_pin{
           BOOLEAN sinuso;
           BOOLEAN enable;
           BOOLEAN rs;
           BOOLEAN rw;
           int otro : 2;     //Ultimos dos pines porta libres
          }lcd_cont;

#byte lcd_cont = 5  // Control sobre puerto a

struct lcd_pin_map const LCD_WRITE = {X,0};
struct lcd_pin_map const LCD_READ = {X,15};

//"X" significa para todas salidas un 0, para todas entradas un 15
// el valor "X" actua sobre el puerto d en los primeros cuatro pines

//incluye esto en el main para que los pines de control
//actuen como salidas
set_tris_a(0bX000XX00);

//Las "X" significa que si necesitas estos pines como entradas
//pues pones "1" y como salidas "0", los tres ceros seguidos son los
// pines de control

// ahora lo que tienes que modificar en las rutinas es por ejemplo:

BYTE lcd_read_byte() {
      BYTE low,high;
      set_tris_lcd(LCD_READ);
      lcd_cont.rw = 1;     //<-- aca cambias lcd.rw por esto
      delay_cycles(1);
      lcd_cont.enable = 1;       //<-- aca igual lcd.enable
      delay_cycles(1);
      high = lcd.data;
      lcd_cont.enable = 0;       //<-- ACA
      delay_cycles(1);
      lcd_cont.enable = 1;       //<--ACA
      delay_us(1);
      low = lcd.data;             //<-- ACA NO
      lcd_cont.enable = 0;              //<-- ACA SI
      set_tris_lcd(LCD_WRITE);
      return( (high<<4) | low);
}

//Asi en todo el resto de rutinas


Esta no es la unica forma de modificar lcd.c.. para que funcione como lo necesitas... es solo una sugerencia
Espero te sirva..
Saludos

Desconectado pabrocpe

  • PIC10
  • *
  • Mensajes: 10
RE: Problema LCD del PICDEM 2 PLUS
« Respuesta #5 en: 27 de Mayo de 2004, 04:33:00 »
Muchisimas gracias. Funciona todo OK.

Desconectado michaelsnp

  • PIC10
  • *
  • Mensajes: 2
RE: Problema LCD del PICDEM 2 PLUS
« Respuesta #6 en: 23 de Febrero de 2006, 14:41:00 »
hola a todos, quiero contarles que estoy trabajando con el picdem y la pila recomendada por microchip para webserver, porque quiero implementar el cliente tftp que tienen como demo, pero cuando lo grabo al pic18f452, no me hace el ping y quisiera sabersi alguno de ustedes sabe que podriahacer,  Gracias...

PD. Si logro configurar bien las ip y si me detecta el cable de red conectado, solo que no puedo hacer ping a pesar de que si implementa el icmp.