|
|
 |
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
///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
}
}


|
|
 |
|
|
|
|