Şimdi Ara

pic basic çok küçük yardıma ihtiyacım var

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
250
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • yazıılı olan programda nem değeri set değerinin altına düşünce röle çekiyor. bunu tam tersi yapmak istiyorum. Set değerinin üzerine çıkınca röle çekecek. yardımcı olursanız çok makbule geçecek.
    '---------------------------değişkenler-----------------------------------------
    Y VAR BIT
    TERM VAR BYTE
    NEM VAR BYTE
    KONTROL VAR BYTE
    ISI1 VAR BYTE
    ISI2 VAR BYTE
    U1 VAR BYTE
    U2 VAR BYTE
    C0 VAR BYTE
    Z VAR BYTE
    SAY VAR BYTE
    H0 VAR HAM.BYTE0
    H1 VAR HAM.BYTE1
    HAM VAR WORD
    RAW var word
    ISI VAR WORD
    RUT VAR WORD
    P1 VAR WORD
    P2 VAR WORD
    P3 VAR WORD
    C VAR WORD
    B VAR WORD
    W VAR WORD
    CLK VAR PORTA.0
    DTA VAR PORTA.1
    ISARET VAR BIT 'sensor değeri 0 ise artı, 1 ise eksi
    SIGN VAR BIT 'ısı isareti 0 ise artı 1 ise eksi
    HATA var BIT
    MENU VAR PORTA.4
    YUKARI VAR PORTA.2
    ASAGI VAR PORTA.3
    symbol Role1=PortB.0
    symbol Role2=PortB.1
    symbol Buzer=PortA.7
    '-----------------------------B A Ş L A N G I Ç ------------------------------
    LOW ROLE1:LOW ROLE2:PAUSE 20
    CLEAR:TRISA=%00111111:TRISB=0:CMCON=7
    PAUSE 500:ISARET=0
    LCDOUT $FE,$40,$6,$9,$9,$6,$0,$0,$0,$0 'derece işareti dataları
    LCDOUT $FE,$48,$04,$0e,$0e,$0e,$1f,$04,$04,$0
    LCDOut $FE,1
    'gosub reset :GOSUB T_START
    '-------------------------------------------------------------------------------
    LCDOUT $FE,1
    lcdout "Söğütlü Çpl"
    lcdout $FE,$C0," NEMRUT "
    pause 2000
    LCDOUT $FE,1
    BASLA:
    KONTROL=%00000011:HAM=0 'SICAKLIK ÖLÇME
    GOSUB OLCUMAL
    Gosub ISIHESAP:GOSUB EKRAN1
    'PAUSE 250
    KONTROL=%00000101:HAM=0 'RUTUBET ÖLÇME
    GOSUB OLCUMAL
    GOSUB RUTHESAP
    'GOSUB EKRAN2
    pause 200
    GOSUB ISIKONTROL
    GOSUB RUTKONTROL
    IF MENU=1 THEN
    GOTO AYAR_MENULERI
    ENDIF
    goto BASLA
    '---------------------------------------EKRANA YAZ -----------------------------
    EKRAN1: LCDOut $FE,2
    if ISARET=1 THEN
    LCDOut "ISI:-",DEC2 ISI1 ,0,"C"," NEM:",DEC2 U1:RETURN
    endIF
    lcdout "ISI:",DEC2 ISI1 ,0,"C"," NEM:",DEC2 U1
    lcdout $FE,$C0," version.1.0 "
    RETURN
    'EKRAN2: LCDOut $FE,$C0:
    ' LCDOut "NEM:",DEC2 U1
    ' RETURN
    '------------------------------- İŞLEM START -----------------------------------
    T_START:
    OUTPUT DTA:OUTPUT CLK
    HIGH DTA
    LOW CLK
    PAUSE 1
    HIGH CLK
    LOW DTA
    PAUSE 1
    LOW CLK
    PAUSE 1
    HIGH CLK
    PAUSE 1
    HIGH DTA
    LOW CLK
    RETURN
    '-----------------------------R E S E T ----------------------------------------
    RESET: OUTPUT DTA:OUTPUT CLK':TRISA.0=0:TRISA.1=0'
    high DTA=1
    FOR W=0 TO 9
    HIGH CLK
    pause 1
    LOW CLK
    Next W
    Return
    '-----------------------SENSORE KOMUT GÖNDER -----------------------------------
    OLCUMAL: GOSUB T_Start
    SHIFTOUT DTA,CLK,1,[KONTROL]
    INPUT DTA
    PULSOUT CLK,10
    HATA=0
    FOR W=0 to 65500
    IF DTA=0 then EXIT
    NEXT W
    HATA=1
    EXIT: IF HATA=1 then
    gosub SENSORYOK
    endif
    SHIFTIN DTA,CLK,0,[H1]
    OUTPUT DTA
    LOW DTA
    PULSOUT CLK,10
    INPUT DTA
    SHIFTIN DTA,CLK,0,[H0]
    PULSOUT CLK,10
    RETURN
    '----------------------ISI HESAP ALT PROGRAMI-----------------------------------
    ISIHESAP:
    If ham<4000 then
    ISARET=1 'sıcaklık eksi değerde demek
    ISI1=(4000-HAM)/100
    ISI2=((4000-ham)//100)/10
    goto ISISON
    endif
    ISI1=(HAM-4000)/100
    ISI2=((HAM-4000)//100)/10
    ISISON: if HAM>16384 then
    ISI1=0:ISI2=0
    endif
    RETURN
    '-------------------------RUTUBET HESAP ALT PROGRAMI----------------------------
    RUTHESAP:
    ' ISI=ISI1*10+ISI2
    p1=(26542-(54722**ham+ham))**ham-25
    P2=655+(HAM*5)+(HAM**15917)
    P3=(P2**(ISI*10+2480))-(P2**2730)+P1 ' kompanse edilmiş değer
    U1=p3/10:U2=p3//10
    IF ham>3710 THEN
    U1=0:U2=0
    GOTO SENSORYOK
    ENDIF
    return
    '----------------------------ISI KONTROL----------------------------------------
    ISIKONTROL:
    read 1,TERM
    if TERM<ISI1-0 then
    LOW Role1
    ELSE
    ENDIF
    if ISI1<TERM+0 then
    HIGH ROLE1
    endif
    RETURN
    '----------------------------RUTKONTROL-----------------------------------------
    RUTKONTROL:
    READ 2,NEM
    if NEM>U1 then
    HIGH Role2
    ELSE
    LOW ROLE2
    ' IF U1>NEM+0 THEN
    ' HIGH ROLE2
    ENDIF
    RETURN
    '-------------------------------------------------------------------------------
    AYAR_MENULERI:

    ISI_AYARI:
    high buzer
    for say=0 to 100
    pauseus 4000
    next
    low buzer
    lcdout $FE,1
    lcdout $FE,$C0
    lcdout $fe,$c0," ISIYI AYARLA "
    IF MENU=1 then TERM_KONTROL
    IF ASAGI=1 then NEM_AYARI
    IF YUKARI=1 then CIK
    GOTO ISI_AYARI

    NEM_AYARI:
    high buzer
    for say=0 to 100
    pauseus 4000
    next
    low buzer
    lcdout $FE,1
    lcdout $FE,$C0
    lcdout $fe,$c0," NEMi AYARLA "
    IF MENU=1 then NEM_KONTROL
    IF ASAGI=1 then CIK
    IF YUKARI=1 then ISI_AYARI
    goto NEM_AYARI

    CIK:
    high buzer
    for say=0 to 100
    pauseus 4000
    next
    low buzer
    lcdout $FE,1
    lcdout $FE,$C0
    lcdout $fe,$c0," MENUDEN CIKIS "
    IF MENU=1 then AYARLANDI
    IF ASAGI=1 then ISI_AYARI
    IF YUKARI=1 then NEM_AYARI
    goto CIK

    AYARLANDI:
    IF MENU=1 then AYARLANDI
    lcdout $fe,1," AYARLANDI "
    PAUSE 1000
    goto BASLA
    '-------------------------------------------------------------------------------
    TERM_KONTROL:
    high buzer
    for say=0 to 100
    pauseus 4000
    next
    low buzer
    lcdout $FE,1
    lcdout $fe,$80," ISI LiMiTi "
    lcdout $FE,$C0,"AYARI:",#TERM
    IF YUKARI=1 then TERM=TERM+1
    IF TERM=01 then TERM=121
    IF ASAGI=1 then TERM=TERM-1
    IF TERM=121 then TERM=01
    WRITE 1,TERM:PAUSE 10
    IF MENU=1 THEN
    GOTO AYARLANDI
    ENDIF
    GOTO TERM_KONTROL
    RETURN
    '-------------------------------------------------------------------------------
    NEM_KONTROL:
    high buzer
    for say=0 to 100
    pauseus 4000
    next
    low buzer
    lcdout $FE,1
    lcdout $fe,$80," NEM LiMiTi "
    lcdout $FE,$C0,"AYARI:",#NEM
    IF YUKARI=1 then NEM=NEM+1
    IF NEM=01 then NEM=121
    IF ASAGI=1 then NEM=NEM-1
    IF NEM=121 then NEM=01
    WRITE 2,NEM:PAUSE 10
    IF MENU=1 THEN
    GOTO AYARLANDI
    ENDIF
    GOTO NEM_KONTROL
    RETURN
    '-------------------------------------------------------------------------------
    SENSORYOK: LCDOUT $FE,$02," SENSOR YOK "
    LCDOUT $FE,$C0," KONTROL EDiN "
    PAUSE 1500
    RETURN
    END







  • RUTKONTROL rutinin aşağıdaki gibi değiştirip denermisin

    '----------------------------RUTKONTROL-----------------------------------------
    RUTKONTROL:
    READ 2,NEM
    if NEM>U1 then
    LOW Role2
    ELSE
    HIGH ROLE2
    ' IF U1>NEM+0 THEN ' BU SATIR DERLENMEZ
    ' LOW ROLE2 ' BU SATIR DERLENMEZ
    ENDIF
    RETURN
  • quote:

    Orijinalden alıntı: evren kılıç

    RUTKONTROL rutinin aşağıdaki gibi değiştirip denermisin

    '----------------------------RUTKONTROL-----------------------------------------
    RUTKONTROL:
    READ 2,NEM
    if NEM>U1 then
    LOW Role2
    ELSE
    HIGH ROLE2
    ' IF U1>NEM+0 THEN ' BU SATIR DERLENMEZ
    ' LOW ROLE2 ' BU SATIR DERLENMEZ
    ENDIF
    RETURN

    Benimde ilk aklima gelen bu olmuştu. Ama bir turlu hexe ceviremiyorum. Yanimdaki bilgisayarda program yapmiyor. Sabah deneyebilirim. Yada biri hex yaparsa:))

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.