DERS 6 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
KOMUTLAR Programlamada iki önemli kavramdan bir diğeri ise verilerin işlenmesini sağlayan komutlardır. Bunlar sınıflandırılacak olursa; Aritmetik ve Atama işlem komutları Yükleme İşlemi: Değişken (register) değerini belirleme (=) Aritmetik İşlem: Toplama, Çıkarma Mantıksal İşlem: AND, OR, XOR İçerik Değiştirme İşlemi: Değişken değerini değiştirme içerik temizle, arttır, azalt, eşlenik al Bit İşlemleri: Değişken bitini 0 veya 1 yap Kaydırma İşlemleri: Değişken bitlerini sağa veya sola kaydır Karar verme işlem komutları Koşullu Dallanma: Değişken sıfır–herhangi biti 0/1 ise dallan Diğer işlem komutları Program Akış Komutları: Dallanma Mikrodenetleyici Kontrol Komutları
KOMUTLAR Dersin bu bölümünde I. Aritmetik Atama ve İşlem Komutların ne şekilde kullanıldıklarını sırayla inceleyelim…
KOMUTLAR (yükleme işlemi) Değişken (register) değerini belirleme (= işlemi) 0x00 MOVWF W MOVLW sabit 0x4E MOVF 0x4F
KOMUTLAR (yükleme işlemi) Değişken (register) değerini belirleme (= işlemi) MOVLW k : k W MOVWF f : W f MOVF f , d : f d veya d=0 ise f W d=1 ise f f
KOMUTLAR (aritmetik işlem) Toplama, Çıkarma 0x00 W sabit ADDLW, SUBLW sabit ile W topla/çıkar Sonucu W akü.’ne gönder 0x4E ADDWF, SUBWF Register ile W topla/çıkar Sonucu herhangi birisine gönder 0x4F
KOMUTLAR (aritmetik işlem) Toplama, Çıkarma ADDLW k : k + W W SUBLW k : k – W W ADDWF f , d : f + W d veya d=0 ise f + W W d=1 ise f + W f SUBWF f , d : f – W d veya d=0 ise f - W W d=1 ise f - W f
KOMUTLAR (mantıksal işlem) AND, OR, XOR 0x00 ANDLW IORLW XORLW sabit ve W için and, or, xor hesapla Sonucu W akü.’ne gönder W sabit 0x4E ANDWF, IORWF, XORWF Register ile W and, or, xor hesapla Sonucu herhangi birisine gönder 0x4F
KOMUTLAR (mantıksal işlem) AND, OR, XOR ANDLW k : W and k W IORLW k : W or k W XORLW k : W xor k W ANDWF f , d :f and W d veya d=0 ise f and W W d=1 ise f and W f IORWF f , d : f or W d veya d=0 ise f or W W d=1 ise f or W f XORWF f , d : f xor W d veya d=0 ise f xor W W d=1 ise f xor W f
KOMUTLAR (içerik değiştirme işlemi) Değişken içeriğini temizle, arttır, azalt, eşlenik al 0x00 CLRW W 00000000 W 0x4E CLRF: register 00000000 COMF: register register DECF: register register-1 INCF: register register+1 0x4F
KOMUTLAR (içerik değiştirme işlemi) Değişken içeriğini temizle, arttır, azalt, eşlenik al CLRW : 00000000 W CLRF f : 00000000 f COMF f , d : f d veya d=0 ise f W d=1 ise f f DECF f , d : (f) - 1 d veya d=0 ise (f) - 1 W d=1 ise (f) - 1 f INCF f , d : (f) + 1 d veya d=0 ise (f) + 1 W d=1 ise (f) + 1 f
KOMUTLAR (bit işlemleri) Register’ın herhangi bitini 0 veya 1 yap 0x00 0x4E BCF: register istenilen bit0 BSF: register istenilen bit1 0x4F
KOMUTLAR (bit işlemleri) Register’ın herhangi bitini 0 veya 1 yap BCF f , b : (f ’ nin b. biti) 0 BSF f , b : (f ’ nin b. biti) 1
KOMUTLAR (bit işlemleri) Register ve carry bitlerini (toplam 8+1) sanki bir çember üzerinde sıralılarmışçasına sağa/sola döndür 0x00 MSB LSB Carry y a ş a s ı n F B B y a ş a s ı n F RRF: file register’ın 8 biti ve carry biti bir çember üzerindeler gibi SAĞA döndürülür MSB LSB Carry 0x4E y a ş a s ı n F B a ş a s ı n F B y 0x4F RLF: file register’ın 8 biti ve carry biti bir çember üzerindeler gibi SOLA döndürülür
KOMUTLAR (bit işlemleri) Register ve carry bitlerini (toplam 8+1) sanki bir çember üzerinde sıralılarmışçasına sağa/sola döndür RRF f , d : d=0 ise sağa döndür (f ’in 8 biti + carry) W veya d=1 ise sağa döndür (f ’in 8 biti + carry) f RLF f , d : d=0 ise sola döndür (carry + f ’in 8 biti) W veya d=1 ise sola döndür (carry + f ’in 8 biti) f
KOMUTLAR (bit işlemleri) Register içerisindeki ilk 4 bit ile son 4 bit yer değiştirilir. 0x00 MSB LSB MSB LSB a b c d e f g h e f g h a b c d SWAPF: file register’ın ilk ve son 4 biti (nibble) yer değiştirilir. 0x4E 0x4F
KOMUTLAR (bit işlemleri) Register içerisindeki ilk 4 bit ile son 4 bit yer değiştirilir. SWAPF f , d : d=0 ise f’in nibble parçaları yerdeğiştirilir W veya d=1 ise f’in nibble parçaları yer değiştirilir f
MİKROİŞLEMCİ PROGRAMLAMA DERS 6 MİKROİŞLEMCİ PROGRAMLAMA - SON - Kaynak: Mikrodenetleyiciler ve PIC Prog., Orhan ALTINBAŞAK, ISBN 975-883-409-6