rtc uygulaması
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
///yazar: ERAY GÖKKAYA                 ///
///program :real time clock                     ///
///sürüm :1.1                                          ///
///program başlangıç tarihi :28/04/2012  ///             
///program bitiş tarihi :29/04/2012          ///  
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////



#include <16f877.h> //işlemci kütüphanesi yükleniyor
#fuses XT NOWDT //konfigürasyon ayarları
#use delay(clock=4000000) //işlemciye bağlı kıristalin frekansı belirtiliyor
#include <ds1302.c> //rtc kütüphanesi yükleniyor


#define display_1 pin_c7  // alyans
#define display_2 pin_c6  // alyans
#define display_3 pin_c5  // alyans
#define display_4 pin_c0  // alyans

char birler=0,onlar=0; //char tipinde değişken
int16 yuzler,binler,deger; //16 bit değişken

const int digit[12]={0b00111111,0b00001100,0b01011011,0b01011110,0b01101100,0b01110110,
0b01100111,0b00011100,0b01111111,0b01111100,0b00110011,0b01111000}; //displaylerde rakamların oluşması için lookup tablosu


byte saniye,dakika,saat,gun,ay,yil,haftanin_gunu;


//displaylerde görüntüyü sağlayan alt program
tarama()
{
//birler basamağı bilgisi gönderiliyor
 output_high(display_1);   
 output_b(digit[birler]);
 delay_ms(3);
 output_low(display_1);
 
 //onlar basamağı bilgisi gönderiliyor
 output_high(display_2);
 output_b(digit[onlar]);
 delay_ms(3);
 output_low(display_2);
 
 //yüzler hanesi bilgisi gönderiliyor
 output_high(display_3);
 output_b(digit[yuzler]);
 delay_ms(3);
 output_low(display_3);
 
 //binler hanesi bilgisi gönderiliyor
 output_high(display_4);
 output_b(digit[binler]);
 delay_ms(3);
 output_low(display_4);
}


void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);

rtc_init(); //rtc resetleniyor
while(TRUE) //sonsuz döngüye giriliyor
{
rtc_get_time(saat,dakika,saniye); //rtc den saat dakika saniye bilgileri alınıyor
rtc_get_date(gun,ay,yil,haftanin_gunu); //rtc den gun ay yıl haftanın günü bilgileri alınıyor
birler=saat/10; onlar=saat%10; //saat ekranda gösterileceği //forma çevriliyor
yuzler=dakika/10; binler=dakika%10; //dakika ekranda gösterileceği forma çevriliyor
tarama(); //alt programa dallanılıyor
}
}






OTAMASYON ÇÖZÜMLERİ
 
 
Bugün 6 ziyaretçi (9 klik) kişi burdaydı!
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol