pıc de ds1302 calısmıyor

#include <16F877A.h>
#device adc=10


#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES WRT_50% //Lower half of Program Memory is Write Protected


#use delay(clock=4000000)


#define use_portb_lcd TRUE
#define LCD_TYPE 2
#include <lcd420.c>
#include <DS1302.c> // DS1302.c dosyası programa ekleniyor


byte saniye,dakika,saat,gun,ay,yil,haftanin_gunu; // byte türünde değişkenler tanımlanıyor


void main()
{
unsigned long int bilgi; // İşaretsiz 16 bitlik tam sayı tipinde değişken tanımlanıyor
float voltaj; // ondalıklı tipte voltaj isminde değişken tanıtılıyor



lcd_init();


rtc_init(); // DS1302 başlangıç ayarları yapılıyor


setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
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);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);

rtc_set_datetime(17,01,14,15,22,52); // Tarih ve Saat ayarları yapılıyor

lcd_gotoxy(1,2);
lcd_putc(" UFUK SAHIN ");
lcd_gotoxy(1,3);
lcd_putc("pH METRE UYGULAMASI");
delay_ms(2000);
lcd_putc("\f");

while(TRUE)
{


rtc_get_time(saat,dakika,saniye); // DS1302'den saat,dakika,saniye bilgileri alınıyor
rtc_get_date(gun,ay,yil,haftanin_gunu); // DS1302'den gün,ay,yil ve günün isim bilgisi alınıyor
lcd_gotoxy(1,1);
printf(lcd_putc,"T:%02d/%02d/20%02d ",gun,ay,yil); //LCD'ye gün,ay,yıl bilgileri yazdırılıyor


switch(haftanin_gunu) // DS1302'den sayısal olarak alınan haftanın günü bilgisine
{ // metin olarak karşılık atanıyor
case 1: printf(lcd_putc,"PAZ"); break; // Eğer "1" ise LCD'ye PAZ yaz
case 2: printf(lcd_putc,"PZT"); break; // Eğer "2" ise LCD'ye PZT yaz
case 3: printf(lcd_putc,"SAL"); break; // Eğer "3" ise LCD'ye SAL yaz
case 4: printf(lcd_putc,"CRS"); break; // Eğer "4" ise LCD'ye CRS yaz
case 5: printf(lcd_putc,"PER"); break; // Eğer "5" ise LCD'ye PER yaz
case 6: printf(lcd_putc,"CUM"); break; // Eğer "6" ise LCD'ye CUM yaz
case 7: printf(lcd_putc,"CTS"); break; // Eğer "7" ise LCD'ye CTS yaz
}
lcd_gotoxy(1,2);
printf(lcd_putc,"Saat:%02d:%02d:%02d",saat,dakika,saniye); // LCD'ye saat,dakika ve saniye değerlerini yaz
//delay_ms(1000); // 1 sn gecikme veriliyor


set_adc_channel(0); // RA0/AN0 ucundaki sinyal A/D işlemine tabi tutulacak
delay_us(20); // Kanal seçiminde sonra bu bekleme süresi verilmelidir
bilgi=read_adc(); // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor


voltaj=bilgi*0.013685; // Dijitale çevirme işlemine uğrayan sinyalin gerilimi hesaplanıyor

lcd_gotoxy(1,3);
printf(lcd_putc,"DIJITAL=%lu ",bilgi);
lcd_gotoxy(1,4);
printf(lcd_putc,"PH=%f ",voltaj);


}
}
oncelıkle tesekkurler ..kodlar bunlar sarj ayarlarını nasıl sıfırlayacagım hakkında da bılgı verırı mısınız cünkı o ayarı yenı duydum da
 
#define RTC_SCLK PIN_B1
#define RTC_IO PIN_B3
#define RTC_RST PIN_B2

Bu şekilde bir tanımlama yaptın mı. Pic e ezbere bağlamışsın sanki
 
kodlardan bır sorun görebıldınızmi ?
 
#define RTC_SCLK PIN_B1
#define RTC_IO PIN_B3
#define RTC_RST PIN_B2

Bu şekilde bir tanımlama yaptın mı. Pic e ezbere bağlamışsın sanki
pıc c de ds1302.c kütüphansınde kı baglantıları kendımınkıne göre tanımladım yani kütüphaneyı tanımlayınca tekrardan szin yazdıklarınızı tanımlamam gereklı mı ?
 
#define RTC_SCLK PIN_B1
#define RTC_IO PIN_B3
#define RTC_RST PIN_B2

Bu şekilde bir tanımlama yaptın mı. Pic e ezbere bağlamışsın sanki
önerılerınız için tesekkurler

ben entegreyı calıstırdım fakat enerjı yı kesıp tekrar verdıgımde pil baglı olmasına ragmen saat bastan baslıyor..
 
Saati enerji geldiğinde yeniden programlamıyorsun değilmi ayrıca c dilini blmiyorum
 
Ds1302 beslemesine 100nf koy ve pice de koy
 
aynı sorun bendede var nasıl cözdünüz acaba sim-de çalışıyor ama deneme kartında saçmalıyor ilertişim yok
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…