www.ELEKTROloji.com
Kategoriler
Son Konular
İnternetten Seçmeler
Rastgele Konu
Toplist ve Sayaç

Webseyir

16F877 ile Şifreli Kilit Çalışması

16F877 ile Şifreli Kilit Çalışması


Hobi için yapmış olduğum bu devre genelde güvenlik amaçlı olarak ev , ofis ve iş yeri gibi mekanlarda kullanılır. Sistemde bir adet 16F877 bir adet Keypad ve LCD bulunmaktadır. Sistemin şifresi programdan değiştirilmektedir ve dört hanelidir. Hane sayısını artırmak için değişken sayısını artırmanız ve yeni şifreyi girmeniz yeterlidir. Sistem çalıştığında şifreyi girdikten sonra şifrenin doğru yada yanlış olduğunu değerlendirmek için onay tuşuna [#] basmamız gerekir. Şifre doğru yada yanlış olsada sistem otomatik olarak üç saniye sonra kendini resetleyecek ve yeniden şifre girebileceksiniz. Sistem henüz basit ve geliştirmeye açık istediğiniz gibi kullanabilir ve geliştirebilirsiniz. Aşağıda devrenin görünüşü, açık kodları ve dosyalarına ulaşabilirsiniz...

16F877 ile Şifreli Kilit Çalışması



[b]define osc 4
'****************************************************************
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4    
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2  
DEFINE LCD_EREG PORTB  
DEFINE LCD_EBIT 3    
DEFINE LCD_BITS 4      
DEFINE LCD_LINES 4  
'****************************************************************
TRISB=$00
TRISD=$70
PORTD=$00
'****************************************************************
BUTON VAR BYTE
SIFRE VAR BYTE[3]
TUS VAR BYTE[3]
BASAMAK VAR BYTE
I VAR BYTE      'Döngü elemanı
'****************************************************************
SYMBOL SATIR1=PORTD.0
SYMBOL SATIR2=PORTD.1
SYMBOL SATIR3=PORTD.2
SYMBOL SATIR4=PORTD.3
SYMBOL SUTUN1=PORTD.4
SYMBOL SUTUN2=PORTD.5
SYMBOL SUTUN3=PORTD.6
SYMBOL LED   =PORTD.7
'****************************************************************
PROGRAM_BASI:
'****************************************************************
SIFRE[0] = 5
SIFRE[1] = 0
SIFRE[2] = 2
SIFRE[3] = 0
'****************************************************************
BASAMAK = 0
'****************************************************************
PAUSE 300
LCDOUT $FE,1,"SIFRE:"
'****************************************************************
MENU:
GOSUB TUS_KONTROL
GOSUB YUKLE
IF BASAMAK = 4 THEN GOSUB ONAY 'Son basamak geldikten sonra şifre kontrol et
GOTO MENU
'****************************************************************
TUS_KONTROL:
SATIR1=1
    IF SUTUN1=1 THEN BUTON=1  : GOTO CIKIS1
    IF SUTUN2=1 THEN BUTON=2  : GOTO CIKIS1
    IF SUTUN3=1 THEN BUTON=3  : GOTO CIKIS1
SATIR1=0

SATIR2=1
    IF SUTUN1=1 THEN BUTON=4  : GOTO CIKIS1
    IF SUTUN2=1 THEN BUTON=5  : GOTO CIKIS1
    IF SUTUN3=1 THEN BUTON=6  : GOTO CIKIS1
SATIR2=0

SATIR3=1
    IF SUTUN1=1 THEN BUTON=7  : GOTO CIKIS1
    IF SUTUN2=1 THEN BUTON=8  : GOTO CIKIS1
    IF SUTUN3=1 THEN BUTON=9  : GOTO CIKIS1
SATIR3=0

SATIR4=1
    IF SUTUN1=1 THEN BUTON=10 : GOTO CIKIS1
    IF SUTUN2=1 THEN BUTON=0  : GOTO CIKIS1
    IF SUTUN3=1 THEN BUTON=12 : GOTO CIKIS1
SATIR4=0
PAUSE 100

GOTO TUS_KONTROL

CIKIS1:
PAUSE 250
RETURN
'****************************************************************
YUKLE:
    TUS[BASAMAK] = BUTON
    LCDOUT "*"
    LED = 1
    PAUSE 50
    LED = 0
    BASAMAK = BASAMAK + 1  
RETURN
'****************************************************************
ONAY:
    GOSUB TUS_KONTROL
    IF BUTON = 12 THEN
    GOTO SIFRE_KONTROL
    ELSE
    GOTO ONAY
    ENDIF
'****************************************************************  
SIFRE_KONTROL:
    FOR  I=0 TO 3
        IF SIFRE[I]<>TUS[I] THEN
            LCDOUT $FE,$80,"SIFRE YANLIS"
            GOTO CIKIS2
        ENDIF
    NEXT I
    
    LCDOUT $FE,$80, "SIFRE DOGRU"
    
CIKIS2:
    PAUSE 3000  'Üç saniye sonra program basa döner.
    GOTO PROGRAM_BASI
RETURN
'****************************************************************  
END
[/b]


Program Dosyaları

Etiketler
16f877, pic, şifreli kilit, lock
Yorum Ekle