|
Sayfa 2 Toplam: 4
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
|
varol
Yazan:: tamacun (Kayıtlı ) Tarih: 28-02-2010 06:06
» Yorumu cevapla...