MİCROİŞLEMCİ MİKRODENETLEYİCi VE ÇEŞİTLERİ

Mikrodenetleyiciler Elektronik Mühendisliği


 Mikroişlemciler

Bilgisayar programlarının yapmak istediği tüm işlemleri yerine getirir. Başka bir ifadeyle CPU (Central Processing Unit-Merkezi İşlem Birimi) olarak adlandırılır.

Bir mikroişlemci işlevlerini yerine getirebilmek için yardımcı elemanlara ihtiyaç duyar. Bunlar:

1. Input (Giriş) Ünitesi

2. Output (Çıkış) Ünitesi

3. Memory (Bellek) Ünitesi

Bu üniteler CPU çipinin dışında, sistemin farklı yerlerindedir. Aralarındaki iletişim için veri yolu ve adres yolları denilen iletim hatları kullanılır.

Mikrodenetleyici

Mikroişlemcilerden farklı olarak, giriş-çıkış-bellek ünitelerini tek bir çipte barındıran yapıya mikrodenetleyici (Microcontroller) denir. Mikrodenetleyici ler mikroişlemcilere göre daha basit ve ucuzdur. Mikrodenetleyici kullanarak oluşturacağınız bir sistemde giriş-çıkış-bellek ünitelerine ve bu üniteler arasındaki iletişim için veri yollarına ihtiyaç duyulmayacağından daha basit ve daha ucuz bir yapı oluşturmak mümkündür.

Programlama İçin Gereken İhtiyaçlar

Bir mikrodenetleyiciyi programlamak için olması gerekenler:

1. Kişisel bir bilgisayar

2. Seçilen mikrodenetleyiciye uygun programlama kartı

3. Komut satırlarının yazılacağı editör

4. Mikrodenetleyici programlama yazılımı

5. Yazılan programın makine diline çeviren derleyici

6. Simülasyon yazılımı

Mikrodenetleyici Çeşitleri

Temelde mikroişlemci mimarisi iki çeşittir. Bunlar RISC (ReducedInstruction Set Computer: Azaltılmış komut seti) tabanlı işlemciler ve CISC (ComplexInstruction Set Computer: Karmaşık komut seti) tabanlı işlemcilerdir. Mikrodenetleyicilerde aynı şekilde RISC ve CISC mimarisine göre türleri vardır. Yaygın olarak kullanılan mikrodenetleyiciler mimari açıdan bu iki işlemci sınıfından birine aittir.

Üretici firma bakımından ise bilinen çok sayıda mikrodenetleyiciler vardır. Bunlar:

1. Microchip firmasının PIC mikrodenetleyicileri (RISC),

2. Intel firmasının MCS51 (8051) mikrodenetleyicileri (CISC),

3. Atmel firmasını AVR mikrodenetleyicileri (RISC),

4. Motorola FreeScale mikrodenetleyicileri

ve daha birçok firmanın burada sayamayacağımız kadar çok çeşitleri olan denetleyicileridir.

Mikrodenetleyici Bellek Çeşitleri

Mikrodenetleyicilerin farklı özellikte program bellekleri bulunur. Bunlar:

1. EPROM (ErasablePROgrammable Memory – Silinebilir ve programlanabilir bellek)

2. EEPROM (ElectricallyErasablePROgrammable Memory – Elektriksel olarak silinebilir ve programlanabilir bellek)

3. ROM (Read Only Memory – Sadece okunabilir bellek)

Her bellek tipinin; hız, fiyat, defalarca kullanmaya yatkınlık gibi faktörler açısından kullanılacağı uygulamaya yönelik avantajları ve dezavantajları vardır.

EPROM

EPROM bellek hücrelerine mikrodenetleyici programlayıcı vasıtasıyla elektriksel sinyal uygulayarak kayıt yapılır ve üzerindeki enerji kesilse bile bellek içindeki veri kalıcıdır.

EPROM belleği, üzerindeki program silinip başka bir program yazılacağı zaman EPROM silici denilen özel aygıtlar vasıtasıyla ultraviyole ışını altında bir süre tutmak gerekir.

EEPROM

EEPROM bellek hücrelerine mikrodenetleyici programlayıcı vasıtasıyla elektriksel sinyal uygulayarak kayıt yapılır ve üzerindeki enerji kesilse bile bellek içindeki veri kalıcıdır.

EEPROM belleğe, üzerindeki program silinip başka bir program yazılacağı zaman mikrodenetleyici programlayıcısı tarafından elektriksel sinyal gönderilerek silme veya programlama işlemi gerçekleştirilir.

Bu tip belleğe sahip mikrodenetleyiciler EPROM belleğe sahip olanlara göre daha pahalıdır.

ROM

ROM belleğe sahip mikrodenetleyicilerin programları üretildikleri fabrikada bir defaya mahsus olarak yazılır. Bu yüzden program geliştirmeye uygun bellek tipi değildir.

Fiyatları diğer bellek tiplerine göre çok düşüktür.

Komutların Yazılış Biçimi

Her mikrodenetleyici için kendine has derleyiciler bulunmaktadır. Derleyicilerin de kendine has özellik ve yazım kuralları vardır.

PIC mikro denetleyici için en yaygın derleyici olan MPASM derleyicisi aşağıdaki yazım kurallarını getirmiştir:

1. Satır başına ; (noktalı virgül) konulduğunda o satır yorum satırı olarak değerlendirilir ve programa herhangi bir etkisi yoktur.

2. Genellikle derleyiciler program komutlarının belli bir düzen içerisinde TAB denilen sütunlar hâlinde yazılım koşulunu getirse de MPASM derleyicisi bu şartı aramamaktadır.

3. MPASM derleyicisi için sabit verilerin atandığı bazı sembolik isimlere etiket denir. Etiketlerde şu kurallara uyulmalıdır:

  •  Etiketler 1. kolondan itibaren yazılır.
  •  Etiketler bir harf ya da _ (altçizgi) ile başlamalıdır.
  •  Etiketlerde Türkçe karakter kullanılamaz
  •  Bir komut ismi olmamalıdır
  •  En fazla 31 karakter uzunluğunda olabilir
  •  Büyük/küçük harf duyarlılığı vardır
Mikrodenetleyici Yapısı
Besleme Gerilimi
PIC mikrodenetleyicisi besleme devresi için özel bir devreye gereksinim duymamaktadır. Besleme gerilimi 2 ila 6 V DC arasında değişmekle birlikte diğer dijital devrelerle birlikte daha rahat kullanılabilmesi için 5V DC uygun bir değerdir.

Clock Düzeni ve Osilatör Çeşitleri
PIC16F84 Mikrodenetleyicisi farklı osilatör tipleri ile çalışabilmektedir. Bu osilatör tipleri şunlardır:
  •  LP LowPowerCrystal (Düşük Güçlü Kristal Osilatör)
  •  XT Crystal/Resonator (Kristal, Seramik Rezonatör)
  •  HS High SpeedCrystal/Resonator (Yüksek Hızlı Kristal, Rezonatör)
  •  RC Resistor/Capacitor (Direnç, Kondansatör)
RC osilatör zamanlamanın hassas olmadığı durumlarda maliyeti düşürmek için tercih edilebilir. Ayrıca ortam ısısı nem vs. gibi çevresel etkilere duyarlıdır. Yüksek değerli direnç kullanılması önerilmez. Bu durumda dış etkilere duyarlılığı artacaktır. Direnç değerinin 3 KΩ ile 100 KΩ arasında bir değerde olması önerilir. Aynı şekilde kondansatörde 20 pF değerinin üzerinde olmalıdır.

Reset Uçları ve Reset Devresi
PIC mikrodenetleyicisi besleme gerilimi aldığı anda programın başlangıç adresinden itibaren çalışması için dâhili Power on Reset devresi bulunmaktadır. Ancak bazen kasıtlı olarak programın çalışmasını başlangıç durumuna almak gerekebilir. Bu durumda Reset uçları kullanılmaktadır.

Komut Akışı
Bir komut çevrimi, dört Q çevrimini (Q1, Q2, Q3 ve Q4) içerir. Komut alınması bir komut çevrimi ve komut kodu çözümü ve komutun icra edilmesi de diğer bir komut çevrimi alacak şekilde, komut alınması ve icra edilmesi pipeline (boru hattına) yerleştirilir. Boru hattı sayesinde, her komut tek bir çevrimde etkili bir şekilde icra edilmektedir. Bir komut, program sayıcının(PC) değişmesine sebep olursa(GOTO), bu komut için iki çevrim gerekecektir. Komut alınma çevrimi, program sayıcının (PC) Q1’de arttırılması ile başlar. Komut icra çevriminde, alınan komut, komut kütüğünde Q1 esnasında tutulur. Q2, Q3 ve Q4 fazları sürecinde ise, bu komutun kodu çözülür ve icra edilir. Veri hafızası Q2 fazında okunur ve Q4 fazında yazılır.

Yazmaçlar
PIC 16F84 mikrodenetleyicisindeyazmaçlar RAM bellek içerisinde yer almaktadır. Şekilde hafızanın yerleşim düzeni verilmiştir. Burada 0x0C adresinden itibaren 0x4F adresine kadar olan kısım genel amaçlı hafızadır ve kullanıcıya ayrılmıştır. Aynı şekilde 0x8C adresinden 0xCF adresine kadar olan kısımda kullanıcı içindir. Ancak bu iki hafıza bölümü farklı banklarda yer almasına rağmen aslında birbirinin aynı verileri taşımaktadır. Bu yazmaç haricinde PIC 16F84 veri hafızası içinde yer almayan W yazmacı ve PC yazmaçları bulunmaktadır. W yazmacı akümülatör görevi üstlenir.

Durum Yazmaçları:
IRP RP1 RP0 TO PD Z DC C
  •  bit 0 – C (CarryFlag): Toplama çıkarma ve kaydırma işlemleri esnasında bir taşma meydana gelirse bu bit etkilenir. Taşma gerçekleştiği durumda Lojik 1 olur. Taşma yoksa Lojik 0 olur.
  •  bit 1 – DC (DigitCarryFlag):Toplama çıkarma ve kaydırma işlemleri esnasında üçüncü bitten dördüncü bite bir taşma meydana gelirse bu bit etkilenir. Taşma gerçekleştiği durumda Lojik 1 olur. Taşma yoksa Lojik 0 olur.
  •  bit 2 – Z (Zero Flag):Aritmetik veya lojik bir operasyonun sonucu 0 oluyorsa bu bit etkilenir ve Lojik 1 olur.
  •  bit 3 – PD (PowerDownFlag): Enerji kesinti bitidir. Bu bit mikrodenetleyici ilk çalıştığında ve CLRWDT komutu il Lojik 1 olur. Sleep komutu çalışınca Lojik 0 olur.
  •  bit 4 – TO (Time OutFlag): Watchdog taşma bitidir. PIC’e enerji verilince ve CLRWDT, SLEEP komutları ile Lojik 1 olur. WatchdogTimer saymayı tamamlayınca Lojik 0 olur.
  •  bit 6:5 – RP1:RP0 (Register Bank Select Bits):Yazmaç Bank Seçim Biti: Bu bitler değiştirilerek hafıza alanındaki banklara erişim mümkün olmaktadır. RP1 PIC 16F84’te kullanılmamaktadır. Daha yüksek hafızaya sahip üst modellerde kullanılabilmektedir. Bank seçim için aşağıdaki gibi ayarlanır.
0:0 Bank 0 ( 00H – FFH )
0:1 Bank 1 ( 80H – FFH )
  •  bit 7 – IRP (Register Bank Select Bits):Dahili hafızada dolaylı adresleme için kullanılmaktadır. Lojik 0 olursa bank 0 ve 1 kullanılır. Lojik 1 olursa bank 2 ve 3 kullanılır. PIC16F84 denetleyicisinde 0 olmalıdır.
 Seçenek Yazmaçları:
RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0

  •  bit 2:0 – PS2,PS1,PS0 (Prescalar Rate Select Bit):Zamanlayıcı için kullanılan sinyal kaynağının frekansını bölmek içindir. Frekansın kaça bölüneceği bu bitler ile ayarlanır.
  •  bit 3 – PSA (PrescalarAssignment Bit):Frekans bölücü ayırma bitidir. Bu bit Lojik 0 ise frekans bölme işlemi TMR0 için geçerlidir Lojik 1 ise WDT için geçerlidir.
  •  bit 4 – TOSE (TMR0 Source Edge Select Bit):TMR0 için sinyal kaynağı kenar seçme bitidir. Eğer Lojik 0 yapılırsa RA4/TOCKI ucundan düşen kenar tetiklemeli olur. Lojik 1 ise yükselen kenar tetiklemeli olur.
  • 16
  •  bit 5 – TOCS (TMR0 Clock Source Select Bit):TMR0 için sinyal kaynağı seçme bitidir. Lojik 0 ise ¼ osilatör frekansı seçilir. Lojik 1 ise harici dijital sinyal (RA4/TOCKI) seçilir.
  •  bit 6 – INTEDG (InterruptEdge Select Bit):Harici kesme aktif ise (RB0/INT) sinyalin hangi kenarında tetikleneceği belirlenir. Lojik 0 düşen kenarda Lojik 1 yükselen kenarda tetiklemek içindir.
  •  bit 7 – RBPU (PORTB Pull-UpEnable Bit):PORTB dahili Pull-Up dirençlerini kontrol eder. Lojik 0 ise devre dışıdır. Lojik 1 ise devrededir.
Program Belleği
Program belleği EEPROM tabanlı ve 1K x 14 bir hafıza organizasyonuna sahiptir. Yani 14 bit uzunluğunda 1024 adet hücre içerir. Programın çalışması esnasında bu bölümdeki verilere müdahale edilemez.

Veri Belleği
Veri belleği 80 adet bank 1’de ve 80 adet bank 2’de olmak üzere 160 adet gibi görünse de aslında bazı özel amaçlı yazmaçlar dışında bank 1 ve bank 2’deki bilgiler birbirinin kopyasıdır. Genellikle 0x0C ile 0x04 adresleri arasındaki bölüm programlar tarafından genel amaçlı veri hafızası olarak kullanılır.

I/O Portları
PIC 16F84 denetleyicisi PORTA ve PORTB olmak üzere iki porta sahiptir. Ancak bu portların bazı uçları denetleyicinin diğer özellikleri için kullanılabilmektedir.
  •  PORTA ve TRISA: PORTA 5 bit uzunluğundadır. TRISA yazmacının herhangi bir biti 1 yapılırsa PORTA’nın aynı değerli ucu giriş ucu olarak kullanılır. Aynı şekilde TRISA yazmacının herhangi biti 0 yapılırsa bu sefer PORTA’nın aynı değerli ucu çıkış olacaktır. RA4 portu aynı zamanda TIMER(Zamanlayıcı) için kullanılmaktadır.
  •  PORTB ve TRISB: PORTB 8 bit uzunluğunda bir porttur. Giriş ya da çıkış olarak ayarlanması TRISB ile yapılmaktadır. PORTB’nin 4 hattında (RB4:RB7 arası) değişim olduğunda interrupt oluşturma yeteneği vardır. Aynı zamanda RB0/INT ucu external interrupt için kullanılabilmektedir.
KAYNAK: MİLLİ EĞİTİM ANKARA YAYINLARI