27
DERS 7 DERS 7 PIC 16F84 PIC 16F84 PROGRAMLAMA PROGRAMLAMA

DERS 7 PIC 16F84 PROGRAMLAMA

  • Upload
    lan

  • View
    166

  • Download
    0

Embed Size (px)

DESCRIPTION

DERS 7 PIC 16F84 PROGRAMLAMA. İÇERİK. PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü. PROGRAM 1. RAM bellekte 0x0C ve 0x0D hücrelerinde tutulan iki 8-bit sayının toplamını hesaplayıp sonucu 0x0E hücresine kaydeden PIC16F84 işlemcisi assembler programını hazırlayalım : - PowerPoint PPT Presentation

Citation preview

Page 1: DERS 7 PIC 16F84  PROGRAMLAMA

DERS 7DERS 7

PIC 16F84PIC 16F84 PROGRAMLAMA PROGRAMLAMA

Page 2: DERS 7 PIC 16F84  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ü

Page 3: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 4: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 5: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 6: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 7: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 8: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 9: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 10: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 11: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 12: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 13: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 14: DERS 7 PIC 16F84  PROGRAMLAMA

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.

Page 15: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 16: DERS 7 PIC 16F84  PROGRAMLAMA

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.

Page 17: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 18: DERS 7 PIC 16F84  PROGRAMLAMA

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.

Page 19: DERS 7 PIC 16F84  PROGRAMLAMA

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.

Page 20: DERS 7 PIC 16F84  PROGRAMLAMA

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.

Page 21: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 22: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 23: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 24: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 25: DERS 7 PIC 16F84  PROGRAMLAMA

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

??????????????????

Page 26: DERS 7 PIC 16F84  PROGRAMLAMA

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

Page 27: DERS 7 PIC 16F84  PROGRAMLAMA

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