DERS 7 PIC 16F84 PROGRAMLAMA
description
Transcript of DERS 7 PIC 16F84 PROGRAMLAMA
DERS 7DERS 7
PIC 16F84PIC 16F84 PROGRAMLAMA PROGRAMLAMA
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 2
İÇERİKİÇERİK
PIC 16F84PIC 16F84 örnek programlarörnek programlar
Dallanma komutlarıDallanma komutları
Sonsuz döngüSonsuz döngü
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 3
RAM bellekte 0x0C ve 0x0D hücrelerinde tutulan RAM bellekte 0x0C ve 0x0D hücrelerinde tutulan
iki 8-bit sayının toplamını hesaplayıp sonucu 0x0E iki 8-bit sayının toplamını hesaplayıp sonucu 0x0E
hücresine kaydeden hücresine kaydeden PIC16F84 PIC16F84 işlemcisiişlemcisi assembler assembler
programını hazırlayalımprogramını hazırlayalım::
??????????????????????
PROGRAM 1PROGRAM 1
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 4
RAM bellekte 0x0C ve 0x0D hücrelerinde tutulan RAM bellekte 0x0C ve 0x0D hücrelerinde tutulan
iki 8-bit sayının toplamını hesaplayıp sonucu 0x0E iki 8-bit sayının toplamını hesaplayıp sonucu 0x0E
hücresine kaydeden hücresine kaydeden PIC16F84 PIC16F84 işlemcisiişlemcisi assembler assembler
programını programını hazhazıırlayalrlayalıım:m:
??????????????
PROGRAM PROGRAM 22
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 5
PIC16F84 PIC16F84 işlemcisinin işlemcisinin AA portunun farklı bitlerini portunun farklı bitlerini
GİRİŞ veya ÇIKIŞ olarak programlayalımGİRİŞ veya ÇIKIŞ olarak programlayalım::
BSFBSF STATUSSTATUS, 5, 5
MOVLWMOVLW b’00111100’b’00111100’
MOVWFMOVWF TRISATRISA
PROGRAM PROGRAM 33
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 6
PIC16F84 PIC16F84 işlemcisinin GİRİŞ olarakişlemcisinin GİRİŞ olarak
programlanmprogramlanmış A portundan bilgi okuyup W ış A portundan bilgi okuyup W
register’ına yazalımregister’ına yazalım::
BSFBSF STATUSSTATUS, 5, 5
MOVLWMOVLW b’b’1111111111111111’’
MOVWFMOVWF TRISATRISA
BCFBCF STATUS, 5STATUS, 5
MOVFMOVF PORTA, WPORTA, W
PROGRAM 4PROGRAM 4
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 7
PIC16F84 PIC16F84 işlemcisinin ÇIKIŞ olarakişlemcisinin ÇIKIŞ olarak programlanm programlanmış B ış B
portuna W register’ında tutulan bilgiyi yazalımportuna W register’ında tutulan bilgiyi yazalım::
BSFBSF STATUSSTATUS, 5, 5 BSFBSF STATUS, 5STATUS, 5
MOVLWMOVLWb’b’0000000000000000’’ CLRF CLRF TRISBTRISB
MOVWFMOVWFTRISTRISBB
BCFBCF STATUS, 5STATUS, 5 BCFBCF STATUS, 5STATUS, 5
MOWFMOWF PORTBPORTB MOWFMOWF PORTBPORTB
PROGRAM PROGRAM 55
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 8
PIC16F84 PIC16F84 işlemcisinin A portundan okunan işlemcisinin A portundan okunan
bilgiyi B portuna gönderelim.bilgiyi B portuna gönderelim.
PROGRAM 6PROGRAM 6
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 9
CLRF CLRF PORTBPORTB
BSFBSF STATUSSTATUS, 5, 5
CLRFCLRF TRISBTRISB
MOVLWMOVLW b’b’1111111111111111’’
MOVWFMOVWF TRISATRISA
BCFBCF STATUS, 5STATUS, 5
MOVFMOVF PORTA, 0PORTA, 0
MOVWF MOVWF PORTBPORTB
PROGRAM 6PROGRAM 6
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 10
Assembly programlarımızın işlem kapasitesini Assembly programlarımızın işlem kapasitesini
arttıralımarttıralım: Yen: Yenii komutlar komutlar
KOMUTLARKOMUTLAR
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 11
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 7, Slayt 12
Dersin bu bölümünde Dersin bu bölümünde IIIIII. . Diğer İşlem Diğer İşlem
KomutlarınınKomutlarının neler olduklarına bakalım… neler olduklarına bakalım…
KOMUTLARKOMUTLAR
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 13
KOMUTLAR KOMUTLAR ((dallanmadallanma))GOTOGOTO : : PProgram akışında bir etiket ile belirlenen rogram akışında bir etiket ile belirlenen
komutkomutsatırına dallanma.satırına dallanma.
kkomut Nomut N
GOTOGOTO SICRASICRA
kkomut Momut M-1-1
SICRA kSICRA komut Momut M
kkomut Momut M++11
kkomut Nomut N
GOTOGOTO SICRASICRA
kkomut Momut M-1-1
SICRA kSICRA komut Momut M
kkomut Momut M++11
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 14
PProgram akışı bir etiket ile belirlenen bir komut satırınarogram akışı bir etiket ile belirlenen bir komut satırınadallanır.dallanır.
KOMUTLAR (dallanma)KOMUTLAR (dallanma)
GOTO k : programın işletilecek sıradaki komutu
k etiketi ile işaretlenmiş komut
satırı olarak yürütülür.
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 15
KOMUTLAR KOMUTLAR ((dallanmadallanma))CALL:CALL: PProgram akışı bir etiket ile belirlenen birrogram akışı bir etiket ile belirlenen bir
alt_programa dallanır. alt_programa dallanır.
kkomut Nomut N
CALLCALL alt_prog alt_prog
kkomut Momut M-1-1
alt_progalt_prog k komut Momut M
kkomut Momut M++11
kkomut Nomut N
CALLCALL alt_prog alt_prog
kkomut Momut M-1-1
alt_progalt_prog k komut Momut M
kkomut Momut M++11
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 16
PProgram akışı bir etiket ile belirlenen bir alt_programarogram akışı bir etiket ile belirlenen bir alt_programa
dallanır.dallanır.
KOMUTLAR (dallanma)KOMUTLAR (dallanma)
CALL k : programın sıradaki komutu k etiketi
ile işaretlenmiş alt_program’ın
başlangıç satırından itibaren yürütülür.
CALL komutun GOTO komutundan farkı, dallanılan alt programdan ana programa geri dönmenin de mümkün olabilmesidir. Yani GOTO ile sadece bir başka program bölümüne dallanılırken CALL ile geri dönülmek üzere yine bir başka program bölümüne dallanılır.
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 17
KOMUTLAR KOMUTLAR ((dallanmadallanma))RETURN:RETURN: Alt_programın işletilmesi sona erdiğinde anaAlt_programın işletilmesi sona erdiğinde ana
programda sıçramanın yapıldığı komut (CALL) sonrasına geriprogramda sıçramanın yapıldığı komut (CALL) sonrasına geri
dönülür.dönülür.
CALLCALL alt_prog alt_prog
kkomut Momut M
alt_progalt_prog k komut Nomut N
RETURNRETURN
kkomut Komut K
CALLCALL alt_prog alt_prog
kkomut Momut M
RETURNRETURN
kkomut Komut K
alt_progalt_prog k komut Nomut N
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 18
Alt_programın işletilmesi sona erdiğinde ana Alt_programın işletilmesi sona erdiğinde ana
programda sıçramanın yapıldığı komut (CALL)programda sıçramanın yapıldığı komut (CALL)
sonrasına geri dönülür.sonrasına geri dönülür.
KOMUTLAR (dallanma)KOMUTLAR (dallanma)
RETURN : Alt programın işletilmesi sona erdiğinde CALL komutunun olduğu satır sonrasına geri dönmeyi mümkün kılar.
Dolayısıyla CALL komutu ile kullanılır.
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 19
RETLW: Alt_programın işletilmesi sona erdiğinde yineRETLW: Alt_programın işletilmesi sona erdiğinde yineana programda sıçramanın yapıldığı komut (CALL)ana programda sıçramanın yapıldığı komut (CALL)
sonrasına geri dönülür. Ancak bu işlem yapılırken istenilensonrasına geri dönülür. Ancak bu işlem yapılırken istenilen
bir sabit değer W akümülatörü vasıtasıyla ana programabir sabit değer W akümülatörü vasıtasıyla ana programa
geri taşınır.geri taşınır.
KOMUTLAR (dallanma)KOMUTLAR (dallanma)
RETLW k : k sabit değeri W akümülatörüne aktarılarak ana programa geri taşınır.
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 20
RETFIE: Interrupt alt_programı sona erdirilerek anaRETFIE: Interrupt alt_programı sona erdirilerek anaprograma geri dönülür. programa geri dönülür.
KOMUTLAR (dallanma)KOMUTLAR (dallanma)
RETFIE : Interrupt programını sona erdirip, ana programa kalınan yerden devam edilir.
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 21
PIC16F84 PIC16F84 işlemcisi ile sonsuz döngü işlemcisi ile sonsuz döngü
oluşturalımoluşturalım::
DONGUDONGU
GOTO GOTO DONGUDONGU
PROGRAM PROGRAM 77
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 22
Program 6 ve Program 7’ yi birleştirelimProgram 6 ve Program 7’ yi birleştirelim:: PIC16F84 PIC16F84
işlemcisinin A portundan okunan bilgiyi B portuna gönderelim işlemcisinin A portundan okunan bilgiyi B portuna gönderelim
ve program sonunda işlemcinin duraklatma komutu olmadığı ve program sonunda işlemcinin duraklatma komutu olmadığı
için için bu bu işlevi yerine getirecek bir sonsuz döngü ekleyelim.işlevi yerine getirecek bir sonsuz döngü ekleyelim.
PROGRAM 8PROGRAM 8
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 23
CLRF CLRF PORTBPORTB
BSFBSF STATUSSTATUS, 5, 5
CLRFCLRF TRISBTRISB
MOVLWMOVLW b’b’1111111111111111’’
MOVWFMOVWF TRISATRISA
BCFBCF STATUS, 5STATUS, 5
MOVFMOVF PORTA, WPORTA, W
MOVWF MOVWF PORTBPORTB
DONGUDONGU
GOTO GOTO DONGUDONGU
ENDEND
PROGRAM 8PROGRAM 8
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 24
Bu program çalıştırıldığında A portundan Bu program çalıştırıldığında A portundan
okunan bilgiyi B portuna gönderilir. Ancak okunan bilgiyi B portuna gönderilir. Ancak
bu işlem yinelenmek istenirse işlemcinin bu işlem yinelenmek istenirse işlemcinin
resetlenmesi gerekir. resetlenmesi gerekir.
PekiPeki işlemcinin RESETLEMESİNE GEREK işlemcinin RESETLEMESİNE GEREK
KALMAKSIZIN aynı işlem nasıl yapılırKALMAKSIZIN aynı işlem nasıl yapılır? ?
PROGRAM PROGRAM 99
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 25
PROGRAM PROGRAM 99CLRF CLRF PORTBPORTB
BSFBSF STATUSSTATUS, 5, 5
CLRFCLRF TRISBTRISB
MOVLWMOVLW b’b’1111111111111111’’
MOVWFMOVWF TRISATRISA
BCFBCF STATUS, 5STATUS, 5
MOVFMOVF PORTA, WPORTA, W
MOVWF MOVWF PORTBPORTB
??????????????????
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
Ders 7, Slayt 26
Program 9 ile kullanılabilecek deneme devresi, Mikrodenetleyiciler ve PIC Prog., sayfa 77
DERSDERS 7 7 Mİ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