Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

tablolamada sorun?

Başlatan erkan614, 30 Haziran 2007, 20:38:55

erkan614

ORG	0FFH
SETB	NOP
	NOP
	NOP	
	NOP
	NOP	
	NOP
	NOP	
	MOVF	SNC,W
	ADDWF	PCL,1
	MOVLW	.20
	MOVWF	B3


iyi hafta sonları arladaşlar

ya yukardaki programda pcl 08 nolu adrese gönderiyor  ama hemen alt satırından devem etmesi 108 nolu adrese yani (movlw .20) komutuna gitmesi lazım bank falan değiştirdim olmadı.
biyeri gözden kaçırıyorum ama neresi :(
yardımlarınız için teşekkürler.

bigbey

MOVF     SNC,W    Bu komut sonucunda W registerinde (0) sayısı var ise
MOVLW     .20 satırındaki yere gider. Eğer SNC  registerindeki sayı sıfırdan farklı ise başka yere gider.
TA6R

erkan614

yok  öle değil

komut satırı ilerlerken pcl ye göre ilerlio yani
000h
001h
002h
"""
"""
"""
0FCh
0FDh
0FEh
0FFh
100h

0FFh satırından sonra pclnin içeriği tekrar 00h oluyor (FF>00) fakat baştaki 0 rakamı 1 oldugundan program normal akışında bi sorun olmuyor yalnız ben pclyi herhangi bir sayı ile toplarsam ki busayı 0 olsun pcl nin de içeriği 07h olsun ve disassambly liste göre komutun yeri;
107h addwf pcl,f  şeklinde iken pclnin içeriği 07+1= 08h oluyor ama komut satırının adresinin en baştaki 1 olan sayısı 0 a döndüğünden gitmesi gereken komut adresi 108h 'e değil 008h adresli komut satırına gidiyor burda komut adresinin en basındaki  sayı nerde kaydediliyor orasını bilmiyorum yani;
00 000000000 b olan 10 bitlik sayının lsb olan 8 biti pcl de saklanıyor msb olan 2biti pch da bunu değiştirmek için pclatch kullanmam lazım onu nasıl kullanıcam orda sorun var


sorunu anlatabilmişimdir inş :(

yardımlarınız için teşekkürler.

memed52

Tablonuz örneğin,

Org  100h , den başlasın.

Tablo cağrılmadan önce pclath a  doğru değeri atayın
movlw   .1      
movwf   pclath

Org  200h , den başlarsa,

movlw   .2      
movwf   pclath

Org  700h , den başlarsa,

movlw   .7      
movwf   pclath

bigbey

Evet tablo çağırma işlemlerinde 256 satır hükmedilebilir. Eğer daha fazla satır tablo bilgisi var ise tablolar bölünerek kullanılmalıdır.burada dikkat edilecek hususlardan birisi tabloları bölerken tablonun bitiminde her ihtimale karşı (iyi hesaplanamaması) 254 satır olarak kullanılmalı daha sonraki tablo başlangıç adresi  verilmeli.
ornek
ORG      0x000
	ORG      0X004    ;INTERRUPT  BAŞLANGIÇ ADRESİ
TABLO1
	ADDWF	PCL,F
	RETLW	(DATA BİLGİSİ)
	RETLW	(DATA BİLGİSİ)
	RETLW	(DATA BİLGİSİ)
	.................. SATIR 254'e kadar yazılabilir

	ORG	100
TABLO2
	ADDWF	PCL,F
	RETLW	(DATA BİLGİSİ)
	RETLW	(DATA BİLGİSİ)
	RETLW	(DATA BİLGİSİ)
	.................. SATIR 254'e kadar yazılabilir
      'Şeklinde tekrarlanabilir'

tablolar çağrılırken istenen satır bilgisi W registerine yüklenir ve hangi tabloda ise istenen bilgi o tablo CALL   TABLOX olarak çağırılır.
TA6R