• Sonuç bulunamadı

MİKRODENETLEYİCİLER DERSİ ÇALIŞMA NOTLARI

N/A
N/A
Protected

Academic year: 2022

Share "MİKRODENETLEYİCİLER DERSİ ÇALIŞMA NOTLARI"

Copied!
8
0
0

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

Tam metin

(1)

1

MİKRODENETLEYİCİLER DERSİ ÇALIŞMA NOTLARI

Mikro işlemcileri Birbirinden Ayıran Özellikler

Kelime Uzunluğu

Mikro işlemcinin her saat darbesinde işlem yapabileceği bit sayısına kelime uzunluğu denir. Intel 8086 işlemcisinin kelime uzunluğu 16-bit olduğu için 16-bitlik mikro işlemci denir.

Komut İşleme Hızı

Bir mikro işlemcinin hızını artıran temel unsurlar şöyle sıralanabilir:

CPU tasarım teknolojisi

Kelime uzunluğu

İşlemci komut kümesi çeşidi

Zamanlama ve kontrol düzeni

Kesme altyordamlarının çeşitleri

Bilgisayar belleğine ve giriş/çıkış aygıtlarına erişim hızı

Farklı Adresleme Modları

Adresleme modlarını meydana getiren bazı adresleme türleri aşağıda sıralanmıştır.

Doğrudan adresleme

Dolaylı adresleme

Veri tanımlı adresleme

Kaydedici adresleme

Mutlak adresleme

Göreceli adresleme

İndisli adresleme

Akümülatör ve imalı adresleme

Kaydediciler

Kaydediciler, daha önce de bahsedildiği gibi genel ve özel amaçlı olmak üzere iki gruba ayrılır. Bunlardan başka programcıya gözükmeyen (ilgilendirmeyen) kaydediciler de vardır (IR, DAR, MAR ve MBR gibi). Genel amaçlılara 6502 işlemcisinde akümülatör, X indis ve Y indis kaydedicisi girmektedir. Özel amaçlılar ise PC, SP, bayraklar, DR gibi kaydediciler girmektedir.

Akümülatör

Akümülatörler (ACC ya da A olarak da tanımlanabilir), bilgisayarın aritmetik ve mantık işlemleri sırasında depo görevi yapan önemli bir kaydedicidir

İndis Kaydedicileri

X ve Y olarak tanımlanan indis kaydedicilerinin temelde üç görevi vardır. Hesaplamlarda ara değerlerin geçici tutulmasında, program döngülerinde ve zamanlama uygulamalarında bir sayıcı olarak ve bellekte depolanmış bir dizi verinin üzerinde bir indisçi olarak kullanılmaktadır.

Durum Kaydedicisi (Bayraklar)

(2)

2

Durum kaydedicisi 8-bitlik bir kaydedicidir. Bu kaydedicinin her bir biti ayrı ayrı anlam ifade eder. Mikro işlemci içinde veya dışardan yapılan herhangi aritmetiksel, mantıksal veya kesmelerle ilgili işlemlerin sonucuna göre bu bitler değer değiştirir. Bir işlem sonucunda bu bitlerin aldığı değere göre program yön bulur. Programcı bu bitlerde oluşacak değerlere göre programa yön verebilir.

Aritmetik ve Mantık Birimi (ALU)

Bu ünite kaydediciler üzerinde toplama, çıkarma, karşılaştırma, kaydırma ve döndürme işlemleri yapar. Yapılan işlemin sonucu kaydediciler üzerinde saklanır.

ALU’nun yapabildiği işlemler iki grupta toplanır.

Aritmetiksel işlemler:

ALU’da yapılan aritmetiksel işlemler mikro işlemcinin yapısına göre çeşitlilik gösterebilir. 8-bitlik mimariye sahip bir mikro işlemcide toplama, çıkarma, çarpma, bölme işlemleri ve ondalıklı sayılarla matematiksel işlemler yapılabilmektedir.

Mantıksal işlemler

Mantıksal çarpma VE işlemi Mantıksal toplama VEYA işlemi Özel VEYA, XOR işlemi Değil, NOT işlemi

Karşılaştırma (=, =<, =>, <> gibi) ve kaydırma gibi işlemler bu ünitede yapılır.

Bellek

RAM Bellekler: Mikro işlemcinin çalışması esnasında her türlü değişkenin üzerinde yer aldığı ve geçici işlemlerin yapıldığı birimi RAM belleklerdir.

ROM Bellekler: Yalnız okunabilen birimlere ROM (Read Only Memory) bellekler denir. Bu bellek elemanlarının en büyük özelliği enerjisi kesildiğinde içindeki bilgilerin silinmemesidir.

Programlanabilir ROM Bellek (PROM): PROM’lar bir kez programlanabilir. Bu bellek elemanı entegre şeklindedir. Kaydedilen bilgiler enerji kesildiğinde silinmez.

Silinebilir Programlanabilir ROM Bellek (EPROM): “EPROM”lar bellek hücrelerine elektrik sinyali uygulanarak programlama işlemi yapılır. Kaydedilen bilgiler enerji kesildiğinde silinmez.

Elektriksel Yolla Değiştirilebilir ROM Bellek (EEPROM): Üzerindeki bilgiler, elektriksel olarak yazılabilen ve silinebilen bellek elemanlarıdır. “EEPROM”u besleyen enerji kesildiğinde üzerindeki bilgiler kaybolmaz.

Microkontroller (Mikrodenetleyiciler) nedir?

Mikro kontroller adından da anlaşılacağı üzere mikro kontroller, mikro düzeyde denetleyici olarak tabir edilen programlayarak kontrol edilebildiğimiz aslında dijital bir bilgisayardır.

Bir mikro denetleyici, komple bir bilgisayarın (Merkezi işlem birimi, hafıza ve giriş - çıkışlar) tek bir entegre devre üzerinde üretilmiş halidir. Kısıtlı miktarda olmakla birlikte yeterince hafıza birimlerine ve giriş – çıkış uçlarına sahip olmaları sayesinde tek başlarına çalışabildikleri gibi donanımı oluşturan diğer elektronik devrelerle irtibat kurabilir, uygulamanın gerektirdiği fonksiyonları gerçekleştirebilirler. Üzerinde analog-dijital çevirici gibi entegre devreler barındırmaları sayesinde algılayıcılardan her türlü verinin toplanması ve işlenmesinde

kullanılabilmektedirler. Ufak ve düşük maliyetli olmaları gömülü uygulamalarda tercih edilmelerini sağlamaktadır.

(3)

3

Günümüzde mikro işlemci ve mikro denetleyiciler üreten irili ufaklı pek çok firma bulunmaktadır. Bunlara örnek olarak INTEL, MOTOROLA, AMD, PHILIPS, SIEMENS, TEXAS INS. DALLAS, ATMEL, MICROCHIP, HITACHI, MITSUBISHI, SGSTHOMSON, ANALOG DEVICES, NATIONAL gibi firmalar sayılabilir

Mikrodenetleyicilerin Sağladığı Üstünlükler

Mikro işlemcili sistemin tasarımı ve kullanımı mikrodenetleyicili sisteme göre daha karmaşık ve masraflıdır.

Mikrodenetleyicili bir sistemin çalışması için elemanın kendisi ve bir osilatör kaynağının olması yeterlidir.

Mikrodenetleyicilerin küçük ve ucuz olması, bunların tüm elektronik kontrol devrelerinde kullanılmasını sağlamaktadır.

Bir mikrodenetleyicide bulunması gereken özellikler şunlardır:

Programlanabilir dijital paralel giriş/çıkış.

Programlanabilir analog giriş/çıkış.

Seri giriş/çıkış (senkron, asenkron ve cihaz denetimi).

Motor veya servo kontrol için pals sinyali çıkışı.

Harici giriş vasıtasıyla kesme.

Timer vasıtası ile kesme.

Harici bellek ara birimi.

Harici bus arabirimi(PC ISA gibi).

Dâhili bellek tipi (ROM, EPROM, EEPROM).

Dâhili RAM seçeneği.

Kayan nokta hesaplaması.

Bir mikro denetleyicide bir komutun işlenme süreci 4 aşamada gerçekleştirilir.

1.Alma (Fetch)

Hafızaya yüklenmiş olan program komutlarını alır.

2.Kod Çözme (Decode)

Yazmaçtaki komutları kod çözücü(decoder) yardımıyla çözer.

3.Uygulama (Execution)

Çözülen komutları uygular ve bu işlemi sürekli tekrar eder.

4.İşlemi tamamlama (Comlete Process)

İşlemi tamamlama sürecidir. Bazı komutlarda işlem sonucunu W yada file register’a yazma süreci olarak düşünülmüştür, bazı komutlarda ise bu süreç içerisinde işlem yapılmaz.

Arduino Özellikleri

Arduino Uno Atmel Atmega 328P mikro denetleyicisine sahip bir borddur. USB bağlantı girişine, güç jak girişine, reset butonuna sahiptir. Bir mikro denetleyicide bulunması gereken her şeye sahiptir.

Mikrodenetleyici Atmega328P

Çalışma gerilimi 5V

Giriş gerilimi (önerilen) 7-12V

Giriş gerilimi (limit) 6-20V

Dijital giriş/çıkış pini 14 adet

PWM giriş/çıkış pini 6 adet

Analog giriş pini 6 adet

Giriş/çıkış pin başına dc akım 20mA

3.3V için DC akım 50mA

Flash bellek 32 KB

Sram 2KB

EEPROM 1 KB

(4)

4

Saat Hızı 16 MHz

Uzunluk 68.6 mm

Genişlik 53.4 mm

Ağırlık 25 g

Arduino Yazılımının Menüleri

1.Derleme: Yazdığımız programı derler hataları bulur.

2.Yükleme: Yazdığımız kodu derler, Arduino içine atar.

3.Yeni: Yeni çalışma sayfası açar.

4.Açma: Kayıtlı bir programı açar.

5.Kaydetme: Yazdığımız programı kaydeder.

6.Seri Monitör: Arduino ile seri iletişim yaparak ekran açar.

7.Sketch: Yazdığımız programın dosya ismi.

8.Boş alan: Yazacağımız program alanı.

9.Gösterge: Yaptığı işlemin ilerleme durumunu gösterir.

10.Rapor: Derleme sonucu yapılan hataların veya programımızın yükleme sonrası mikro denetleyicide kapladığı alanı gösterir.

11.Gösterge: Bilgisayarımıza usb ile bağladığımız Arduino’nun bağlandığı portu ve hangi Arduino modeli ile çalışıyorsak onu gösterir.

Arduino Programını Türkçe yapmak

-File / Preferences / Editor language / Türk (Turkish)

Arduino Programında ekran numaralarını aktif etme -File / Preferences den Display line numbers aktif edin.

Arduino Programında Arduino modelini değiştirme -Araçlar/ Kart / Çalıştığınız Arduino modeli seçin.

Arduino Programında port değiştirme -Araçlar / Port / çalıştığınız portu seçin.

Arduino Programında kütüphane ekleme

-Taslak / Include Library / eklemek istediğiniz kütüphaneyi seçiniz.

(5)

5

Led Yak Söndür Programı Karaşimşek Programı

Temel Arduino Fonksiyonları

Bu kısımda Arduino'da kullanacağımız foksiyonların belli başlı olanlarını göreceğiz.

Bir görevi yerine getirmesi için yazdığınız kodları başka bir yerde de kullanmanız gerekirse, o kod satırlarını kopyalayıp yeni kodların arasına yapıştırmanız gerekir. Bu yöntemle programınız gereksiz olarak uzar. Ayrıca kopyaladığınız satırlarda yapacağınız en küçük bir değişimi bile, programın ilgili yerlerinde tek tek değiştirmeniz gerekir. Bu sorunu çözmek için fonksiyonlar kullanılır. Gerekli görev için yazılacak tek bir fonksiyon, istenen yerlerde kolayca kullanılabilir. Kullanıcı kendi fonksiyonlarını

yazabileceği gibi, daha önce başkaları tarafından yazılmış fonksiyonları da kullanabilir.

Fonksiyonlar

Bir görevi yerine getirmesi için yazdığınız kodları başka bir yerde de kullanmanız gerekirse, o kod satırlarını kopyalayıp yeni kodların arasına yapıştırmanız gerekir. Bu yöntemle programınız gereksiz olarak uzar. Ayrıca kopyaladığınız satırlarda yapacağınız en küçük bir değişimi bile, programın ilgili yerlerinde tek tek değiştirmeniz gerekir. Bu sorunu çözmek için fonksiyonlar kullanılır. Gerekli görev için yazılacak tek bir fonksiyon, istenen yerlerde kolayca kullanılabilir. Kullanıcı kendi fonksiyonlarını

yazabileceği gibi, daha önce başkaları tarafından yazılmış fonksiyonları da kullanabilir.

Fonksiyon yazarken, fonksiyonda kullanılacak değişkenlerin alınmasına ve fonksiyonda yapılacak işlem sonucunun hangi türde olacağına dikkat edilmelidir. Fonksiyonun türü, işlem sonucunda döndürülecek değişken ile aynı tipte olmalıdır. Eğer fonksiyon, hiçbir değer döndürmeyecekse fonksiyon ‘void’ türünde tanımlanmalıdır.

Kütüphane Ekleme

Fonksiyon yazarken, fonksiyonda kullanılacak değişkenlerin alınmasına ve fonksiyonda yapılacak işlem sonucunun hangi türde olacağına dikkat edilmelidir. Fonksiyonun türü, işlem sonucunda döndürülecek değişken ile aynı tipte olmalıdır. Eğer fonksiyon, hiçbir değer döndürmeyecekse fonksiyon ‘void’ türünde tanımlanmalıdır.

Yeni bir kütüphane eklemek için kütüphane dosyalarını Arduino programını kurduğunuz dizinin altında bulunan ‘libraries’ klasörüne taşıyın. Eğer bu sırada Arduino programı açıksa, taşıma işlemi bittikten sonra, kapatıp yeniden açın. Dosyanın en başında kütüphaneyi projenize ekleyin. Bunun için aşağıdaki kodu kullanabilirsiniz.

1| #include <kutuphaneadi.h>

(6)

6

Setup ve Loop Fonksiyonları

Arduino projenizi ilk açtığınızda karşınıza iki fonksiyon çıkar. Bunlar setup ve loop fonksiyonlarıdır.

Setup fonksiyonu, kod çalışmaya başladığında Arduino’nun ilk olarak okuduğu yerdir. Arduino bu kısmı okuduktan sonra diğer kısımları okumaya başlar. Bu kısım sadece bir kere okunur ve program esnasında yeniden okunmaz. Bu alanda, pinlerin çalışma modları gibi önemli ve bir kere yapılması yeterli olacak ayarlamalar yapılır.

Loop fonksiyonu, setup fonksiyonu okunduktan sonra okunur. Bu bir ana fonksiyondur ve yapılmasını istediğiniz görevler buraya yazılır. Loop fonksiyonu, sonsuz döngü şeklindedir, yani buradaki görevler tamamlandığında, program tekrar başa dönerek işlemleri yeniden yapar. Bu döngü, Arduino çalıştığı sürece devam eder.

Arduino programlamadan önce kodlarınız ilk başta aşağıdaki gibi olmalıdır.

1 | void setup(){

2 | /*

3 | Burası sadece bir kere çalışır 4 | Genel ayarlar buradan yapılır 5 | */

6 | }

7 | void loop(){

8 | /*

9 | Bu fonksiyon sonsuza kadar çalışır

10| Arduino'nun yapması gereken işlemler buraya yazılır 11| */

12| }

(7)

7

Pin mode

Arduino kartı üzerinde bulunan pinleri çıkış veya giriş olarak tanımlayabilirsiniz. Giriş olarak tanımlanmış pinler düğme gibi elemanlar için kullanılırken, çıkış olarak tanımlanmış pinler ise LED gibi elemanlar için kullanılır. Programın en başında (Setup içerisinde), kullanılacak pinler ayarlanmalıdır. Bunun için

aşağıdaki kod kullanılır:

1| pinMode(13,OUTPUT);

Böylece 13. Pin çıkış olarak tanımlanır. Giriş olarak tanımlanması için OUTPUT yerine INPUT yazılması gerekir.

Digital Write

Çıkış olarak tanımlanmış pinlerden enerji vermek için veya enerji vermeyi durdurmak için kullanılır.

Örneğin:

1| digitalWrite(13,HIGH);

Böylece, daha önce çıkış olarak tanımlanmış 13 numaralı pinden enerji çıkışı sağlanır. Enerji çıkışı durdurulmak istenildiğinde HIGH yerine LOW yazılması yeterlidir.

Analog Write

Seçilen pinde PWM sinyalinin üretilmesini sağlar. PWM sinyalinin görev zamanı (Duty cycle) fonksiyona verilen değer ile belirlenir. Örneğin bu pine bağlanan bir LED ışığının parlaklığı verilen PWM sinyali ile ayarlanabilir.

1| analogWrite(LEDPin, 175);

Seçilen pinlerde PWM desteği bulunmasına dikkat edilmelidir.

Digital Read

Daha önce giriş olarak tanımlanmış bir pinin girişindeki gerilimin yüksek (5 volta yakın) veya düşük (0 volta yakın) olduğu anlaşılır. Örneğin daha önceden giriş olarak tanımlanmış 13 nolu pindeki durumu daha önceden tanımlanmış ‘durum’ değişkenine yazdıralım.

1| durum = digitalRead(13);

13 numaralı pindeki gerilim 5 volta yakın ise ‘durum’ değişkeni 1 (HIGH), 0 volta yakın ise 0 (LOW) olmuştur.

(8)

8

Analog Read

Bir önceki fonksiyon ile 13 numaralı pindeki gerilimin 5 veya 0 olmasını ölçtük. digitalRead fonksiyonu, 0 ve 5 volt arasındaki gerilimlerin tam değerini ölçemez. 0 ve 5 volt arasındaki gerilimin tam değerinin ölçülmesi için analogRead fonksiyonu kullanılmalıdır. Fakat bu fonksiyon, tüm pinler için kullanılamaz. Bu fonksiyonun kullanılabileceği özel pinler vardır. Bunlara analog pinler denir ve genellikle A harfi ile

başlarlar: A0, A1, A2… gibi. Kullanılan Arduino türüne göre bu pinlerin sayısı değişiklik gösterir.

Arduino Uno’da 6, Arduino Mega’da 16 tane analog giriş bulunur. Kullanılacak analog pin, öncelikle giriş olarak tanımlanmalıdır:

1| pinMode(A0,INPUT)

Örneğin A0’daki değeri ‘analogDeger’ değişkenine kaydedelim. A0’daki gerilim 10 bit olarak kaydedilecektir.

1| analogDeger = AnalogRead(A0);

Delay

İki kod arasında bir süre beklenmesi istenirse, delay fonksiyonu kullanılır. Örneğin yanıp sönen lamba uygulaması yapılmak istenirse, lamba yakıp söndürme kodları arasında bekleme amacıyla delay

fonksiyonu kullanılır. Delay fonksiyonunun içerisine yazılan değer milisaniye düzeyindedir. Bir saniyelik bir bekleme için fonksiyona 1000 değeri verilmelidir.

Örneğin yarım saniyelik bir bekleme fonksiyonu yazalım;

1| delay(500);

Referanslar

Benzer Belgeler

TE-TM Modları(Sırayla)(Mavi ile gösterilen çizgiler elektrik alan, kırmızı ile gösterilen çizgiler manyetik alan). Mikroşerit dalga kılavuzu ve elektrik alan...

Üçüncü alt problem; “İlköğretim okulu yöneticilerinin tanımlanmış görevleri için zaman kullanma biçemleri: (a)görev durumuna , (b)yöneticilik kıdemine

ÜÇGENDE YARDIMCI ELEMANLAR.. Üçgende

led profili Konya, ledli aydınlatma Konya, let aydınlatma Konya, let lambalar Konya, p10 led panel fiyatları Konya, p10 panel programı Konya, ucuz tabela Konya, yaz sil tabela

3 girişli VEYA kapısının lojik ifadesini yazınız ve aşağıdaki kapının doğruluk tablosu ile yukarıda bulmuş olduğunuz doğruluk tablolarını karşılaştırıp aynı

Tıbbi acil yardım veya özel tedavi ile ilgili bilgiler Doktor için açıklamalar / tedavi uyarıları.. En az 48 saat boyunca

Tıbbi acil yardım veya özel tedavi ile ilgili bilgiler Tamamlayıcı bilgi yok.. KISIM 5: Yangınla mücadele

Kritik aort stenozu ile doğan bebeklerde sol ventrikül çıkım yolu darlığı ve sol ventrikül disfonksiyonu nedeniyle oluşan düşük kardiyak debi, ağır metabolik asidoza