Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: Ancotar - 15 Nisan 2014, 04:52:02

Başlık: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: Ancotar - 15 Nisan 2014, 04:52:02
Tekrardan merhaba.Geçen günlerde bir çılgınlık yapıp butonla yapmaya çalıştığım sisteme keypad ekledim.Siteden aldığım yardımlarla birşeyler yazdım lakin hala çalışmıyor hatayı bulabilip düzeltebilecek varmı acaba? En sonda şifre doğru yazıldığında da alarmın çalışma sebebi çalışıp çalışmadığını anlamak içindir...
(http://imageshack.com/a/img842/8859/2otg.png)
#include        <16f877A.h>
#include        <internal_eeprom.c>
#include        <kbd.c>

#fuses          XT,NOWDT,NOPROTECT

#use            delay(clock=8000000)
#use            fast_io(b)             
#use            fast_io(a)   

#define         sut1 pin_d4                                     
#define         sut2 pin_d5                     
#define         sut3 pin_d6

#define         sat1 pin_d0
#define         sat2 pin_d1               
#define         sat3 pin_d2                   
#define         sat4 pin_d3 

#define         m1 pin_b0
#define         m2 pin_b1
#define         ea pin_b2
#define         eb pin_b3

#define         buzzy      pin_b4


  unsigned int8  tus,a,b,c,d,e=0;
  unsigned int16 sifre=0;
  int16 password=3146;
void tus_al()          // yazilim bu fonksiyona geldiginde buradan bir tus degeri almadan bu fonksiyondan çikmaz
{
don:

output_high(sut1);
if(input(sat1)){tus=1;goto brk;}
if(input(sat2)){tus=4;goto brk;}
if(input(sat3)){tus=7;goto brk;}
if(input(sat4)){tus=10;goto brk;}

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

output_high(sut3);
if(input(sat1)){tus=3;goto brk;}
if(input(sat2)){tus=6;goto brk;}
if(input(sat3)){tus=9;goto brk;}     
if(input(sat4)){tus=11;goto brk;}

goto don; 
brk:
while(!input(sat1));
while(!input(sat2));         
while(!input(sat3));                       
output_high(buzzy);
delay_ms(100);
output_low(buzzy);
}   

/*
void   tarama()     //Yazilim bu fonksiyona geldiginde herhangi bir tusa basilmis mi diye bakar ve beklemeden fonksiyondan çikar.
{                                             
output_high(sut1);
if(input(sat1)){tus=1;goto brk;}
if(input(sat2)){tus=4;goto brk;}
if(input(sat3)){tus=7;goto brk;}
if(input(sat4)){tus=10;goto brk;}

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

output_high(sut3);
if(input(sat1)){tus=3;goto brk;}
if(input(sat2)){tus=6;goto brk;}
if(input(sat3)){tus=9;goto brk;}     
if(input(sat4)){tus=11;goto brk;}

brk:
while(!input(sat1));                       
while(!input(sat2));
while(!input(sat3));           
while(!input(sat4));   
}
*/

void main()
{           
   set_tris_b(0b00000000);
   set_tris_d(0b00001111);                   
   output_b(0x00);
   output_d(0x00);
   output_high(ea);
   output_low(eb);
   write_int16_eeprom(0,password);
   
basla:

tus_al();
a=tus;
if(tus==10||tus==11) {goto basla;}
delay_ms(300);

tus_al();
b=tus;
if(tus==10||tus==11) {goto basla;}
delay_ms(300);

tus_al();
c=tus;
if(tus==10||tus==11) {goto basla;}
delay_ms(300);
 
tus_al();
d=tus;
if(tus==10||tus==11) {goto basla;}
delay_ms(300);

tus_al();
e=tus;
if(tus==10) {goto basla;}
delay_ms(300);
 

sifre=((a*1000)+(b*100)+(c*10)+(d*1));

  if(sifre==((read_int16_eeprom(0)*1000)+(read_int16_eeprom(1)*100)+(read_int16_eeprom(2)*10)+(read_int16_eeprom(3)*1))&&e==11)
  {
  output_high(m1);
  output_low(m2);
  output_high(buzzy);
  //delay_ms(10000);
  //goto basla;
  }
 
  else
  {
  output_high(m1);
  output_low(m2);
  output_high(buzzy);
  //goto basla;
  }
}
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: Recep METE - 15 Nisan 2014, 08:52:50
write_int16_eeprom(0,password);  Burada eeprom' un (0)'ıncı adresine password değişkenini yüklemişsin.

if(sifre==((read_int16_eeprom(0)*1000)+(read_int16_eeprom(1)*100)+(read_int16_eeprom(2)*10)+(read_int16_eeprom(3)*1))&&e==11)
Burada da (0)-(1)-(2)-(3)'üncü eeprom adreslerinin okunmasını istemişsin.Sıfırın dışında diğer eeprom adreslerinden eeprom okuma istemen hata olarak duruyor.Çünkü diğer eeprom adreslerine birşey yazmamışsın ki okuyasın.
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: Recep METE - 15 Nisan 2014, 10:10:27
#include        <kbd.c>   ccs c kütüphanesinden keypad  fonksiyonu eklemişsin sonrada tuş
çalışma fonksiyonunu aşağıdaki gibi  kendin yazmışsın.İkisi bir arada çakışıyor.

void tus_al()          // yazilim bu fonksiyona geldiginde buradan bir tus degeri almadan bu fonksiyondan çikmaz
{
don:

output_high(sut1);
if(input(sat1)){tus=1;goto brk;}
if(input(sat2)){tus=4;goto brk;}
if(input(sat3)){tus=7;goto brk;}
if(input(sat4)){tus=10;goto brk;}

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

output_high(sut3);
if(input(sat1)){tus=3;goto brk;}
if(input(sat2)){tus=6;goto brk;}
if(input(sat3)){tus=9;goto brk;}     
if(input(sat4)){tus=11;goto brk;}

goto don; 
brk:
while(!input(sat1));
while(!input(sat2));         
while(!input(sat3));                       
output_high(buzzy);
delay_ms(100);
output_low(buzzy);
}   


Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: Ancotar - 15 Nisan 2014, 16:25:48
dedğiniz yerleri değiştirdim lakin yine çalışmadı.

#include        <16f877A.h>
#include        <internal_eeprom.c>

#fuses          XT,NOWDT,NOPROTECT

#use            delay(clock=8000000)
#use            fast_io(b)             
#use            fast_io(a)   

#define         sut1 pin_d4                                     
#define         sut2 pin_d5                     
#define         sut3 pin_d6

#define         sat1 pin_d0
#define         sat2 pin_d1               
#define         sat3 pin_d2                   
#define         sat4 pin_d3 

#define         m1 pin_b0
#define         m2 pin_b1
#define         ea pin_b2
#define         eb pin_b3

#define         buzzy      pin_b4


  unsigned int8  tus,a,b,c,d,e=0;
  unsigned int16 sifre=0;
  int16 password=3146;
void tus_al()          // yazilim bu fonksiyona geldiginde buradan bir tus degeri almadan bu fonksiyondan çikmaz
{
don:

output_high(sut1);
if(input(sat1)){tus=1;goto brk;}
if(input(sat2)){tus=4;goto brk;}
if(input(sat3)){tus=7;goto brk;}
if(input(sat4)){tus=10;goto brk;}

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

output_high(sut3);
if(input(sat1)){tus=3;goto brk;}
if(input(sat2)){tus=6;goto brk;}
if(input(sat3)){tus=9;goto brk;}     
if(input(sat4)){tus=11;goto brk;}

goto don; 
brk:
while(!input(sat1));
while(!input(sat2));         
while(!input(sat3));                       
output_high(buzzy);
delay_ms(100);
output_low(buzzy);
}   

/*
void   tarama()     //Yazilim bu fonksiyona geldiginde herhangi bir tusa basilmis mi diye bakar ve beklemeden fonksiyondan çikar.
{                                             
output_high(sut1);
if(input(sat1)){tus=1;goto brk;}
if(input(sat2)){tus=4;goto brk;}
if(input(sat3)){tus=7;goto brk;}
if(input(sat4)){tus=10;goto brk;}

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

output_high(sut3);
if(input(sat1)){tus=3;goto brk;}
if(input(sat2)){tus=6;goto brk;}
if(input(sat3)){tus=9;goto brk;}     
if(input(sat4)){tus=11;goto brk;}

brk:
while(!input(sat1));                       
while(!input(sat2));
while(!input(sat3));           
while(!input(sat4));   
}
*/

void main()
{           
   set_tris_b(0b00000000);
   set_tris_d(0b00001111);                   
   output_b(0x00);
   output_d(0x00);
   output_high(ea);
   output_low(eb);
   write_int16_eeprom(0,password);
   
basla:

tus_al();
a=tus;
if(tus==10||tus==11) {goto basla;}
delay_ms(300);

tus_al();
b=tus;
if(tus==10||tus==11) {goto basla;}
delay_ms(300);

tus_al();
c=tus;
if(tus==10||tus==11) {goto basla;}
delay_ms(300);
 
tus_al();
d=tus;
if(tus==10||tus==11) {goto basla;}
delay_ms(300);

tus_al();
e=tus;
if(tus==10) {goto basla;}
delay_ms(300);
 

sifre=((a*1000)+(b*100)+(c*10)+(d*1));

  if(sifre==((read_int16_eeprom(0))&&e==11))
  {
  output_high(m1);
  output_low(m2);
  output_high(buzzy);
  //delay_ms(10000);
  //goto basla;
  }
 
  else
  {
  output_high(m1);
  output_low(m2);
  output_high(buzzy);
  //goto basla;
  }
}
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: Gökhan BEKEN - 15 Nisan 2014, 16:55:43
[öneri]bir c programına bu kadar goto yakışmamış.[/öneri]
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: aydınD - 15 Nisan 2014, 18:55:33
http://profahmet.wordpress.com/2008/05/29/pic16f877-lcd-sifreli-kilit/ (http://profahmet.wordpress.com/2008/05/29/pic16f877-lcd-sifreli-kilit/)
bu devreyi daha önceden kuran var mı acaba
veya bu devrenin baskı devresi lazım
bu konuda forum kullanıcılarından ve yöneticilerinde yardım bekliyorum
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: Recep METE - 15 Nisan 2014, 22:59:54
#use            fast_io(a)   


Arkadadaşım  bunu " #use            fast_io(d)   "
yapıp dener misin bir kez daha.
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: ErsinErce - 16 Nisan 2014, 00:08:24
bir sıkıntı çözümü de benden olsun
output_high(sut3);
yapılan yerler hiç low yapılmıyor
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: Recep METE - 16 Nisan 2014, 07:54:00
Arkadaşım bu kodlar çalışıyor, bunları kullan.Şifre 1234# dir.İsis şemasını aşağıdaki resimdeki gibi düzenlemelisin.Keypadi muhakkak b portuna tak (port_b_pullups(true);) kodu gerektiğinden.Tuşlara her bastığında buzzerden ses geliyor.Breadboarda denenmiştir çok güzel çalışıyor.Bip sesleri bankamatikteki gibi tuşla birlikte gelmektedir.


  #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;
  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 _eeprom()
{


  printf(lcd_putc,"\fRsifre:");
  delay_ms(500);
   
  all:
   
  tus_al();

  write_eeprom(0,1);
  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();

  write_eeprom(1,2);
  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();
  write_eeprom(2,3);
  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();
 
  write_eeprom(3,4);
  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=((1*1000)+(2*100)+(3*10)+(4*1));


}

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:






_eeprom();




  if(sifre==((read_eeprom(0)*1000)+(read_eeprom(1)*100)+(read_eeprom(2)*10)+(read_eeprom(3)*1))&&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:: 16 Nisan 2014, 21:56:22

Buda isis şeması:
(http://resimhack.com/img/ads%C4%B1z.png)
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: aydınD - 16 Nisan 2014, 09:57:45
ares çizimi mevcut mu hocam
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: Recep METE - 16 Nisan 2014, 18:14:20
Alıntı yapılan: aydınD - 16 Nisan 2014, 09:57:45
ares çizimi mevcut mu hocam
ares cizimi yok arkadaşım.
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: baran123 - 16 Nisan 2014, 20:07:58
merhaba @semfero devreyi kurdum isisde kodlardada küçük bir düzenleme yaptım fakat şifreyi yanlıs girsemde doğru kabul ediyor sizce hata ne olabilir yanlıs bir yere değistirdim galiba


#include <16f877A.h>
#fuses XT,NOWDT,NOBROWNOUT,NOLVP,NOPUT,NOCPD,NOWRT,NOPROTECT,NODEBUG
#use delay(clock=4000000)
#include <lcd.c>     

#use fast_io(a)   
#use fast_io(b)   
#use fast_io(c)
#use fast_io(d)
     
#define use_portd_lcd TRUE
#define buzzer pin_B7   
#define led1 pin_D3

#define sat1 pin_B0   
#define sat2 pin_B1               
#define sat3 pin_B2                   
#define sat4 pin_B3   
#define sut1 pin_B4
#define sut2 pin_B5                     
#define sut3 pin_B6
 

unsigned int8  tus,e;
unsigned int16 sifre=0;

void tus_al()
{                   
   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 eeprom()
{                       
   printf(lcd_putc,"\fPassword : ");
   delay_ms(100);                                           
   
   all:
               
   tus_al();                           
   
   write_eeprom(0,1);
   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();
   
   write_eeprom(1,2);
   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();
   write_eeprom(2,3);
   lcd_gotoxy(13,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();
                   
   write_eeprom(3,4);
   lcd_gotoxy(14,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=((1*1000)+(2*100)+(3*10)+(4*1));
}

void main()
{     
   set_tris_a(0x00);
   set_tris_b(0x0F);   
   set_tris_c(0x00);
   set_tris_d(0x00);
                 
   output_a(0x00);                                           
   output_b(0x00);
   output_c(0x00);
   output_low(LED1); 
   
   port_b_pullups(true);
   lcd_init();
   start:             
   eeprom();
   
   if(sifre==((read_eeprom(0)*1000)+(read_eeprom(1)*100)+(read_eeprom(2)*10)+(read_eeprom(3)*1))&&e==14)
   {
      lcd_gotoxy(1,1);
      printf(lcd_putc,"\fWelcome");
      delay_ms(100);
      output_high(LED1);   
   }       
   
   else                 
   {               
      lcd_gotoxy(1,1);
      printf(lcd_putc,"\fWrong Password !");
      printf(lcd_putc,"\nTry Again");
      delay_ms(1000);   
      goto start;
   } 
}                   
               
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: Recep METE - 16 Nisan 2014, 21:13:58
Alıntı yapılan: baranekrem9 - 16 Nisan 2014, 20:07:58
merhaba @semfero devreyi kurdum isisde kodlardada küçük bir düzenleme yaptım fakat şifreyi yanlıs girsemde doğru kabul ediyor sizce hata ne olabilir yanlıs bir yere değistirdim galiba


#include <16f877A.h>
#fuses XT,NOWDT,NOBROWNOUT,NOLVP,NOPUT,NOCPD,NOWRT,NOPROTECT,NODEBUG
#use delay(clock=4000000)
#include <lcd.c>     

#use fast_io(a)   
#use fast_io(b)   
#use fast_io(c)
#use fast_io(d)
     
#define use_portd_lcd TRUE
#define buzzer pin_B7   
#define led1 pin_D3

#define sat1 pin_B0   
#define sat2 pin_B1               
#define sat3 pin_B2                   
#define sat4 pin_B3   
#define sut1 pin_B4
#define sut2 pin_B5                     
#define sut3 pin_B6
 

unsigned int8  tus,e;
unsigned int16 sifre=0;

void tus_al()
{                   
   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 eeprom()
{                       
   printf(lcd_putc,"\fPassword : ");
   delay_ms(100);                                           
   
   all:
               
   tus_al();                           
   
   write_eeprom(0,1);
   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();
   
   write_eeprom(1,2);
   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();
   write_eeprom(2,3);
   lcd_gotoxy(13,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();
                   
   write_eeprom(3,4);
   lcd_gotoxy(14,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=((1*1000)+(2*100)+(3*10)+(4*1));
}

void main()
{     
   set_tris_a(0x00);
   set_tris_b(0x0F);   
   set_tris_c(0x00);
   set_tris_d(0x00);
                 
   output_a(0x00);                                           
   output_b(0x00);
   output_c(0x00);
   output_low(LED1); 
   
   port_b_pullups(true);
   lcd_init();
   start:             
   eeprom();
   
   if(sifre==((read_eeprom(0)*1000)+(read_eeprom(1)*100)+(read_eeprom(2)*10)+(read_eeprom(3)*1))&&e==14)
   {
      lcd_gotoxy(1,1);
      printf(lcd_putc,"\fWelcome");
      delay_ms(100);
      output_high(LED1);   
   }       
   
   else                 
   {               
      lcd_gotoxy(1,1);
      printf(lcd_putc,"\fWrong Password !");
      printf(lcd_putc,"\nTry Again");
      delay_ms(1000);   
      goto start;
   } 
}                   
               


Baranekrem,write_eeprom içindeki  şifreleri değiştireceksin.Sonra sifre yazan yerdeki (
sifre=((1*1000)+(2*100)+(3*10)+(4*1));) şifreleri değiştireceksin.Anlamadığın yer olursa yardımcı olurum.
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: baran123 - 16 Nisan 2014, 21:20:32
pardon tam olarak anlayamadım şifre zaten 1234#değil mi ?
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: 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.
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: Recep METE - 17 Nisan 2014, 12:32:03
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.
Başlık: Ynt: Hazır Şifreli Şifreli Güvenlik Sistemi
Gönderen: aydınD - 17 Nisan 2014, 16:21:32
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