Teknikim

Üye Girişi

Önemli! Foruma yazılmayan sorulara cevap verilmeyecektir. Lütfen sorularınızı foruma yazın!
PIC ve PIC Assembly'ye Giriş
 

Yazan: Tuna BULUT, Tarih: 26-01-2008 11:39

Okunma Sayısı : 3696

Beğenilme : 41

Yayınlama yeri : Dersler, PIC Dersleri

Sayıların Yazım Şekli

0xXX, h'XX' veya 0XXh hexadecimal(16 lık taban) sayıların yazımında kullanılır.

b'XXXXXXXX' binary(2 lik taban) sayıların yazımında kullanılır.

d'XXX' decimal(10 luk taban) sayıların yazımında kullanılır.

Örnek:

0xCE           ;Hexadecimal sayı (CE)16

h'CC'            ;Hexadecimal sayı (CC)16

00Ch           ;Hexadecimal sayı (0C)16

b'00110011'  ;Binary sayı (00110011)2

d'255'           ;Decimal sayı 255

Bazı PIC Assembly Komutları

LIST: Hangi PIC'ın kullanıldığını belirtir.

                        LIST              P=16F628A            ;16F628A kullanılacağını belirt

#INCLUDE: PORTA, PORTB, STATUS, TRISA, TRISB gibi özel yazmaçların adreslerinin belirtildiği INC uzantılı dosyayı dahil eder.

           #INCLUDE     "P16F628A.INC"      ;P16F628A.INC dosyasını dahil et


EQU: Değişkenleri genel amaçlı adreslere atar.


degisken1        EQU               0x20                        ;degisken1 i 0x20 adresine ata
degisken2
        EQU               0x21                        ;degisken2 i 0x21 adresine ata

MOVLW(MOVe Literal to W): Bir sabiti W yazmacına yükler.

                      MOVLW         0xFF

MOVWF(MOVe W to F): W yazmacındaki değeri F yazmacına yükler.

                       MOVWF      PORTB

MOVF(MOVe F): F yazmacındaki değeri W veya F yazmacına yükler.

MOVF         REG, 0           ;REG değişkenindeki değeri W yazmacına yükler

MOVF         REG,1            ;REG değişkenindeki değeri gene REG değişkenine yükler

CLRF(CLeaR F): F yazmacının içeriğini siler

CLRF          REG

BSF(Bit Set F): F yazmacının istenilen bitini 1 yapar.

                        BSF             REG, 3          ;REG değişkeninin 3. bitini 1 yap

BCF(Bit Clear F): F yazmacının istenilen bitini 0 yapar.

            BCF             REG,7           ;REG değişkenini 7. bitini 0 yap

GOTO(GO TO adress): Belirtilen adrese gider ve programın akışı o adresten itibaren devam eder.

Dongu

                       GOTO          Dongu            ;Sonsuz döngü

CALL(CALL subroutine): Belirtilen alt rutine gider.

RETURN(RETURN from subroutine): Programın akışı alt rutinden ana rutine geri döner.

Dongu

          CALL            Rutin        ;Rutin alt programını çağır

          GOTO           Dongu
Rutin

          RETURN                       ;Çağrıldığın yere geri dön(GOTO Dongu komutundan devam eder)

BTFSC(Bit Test F Skip if Clear): F yazmacının istenilen bitini test eder 0 a eşitse bir sonraki komutu atlar (işleme almaz).

Dongu

          BTFSC    REG,2 ;REG değişkenin 2. bitini kontrol et 0 a eşitse sonraki komutu atla ve Sıfır etiketine git 

          GOTO     Dongu

          GOTO     Sıfır

BTFSS(Bit Test F Skip if Set): F yazmacının istenilen bitini test eder 1 e eşitse bir sonraki komutu atlar (işleme almaz).

Dongu

           BTFSS    REG,2 ;REG değişkenin 2. bitini kontrol et 1 e eşitse sonraki komutu atla ve Bir etiketine git

           GOTO     Dongu

           GOTO     Bir

DECF(DECrease F): F yazmacının değerini 1 azaltır.

                     DECF        REG

DECFSZ(DECrease F Skip if Zero): F yazmacının değerini bir azaltır 0 a eşitse sonraki komutu atlar(işleme almaz).

Dongu

                     DECFSZ    REG ;REG i 1 azalt 0 a eşitse bir sonraki komutu atla ve Sıfır etiketine git

                     GOTO       Dongu

                     GOTO       Sıfır

INCF(INCrease F): F yazmacındaki değeri 1 artırır.

         INCF         REG

INCFSZ(INCrease F Skip if Zero): F yazmacındaki değeri 1 artırır 0 a eşitse sonraki komutu atlar(işleme almaz)

Dongu

                    INCFSZ     REG ;REG i 1 artır 0 a eşitse bir sonraki komutu atla ve Sıfır etiketine git

                    GOTO       Dongu

                    GOTO       Sıfır

 

Diğer PIC Assembly komutlarına buradan ulaşabilirsiniz.



   
Beğenilme
E-mail olarak gönder
İlgili makaleler
Teknikim'e kaydet

Okuyucu yorumları  RSS feed Yorum
 

Ortalama Üye Değerlendirmesi

   (0 Oylama)

 

Yorum Sayısı: 4 / 4

ÇOK ÖNEMLİ

Yazan:: biitiyuel (Kayıtlı ) Tarih: 29-07-2010 09:57

Merhabalar; 
 
Çok güzel anlatmışsın. ama ben 18F8680 ile haırlanmış bi devrede bunları uyguladığımda led yanmıyor.yazdığım koduda paylaşabilirim. acil yardımcı olursanız sevinirim

 

» Yorumu cevapla...

dfsv

Yazan:: perto (Kayıtlı ) Tarih: 18-06-2010 04:23

http://google.com

 

» Yorumu cevapla...

selamm

Yazan:: yasin 55 (Kayıtlı ) Tarih: 03-05-2010 08:45

bilader cok iyi yazmışsın bnmde pıclı bitane led uygulaması yapmam lazım ama bilmiyorum pıc yazmayı yardım edersen sevinirim

 

» Yorumu cevapla...

varol

Yazan:: tamacun (Kayıtlı ) Tarih: 28-02-2010 06:06

aga sağolsın çok güzel bişekilde anlatmışsın eline koluna sağlık.

 

» Yorumu cevapla...

Yorum Sayısı: 4 / 4



Yorumunuzu ekleyin
Sadece kayitli kullanicilar bir Makaleyi yorumlayabilir. Lütfen ücretsiz üye olun veya giriş yapın.


mXcomment 1.0.8 © 2007-2010 - visualclinic.fr
License Creative Commons - Some rights reserved
JoomlaWatch Stats 1.2.9 by Matej Koval