Online Pic Compiler
- ÜCRETSİZ - ONLINE PIC ASSEMBLY COMPILER
- KULLANIMI KOLAY ARAÇLAR
- ÖĞRETİCİ YARDIM DOSYALARI
- HATA AYIKLAYICI VE SİMÜLATÖR ÖZELLİĞİ

16F ailesine üye PIC mikrodenetleyicilerin hafızası bank yapısına sahiptir.
16F84A için geçici hafıza (RAM) iki bank'tan oluşur.

Yukarıdaki resimde, her bir sütun bir bankı temsil etmektedir. Soldaki bank BANK 0, sağdaki ise BANK 1 olarak adlandırılır.
Bazı bellek alanları (STATUS gibi) her iki bankta da görünmektedir. Mikrodenetleyici hangi bankta olursa olsun, program bu tarz bellek alanlarına erişebilir. Sadece bir bankta rastlanan bir bellek alanı ile işlem (okuma, yazma veya değiştirme) yapabilmek için, programın o anda bu bellek alanının bulunduğu bankta olması gerekir.

Eğer mikrodenetleyicinin o an olmadığı banktaki bir bellek alanını kullanmaya çalışırsanız hata oluşur.
Bank seçmenin iki yolu vardır.
İlk yöntem STATUS bellek alanı'nın 5. bitini 1 veya sıfır yapmakla olur. Şu anki bank ne olursa olsun
BSF, STATUS, 5
Bankı 1 yapar. Benzer şekilde,
BCF, STATUS, 5
komutundan sonra geçerli bank Bank 0'dır.
İkinci yöntem BANKSEL komutunu kullanmaktır. BANKSEL'i sadece BANK 0'da bulunan (PORTB gibi) bir bellek alanı ismi ile kullanılırsa, mikrodenetleyici BANK 0'a geçer (ör. BANKSEL PORTB). Benzer şekilde sadece bank 1'de bulunan bir bellek alanı ile kullanılırsa (ör. BANKSEL TRISA) program BANK 1'e geçer.
Bank değişimi ve kullanımını bir örnekle anlatalım.
Mikrodenetleyici, çalışmaya başladığında, tüm PORT'lar otomatik olarak giriş (input) olur. Eğer, PORTB'ye LED'ler bağlayacak ve bu LED'leri program akışında yakıp söndürecek bir program yazmak istiyorsak, PORTB'yi çıkış (output) moduna geçirmemiz gerekir. PORTB pinlerini çıkış yapabilmek için TRISB'yi sıfıra eşitlememiz gerekir, fakat yukarıdaki hafıza şemasına bakacak olursak TRISB yalnızca BANK 1'de bulunur. Bu nedenle, TRISB ile ilgili bir işlem yapmadan önce mikrodenetleyiciyi BANK 1'e geçirmeliyiz. Yukarıda anlatılan birinci yöntemi kullanarak, bu işlemi
- BSF STATUS, 5
- CLRF TRISB
- BANKSEL TRISB
- CLRF TRISB
Bu aşamadan sonra, eğer PORTB gibi sadece BANK 0'da bulunan bir register ile işlem yapacaksak, BANK 0'a geri dönmemiz gerekmektedir. Bunun için ise, Birinci yöntemi kullanarak,
- BCF STATUS, 5
- BANKSEL PORTB