GLCD 128x64 with PIC18F4620 testing code



GLCD 128x64 with PIC18F4620 testing code


This project is about testing GLCD 128x64 with PIC18F4620 micro controller using CCS compiler.

Hardware part
Microchip PIC18F4620 Microcontroller

GRAPHIC LCD 128*64 DOT STN NEGATIVE BLUE WHITE LED BLACK LIGHT


Software part
#include    <18F4620.h>

#define     TxD   PIN_C6
#define     RxD   PIN_C7
#device     ADC=10

#fuses      HS,NOWDT,NOPROTECT,NOLVP
#use        delay (clock = 20000000)
#use        rs232(baud = 9600, xmit = TxD, rcv = RxD, bits = 8)   // Port C
#define     Vbe      0.00488758        // Constant Parameter

#include    <include\font.c>
#include    <include\k0108.c>

//-----------------------------------------------------------------------------//
void init_io (void)
{

      setup_comparator(NC_NC_NC_NC);

      set_tris_a (0b00000011);   // ADC CH0, CH1
      set_tris_b (0b00000000);   //Port B = output
      set_tris_c (0b10000000);   //Port C = output
                                 /*
                                       RC6 = TxD
                                       RC7 = RxD
                                 */
}
//-----------------------------------------------------------------------------//
void main() {

      int16 value_adc1,value_adc2;

      float volt1, volt2;
      unsigned int bar1,bar2;
      char buf[24];
     
      init_io ();

      setup_adc_ports(ALL_ANALOG);
      setup_adc      (ADC_CLOCK_INTERNAL);

      printf ("\f\n\rSoftware Compile Date : ");
      printf (__DATE__); printf (" / ");
      printf (__TIME__);
      printf ("\n\rBy microcontrollerkits.blogspot.com/\n\n");

      while (1)
      {

         lcd ();
        
         while (1)
         {
              set_adc_channel(0); 
              value_adc1 = Read_ADC();
              volt1 = (Vbe * (float)value_adc1);
              delay_ms (100);
             
              set_adc_channel(1); 
              value_adc2 = Read_ADC();
              volt2 = (Vbe * (float)value_adc2);
              delay_ms (100);

           
              bar1 = (int8)(volt1*10);
              bar2 = (int8)(volt2*10);
              //send to RS232
              printf ("\rA/D(1) -> %1.2f Volt and A/D(2) -> %1.2f Volt",volt1,volt2);

              // Display on LCD
              lcd_gotoxy (0,6);
              lcd_progress_high (bar1,87);
              lcd_progress_high (bar2,104);
              lcd_gotoxy (0,5);
              sprintf (buf,"A/D(0) = %1.2f",volt1);
              lcd_putstring (buf);
             
              lcd_gotoxy (0,6);
              sprintf (buf,"A/D(1) = %1.2f",volt2);
              lcd_putstring (buf);
              delay_ms (100);
         };

      };

}


Keywords
arduino
testing
pic
project
lcd

Filled Under:

0 commentaires:

Post a Comment