Hazır Şifreli Şifreli Güvenlik Sistemi

Başlatan Ancotar, 15 Nisan 2014, 04:52:02

Recep METE

#15
arkadaşlar buda eepromsuz şifreli kilit çok güzel çalışıyor.Kaçırmayın bir yere indirin bunu. Birgün lazım olur.Yukarıda daha önce verdiğim isis şemasına göre çalışıyor.Şifre 2143# , programın içinden değiştirebilirsiniz.ayrıca isis şemasına birde reset düğmesi ekleyin  sistemi aç-kapa yaparken gerekiyor.
  #include        <16f877.h>
 #fuses          XT,NOWDT,NOPROTECT
 #use            delay(clock=4000000)
 #include        <lcd.c>
 #use            fast_io(c)  
 #use            fast_io(b)             
 #use            fast_io(d)
  #use            fast_io(a)

 
 
 #define         sut1 pin_B4                                       
 #define         sut2 pin_B5                      
 #define         sut3 pin_B6  
 
 
 #define         sat1 pin_B0
 #define         sat2 pin_B1                
 #define         sat3 pin_B2                    
 #define         sat4 pin_B3  
 
 
 #define         m1 pin_a0
 #define         m2 pin_a1
 #define         ea pin_a2
 #define         eb pin_a3

 

 
 #define         buzzer      pin_c0   
 #define use_portd_lcd TRUE
            
 
  unsigned int8  tus,e,k,l,m,n;
  unsigned int16 sifre=0;

 void tus_al()// yazılım bu fonksiyona geldiğinde buradan bir
 {            // tus değeri almadan bu fonksiyondan çıkmaz
 don:
 output_low(sut1);output_high(sut2);output_high(sut3);
 if(input(sat1)==0){tus=1;goto brk;}
 if(input(sat2)==0){tus=4;goto brk;}
 if(input(sat3)==0){tus=7;goto brk;}
 if(input(sat4)==0){tus=15;goto brk;}

 output_high(sut1);output_low(sut2);output_high(sut3);
 if(input(sat1)==0){tus=2;goto brk;}
 if(input(sat2)==0){tus=5;goto brk;}
 if(input(sat3)==0){tus=8;goto brk;}
 if(input(sat4)==0){tus=0;goto brk;}                        

 output_high(sut1);output_high(sut2);output_low(sut3);
 if(input(sat1)==0){tus=3;goto brk;}
 if(input(sat2)==0){tus=6;goto brk;}
 if(input(sat3)==0){tus=9;goto brk;}      
 if(input(sat4)==0){tus=14;goto brk;}
 
 output_high(sut1);output_high(sut2);output_high(sut3);
 if(input(sat1)==0){tus=10;goto brk;}
 if(input(sat2)==0){tus=11;goto brk;}
 if(input(sat3)==0){tus=12;goto brk;}
 if(input(sat4)==0){tus=13;goto brk;}
 goto don;  
 brk:
 while(!input(sat1));
 while(!input(sat2));          
 while(!input(sat3));
 while(!input(sat4));                           
 output_high(buzzer);delay_ms(100);output_low(buzzer); 
 }   

 

 void main()
 {            
  set_tris_b(0b00001111);//keypad baglı    
 set_tris_c(0b00000000); 
 set_tris_a(0b00000000); 
 set_tris_d(0b00000000);
 
 port_b_pullups(true);//*** CMOS girişler voltaja hassastır , en ufak voltajı 0-1 olarak kabul edebilirler.
 //Bunun önüne geçmek için pull-up yada pull-down direnci ile hat 0'a yada 5V'a çekilir ve stabil hale getirilir.
 output_a(0x00);                            
 output_b(0x00); 
 output_c(0x00); 
 
 

 output_high(ea);
   output_low(eb);


  lcd_init();   // LCD hazırlanıyor
basla:

 


 printf(lcd_putc,"\fsifre:");
 delay_ms(500);

 all:
   
  tus_al();
 k=tus;
  
  lcd_gotoxy(9,1);
  printf(lcd_putc,"%u",tus);
  if(tus==10||tus==11||tus==12||tus==13||tus==14||tus==15) {goto all;}
  delay_ms(300);
 
  tus_al();
 l=tus;
 
  lcd_gotoxy(10,1);printf(lcd_putc,"%u",tus);
  if(tus==10||tus==11||tus==12||tus==13||tus==14||tus==15) {goto all;}
  delay_ms(300);
 
  tus_al();
  m=tus;
  
  lcd_gotoxy(11,1);printf(lcd_putc,"%u",tus);
  if(tus==10||tus==11||tus==12||tus==13||tus==14||tus==15) {goto all;}
  delay_ms(300);
  
  tus_al();
  n=tus;
  
  lcd_gotoxy(12,1);
  printf(lcd_putc,"%u",tus);
  if(tus==10||tus==11||tus==12||tus==13||tus==14||tus==15) {goto all;}
  delay_ms(300);
 
  tus_al();
  e=tus;
  if(tus==10||tus==11||tus==12||tus==13||tus==15) {goto all;}
  delay_ms(300);
 
 sifre=((k*1000)+(l*100)+(m*10)+(n*1));

if(sifre==2143 && e==14)

 
 
  {
   lcd_gotoxy(1,1);
  printf(lcd_putc,"\f   DOGRU SIFRE");
  printf(lcd_putc,"\n   MOTOR CALISTI");
  delay_ms(300);
    
  output_high(m1);
  output_low(m2);
  
  
  
  }
  
  else
  {
  
   lcd_gotoxy(1,1);
  printf(lcd_putc,"\f  YANLIS SIFRE");
  printf(lcd_putc,"\nTEKRAR DENEYINIZ");
  delay_ms(1000);
  
  goto basla;
  }
 
 }
 
 


mesaj birleştirme:: 17 Nisan 2014, 12:40:27

Alıntı yapılan: Ancotar - 17 Nisan 2014, 01:21:43
Semfero hocam sağolasın şu an çalışıyor.Lcd'yi çıkartıp direk motorlara bağladım şifre yanlışsa motorları çalıştırıyorum.

Bu arada ares çizimini isteyen arkadaş bu devreyi plakete basmam gerekiyor çizimim bittiğinde buraya atarım.

Arkadaşım son verdiğim programı yükleyip denerseniz motoru kendi portuna  lcd  kendi portuna takılır.Daha önceki programda yanlışlık yapmışım.Pardon.Bu programın eepromlu olanınındaki hataları düzelttim.Yakında buraya yükleyeceğim.İzlemeye devam edin.
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

aydınD

bende devreyi kurmak istiyourum
çizimlerinizi sabırsızlıkla bekleyeceğim
proje yapım aşamalarını da resimlerseniz gerçekten çok faydalı olacaktır
iyi çalışmalar