Bilgi Paylaşıldığında güzeldir

10 Mart 2013 Pazar

Pic Programlama Notları

asm dosyasını hex çevirme

mpasm v03.20 programıyla bu işi gerçekleştiririz



assemble diyorum ve aşağıdaki sonucu alıyorum 




ve yazdığım programda aşağıda 


Title "2step1.asm" 



list p=16f84



Program hatalıysa hata aşağıdaki hatayı verir




Title "ledyakma.asm" 

list p=16f84


Usburn ile pic programlama
Programlayacağın PIC’i ZIF sokete tak ve daha sonra;
1.   PIC’in kaç pinli olduğunu belirt
2.   PIC’in hangi seriden olduğunu belirt
3.   Identify PIC in Programmer tuşuna basarak PIC’i tanımasını sağla
4.   PIC’i tanıdıysa Model ve Revizyon numarası doğru olarak görünecektir
5.   Write HEX-File into PIC tuşuna bas ve Hex dosyasının yolunu göster. Hemen ardından PIC programlanmaya başlayacaktır.



PİC PROGRAMLAMADA KULLANILAN DEVRE ELEMANLARI


Kristal Xtall




Xtall kristal olarak bilinen bu kristal pic’e kare dalga vermek için kullanılır bu kare dalga adeta microişlemcimizin
 kalp atışlarını oluşturur.
            Xtal osilatör kullanımında dikkat edilecek husus işlemci frekansı ile kristal frekansının aynı olmasıdır. Eğer işlemciden yüksek frekanslı bir kristal seçilirse işlemci ancak kendi frekansı kadar çalışır,yüksek frekanslı kristal işimize
yaramaz, eğer tersini yapar da 20 mhz lik bir işlemciye 4 mhz lik bir kristal bağlarsak işlemcimiz 4 Mhz olarak çalışır ki buda micro işlemcimizin boş yere hızını düşürür. Bunun için işlemci ile kristalin frekansı eşit olmalıdır. Bağlantı şekli aşağıdaki gibidir




Yer Değiştirme veya Yükleme Komutları
MOVLW k
k Sabit değerini w registerine yükler.
MOVF f,d
f registerinin içeriğini W veya f'e yükler.
MOVWF f
W registerinin içeriğini f registerine yükler.
Register İçeriğini Değiştirme Komutları
CLRF f
f registerinin içeriğini siler.
CLRW
w registerinin içeriğini siler.
COMF f,d
f registerinin içindeki sayı terlenir. 1'ler 0 , 0 'lar 1 olur.
DECF f,d
f registerinin içindeki sayıyı 1 eksiltir. h'00' ise h'FF' olur
INCF f,d
f registerinin içerisindeki sayıyı 1 arttırır. h'00' ise h'01' olur.
BCF f,b
f registerinin içerisindeki sayının b.ninci bitini sıfırlar.
BSF f,b
f registerinin içerisindeki sayının b.ninci bitini 1 yapar.
RLF f,d
f registeri içerisindeki sayıyı bir pozisyon sağa kaydırır.
RRF f,d
f registeri içerisindeki sayıyı bir pozisyon sola kaydırır.
SWAPF f,d
f registerinin içerisindeki ilk 4 bit ile son 4 bit yer değiştirir.
Program Akışnı Kontrol Etme Komutları
GOTO
program akışını belirlediğimiz adrese dallandırır.
CALL k
program akışını k etiketinin bulunduğu yerdeki alt programa dallandırır.
RETURN
En alta yazılan bu komut ana programa döndürmeye yarar.
RETLW
program akışının alt programdan ana programa döndürür ve W registerine k sabitini yükler.
RETFIE
program akışını interrupt alt programından ana programa döndürür.
BTFSC f,b 
f registerinin b.inci bitini test eder.0 ise program akışı bir sonraki komuta geçer.
BTFSS f,b
f registerinin b.inci bitini test eder.1 ise program akışı bir sonraki komuta geçer.
DECFSZ f,d
f registerinin içeriği "1" azaltır.register içerigi 0'sa bir sonraki komuta atlar.
INCFSZ f,d
f registerinin içeriğini "1" arttırır. register içerigi 0'sa bir sonraki komuta atlar. 
Mikrodenetleyici Kontrıl Komutları
CLRWDT
watchdog timer'ı sıfırlar. Ayrıca watchdog timer'ın prescalar değerinide 0 lar.Status bitlerinden TO ve PD=1 yapar
SLEEP
Mikrodenetleyiciyi uyuma moduna geçirir.
Mantıksal Komutlar
ANDLW k
w registerinin içeriği ile k sabitine AND işlemi uygular sonuç w registerine yazılır.
ANDWF f,d
w registeri ile file register içeriğine AND işlemi uygulanır sonuç w veya f registerine yazılır.
IORLW k 
w registerin içeriği ile k sabitine OR işlemini uygular.Sonuç w registerine yazılır.
IORWF f,d
w registeri içeriği ile file registerinin içeriğine OR işlemi uygular sonuç w veya f registerine yazılır.
XORLW k
w registeri içeriği ile k sabitine XOR işlemini uygular.sonuç w regiseterine yazılır.
XORWF f,d
w registeri içeriği ile file registerinin içeriğine XOR işlemi uygular sonuç w veya f registerine yazılır.
Aritmetik İşlem Komutları
ADDWF f,d
w registerinin içeriğine f registeri ile toplar. Sonuç w veya f registerine yazılır.
ADDLW k
w registerinin içeriğine k sabit değeri ile toplar. Sonuç W registerine yazılır.
SUBLW k
k sabit değerinden W registeri içerigini çıkarır. Sonuç W registerine yazılır.
SUBWF f,d
f registerinin içeriğinden W registeri içerigini çıkarır. Sonuç W registerine yazılır.
İşlem Yapmayan Komut
NOP
Bir komut saykılı süresince hiçbir işlem yapmayan bir komuttur. Bir dahili komut süresinde çalışır.Bu nedenle zaman geçiktirme işlemlerinde kullanılır.

0 yorum: