menüproblemi

hmg

Üye
Katılım
4 Ocak 2008
Mesajlar
1
Puanları
1
Yaş
40
ccs c ile 2*16 Lcd li bir sıc. gösteren saat yapıyorum. internette hazır var ama kendim yapmak istedim.altta c denememi yazıyorum. zaman ve sıcaklık sorunlarını çözdüm. saat sıc. ve zaman gösteriyor ama ayar yapmak istiyorum. beceremedim. menu2.c dosyasında küçük bir deneme yaptım başaramadım. ben gun,ay,yıl ,saat,dakika ve haftanın günleri değişkenlerini ayar-artır-azalt adlı 3 (c0,c1 ve c2 ile) buton ile değiştirmek istiyorum.
ayara basınca önce saat sonra dakika gün ay yıl ı artır ve azalt butonları ile ayarlamak için proğram yapmam lazım.
ayara basınca ya saat yanıp sönmeli(hangisi değişecekse) yada saatın altında bir çizgi oluşsun istiyorum.ayara tekrar basınca saatten dakika ya geçsin gibi.
yardımınız olursa şimdiden saolun.
iyi çalışmalar

//menu2.c denemem
#include <16f876.h>
#use delay (clock=4000000)
#include <özel_karakter_LCD2.c>
#use fast_io(c)
#include <DS1302.c>
#include <ds18b20.c>

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

/********* ANA PROGRAM FONKSİYONU********/
float temperature;
void menu(){
if(!input(pin_c1))
{delay_ms(20);
while(!input(pin_c1));
gun--;}

if(!input(pin_c2)){delay_ms(20);
while(!input(pin_c2));
gun++;}
}
void main ( )
{
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_CCP1(CCP_OFF); // CCP1 birimi devre dışı
lcd_hazirla(); // LCD başlangıç ayarları yaptırılıyor
rtc_init(); // DS1302 başlangıç ayarları yapılıyor
ozel_karakterler();
rtc_set_datetime(28,5,8,4,23,59);

while(1)
{
if(!input(pin_c0))menu();
temperature = ds1820_read();
rtc_get_time(saat,dakika,saniye);
rtc_get_date(gun,ay,yil,haftanin_gunu);
imlec(2,1);
printf(lcd_veri,"%02d/%02d/20%02d "gun,ay,yil);
switch(haftanin_gunu)
{
case 1: printf(lcd_veri," PAZ"); break;
case 2: printf(lcd_veri," PZT"); break;
case 3: printf(lcd_veri," SAL"); break;
case 4: printf(lcd_veri," CRS"); break;
case 5: printf(lcd_veri," PER"); break;
case 6: printf(lcd_veri," CUM"); break;
case 7: printf(lcd_veri," CTS"); break;
}
imlec(1,1);
printf(lcd_veri,"%02d:%02d:%02d %3.1f'C.",saat,dakika,saniye,temperature);
delay_ms(1000); // 1 sn gecikme veriliyor
}
}
 
bu komutlarla ds1302 de hiçbir sorun yaşamadan devreyi her çalıştırdığınızda saat ve tarihin doğru değer gösterdiğini görebiliyor musunuz.ben de buna benzer komutlar yazdım ama benim saatim bazen mesela 34:64 gibi değerler gösteriyor.yani zamanı genişlettim vesselam:)
 

Forum istatistikleri

Konular
129,808
Mesajlar
930,313
Kullanıcılar
452,615
Son üye
ismail_gök

Yeni konular

Geri
Üst