Upload
netis
View
61
Download
1
Embed Size (px)
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
Citation preview
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