1 feb 2011

ESCRIBIR EN UN LCD GRÁFICO CON EL PIC18F4550

En la programación del pic para controlar e introducir dibujos en el gráfico debemos declarar inicialmente las dos libreria correspondientes (#include <HDM64GS12.c>           //Libreria para el LCD Grafico.
#include <graphics.c>            //libreria para poder introducir dibujos en el LCD grafico). Además de estas librerías tenemos que declarar que vamos a utilizar el oscilador interno y que va a funcionar a 8Mhz.

Después declaro unos cuantos "char" para introducir los textos. Utilizo esta función porque el LDC gráfico no funciona como un LCD normal.

una vez introducido el texto, he introducido un rectángulo que hace de marco, otro rectángulo negro, en el que e introducido un círculo blanco y una C blanca en el centro de ambos.

PROGRAMACIÓN:


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//   AUTOR: CLARA ALONSO FERNÁNDEZ                                    25/Enero/2011
////////////////////////////////////////////////////////////////////////////////////
//   PROGRAMA: Esribir en un LCD gráfico.             VERSIÓN: 1.0
//   DISPOSITIVO: PIC 16F4550                         COMPILADOR:  PCWHC Compiler v4,093
//   Entorno IDE:                                     SIMULADOR:  Proteus 7.7 sp2
//   TARJETA DE APLICACIÓN:                           DEBUGGER:   
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Escribir en un LCD GRÁFICO de 128x64 pixeles mi nombre y apellidos, el nombre del centro//
// e introducir unos dibujos.///////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CABECERA ///////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include <18f4550.h>
#fuses INTHS                     //Selecciona el oscilador interno.
#use delay(internal=8Mhz)        //Configurar el oscilador a 8Mhz.
#include <HDM64GS12.c>           //Libreria para el LCD Grafico.
#include <graphics.c>            //libreria para poder introducir dibujos en el LCD grafico.

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VARIABLES GLOBALES ////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

char nombre[]="CLARA";
char apellidos[]="ALONSO FERNANDEZ";
char centro[]="CIFPN1";
char C[]="C";

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FUNCIONES //////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// PRINCIPAL /////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void main()
{
   glcd_init(on);                      //Habilita el LCD gráfico.
   glcd_text57(50,10,nombre,1,ON);       //Escribe CLARA en la posición 50,10.
   glcd_text57(15,20,apellidos,1,ON);   //Escribe ALONSO FERNANDEZ en la posición 15,20.
   glcd_text57(05,55,centro,1,ON);     //Ecribir las iniciales del centro en la esquina inferior izquierda.
   //Introduce rectángulos.
   glcd_rect(00,127,127,00,NO,ON);     //Dibuja el rectángulo del borde.
   glcd_rect(85,38,110,55,YES,ON);     //Dibuja el rectángulo negro.
  //Introduce un circulo dentro del cuadrado negro.
   glcd_circle(97,47,8,NO,OFF); 
   //Introduce una C dentro del círculo que está a su vez dentro del rectángulo negro.
   glcd_text57(95,44,C,1,OFF);

}


Una vez hecha la programación, el siguiente paso es la simulación en el ISI para comprobar si funciona, y en el caso de que funcione se pasaría al diseño de la placa con el ARES.



Después de comprobar que funciona hacemos este otro diseño de la placa para cuando lo pasemos al ARES tener todos los componentes necesarios para hacer la placa real.



Así es como queda en el Ares una vez hecho el borde de la placa, colocados los componentes y el cableado.


Y así es como se ve en 3D.


                                VISTA DESDE ARRIBA:


                                 VISTA DESDE ABAJO:


Aquí os dejo un enlace para que os podáis descargar el programa: http://cid-64f7131e50857260.office.live.com/self.aspx/LCD%20GR%C3%81FICO/LCD%5E_GR%C3%81FICO.rar

2 comentarios:

Ch Medina dijo...

Hola, primero que todo muchas gracias por este programa he ha sido de mcuha utilidad, ha trabajado perfecto, pero tengo una pregunta. ¿Porque todo sale por el puerto B y D del pic? Si yo quisiera cambiar para el puerto C por ejemplo, que deberia hacer? o en donde se especifica que estos puertos son los que hay que utilizar?. Espero me hayas entendido la pregunta y puedas respondermela.

Muchas gracias :)

Jesus Gutiérrez dijo...

Si se puede, sólo debes ajustar los valores pines que necesita para ser configurada

Publicar un comentario

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes Powered by Blogger | DSW printable coupons