Assembly Bilen Arkadaşlar Acil Yardım....

Başlatan __TECH__, 30 Eylül 2010, 14:38:45

__TECH__

16F628A kullandığım bir projede 8bitlik değeri pic pinlerden okumam ve DEGER adlı registere atamam gerekiyor ,  8 pin icin 8li dipsw kullanıyorum , daha önce 28pin pic kullanmıştım ve portb çıkışlarını portb0.......portb7  olarak direk bir registere yükleyip okuyordum portbye ait tüm çıkışları kullanmış oluyordum fakat 16F628A pic olunca 8ucu okuyup 8bit olarak DEGER adlı registere atayamadım 
Projemde DipSW ait uçlar şu şekilde bağlanmıştır;

1 Nolu SW  = RA2
2 Nolu SW  = RA3
3 Nolu SW  = RA1
4 Nolu SW  = RA4
5 Nolu SW  = RA0
6 Nolu SW  = RB7
7 Nolu SW  = RB6
8 Nolu SW  = RB5 


pinler bu şekilde bağlanmıştır örnek olarak bu uçlardan okudugum degeri "00001111" seklinde nasıl elder  ve DEGER adlı registere atayabilirim?

buiba

movf   porta,w
andlw   b'00011111'
movwf   porta_kopya

movf   portb,w
andlw   b'11100000'
movwf   portb_kopya

iorwf   porta_kopya,w
movwf   deger

__TECH__

#2
hocam ilginize çok teşekkür ederim , portb ye ait diğer uclar kullanımda bunun bir etkisi olurmu ?giriş olarak kullandıgım uclar normalde +5v cektim ve dipsw on konumuna alındıgında GND ye cekilecek sekilde yaptım devreyi  ve ben burdaki elde etmek istediğim değeri sadece örnek olarak verdim
************************************************************************************************************
""" pinler bu şekilde bağlanmıştır örnek olarak bu uçlardan okudugum degeri "00001111" seklinde nasıl elder  ve DEGER adlı registere atayabilirim? """
************************************************************************************************************

yani 8li dipsw de o an hangi uclar on durumda ise o anki degeri okumam lazım vermiş olduğunuz örnek buna uygunmudur ?

buiba

Alıntı yapılan: __TECH__ - 30 Eylül 2010, 14:38:45
1 Nolu SW  = RA2
2 Nolu SW  = RA3
3 Nolu SW  = RA1
4 Nolu SW  = RA4
5 Nolu SW  = RA0
6 Nolu SW  = RB7
7 Nolu SW  = RB6
8 Nolu SW  = RB5 

sizin verdiginiz sw aciklamalarina gore programi yazdim.bu programin diger pinlere bir etkisi olmaz.yalniz dikkat edin programa 2 register daha atayacaksiniz.

__TECH__

hocam verdiğiniz şekilde denedim fakat değeri okuyamadım dipswde buton olarak kullanılmayan diğer pinlerin başka işlemlerde giriş yada çıkış olarak kullanılmış olması dipsw ye baglı olanlardan almak istediğim değeri deiştirirmi ?

frkcn

bide bunu denermisin !

movf   porta,w
andlw   b'00011111'
movwf   deger
movf   portb,w
andlw   b'11100000'
andwf deger,f
Bugün ömrümün geride kalan son günü...

Tagli

buiba ve pharuq, sanırım bitlerin sırasız olduğu gözünüzden kaçmış. Sorun bu başlıkta çözüldü.
Gökçe Tağlıoğlu

buiba

Alıntı yapılan: Tagli - 02 Ekim 2010, 10:21:50
buiba ve pharuq, sanırım bitlerin sırasız olduğu gözünüzden kaçmış. Sorun bu başlıkta çözüldü.
tagli hocam bitler karisik yazilmis fakat dikkat ederseniz duzene soktugunuzda yazdigimiz sekilde oluyor zaten,kodlari denemedim vaktimin kistli olmasindan dolayi.calismama ihtimali olabilir.

frkcn

Ben farkettim ama programın akışını bilmediğimden dolayı gözardı ettim. Neyse sorun çözülmüş.
Bugün ömrümün geride kalan son günü...