Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Microchip PIC => Konuyu başlatan: billycan - 13 Haziran 2017, 23:01:45

Başlık: Assemblyde butonla led kontrolü
Gönderen: billycan - 13 Haziran 2017, 23:01:45
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?
Başlık: Ynt: Assemblyde butonla led kontrolü
Gönderen: mehmet - 14 Haziran 2017, 00:43:53
Keşke devrenizin şema, resim ve
kodlarını da paylaşsaydınız.
Sizin gördüklerinizi biz göremiyoruz.
Başlık: Ynt: Assemblyde butonla led kontrolü
Gönderen: billycan - 14 Haziran 2017, 03:02:13
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
Başlık: Ynt: Assemblyde butonla led kontrolü
Gönderen: ÜC - 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           

Başlık: Ynt: Assemblyde butonla led kontrolü
Gönderen: mehmet - 14 Haziran 2017, 03:41:13
Mesajlarınıza kod eklerken; "KOD" düğmesini
kullanınız.

Mesajlarınızı buna göre yeniden düzenleyiniz.
Başlık: Ynt: Assemblyde butonla led kontrolü
Gönderen: billycan - 14 Haziran 2017, 04:29:55
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
Başlık: Ynt: Assemblyde butonla led kontrolü
Gönderen: mehmet - 14 Haziran 2017, 05:05:50

main:

movf 5,w
movwf 6
goto main

Başlık: Ynt: Assemblyde butonla led kontrolü
Gönderen: diversant - 14 Haziran 2017, 09:29:39
Bence BTFSC kullansan işin daha kolay olur.Mesela:
...........
BUTON   BTFSC  PORTA.1
GOTO BUTON
BSF     PORTB.1                                 
 
Başlık: Ynt: Assemblyde butonla led kontrolü
Gönderen: ÜC - 14 Haziran 2017, 12:41:50
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