Assemblyde butonla led kontrolü

Başlatan billycan, 13 Haziran 2017, 23:01:45

billycan

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?

mehmet

Keşke devrenizin şema, resim ve
kodlarını da paylaşsaydınız.
Sizin gördüklerinizi biz göremiyoruz.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

billycan

#2
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

ÜC

#3
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           


mehmet

Mesajlarınıza kod eklerken; "KOD" düğmesini
kullanınız.

Mesajlarınızı buna göre yeniden düzenleyiniz.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

billycan

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

mehmet

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

diversant

Bence
BTFSC
kullansan işin daha kolay olur.Mesela:
...........
BUTON   BTFSC  PORTA.1
GOTO BUTON
BSF     PORTB.1                                  
 

ÜC

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