avatar_elektro77

PORTB ÇIKIŞ SORUNU

Başlatan elektro77, 01 Aralık 2018, 16:45:20

elektro77

Bu ayarlarla portb ye bağladığım 3 ledi gerçekte yakamıyorum. Fakat simülasyonda çalışıyor.
yazılım içindeki diğer tüm fonksiyonlar gerçektede çalışıyor simüledede. fakat portb 1-2-3 bağlı ledler çalışmıyor.portb led bağlı olan pinlere  2.5 volt dışardan verince ledler yanıyor ve yanık kalıyor.
sebebi nedir.
TRISA=%00000111
TRISB=%00000000
TRISC=%00000010
porta=0
portb=0
PORTC=0
'------------------------------------------------------------------
ADCON1=%10001001                '7. bit 1 yapıldı 10 bit sonuç almak için.
'INTCON=%11000000                'INTCON.7 ve INTCON.6 bitleri SET edilecek.
'INTCON=%11001000                'PORTB değişiklik kesmesi aktif
'T1CON =%00000000                'Bölme oranı 1/1yapılacak
'CMCON=7
'OPTION_REG=%10000101            'Pull up dirençleri İPTAL- Bölme oranı 1/64.
'-------------------------------------------------------------------------------
symbol SIRAHATALI=portc.1
symbol role=portc.0
SYMBOL RLED=PORTB.1
SYMBOL SLED=PORTB.2
SYMBOL TLED=PORTB.3
ham1 var word
ham2 var word
ham3 var word
RV VAR word
SV VAR word
TV VAR word
'---------------------------------------------------------------
LCDOUT $FE,1
PAUSE 250

BASLA:
RLED=1
SLED=1
TLED=1
goto başla
end
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

İşlemcinin kim olduğu belli değil.
Söylediğin pinler PORTA ya ait pinler. Muhtemelen o işlemcide komparatör vardır ve default olarak komparatör aktif açılır. O pinler aynı zamanda analaog pin olabiliyor ise öncelik sırası;
- Komparatör
- Analog
- Digital şeklindedir.
Yani o pinleri digital olarak kullanabilmek için önce komparatörü iptal edeceksin. Ardından analog pin özelliğini iptal edeceksin ve sonunda pinler digital olarak çalışmaya başlayacak. Sonra istediğini yapabilirsin.

Ete

elektro77

16f876a için bu dedikleriniz nası olacak.porb yi digital çalıştırmak için.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

burada asm ile yapılmış. çok anlamadım açıkcası.
PORTB 8 bit giriş/çıkış olarak yönlendirilebilir porttur. Bu portu yönlendiren
yazmaç ise TRISB yazmacıdır. TRISB kaydındaki herhangi bir bit 1 ise buna uygun çıkış
sürücüsü yüksek direnç moduna getirilecektir. TRISB kaydındaki herhangi bir bitin 0
olması durumunda ise çıkış mandalı seçilen pinin üzerine getirilir. Analog giriş kullanıldığında TRISB yazmacı RB pininin yönünü kontrol eder. (1)
Her bir PORTB pini iç direnç düşürücü engellere sahiptir. RBPU(OPTION –
REG<7) bitinin silinmesiyle aktif yapılır. Düşürücü engeller, port pini çıkış olarak
konfigüre edildiği zaman otomatik olarak kapanmaktadır. Ayrıca dört PORTB pini, RB7:
RB4 değişim özelliklerinde kesmelere sahiptir. Yalnızca giriş olarak konfigüre edilen
pinlerkesmenin meydana gelmesine sebep olabilirler. (yani, herhangi bir çıkış olarak
şekillendirilen RB7:RB4 pini değişim ilişkisi üzerindeki kesmeden hariç tutulmuştur. )
Giriş modundaki pinlerin değeri PORTB` nin önceki okunmasındaki eski değeri ile
karşılaştırılır. Pinlerin "uyuşmayan" kısımları RB port değişim kesmesini üretmek için
birlikte OR'lanır. şekil 3.13.a ve şekil 3.13.b portunun iç yapısını göstermektedir.
Örnek 3.2 : B Portunun Kurulması:
bcf status, rp0 ;
bsf status, rp0 ; Bank 1 seçildi.
movlw b'10111111' ; PortB nın G/Ç olacak pinleri belirleniyor
movwf trisb ; Giriş için RB<3:0>
; Çıkış için RB<5:4>
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete


elektro77

ADCCON1=7 Yaparsam adc girislerinin 3 ude calisirmi hocam. Ben portb den bahsediyorum bu arada. Sizdemi
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Portb kısmını kaçırmışım. 1-2-3 pinler deyince A portu sanmıştım.
B portu için özel bir durum yok çalışmadı gerek. Mclr pininde pullup direnci varsa kristal bağlı ise çalışır. Çalışmıyorda bunlardan biri eksiktir.
Ete

elektro77

hocam ne yaptıysam portb1.-2.3 deki ledleri yakamadım. pic bozuktur belki deyip pici 3 defa değiştirdim ama yine sonuç yok. ledleri devre dışı bırakıp pin çıkışlarında direk 5 volt aradım oda yok. pinlere dışardan +2.5 volt verdiğimde ise çıkış geliyor ama picin enerjisini kesip tekrar verdiğimde  yine ilk halini alıyor.tüm bunları gerçek devre üzerinde denedim. daha önce böyle birşey başıma gelmemişti.
kodlar ise şu şekilde
BASLA:
portb.1=1
portb.2=1
portb.3=1

goto basla
end
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Yalnızca prohgramın ne olduğu önemli değil. Bu programın pic'e yüklenip yüklenmediği. Sigorta ayarlarının doğru olup olmadığı ve programın çalışıp çalışmadığı önemlidir.
En iyisi bir hex dosyası vereyim onu dene sen.
Bu program PORTB.0-1-2-3 pinlerini 6 defa flash yaptoracak ve sonunda PORTB.1-2-3 pinlerini HIGH da bırakacaktır.

Ete

elektro77

Bunuda denedim yuni ayni sonuç. Gercekte ayni pic icindeki tum kodlar gerekeni yapiyor. Ne sonuc cikarmaliyim anlayamiyorum. Ledleri yanlis yapmislardir belki dedim ters cevirdim yine olmadi.
Ledleri transistorle surdum yine olmadi. Bu bitlerden cikis alamiyorum. Pcb yi yapmamis olsam baska bir porta alip deneyecektim ama oda mumkun degil.
Artik piclerin bu serisi portb sorunlu diyecegim. Baska bir yerden baaka bir pic alip birde oyle deneyecegim
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Kesinlikle o picler bozuk yada bir şekilde sen bozdun. Başka kaynaktan gelen pic dene.
Ete

Powered by EzPortal