Autor Tema: Lcd nokia 3310  (Leído 7208 veces)

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

Desconectado Trust

  • PIC16
  • ***
  • Mensajes: 141
Lcd nokia 3310
« en: 16 de Marzo de 2009, 22:30:07 »
Hola, hace unas semanas me compre 2 lcd de Nokia 3310 para probarlas. El programa que uso es una modificacion del programa de cucaracha la web es Nokia 3310 Cucaweb

La conexion que hago es el pin 1 esta a la derecha mirando la pantalla de frente y el pin 8 que es el ultimo a la izquierda. La configuracion  es la siguiente:

1       -     vdd
2       -     sclk      -        portb.1
3       -     sdin      -        portb.2
4       -     dc        -        portb.3
5       -     sce       -        portb.4
6       -     gnd
7       -     vop
8       -     reset     -        portb.7

La modificacion que he hecho en la libreria es:

Código: [Seleccionar]
#bit nok_sclk  = PORTB.1 // RB1
#bit nok_sda   = PORTB.2 // RB2
#bit nok_dc    = PORTB.3      // RB3
#bit nok_cs    = PORTB.4      // RB4
#bit nok_res   = PORTB.7 // RB7


La original es:

Código: [Seleccionar]

bit nok_sclk  = PORTB.3 // RB3
#bit nok_sda   = PORTB.4 // RB4
#bit nok_dc    = PORTB.5      // RB5
#bit nok_cs    = PORTB.6      // RB6
#bit nok_res   = PORTB.7 // RB7


Estas 2 lineas no las he cambiado:

Código: [Seleccionar]

#byte PORTB=6                 // Dirección del PortB
#byte TRISB=0x86              // Dirección Del TrisB

No se si tengo que cambiar estas 2 lineas para la configuracion de los pines que he escrito antes.

El programa es el siguiente, lo he adaptado para un 18F4550 con un cristal de 12 Mhz trabajando a 48 Mhz:

Código: [Seleccionar]

//Este programa utiliza un lcd del Nokia 3310
#include <18f4550.h>  // PIC que se va a utilizar
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN,NOPBADEN  //Ordenes para el programador
#use delay(clock=48000000)  //fosc= 48 Mhz
#Include <nokia_lcd.c>


#byte PORTB=0              // Dirección del PortB
#byte TRISB=0x80           // Dirección Del TrisB
//definiciones
#byte PORTA=5
//#byte PORTB=6
#byte PORTC=7
#byte TRISA=0x85
//#byte TRISB=0x86
#byte TRISC=0x87
//

Byte CONST TABLE3 [249]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x78,0x04,0x02,0x01,0x00,0x00,0xC0,0xE0,0x30,0x10,0x18,
0x08,0x04,0x86,0xE1,0xF0,0x10,0x10,0x30,0x20,0x20,0x60,0x60,0x40,0x40,0x40,0x80,
0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,
0x18,0x20,0xE0,0xF0,0xD8,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0x7F,0x7F,0x7F,0xFE,0xFE,0xFE,0xFC,0xF8,0xF8,0xF0,
0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

Byte CONST TABLE4 [255]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x81,0x67,0x17,0x0E,0x0F,0x0F,0xFF,0x3F,0x1F,0x1F,
0x1F,0x1F,0x3F,0xFF,0xFF,0x3F,0x3F,0x3F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,0x7E,
0x7F,0x7F,0x7F,0x3F,0x1F,0x0E,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x4E,0x81,0x00,0x00,0x00,0x0E,0x11,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x04,0x04,0x09,0x93,
0xE7,0x86,0x06,0x06,0x02,0x02,0x03,0x03,0x03,0x01,0x01,0x01,0x02,0x02,0x02,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x00,0x00,0x00,0x00,0x1F,0x12,0x12,0x1E,0x00,0x02,0x6C,0x18,0x06,0x00,0x00,0x00,
0x00,0x0C,0x13,0x11,0x10,0x09,0x1E,0x10,0x10,0x1E,0x0C,0x12,0x12,0x12,0x0C,0x16,
0x12,0x1E,0x1E,0x06,0x02,0x06,0x0C,0x16,0x12,0x1E,0x00,0x0C,0x12,0x12,0x12,0x18,
0x1F,0x02,0x1E,0x0C,0x16,0x12,0x1E,0x00
};

Byte CONST TABLE5 [249]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x78,0x04,0x02,0x01,0x00,0x00,0xC0,0xE0,0x30,0x10,0x18,
0x08,0x04,0x86,0xE1,0xF0,0x10,0x10,0x30,0x20,0x20,0x60,0x60,0x40,0x40,0x40,0x80,
0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,
0x18,0x20,0xE0,0xF0,0xD8,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0x7F,0x7F,0x7F,0xFE,0xFE,0xFE,0xFC,0xF8,0xF8,0xF0,
0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

Byte CONST TABLE6 [255]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x40,0x20,0x21,0x17,0x17,0x0E,0x0F,0x0F,0xFF,0x3F,0x1F,0x1F,
0x1F,0x1F,0x3F,0xFF,0xFF,0x3F,0x3F,0x3F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,0x7E,
0x7F,0x7F,0x7F,0x3F,0x1F,0x0E,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x1C,0x62,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x11,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x04,0x04,0x09,0x93,
0xE7,0x86,0x06,0x06,0x02,0x02,0x03,0x03,0x03,0x01,0x01,0x01,0x02,0x02,0x02,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x1F,0x12,0x12,0x1E,0x00,0x02,0x6C,0x18,0x06,0x00,0x00,0x00,
0x00,0x0C,0x13,0x11,0x10,0x09,0x1E,0x10,0x10,0x1E,0x0C,0x12,0x12,0x12,0x0C,0x16,
0x12,0x1E,0x1E,0x06,0x02,0x06,0x0C,0x16,0x12,0x1E,0x00,0x0C,0x12,0x12,0x12,0x18,
0x1F,0x02,0x1E,0x0C,0x16,0x12,0x1E,0x00
};



Byte CONST TABLE7 [249]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x78,0x04,0x02,0x01,0x00,0x00,0xC0,0xE0,0x30,0x10,0x18,
0x08,0x04,0x86,0xE1,0xF0,0x10,0x10,0x30,0x20,0x20,0x60,0x60,0x40,0x40,0x40,0x80,
0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
0x18,0x20,0xE0,0xF0,0xD8,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0x7F,0x7F,0x7F,0xFE,0xFE,0xFE,0xFC,0xF8,0xF8,0xF0,
0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};


Byte CONST TABLE8 [255]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x40,0x20,0x21,0x17,0x17,0x0E,0x0F,0x0F,0xFF,0x3F,0x1F,0x1F,
0x1F,0x1F,0x3F,0xFF,0xFF,0x3F,0x3F,0x3F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,0x7E,
0x7F,0x7F,0x7F,0x3F,0x1F,0x0E,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x60,0x98,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x11,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x04,0x04,0x09,0x93,
0xE7,0x86,0x06,0x06,0x02,0x02,0x03,0x03,0x03,0x01,0x01,0x01,0x02,0x02,0x02,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x1F,0x12,0x12,0x1E,0x00,0x02,0x6C,0x18,0x06,0x00,0x00,0x00,
0x00,0x0C,0x13,0x11,0x10,0x09,0x1E,0x10,0x10,0x1E,0x0C,0x12,0x12,0x12,0x0C,0x16,
0x12,0x1E,0x1E,0x06,0x02,0x06,0x0C,0x16,0x12,0x1E,0x00,0x0C,0x12,0x12,0x12,0x18,
0x1F,0x02,0x1E,0x0C,0x16,0x12,0x1E,0x00
};



// Funcion Principal
void main(void)
{
int8 a;
int i;
   lcd_init();             // Inicialización LCD
   nokia_clean_ddram();    // La limpiamos (por si acaso)

for(i=0;i<5;i++){
    nokia_gotoxy(0,0);      // Nos ponemos en 0,0
   for (a=0;a<=248;a++){nokia_write_data(TABLE3[a]);} // Imprimimos el gráfico
   for (a=0;a<=254;a++){nokia_write_data(TABLE4[a]);}
   delay_ms(300);                                    // Espeamos, pa que se vea

    nokia_gotoxy(0,0);      // Nos ponemos en 0,0
   for (a=0;a<=248;a++){nokia_write_data(TABLE5[a]);} // Imprimimos el gráfico
   for (a=0;a<=254;a++){nokia_write_data(TABLE6[a]);}
   delay_ms(300);                                    // Espeamos, pa que se vea

    nokia_gotoxy(0,0);      // Nos ponemos en 0,0
   for (a=0;a<=248;a++){nokia_write_data(TABLE7[a]);} // Imprimimos el gráfico
   for (a=0;a<=254;a++){nokia_write_data(TABLE8[a]);}
   delay_ms(300);                                    // Espeamos, pa que se vea

    nokia_gotoxy(0,0);      // Nos ponemos en 0,0
   for (a=0;a<=248;a++){nokia_write_data(TABLE5[a]);} // Imprimimos el gráfico
   for (a=0;a<=254;a++){nokia_write_data(TABLE6[a]);}
   delay_ms(300);                                    // Espeamos, pa que se vea
}


   nokia_clean_ddram();                   // Limpiamos pantalla
   nokia_gotoxy(0,0);                     // Nos ponemos en 0,01
   printf(nokia_printchar,"abcdefghijklmn");  // Escribimos
   //nokia_gotoxy(0,1); no hay que poner esto ya que se escribe la fila entera..
   printf(nokia_printchar,"ñopqrstuvwxyzA");
   //nokia_gotoxy(0,2); ...aunque si se pone tampoco está mal
   printf(nokia_printchar,"BCDEFGHIJKLMNÑ");
   //nokia_gotoxy(0,3); idem
   printf(nokia_printchar,"OPQRSTUVWXYZ12");
   //nokia_gotoxy(0,4); idem
   printf(nokia_printchar,"34567890*/-+$#");
   //nokia_gotoxy(0,5); y más idem
   printf(nokia_printchar,"Listo!!    ;-)");
   delay_ms(500);

   a = 0x0C;
   while (1) {
      switch (a) {
         case 0x0c:
            nokia_write_command(0x0D);   // Modo normal
            a=0x0D;
            delay_ms(1000);
            break;
         case 0x0D:
            nokia_write_command(0x0C);   // Modo inverso
            a=0x0C;
            delay_ms(1000);
            break;
      }
   }
}



Y la libreria es esta, con una pequeña modificacion:

Código: [Seleccionar]

////////////////////////////////////////////////////////////////////////////////
// DESCRIPCIÓN DE LAS FUNCIONES
//
// void nokia_write_dorc(byte bytefornokia)              USO INTERNO
// void nokia_write_data(byte bytefornokia_data)         USO INTERNO
// void nokia_printchar(byte caracter)                   IMPRIME EL CARACTER
// void nokia_write_command(byte bytefornokia_command)   MANDA EL COMANDO
// void nokia_gotoxy(byte xnokia, byte ynokia)           SE POSICIONA EN X/Y
// void nokia_clean_ddram(void)                          LIMPIA LA PANTALLA
// void Lcd_init(void)                                   INICIALIZA LA LCD
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// CONFIGURACION DE LA CONEXION
//
// Conectamos la LCD al PORTB en los pines indicados
//
////////////////////////////////////////////////////////////////////////////////
#byte PORTB=6                 // Dirección del PortB
#byte TRISB=0x86              // Dirección Del TrisB
#bit nok_sclk  = PORTB.1 // RB1
#bit nok_sda   = PORTB.2 // RB2
#bit nok_dc    = PORTB.3      // RB3
#bit nok_cs    = PORTB.4      // RB4
#bit nok_res   = PORTB.7 // RB7
// FIN CONFIGURACION
////////////////////////////////////////////////////////////////////////////////

/*
Tabla de Instrucciones de la LCD. Siempre con D/C=0

0010 0xyz      // X=1 -> Driver en OFF
                     Y=1 -> Direccionamiento Vertical
                     Z=1 -> Comandos Extendidos

Modo de pantalla
0000 1001   0x09 // Entera Negra
0000 1000   0x08 // Entera Blanco
0000 1100   0x0c // Modo Normal
0000 1101   0x0d // Vídeo Inverso

Control de Temperatura
0100 0100   0x44  // Coeficiente de temperatura 0
0100 0101   0x45  // Coeficiente de temperatura 1
0100 0110   0x46  // Coeficiente de temperatura 2
0100 0111   0x47  // Coeficiente de temperatura 3

Bias (Contraste?)
0001 0xxx         // Establece el valor para Bias

Vop
1xxx xxxx         // Establece el valor para Vop
*/

////////////////////////////////////////////////////////////////////////////////
// Necesitamos dos tablas para la conversión de ASCII a pixels gráficos
// 5 Bytes por caracter.
// Usamos DOS tablas porque tenemos 96 columnas x 5 bytes = 480 bytes
// y solo podemos tener tablas de 255 bytes

// F1-ñ -> 0xFC,0x09,0x05,0x05,0xF8
// D1-Ñ ->
byte CONST ASCII_TABLE1 [240]={
                  0x00,0x00,0x00,0x00,0x00, // 20 space
0x00,0x00,0x5f,0x00,0x00, // 21 !
0x00,0x07,0x00,0x07,0x00, // 22 "
0x14,0x7f,0x14,0x7f,0x14, // 23 #
0x24,0x2a,0x7f,0x2a,0x12, // 24 $
0x23,0x13,0x08,0x64,0x62, // 25 %
0x36,0x49,0x55,0x22,0x50, // 26 &
0x00,0x05,0x03,0x00,0x00, // 27 '
0x00,0x1c,0x22,0x41,0x00, // 28 (
0x00,0x41,0x22,0x1c,0x00, // 29 )
0x14,0x08,0x3e,0x08,0x14, // 2a *
0x08,0x08,0x3e,0x08,0x08, // 2b +
0x00,0x50,0x30,0x00,0x00, // 2c ,
0x08,0x08,0x08,0x08,0x08, // 2d -
0x00,0x60,0x60,0x00,0x00, // 2e .
0x20,0x10,0x08,0x04,0x02, // 2f /
0x3e,0x51,0x49,0x45,0x3e, // 30 0
0x00,0x42,0x7f,0x40,0x00, // 31 1
0x42,0x61,0x51,0x49,0x46, // 32 2
0x21,0x41,0x45,0x4b,0x31, // 33 3
0x18,0x14,0x12,0x7f,0x10, // 34 4
0x27,0x45,0x45,0x45,0x39, // 35 5
0x3c,0x4a,0x49,0x49,0x30, // 36 6
0x01,0x71,0x09,0x05,0x03, // 37 7
0x36,0x49,0x49,0x49,0x36, // 38 8
0x06,0x49,0x49,0x29,0x1e, // 39 9
0x00,0x36,0x36,0x00,0x00, // 3a :
0x00,0x56,0x36,0x00,0x00, // 3b ;
0x08,0x14,0x22,0x41,0x00, // 3c <
0x14,0x14,0x14,0x14,0x14, // 3d =
0x00,0x41,0x22,0x14,0x08, // 3e >
0x02,0x01,0x51,0x09,0x06, // 3f ?
0x32,0x49,0x79,0x41,0x3e, // 40 @
0x7e,0x11,0x11,0x11,0x7e, // 41 A
0x7f,0x49,0x49,0x49,0x36, // 42 B
0x3e,0x41,0x41,0x41,0x22, // 43 C
0x7f,0x41,0x41,0x22,0x1c, // 44 D
0x7f,0x49,0x49,0x49,0x41, // 45 E
0x7f,0x09,0x09,0x09,0x01, // 46 F
0x3e,0x41,0x49,0x49,0x7a, // 47 G
0x7f,0x08,0x08,0x08,0x7f, // 48 H
0x00,0x41,0x7f,0x41,0x00, // 49 I
0x20,0x40,0x41,0x3f,0x01, // 4a J
0x7f,0x08,0x14,0x22,0x41, // 4b K
0x7f,0x40,0x40,0x40,0x40, // 4c L
0x7f,0x02,0x0c,0x02,0x7f, // 4d M
0x7f,0x04,0x08,0x10,0x7f, // 4e N
0x3e,0x41,0x41,0x41,0x3e}; // 4f O


byte CONST ASCII_TABLE2 [250]={
                  0x7f,0x09,0x09,0x09,0x06, // 50 P
0x3e,0x41,0x51,0x21,0x5e, // 51 Q
0x7f,0x09,0x19,0x29,0x46, // 52 R
0x46,0x49,0x49,0x49,0x31, // 53 S
0x01,0x01,0x7f,0x01,0x01, // 54 T
0x3f,0x40,0x40,0x40,0x3f, // 55 U
0x1f,0x20,0x40,0x20,0x1f, // 56 V
0x3f,0x40,0x38,0x40,0x3f, // 57 W
0x63,0x14,0x08,0x14,0x63, // 58 X
0x07,0x08,0x70,0x08,0x07, // 59 Y
0x61,0x51,0x49,0x45,0x43, // 5a Z
0x00,0x7f,0x41,0x41,0x00, // 5b [
0x02,0x04,0x08,0x10,0x20, // 5c
0x00,0x41,0x41,0x7f,0x00, // 5d
0x04,0x02,0x01,0x02,0x04, // 5e
0x40,0x40,0x40,0x40,0x40, // 5f
0x00,0x01,0x02,0x04,0x00, // 60
0x20,0x54,0x54,0x54,0x78, // 61 a
0x7f,0x48,0x44,0x44,0x38, // 62 b
0x38,0x44,0x44,0x44,0x20, // 63 c
0x38,0x44,0x44,0x48,0x7f, // 64 d
0x38,0x54,0x54,0x54,0x18, // 65 e
0x08,0x7e,0x09,0x01,0x02, // 66 f
0x0c,0x52,0x52,0x52,0x3e, // 67 g
0x7f,0x08,0x04,0x04,0x78, // 68 h
0x00,0x44,0x7d,0x40,0x00, // 69 i
0x20,0x40,0x44,0x3d,0x00, // 6a j
0x7f,0x10,0x28,0x44,0x00, // 6b k
0x00,0x41,0x7f,0x40,0x00, // 6c l
0x7c,0x04,0x18,0x04,0x78, // 6d m
0x7c,0x08,0x04,0x04,0x78, // 6e n
0x38,0x44,0x44,0x44,0x38, // 6f o
0x7c,0x14,0x14,0x14,0x08, // 70 p
0x08,0x14,0x14,0x18,0x7c, // 71 q
0x7c,0x08,0x04,0x04,0x08, // 72 r
0x48,0x54,0x54,0x54,0x20, // 73 s
0x04,0x3f,0x44,0x40,0x20, // 74 t
0x3c,0x40,0x40,0x20,0x7c, // 75 u
0x1c,0x20,0x40,0x20,0x1c, // 76 v
0x3c,0x40,0x30,0x40,0x3c, // 77 w
0x44,0x28,0x10,0x28,0x44, // 78 x
0x0c,0x50,0x50,0x50,0x3c, // 79 y
0x44,0x64,0x54,0x4c,0x44, // 7a z
0x00,0x08,0x36,0x41,0x00, // 7b
0x00,0x00,0x7f,0x00,0x00, // 7c
0x00,0x41,0x36,0x08,0x00, // 7d
0x10,0x08,0x08,0x10,0x08, // 7e
0x78,0x46,0x41,0x46,0x78,  // 7F
                  0x7C,0x09,0x05,0x05,0x78,  // 80 -> ñ
                  0x7E,0x05,0x09,0x11,0x7E   // 81 -> Ñ
                  }; // 7f



////////////////////////////////////////////////////////////////////////////////
// Envía en serie todos los bits del byte pasado
////////////////////////////////////////////////////////////////////////////////
void nokia_write_dorc(byte bytefornokia)
{
char caa;
   for (caa=8;caa>0;caa--) {
nok_sclk=0;
delay_us(2);
if ((bytefornokia&0x80)==0) {
         nok_sda=0;
      }
else {
         nok_sda=1;
      }
nok_sclk=1;
bytefornokia=bytefornokia<<1;
}
}

////////////////////////////////////////////////////////////////////////////////
// Prepara a la LCD para que guarde el byte en la RAM (para que lo muestre
////////////////////////////////////////////////////////////////////////////////
void nokia_write_data(byte bytefornokia_data)
{
   nok_dc=1;
   nok_cs=0; // chip enabled
   nokia_write_dorc(bytefornokia_data);   // Rutina que manda en serie los bits
   nok_cs=1; // chip disabled
}


////////////////////////////////////////////////////////////////////////////////
// Escribe un comando en el nokia. Para los comandos se activa D/C
////////////////////////////////////////////////////////////////////////////////
void nokia_write_command(byte bytefornokia_command)
{
   nok_dc=0; // byte is a command it is read with the eight SCLK pulse
   nok_cs=0; // chip enabled
   nokia_write_dorc(bytefornokia_command);
   nok_cs=1; // chip disabled
}

////////////////////////////////////////////////////////////////////////////////
// Escribe en la LCD el caracter pasado
////////////////////////////////////////////////////////////////////////////////
void nokia_printchar(byte caracter)
{
byte char_row,charpos,chardata;

   if(caracter==0xF1) caracter=0x80;
   else if(caracter==0xD1) caracter=0x81;
   else if (caracter<0x20) return;
   else if (caracter>0x7f) return;

for (char_row=0;char_row<5;char_row++) {           // Son 5 Bytes por caracter
                                                   // Por eso este bucle
   if (caracter<0x50) {
      charpos=(((caracter&0xff)-0x20)*5)+char_row;
      chardata=ASCII_TABLE1[charpos];
      }

   else if (caracter>0x4f) {
      charpos=(((caracter&0xff)-0x50)*5)+char_row;
      chardata=ASCII_TABLE2[charpos];
      }
nokia_write_data(chardata);                    // Manda el caracter
   }
nokia_write_data(0x00);                           // Mandamos 1 espacio Blanco
}


////////////////////////////////////////////////////////////////////////////////
// Posicionamiento en la pantalla
////////////////////////////////////////////////////////////////////////////////
void nokia_gotoxy(byte xnokia, byte ynokia) // Nokia LCD 3310 Position cursor
{
nokia_write_command(0x40|(ynokia&0x07)); // Y axe initialisation: 0100 0yyy
nokia_write_command(0x80|(xnokia&0x7f)); // X axe initialisation: 1xxx xxxx
}


////////////////////////////////////////////////////////////////////////////////
// Limpiamos la RAM (la pantalla)
////////////////////////////////////////////////////////////////////////////////
void nokia_clean_ddram(void)
{
int16 ddram;  //cambiar por la del rtc del tio eso

   nokia_gotoxy(0,0);                  // Vamos al principio
   for (ddram=504;ddram>0;ddram--) {   // bucle estableciendo cada byte a 0x00
      nokia_write_data(0x00);
   }
}


////////////////////////////////////////////////////////////////////////////////
// Inicialización de la pantalla
////////////////////////////////////////////////////////////////////////////////
void Lcd_init(void) {
   TRISB = 0;
   delay_us(200);       // Pequeño delay de seguridad
nok_dc=1; // Destino de Bytes -> RAM
nok_cs=1; // Desactivamos el Driver para que se inicialice
   delay_ms(10);
nok_res=0; // Y damos un pulso de reset según indica el datasheet
delay_ms(250); // durante 1us.
nok_res=1;
nokia_write_command(0x21); // Activamos los comandos extendidos
nokia_write_command(0x90); // Definimos el Vop. Establecerá la tensión interna del cristal (su contraste)
nokia_write_command(0x13); // bias 13. Min 10 Max 17
nokia_write_command(0x20); // Modo horizontal, de izq. a dcha. Se incrementa la posición automáticamente
   nokia_write_command(0x09); // all on
delay_ms(50);
nokia_clean_ddram();        // Limpiamos la RAM para que no haya basura en la LCD
delay_ms(10);
nokia_write_command(0x0c); // mod control normal change
}

No me funciona, no me sale en la pantalla nada de nada.  :cry: :cry:

Desconectado vtasco

  • PIC12
  • **
  • Mensajes: 72
Re: Lcd nokia 3310
« Respuesta #1 en: 16 de Marzo de 2009, 23:03:03 »
Código: [Seleccionar]
[quote author=Trust link=topic=25223.msg206210#msg206210 date=1237253407]
...

Estas 2 lineas no las he cambiado:

[code]
#byte PORTB=6                 // Dirección del PortB
#byte TRISB=0x86              // Dirección Del TrisB
[/code]


[/quote]

hola, esas direcciones son para la familia 16F, tienes que poner las direcciones correctas para la familia 18F (que estás usando tu)
portb=F81h
trisb=f93H
« Última modificación: 17 de Marzo de 2009, 11:23:12 por vtasco »

Desconectado Trust

  • PIC16
  • ***
  • Mensajes: 141
Re: Lcd nokia 3310
« Respuesta #2 en: 16 de Marzo de 2009, 23:59:01 »
En la pagina lcd nokia 3310 Cucaweb pone que las fuentes son para un 18F252. De todas formas he puesto los valores que me has puesto y tampoco me funciona. ¿Tengo bien configurado el programa?

Creo que he puesto al reves Vdd y Gnd.
¿Se puede estropear si lo conecto al reves?

Cuando consiga hacer funcionar este lcd, probare los lcd con el controlador KS0108.
Pero de momento ya no se que hacer para que me funcione. :(
« Última modificación: 17 de Marzo de 2009, 11:05:48 por Trust »

Desconectado Trust

  • PIC16
  • ***
  • Mensajes: 141
Re: Lcd nokia 3310
« Respuesta #3 en: 19 de Marzo de 2009, 17:55:10 »
Sigue sin funcionarme,  :(.
He hecho otra vez el circuito, pero esta vez a Vdd le meto 5v y aun asi tampoco me funciona.
Si podeis mirad el codigo por si hubiera algun fallo. Uso un 18f4550, cristal de 4 Mhz.

Adjunto tambien 2 fotos, una de la pantalla (si no me equivoco el pin 1 es el de la derecha) y la otra del circuito que consta del divisor de tension para conseguir el voltaje de 3 y pico voltios, el condensador de 1uf y la plaquita adaptadora para conectarla a la pantalla (que es de la pagina cucaweb de cucaracha).

Si veis algo que no os guste me lo decis.





El codigo:
Código: [Seleccionar]

//Este programa utiliza un lcd del Nokia 3310
#include <18f4550.h>  // PIC que se va a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,nolvp  //Ordenes para el programador
#use delay(clock=4000000) 
#Include <nokia_lcd.c>


#byte PORTB=0xf81             // Dirección del PortB
#byte TRISB=0xf93          // Dirección Del TrisB


//definiciones
#byte PORTA=5
//#byte PORTB=6
#byte PORTC=7
#byte TRISA=0x85
//#byte TRISB=0x86
#byte TRISC=0x87
//

Byte CONST TABLE3 [249]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x78,0x04,0x02,0x01,0x00,0x00,0xC0,0xE0,0x30,0x10,0x18,
0x08,0x04,0x86,0xE1,0xF0,0x10,0x10,0x30,0x20,0x20,0x60,0x60,0x40,0x40,0x40,0x80,
0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,
0x18,0x20,0xE0,0xF0,0xD8,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0x7F,0x7F,0x7F,0xFE,0xFE,0xFE,0xFC,0xF8,0xF8,0xF0,
0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

Byte CONST TABLE4 [255]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x81,0x67,0x17,0x0E,0x0F,0x0F,0xFF,0x3F,0x1F,0x1F,
0x1F,0x1F,0x3F,0xFF,0xFF,0x3F,0x3F,0x3F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,0x7E,
0x7F,0x7F,0x7F,0x3F,0x1F,0x0E,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x4E,0x81,0x00,0x00,0x00,0x0E,0x11,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x04,0x04,0x09,0x93,
0xE7,0x86,0x06,0x06,0x02,0x02,0x03,0x03,0x03,0x01,0x01,0x01,0x02,0x02,0x02,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x00,0x00,0x00,0x00,0x1F,0x12,0x12,0x1E,0x00,0x02,0x6C,0x18,0x06,0x00,0x00,0x00,
0x00,0x0C,0x13,0x11,0x10,0x09,0x1E,0x10,0x10,0x1E,0x0C,0x12,0x12,0x12,0x0C,0x16,
0x12,0x1E,0x1E,0x06,0x02,0x06,0x0C,0x16,0x12,0x1E,0x00,0x0C,0x12,0x12,0x12,0x18,
0x1F,0x02,0x1E,0x0C,0x16,0x12,0x1E,0x00
};

Byte CONST TABLE5 [249]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x78,0x04,0x02,0x01,0x00,0x00,0xC0,0xE0,0x30,0x10,0x18,
0x08,0x04,0x86,0xE1,0xF0,0x10,0x10,0x30,0x20,0x20,0x60,0x60,0x40,0x40,0x40,0x80,
0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,
0x18,0x20,0xE0,0xF0,0xD8,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0x7F,0x7F,0x7F,0xFE,0xFE,0xFE,0xFC,0xF8,0xF8,0xF0,
0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

Byte CONST TABLE6 [255]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x40,0x20,0x21,0x17,0x17,0x0E,0x0F,0x0F,0xFF,0x3F,0x1F,0x1F,
0x1F,0x1F,0x3F,0xFF,0xFF,0x3F,0x3F,0x3F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,0x7E,
0x7F,0x7F,0x7F,0x3F,0x1F,0x0E,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x1C,0x62,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x11,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x04,0x04,0x09,0x93,
0xE7,0x86,0x06,0x06,0x02,0x02,0x03,0x03,0x03,0x01,0x01,0x01,0x02,0x02,0x02,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x1F,0x12,0x12,0x1E,0x00,0x02,0x6C,0x18,0x06,0x00,0x00,0x00,
0x00,0x0C,0x13,0x11,0x10,0x09,0x1E,0x10,0x10,0x1E,0x0C,0x12,0x12,0x12,0x0C,0x16,
0x12,0x1E,0x1E,0x06,0x02,0x06,0x0C,0x16,0x12,0x1E,0x00,0x0C,0x12,0x12,0x12,0x18,
0x1F,0x02,0x1E,0x0C,0x16,0x12,0x1E,0x00
};



Byte CONST TABLE7 [249]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x78,0x04,0x02,0x01,0x00,0x00,0xC0,0xE0,0x30,0x10,0x18,
0x08,0x04,0x86,0xE1,0xF0,0x10,0x10,0x30,0x20,0x20,0x60,0x60,0x40,0x40,0x40,0x80,
0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
0x18,0x20,0xE0,0xF0,0xD8,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0x7F,0x7F,0x7F,0xFE,0xFE,0xFE,0xFC,0xF8,0xF8,0xF0,
0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};


Byte CONST TABLE8 [255]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x40,0x20,0x21,0x17,0x17,0x0E,0x0F,0x0F,0xFF,0x3F,0x1F,0x1F,
0x1F,0x1F,0x3F,0xFF,0xFF,0x3F,0x3F,0x3F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,0x7E,
0x7F,0x7F,0x7F,0x3F,0x1F,0x0E,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x60,0x98,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x11,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x04,0x04,0x09,0x93,
0xE7,0x86,0x06,0x06,0x02,0x02,0x03,0x03,0x03,0x01,0x01,0x01,0x02,0x02,0x02,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x1F,0x12,0x12,0x1E,0x00,0x02,0x6C,0x18,0x06,0x00,0x00,0x00,
0x00,0x0C,0x13,0x11,0x10,0x09,0x1E,0x10,0x10,0x1E,0x0C,0x12,0x12,0x12,0x0C,0x16,
0x12,0x1E,0x1E,0x06,0x02,0x06,0x0C,0x16,0x12,0x1E,0x00,0x0C,0x12,0x12,0x12,0x18,
0x1F,0x02,0x1E,0x0C,0x16,0x12,0x1E,0x00
};



// Funcion Principal
void main(void)
{

int8 a;
int i;
   lcd_init();             // Inicialización LCD
   nokia_clean_ddram();    // La limpiamos (por si acaso)

for(i=0;i<5;i++){
    nokia_gotoxy(0,0);      // Nos ponemos en 0,0
   for (a=0;a<=248;a++){nokia_write_data(TABLE3[a]);} // Imprimimos el gráfico
   for (a=0;a<=254;a++){nokia_write_data(TABLE4[a]);}
   delay_ms(300);                                    // Espeamos, pa que se vea

    nokia_gotoxy(0,0);      // Nos ponemos en 0,0
   for (a=0;a<=248;a++){nokia_write_data(TABLE5[a]);} // Imprimimos el gráfico
   for (a=0;a<=254;a++){nokia_write_data(TABLE6[a]);}
   delay_ms(300);                                    // Espeamos, pa que se vea

    nokia_gotoxy(0,0);      // Nos ponemos en 0,0
   for (a=0;a<=248;a++){nokia_write_data(TABLE7[a]);} // Imprimimos el gráfico
   for (a=0;a<=254;a++){nokia_write_data(TABLE8[a]);}
   delay_ms(300);                                    // Espeamos, pa que se vea

    nokia_gotoxy(0,0);      // Nos ponemos en 0,0
   for (a=0;a<=248;a++){nokia_write_data(TABLE5[a]);} // Imprimimos el gráfico
   for (a=0;a<=254;a++){nokia_write_data(TABLE6[a]);}
   delay_ms(300);                                    // Espeamos, pa que se vea
}


   nokia_clean_ddram();                   // Limpiamos pantalla
   nokia_gotoxy(0,0);                     // Nos ponemos en 0,01
   printf(nokia_printchar,"abcdefghijklmn");  // Escribimos
   //nokia_gotoxy(0,1); no hay que poner esto ya que se escribe la fila entera..
   printf(nokia_printchar,"ñopqrstuvwxyzA");
   //nokia_gotoxy(0,2); ...aunque si se pone tampoco está mal
   printf(nokia_printchar,"BCDEFGHIJKLMNÑ");
   //nokia_gotoxy(0,3); idem
   printf(nokia_printchar,"OPQRSTUVWXYZ12");
   //nokia_gotoxy(0,4); idem
   printf(nokia_printchar,"34567890*/-+$#");
   //nokia_gotoxy(0,5); y más idem
   printf(nokia_printchar,"Listo!!    ;-)");
   delay_ms(500);

   a = 0x0C;
   while (1) {
      switch (a) {
         case 0x0c:
            nokia_write_command(0x0D);   // Modo normal
            a=0x0D;
            delay_ms(1000);
            break;
         case 0x0D:
            nokia_write_command(0x0C);   // Modo inverso
            a=0x0C;
            delay_ms(1000);
            break;
      }
   }
}


La libreria:

Código: [Seleccionar]
////////////////////////////////////////////////////////////////////////////////
// DESCRIPCIÓN DE LAS FUNCIONES
//
// void nokia_write_dorc(byte bytefornokia)              USO INTERNO
// void nokia_write_data(byte bytefornokia_data)         USO INTERNO
// void nokia_printchar(byte caracter)                   IMPRIME EL CARACTER
// void nokia_write_command(byte bytefornokia_command)   MANDA EL COMANDO
// void nokia_gotoxy(byte xnokia, byte ynokia)           SE POSICIONA EN X/Y
// void nokia_clean_ddram(void)                          LIMPIA LA PANTALLA
// void Lcd_init(void)                                   INICIALIZA LA LCD
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// CONFIGURACION DE LA CONEXION
//
// Conectamos la LCD al PORTB en los pines indicados
//
////////////////////////////////////////////////////////////////////////////////
#byte PORTB=0xf81                 // Dirección del PortB
#byte TRISB=0xf93              // Dirección Del TrisB
#bit nok_sclk  = PORTB.2 // RB2
#bit nok_sda   = PORTB.1 // RB1
#bit nok_dc    = PORTB.4      // RB4
#bit nok_cs    = PORTB.3      // RB3
#bit nok_res   = PORTB.7 // RB7
// FIN CONFIGURACION
////////////////////////////////////////////////////////////////////////////////

/*
Tabla de Instrucciones de la LCD. Siempre con D/C=0

0010 0xyz      // X=1 -> Driver en OFF
                     Y=1 -> Direccionamiento Vertical
                     Z=1 -> Comandos Extendidos

Modo de pantalla
0000 1001   0x09 // Entera Negra
0000 1000   0x08 // Entera Blanco
0000 1100   0x0c // Modo Normal
0000 1101   0x0d // Vídeo Inverso

Control de Temperatura
0100 0100   0x44  // Coeficiente de temperatura 0
0100 0101   0x45  // Coeficiente de temperatura 1
0100 0110   0x46  // Coeficiente de temperatura 2
0100 0111   0x47  // Coeficiente de temperatura 3

Bias (Contraste?)
0001 0xxx         // Establece el valor para Bias

Vop
1xxx xxxx         // Establece el valor para Vop
*/

////////////////////////////////////////////////////////////////////////////////
// Necesitamos dos tablas para la conversión de ASCII a pixels gráficos
// 5 Bytes por caracter.
// Usamos DOS tablas porque tenemos 96 columnas x 5 bytes = 480 bytes
// y solo podemos tener tablas de 255 bytes

// F1-ñ -> 0xFC,0x09,0x05,0x05,0xF8
// D1-Ñ ->
byte CONST ASCII_TABLE1 [240]={
                  0x00,0x00,0x00,0x00,0x00, // 20 space
0x00,0x00,0x5f,0x00,0x00, // 21 !
0x00,0x07,0x00,0x07,0x00, // 22 "
0x14,0x7f,0x14,0x7f,0x14, // 23 #
0x24,0x2a,0x7f,0x2a,0x12, // 24 $
0x23,0x13,0x08,0x64,0x62, // 25 %
0x36,0x49,0x55,0x22,0x50, // 26 &
0x00,0x05,0x03,0x00,0x00, // 27 '
0x00,0x1c,0x22,0x41,0x00, // 28 (
0x00,0x41,0x22,0x1c,0x00, // 29 )
0x14,0x08,0x3e,0x08,0x14, // 2a *
0x08,0x08,0x3e,0x08,0x08, // 2b +
0x00,0x50,0x30,0x00,0x00, // 2c ,
0x08,0x08,0x08,0x08,0x08, // 2d -
0x00,0x60,0x60,0x00,0x00, // 2e .
0x20,0x10,0x08,0x04,0x02, // 2f /
0x3e,0x51,0x49,0x45,0x3e, // 30 0
0x00,0x42,0x7f,0x40,0x00, // 31 1
0x42,0x61,0x51,0x49,0x46, // 32 2
0x21,0x41,0x45,0x4b,0x31, // 33 3
0x18,0x14,0x12,0x7f,0x10, // 34 4
0x27,0x45,0x45,0x45,0x39, // 35 5
0x3c,0x4a,0x49,0x49,0x30, // 36 6
0x01,0x71,0x09,0x05,0x03, // 37 7
0x36,0x49,0x49,0x49,0x36, // 38 8
0x06,0x49,0x49,0x29,0x1e, // 39 9
0x00,0x36,0x36,0x00,0x00, // 3a :
0x00,0x56,0x36,0x00,0x00, // 3b ;
0x08,0x14,0x22,0x41,0x00, // 3c <
0x14,0x14,0x14,0x14,0x14, // 3d =
0x00,0x41,0x22,0x14,0x08, // 3e >
0x02,0x01,0x51,0x09,0x06, // 3f ?
0x32,0x49,0x79,0x41,0x3e, // 40 @
0x7e,0x11,0x11,0x11,0x7e, // 41 A
0x7f,0x49,0x49,0x49,0x36, // 42 B
0x3e,0x41,0x41,0x41,0x22, // 43 C
0x7f,0x41,0x41,0x22,0x1c, // 44 D
0x7f,0x49,0x49,0x49,0x41, // 45 E
0x7f,0x09,0x09,0x09,0x01, // 46 F
0x3e,0x41,0x49,0x49,0x7a, // 47 G
0x7f,0x08,0x08,0x08,0x7f, // 48 H
0x00,0x41,0x7f,0x41,0x00, // 49 I
0x20,0x40,0x41,0x3f,0x01, // 4a J
0x7f,0x08,0x14,0x22,0x41, // 4b K
0x7f,0x40,0x40,0x40,0x40, // 4c L
0x7f,0x02,0x0c,0x02,0x7f, // 4d M
0x7f,0x04,0x08,0x10,0x7f, // 4e N
0x3e,0x41,0x41,0x41,0x3e}; // 4f O


byte CONST ASCII_TABLE2 [250]={
                  0x7f,0x09,0x09,0x09,0x06, // 50 P
0x3e,0x41,0x51,0x21,0x5e, // 51 Q
0x7f,0x09,0x19,0x29,0x46, // 52 R
0x46,0x49,0x49,0x49,0x31, // 53 S
0x01,0x01,0x7f,0x01,0x01, // 54 T
0x3f,0x40,0x40,0x40,0x3f, // 55 U
0x1f,0x20,0x40,0x20,0x1f, // 56 V
0x3f,0x40,0x38,0x40,0x3f, // 57 W
0x63,0x14,0x08,0x14,0x63, // 58 X
0x07,0x08,0x70,0x08,0x07, // 59 Y
0x61,0x51,0x49,0x45,0x43, // 5a Z
0x00,0x7f,0x41,0x41,0x00, // 5b [
0x02,0x04,0x08,0x10,0x20, // 5c
0x00,0x41,0x41,0x7f,0x00, // 5d
0x04,0x02,0x01,0x02,0x04, // 5e
0x40,0x40,0x40,0x40,0x40, // 5f
0x00,0x01,0x02,0x04,0x00, // 60
0x20,0x54,0x54,0x54,0x78, // 61 a
0x7f,0x48,0x44,0x44,0x38, // 62 b
0x38,0x44,0x44,0x44,0x20, // 63 c
0x38,0x44,0x44,0x48,0x7f, // 64 d
0x38,0x54,0x54,0x54,0x18, // 65 e
0x08,0x7e,0x09,0x01,0x02, // 66 f
0x0c,0x52,0x52,0x52,0x3e, // 67 g
0x7f,0x08,0x04,0x04,0x78, // 68 h
0x00,0x44,0x7d,0x40,0x00, // 69 i
0x20,0x40,0x44,0x3d,0x00, // 6a j
0x7f,0x10,0x28,0x44,0x00, // 6b k
0x00,0x41,0x7f,0x40,0x00, // 6c l
0x7c,0x04,0x18,0x04,0x78, // 6d m
0x7c,0x08,0x04,0x04,0x78, // 6e n
0x38,0x44,0x44,0x44,0x38, // 6f o
0x7c,0x14,0x14,0x14,0x08, // 70 p
0x08,0x14,0x14,0x18,0x7c, // 71 q
0x7c,0x08,0x04,0x04,0x08, // 72 r
0x48,0x54,0x54,0x54,0x20, // 73 s
0x04,0x3f,0x44,0x40,0x20, // 74 t
0x3c,0x40,0x40,0x20,0x7c, // 75 u
0x1c,0x20,0x40,0x20,0x1c, // 76 v
0x3c,0x40,0x30,0x40,0x3c, // 77 w
0x44,0x28,0x10,0x28,0x44, // 78 x
0x0c,0x50,0x50,0x50,0x3c, // 79 y
0x44,0x64,0x54,0x4c,0x44, // 7a z
0x00,0x08,0x36,0x41,0x00, // 7b
0x00,0x00,0x7f,0x00,0x00, // 7c
0x00,0x41,0x36,0x08,0x00, // 7d
0x10,0x08,0x08,0x10,0x08, // 7e
0x78,0x46,0x41,0x46,0x78,  // 7F
                  0x7C,0x09,0x05,0x05,0x78,  // 80 -> ñ
                  0x7E,0x05,0x09,0x11,0x7E   // 81 -> Ñ
                  }; // 7f



////////////////////////////////////////////////////////////////////////////////
// Envía en serie todos los bits del byte pasado
////////////////////////////////////////////////////////////////////////////////
void nokia_write_dorc(byte bytefornokia)
{
char caa;
   for (caa=8;caa>0;caa--) {
nok_sclk=0;
delay_us(2);
if ((bytefornokia&0x80)==0) {
         nok_sda=0;
      }
else {
         nok_sda=1;
      }
nok_sclk=1;
bytefornokia=bytefornokia<<1;
}
}

////////////////////////////////////////////////////////////////////////////////
// Prepara a la LCD para que guarde el byte en la RAM (para que lo muestre
////////////////////////////////////////////////////////////////////////////////
void nokia_write_data(byte bytefornokia_data)
{
   nok_dc=1;
   nok_cs=0; // chip enabled
   nokia_write_dorc(bytefornokia_data);   // Rutina que manda en serie los bits
   nok_cs=1; // chip disabled
}


////////////////////////////////////////////////////////////////////////////////
// Escribe un comando en el nokia. Para los comandos se activa D/C
////////////////////////////////////////////////////////////////////////////////
void nokia_write_command(byte bytefornokia_command)
{
   nok_dc=0; // byte is a command it is read with the eight SCLK pulse
   nok_cs=0; // chip enabled
   nokia_write_dorc(bytefornokia_command);
   nok_cs=1; // chip disabled
}

////////////////////////////////////////////////////////////////////////////////
// Escribe en la LCD el caracter pasado
////////////////////////////////////////////////////////////////////////////////
void nokia_printchar(byte caracter)
{
byte char_row,charpos,chardata;

   if(caracter==0xF1) caracter=0x80;
   else if(caracter==0xD1) caracter=0x81;
   else if (caracter<0x20) return;
   else if (caracter>0x7f) return;

for (char_row=0;char_row<5;char_row++) {           // Son 5 Bytes por caracter
                                                   // Por eso este bucle
   if (caracter<0x50) {
      charpos=(((caracter&0xff)-0x20)*5)+char_row;
      chardata=ASCII_TABLE1[charpos];
      }

   else if (caracter>0x4f) {
      charpos=(((caracter&0xff)-0x50)*5)+char_row;
      chardata=ASCII_TABLE2[charpos];
      }
nokia_write_data(chardata);                    // Manda el caracter
   }
nokia_write_data(0x00);                           // Mandamos 1 espacio Blanco
}


////////////////////////////////////////////////////////////////////////////////
// Posicionamiento en la pantalla
////////////////////////////////////////////////////////////////////////////////
void nokia_gotoxy(byte xnokia, byte ynokia) // Nokia LCD 3310 Position cursor
{
nokia_write_command(0x40|(ynokia&0x07)); // Y axe initialisation: 0100 0yyy
nokia_write_command(0x80|(xnokia&0x7f)); // X axe initialisation: 1xxx xxxx
}


////////////////////////////////////////////////////////////////////////////////
// Limpiamos la RAM (la pantalla)
////////////////////////////////////////////////////////////////////////////////
void nokia_clean_ddram(void)
{
int16 ddram;  //cambiar por la del rtc del tio eso

   nokia_gotoxy(0,0);                  // Vamos al principio
   for (ddram=504;ddram>0;ddram--) {   // bucle estableciendo cada byte a 0x00
      nokia_write_data(0x00);
   }
}


////////////////////////////////////////////////////////////////////////////////
// Inicialización de la pantalla
////////////////////////////////////////////////////////////////////////////////
void Lcd_init(void) {
   TRISB = 0;
   delay_us(200);       // Pequeño delay de seguridad
nok_dc=1; // Destino de Bytes -> RAM
nok_cs=1; // Desactivamos el Driver para que se inicialice
   delay_ms(10);
nok_res=0; // Y damos un pulso de reset según indica el datasheet
delay_ms(250); // durante 1us.
nok_res=1;
nokia_write_command(0x21); // Activamos los comandos extendidos
nokia_write_command(0x90); // Definimos el Vop. Establecerá la tensión interna del cristal (su contraste)
nokia_write_command(0x13); // bias 13. Min 10 Max 17
nokia_write_command(0x20); // Modo horizontal, de izq. a dcha. Se incrementa la posición automáticamente
   nokia_write_command(0x09); // all on
delay_ms(50);
nokia_clean_ddram();        // Limpiamos la RAM para que no haya basura en la LCD
delay_ms(10);
nokia_write_command(0x0c); // mod control normal change
}




Si veis algo que este mal o pensais algo que este haciendo mal, me lo decis por favor.

Saludos.
« Última modificación: 19 de Marzo de 2009, 18:09:18 por Trust »

Desconectado nico

  • PIC16
  • ***
  • Mensajes: 180
Re: Lcd nokia 3310
« Respuesta #4 en: 19 de Marzo de 2009, 21:45:22 »
Haber, que has conectado al reves, el micro o el display, porque cualquiera de los dos que los hayas conectado a la alimentacion al reves no deberia funcionar mas. Generalmente, y te diria en todos los casos, si los polarizas mal fuiste.

Porque no pruebas el micro con otro programa simple, apagar y prender un led por cualquiera de los puertos, asi sales de la duda si el micro funciona. Prueba con un osciloscopio si las señales que salen por los pines y van hacia el display son las correctas.

Pero antes que nada, asegurate que el micro funcione, sino estaras modificando el codigo hasta el cansancio sin necesidad.

Slds.
Nico.

Desconectado Trust

  • PIC16
  • ***
  • Mensajes: 141
Re: Lcd nokia 3310
« Respuesta #5 en: 19 de Marzo de 2009, 22:49:42 »
Gracias por responder, el micro funciona bien y no lo he conectado al reves. Con la lcd si que me equivoque al primer intento y lo conecte al reves.
Si que se que si se conectan al reves vdd y gnd en un lcd de 16x2 ya no vuelven a funcionar por que me paso una vez, pero en el caso del lcd nokia 3310 no lo se.
¿alguien ha conectado mal este lcd y le ha seguido funcionando?

Tengo otro lcd pero quiero asegurarme primero de que esta todo bien.


Desconectado Trust

  • PIC16
  • ***
  • Mensajes: 141
Re: Lcd nokia 3310
« Respuesta #6 en: 20 de Marzo de 2009, 20:56:53 »
Buscando mas fotos y esquemas he encontrado una en la que sale un pequeño circuito que esta en la pantalla y mi pantalla no tiene ese circuito. Pongo una foto para que se vea lo que digo.
Lo he marcado en rojo.
¿Que hace ese circuito?



Sigo sin poderlo hacer andar. :oops:

Desconectado kcire

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 84
Re: Lcd nokia 3310
« Respuesta #7 en: 20 de Marzo de 2009, 22:18:14 »
Hola Trust, contarte que a mi me funciono bien y eso que utilice un PIC16F877A y CCS, mañana me saco el tiempo para probar tu codigo, con respecto al circuito la verdad no lo recuerdo muy bien ya fue hace mucho que probe este LCD pero podrias ver esta dirección donde lo explican con detalle, claro tambien proponen un ejmeplo que esta en ASM y no en C espero te sirva de algo:

h**p://www.x-robotics.com/hardware.htm#LCD Gráfico 84x48 pixels NOKIA 3310

Saludos... Erick
"La imaginación es más rica que el lenguaje... sugiere con palabras, la imaginación podrá hacer el resto."

Desconectado Trust

  • PIC16
  • ***
  • Mensajes: 141
Re: Lcd nokia 3310
« Respuesta #8 en: 20 de Marzo de 2009, 22:45:36 »
Hola kcire, muchas gracias por tu ayuda. Si puedes probar el codigo, si te funciona o no me lo dices.

Mañana probare el circuito que hay en x-robotics.com, espero que ese sepa yo hacerlo funcionar.

Saludos.

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: Lcd nokia 3310
« Respuesta #9 en: 21 de Marzo de 2009, 02:14:30 »
Hola Trust, yo probe ese circuito y si funciona

http://www.todopic.com.ar/foros/index.php?topic=13812.msg87000#msg87000

Saludos
Hugo
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado Trust

  • PIC16
  • ***
  • Mensajes: 141
Re: Lcd nokia 3310
« Respuesta #10 en: 21 de Marzo de 2009, 07:16:13 »
Hola Veguepic, muchas gracias. Hoy montare el circuito y lo pruebo.
Espero no haber estropeado mi lcd con tantas pruebas y que me funcione.
 :-)
Saludos.

Desconectado xp8100

  • PIC12
  • **
  • Mensajes: 71
Re: Lcd nokia 3310
« Respuesta #11 en: 20 de Enero de 2010, 15:55:19 »
Saludos.

Disculpen si no es el lugar oportuno para esta pregunta.

He comprado en eBAY un LCD 3310 y me han enviado un LCD + carcasa + Altavoz.

Me gustaría saber cual es el mejor método para eliminar la carcasa y dejar el LCD libre, sin cargarme nada.

(Taladrar los remaches de plástico, tirar de cuter, aplastarlo con un tomo del ESPASA CALPE :-))

Me encantaría adjuntar una imagen, pero no tengo ni idea de como hacerlo así que espero perdoneis mi ignorancia.

Gracias anticipadas

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Lcd nokia 3310
« Respuesta #12 en: 20 de Enero de 2010, 19:37:21 »
Me anoto al hilo por si alguien responde. Yo no tuve el valor suficiente de quitarle los plásticos al mío.

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: Lcd nokia 3310
« Respuesta #13 en: 20 de Enero de 2010, 20:15:44 »
Supongo que te refieres a este

http://cgi.ebay.com/NEW-LCD-WITH-SPEAKER-AND-CONNECTOR-FOR-NOKIA-3310_W0QQitemZ270508601117QQcmdZViewItemQQptZUK_Mobiles_Accessories_RL?hash=item3efb91af1d

Me habia olvidado que tengo uno igual, la de cosas que uno compra y van al cajon de los olvidos.  :( :(

Yo no lo sacaria de ahi, pues puedes aprovechar el soporte mismo para perforarlo y luego fijarlo con tornillos.

Si lo sacas de ahi la unica manera que se me ocurrio de fijarlo fue asi



Lo que pasa es que el tipo que me vendio el LCD me lo dio sin la carcasa metalica ni el plastico de soporte, como no queria soldarle nada en los contactos decidi hacerle el soporte con varias fundas de CDs pegadas, fue un poco laborioso pero al fin lo termine, solo falta hacerle los agujeros bien alineaditos y sus respetivos tornillos.

Creo que me quedo corto cuando dije que fue un poco laborioso.  :D :D

Saludos
« Última modificación: 20 de Enero de 2010, 22:57:36 por Veguepic »
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Lcd nokia 3310
« Respuesta #14 en: 21 de Enero de 2010, 03:10:13 »
Bueno no me e leido too el post completo pero AQUI hago un estudio exhaustivo xD a este LCD y alfinal de todo el problema era el contraste, habia que modificarlo y blabla. Dale una revisada que esta todo bien documentado ja

Espero te sirva.
Salu2.