Merhaba ben assemblyde butonla led kontrol etmek istiyorum butonu 5v ile ve ledi de çıkış portuna baglıyorum butona bastıgımda led yanıyor güzel ama basmayı bıraktıgımda hala buton yanıyor nasıl çözebilirim bu sorunu?
Keşke devrenizin şema, resim ve
kodlarını da paylaşsaydınız.
Sizin gördüklerinizi biz göremiyoruz.
LIST P=16F877A
INCLUDE "P16F877A.INC"
ORG 0X00
CLRF PORTB
BSF STATUS,5
CLRF TRISB
MOVLW 0XFF ; C PORTU G?R?? OLARAK SEÇ?LD?
MOVWF TRISC
BCF STATUS,5
;****************************
BASLA ;Program burada ba?l?yor.
BTFSS PORTC,1
;PORTA n?n 0. bitini kontrol ediyor. 0.Bit 1 mi? hay?r ise döngüde kal?r.
CALL SONDURME ; Bit 1 olmayana kadar döngüden ç?kamaz. 1 olmas? için butona bas?lmal?.
;****************************
BSF PORTB,1 ;
;PORTB nin 1. bitindeki ledi yak.
GOTO BASLA
SONDURME
BCF PORTB,1
; B DEK? LED? SÖNDÜRME
GOTO BASLA;Buraya BASLA yazarsak ve PORTA BASLA komutunun alt?nda s?f?rlan?rsa sadece butona bas?l? iken led yanar.
END
btfss PORTA,0 ;Butonun bağlı olduğu pin high ise 2 satır aşağıya gider
goto $ -1 ;Low ise bir satır geri gider
Movlw B'00000001' ;Ledi yakacak port bilgisi registere alındı
movwf PORTB ;Bilgi portb ye aktarıldı
Sende muhtemelen yukardaki kodlar var , muhtemelern aşağıdaki kodlar yok.
Butona basılı olduğu sürece bekler,bırakılnca ledi söndürür
btfss PORTA,0
goto $ -1
Movlw B'00000000'
movwf PORTB
Mesajlarınıza kod eklerken; "KOD" düğmesini
kullanınız.
Mesajlarınızı buna göre yeniden düzenleyiniz.
Alıntı yapılan: umitco - 14 Haziran 2017, 03:27:15
btfss PORTA,0 ;Butonun bağlı olduğu pin high ise 2 satır aşağıya gider
goto $ -1 ;Low ise bir satır geri gider
Movlw B'00000001' ;Ledi yakacak port bilgisi registere alındı
movwf PORTB ;Bilgi portb ye aktarıldı
Sende muhtemelen yukardaki kodlar var , muhtemelern aşağıdaki kodlar yok.
Butona basılı olduğu sürece bekler,bırakılnca ledi söndürür
btfss PORTA,0
goto $ -1
Movlw B'00000000'
movwf PORTB
Tam olarak anlayamadım da şuan benim sorunum dedigim gibi 1.bitteki 1 butona 1 led kontrolü yapabiliyorum 2 3 4 . bitlerede buton baglayıp ledleri kontrol etmek istiyorum
main:
movf 5,w
movwf 6
goto main
Bence BTFSC
kullansan işin daha kolay olur.Mesela:
...........
BUTON BTFSC PORTA.1
GOTO BUTON
BSF PORTB.1
Basla:
btfss PORTA,0
goto ikikontrol
Movlw B'00000001'
movwf PORTB
;Burada boton basılı olduğu sürece bekler , bırakılınca pini low yapar ve kodları işlemeye devam eder
btfss PORTA,0
goto $ -1
Movlw B'00000000'
movwf PORTB
ikikontrol:
btfss PORTA,1
goto uckontrol
Movlw B'00000010'
movwf PORTB
btfss PORTA,1
goto $ -1
Movlw B'00000000'
movwf PORTB
uckontrol:
.....
.......
goto Basla