Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

DERS 6 PIC 16F84 PROGRAMLAMA.

Benzer bir sunumlar


... konulu sunumlar: "DERS 6 PIC 16F84 PROGRAMLAMA."— Sunum transkripti:

1 DERS 6 PIC 16F84 PROGRAMLAMA

2 İÇERİK PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı
Program belleği RAM bellek Değişken kullanımı Komutlar

3 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ı

4 KOMUTLAR Dersin bu bölümünde I. Aritmetik Atama ve İşlem Komutların ne şekilde kullanıldıklarını sırayla inceleyelim…

5 KOMUTLAR (yükleme işlemi)
Değişken (register) değerini belirleme (= işlemi) 0x00 MOVWF W MOVLW sabit 0x4E MOVF 0x4F

6 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

7 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

8 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

9 KOMUTLAR (aritmetik işlem)
ÖRNEK: 0x0C ve 0x0D RAM bellek gözlerinde tutulan iki adet 1B sayıyı toplayan assembler programını hazırlayın. ALGORİTMA 1) X  W 2) Y+W  ? (bu neden önemli)

10 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

11 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

12 KOMUTLAR (mantıksal işlem)
ÖRNEK: 0x0C RAM bellek gözünde tutulan 1B sayıyının hex gösteriminde 1’ler basamağını hesaplayıp, 0x0D RAM bellek gözünde kaydeden assembler programını hazırlayın.

13 KOMUTLAR (içerik değiştirme işlemi)
Değişken içeriğini temizle, arttır, azalt, eşlenik al 0x00 CLRW W  W 0x4E CLRF: register  COMF: register  register DECF: register  register-1 INCF: register  register+1 0x4F

14 KOMUTLAR (içerik değiştirme işlemi)
Değişken içeriğini temizle, arttır, azalt, eşlenik al CLRW :  W CLRF f :  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

15 KOMUTLAR (bit işlemleri)
Register’ın herhangi bitini 0 veya 1 yap 0x00 0x4E BCF: register istenilen bit0 BSF: register istenilen bit1 0x4F

16 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

17 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

18 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

19 KOMUTLAR (bit işlemleri)
ÖRNEK: 0x0C RAM bellek gözünde tutulan ve değeri 0-15 olan bir sayının 3 katını hesaplayan assembler programını hazırlayın. ALGORİTMA 1) X  W 2) X+W  . 3) .

20 KOMUTLAR (bit işlemleri)
SORU: 3 yerine 8 kat hesaplayan program nasıl (ve daha kısa nasıl) gerçekleştirilir? Daha kısa gerçekleştirirken neye dikkat etmek gerekir?

21 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

22 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

23 MİKROİŞLEMCİ PROGRAMLAMA
DERS 6 MİKROİŞLEMCİ PROGRAMLAMA - SON - Kaynak: Mikrodenetleyiciler ve PIC Prog., Orhan ALTINBAŞAK, ISBN


"DERS 6 PIC 16F84 PROGRAMLAMA." indir ppt

Benzer bir sunumlar


Google Reklamları