Hazır Şifreli Şifreli Güvenlik Sistemi

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

Ancotar

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

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

Recep METE

#1
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.
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

Recep METE

#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);
 }   


printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

Ancotar

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

Gökhan BEKEN

[öneri]bir c programına bu kadar goto yakışmamış.[/öneri]
Özel mesaj okumuyorum, lütfen göndermeyin.

aydınD

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

Recep METE

#use            fast_io(a)   


Arkadadaşım  bunu " #use            fast_io(d)   "
yapıp dener misin bir kez daha.
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

ErsinErce

bir sıkıntı çözümü de benden olsun
output_high(sut3);
yapılan yerler hiç low yapılmıyor

Recep METE

#8
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ı:
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

aydınD


Recep METE

printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

baran123

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

Recep METE

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.
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

baran123

pardon tam olarak anlayamadım şifre zaten 1234#değil mi ?

Ancotar

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.