CCS şifreli kilit uygulamasi

Başlatan sayangku, 31 Temmuz 2014, 21:11:52

sayangku

sa arkadaslar ben http://www.4shared.com/file/49531673/3d3cfe95/sifre.html bu linkteki
devreyi  yaptim calisiyor sıkıntı su ki giristeki 2008 sifresini kabul etmiyor bende degistirmek istiyorum bunu  bana rica etsem editlermisinz ben 2008 kodlarda goremedim kodlari verim


#include <16f877.h>
#fuses XT,NOWDT,CPD,PROTECT
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(d)
#use fast_io(a)
#include <lcd.c>

#define sut3 pin_b0
#define sut2 pin_b1
#define sut1 pin_b2

#define sat1 pin_b3
#define sat2 pin_b4
#define sat3 pin_b5
#define sat4 pin_b6

#define kilit    pin_b7
#define buzzer   pin_c0
#define sari     pin_a0
#define yesil    pin_a1
#define kirmizi  pin_a2

int tus,tusdeger;
int sifre1,sifre2,sifre3,sifre4,sifre5,sifre6,sifre7,sifre8;
int Esifre1,Esifre2,Esifre3,Esifre4;

void tusal()
{
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=11;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=12;goto brk;}
goto don;

brk:
while(!input(sat1));
while(!input(sat2));
while(!input(sat3));
while(!input(sat4));
output_high(buzzer);
delay_ms(150);
output_low(buzzer);

}

void sifreal()
{
tusal();printf(lcd_putc,"*");sifre1=tus;
tusal();printf(lcd_putc,"*");sifre2=tus;
tusal();printf(lcd_putc,"*");sifre3=tus;
tusal();printf(lcd_putc,"*");sifre4=tus;
}

void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
set_tris_a(0b00000000);
set_tris_b(0b01111000);
set_tris_c(0b00000000);
set_tris_d(0b11111111);
port_b_pullups(true);
output_b(0);

lcd_init();
lcd_send_byte(0,0x0c);

bas:
printf(lcd_putc,"\f     GAZITEK ");
lcd_gotoxy(1,2);
printf(lcd_putc,"*GIRIS    #DEGIS");

Esifre1=read_eeprom(0);
Esifre2=read_eeprom(1);
Esifre3=read_eeprom(2);
Esifre4=read_eeprom(3);
output_low(buzzer);
while(1)
{

tusal();
if(tus==11)
{

printf(lcd_putc,"\f SIFREYI GIRINIZ");
output_high(sari);
delay_ms(250);
output_low(sari);
output_high(yesil);
delay_ms(250);
output_low(yesil);
output_high(kirmizi);
delay_ms(250);
output_low(kirmizi);
output_high(sari);
lcd_gotoxy(8,2);
sifreal();
delay_ms(1000);

if(sifre1==Esifre1&sifre2==Esifre2&sifre3==Esifre3&sifre4==Esifre4)
{printf(lcd_putc,"\f  SIFRE KABUL  ");
lcd_gotoxy(1,2);
printf(lcd_putc,"\     EDILDI ");
output_low(sari);
output_high(yesil);
output_high(buzzer);
delay_ms(150);
output_low(buzzer);
delay_ms(50);
output_high(buzzer);
delay_ms(150);
output_low(buzzer);
output_high(kilit);
delay_ms(1000);
output_low(kilit);
delay_ms(1000);
output_low(yesil);
goto bas;}

else
{

printf(lcd_putc,"\f  YANLIS SIFRE ");
lcd_gotoxy(1,2);
printf(lcd_putc,"\  YETKINIZ YOK ");
output_low(sari);
output_high(kirmizi);
output_high(buzzer);
delay_ms(2000);
output_low(buzzer);
output_low(kirmizi);
goto bas ;}
}


if(tus==12)
{
printf(lcd_putc,"\fESKI SIFREYI GIR");
output_high(sari);
lcd_gotoxy(8,2);
sifreal();
delay_ms(1000);

if(sifre1!=Esifre1&sifre2!=Esifre2&sifre3!=Esifre3&sifre4!=Esifre4)
{printf(lcd_putc,"\f  HATALI GIRIS");
Lcd_gotoxy(1,2);
printf(lcd_putc,"\ TEKRAR DENEYIN");

output_low(sari);
output_high(kirmizi);
output_high(buzzer);
delay_ms(500);
output_low(buzzer);
delay_ms(500);
output_low(kirmizi);
goto bas;}

if(sifre1==Esifre1&sifre2==Esifre2&sifre3==Esifre3&sifre4==Esifre4){

printf(lcd_putc,"\fYENI SIFRE GIRIN");
output_low(sari);
delay_ms(500)
;output_high(sari);
lcd_gotoxy(8,2);
sifreal();
delay_ms(1000);

printf(lcd_putc,"\f  SIFRE DOGRULA");
output_low(sari);
delay_ms(500);
output_high(sari);
lcd_gotoxy(8,2);

tusal();printf(lcd_putc,"*");sifre5=tus;
tusal();printf(lcd_putc,"*");sifre6=tus;
tusal();printf(lcd_putc,"*");sifre7=tus;
tusal();printf(lcd_putc,"*");sifre8=tus;

printf(lcd_putc,"\f %u %u %u %u",sifre1,sifre2,sifre3,sifre4);
lcd_gotoxy(1,2);
printf(lcd_putc,"\ %u %u %u %u",sifre5,sifre6,sifre7,sifre8);

delay_ms(1500);

if(sifre1==sifre5&sifre2==sifre6&sifre3==sifre7&sifre4==sifre8){
printf(lcd_putc,"\fSIFRENIZ DEGISTI");
output_high(yesil);

write_eeprom(0,sifre1);
write_eeprom(1,sifre2);
write_eeprom(2,sifre3);
write_eeprom(3,sifre4);

delay_ms(1000);
output_low(sari);
output_high(buzzer);
delay_ms(150);
output_low(buzzer);
delay_ms(50);
output_high(buzzer);
delay_ms(150);
output_low(buzzer);output_low(yesil);goto bas;}

if(sifre1!=sifre5&sifre2!=sifre6&sifre3!=sifre7&sifre4!=sifre8);{
printf(lcd_putc,"\fDOGRULAMA HATASI");
Lcd_gotoxy(1,2);
printf(lcd_putc,"\ TEKRAR DENEYIN");output_low(sari);
output_high(kirmizi);
output_high(buzzer);
delay_ms(150);
output_low(buzzer);
delay_ms(50);
output_high(buzzer);
delay_ms(150);
output_low(buzzer);
delay_ms(50);
output_high(buzzer);
delay_ms(150);
output_low(buzzer);
output_high(buzzer);
delay_ms(150);
output_low(buzzer);
delay_ms(50);
output_high(buzzer);
delay_ms(150);
output_low(buzzer);
output_high(buzzer);
delay_ms(150);
output_low(buzzer);
delay_ms(950);
output_low(kirmizi);
goto bas;}

}

}
}
}


lutfen yardimci olursaniz cok sevinirim

baran123

#1
Burdan anladığım kadarıyla şifre eepromda kayıtlı kodun içinde göremedim  ??? :o

mesaj birleştirme:: 01 Ağustos 2014, 16:46:05

Şöyle bir dene

write_eeprom(0,2);
write_eeprom(1,0); //şifre 2008 oldu
write_eeprom(2,0);
write_eeprom(3,8);
// bu kısmı bu üstteki kodları ekle
Esifre1=read_eeprom(0);
Esifre2=read_eeprom(1);
Esifre3=read_eeprom(2);
Esifre4=read_eeprom(3);

sayangku

Alıntı yapılan: baranekrem9 - 01 Ağustos 2014, 16:42:33
Burdan anladığım kadarıyla şifre eepromda kayıtlı kodun içinde göremedim  ??? :o

mesaj birleştirme:: 02 Ağustos 2014, 06:46:05

Şöyle bir dene

write_eeprom(0,2);
write_eeprom(1,0); //şifre 2008 oldu
write_eeprom(2,0);
write_eeprom(3,8);
// bu kısmı bu üstteki kodları ekle
Esifre1=read_eeprom(0);
Esifre2=read_eeprom(1);
Esifre3=read_eeprom(2);
Esifre4=read_eeprom(3);


çok teşekkür ederim Allah razi olsun senden senin sayene çözdüm  hersey güzel çalışıyor ufak bir sorum var ben simdi sifreyi degistiriyorum sifre gayet guzel degisiyor  calısıyorda sıkıntı yok ama elektrikler gidince yada fisi cekince fabrika ayarlarina geri donuyor sifre yine 2008 oluyor demek istedigim cihaz kapaninca degistirdigim sifre sifirlaniyor bunu nasi çözebilirim acaba yazilimla

samedkutuk

merhabalar devrenin kodundan şemasını çıkaramadım da şemasını paylaşabilir misiniz?
samedkutuk