16f877 de sıra ile led yakma problemi

afatsum09

Üye
Katılım
30 Eki 2008
Mesajlar
37
Puanları
1
Yaş
39
Merhaba arkadaşlar. uzun süredir pic ile uğraşıyom. böle bir sorunla ilk defa karşılaştım. 877 portd'sine led bağladım. sıra ile 1 den başlayarak bütün ledleri yakaca sonunda bütün ledler yanık kalacak. ama istediğim gibi olmuyor. ledin birisi yanınca diyeri sönüyor. programın çalışması bittiğinde ise sadece en son led yanık kalıyor. böyle olmasının nedeni 877 konfrigasyon ayarlarından kaynaklanabilirmi? Yazdığın program ise altta:

ADCON1=7'porta'nın analog girişlerini dijitale cevirir.
CMCON=7
TRISA=%00111111
TRISD=%11111000
PORTD=0

DEFINE OSC 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
define LCD RWREG PORTB
define LCD_RWBIT 2
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2

LCDOUT $FE,$1," LED ANIMASYON "
LCDOUT $FE,$C0," MUSTAFA "
PAUSE 250

BASLA:
IF PORTA.0=1 THEN
GOTO ACIK
ENDIF
IF PORTA.1=1 THEN
GOTO KAPALI
ENDIF
GOTO BASLA


ACIK:
HIGH PORTD.0
pause 1000
HIGH PORTD.1
pause 1000
HIGH PORTD.2
pause 1000
HIGH PORTD.3
pause 1000
HIGH PORTD.4
pause 1000
HIGH PORTD.5
pause 1000
HIGH PORTD.6
pause 1000
HIGH PORTD.7
pause 1000
GOTO BASLA

KAPALI:
LOW PORTD.0
LOW PORTD.1
LOW PORTD.2
LOW PORTD.3
LOW PORTD.4
LOW PORTD.5
LOW PORTD.6
LOW PORTD.7
GOTO BASLA
END
 
D portunun ilk üç biti çıkış ,sonrakiler giriş yapılmış!
ilk anda görebildiğim.
 
d portunun hepsini cıkış yapıp öle denedim ama sonuç değişmiyor. yine ledler teker teker yanıyor. programın ilk başına eklediğim konfrigasyon ayarlarında eksiklik olabilirmi.

ADCON1=7'porta'nın analog girişlerini dijitale cevirir.
CMCON=7
TRISA=%00111111
TRISD=%00000000

DEFINE OSC 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
define LCD RWREG PORTB
define LCD_RWBIT 2
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2

LCDOUT $FE,$1," LED ANIMASYON "
LCDOUT $FE,$C0," MUSTAFA "
PAUSE 250

BASLA:
IF PORTA.0=1 THEN
GOTO ACIK
ENDIF
IF PORTA.1=1 THEN
GOTO KAPALI
ENDIF
GOTO BASLA


ACIK:
HIGH PORTD.0
pause 1000
HIGH PORTD.1
pause 1000
HIGH PORTD.2
pause 1000
HIGH PORTD.3
pause 1000
HIGH PORTD.4
pause 1000
HIGH PORTD.5
pause 1000
HIGH PORTD.6
pause 1000
HIGH PORTD.7
pause 1000
GOTO BASLA

KAPALI:
LOW PORTD.0
LOW PORTD.1
LOW PORTD.2
LOW PORTD.3
LOW PORTD.4
LOW PORTD.5
LOW PORTD.6
LOW PORTD.7
GOTO BASLA
END
 
16f84 ile daha karmaşık programlarla uğraştım ama 877 ile ilk defa böle bir şeyle karşılaştım.
 
programda şöle bir değişiklik yapınca istediğim gibi çalışıyor. Programın eski haliyle çalışmamasının nedenini merak ediyorum. sonuç itibariyle aynı işi yapıyor.

ADCON1=7'porta'nın analog girişlerini dijitale cevirir.
CMCON=7
TRISA=%00111111
TRISD=%00000000
PORTD=0

DEFINE OSC 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
define LCD RWREG PORTB
define LCD_RWBIT 2
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2

LCDOUT $FE,$1," LED ANIMASYON "
LCDOUT $FE,$C0," MUSTAFA "
PAUSE 250

BASLA:
IF PORTA.0=1 THEN
GOTO ACIK
ENDIF
IF PORTA.1=1 THEN
GOTO KAPALI
ENDIF
GOTO BASLA


ACIK:
PORTD=%00000001
pause 1000
PORTD=%00000011
pause 1000
PORTD=%00000111
pause 1000
PORTD=%00001111
pause 1000
PORTD=%00011111
pause 1000
PORTD=%00111111
pause 1000
PORTD=%01111111
pause 1000
PORTD=%11111111
pause 1000
GOTO BASLA

KAPALI:
PORTD=0
GOTO BASLA
END
 
S.A.
çözümü bulmuşsun.Bende proton kullanıyoum böyle ufak tefek problemler oluyor.
 
İki program arasında fark yok.
Hafıza karışıklığı,kristal frekansı konfigürasyonunda uyumsuzluk olabilir.
Yani kullanılan kristal frekansı ile frekans tanımlaması farklı ise olabilir.
Bende benzer bir olayı LCD ekran kontrolunda yaşamıştım.
 
ilk defa pic'de böle bir şeyle karşılaşınca şaşırmadım desem yalan olur ne yapptıysan olmadı. çözüm olarak farklı bir yoldan yaklaştım ama istediğim tam alarak bu deildi. şimdilik işimi görüyor ama daha sonraki projelerimde bu sorun olabilir. hazırda başıma gelmişken bu sorunu bulmak istiyorum. Bu gibi problemler deneyimle kazanılıyor, yani kaybedilen zamana bakılırsa değeri yüksek. yorumlarınız için teşekkür ederim.
 

Forum istatistikleri

Konular
128,126
Mesajlar
915,247
Kullanıcılar
449,840
Son üye
111340

Yeni konular

Geri
Üst