• Sonuç bulunamadı

MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR

N/A
N/A
Protected

Academic year: 2022

Share "MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR"

Copied!
7
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)
(2)

SAYFA 1

Örnek Program -1- B Portuna bağlı LED’leri Yakma

Bu programda PIC16F84 mikrodenetleyicisinin B portuna bağlı 8 adet LED’in yanması sağlanacaktır. Bunu için programda önce B portunun bütün bitleri çıkış olarak tanımlanmalıdır.

Bu da TRISB kaydedicisinin bütün bitleri “0” yapılarak gerçekleştirilir. Bu işlemden sonra B portunun tüm bitlerine “1” gönderilerek LED’lerin yanması sağlanır.

B portunun çıkış olarak tanımlanması için kullanılan TRISB kaydedicisinin dosta kaydedicileri alanındaki BANK1 kısmında olduğu unutulmamalıdır. Bu sebeple TRISB kullanılmadan önce BANK1’e geçilmelidir. Bunun sağlanabilmesi için ise STATUS kaydedicisindeki RP0 biti “1”

yapılmalıdır. Sonrasında PORTB kaydedicisi kullanılacaktır. PORTB kaydedicisi de BANK0 da olduğundan RP0 biti “0” yapılarak BANK0’a geçilir.

Devrede 4Mhz kristal kullanılacaktır. Bu sebeple konfigürasyon bitleri tanımlaması _XT_OSC olmalıdır. Diğer konfigürasyon bitleri Kod koruma kapalı, WDT (watchdog timer) kapalı be başlangıç zamanlayıcısı açık olarak seçilmiştir.

1.1 Devre Şeması

1.2 Program Kodu

OSC1/CLKIN 16

RB0/INT 6 RB1 7 RB2 8 RB3 9 RB4 10 RB5 11 RB6 12 RB7 13 RA0 17 RA1 18 RA2 1 RA3 2 RA4/T0CKI 3 OSC2/CLKOUT

15

4 MCLR

U1

PIC16F84A

1 2

X1

CRYSTAL 10k

22p 22p

270R

(3)

Örnek Program -2- B Portuna bağlı LED’leri Yakıp Söndürme

Bu programda Örnek Program-1- ‘deki devre kullanılacaktır. LED’leri yakmak için PORTB’nin tüm bitlerine “1”, söndürmek için ise “0” gönderilmelidir. Ancak mikrodenetleyicinin çalışma hızında bu işlem yapılırsa LED’lerin yanıp söndüğü görülemeyecektir. Çünkü bu kadar hızlı değişen olaylara insan gözü tepki verememektedir. Bu durumun düzeltilmesi için LED’lerin her yanmasından ve sönmesinden sonra bir süre beklemek gerekmektedir. Bunu sağlamak için programda zaman gecikmesi sağlayan bir altprogram kullanılmıştır.

2.1 Program Kodu

(4)

SAYFA 3

Örnek Program -3- B Portuna bağlı LED’leri Sağdan Sola ve Soldan Sağa Kaydırma

Bu programda da Örnek Program-1- ‘deki devre kullanılacaktır. Bu programda aynı anda sadece bir adet LED yanacak ve belirli zaman aralıklarıyla yanan LED değiştirilecektir. Örneğin ilk LED’in yanması için RB0 ucuna lojik 1 gönderilmelidir. Bunun için PORTB kaydedicisine “ooooooo1” verisi yazılır. Sonrasında ya ikinci LED’in yanması için “00000010” gönderilir ve bu işlem sonrasında benzer şekilde devam eder ya da aynı işlem döndürme emirleri ile yapılabilir.

Bu programda döndürme emirleri kullanılacaktır. Önce PORTB’ye “ooooooo1” verisi yazılacak ve sola doğru döndürülmeye başlanacaktır. Son LED’e gelindiğinde yani veri “10000000” olduğunda ise bu sefer veri sağa döndürülecektir. Benzer şekilde veri “00000001” olunca tekrar sola döndürme işlemi başlayacaktır.

Bu durumda ilk LED’e ve son LED’e gelindiği kontrol edilmelidir. Bunun için sola doğru gidilirken her döndürme işlemi sonrasında RB7’nin “1” olup olmadığı kontrol edilecek, 1 ise sağa döndürme işlemine geçilecektir. Benzer şekilde, sağa doğru gidilirken her döndürme işlemi sonrasında RB0’ın

“1” olup olmadığı kontrol edilecek, 1 ise sola döndürme işlemine geçilecektir.

3.1 Devre Şeması

3.2 Program Kodu

OSC1/CLKIN 16

RB0/INT 6 RB1 7 RB2 8 RB3 9 RB4 10 RB5 11 RB6 12 RB7 13 RA0 17 RA1 18 RA2 1 RA3 2 RA4/T0CKI 3 OSC2/CLKOUT

15

4 MCLR

U1

PIC16F84A

1 2

X1

CRYSTAL 10k

22p 22p

270R

(5)
(6)

SAYFA 5

Örnek Program -4- Buton Kontrolü

Bu programda RA0 ucuna bağlı butona basıldığında B Portuna bağlı LED’leri yanması bırakıldığında ise sönmesi sağlanacaktır. Bu şekilde benzer buton uygulamaları yapılabilir.

Burada B Portuna LED’lerin bağlanacağı için çıkış, RA0 ucunun ise buton bağlanacağı için giriş olarak tanımlanması gerektiği unutulmamalıdır.

Program yazılırken butonun donanımsal bağlantısına da dikkat edilmelidir. Buradaki devrede butona basılmamışsa RA0 ucuna lojik 1, basılmışsa lojik 0 gitmektedir. Buna göre önce butona basıldığının anlaşılması için buton testi sıfır mı? Basıldıktan sonra bırakıldığının anlaşılması için bir mi? Şeklinde yapılmıştır.

4.1 Devre Şeması

OSC1/CLKIN 16

RB0/INT 6 RB1 7 RB2 8 RB3 9 RB4 10 RB5 11 RB6 12 RB7 13 RA0 17 RA1 18 RA2 1 RA3 2 RA4/T0CKI 3 OSC2/CLKOUT

15

4 MCLR

U1

PIC16F84A

1 2

X1

CRYSTAL 10k

22p 22p

270R 10k

(7)

4.2 Program Kodu

Referanslar

Benzer Belgeler

denendiği araştırmada, yeni geliştirilen filtrelerin kullanıldığı araçların içindeki çok küçük parçacık miktarının standart filtrelerin kullanıldığı araçlara

Polarize ışık düzlemini sağa veya sola çeviren maddelere optikçe aktif maddeler denir.. Bunlardan polarize ışık düzlemini sağa çevirenlere

Dıştan gelen bilgi kaynaklarının başı görmedir ve hareketlerimizi kontrol etmede görme önemlidir .Örn; karşıdan gelen topu yada top atacağınız uygun

AÇIK LOOP (DEVRE) KONTROL SİSTEMİNİN BASİT BİÇİMDE GÖSTERİMİ (SCHMİDT 1988).. GİRDİ

Tüketiciye aktarılan verginin yüzdesi Es/(Es-Ed). Burada, tren-yol bağlantısının talebinin esnekliği çok yüksek çünkü feribotların varlığı yakın ikamedir. Eğer ulaşım

Ich habe eine Tat unternommen, die nach dem Gesetzbuch schwer bestraft werden kann.. Eine Krankheit, die nicht geheilt werden kann, ist eine

Asistanda Onayla öğesine dokunun Alet seçin diyaloğu görüntülenir Kumlama keskisi öğesine dokunun Asistanda Onayla öğesine dokunun Parametreler alet tablosuna devralınır

aldım kutuların her birinde 9 tane lokum olduğuna göre toplam ne kadar lokum almışımdır?. Kırtasiyeden 4 düzüne kalem aldığıma göre ne kadar kalem