﻿/*******************************************************
      PIC16F877 ile Kendi LCD Dosyamızla LCD Uygulaması
PIC PROG/DEKA     : Port B jumper'ı LCD konumunda olmalı
*******************************************************/

#include <16f877.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD // Denetleyici konfigürasyon ayarları

#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

#include <benim_LCD.c> // benim_LCD.c dosyası programa ekleniyor

/********* ANA PROGRAM FONKSİYONU********/

void main ( )
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_spi(SPI_SS_DISABLED);     // SPI birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
   setup_adc(ADC_OFF);             // ADC birimi devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı

   lcd_hazirla(); // LCD başlangıç ayarları yaptırılıyor

   while(1) // Sonsuz döngü
   {
      imlec(1,1); // İmlec 1.satır 1.sütunda
      printf(lcd_veri,"Kendi LCD Dosya"); // LCD'ye veri yazdırılıyor
      delay_ms(1000);
      imlec(2,4); // İmlec 2.satır 4.sütunda
      printf(lcd_veri,"Denememiz"); // LCD'ye veri yazdırılıyor
      delay_ms(1000);

      lcd_komut(0x01); // LCD sıfırlanıyor
      lcd_komut(0x0E); // İmleç alt çizgi modunda
      imlec(1,6); // İmlec 1.satır 6.sütunda
      printf(lcd_veri,"C"); delay_ms(1000);
      printf(lcd_veri,"C"); delay_ms(1000);
      printf(lcd_veri,"S"); delay_ms(1000);
      printf(lcd_veri," C"); delay_ms(1000);

       lcd_komut(0x01); // LCD sıfırlanıyor
   }
}

