BU YAZILIMDA HATA NERDE

Kapat
X
 
  • Zaman
  • Gösterim
Clear All
yeni mesajlar
  • TB5MAA
    Junior Member
    • 04-08-2011
    • 1

    BU YAZILIMDA HATA NERDE

    SELAMLAR,
    Bu forumda ETE kullanıcı isimli arkadaşımızın DTMF ile ev otomasyonu uygulaması için yazdığı kodları kendi yaptığım uygulamada kullanmak üzere sadeleştirdim. Ama sonuç alamadım. Kodların çalışmayan sade hali aşağıdadır. Sistemin çalışma mantığı şudur: İşlemci ilk programlandığında röle açma şifresi 1453 olarak belirlenmiştir bu değer dahili eproma yazılmıştır. #9 girilip ardından eski şifre ardından yeni şifre girilince şifre değişmektedir. 7676 şifresi master şifredir şifre unutulunca pic işlemcinin ilk programlandığı değere döndürmektedir şifreyi yani 1453'e. Buraya kadar sadece röleyi açmayı denedim yazılma daha kapama kısmını eklemedim çünkü bu noktaya kadar çalıştıramadım. Çalışsaydı Devamını getirecektik.
    Bu yazılıma son halini verdiğimde algoritmanın şu şekilde olmasını planlıyorum.
    1453 ilk açma şifresi 1numaralı röle için
    1071 ilk kapama şifresi 1numaralı röle için
    1453#yeni şifre 1numaralı röle için açma şifresi değişti
    1071#yeni şifre 1numaralı röle için kapama şifresi değişti
    aynı işlemi 2numaralı röle içinde farklı şifrelerle yapmak istiyorum.
    Yardımcı olacak arkadaşlara teşekkürler.
    Aslı ETE kullanıcı isimli arkadaşa ait olup benim sadeleştirdiğim yazılım.(Bu haliyle çalışmıyor.)
    [code]
    '************************************************* ***************
    '* Name : UNTITLED.BAS *
    '* Author : [E.T.E] *
    '* Notice : Copyright (c) 2005 Ete] *
    '* : All Rights Reserved *
    '* Date : 02.06.2005 *
    '* Version : 1.0 *
    '* Notes : *
    '* : *
    '************************************************* ***************
    PORTA=0:PORTB=0
    TRISB=%11111111 'PortB.0 giriş diğerleri çıkış yapıldı.
    TRISA=%00000000 'A portu tamamı çıkış yapıldı.
    '-----------------------------------------------------------------
    @ DEVICE pic16F628A 'işlemci 16F628
    @ DEVICE pic16F628A, WDT_OFF 'Watch Dog timer açık
    @ DEVICE pic16F628A, PWRT_ON 'Power on timer açık
    @ DEVICE pic16F628A, PROTECT_OFF 'Kod Protek kapalı
    @ DEVICE pic16F628A, MCLR_OFF 'MCLR pini kullanılıyor.
    @ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT 'Dahili osilatör kullanılacak
    '-----------------------------------------------------------------
    CMCON=7 '16F628 de komparatör pinleri iptal hepsi giriş çıkış
    '-----------------------------------------------------------------
    SIFRE VAR WORD
    RAKAM var WORD
    TEMP VAR WORD
    BASKA VAR WORD
    ZAMAN VAR WORD
    SURE VAR word
    SAYI VAR BYTE
    DURUM VAR BYTE
    BIRLER VAR BYTE
    ONLAR VAR BYTE
    YUZLER VAR BYTE
    BINLER VAR BYTE
    CIK VAR BIT
    SYMBOL CIKIS1=PORTA.1
    SYMBOL CIKIS2=PORTA.2
    SYMBOL CIKIS3=PORTA.3
    symbol CIKIS4=PORTA.4
    SYMBOL CIKIS5=PORTA.5
    SYMBOL ISD =PORTA.6
    SYMBOL ROLE=PORTB.7
    SYMBOL VALDAT=PORTB.0
    SYMBOL BUZZER=PORTA.7
    '--------------------------------------------------------------------------
    DATA @ 0,1,4,5,3
    PAUSE 200
    CLEAR
    read 0,SAYI:PAUSE 10
    IF SAYI=$FF THEN
    SIFRE=1453
    GOSUB SIFREYAZ
    endIF
    READ 0,BINLER
    READ 1,YUZLER
    READ 2,ONLAR
    READ 3,BIRLER
    SIFRE=BINLER*1000+YUZLER*100+ONLAR*10+BIRLER
    '--------------------------------------ANA--------------------------------------
    BASLA:
    PASWORD: RAKAM=0:GOSUB SIFREAL
    IF CIK=1 THEN BITIR
    IF RAKAM=7676 THEN
    SIFRE=1453
    GOSUB SES2
    GOSUB SES1
    GOSUB SES2:gosub ses1
    GOSUB SIFREYAZ
    GOTO ROLEKONTROL
    ENDIF
    IF RAKAM=SIFRE THEN
    GOSUB SES2:pause 50
    GOSUB SES1:pause 50
    GOSUB SES1:gosub ses1
    GOTO ROLEKONTROL
    ENDIF
    ROLEKONTROL: GOSUB ALBILGI
    IF CIK=1 THEN BITIR
    IF SAYI=12 THEN ACMA '#
    IF SAYI=11 THEN KAPAT '*
    gosub ses2
    GOTO BASLA
    ACMA:
    GOSUB ALBILGI
    IF CIk=1 THEN BITIR
    IF SAYI=0 THEN
    gosub ses3
    GOSUB EXIT
    GOTO BASLA
    ENDIF

    DURUM=PORTA

    IF SAYI=1 THEN
    IF durum.1=0 THEN
    GOSUB SES1
    PORTA=DURUM | %00000001
    goto ROLEKONTROL
    ENDIF
    ENDIF

    IF SAYI=2 THEN
    IF durum.2=0 THEN
    GOSUB SES1:GOSUB SES1
    PORTA=DURUM | %00000010
    goto ROLEKONTROL
    ENDIF
    ENDIF

    IF SAYI=9 THEN '#9
    GOSUB SIFREAL
    GOSUB SES1:gosub ses2
    IF CIK=1 THEN BITIR
    IF RAKAM=SIFRE THEN
    GOSUB SES1:GOSUB SES1:GOSUB SES2
    GOSUB SIFREAL
    IF CIK=1 THEN BITIR
    SIFRE=RAKAM
    GOSUB SES1:gosub ses2
    gosub SIFREYAZ
    ENDIF
    ENDIF
    GOTO ROLEKONTROL


    KAPAT: GOSUB ALBILGI
    IF CIK=1 THEN BITIR
    durum=PORTA

    IF SAYI=0 THEN
    GOSUB SES3
    PORTA=DURUM & %11000000 '*0
    ENDIF

    IF SAYI=1 THEN
    IF durum.1=1 THEN
    GOSUB SES2
    PORTA=DURUM & %11111110
    goto ROLEKONTROL
    ENDIF
    ENDIF

    IF SAYI=2 THEN
    IF durum.2=1 THEN
    GOSUB SES2:GOSUB SES2
    PORTA=DURUM & %11111101
    goto ROLEKONTROL
    ENDIF
    ENDIF

    SIFREAL: GOSUB ALBILGI
    IF CIK=1 THEN RETURN
    RAKAM=SAYI*1000
    GOSUB ALBILGI
    IF CIK=1 THEN RETURN
    RAKAM=RAKAM+SAYI*100
    GOSUB ALBILGI
    IF CIK=1 THEN RETURN
    RAKAM=RAKAM+SAYI*10
    GOSUB ALBILGI
    IF CIK=1 THEN RETURN
    RAKAM=RAKAM+SAYI
    RETURN
    ALBILGI:
    SURE=0:ZAMAN=0
    WHILE VALDAT=0
    SURE=SURE+1
    PAUSEus 270
    IF SURE=65500 THEN
    CIK=1:RETURN
    ENDIF
    WEND

    SAYIAL: SAYI=0
    WHILE VALDAT=1
    SAYI.0=PORTA.4
    SAYI.1=PORTA.3
    SAYI.2=PORTA.2
    SAYI.3=PORTA.1
    WEND
    IF SAYI=10 THEN SAYI=0
    RETURN

    SIFREYAZ:TEMP=SIFRE
    BINLER=TEMP DIG 3
    YUZLER=TEMP DIG 2
    ONLAR =TEMP DIG 1
    BIRLER=TEMP DIG 0
    WRITE 0,BINLER:PAUSE 10
    WRITE 1,YUZLER:PAUSE 10
    WRITE 2,ONLAR :PAUSE 10
    WRITE 3,BIRLER:PAUSE 10
    RETURN

    SES1: SOUND BUZZER,[110,12]:pause 30:RETURN
    SES2: SOUND BUZZER,[95,12] :pause 30:RETURN
    SES3: SOUND BUZZER,[85,25] :Pause 30:RETURN
    BITIR: GOSUB EXIT:GOTO BASLA:RETURN
    EXIT : SURE=0
    CIK=0
    RAKAM=0
    LOW ROLE
    LOW ISD
    gosub ses2
    gosub ses2
    GOSUB SES3
    GOSUB SES3
    RETURN
    End
İşlem Yapılıyor