DERS 6 PIC 16F84 PROGRAMLAMA

Post on 23-Jan-2016

61 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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; - PowerPoint PPT Presentation

Transcript

DERS 6DERS 6

PIC 16F84PIC 16F84 PROGRAMLAMA PROGRAMLAMA

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 2

İÇERİKİÇERİK

PIC 16F84 bacak bağlantılarıPIC 16F84 bacak bağlantıları

PIC 16F84 bellek yapısıPIC 16F84 bellek yapısı

Program belleğiProgram belleği

RAM bellekRAM bellek

Değişken kullanımıDeğişken kullanımı

KomutlarKomutlar

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 3

Programlamada iki önemli kavramdan bir diğeri ise verilerin Programlamada iki önemli kavramdan bir diğeri ise verilerin işlenmesini sağlayan komutlardır. Bunlar sınıflandırılacak olursa;işlenmesini sağlayan komutlardır. Bunlar sınıflandırılacak olursa;

I.I. Aritmetik ve Atama işlem komutları Aritmetik ve Atama işlem komutları a.a. Yükleme İşlemiYükleme İşlemi: : DeDeğişken (register) değerini belirleme (=)ğişken (register) değerini belirleme (=)b.b. ArAritmetik İşlemitmetik İşlem: : ToplamaToplama, Çıkarma, Çıkarmac.c. Mantıksal İşlemMantıksal İşlem: : AND, OR, XORAND, OR, XORd.d. İçerik Değiştirme İşlemiİçerik Değiştirme İşlemi: : DeDeğişken değerini değiştirmeğişken değerini değiştirme

içerik temizle, arttır, azalt, eşlenik aliçerik temizle, arttır, azalt, eşlenik ale.e. Bit İşlemleriBit İşlemleri: : DeDeğişken bitini 0 veya 1 yapğişken bitini 0 veya 1 yapf.f. Kaydırma İşlemleriKaydırma İşlemleri: : DeDeğişken bitlerini sağa veya sola kaydırğişken bitlerini sağa veya sola kaydır

II.II. Karar verme işlem komutlarıKarar verme işlem komutlarıa.a. Koşullu DallanmaKoşullu Dallanma: : Değişken sıfır–herhangi biti 0Değişken sıfır–herhangi biti 0//11 ise ise dallandallan

III.III. DDiğer işlem komutlarıiğer işlem komutlarıa.a. Program Akış KomutlarıProgram Akış Komutları:: DallanmaDallanmab.b. Mikrodenetleyici Kontrol KomutlarıMikrodenetleyici Kontrol Komutları

KOMUTLARKOMUTLAR

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 4

Dersin bu bölümünde Dersin bu bölümünde I. ArI. Aritmetik Atama ve itmetik Atama ve

İşlem Komutlarınİşlem Komutların ne şekilde kullanıldıklarını ne şekilde kullanıldıklarını

sırayla inceleyelim…sırayla inceleyelim…

KOMUTLARKOMUTLAR

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 5

DeDeğişken (register) değerini belirleme (= işlemi)ğişken (register) değerini belirleme (= işlemi)

KOMUTLAR (yükleme işlemi)KOMUTLAR (yükleme işlemi)

0x4F0x4F

0x000x00

WW

0x4E0x4E

MOVWF

MOVF

MOVLW sabit

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 6

DeDeğişken (register) değerini belirleme (= işlemi)ğişken (register) değerini belirleme (= işlemi)

KOMUTLAR (yükleme işlemi)KOMUTLAR (yükleme 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

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 7

KOMUTLAR (aritmetik işlem)KOMUTLAR (aritmetik işlem)

0x4F0x4F

0x000x00

WW

0x4E0x4E

ADDWF, SUBWF

Register ile W topla/çıkar

Sonucu herhangi birisine gönder

sabitADDLW, SUBLW

sabit ile W topla/çıkar

Sonucu W akü.’ne gönder

ToplamaToplama, Çıkarma, Çıkarma

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 8

KOMUTLAR (aritmetik işlem)KOMUTLAR (aritmetik işlem)

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

ToplamaToplama, Çıkarma, Çıkarma

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 9

KOMUTLAR (aritmetik işlem)KOMUTLAR (aritmetik işlem)

ÖRNEK:ÖRNEK:0x0C ve 0x0D RAM bellek gözlerinde tutulan iki adet 1B sayıyı 0x0C ve 0x0D RAM bellek gözlerinde tutulan iki adet 1B sayıyı toplayan assembler programını hazırlayın.toplayan assembler programını hazırlayın.

ALGORİTMAALGORİTMA

1)1) X X WW

2)2) Y+WY+W ? (bu neden önemli)? (bu neden önemli)

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 10

AND, OR, XORAND, OR, XOR

KOMUTLAR (mantıksal işlem)KOMUTLAR (mantıksal işlem)

0x4F0x4F

0x000x00

WW

0x4E0x4E

ANDWF, IORWF, XORWF

Register ile W and, or, xor hesapla

Sonucu herhangi birisine gönder

sabit

ANDLW IORLW

XORLW

sabit ve W için and, or, xor hesapla

Sonucu W akü.’ne gönder

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 11

AND, OR, XORAND, OR, XOR

KOMUTLAR (mantıksal işlem)KOMUTLAR (mantıksal işlem)

ANDLW k : W and k W IORLW k : W or k WXORLW 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 fXORWF f , d : f xor W d veya d=0 ise f xor W W

d=1 ise f xor W f

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 12

KOMUTLAR (mantıksal işlem)KOMUTLAR (mantıksal işlem)

ÖRNEK:ÖRNEK:0x0C RAM bellek gözünde tutulan 1B sayıyının hex 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österiminde 1’ler basamağını hesaplayıp, 0x0D RAM bellek gözünde kaydeden assembler programını hazırlayın.gözünde kaydeden assembler programını hazırlayın.

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 13

Değişken içeriğini Değişken içeriğini temizletemizle, , arttırarttır, , azaltazalt, , eşlenik aleşlenik al

KOMUTLAR (içerik değiştirme işlemi)KOMUTLAR (içerik değiştirme işlemi)

0x4F0x4F

0x000x00

WW

0x4E0x4ECLRF: register 00000000

COMF: register register

DECF: register register-1

INCF: register register+1

CLRW

W 00000000

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 14

Değişken içeriğini Değişken içeriğini temizletemizle, , arttırarttır, , azaltazalt, , eşlenik aleşlenik alKOMUTLAR (içerik değiştirme işlemi)KOMUTLAR (içerik değiştirme işlemi)

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

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 15

RegisterRegister’ın herhangi bitini 0 veya 1 yap’ın herhangi bitini 0 veya 1 yap

KOMUTLAR (bit işlemleri)KOMUTLAR (bit işlemleri)

0x4F0x4F

0x000x00

0x4E0x4EBCF: register istenilen bit0

BSF: register istenilen bit1

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 16

RegisterRegister’ın herhangi bitini 0 veya 1 yap’ın herhangi bitini 0 veya 1 yap

KOMUTLAR (bit işlemleri)KOMUTLAR (bit işlemleri)

BCF f , b : (f ’ nin b. biti) 0

BSF f , b : (f ’ nin b. biti) 1

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 17

RegisterRegister ve carry bitlerini (toplam 8+1) sanki bir çember ve carry bitlerini (toplam 8+1) sanki bir çember

üzerinde sıralılarmışçasına sağa/sola döndürüzerinde sıralılarmışçasına sağa/sola döndür

KOMUTLAR (bit işlemleri)KOMUTLAR (bit işlemleri)

0x4F0x4F

0x000x00

0x4E0x4E

yy aa şş aa BBss ıı nn FF BB yy aa şş FFaa ss ıı nn

yy aa şş aa BBss ıı nn FF aa şş aa ss yyıı nn FF BB

RRF: file register’ın 8 biti ve carry biti bir çember üzerindeler gibi SAĞA döndürülür

MSB LSB Carry

RLF: file register’ın 8 biti ve carry biti bir çember üzerindeler gibi SOLA döndürülür

MSB LSB Carry

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 18

RegisterRegister ve carry bitlerini (toplam 8+1) sanki bir çember ve carry bitlerini (toplam 8+1) sanki bir çember

üzerinde sıralılarmışçasına sağa/sola döndürüzerinde sıralılarmışçasına sağa/sola döndür

KOMUTLAR (bit işlemleri)KOMUTLAR (bit işlemleri)

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

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 19

KOMUTLAR (bit işlemleri)KOMUTLAR (bit işlemleri)

ÖRNEK:ÖRNEK:0x0C RAM bellek gözünde tutulan ve değeri 0-15 olan bir 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.sayının 3 katını hesaplayan assembler programını hazırlayın.

ALGORİTMAALGORİTMA

1)1) X X WW

2)2) X+WX+W ..

3)3) ..

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 20

KOMUTLAR (bit işlemleri)KOMUTLAR (bit işlemleri)

SORU:SORU:3 yerine 8 kat hesaplayan program nasıl (ve daha kısa nasıl) 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 gerçekleştirilir? Daha kısa gerçekleştirirken neye dikkat etmek gerekir?gerekir?

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 21

RegisterRegister içerisindeki ilk 4 bit ile son 4 bit yer değiştirilir. içerisindeki ilk 4 bit ile son 4 bit yer değiştirilir.KOMUTLAR (bit işlemleri)KOMUTLAR (bit işlemleri)

0x4F0x4F

0x000x00

0x4E0x4E

aa bb cc dd ee ff gg hh ee ff gg hh aa bb cc dd

SWAPF: file register’ın ilk ve son 4 biti (nibble) yer değiştirilir.

MSB LSB MSB LSB

Dr. Emin Argun Oral, Atatürk Üniversitesi 2008

Ders 6, Slayt 22

KOMUTLAR (bit işlemleri)KOMUTLAR (bit işlemleri)

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

RegisterRegister içerisindeki ilk 4 bit ile son 4 bit yer değiştirilir. içerisindeki ilk 4 bit ile son 4 bit yer değiştirilir.

DERSDERS 6 6MİKROİŞLEMCİ PROGRAMLAMAMİKROİŞLEMCİ PROGRAMLAMA

- SON- SON ---KaynakKaynak::-Mikrodenetleyiciler ve PIC Prog., Orhan ALTINBAŞAK, ISBN 975-883-409-6Mikrodenetleyiciler ve PIC Prog., Orhan ALTINBAŞAK, ISBN 975-883-409-6

top related