menü problemi

Başlatan hmg, 03 Haziran 2008, 09:43:43

hmg

arkadaşl ar 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 sağol un.
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
  }
}