ASSEMBLY

Başlatan demirkan1, 24 Haziran 2004, 18:27:32

demirkan1

sayın assembly programcılıgından anlayan arkadaslarım,

assembly komutları ile yazılmış kayan yazı programında
GOTO MESAJ komutu ile alt programa gidiyor orda ise

MESAJ
   MOVLW _M
   MOVLW _E
   MOVLW _R
   MOVLW _H
   MOVLW _A
   MOVLW _B
   MOVLW _A
   GOTO   RUN
   
kayan yazı metni var.şimdi benim sormak istediğim; bu GOTO MESAJ
komutu ile alt programa dallandığında oraya bir program yazsakda
harici epromu okuyarak tekrar ana programa dönse ve harici epromdan
okudugunu ekrandan geçirse

harici eeproma ise icprog kullanarak karakterleri elle yazarak girsek

böyle bir program olabilirmi acaba ?
kayan yazının orjinal dosyalarını ise
http://www.eproje.com/modules.php?name=Downloads&d_op=getit&lid=169
adresinden indirebilirsiniz.
saygılar.

baba

programı tam yazmadın sanırım.
goto mesaj
... ile

MESAJ
... buraya gelirsen yalnızca
....
....
movlw _A ........ile
GOTO RUN

............. a gidersin.

Doğru mu?
Evet buraya gelince e2prom okursun onu istediğin gibi işlersin.Yukarıdaki gibi değil ancak.Call ile çağırıp pc yi değiştirerek ve retlw komutu ile geri dönerek..
Yardım istediğin konu e2prom rutinleri mi?

Ya da ben anlayamadıysam ne istediğini tam olarak yazar mısın lütfen.


Kolay gelsin.
ÖĞRENDİKÇE    CAHİLLİĞİM       ARTIYOR.

kaanada

Arkadasım yanlıs anlamadıysam. alt programa inip harici eprom'dan veriyi okuyup veri ile geri dönüp islem yapmak istiyorsun.

1 - Alt programa dallanmayı ögren(call,return,retlw)komutları isini görür goto komutu  ile alt programa dallanamassın "dongu" ler kurarsın.

2 - dolaylı adreslemeyi ögren (indf,fsr) verileri eproma yazarken okuma/yazma isini sıralı az komutla yaparsın.eproma yazma ve okuma biliyorsun diye düsündüm


call    ada         ;  dallanacagın adres
...................    
..................
ada                  ;dallandıgın etıket
.....................   ;ıslemlerıni yapacagın bolum
.....................
return               ;donus



Eger eproma yazmak istemezsen,




pcl ve retlw komutu ile verileri sıralı bir sekilde okuya bilirsin.

yol gosterdim gerisini halledecegini umarın ama pic le ilgili fazla bir bilgin yoksa daha detaylı yardımcı olabilirim.


kolay gelsin (ilk yazımdı hatalrım varsa özür dilerim) 8O

demirkan1

pic programlama üzerine fazla bir deneyimim yok.picbasicpro ile ufak tefek programlar yapıyorum ancak assembly den hiç anlamıyorum. şimdi gelelim benim problemime

sayın baba'nın ve kaanada'nın yazmış olduğu gibi

program GOTO MESAJ komutu ile alt programa dallandığında i2c epromu yanlızca okusun

daha önce icprog kullanarak eepromun 0 adresinden başlıyarak MERHABA mesajını yazdığımızı kabul edelim.

eski programda bulunan yazılım. (bu sefer tam yazdım)
MESAJ
   MOVLW _M
   CALL KYAZI
   MOVLW _E
   CALL KYAZI
   MOVLW _R
   CALL KYAZI
   MOVLW _H
   CALL KYAZI
   MOVLW _A
   CALL KYAZI
   MOVLW _B
   CALL KYAZI
   MOVLW _A
   CALL KYAZI

   GOTO RUN
     RETURN
burda ise yanlış anlamadıysam program buraya geldiğinde  ilk önce M karakterini W registerine yüklüyor ve CALL KYAZI ile tekrar alt programa dallanıyor M yi ekranranda gösterip tekrar dönüyor ve ikinci karakter E ye geçiyor. bu böyle yazı sonuna kadar devam ediyor ve sonunda GOTO RUN ile program başa döndüğünden dolayı mesaj baştan başlıyor.

bu programı çıkarıp yerine yazacağımız programda ise i2e den okunan (daha önce icprog ile yazılmış ) birinci karakter sanki MOVLW _M komutu gibi W registerine yazılacak ve CALL KYAZI ile alt programa dallanıp dönecek ve i2c den ikinci karakter E yi okuyacak ve bu böyle mesaj sonuna kadar devam edecek

ancak burda tahmin edersem bir problem ortaya çıkacak oda i2e içindeki mesajın sonu nasıl olacak yani i2e içindeki mesaj sonuna kayan yazıda kullanılmayan bir karakter yazalım onu okudugunda GOTO RUN ile başa dönsün. (örnek: MERHABA#) veya son adres boş kalırsa acaba başa dönermi.?

pic'de yanlızca a portları kullanılmış b portlarının hepsi boşda duruyor eepromu b portlarına bağlamamız gerekiyor.

programı tam anlamı ile incelemek isterseniz
http://www.eproje.com/modules.php?name=Downloads&d_op=getit&lid=169

pic ile ilğili fazla bilgim olmadığından anladığım kadarını yazdım yanlışım varsa özür dilerim.
saygılarımla.

demirkan1

arkadaşlar yardımlarınızı bekliyorum

elektromer

Merhaba demirkan1,

Yukarıda verdiğin bilgiler yeterli değil. Sözünü ettiğin linkteki dosyayı indirdim fakat .lyt uzantılı dosyayı açamadığım için şema hakkında detaylı fikir edinemedim.

Projen hakkında detaylı bilgi verebilirsen, sana yardımcı olmaya çalışırım(z).

Ayrıca şu linkide incelersen biraz fikir edinebilirsin..
https://www.picproje.org/index.php/topic,19624&highlight=

Saygılarımla...
Her şey gönlünüzce olsun..

demirkan1

selam elektromer,

http://www.eproje.com/modules.php?name=News&file=article&sid=43&mode=&order=0&thold=0

adresinde projenin tamamı var bende ordan yaptım bu projeyi
ancak harici epromdan kayan yazı metnini okuması istiyorum çok ugraştım beceremedim pbp ile çalıştığımdan assembly başaramadım
yardımcı olursan memnun olurum

saygılar.

elektromer

Merhaba demirkan1,

Bu projeye yaptığın veya yapmak istediğin değişiklikler nasıl bir şey. Biraz daha açarmısın?

Eeprom'u karakter jeneratoru olarak kullanacaksan, karakter tablosunu başka bir ortamda oluşturmalısın.

Ekrana yazdırılacak mesajın içeriğini de picin hafızasında tutman gerekir. Ayrıca 16F84'ün hafızası küçük olduğu için çok fazla karakteri hafızada tutamazsın.

Bu problemide çözmek için RAM kullanabilirsin.

Devreyi inceledikten sonra biraz daha detaylı bilgi aktarmaya çalışırım. Tabii biraz zaman..  ;)

Saygılarımla...
Her şey gönlünüzce olsun..

demirkan1

selam elektromer,

bu projede şimdiyede kadar bir değişiklik yapmadım ancak 48 kolon olarak kendim baskılı devresini hazırlayarak yaptım proje çok güzel çalışıyor herhanği bir sorun yok ancak pic yazılımının içinde 254 tane karakter alarak mesaj yazabiliyorum benim istediğim bu karakterleri harici bir eprom kullanarak cogaltmak. bunun için yazılım ile çok ugraştım
ancak assembly bilmediğimden başarılı olamadım ben pbp ile kendi çapımda basit yazılımlar yapabiliyorum. Geçenlerde pbp ile bir yazılım yaptım ; 3 tane 16f84'e bir 16f84 ile kontrol ederek sırayla devreye soktum ve kayan yazı hafızasını 750 çıkarabildim. tabiki mesaj
değiştirirken 3 adet pic programlamak zorunda kalıyorum. ancak benim istediğim bu değil

birde yazılımları inceleyince sizde göreceksiniz karakter jeneratörü chars.h dosyasında  tanıtılmış harici eepromda tanıtmaya gerek varmı bilmiyorum. veya kullanılan pic'in B portlarının tamamı boşda buraya iki adet eeprom bağlıyarak birinde geçecek mesaj karakterleri diğerinde
karakter jeneratörü olabilirmi acaba

pic ram'ini kullanmak istersek her halde 64 karakter alır onuda esaj1,mesaj2 diye 64 karakter uzunluğunda  bir kaç değişik mesaj yazarak kullanabilirmiyiz.

teşekkurler.

demirkan1

sayın elektromer

devreyi inceleyebildinizmi acaba

elektromer

Merhaba Demirkan1,

İşlerim ve iznim nedeniyle forumdan 10 gün kadar ayrı kaldım.
Mevcut bilgilerimide (Kayan yazı) unutmuş durumdayım. Konuyu toparlamam için biraz zamana ihtiyacım var.  ;)

Saygılarımla...
Her şey gönlünüzce olsun..

demirkan1

arkadaşlar bu mesajı konu board'da  guncel kalması için yazdım.Yardımlarınızı bekliyorum.Saygılar.