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.
Konuyu hiç bilmeyen için anlatım
- Mikroişlemci: Temel olarak sadece işlem birimidir (CPU). Tek başına çalışamaz.
- Mikrodenetleyici: CPU + RAM + ROM/Flash + giriş/çıkış portları + timer gibi birimleri tek çip içinde toplar.
Kısa benzetme:
- Mikroişlemci = Sadece beyin.
- Mikrodenetleyici = Beyin + hafıza + kollar + saat + duyular bir arada.
Sınav tarzı cevap
- Mikroişlemci, dışarıdan RAM, ROM, I/O, timer gibi birimlere ihtiyaç duyar.
- Mikrodenetleyici, bu birimlerin çoğunu içinde barındırır.
- Mikroişlemci daha genel amaçlı bilgisayar sistemlerinde kullanılır.
- Mikrodenetleyici daha çok gömülü sistemlerde (cihaz kontrolü) kullanılır.
- Mikrodenetleyici sistem maliyeti, boyut ve enerji tüketimi açısından genelde daha avantajlıdır.
Ö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?
Konuyu hiç bilmeyen için anlatım
Bir mikrodenetleyici tanımak için şu sorular sorulur:
- Hangi aile/seri? (Ör: PIC16F84)
- Besleme gerilimi kaç volt?
- Giriş-çıkış pin sayısı kaç?
- Program belleği ne kadar?
- RAM ne kadar?
- Clock frekansı ve osilatör tipi ne?
- Hangi programlama dili ve geliştirme aracı kullanılıyor?
Sınav tarzı cevap
Mikrodenetleyici seçimi ve kullanımı için genel olarak:
- Mimarisi ve komut seti,
- Program belleği ve RAM kapasitesi,
- I/O port özellikleri,
- Clock/osilatör sınırları,
- Besleme ve akım değerleri,
- Timer, interrupt, haberleşme birimleri,
- Programlama ve debug araçları bilinmelidir.
Ö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?
Konuyu hiç bilmeyen için anlatım
Temel 5 parça gerekir:
- Kod yazma ortamı (editör/IDE)
- Derleyici/assembler
- Programlayıcı cihaz (PIC'e kod yazan donanım)
- Hedef mikrodenetleyici (ör. PIC16F84)
- Test devresi (breadboard, LED, dirençler, besleme)
Sınav tarzı cevap
Mikrodenetleyici programlamak için:
- Bilgisayar,
- Kod editörü/IDE,
- Derleyici (assembler/C compiler),
- Programlayıcı donanım ve yazılımı,
- Hedef PIC,
- Test ve ölçüm için temel elektronik düzeni gerekir.
Ö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.
Konuyu hiç bilmeyen için anlatım
PIC16F84 için temel bellek mantığı:
- Program belleği: Kodun tutulduğu alan (Flash).
- Veri belleği (RAM): Çalışırken değişen değişkenler.
- EEPROM veri belleği: Enerji kesilse de saklanan az miktar kalıcı veri.
Sınav tarzı cevap
PIC16F84'te:
- Program belleği Flash tipindedir (kod burada tutulur).
- RAM bellek geçici veriler içindir.
- EEPROM kalıcı veri saklamak için kullanılır.
Ö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?
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.
Konuyu hiç bilmeyen için anlatım
- Source akımı: Pin yüke akım verir (akım pinden dışarı çıkar).
- Sink akımı: Pin yükten akım çeker (akım pine girer, GND'ye akar).
LED örneği:
- Bazen pin 1 olunca LED yanar (source bağlantı).
- Bazen pin 0 olunca LED yanar (sink bağlantı).
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?
Konuyu hiç bilmeyen için anlatım
- Program bellek: Yazdığın kodun saklandığı yer.
- RAM bellek: Program çalışırken değişkenlerin geçici olarak tutulduğu yer.
Örnek:
- LED yakma komutları Program bellektedir.
- Sayaç değişkeni (sayac = sayac + 1) RAM'dedir.
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?
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.
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:
- RC osilatör
- XT (kristal)
- HS (yüksek hızlı kristal)
- LP (düşük güç)
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.
h'A2F' = b'...'b'1011011111101010101010' = h'...'d'253' = b'...'0XAA3 = b'...'h'2F' = d'...'d'287' = 0x ?b'11001000000' = d'...'
Konuyu hiç bilmeyen için anlatım
- Hex tabanı 16'dır: 0..9, A..F
- Binary tabanı 2'dir: 0 ve 1
- Decimal tabanı 10'dur: günlük sayılar
Hex -> Binary: Her hex basamağı 4 bit eder.
Decimal -> Binary: 2'nin kuvvetlerine ayırırsın.
Binary -> Hex: 4'er bit gruplandırırsın.
Adım adım çözüm
-
h'A2F' -> b
A = 1010, 2 = 0010, F = 1111
Sonuç:
b'101000101111' -
b'1011011111101010101010' -> h
Soldan 4'lü gruplamak için gerekirse başa 0 eklenir:
0010 1101 1111 1010 1010 10102 D F A A ASonuç:
h'2DFAAA' -
d'253' -> b
253 = 128 + 64 + 32 + 16 + 8 + 4 + 1
Sonuç:
b'11111101' -
0XAA3 -> b
A = 1010, A = 1010, 3 = 0011
Sonuç:
b'101010100011' -
h'2F' -> d
2 x 16 + 15 = 47
Sonuç:
d'47' -
d'287' -> 0x
287 / 16 = 17 kalan 15 (F)
17 / 16 = 1 kalan 1
Sonuç:
0x11F -
b'11001000000' -> d
1*1024 + 1*512 + 1*64 = 1600
Sonuç:
d'1600'
Özet
Sayı sistemi sorularında en güvenli yöntem:
- Hex <-> Binary için 4 bit kuralı,
- Decimal dönüşümlerinde bölme/kat toplamı yöntemi.
Sınavdan Farklı 1 Ek Örnek (Anlatım + Çözüm)
Ek soru
Aşağıdaki dönüşümleri yapınız:
h'3B7' = b'...'d'100' = h'...'b'10011101' = d'...'
Çözüm
-
h'3B7' -> b
3 = 0011, B = 1011, 7 = 0111
Sonuç:
b'001110110111' -
d'100' -> h
100 / 16 = 6 kalan 4
Sonuç:
h'64' -
b'10011101' -> d
128 + 16 + 8 + 4 + 1 = 157
Sonuç:
d'157'
Neden böyle yaptık?
- Hex ve Binary birbirinin doğrudan akrabasıdır (1 hex = 4 bit).
- Decimal dönüşümde kalanlı bölme ve 2'nin kuvvetleri hatasız sonuç verir.
Kısa tekrar listesi (1 dakikalık)
- Mikroişlemci: dış birimler gerekir.
- Mikrodenetleyici: tek çipte birçok birim.
- PIC16F84 program alanı: 1024 word.
- F harfi: Flash.
- Source/Sink: akım yönü farkı.
- Clock: komutların zamanlayıcısı.
- Dönüşüm: 4 bit hex kuralı en kritik ipucu.