Sobre mi.

Mi foto
Santander, CANTABRIA, Spain
Bienvenido a mi Blog, soy César Zazo Serrano y os mostraré las actividades realizadas durante el curso 2012/2013 en la asignatura de desarrollo y construcción de prototipos electrónicos que imparte nuestro profesor Don José Luis Del Val en el Centro Integrado De Formación Profesional Nº1 situado en Peñacastillo.

martes, 4 de diciembre de 2012

LCD gráfico

Vamos a realizar un ejercicio en el que aprenderemos a utilizar un lcd gráfico  programando en PIC.
Será necesario utilizar la libreria <math.h> e indicar que utilizaremos el LCD gráfico <HDM64GS12.c>

Se adjunta descarga de archivo *.zip con codigo, diseño en proteus y los archivos cof y hex.
Descarga 



//////////////////////////////////////////////////////////////////////////////////////
//   AUTOR: Cesar Zazo Serrano      Noviembre  2012/////
/////////////////////////////////////////////////////////////////////////////////////
//   PROGRAMA:       Lcd_Gráfico                             //
//   DISPOSITIVO:    PIC 18F4550               COMPILADOR:  CCS 4.104 //  
//   Entorno IDE:                              SIMULADOR:   ISIS Proteus 7.8 //
//   TARJETA DE APLICACIÓN:                    DEBUGGER:   //
////////////////////////////////////////////////////////////////////////////////////
//   ENUNCIADO:   Escribir y dibujar en un LCD gráfico a través del PIC 18F4550   //
////////////////////////////////////////////////////////////////////////////////////
//   CABECERA //////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
#include <math.h>
#include <18f4550.h> // Seleccionamos el pic a utilizar
#fuses INTHS // activar el cristal
#use delay(Internal=8mhz) // utilizamos el reloj interno con el retardo indicado.
#include <HDM64GS12.c> // indicamos que utilizamos este LCD.
#include <graphics.c> // utilizamos esta librería para poder sacar gráficos en el LCD

////////////////////////////////////////////////////////////////////////////////////
//     VARIABLES                                                      //
////////////////////////////////////////////////////////////////////////////////////
float val2; // valor decimal que deseamos incluir en el lcd gráfico
char text1[]="CESAR"; // es la variable texto que en este caso será mi nombre.
char text2[]="ZAZO";
char text3[]="SERRANO";
char val[7]; //
////////////////////////////////////////////////////////////////////////////////////
//    PRINCIPAL                                                       //
////////////////////////////////////////////////////////////////////////////////////
void main()
{
   val2=77.87;
   
   do
   {
      glcd_init(on);                          //Inicializo el LCD.
      glcd_text57(5,0,text1,1,on);       //Escribo el texto que contiene la variable mensaje.
      delay_ms(250);
      glcd_text57(37,0,text2,1,on);
      delay_ms(250);
      glcd_text57(70,0,text3,1,on);
      delay_ms(250);
      glcd_circle(80,30, 4, Yes, ON);      //Dibujo círculo (x, y, radio, relleno, color). 
      delay_ms(250);
      glcd_circle(80,45, 10, no, ON); //Dibujo círculo relleno.
      delay_ms(250);
      glcd_circle(40,45, 10, no, ON);//Dibujo círculo  relleno.
      delay_ms(250);
      glcd_circle(40,30, 4, yes, ON);
      delay_ms(250);
      glcd_circle(40,45, 10, no, ON);
      delay_ms(250);
      glcd_rect(16,60,120,20,no,ON); Dibujo cuadrado (los dos primeros valores indican el punto de una de las esquinas y los dos siguientes el punto de la otra esquina, el siguiente valor (yes-no) referencia el relleno y el último el color.)
      delay_ms(250);
      sprintf(val,"%3.2f",val2);
      delay_ms(250);
      glcd_text57(37,15,val,1,on);
      delay_ms(250);
      glcd_bar(10, 10,56, 1, 10, 1);
   }
      //glcd_line(1,200,30,yes,on);      // Dibuja una línea desde el primer punto al segundo punto con el color dado
      while(true);
  }

Aquí mostramos una captura del diseño realizado en Proteus para que observéis que hemos partido del microcontrolador creado anteriormente.


Y por último un video en el que se puede ver en funcionamiento el programa en una placa microcontroladora.


No hay comentarios:

Publicar un comentario