1 / 23

DERS 6 PIC 16F84 PROGRAMLAMA

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;

netis
Download Presentation

DERS 6 PIC 16F84 PROGRAMLAMA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 sabitile 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 veyad=0 ise f + W W d=1 ise f + W  f SUBWF f , d : f – W  d veyad=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 sabitve 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 IORLWk : 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 00000000 W CLRF: register  00000000 COMF: register  register DECF: register  register-1 INCF: register  register+1 0x4E 0x4F

  14. 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

  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. DERS 6 MİKROİŞLEMCİ PROGRAMLAMA - SON- Kaynak: Mikrodenetleyiciler ve PIC Prog., Orhan ALTINBAŞAK, ISBN 975-883-409-6

More Related