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ı : 3697

Beğenilme : 41

Yayınlama yeri : Dersler, PIC Dersleri


Giriş/Çıkış(I/O) Portları

16F628A'da 2 adet(PORTA,PORTB), 16F877A'da 5 adet(PORTA,PORTB,PORTC,PORTD,PORTE) giriş/çıkış portları bulunmaktadır. Bir motor veya led kontrol etmek istediğimizde bu portlar kullanılmadır.

Giriş/Çıkış Portlarını Giriş veya Çıkış olarak Ayarlama

I/O portları kullanılmadan önce giriş veya çıkış olarak ayarlanmalıdır. PORTA'yı ayarlamak için TRISA, PORTB'yi ayarlamak için TRISB, PORTC'yı ayarlamak için TRISC, PORTD'yı ayarlamak için TRISD, PORTE'yı ayarlamak için ise TRISE yazmaçları kullanılır. Çıkış olarak kullanılacak bitler 0, giriş olarak kullanılacak bitler ise 1 yapılır. Tabiî ki bu işlemi yapmadan önce TRIS yazmaçlarının bulunduğu Bank1 e geçilmelidir.

Örnek: Bu örnekte PORTA nın bütün pinleri giriş, PORTB nin ise bütün pinleri çıkış olarak ayarlanmaktadır.

;----------BANK1 e geç-------------

BSF           STATUS,RP0

BCF           STATUS,RP1

;---------PORTA yı giriş yap-------

MOVLW     b'11111111'

MOVWF     TRISA

;--------PORTB yi çıkış yap--------

MOVLW     b'00000000'

MOVWF     TRISB

;--------BANK0 a geç---------------

BCF           STATUS,RP0

BCF           STATUS,RP1

            ;------------------------------------------

PIC Assembly Yazım Kuralları

Her dilde olduğu gibi Assembly dilinde de uyulması gereken bazı kurallar vardır. Kodlar belirli bir sırada ve düzen içerisinde olmalıdır:

>>Hangi PIC in kullanıldığı belirtilir.
                   LIST          P=16F628A

>>İçerisinde tanımlamaların yer aldığı inc uzantılı dosya dahil edilir.
                   #INCLUDE   "P16F628A.INC"

>>Kod içerisinde kullanılacak değişkenler genel amaç için ayrılmış adreslere atanır.
degisken1    EQU             0x20
degisken2    EQU             0x21

>>Kodlar yazılır.
Dongu
                  MOVLW       b'00110011'
                  MOVWF       PORTB
                  GOTO          Dongu

>>END komutuyla kod yazma işlemi bitirilir.
                  END

Daha önce de belirttiğim gibi kodlar belli bir düzen içerisinde yazılmalıdır. 1. sütunda etiketler, 2. sütunda komutlar ve 3. sütunda da sabit değerler veya değişken adları yer alır. Etiketlerin de yazımında belli kurallara uyulmalıdır:

  • Etiketler bir harfle veya alt çizgi ile başlamalıdır.
  • Etiketler içerisinde Türkçe karakterler kullanılamaz.
  • Etiketler bir assembly komutundan oluşamaz.
  • Etiketlerin içerisinde alt çizgi, rakam ve soru işareti bulunabilir.
  • Etiketler en fazla 32 karakter uzunluğunda olabilir.
  • Etiketlerde büyük küçük harf duyarlılığı vardır.

Komutlarda büyük/küçük harf kullanılabilir. Etiketler için yazdığımız kurallar değişken adları için de geçerlidir.

Örnek: Bu örnekte degisken1 ve degisken2 isimli değişkenler genel amaçlı adreslere atanır ve PORTB' ye sürekli 00110011 çıkışı verilir.

LIST              P=16F628A             ;16F628A kullanılacağını belirt
           #INCLUDE      "P16F628A.INC"       ;P16F628A.INC dosyasını dahil et

degisken1        EQU               0x20                        ;degisken1 i 0x20 adresine ata

degisken2        EQU               0x21                        ;degisken2 i 0x21 adresine ata

Dongu

MOVLW        b'00110011'               ;W yazmacına (00110011)2 i yükle

MOVWF        PORTB                     ;PORTB ye W yazmacındaki değeri yükle

GOTO           Dongu                       ;Dongu etiketine git

END                                              ;Kodu sonlandır



   
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