Şifreli kilit

Schahin35

Üye
Katılım
1 Tem 2011
Mesajlar
2
Puanları
1
Yaş
36
Arkadaşlar merhaba. ben sıfrelı kılıt uygulması yapıyorum. suan sıfremı gırdıgımde roleyı cektıyorum .ben buna ılave olrak butona bastıgımda sıfremı degıstırmk ıstıyorum. amam bunu bı turlu beceremedım . pic bası ıle yazdıgım kodlar :
PortA=0
TrisA=%10000000
PortB=0
TrisB=%00111001
CMCON=7
OPTION_REG.7=0
SYMBOL BUZZER =PORTA.4
SYMBOL BUTON =PORTB.5
SYMBOL ROLE =PORTB.6
SYMBOL KAYIT=PORTB.1
SYMBOL YATAY_A =PORTA.0
SYMBOL YATAY_B =PORTA.1
SYMBOL YATAY_C =PORTA.2
SYMBOL YATAY_D =PORTA.3
SYMBOL DIKEY_1=PORTB.0
SYMBOL DIKEY_2=PORTB.3
SYMBOL DIKEY_3=PORTB.4
ADR VAR BYTE

DAD VAR BYTE
RAKAM VAR BYTE
OKU VAR BYTE
SIFRE VAR WORD
TUS VAR BYTE
ANA_MENU:
SIFRE=0
TUS=0
ROLE=0
BUZZER=1
BUTON =0
PAUSE 300
LOW buzzer
pause 2000
HIGH buzzer
DATA @10,123,124
Read 10,sifre.byte0
Read 11,sifre.byte1
if Sifre=65535 then
sifre=$1234
write 10,sifre.byte0:pause 10
write 11,sifre.byte1:pause 10

ENDIF
BASLA:

tus=255
YATAY_A=0
IF DIKEY_1=0 THEN
TUS=1
LOW buzzer
pause 750
HIGH buzzer
WHILE DIKEY_1=0:WEND
ENDIF

IF DIKEY_2=0 THEN
TUS=2
low buzzer
pause 750
high buzzer
WHILE DIKEY_2=0:WEND
ENDIF

IF DIKEY_3=0 THEN
TUS=3
low buzzer
pause 750
high buzzer
WHILE DIKEY_3=0:WEND
ENDIF

HIGH YATAY_A

YATAY_B=0
IF DIKEY_1=0 THEN
TUS=4
low buzzer
pause 750
high buzzer
WHILE DIKEY_1=0:WEND
ENDIF

IF DIKEY_2=0 THEN
TUS=5
low buzzer
pause 750
high buzzer
WHILE DIKEY_2=0:WEND
ENDIF
IF DIKEY_3=0 THEN
TUS=6
low buzzer
pause 750
high buzzer
WHILE DIKEY_3=0:WEND
ENDIF

HIGH YATAY_B

YATAY_C=0
IF DIKEY_1=0 THEN
low buzzer
pause 750
high buzzer
TUS=7
low buzzer
pause 750
high buzzer
WHILE DIKEY_1=0:WEND
ENDIF

IF DIKEY_2=0 THEN
TUS=8
low buzzer
pause 750
high buzzer
WHILE DIKEY_2=0:WEND
ENDIF
IF DIKEY_3=0 THEN
TUS=9
low buzzer
pause 750
high buzzer
WHILE DIKEY_3=0:WEND
ENDIF

HIGH YATAY_C

YATAY_D=0
IF DIKEY_1=0 THEN
TUS=11
low buzzer
pause 750
high buzzer
WHILE DIKEY_1=0:WEND
ENDIF

IF DIKEY_2=0 THEN
TUS=0
low buzzer
pause 750
high buzzer
WHILE DIKEY_2=0:WEND
ENDIF
IF DIKEY_3=0 THEN
TUS=12
low buzzer
pause 750
high buzzer
WHILE DIKEY_3=0:WEND
ENDIF
HIGH YATAY_D
PAUSE 30
IF TUS=10 THEN TUS=0
IF TUS<13 THEN
SIFRE=SIFRE*10+TUS
ENDIF
IF SIFRE=12352 THEN
GOSUB ROLEAC
SIFRE=0
ENDIF
IF SIFRE>10000 THEN SIFRE=0

GOTO BASLA

ROLEAC:
HIGH PORTB.6
PAUSE 5000
LOW PORTB.6
PAUSE 5000
RETURN
IF BUTON=1 THEN


LOW PORTB.6
PAUSE 2000
ELSE
HIGH BUZZER
PAUSE PORTB.6
ENDIF




BASLA2:
FOR DAD = 8 TO 11
HIGH DAD
GOSUB DEGER2
LOW DAD
NEXT DAD
GOTO BASLA2
END
DEGER2
YATAY_A=0
IF DIKEY_1=0 THEN
TUS=1
WHILE DIKEY_1=0:WEND
ENDIF

IF DIKEY_2=0 THEN
TUS=2
WHILE DIKEY_2=0:WEND
ENDIF

IF DIKEY_3=0 THEN
TUS=3
WHILE DIKEY_3=0:WEND
ENDIF

HIGH YATAY_A

YATAY_B=0
IF DIKEY_1=0 THEN
TUS=4
WHILE DIKEY_1=0:WEND
ENDIF

IF DIKEY_2=0 THEN
TUS=5
WHILE DIKEY_2=0:WEND
ENDIF
IF DIKEY_3=0 THEN
TUS=6
WHILE DIKEY_3=0:WEND
ENDIF

HIGH YATAY_B

YATAY_C=0
IF DIKEY_1=0 THEN
TUS=7
WHILE DIKEY_1=0:WEND
ENDIF

IF DIKEY_2=0 THEN
TUS=8
WHILE DIKEY_2=0:WEND
ENDIF
IF DIKEY_3=0 THEN
TUS=9
WHILE DIKEY_3=0:WEND
ENDIF

HIGH YATAY_C

YATAY_D=0
IF DIKEY_1=0 THEN
TUS=11
WHILE DIKEY_1=0:WEND
ENDIF

IF DIKEY_2=0 THEN
TUS=0
WHILE DIKEY_2=0:WEND
ENDIF
IF DIKEY_3=0 THEN
TUS=12
WHILE DIKEY_3=0:WEND
ENDIF
HIGH YATAY_D
PAUSE 30
IF TUS=10 THEN TUS=0

IF TUS<13 THEN
SIFRE=SIFRE*10+TUS
IF SIFRE>10000 THEN SIFRE=0
read 10,SIFRE
endif
IF SIFRE=255 THEN


WRITE 10,SIFRE
pause 10
ENDIF
RETURN
 

Ekli dosyalar

  • şifreli kilit deneme11.rar
    18.7 KB · Görüntüleme: 9
arkadaslar konu hakkında bılgısı olan var mı ??? :(
 

Forum istatistikleri

Konular
128,162
Mesajlar
915,577
Kullanıcılar
449,922
Son üye
11akif

Yeni konular

Çevrimiçi üyeler

Geri
Üst