asm sorunu aynı butonla led yanıp sönmüyor ?

Başlatan Proteus, 09 Kasım 2011, 17:29:41

Proteus

arkadaşlar asm de yeniyim kendimce kod yazmaya çalışıyorum fakat şu noktada takıldım bilen biri yardım edebilirmi ?

program şöyle porta,0 bağlı butona basınca portb,2 led yanıcak

tekrar aynı butona basınca (porta,0) portb,2 led sönücek

diğer portlarla yanıp sönmesini sağlayabiliyorum ama aynı butonla yapamıyorum program mantıgı doğru ama led yanıp sönmüyor göremiyorum

ney yapmam lazım


;========= DENEME.ASM ================
LIST P=16F84
INCLUDE "P16F84.INC"
START
CLRF PORTB ; PORTB DEKİ LEDLERİ SÖNDÜR
BSF STATUS,5 ;BANK 1 E GEÇ
CLRF TRISB ;PORTB ÇIKIŞ
BCF STATUS,5 ; BANK 0 A GEÇ
MOVLW H'FF' ;W <-- B'11111111
MOVWF PORTA ;PORTA GİRİŞ

  TEST_PORTA

BTFSC PORTA,0
GOTO TEST_PORTA ; TEKRAR TEST ET      ;(butona basınca yanıcak)
BSF PORTB,2 ; PORTB NİN 2. BİTİNİ YAK



TEST
BTFSC PORTA,0
GOTO TEST ; TEKRAR TEST ET            ; (butona basınca sönücek)
BCF PORTB,2 ; PORTB NİN 2. BİTİNİ SÖNDÜR


DONGU
GOTO DONGU
END






Gökhan BEKEN

Konu başlığının konu ile alakalı olması gerektiğinden ziyade "pls" ne arkadaşım? Hem Türkçe değil, hemde kısaltma. Lütfen kendi açtığınız konuya saygı gösterin ve Türkçe yazın. Türkçe bizim herşeyimiz.
Özel mesaj okumuyorum, lütfen göndermeyin.

eistain_54

BCF STATUS,5 kısmını tris tanımlamalarının sonuna koymalısın.
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

Proteus

ya şöyle  aslında devre çalışıyor basınca led yanıyor basınca sönmüyor aslında sönüyoda görünmüyo cok hızlı oldugu ıcın

carirt

#4
sen programı sonsuz döngüye sokmuşsun hızla alakası yok port test kısmına geri dönmen gerekir

Proteus

LIST P=16F84
INCLUDE "P16F84.INC"
START
CLRF PORTB ; PORTB DEKİ LEDLERİ SÖNDÜR
BSF STATUS,5 ;BANK 1 E GEÇ
CLRF TRISB ;PORTB ÇIKIŞ
BCF STATUS,5 ; BANK 0 A GEÇ
MOVLW H'FF' ;W <-- B'11111111
MOVWF PORTA ;PORTA GİRİŞ

  TEST_PORTA

BTFSC PORTA,0
GOTO TEST_PORTA ; TEKRAR TEST ET      ;(butona basınca yanıcak)
BSF PORTB,2 ; PORTB NİN 2. BİTİNİ YAK





BTFSC PORTA,0
GOTO TEST_PORTA ; TEKRAR TEST ET            ; (butona basınca sönücek)
BCF PORTB,2
GOTO TEST_PORTA

DONGU
GOTO DONGU
END

DEDİĞİNİ YAPTIM DOĞRU AMA SÖYLE Bİ SORUN DAHA VAR ŞİMDİ BASIYORUM YANIYO HEMEN SÖNÜYO ARAYA ZAMAN NASIL KOYUCAM HEMEN YANIP SÖNÜYO

carirt

BTFSC PORTA,0
GOTO TEST_PORTA ; TEKRAR TEST ET      ;(butona basınca yanıcak)
BSF PORTB,2 ; PORTB NİN 2. BİTİNİ YAK


BTFSS PORTA,0 olucak

YALNIZ YAZDIĞIN PROGRAMDA BİR SÜRÜ HATA VAR BENCE SEN BİRAZ DAHA  UĞRAŞ

MOVLW H'FF' ;W <-- B'11111111
MOVWF PORTA ;PORTA GİRİŞ

TRISA SAKLAYICISI BANK 1 DE BANK 0 DA DEĞİL


TEST_PORTA

BUNDAN İKİ ADET TANIMLAMAN LAZIM MESELA DİĞERİ

TEST_PORTA1 OLABİLİR

BUTON TEST İŞLEMİNDE ZAMAN GECİKMESİNE GEREK YOK YÜRÜYEN IŞIK FALAN YAPICAKSAN GEREKLİ OLUR ONUN İÇİN TMR0,TMR1,TMR2Yİ ÖĞRENMEN LAZIM

carirt

#7
LIST P=16F84
INCLUDE "P16F84.INC"
START
CLRF PORTB ; PORTB DEKİ LEDLERİ SÖNDÜR
BSF STATUS,5 ;BANK 1 E GEÇ
CLRF TRISB ;PORTB ÇIKIŞ
MOVLW H'FF' ;W <-- B'11111111
MOVWF PORTA ;PORTA GİRİŞ

BCF STATUS,5 ; BANK 0 A GEÇ

BASLA
  TEST_PORTA

BTFSS PORTA,0
GOTO TEST_PORTA ; TEKRAR TEST ET      ;(butona basınca yanıcak)
BSF PORTB,2 ; PORTB NİN 2. BİTİNİ YAK
NOP   ;NO OPERATION  BUTONA BASTIKTAN SONRA BU KOMUTLAR HİÇBİR İŞLEM YAPTIRMAZ BU ŞEKİLDE OLABİLİR OLMASSA  DECFSZ KOMUTUYLA ZAMAN GECİKMESİ YAPMAN GEREKİR
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP


TEST_PORTA1


BTFSS PORTA,0
GOTO TEST_PORTA1 ; TEKRAR TEST ET            ; (butona basınca sönücek)
BCF PORTB,2
GOTO BASLA
END

BUNU DERLE ÇALIŞIR

DAHİLİ OSİLATÖRÜ DÜŞÜK HIZDA ÇALIŞTIR 32 KHZ OLMASI LAZIM

Proteus

USTA ANLATAMADIM GALİBA

porta,nın0 bitine bağlı butona basınca led yanacak basınca sönecek btfss dersek ilk başta yanar  çünkü enerji var

kodlar çalısıyor aslında ama şöyle  butona basınca hemen yanıp sönüyor sorun bu işte

Proteus

verdigin kodda da devamlı yanıp sönüyor olmadı

carirt

#10
MESAJIMI DEĞİŞTİRDİM Bİ BAK

DAHİLİ OSİLATÖRÜ DÜŞÜK HIZDA ÇALIŞTIR 32 KHZ OLMASI LAZIM

16F628A DA

BCF    PCON,OSCF

KOMUTUYLA OLUYOR (PCON SAKLAYICISI BANK1 DE)

Proteus

TAMAMDIR OLDU SAYENDE BİŞİ ÖĞRENDİM TEŞEKKÜRLER :)

carirt


carirt

AZ KALSIN BENDE DENEME BORDUNDA DENİYCEKTİM NASIL ÇALIŞMAZ ANLAM VEREMEMİŞTİM

Proteus