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.byte0ause 10
write 11,sifre.byte1ause 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
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.byte0ause 10
write 11,sifre.byte1ause 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