Şimdi Ara

asm şifreli kilit sorunu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
2
Cevap
0
Favori
549
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • LIST	P=16F84A 
    INCLUDE "P16F84A.INC"
    __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

    j EQU 0X01
    k EQU 0X02
    x EQU 0X03 ;şifre x,y,z,t de tutuluyor
    y EQU 0X04
    z EQU 0X05
    t EQU 0X06

    ORG 0X00

    CLRF PORTB ;çıkış,giriş ayarlamaları
    BSF STATUS,5
    CLRF TRISB

    MOVLW H'FF'
    MOVWF TRISA
    BCF STATUS,5

    BASLA
    CLRF PORTB
    CLRF TMR0 ;porta,5 counter kullandım '#' ye bastıkça basılan buttonu alıyor
    CLRWDT
    BSF STATUS,5
    MOVLW b'00101111'
    MOVWF OPTION_REG
    BCF STATUS,5
    CLRF PORTB
    DNG
    MOVF TMR0,W ;1. 2. 3. 4. basılan butonlar x,y,z,t
    SUBLW B'00000001'
    BTFSC STATUS,Z
    GOTO RKM_1
    MOVF TMR0,W
    SUBLW B'00000010'
    BTFSC STATUS,Z
    GOTO RKM_2
    MOVF TMR0,W
    SUBLW B'00000011'
    BTFSC STATUS,Z
    GOTO RKM_3
    MOVF TMR0,W
    SUBLW B'00000100'
    BTFSC STATUS,Z
    GOTO RKM_4
    RKM_1
    MOVLW PORTA
    MOVWF x ;?????????
    GOTO DNG
    RKM_2
    MOVLW PORTA
    MOVWF y
    GOTO DNG
    RKM_3
    MOVLW PORTA
    MOVWF z
    GOTO DNG
    RKM_4
    MOVLW PORTA
    MOVWF t
    GOTO SRG
    SRG
    MOVLW x
    SUBLW B'1101' ;2
    BTFSS STATUS,Z
    GOTO YNL
    MOVLW y
    SUBLW B'1111' ;0
    BTFSS STATUS,Z
    GOTO YNL
    MOVLW z
    SUBLW B'1110' ;1
    BTFSS STATUS,Z
    GOTO YNL
    MOVLW t
    SUBLW B'1101' ;2
    BTFSS STATUS,Z
    GOTO YNL
    GOTO DGR
    YNL
    BSF PORTB,0
    CALL DELAY
    CLRF TMR0
    GOTO BASLA
    DGR
    BSF PORTB,1
    CALL DELAY
    CLRF TMR0
    GOTO BASLA


    DELAY:
    MOVLW D'200'
    MOVWF j
    JLOOP:
    MOVWF k
    KLOOP:
    DECFSZ k,f
    GOTO KLOOP
    DECFSZ j,f
    GOTO JLOOP
    RETURN
    END


    yaptığım şifreli kilidi bi türlü çalıştıramadım
    sanırsam soru işaretli yerde hata var ama emin değilim
    yardımlarınızı bekliyorum







  • quote:

    Orijinalden alıntı: dwdie

    LIST	P=16F84A 
    INCLUDE "P16F84A.INC"
    __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

    j EQU 0X01
    k EQU 0X02
    x EQU 0X03 ;şifre x,y,z,t de tutuluyor
    y EQU 0X04
    z EQU 0X05
    t EQU 0X06

    ORG 0X00

    CLRF PORTB ;çıkış,giriş ayarlamaları
    BSF STATUS,5
    CLRF TRISB

    MOVLW H'FF'
    MOVWF TRISA
    BCF STATUS,5

    BASLA
    CLRF PORTB
    CLRF TMR0 ;porta,5 counter kullandım '#' ye bastıkça basılan buttonu alıyor
    CLRWDT
    BSF STATUS,5
    MOVLW b'00101111'
    MOVWF OPTION_REG
    BCF STATUS,5
    CLRF PORTB
    DNG
    MOVF TMR0,W ;1. 2. 3. 4. basılan butonlar x,y,z,t
    SUBLW B'00000001'
    BTFSC STATUS,Z
    GOTO RKM_1
    MOVF TMR0,W
    SUBLW B'00000010'
    BTFSC STATUS,Z
    GOTO RKM_2
    MOVF TMR0,W
    SUBLW B'00000011'
    BTFSC STATUS,Z
    GOTO RKM_3
    MOVF TMR0,W
    SUBLW B'00000100'
    BTFSC STATUS,Z
    GOTO RKM_4
    RKM_1
    MOVLW PORTA
    MOVWF x ;?????????
    GOTO DNG
    RKM_2
    MOVLW PORTA
    MOVWF y
    GOTO DNG
    RKM_3
    MOVLW PORTA
    MOVWF z
    GOTO DNG
    RKM_4
    MOVLW PORTA
    MOVWF t
    GOTO SRG
    SRG
    MOVLW x
    SUBLW B'1101' ;2
    BTFSS STATUS,Z
    GOTO YNL
    MOVLW y
    SUBLW B'1111' ;0
    BTFSS STATUS,Z
    GOTO YNL
    MOVLW z
    SUBLW B'1110' ;1
    BTFSS STATUS,Z
    GOTO YNL
    MOVLW t
    SUBLW B'1101' ;2
    BTFSS STATUS,Z
    GOTO YNL
    GOTO DGR
    YNL
    BSF PORTB,0
    CALL DELAY
    CLRF TMR0
    GOTO BASLA
    DGR
    BSF PORTB,1
    CALL DELAY
    CLRF TMR0
    GOTO BASLA


    DELAY:
    MOVLW D'200'
    MOVWF j
    JLOOP:
    MOVWF k
    KLOOP:
    DECFSZ k,f
    GOTO KLOOP
    DECFSZ j,f
    GOTO JLOOP
    RETURN
    END


    yaptığım şifreli kilidi bi türlü çalıştıramadım
    sanırsam soru işaretli yerde hata var ama emin değilim
    yardımlarınızı bekliyorum

    j k x y z t lerin atamaları yanlış. special purpose register alanlarına atama yapmışsın. örneğin x değişkenini atadığın 0x03 adresi STATUS special registerinin adresi. General Purpose Register değerlerini kullanmalısın. Bank0 için 0C yukarısı, aynı değerlere Bank1 den 8C üzerinden ulaşabilirsin.

    programın kalanına bakmadım.




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.