16F628A Buton Sorunu

Başlatan J3urak, 23 Mayıs 2014, 18:40:02

J3urak

16f628a ile butona basıldığında 12 ledi sırasıyla yakan bi devre yapıyorum. Butona basında 12 led sırayla yanıcak sönücek butona tekrar basında gene aynı şekilde devam edicek. Devreyi isisde denedim sorunsuzdu. Boarda kurdum enerji verdiğimde ledler direk sırayla yanmaya başlıyor. 2 ayrı picte denedim değişen bişey olmadı. Sorunu anlamadım gitti. Yazdığım program;

@ __config _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _LVP_OFF
TRISA=%00001
TRISB=0
PORTB=0

BASLANGIC
IF PORTA.0=0 THEN ILERI
GOTO BASLANGIC

ILERI
HIGH PORTA.1
PAUSE 100
HIGH PORTA.2
PAUSE 100
HIGH PORTA.3
PAUSE 100
HIGH PORTA.4
PAUSE 100
HIGH PORTB.0
PAUSE 100
HIGH PORTB.1
PAUSE 100
HIGH PORTB.2
PAUSE 100
HIGH PORTB.3
PAUSE 100
HIGH PORTB.4
PAUSE 100
HIGH PORTB.5
PAUSE 100
HIGH PORTB.6
PAUSE 100
HIGH PORTB.7
PAUSE 100
PORTB=0
PORTA=%00001
PAUSE 100
GOTO BASLANGIC
END
Paylaş

ete

Sebep sanırım bağladığın buton pininin pullup direnci olmaması. Zira bu sonucu yaratabilecek başka bir sebep bilmiyorum. PortA.0 pinine buton bağlamışsın bu tamam aynı pine 10 k lık bir direnç bağla ve direncin diğer ucunu +5v ta bağla sonra yeniden dene.

Etev
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

selimkoc

PORTA varsayılan olarak analog ayarlı gelir. Eğer dijital olarak kullanılacaksa (Buton vb.) CMCON registerine 7 değeri yüklenmelidir. Ayrıca Pull-Up direnci unutulmamalı. Ayrıca TRISA=1 yazman yeterli olmuyormu?

SAKINCALI

#3
Alıntı yapılan: J3urak - 23 Mayıs 2014, 18:40:02
16f628a ile butona basıldığında 12 ledi sırasıyla yakan bi devre yapıyorum. Butona basında 12 led sırayla yanıcak sönücek butona tekrar basında gene aynı şekilde devam edicek. Devreyi isisde denedim sorunsuzdu. Boarda kurdum enerji verdiğimde ledler direk sırayla yanmaya başlıyor. 2 ayrı picte denedim değişen bişey olmadı. Sorunu anlamadım gitti. Yazdığım program;

@ __config _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _LVP_OFF
TRISA=%00001
TRISB=0
PORTB=0

BASLANGIC
IF PORTA.0=0 THEN ILERI
GOTO BASLANGIC

ILERI
HIGH PORTA.1
PAUSE 100
HIGH PORTA.2
PAUSE 100
HIGH PORTA.3
PAUSE 100
HIGH PORTA.4
PAUSE 100
HIGH PORTB.0
PAUSE 100
HIGH PORTB.1
PAUSE 100
HIGH PORTB.2
PAUSE 100
HIGH PORTB.3
PAUSE 100
HIGH PORTB.4
PAUSE 100
HIGH PORTB.5
PAUSE 100
HIGH PORTB.6
PAUSE 100
HIGH PORTB.7
PAUSE 100
PORTB=0
PORTA=%00001
PAUSE 100
GOTO BASLANGIC
END
Paylaş

Arkadaşında dediği gibi buton kısmını kontrol et yazılım down yapmışsın yani normalde A.0 a +5 sinyali giderken işlem yapma 0 olduğunda işlem  yap demişsin

programdan END kısmını kaldır etikete dallandırmışsın ama hemen altına son demişsin