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