DERS 5 PIC 16F84 PROGRAMLAMA
İÇERİK PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar
BACAK BAĞLANTILARI PIC 16F84’ün pin görünüşü, Mikrodenetleyiciler ve PIC Prog., sayfa 25
BACAK BAĞLANTILARI PIC 16F84 dıştan incelendiğinde, Besleme gerilimi bağlantı pinleri Saat sinyali bağlantı pinleri Reset pini I/O portu (RA0-RA3 ve RB0-RB7) pinleri bulundurur. Yani dış dünya ile tek iletişim noktası I/O portları vasıtasıyla olmaktadır.
BACAK BAĞLANTILARI Dolayısıyla PIC 16F84 çalışması için gerekli bazı pinler dışında dış dünya ile iletişiminin sadece giriş/çıkış portları vasıtasıyla yapıldı ve bunun dışında işlemcisine bir bilgi transferinin mümkün olmadığı ancak kendi belleği ve gerekli bus bağlantılarının olduğu tümleşik bir bilgisayar sistemi olarak düşünülebilir. Yani I/O pinleri çalışması ve programlanması açısından önem taşırlar.
BELLEK YAPISI PIC 16F84 işlemcisinin belleği program ve RAM bellek olarak iki kısımdan oluşur. Dolayısıyla bir RISC işlemci olan 16F84’ün program ve data belleği ayrıdır. Bunları ayrı ayrı kısaca inceleyelim.
PROGRAM BELLEĞİ Program belleği 1 KByte uzunluktadır. İlk hafıza hücresinin adresi 0x000 (0d)ve son hafıza hücresinin adresi 0x3FF (1023d)olarak tanımlıdır. Her bir bellek gözü (hücresi) 14-bit uzunluktadır. Program belleğinde sadece assembly komutları bulunur. Program belleği elektriksel olarak yazılıp/silinebilir (flash) türde üretilmiştir. Dolayısıyla 16F84 işlemcisinin program belleği toplam .... adet bitten oluşur. Bu slayttaki hata, ................ şeklinde özetlenebilir!!!
PROGRAM BELLEĞİ Mikrodenetleyiciler, Orhan ALTINBAŞAK, sayfa 32
RAM BELLEK 16F84’ün RAM belleği iki ayrı sayfadan (BANK) yani bellek aralığından oluşur. Bunlar 0x00-0x4F ve 0x80-0xCF olarak tanımlıdır. RAM bellek hücreleri 8-bit uzunluktadırlar. Bu belleğin bir kısmı file register adı ile CPU calışmasını kontrol etmek amacıyla ayrılmışlardır. Geriye kalanlar programa ait verileri (değişkenleri) saklamak için yani normal RAM bellek hücresi olarak kullanılırlar.
RAM BELLEK Mikrodenetleyiciler, Orhan ALTINBAŞAK, sayfa 33
RAM BELLEK 16F84’ün RAM bellek haritasında karalı bölgeler otomatik kopyalamayı ifade eder. Yani herhangi birine yazılan bilgi eşleniği olan hücreye de kopyalanır. Bir BANKtaki register kullanılmak istediğinde ilgili BANKa geçilmelidir. Bazı özel amaçlı registerlar her iki BANKta da bulunurlar. Bundan amaç bunların BANK değiştirmeye gerek kalmaksızın kullanılabilmesidir. Dolayısıyla RAM bellekte toplamda 0x50 (80d) + 0x50 (80d) RAM gözü bulunmaz.
DEĞİŞKEN KULLANIMI Programlamada iki önemli kavramdan biri verilerin program bünyesinde saklanabilmesidir. Örnek: Basit bir Matlab programını göz önüne alalım vize=input(‘vize notu’); final= input(‘final notu’); ortalama=0.7 * final + 0.3 * vize; Bu programda iki sayısal büyüklük iki ayrı isim (vize, final) ile kodlanarak programın işletilmesi esnasında saklanır ve yapılan işlemler de bunlar üzerine tanımlanırlar.
DEĞİŞKEN KULLANIMI PIC 16F84 işlemcisi ile programlamada verilerin program bünyesinde saklanması direkt programcının tanımladığı değişkenler ile olmamaktadır. Bunun yerine, özel tanımlı bir W register (akümülatör, kaydedici), ve RAM bellek hücreleri (file register) kullanılmaktadır. Dolayısıyla hem W değişkenine hem de RAM belleğe bilgi aktarımının ne şekilde olduğu ve bunu düzenleyen komutlar incelenmelidir.
W kaydedicisi (register) ve RAM hücrelerine değer atama DEĞİŞKEN KULLANIMI W kaydedicisi (register) ve RAM hücrelerine değer atama 0x00 W sabit 0x4E 0x4F
MİKROİŞLEMCİ PROGRAMLAMA DERS 5 MİKROİŞLEMCİ PROGRAMLAMA - SON - Kaynak: Mikrodenetleyiciler ve PIC Prog., Orhan ALTINBAŞAK, ISBN 975-883-409-6