TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Trust 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 (http://webs.ono.com/cucaracha/lcdnokia.htm)
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:
#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:
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:
#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:
//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:
////////////////////////////////////////////////////////////////////////////////
// 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:
-
[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
-
En la pagina lcd nokia 3310 Cucaweb (http://webs.ono.com/cucaracha/lcdnokia.htm) 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. :(
-
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.
(http://img16.imageshack.us/img16/8425/p3190225.th.jpg) (http://img16.imageshack.us/my.php?image=p3190225.jpg)
(http://img18.imageshack.us/img18/6000/p3190226.th.jpg) (http://img18.imageshack.us/my.php?image=p3190226.jpg)
El codigo:
//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:
////////////////////////////////////////////////////////////////////////////////
// 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.
-
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.
-
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.
-
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?
(http://img22.imageshack.us/img22/2628/imagemkpb.th.jpg) (http://img22.imageshack.us/my.php?image=imagemkpb.jpg)
Sigo sin poderlo hacer andar. :oops:
-
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
-
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.
-
Hola Trust, yo probe ese circuito y si funciona
http://www.todopic.com.ar/foros/index.php?topic=13812.msg87000#msg87000
Saludos
Hugo
-
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.
-
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
-
Me anoto al hilo por si alguien responde. Yo no tuve el valor suficiente de quitarle los plásticos al mío.
-
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
(http://img209.imageshack.us/img209/7928/16f628zh5.th.jpg) (http://img209.imageshack.us/my.php?image=16f628zh5.jpg)
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
-
Bueno no me e leido too el post completo pero AQUI (http://www.todopic.com.ar/foros/index.php?topic=27100.0) 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.
-
Yo tengo es LCD de NOKIA 3320, que es TDMA.... pero no consigo el datasheet o donde ver si es compatible... ademas, esta LCD usa unas almohadillas para hacer los contactos, en vez de las laminitas de cobre que se ven en la imagen! :( tambien tengo LCD de 6120.... (con almohadillas tambien)
gracias
-
Bueno les comento que me arriesgue e hice las conexiones a la lcd de 6120 TDMA y al parecer son las mismas que las de otras LCD de nokia...
esta tiene 9 pines, y el esquema de conexion lo saque de aqui: http://serdisplib.sourceforge.net/ser/pcd8544.html segun... esta LCD es del "tipo 2", agarre un pic 18f452 y recompile un archivo en c de cucaracha y funciono a la primera!
salu2
-
Pues enhorabuena por conseguirlo. Son unos LCD estupendos, con un gran contraste y muy fáciles de usar.
-
La verdad es que por poco dinero da un resultado cojonudo.
Lamentablemente yo de entrada me he cargado el que tengo despues de intentar soldar el conector, pero bueno .....
Ya he pedido 4 más a china.
Mal asunto para gente poco manitas como yo.
Un saludo.
-
Alguien sabra del datasheet del lcd del nokia 1600b o similar?? Esque su lcd es del tamaño del 3310 pero a color! Y al parecer, tambien es SPI.
Salu2.
-
Aqui les dejo una foto del sistema con pantalla nokia 6120 (compatible 5120, 5125 etc) funcionando con el HEX que publico Jeremy...
con respecto a las lcd a color del 1600 no hay mucha info pero hay para otros modelos, segun esta gente (http://forum.lcdinfo.com/viewtopic.php?t=586) hay dos tipos de controladores uno philips y uno epson. quizas ayude.
PD: al mejorar mis habilidades con estas LCD de un bit me sumo a las coloridas amigas de 12bits!
(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=25223.0;attach=11124)
-
Aqui les dejo una imagen de un PCB que me fabrique para conectar las LCD de los nokia con conectores de 10 pines... entre ellos los de nokia 1600, tanto para LCD a color como para LCD a blanco y negro...
espero aprender y experimentar bastante para postear resultados.
(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=25223.0;attach=11422)
-
Aqui les dejo una imagen de un PCB que me fabrique para conectar las LCD de los nokia con conectores de 10 pines... entre ellos los de nokia 1600, tanto para LCD a color como para LCD a blanco y negro...
espero aprender y experimentar bastante para postear resultados.
Hola, ¿dónde compraste el conector SMD? ¿En Sparkfun?
-
Hola! no, de hecho me acerque a un taller de reparación de celulares con la pantalla para la que necesitaba el conector y tenian montones de placas de nokia con este tipo de conector, asi que les pedi que me vendieran un conector y simplemente lo desoldaron y me lo regalaron :o. en este caso como les comente el conector es el de 10 pines.
también tengo el esquema de los pines de la LCD de algunos modelos de NOKIA para complementar con los datasheets de las LCDs
salu2
-
Hola! no, de hecho me acerque a un taller de reparación de celulares con la pantalla para la que necesitaba el conector y tenian montones de placas de nokia con este tipo de conector, asi que les pedi que me vendieran un conector y simplemente lo desoldaron y me lo regalaron :o. en este caso como les comente el conector es el de 10 pines.
también tengo el esquema de los pines de la LCD de algunos modelos de NOKIA para complementar con los datasheets de las LCDs
salu2
¿Tendrás datos sobre la Nokia 1600?
http://www.todopic.com.ar/foros/index.php?topic=29290.0