Pıc Programlama Ders-6

Status registeri ve özellikleri; portların kullanımları; temel komut setine giriş ve bazı komutların kullanım örnekleri

DERS - 6

Pic 16F84'ün RAM belleginin iki bank'tan ibaret oldugunu söylemistik. Bunlar Bank 0 ve Bank 1'dir, degisik piclerde baska banklar da mevcuttur. Bir banktaki registerleri kullanmak için o bank'a geçmek gerekmektedir. Bank degistirmeislemleri STATUS registeri vasitasiyla yapilir.

STATUS REGISTER

Status register 8 bittir. Bu register'in 5. bitinin degistirilmesi ile 16F84 de bank degistirme islemi gerçeklestirilir.16F84'de Bank bitleri Status registerin 5. ve 6. Bitidir, 6. bit 0 kalmalidir.Yalniz 5. bit'in degistirilmesi bank degistirmek için yeterlidir. Tüm reset hallerinde 5. ve 6. bit 00 olur ve Pic bank 0'da bulunur.

6. bit 0 5.bit 0 ise Bank 0
6. bit 0 5.bit 1 ise Bank 1 olur

Status register bitlerini degistirmek için kullanilan komut BSF ve BCF komutlaridir.

BSF STATUS,RP0
BSF STATUS,5
BSF H'03',RP0
BSF H'03',5

Komutlari ile 5.bit 1 yapilir ve bank 1'e geçilir.1 yapilan 5. biti 0 yapmak için ise BCF komutunu kullaniriz.

BCF STATUS,RP0
BCF STATUS,5
BCF H'03',RP0
BCF H'03',5

"STATUS , RP0" "'H03', RP0" ifadelerinde ki STATUS register adresi ve RP0 INC. Dosyasinda tanimlidir.INC dostasi kullanilmaz ise bunlar EQU komutu ile tanimlanmalidir. RP0 yerine, bit degeri olan 5 kullanildiginda bunu ayrica tanimlamak gerekmez.

PORTLARIN GIRIS / ÇIKIS YAPILMASI

Portlarin giris veya çikis olarak yönlendirilmesi için TRIS registeri kullanilir. PORTA TRISA ile PORTB TRISB registeri ile yönlendirilir.TRIS registeri 8 bittir. Her bir bit bir I/O kapisina karsiliktir. PORTB nin 8 I/O kapisi vardir,fakat PORTA da 5 I/O kapisi mevcuttur bu nedenle PORTA için TRIS registerinin ilk 5 bit'i kullanilir, diger bitler 0 olarak kalir.

PORT A ve PORTB kapilari ya tüm olarak veya tek tek bit olarak giris, çikis yapilabilir.


TRIS register bitleri :

1 ise kapi GIRIS
0 ise kapi ÇIKIS olarak yönlenir

PORTA çikislarini kontrol eden TRISA register bitleri,asagidaki gibi ise çikislar su anlama gelir:

BIT
7
6
5
4
3
2
1
0
DEGER
-
-
-
1
0
1
0
1
SONUÇ
-
-
-
G
Ç
G
Ç
G


PORTB çikislarini kontrol eden TRISB register bitleri, asagidaki gibi ise çikislar su anlama gelir.

BIT
7
6
5
4
3
2
1
0
DEGER
1
1
0
1
0
1
0
1
SONUÇ
Ç
G
Ç
G
Ç
G
Ç
G


PORTA ve PORTB çikislarinin hepsini birden çikis yapmak için kullanilan komut

"CLRF" komutudur.

CLRF TRISA tüm PortA kapilarini 0 yapar sonuçta tüm kapilar çikis olur.
CLRF TRISB tüm PortB kapilarini 0 yapar sonuçta tüm kapilar çikis olur.

PORT A veya PORTB çikislarinin tümünü farkli giris veya çikis olarak yönlendirmek istersek karsilik gelen TRISA ve TRISB register bitlerinin tümüne farkli 0 veya 1 degeri vermemiz gerekir. Böylece o bitlere denk gelen kapilar giris veya çikis olarak yönlenirler. Bunun için kullanilan komutlar söyledir:

MOVLW B'11010101' ; write registere degerleri yaz
MOVWF TRISB ; write register degerlerini trisb ye yaz

BSF
BCF

Gibi komutlar da kuillanilabilir. Bu komutlarla istenen bitleri tek tek 0 veya 1 yapabiliriz.

BSF (bit set file) TRISA veya TRISB nin ilgili bitini 1 yaparak karsilik olan A veya B port kapisini giris yapar.

BCF (bit clear file) TRISA veya TRISB nin ilgili bitini 0 yaparak karsilik olan A veya B port kapilarini çikis yapar.

BSF TRISA, 0 ; trisa'nin ilk biti 1 olur ve porta ilk bit giris olur.
BCF TRISB, 1 ; trisb'nin 2 biti 0 olur ve portb nin ikinci biti çikis olur.