Haberler:

[move]Türkiye'nin Elektronik ve Metal Dedektörlerini Buluşturan İlk Sitesi Teknoloji Ekibi'ne Hoş Geldiniz.[/move]

Ana Menü

8 alarm ayarlanabilen otomatik zil devresi

Başlatan Karadağ, 08 Temmuz 2009, 12:35:46

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Karadağ

Arkadaşlar birkaç ay önce çalıştığım iş yerinde çay paydosları yemek paydosları ve giriş çıkışlar için bir zil devresi yapmıştım.
Devreyi yaptığımda zaman kısıtlı olduğu için delikli plakete alel acele kurup 1-2 saatte de programını yazıp yarım günde çalıştırmıştım.
Bu nedenle elimde devre şeması yoktu.
Bugün arızalandığı için içini açtım ve fırsattan istifade devre şemasını çıkardım. Ve bu şema ile yazılımını sizlerle paylaşmak istedim.
Çok acelece yapılmış bir şey olduğu için yazılımında yada donanımında gözümden kaçan şeyler olmuş olabilir. Bunları siz düzenlerseniz sevinirim. İnşallah beğenirsiniz.

Şema:



Video:

http://rapidshare.com/files/253336957/video.rar.html

Kodlar:

#include "1307_i2c.c"
#include "ds1307.c"

char *text[3] = {"SAAT AYARLA ","ALARM AYARLA","ALARM"};
unsigned char cevir[3];
unsigned char menudurum=0;
unsigned i,j;
unsigned char gecici3[3];
unsigned char gun=0;
unsigned char kontrol=0;
void itoa(unsigned char i);
void kaydet(unsigned char adres,unsigned char bilgi);
void menu();
void bekle10ms(unsigned int i);
void main(void)
{
    CMCON=7;
    TRISA=0x20;
  TRISB=0x00;
  PORTA=0X00;
    Lcd_Init(&PORTB);
    Lcd_Cmd(Lcd_CLEAR);
    Lcd_Cmd(Lcd_CURSOR_OFF);
    porta.f4=0;
    //tarih_kaydet(9,3,14,1);
    while(1)
    {
     gun=ds1307_oku(3);
     Lcd_Chr(2,1,gun+48);
     gecici3[2]=ds1307_oku(0);
     kontrol=ds1307_oku(0);
     itoa(ds1307_oku(0));
     Lcd_Chr(1,7,cevir[1]);
     Lcd_Chr(1,8,cevir[0]);
     Lcd_Chr(1,3,':');
     gecici3[1]=ds1307_oku(1);
     itoa(ds1307_oku(1));
     Lcd_Chr(1,4,cevir[1]);
     Lcd_Chr(1,5,cevir[0]);
     Lcd_Chr(1,6,':');
     gecici3[0]=ds1307_oku(2);
     itoa(ds1307_oku(2));
     Lcd_Chr(1,1,cevir[1]);
     Lcd_Chr(1,2,cevir[0]);

     for(i=8;i<24;i++)
     {
      if(gecici3[0]==ds1307_oku(i) && gecici3[3]!=0)
      {
       if(gecici3[1]==ds1307_oku(i+1))
       {
         if(kontrol<=8)
         {
          porta.f4=1;
          bekle10ms(900);
          porta.f4=0;
         }
       }
      }
     }
      if(porta.f0==0)menu();
    }
}
void itoa(unsigned char i)
{
  cevir[0]=48; cevir[1]=48;
if(i<10)
{
  cevir[0]=i+48;
  cevir[2]=1;
}
if(i>=10 && i<100)
{
  cevir[0]=(i%10)+48;
  cevir[1]=(i/10)+48;
  cevir[2]=2;
}

}
void menu()
{
  unsigned char gecici=0;
  unsigned char gecici1=0;
  unsigned char yer=1;
  unsigned char kayit[5];
  porta.f4=0;
  while(1)
  {
   lcd_out(1,1,text[menudurum]);
   lcd_out(2,1,"                ");
   if(porta.f1==0)
   {
     bekle10ms(15);
     if(porta.f1==0)
     {
     menudurum=(menudurum==0 ? 1 : 0);
     }
   }
   if(porta.f2==0)
   {
     bekle10ms(15);
     if(porta.f2==0)
     {
     menudurum=(menudurum==0 ? 1 : 0);
     }
   }
   if(porta.f3==0)
   {
    bekle10ms(15);
    if(porta.f3==0)
    {
      if(menudurum==1)
      { //alarm ayarla
        gecici1=0;
        while(1)
        {
         Lcd_Chr(2,1,(gecici1+48));
         lcd_out(2,3,text[2]);
         if(porta.f1==0)
         {
          bekle10ms(15);
          if(porta.f1==0)
          {
           gecici1=(gecici1<8 ? gecici1+1 : 0);
          }
         }
         if(porta.f2==0)
         {
          bekle10ms(15);
          if(porta.f2==0)
          {
           gecici1=(gecici1>0 ? gecici1-1 : 8);
          }
         }
         if(porta.f3==0)
         {
          bekle10ms(15);
          if(porta.f3==0)
          {
           Lcd_Cmd(Lcd_Clear);

           while(1)
           {
            Lcd_Chr(1,1,(gecici1+48));
            lcd_out(1,3,text[2]);
            Lcd_Chr(2,yer,(gecici+48));
            if(porta.f1==0)
            {
             bekle10ms(15);
             if(porta.f1==0)
             {
              gecici=(gecici<9 ? gecici+1 : 0);
             }
            }
            if(porta.f2==0)
            {
             bekle10ms(15);
             if(porta.f2==0)
             {
              gecici=(gecici>0 ? gecici-1 : 9);
             }
            }
            if(porta.f3==0)
            {
             bekle10ms(15);
             if(porta.f3==0)
             {
              kayit[yer]=gecici;
              gecici=0;
              if(yer>=4)
              {
               kayit[1]=(kayit[1]*10)+(kayit[2]);
               kayit[3]=(kayit[3]*10)+(kayit[4]);
               kaydet((gecici1*2)+8,kayit[1]);
               kaydet((gecici1*2)+9,kayit[3]);
               Lcd_Cmd(Lcd_Clear);
               yer=1;
               break;
              }
              yer=(yer>3 ? 1 : yer+1);

             }
            }

           }
          }
         }
         if(porta.f0==1){break;}
        }
      }
      if(menudurum==0)
      {
       while(1)//saat ayarla
       {
        Lcd_Chr(2,yer,(gecici+48));
        if(porta.f1==0)
        {
        bekle10ms(15);
        if(porta.f1==0)
        {
         gecici=(gecici<9 ? gecici+1 : 0);
        }
       }
       if(porta.f2==0)
       {
        bekle10ms(15);
        if(porta.f2==0)
        {
         gecici=(gecici>0 ? gecici-1 : 9);
        // kayit[yer]=gecici;
        }
       }
       if(porta.f3==0)
       {
        bekle10ms(15);
        if(porta.f3==0)
        {
         kayit[yer]=gecici;
         gecici=0;
         if(yer>=4)
         {
          kayit[1]=(kayit[1]*10)+(kayit[2]);
          kayit[3]=(kayit[3]*10)+(kayit[4]);
          saat_kaydet(kayit[1],kayit[3]);
          yer=1;
          break;
         }
         yer=(yer>5 ? 1 : yer+1);

        }
       }


      }
     }
    }
   }
   if(porta.f0==1){Lcd_Cmd(Lcd_Clear);break;}
  }

}

void kaydet(unsigned char adres,unsigned char bilgi)
{
rtc_write(adres,dec_bcd(bilgi));
}
void bekle10ms(unsigned int i)
{
unsigned int k=0;
for(k==0;k<i;k++)delay_ms(10);
}



Linkback: 8 alarm ayarlanabilen otomatik zil devresi
insanlar sizi eskisi gibi kullanmadıklarında değiştiğinizi söylerler...

Eğer bir aptala laf anlatmaya çalışırsan dışarıdan bakanlar iki aptalın sohbet ettiğini sanırlar.

Kamburlar ülkesinde sırtı düze sakat denir.

yanlızkurt

eline sağlık hocam ama keşke komutlar basic olsa.

Karadağ

yanlızkurt malesef picbasic bilmiyorum
insanlar sizi eskisi gibi kullanmadıklarında değiştiğinizi söylerler...

Eğer bir aptala laf anlatmaya çalışırsan dışarıdan bakanlar iki aptalın sohbet ettiğini sanırlar.

Kamburlar ülkesinde sırtı düze sakat denir.

yanlızkurt

#3
sağlık olsun hocam. kendime göre  yeni bir proje var kafamda.güvenlik sitemleri üzerine. evi takip edecek gerek duyarsa cepten haber verecek yada biz gerek duyarsak evdeki bazı şeyleri kontrol edebileceğimiz bişeyler düşünüyorum tamamen telefon kontrollü.sizce nasıl bir fikir işe yararmı.

Karadağ

işe yarar tabii neden yaramasın çok güzel şeyler ortaya çıkarabilirsin

şimdi 3g de çıktı gerekirse görüntü de gönderebilirsin
insanlar sizi eskisi gibi kullanmadıklarında değiştiğinizi söylerler...

Eğer bir aptala laf anlatmaya çalışırsan dışarıdan bakanlar iki aptalın sohbet ettiğini sanırlar.

Kamburlar ülkesinde sırtı düze sakat denir.


Paylaş whatsappPaylaş facebookPaylaş linkedinPaylaş twitterPaylaş myspacePaylaş redditPaylaş diggPaylaş stumblePaylaş technoratiPaylaş delicious