TBMYO • Bilgisayar Programcılığı

Mikrodenetleyiciler Vize Soruları

Detaylı Anlatım ve Çözüm

Bu belge, sınav kağıdındaki 10 sorunun her birini hiç bilmeyen birine anlatır gibi açıklar ve çözer. Ek olarak en sonda sınavdan farklı 1 tane örnek soru da anlatımlı şekilde çözülmüştür.

İçerik doğrudan HTML içine gömülmüştür.

1) Mikroişlemci ile Mikrodenetleyiciyi Karşılaştırın

Soru

Mikroişlemciler (Microprocessor) ile Mikrodenetleyicileri (Microcontroller) karşılaştırın.

Bu soruda senden istenen (tam puan mantığı)

Bu soruda iki kavramı sadece tanımlaman değil, başlık başlık karşılaştırman beklenir.

  1. Yapı: Tek CPU mu, yoksa CPU + RAM + I/O tek çipte mi?
  2. Dış bağımlılık: Harici RAM/ROM/I/O ihtiyacı var mı?
  3. Kullanım alanı: Genel amaçlı sistem mi, gömülü cihaz kontrolü mü?
  4. Maliyet ve güç: Hangi tarafta daha düşük maliyet ve tüketim var?

İpucu: En az 4 karşılaştırma başlığı ile cevap yazarsan genelde tam puana yaklaşırsın.

Konuyu hiç bilmeyen için anlatım

Kısa benzetme:

Sınav tarzı cevap

Özet

Aynı işi yapmazlar: mikroişlemci "genel amaçlı", mikrodenetleyici "belirli görev odaklı"dır.

2) Bir Mikrodenetleyici Hakkında Bilinmesi Gereken Genel Bilgiler

Soru

Bir mikrodenetleyici hakkında bilinmesi gereken genel bilgiler nelerdir?

Bu soruda senden istenen (tam puan mantığı)

Bu soru, bir mikrodenetleyiciyi teknik olarak tanıtabilmeni ölçer. "Nedir" yerine "hangi parametrelerle anlaşılır" cevabı beklenir.

  1. İşlem gücü: mimari, komut seti, hız.
  2. Bellek: program belleği, RAM, EEPROM kapasitesi.
  3. Pin ve çevre birimleri: I/O, timer, interrupt, haberleşme.
  4. Elektriksel sınırlar: besleme gerilimi, akım, frekans.
  5. Geliştirme ekosistemi: derleyici, programlayıcı, debug araçları.

Konuyu hiç bilmeyen için anlatım

Bir mikrodenetleyici tanımak için şu sorular sorulur:

Sınav tarzı cevap

Mikrodenetleyici seçimi ve kullanımı için genel olarak:

Özet

"Hangi işi, hangi sınırlarla yapar?" sorusunun cevabı mikrodenetleyiciyi tanımlar.

3) Mikrodenetleyici Programlamak İçin Nelere İhtiyaç Vardır?

Soru

Bir mikrodenetleyiciyi programlamak için nelere ihtiyaç vardır?

Bu soruda senden istenen (tam puan mantığı)

Bu soruda beklenen, süreci uçtan uca kurmandır: yazılım araçları + donanım + test akışı.

  1. Kodu yazacağın ortam (IDE/editör) ve derleyici.
  2. Kodu cihaza atacak programlayıcı donanım/yazılım.
  3. Hedef mikrodenetleyici ve besleme devresi.
  4. Çalışmayı doğrulayacak test devresi (LED, buton, breadboard).
  5. Temel iş akışı: yaz -> derle -> yükle -> test et -> düzelt.

Konuyu hiç bilmeyen için anlatım

Temel 5 parça gerekir:

  1. Kod yazma ortamı (editör/IDE)
  2. Derleyici/assembler
  3. Programlayıcı cihaz (PIC'e kod yazan donanım)
  4. Hedef mikrodenetleyici (ör. PIC16F84)
  5. Test devresi (breadboard, LED, dirençler, besleme)

Sınav tarzı cevap

Mikrodenetleyici programlamak için:

Özet

Kod yazmak yetmez; kodu cihaza yükleyip devrede test etmek de gerekir.

4) PIC16F84'te Kullanılan Bellek Tipleri

Soru

PIC16F84'te kullanılan bellek tipleri hakkında bilgi veriniz.

Bu soruda senden istenen (tam puan mantığı)

Bu soruda bellek isimlerini saymak tek başına yeterli değildir; her belleğin ne işe yaradığını da yazmalısın.

  1. Program belleği: Kodun tutulduğu alan (kalıcı).
  2. RAM: Çalışma anındaki geçici veriler (enerji kesilince silinir).
  3. EEPROM: Az miktar ama enerji kesilince de saklanan veriler.

Ek puan ipucu: "Hangi bellek ne zaman kullanılır" örneği verirsen cevap güçlenir.

Konuyu hiç bilmeyen için anlatım

PIC16F84 için temel bellek mantığı:

Sınav tarzı cevap

PIC16F84'te:

Özet

Kod -> Flash, anlık veri -> RAM, kalıcı küçük veri -> EEPROM.

5) PIC16F84 En Fazla Kaç Satırlık Program Yazılabilir?

Soru

PIC16F84'e en fazla kaç satırlık program yazılabilir?

Bu soruda senden istenen (tam puan mantığı)

Burada "satır" ifadesi pratikte program belleği kapasitesi anlamında soruluyor.

  1. Program adres aralığını bul: 0x000 - 0x3FF.
  2. Kaç adres ettiğini hesapla: 0x3FF = 1023.
  3. Adresler 0'dan başladığı için toplam: 1024 komut alanı.

Sonuç cümlesi: "PIC16F84 yaklaşık 1024 komutluk program alanına sahiptir."

Konuyu hiç bilmeyen için anlatım

Sınavdaki "satır" ifadesi pratikte "komut kapasitesi" anlamında sorulmuş olur.

PIC16F84'te program belleği 1K word'dür.

1K word = 1024 program adresi (0x000 - 0x3FF)

Sınav tarzı cevap

PIC16F84'te program belleği 1024 word olduğu için en fazla 1024 komutluk (adreslik) program yazılabilir.

Özet

Temel sınır: 1024 word program alanı.

6) PIC'lerde Sink Akımı ve Source Akımı

Soru

PIC'lerde Sink Akımı ve Source Akımı kavramını açıklayınız.

Bu soruda senden istenen (tam puan mantığı)

Bu soru tanım ezberi değil, akım yönünü doğru tarif etme sorusudur.

  1. Source: akım pin tarafından dış devreye verilir.
  2. Sink: akım dış devreden pine doğru çekilir.
  3. LED örneğiyle iki bağlantı şeklini ayır.
  4. Pin akım limitini aşmama uyarısını yaz.

Konuyu hiç bilmeyen için anlatım

LED örneği:

Sınav tarzı cevap

Source akımında PIC çıkış pini akımı yüke doğru sağlar.

Sink akımında yükten gelen akım PIC pininden GND yönüne çekilir.

Port pinlerinin source/sink akım sınırları aşılmamalıdır.

Özet

Akım yönü farklıdır; ikisinde de pin akım limitleri kritik önemdedir.

7) PIC16F84 Program Bellek ve RAM Bellek Nedir?

Soru

PIC16F84'te Program bellek ve RAM bellek nedir?

Bu soruda senden istenen (tam puan mantığı)

Bu soruda iki belleği "adıyla" değil, işlevi + kalıcılığı ile ayırman beklenir.

  1. Program bellek: komutları saklar, kalıcıdır.
  2. RAM: çalışma anı verisini saklar, geçicidir.
  3. Enerji kesilince hangisi korunur/hangisi silinir yaz.
  4. Bir örnek ver: kod program bellekte, sayaç RAM'de.

Konuyu hiç bilmeyen için anlatım

Örnek:

Sınav tarzı cevap

Program bellek, komutların depolandığı kalıcı alandır.

RAM bellek, çalışma sırasında değişen geçici verilerin tutulduğu alandır.

PIC16F84'te bu iki bellek ayrı yapıdadır.

Özet

Kod ve veri ayrı tutulur; bu yapı Harvard mimarisinin temelidir.

8) PIC16F84'teki "F" Harfi Neyi İfade Eder?

Soru

PIC16F84'teki "F" neyi ifade etmektedir?

Bu soruda senden istenen (tam puan mantığı)

Bu soru model kodunun içindeki harfin anlamını sorar. Yani burada amaç, adlandırma bilgisini yorumlayabilmendir.

  1. Model kodunu parçala: PIC 16 F 84.
  2. F harfinin bellek teknolojisine işaret ettiğini belirt.
  3. Sonuç cümlesini net yaz: F = Flash program belleği.

Konuyu hiç bilmeyen için anlatım

Microchip adlandırmasında harfler bellek teknolojisini anlatır.

"F" genellikle Flash program belleğini belirtir.

Sınav tarzı cevap

PIC16F84 adındaki "F", cihazın Flash program belleğine sahip olduğunu ifade eder.

Özet

"F" = Flash.

9) PIC16F84'te Clock Oscilatörü Neden Kullanılır? Çeşitlerinden 2 Tane Yazınız

Soru

PIC16F84'te kullanılan clock osilatörü niçin kullanılır, çeşitlerinden 2 tanesini yazınız.

Bu soruda senden istenen (tam puan mantığı)

Bu soru iki parçalıdır: (1) ne işe yarar? ve (2) iki örnek tür yaz.

  1. Clock'ın komutları zamanladığını yaz.
  2. Clock yoksa işlem yürütülemeyeceğini belirt.
  3. En az iki osilatör türü ver (ör. RC, XT).
  4. Mümkünse seçim mantığını ekle: hız/hassasiyet/maliyet.

Konuyu hiç bilmeyen için anlatım

Mikrodenetleyici saat sinyali (clock) olmadan komut yürütemez.

Clock, "ne hızda düşünüp iş yapacağını" belirler.

PIC16F84'te osilatör seçeneklerine örnek:

Sınav tarzı cevap

Clock osilatörü, mikrodenetleyicinin komutlarını zamanlayarak çalıştırması için gereklidir.

PIC16F84'te RC, XT, HS, LP gibi osilatör tipleri kullanılabilir.

İki örnek: RC ve XT.

Özet

Clock yoksa çalışma yoktur.

10) Sayı Dönüşümleri (Hex, Binary, Decimal)

Soru

Aşağıdaki dönüşümleri yapınız.

Bu soru senden tam olarak ne istiyor?

Bu soru aslında sadece "sonucu yaz" sorusu değil, hangi tabandan hangi tabana nasıl geçeceğini bildiğini ölçüyor.

  1. Önce sayının başındaki işareti oku: h (hex), b (binary), d (decimal), 0x (hex).
  2. Sonra hedef tabanı gör: örneğin h'A2F' = b'...' ifadesi "hex'ten binary'ye çevir" demektir.
  3. Her satırda doğru yöntemi seç: hex->binary için 4 bit kuralı, decimal->hex için bölme-kalan gibi.
  4. Sonucu yazmadan önce kontrol et: ters dönüşüm yapınca ilk sayıya dönmeli.

Kısaca:

Bu soru, dönüşüm tekniğini ezber değil mantıkla uygulamanı istiyor.

Konuyu hiç bilmeyen için anlatım

Temel mantık: Her sayı sistemi bir taban ile çalışır.

  • Decimal (onluk): taban 10, rakamlar 0..9
  • Binary (ikilik): taban 2, rakamlar 0 ve 1
  • Hex (onaltılık): taban 16, rakamlar 0..9 ve A..F

Bir sayının değeri, soldan sağa yazılan her basamağın kendi ağırlığıyla çarpılıp toplanmasıyla bulunur.

Değer = basamak x taban^konum

Dönüşümde hangi yöntemi ne zaman kullanmalıyım?

  1. Hex -> Binary: Her hex karakteri doğrudan 4 bite çevir.
  2. Binary -> Hex: Sayıyı sağdan başlayarak 4'lü gruplara ayır, her grubu bir hex karakterine çevir.
  3. Decimal -> Binary: 2'nin kuvvetlerine ayırma veya 2'ye bölme-kalan yöntemini kullan.
  4. Decimal -> Hex: 16'ya böl, kalanları al; kalanları tersten yazarak sonucu bul.

Neden 1 hex = 4 bit?

Çünkü 4 bit ile 0000 ile 1111 arasında toplam 16 farklı değer üretilir, bu da hex'in 16 sembolüyle birebir eşleşir.

İkilikte bit ağırlıkları (sağdan sola):

... 2^10=1024, 2^9=512, 2^8=256, 2^7=128, 2^6=64, 2^5=32, 2^4=16, 2^3=8, 2^2=4, 2^1=2, 2^0=1

h'A2F'te F neden 1111? (çok detaylı)

Kısa cevap: Hex sistemde F = 15 değerine karşılık gelir. 15'in ikilik karşılığı da 1111 olduğu için F = 1111 yazılır.

  1. Hex tabanı 16'dır. Bu sistemde tek bir basamak 16 farklı değer alır: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
  2. 4 bit tam 16 durum üretir. Çünkü 2^4 = 16. Bu nedenle 1 hex basamağı ile 4 bit birebir eşleşir.
  3. Hex'te F'nin decimal değeri 15'tir. A=10, B=11, C=12, D=13, E=14, F=15 şeklinde ilerler.
  4. 15'i binary'e çevir: 15 = 8 + 4 + 2 + 1 = 2^3 + 2^2 + 2^1 + 2^0.
  5. Bitleri yaz: 8, 4, 2 ve 1'in hepsi kullanıldığı için tüm bitler 1 olur: 1111.

Bu yüzden:

F (hex) = 15 (decimal) = 1111 (binary)

A-F hızlı eşleşme tablosu:

A=1010, B=1011, C=1100, D=1101, E=1110, F=1111

Hızlı doğrulama (ters kontrol):

1111 = 1x2^3 + 1x2^2 + 1x2^1 + 1x2^0 = 8+4+2+1 = 15 = F

Adım adım çözüm

  1. h'A2F' -> b

    Hex'teki her karakteri ayrı ayrı 4 bite çevir. Burada kritik nokta: F'nin 1111 olmasıdır.

    A = 1010, 2 = 0010, F = 1111

    Sonra sırayı bozmadan birleştir:

    1010 0010 1111

    Kontrol: 1010=10(A), 0010=2, 1111=15(F) -> tekrar A2F verir.

    Sonuç: b'101000101111'

  2. b'1011011111101010101010' -> h

    Binary'den hex'e geçerken sağdan başlayarak 4'lü gruplar oluşturulur.

    Bit sayısı 4'ün katı değilse sola 0 eklenir:

    0010 1101 1111 1010 1010 1010

    Her grup hex'e çevrilir:

    0010=2, 1101=D, 1111=F, 1010=A, 1010=A, 1010=A

    Sonuç: h'2DFAAA'

  3. d'253' -> b

    253 sayısını 2'nin kuvvetlerine ayır:

    253 = 128 + 64 + 32 + 16 + 8 + 4 + 1

    Yani 2^7, 2^6, 2^5, 2^4, 2^3, 2^2, 2^0 aktif; 2^1 pasif.

    Bu nedenle bit dizilimi: 11111101

    Sonuç: b'11111101'

  4. 0XAA3 -> b

    Hex karakterleri ayrı çevrilir:

    A = 1010, A = 1010, 3 = 0011

    Sırayla birleştir:

    1010 1010 0011

    Sonuç: b'101010100011'

  5. h'2F' -> d

    Hex'te konum ağırlığı kullan:

    2F = 2 x 16^1 + 15 x 16^0

    = 32 + 15 = 47

    Sonuç: d'47'

  6. d'287' -> 0x

    16'ya bölme-kalan yöntemi kullan:

    287 / 16 = 17 kalan 15 (F)

    17 / 16 = 1 kalan 1

    1 / 16 = 0 kalan 1

    Kalanlar alttan üste doğru okunur: 1 1 F

    Sonuç: 0x11F

  7. b'11001000000' -> d

    1 olan bitlerin ağırlıklarını topla:

    2^10 + 2^9 + 2^6 = 1024 + 512 + 64

    = 1600

    Sonuç: d'1600'

Sık yapılan hatalar (çok önemli)

Kendini kontrol et (mini test)

Soru: h'3C' kaçtır (decimal)?

Çözüm: 3 x 16 + 12 = 48 + 12 = 60

Sonuç: d'60'

Özet

Sayı sistemi sorularında en güvenli yöntem:

Sınavdan Farklı 1 Ek Örnek (Anlatım + Çözüm)

Ek soru

Aşağıdaki dönüşümleri yapınız:

Çözüm

  1. h'3B7' -> b

    3 = 0011, B = 1011, 7 = 0111

    Sonuç: b'001110110111'

  2. d'100' -> h

    100 / 16 = 6 kalan 4

    Sonuç: h'64'

  3. b'10011101' -> d

    128 + 16 + 8 + 4 + 1 = 157

    Sonuç: d'157'

Neden böyle yaptık?

Kısa tekrar listesi (1 dakikalık)

Yukarı dön