Autor Tema: GLCD Nokia 3310 en Proteus  (Leído 24222 veces)

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

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: GLCD Nokia 3310 en Proteus
« Respuesta #45 en: 15 de Agosto de 2009, 02:28:13 »
Vaya, enserio ?? 

Que condensador por al vout estas usando ?

Alguien podria darle una chequeada al .c que adjunte porfavor? Es que no encuentro ningun error, puesto que es lo que cucaracha dejo en su pagina. A menos que no funcione su programa, pero en la simulacion si que lo hace! No entiendoooo!


Muchas gracias por las pruebas que estas haciendo veguepic.
Salu2.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: GLCD Nokia 3310 en Proteus
« Respuesta #46 en: 17 de Agosto de 2009, 04:07:03 »
Lo acabo de probar tb con un 18F452, que tiene el mismo datasheet del 18F252 (el que uso cucaracha en su web) y... NADA!

Y lo mas raro es que a veguepic tampoco le funciona, mientras que a pablomanieri si le funciono probando con el .hex de la compativilizacion de la libreria de nocturno en C30 a CCS que hice posts atras  :?

Ya no me da para pensar que puede estar mal, en la simulacion funciona perfecto. Sera necesario comprar un 18f252??  oO!


Gracias a todos, salu2.

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: GLCD Nokia 3310 en Proteus
« Respuesta #47 en: 17 de Agosto de 2009, 09:46:55 »
Yo lo probé utilizando un cristal de 20 Mhz y además adapté el código para usar el puerto A porque en la placa que tengo es el puerto que tenía libre. Los alimenté con 5v y anduvo.

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: GLCD Nokia 3310 en Proteus
« Respuesta #48 en: 17 de Agosto de 2009, 10:01:30 »
Prueba cambiando las dos líneas que siguen en el nokia-lcd.h:

Código: C
  1. ////////////////////////////////////////////////////////////////////////////////
  2. #byte PORTB=6                 // Dirección del PortB
  3. #byte TRISB=0x86              // Dirección Del TrisB

por
Código: C
  1. #byte PORTB=0xf81                 // Dirección del PortB
  2. #byte TRISB=0xf93              // Dirección Del TrisB

no se si influye, pero estas redefiniendo las direcciones del puerto b en la librería nokia-lcd (esas no son las direcciones correctas de los dos registros)y en el programa principal. Puede ser que ahí este el problema.
« Última modificación: 17 de Agosto de 2009, 10:11:29 por pablomanieri »

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: GLCD Nokia 3310 en Proteus
« Respuesta #49 en: 19 de Agosto de 2009, 16:00:34 »
Pablomanieri, has probado lo ultimo que adjunte y te funciono? Me refiero a ESTO

Caso contrario, puedes hacerlo porfavor? Porque creo que tu solo probaste la compatibilizacion de C30 a CCS. Quisiera saber si a ti te funciona ya que a Veguepic tampoco le funciona.


Gracias por la ayuda.
Salu2.

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: GLCD Nokia 3310 en Proteus
« Respuesta #50 en: 19 de Agosto de 2009, 16:43:14 »
No eso no lo probé. Cunado me haga un poco de tiempo lo pruebo. voy a tener que ir a comprar un cristal de 4 Mhz. Saludos.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: GLCD Nokia 3310 en Proteus
« Respuesta #51 en: 20 de Agosto de 2009, 00:26:53 »
Gracias, pero si es necesario puedes compatibilizarlo tb a 20 mhz ya que a veguepic no le funciono y pues no tengo ni idea ya de que pueda estar mal.

Gracias por la ayuda eh.
Salu2.

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: GLCD Nokia 3310 en Proteus
« Respuesta #52 en: 20 de Agosto de 2009, 01:04:30 »
Jeremy, el condensador es de 1 uf entre pin 7 y masa.

Saludos
“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: GLCD Nokia 3310 en Proteus
« Respuesta #53 en: 23 de Agosto de 2009, 17:17:55 »
Con ese mismo lo he probado, tambien con uno de 10uf como Nocturno, pero aun asi, nada =S

GRacias veguepic.
Salu2.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: GLCD Nokia 3310 en Proteus
« Respuesta #54 en: 29 de Agosto de 2009, 18:53:12 »
pablomanieri qfue? lo pudist probar? Yo sigo sin poderlo hacrerlo andar, maldicion!


Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: GLCD Nokia 3310 en Proteus
« Respuesta #55 en: 22 de Noviembre de 2009, 19:45:49 »
Uff que chulada JEremylF  :-/ :-/ :-/

Saludos!

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: GLCD Nokia 3310 en Proteus
« Respuesta #56 en: 17 de Diciembre de 2009, 06:41:22 »
Y yo sigo con esto... Ahora e hasta echo conexion con los pines de un celular nokia hacia el PIC para hacerme un tipo de capturador de lo que bota el celular. Por lo que veo hay algunas cosas que no van con el datasheet, sinembargo el lcd funciona bien ahi, pues es el celular vamos! Me da miedo pensar que estos lcd's son diferentes aunq sean de un nokia 3310... podria pasar eso ??? Ojala no.

Mañana tengo otraves, ojala, otro lcd 3310 probare directamtn con el pic 18f452 a 4mhz y 3.3V haber que pasa, pues aora me e echo con una conexion de calbe del tipo que se usa en las computadoras para conectar la caja de cd's o de la disketera, ya mostrare unas fotos. Ojala funcione sino tendre q seguir con lo del capturador y pues crearme una libreria que haga eso pero eso seria espantoso.

Bueno, solo informarles la catastrofe que me a traido el poder utilizar este lcd, ya llevo mas de 6 meses intntadolo, bueno dejandolo por un bueno tiempo por cuestiones deestudio y eso pero igual, no crei que fuera tan dificil lograr acerlo fuciuonar, mas aun si en el $·"$%" proteus funciona de maravilla!

Estoy algo alterado, compresion porfavor xD!
Gracias a todos por la ayuda que me dieron y la que me peudan dar, nserio mcuhas gracias. Seguire digiriendo informacion de toda la que salga en el buscador y en el bendito google porque a eso es lo q me estado dedicando ultimant, es mas, hasta imprimi el pdf del controlador y todo, bueno sin aburrirlos mas, espero esto no le pase a mas personas, es muy frustrante  :D Aunq peor fue cuando lei que a aitopes le paso que un integrado (ram creo) no tenia chip en su interior, eso si fue horrible xD!

Bueno, a seguir qmando pics.
Salu2.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: GLCD Nokia 3310 en Proteus
« Respuesta #57 en: 18 de Diciembre de 2009, 03:55:26 »
Que tal! Esto ya me preocupa, hoy me hice otravez con este lcd... no funciona, vaya noticia. Lo que sucede es que ahora si no entiendo que puede estar mal. Veran e echo una seria de pruebas para descartar otros factores.. paso a contarles. Primero probe con su respectivo celular y funciono todo ok. Luego le solde un calbe IDE a este, ya soldado lo volvi a poner en el celular haciendo presion y funciono todo ok. Medi continuidad y todo y todo ok. Lo puse en el pic (pic18f452) con el programa de cucaracha y.. nada ni un pixel. Medi continuidad otravez desde el pic hasta el lcd y todo ok. Pense que seria por la distancia aunq he visto otros proyectos en que lo hacen hasta mas largo pero bueno, con mi calbe IDE, el mismo que va al pic, lo saque y lo solde al celular y... seguir funcionando el lcd. Vuelvo a ponerlo en el PIC revisando por millonesima vez continuidad y todo y... nada. Ya no entiendo que puede estar pasando, al principio pense que seria al hardware pero ahora es imposible, almenos la conexion pues hay continuidad y todo. De verdad que esto me esta causando dolores decabeza y ya no se que hacer. Ojala puedan ayudarme:

Programa:
Código: [Seleccionar]
#include <18F452.h>
#fuses XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,nolvp

//#FUSES MCLR, NOPBADEN

#use delay(clock=4000000)

//#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
};

#Include <nokia_lcd.c>

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

for(i=0;i<5;i++){ output_toggle(PIN_C0);
    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);   output_toggle(PIN_C0);
            break;
         case 0x0D:
            nokia_write_command(0x0C);   // Modo inverso
            a=0x0C;
            delay_ms(1000);   output_toggle(PIN_C0);
            break;
      }
   }
}

libreria nokia_lcd.c:
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
#BYTE PORTB=0xF81
#BYTE TRISB=0xF93
#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
// 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
}

Que mas? No croe que sea la versio del CCS, pero es la 4.023. Uso un PIC18F452, cristal de 4Mhz, un regulador LM1117 para obtener los 3.3V, tengo condensadores en los vss y vdd del pic de 104, para el lcd uso un condensador de 10uf en su pin Vout, en el pin del lcd vdd tambien he puesto un condensador 104... que mas? Es todo, y nada, nada de nada. Uso un led en C0 como test para saber que el programa esta corriendo bien.

En la simulacion con proteus 7.4 sp3 funciona bien. Dejo tambien la simulacion con el .hex.


Gracias.
Salu2

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: GLCD Nokia 3310 en Proteus
« Respuesta #58 en: 18 de Diciembre de 2009, 05:40:31 »
PORFIN!!!!!!!!!!!!!! Lo logre!!! funciono el bastardo!!!  :D
Recorde que Justo AQUI Pocher mencionaba que no le funciono por un problema con el contraste, pues no pense que seria eso ya que a cucaracha y a todo el mundo le a funcionado sin tener que modificar esto. Bueno, pues aunq Pocher no dijo a que valor cambio esto o algo parecido pues, me decidi a probar... A pesar de que no me esta muy claro como funciona esto de las Bias, Vop y Temperatura pude modificar el valor que tenia en el programa de cucaracha que era 16 a 80, y pues ya se ve algo, seguire probando para que se mantenga bien visto.

Decir que esto de los voltajes viene de la formula del datasheet en la pagina 16: VLCD = a + (Vop6 to Vop0) x b¨. Donde en el PCD8544 a = 3.06 y b = 0.06. Y hay q tener cuidado con cambiar esto pues este valor aumento cuando la temperatura del ambiente disminye... Casi no hago ningun cambio por esta advertencia pero me llego y mande todo al krajo y me arriesge y talan!! esta parpadeando, se ve hermoso! haha porfin!!!! PORFINN!!!!!!

Gracias a todos! Seguire comentando algunos avances, pondre fotos, videos lo que sea y, mas q nada, probare los codigos anteriores que hice sobre la compatibilizacion del C30 de nocturno a CCS.


Salu2.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: GLCD Nokia 3310 en Proteus
« Respuesta #59 en: 18 de Diciembre de 2009, 05:56:56 »
 :-/ :-/ :-/ :-/

Excelentes noticias!

Vaya que traigo ganas a esa libreria xD

Que bueno lo solucionaste , he andado por aqui de contrabando xD .

Saludos!


 

anything