Picproje Elektronik Sitesi

DERLEYİCİLER => PIC Assembly => Konuyu başlatan: kaypic38 - 11 Ocak 2012, 23:00:05

Başlık: 16f628a için yazılmış programı 16f84a ya uyarlama için yardım ?
Gönderen: kaypic38 - 11 Ocak 2012, 23:00:05
Bu program (propeller) havaya isim yazma devresinin programı assemblyde yeniyim programı 628a da çalıştırdım fakat 84a dada kullanmam lazım hem bu program için hemde genel olarak (16f628a ile 16f84a birbirine çok benzer mikrodenetleyiciler olduğu için) 628a için yazılmış programı 84a ya nasıl çeviririm ? assemblyleri aynı sanırım LIST p=16f84a INCLUDE "p16f84a" yazarak denedim yeterli olmadı nasıl yapabilirim yardımlarınızı bekliyorum ?
;===================================TANSU===========================================
LIST P=16F628A
INCLUDE "P16F628A.INC"
__CONFIG  _XT_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF % _CP_OFF
;---------------------------------------------------------------------------------------
SAYAC1 EQU H'20'
SAYAC2 EQU H'21'
SAYAC3 EQU H'22'
SAYAC4 EQU H'23'
SAYAC5 EQU H'24'
ORG h'0000'
CLRF PORTB
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
Ç
MOVLW b'01111100'
MOVWF PORTB
CALL GECIKME1
MOVLW b'10000010'
MOVWF PORTB
CALL GECIKME1
MOVLW b'10000011'
MOVWF PORTB
CALL GECIKME1
MOVLW b'10000010'
MOVWF PORTB
CALL GECIKME1
MOVLW b'10000010'
MOVWF PORTB
CALL GECIKME1
MOVLW b'00000000'
MOVWF PORTB
CALL GECIKME1
GOTO A
A
MOVLW b'00111111'
MOVWF PORTB
CALL GECIKME1
MOVLW b'01001000'
MOVWF PORTB
CALL GECIKME1
MOVLW b'10001000'
MOVWF PORTB
CALL GECIKME1
MOVLW b'01001000'
MOVWF PORTB
CALL GECIKME1
MOVLW b'00111111'
MOVWF PORTB
CALL GECIKME1
MOVLW b'00000000'
MOVWF PORTB
CALL GECIKME1
GOTO Ğ
Ğ
MOVLW b'00111110'
MOVWF PORTB
CALL GECIKME1
MOVLW b'11000001'
MOVWF PORTB
CALL GECIKME1
MOVLW b'11001001'
MOVWF PORTB
CALL GECIKME1
MOVLW b'11001001'
MOVWF PORTB
CALL GECIKME1
MOVLW b'01000110'
MOVWF PORTB
CALL GECIKME1
MOVLW b'00000000'
MOVWF PORTB
CALL GECIKME1
GOTO H
H
MOVLW b'11111111'
MOVWF PORTB
CALL GECIKME1
MOVLW b'00001000'
MOVWF PORTB
CALL GECIKME1
MOVLW b'00001000'
MOVWF PORTB
CALL GECIKME1
MOVLW b'00001000'
MOVWF PORTB
CALL GECIKME1
MOVLW b'11111111'
MOVWF PORTB
CALL GECIKME1
MOVLW b'00000000'
MOVWF PORTB
CALL GECIKME1
GOTO A2
A2
MOVLW b'00111111'
MOVWF PORTB
CALL GECIKME1
MOVLW b'01001000'
MOVWF PORTB
CALL GECIKME1
MOVLW b'10001000'
MOVWF PORTB
CALL GECIKME1
MOVLW b'01001000'
MOVWF PORTB
CALL GECIKME1
MOVLW b'00111111'
MOVWF PORTB
CALL GECIKME1
MOVLW b'00000000'
MOVWF PORTB
CALL GECIKME1
GOTO N
N
MOVLW b'11111111'
MOVWF PORTB
CALL GECIKME1
MOVLW b'01000000'
MOVWF PORTB
CALL GECIKME1
MOVLW b'00100000'
MOVWF PORTB
CALL GECIKME1
MOVLW b'00010000'
MOVWF PORTB
CALL GECIKME1
MOVLW b'11111111'
MOVWF PORTB
CALL GECIKME1
MOVLW b'00000000'
MOVWF PORTB
CALL GECIKME2
GOTO Ç
GECIKME1
MOVLW d'15'
MOVWF SAYAC1
DONGU1
MOVLW d'15'
MOVWF SAYAC2
DONGU2
DECFSZ SAYAC2, F
GOTO DONGU2
DECFSZ SAYAC1, F
GOTO DONGU1
RETURN
GECIKME2
MOVLW h'FF'
MOVWF SAYAC3
DONGU3
MOVLW h'25'
MOVWF SAYAC4
DONGU4
MOVLW h'25'
MOVWF SAYAC5
DONGU5
DECFSZ SAYAC5, F
GOTO DONGU5
DECFSZ SAYAC4, F
GOTO DONGU4
DECFSZ SAYAC3, F
GOTO DONGU3
RETURN
END
;==================================================END==============================================================


şimdiden yardımcı olacak hocalarıma teşekkürler...
Başlık: Ynt: 16f628a için yazılmış programı 16f84a ya uyarlama için yardım ?
Gönderen: justice_for_all - 11 Ocak 2012, 23:59:13
olmadi derken ne olmadi kodu derledin de picmi calismadi veya kodu derleyemedin mi ne hatasi verdi mesela hatanin birisi 16f84a da 
_MCLRE_ON & _BODEN_OFF & _LVP_OFF
bu config ayarlamalari yoktur.onlari silip tekrar deneyin.
Başlık: Ynt: 16f628a için yazılmış programı 16f84a ya uyarlama için yardım ?
Gönderen: camby - 12 Ocak 2012, 03:21:47
Derlemeye çalıştığınızda çıkan hata mesajlarını söylerseniz çözüm bulunabilir. Ama üstteki durumu çözer büyük ihtimal
Başlık: Ynt: 16f628a için yazılmış programı 16f84a ya uyarlama için yardım ?
Gönderen: Kabil ATICI - 12 Ocak 2012, 11:26:34
Sanırım hata her iki işlemcinin ram bölgelerinin farklı olmasından kaynaklanıyor.
16f628a 0x20'den başlarken
16f84a  0xc0'dan başlıyor.

16f628a 4 bank olarak sınıflanmış
16f84a 2 bank olarak ayrılmış.

sayac1...sayac5 adreslerini değiştir...
Programda özel bir donanım (configuration sigortaları haçiç) kullanılmadığından sorun olmaması lazım...

kolay gelsin...
Başlık: Ynt: 16f628a için yazılmış programı 16f84a ya uyarlama için yardım ?
Gönderen: kaypic38 - 12 Ocak 2012, 11:34:03
Hocam şimdi program derlendi fakat PICe attığımda çalışmadı sanırım dediğiniz gibi bağlangıç adresi sorun oldu peki sayac1 ve sayac5 i ne olarak değiştireyim ?
Başlık: Ynt: 16f628a için yazılmış programı 16f84a ya uyarlama için yardım ?
Gönderen: kaypic38 - 12 Ocak 2012, 11:49:46
Zaten dediğiniz gibi confıg bildirilerini ";" kullanarak yoksaydım ve öyle derledim development boardun driver programında ayarladım.
Başlık: Ynt: 16f628a için yazılmış programı 16f84a ya uyarlama için yardım ?
Gönderen: tayyar - 12 Ocak 2012, 12:00:19
Havaya yazı yazma işlemi için kullnılan devrelerde 16f628 in internal osilatörü kullanılıyordu diye hatırlıyorum. Devrenizi göremediğim için yorum yapamıyorum. 16f84'te internal osilatör yok bu size problem olabilir, bir kontrol edermisiniz.
Başlık: Ynt: 16f628a için yazılmış programı 16f84a ya uyarlama için yardım ?
Gönderen: kaypic38 - 12 Ocak 2012, 12:07:26
Yok bu devrede harici bir kristal osilatör kullandım daha kararlı olması açısından yanlışlık yok dediğiniz doğru dahili osilatör kullanılıyor fakat ben xtal kullandım.
Başlık: Ynt: 16f628a için yazılmış programı 16f84a ya uyarlama için yardım ?
Gönderen: justice_for_all - 12 Ocak 2012, 12:17:59
Alıntı yapılan: tayyar - 12 Ocak 2012, 12:00:19
Havaya yazı yazma işlemi için kullnılan devrelerde 16f628 in internal osilatörü kullanılıyordu diye hatırlıyorum. Devrenizi göremediğim için yorum yapamıyorum. 16f84'te internal osilatör yok bu size problem olabilir, bir kontrol edermisiniz.

internal osilator kullanmanın amacı ne ki bu gibi projelerde?
Başlık: Ynt: 16f628a için yazılmış programı 16f84a ya uyarlama için yardım ?
Gönderen: Kabil ATICI - 12 Ocak 2012, 12:34:04
Alıntı yapılan: justice_for_all - 12 Ocak 2012, 12:17:59
internal osilator kullanmanın amacı ne ki bu gibi projelerde?
Mekanik sorunlar. 
Kart üzerindeki her malsemenin hareket esnasında hava direnci oluşturması.
Kart üzerine ekleyeceğiniz her türlü malzeme hareket esnasında üzerine bir yük binecek.
Mümkün olduğunda küçük bir alana sığdırma kaygısı.

Gerçi projeyi görmedim ama büyük ihtimalle bunun hareketi bir motor ile sağlanacak. Kart üzerindeki her ağırlık bu motor üzerine yük olarak gelecek.. Dönme esnasında titreşim yapmaması için kanatların dengesinin iyi olması gerekir. Dengelemek için gerekirse karşı ağırlık gerekir. (ek yük)

Gerçi bu projede 16f628 üzerinde kristal kullanılmış. (sigorta ayarlarından öyle görünüyor).

Başlık: Ynt: 16f628a için yazılmış programı 16f84a ya uyarlama için yardım ?
Gönderen: tayyar - 12 Ocak 2012, 16:10:57
Ambar7'ninde anlattığı nedenlerden dolayı internal osc kullanılması tercih edilyor genelde.

Temel amaç minimum alanı kaplamak.
Başlık: Ynt: 16f628a için yazılmış programı 16f84a ya uyarlama için yardım ?
Gönderen: kaypic38 - 12 Ocak 2012, 18:56:30
Evet amaç bu fakat dahili osilatör 4Mhz olduğu için bazen yetersiz kalıyor sadece yazı yazmak için yeterli fakat yaptığımız bu propellerda animasyonlarda gerçekleştirmemiz gerekiyor o zamanda 4Mhz yetersiz kalıyor bazı durumlarda bu nedenle 10Mhz bir ösilatör kullandık hem kristal osilatör RC osilatöre göre daha sağlıklı bir diğer etkende bu oldu dediğiniz gibi bir motor yardımı ile dönmesi sağlanıyor ama zaten DC motorun RPM değerini ihtiyaçtan yüksek tutarsanız ağırlığın hele ki küçük bir elemanın pek neredeyse hiç etkisi olmuyor zaten kartın ağırlık merkezini hesaplayıp motoru tam oraya monte edince hiç bir sorun olmuyor.Birde bu devreyi yapmak isteyen arkadaşlara bir tavsiyede bulunmak istiyorum normal LED kullandığınız zaman LED'in yapısı gereği (oval) ne kadar birbirine sık da monte etseniz yazıda (harfler arasında) bosluklar oluyor fakat SMD LED kullanırsanız tam anlamı ile kusursuza yakın bir görüntü elde edersiniz.
Başlık: Ynt: 16f628a için yazılmış programı 16f84a ya uyarlama için yardım ?
Gönderen: kaypic38 - 12 Ocak 2012, 19:38:55
(http://file:///C:/Documents%20and%20Settings/Administrator/Desktop/Foto%C4%9Fraf0190.jpg)

devre işte bu...
Başlık: Ynt: 16f628a için yazılmış programı 16f84a ya uyarlama için yardım ?
Gönderen: kaypic38 - 12 Ocak 2012, 20:28:47


bu devrenin kullanıldığı yerlerden birisi videoda da görüldüğü gibi vantilatöre monte edilmiş bisiklet tekeri v.b gibi çalışmalar da yapılabilir.