Micro İşlemci Dersi Çalışma Notlarım – Adamyo

Tarih 07 Eylül 2013, in assembly, / mutlu_pektas

Yıllar önce Sakarya üniversitesi Adapazarı Meslek Yüksek Okulun’da okurken micro işlemci dersi için hazırladığım ders notlarım. Genelde ders çalışma alışkanlığım yoktur ama bu derse ciddi ciddi çalışmışım :) arşivleri kurcalarken karşıma çıktı. Bende burada paylaşayım dedim belki bir öğrenci kardeşimize faydası olur.

Hafta 1

VON NEUMAN     :  mimarisinde, veri(RAM bellekte tutulmaktadır) ve komutlar(ROM bellekte tutulmaktadır) bellekten tek bir yoldan mikroişlemciye getirilerek işlenmektedir. Program ve veri aynı bellekte bulunduğundan, komut ve veri gerekli olduğunda aynı iletişim yolu kullanılmaktadır.

HARVARD MİMARİLİ : bilgisayar sistemlerinde, von Neuman mimarisinden farklı olarak veri (RAM bellekte tutulmaktadır) ve komutlar(ROM bellekte tutulmaktadır) farklı belleklerde tutulmaktadır. PIC mikro denetleyicilerde Harvard mimarisini kullanmaktadır.

Komut Setleri açısından Micro işlemciler…

CISC : Mikro denetleyicinin çok sayıda komut içerdiği bu mimaride her bir iş / eylem için bir komut tanımlanır. Kısaca Komut Seti yüksek olduğundan karışık bir yapıdadır….

RISC : işlemcili sistemlerde amaç, komut işlenmesinin olabildiğince hızlı olmasıdır. Komutların basit ve az olması, işlemcinin daha hızlı çalışabilmesini sağlar Uzun, karmaşık ve yavaş CISC komutları yerine daha az, basit, daha hızlı ve daha verimli RISC komutları kullanılmaktadır. Kısaca Az Komuta sahip tabiî ki yapılan işlemin kodu yüksektsir.

S1. PIC Mikro denetleyiciler hangi mimarileri kullanır? Cvp : PIC mikro denetleyicilerde Harvard mimarisini kullanırlar.

S2. Von Neuman mimarisinin diğer adı nedir? Cvp : Bazı kaynaklarda Princeton mimarisi de denilmektedir.

S3. CISC’ in Türkçe açılımı nedir?  Cvp : Complex Instruction Set Computer (Karmaşık Komut Seti)

S4. RISC ‘ in Türkçe açılımı nedir? Cvp  : Reduced Instruction Set Computer (İndirimli

S5. Komutların karmaşık ve daha yetenekli olduğu, düşük ana belleğin daha etkili kullanımının sağlandığı mikroişlemci / mikro denetleyici mimarisi hangisidir? Cvp: CICS Mimarisi.

S6. Bütün komutların aynı uzunlukta olmaları nedeniyle donanımı basit ve komutların icra süresinin kısa olduğu mikroişlemci / mikro denetleyici mimarisi hangisidir? Cvp : RISC Mimarisi.

S7. Program ve verilerin aynı belleği kullandığı ilk mikroişlemci / mikro denetleyici mimari yapısı hangisidir? Cvp : Von Neuman Mimarisi

S8. Veri ve program komutlarının farklı belleği kullandığı mikroişlemci / mikro denetleyici mimari yapısı hangisidir? Cvp : Harvard Mimarisi

S9. RISC mimarisinin CISC mimariye göre avantajları nelerdir?

S10. CISC mimarisinin RISC mimariye göre avantajları nelerdir?

Cvp: (S9 ve S10)

Hız; İki işlemci mimarisi arasındaki hız farkı, kullanılan komut işleme teknikleri sonucu oluşur. CISC işlemcilerde ‘kademeli komut işleme’ tekniği kullanılırken, RISC işlemcilerde ‘kanal komut işleme tekniği’ (pipeline) kullanılır. CISC tekniği ile aynı anda tek bir komut işlenebildiği ve komutun, işlenmesi bitmeden yeni bir komut üzerinde çalışmaya başlanamaz. RISC tekniğinde ise, aynı anda çok sayıda komut işlenmektedir. Komutların birbirini takip etmesi nedeni ile her bir komut bir birim uzunluktadır ve her işlem adımında bir komuta ait işlemler bitirilir. RISC işlemciler, genellikle aynı saat frekansında çalışan CISC işlemcilere göre daha hızlıdır.

- Transistor sayısı; CISC işlemcilerde kullanılan transistor sayısı, RISC işlemcilere göre daha fazladır. Daha fazla sayıda transistor kullanılması, daha geniş alan gereksinimi ve daha fazla ısı ortaya çıkarır, oluşan daha fazla ısı nedeniyle soğutma ihtiyacı ortaya çıkar ve soğutma işlemi, ısı dağıtıcısı veya fanlar kullanılarak gerçekleştirilir.

RISC işlemciler, CISC işlemcilere göre daha basit yapıda olduklarından daha kolay tasarlanırlar.

- Komut yapısı; RISC mimarisi, CISC’in güçlü komutlarından yoksundur ve aynı işlemi yapmak için daha fazla komuta gereksinim duyar. Sistemde güçlü komut eksikliği, ikinci bir yardımcı işlemci ya da ayrı bir ‘pipeline’ bölümü yardımı ile giderilebilir.

RISC mimaride aynı uzunlukta basit komutlar kullanılırken CISC mimaride karmaşık yapıda değişken uzunlukta komutlar kullanılır.

Hafta 3.

S1. Bir mikro denetleyiciyi oluşturan temel birimler hangileridir? Mikro denetleyici (microcontroller, MCU veya μC ), işlemci (CPU), hafıza(RAM/ROM) ve giriş-çıkış (I/O portları) birimlerinin tek bir entegre/yonga paketi içerisine yerleştirilmesi ile gerçekleştirilmiş özel amaçlı bir mikrobilgisayardır.

S2. Mikro denetleyiciler veri belleği olarak ne kullanır? Cvp: RAM ve ROM

S3. Mikro denetleyici üreten firmalar hangileridir? Cvp: Motorola, Microchip, Hitachi, Siemens, AMD, Intel, Atmel, Dallas Semiconductor

S4. PIC Mikro denetleyiciler hangi firma tarafından üretilmektedir? Cvp: Microchip firması.

S5. PIC Mikro denetleyici entegresinin üzerinde “PIC 16F84–04/p” yazılı ise bu mikro denetleyicinin çalışma frekansı kaç MHz dir?Cvp : 4 MHz’e

S6. PIC Mikro denetleyici isminde bulunan ‘F’ harfi neyi ifade eder? Cvp: Flaşh Bellek Olduğunu.

S7. PIC mikro denetleyiciler, kelime uzunlukları referans alınarak nasıl sınıflandırılır?  Cvp:

Mikro denetleyicinin ismindeki ’12 ‘ öneki; 12 veya 14 bitlik bir kelime uzunluğuna sahip olduğunu belirtir.

• Mikro denetleyicinin ismindeki ’16’ öneki; 14 veya 16 bitlik bir kelime uzunluğuna sahip mikro denetleyici olduğunu gösterir.

• Mikro denetleyici ismindeki ’17’ veya ’18’ öneki; 16 bit kelime uzunluğuna sahip mikro denetleyiciler olduğunu gösterir.

S8. PIC mikro denetleyiciler, mimari yapıları (CPU ile veri belleği arasındaki harici hat sayısı) referans alınarak nasıl sınıflandırılır?

S9. PIC kelimesinin Türkçe açılımı nedir? Cvp: Peripheral Interface Controller- Çevresel Arabirim Denetleyicisi

S10. PIC mikro denetleyicilerin tercih edilmesinin nedenleri / etkenleri olarak neler sayılabilir? Cvp:

Gerekli yazılımın ve simülasyon programların ücretsiz olarak sağlanması.

• Yaygın kullanıma sahip olması nedeni ile PIC i bilen çok sayıda insanın bulunması.

. Ucuz ve kolay olarak bulunabilmesi.

• Bellek bölgelerine erişimde (adresleri iletmek amacıyla) ve veri iletiminde farklı yolların kullanılması,

• Basit elemanların eklenmesiyle oluşturulan sistem / donanım yardımıyla programlanabilmesi.

• Kullanıldığı devrelerde basit yapıda yardımcı devrelere (sıfırlama, tetikleme / saat sinyali, besleme, vb) ihtiyaç duyulması.

• Yüksek frekanslarda çalışabilmesi ve komut işleme hızının çok yüksek olması.

• RISC komut mimarisi kullanılması nedeni ile az sayıda ve basit yapıda komutlara sahip olması (PIC 16F84’de 35 komut kullanılmaktadır).

• ‘Stand-by’ durumunda çok az güç harcaması (yaklaşık 1mA akım çekmesi).

• Dâhili ve harici osilatör ile çalıştırılabilmesi.

• ‘Harward’ mimarisine sahip olması nedeniyle komutlar ve verinin farklı yollar kullanılarak iletilmesi ve işlemleri hızlı olarak gerçekleştirebilmesi.

• Sistem oluşturmak için çok az sayıda elemana ihtiyaç duyulması (sadece 2 kondansatör ve 1 adet direnç yeterli olabilir).

• Kesme özelliğinin bulunması.

• Komut işleme belleğine sahip olması.

• G / Ç uçlarından elektronik elemanları rahatlıkla sürebilmesi.

• Microchip firmasının web sayfaları üzerinden sağladığı teknik destek (firma devamlı geliştirmekte olduğu MPLAB adlı simülasyon programını ücretsiz olarak dağıtmaktadır).

• Basic, Pascal, C gibi yüksek seviyeli diller ile programlanabilmesi.

4.Hafta

S1. Ortalama bir mikro denetleyici içerisinde hangi birimler bulunur? Cvp: Ortalama bir mikro denetleyicide Merkezi İşlem Birimi (CPU), bellek, giriş / çıkış birimi ve değişik destek birimleri mevcuttur

S2. Mikro denetleyici içerisindeki CPU nun işlevi nedir? Cvp: Merkezi İşlem Birimi (MİB, CPU, işlemci), mikro denetleyicinin çekirdeği/beyni olarak tanımlanır ve programların çalışması için gerekli aritmetik ve mantıksal işlemleri yürütür. CPU, aynı zamanda bellek biriminde bulunan verilerin okunması veya saklanması işlemlerini kontrol eder. İşlemci içerisinde, Aritmetik – Mantık birimi (ALU), Akümülatör (W kaydedicisi), durum kaydedicisi (status register), sayıcılar, yığın göstericisi, kaydediciler, vb. işlevsel birimler bulunur.

S3. CPU içerisinde hangi birimler vardır?  Cvp: Program Sayıcı, Durum Kaydedicisi, FSR Kaydedicisi, Komut Kaydedicisi, Aritmetik Mantık birimi, W Kaydedicisi, Topla Çarp birimi.

S4. Mikroişlemciler deki Akümülatörün karşılığı olarak PIC mikro denetleyicilerde hangi birim vardır?

S5. Eğer bir mikro denetleyicinin çalışma hızı 10MHz ise işlemcinin bir komutu çalıştırma zamanı ne kadardır? Cvp:  Eğer mikro denetleyicinin çalışma hızı 20MHz ise işlemcinin bir komutu çalıştırma zamanı 200nS (T=1/F) dır, buda saniyede 5 milyon komutun işlenmesi demektir.

S6. PIC 16F877 mikro denetleyicisinde giriş / çıkış işlemlerinde kullanılan portların sayısı ve isimleri nelerdir?  Cvp: PIC 16F877 mikro denetleyicisinde bu sayı beştir (PORTA, PORTB, PORTC, PORTD ve PORTE olmak üzere).

S7. PIC 16F84 mikro denetleyicisinde giriş / çıkış işlemlerinde kullanılan portların sayısı ve isimleri nelerdir? Cvp: PIC 16F84 mikro denetleyicisinde PORTA ve PORTB olmak üzere iki adet giriş / çıkış portu bulunurken

S8. PIC 16F877 mikro denetleyicisi kaç adet giriş/çıkış pinine/bacağına sahiptir Cvp: PIC 16F877 mikro denetleyicisi ise 33 adet giriş/çıkış pinine sahiptir.

S9. PIC 16F84 mikro denetleyicisi kaç adet giriş/çıkış pinine/bacağına sahiptir? Cvp : PIC 16F84 mikro denetleyici entegresinde ‘RA0-RA4′ olarak tanımlanan 5 tanesi PORTA (1, 2, 3, 17, 18 nolu pinler) ve ‘RBO-RB7′ sembolleri ile gösterilen 8 tanesi PORTB (6, 7, 8, 9, 10, 11, 12, 13 nolu pinler) olarak kullanılan toplam 13 adet giriş/çıkış pini(ucu) bulunmaktadır.

S10. Bir portun giriş veya çıkış olarak programlanabilmesi için hangi kaydedici kullanılır? Cvp: Örneğin PORTA’ nın ilgili bacaklarını giriş veya çıkış olarak programlayabilmek için TRISA kaydedicisi kullanılır.

S11. PIC mikro denetleyiciler içerisinde hangi tip bellekler kullanılır?  Cvp: PIC mikro denetleyicilerde veri belleği genel amaçlı (GPR) ve özel amaçlı (SFR) olmak üzere iki kaydediciden oluşmaktadır.

S12. PIC 16F84 ve PIC 16F877 mikro denetleyicilerinin bacak / pin sayısı ne kadardır? Cvp: PIC 16F84 Bacak sayısı 18, PIC 16F877 Bacak Sayısı 40 adettir.

S13. DIP ve SMD arasındaki farkı açıklayınız? Cvp: SMD tipinde bacak deliklerine gerek yoktur ve genellikle üst baskı devre katına yerleştirilirler. Bacaklı devre elemanlarının elektronik kartlarda deliklere takılıp erimiş lehim haznesine daldırılarak lehimlenmesi gerekirken SMD elemanlar kart yüzeyine monte edilir ve fırınlanırlar.

S14. PIC 16F877 mikro denetleyicisinde kaç adet zamanlayıcı vardır ve isimleri nelerdir? Cvp: 3 Adet Vardır İsimleri = Timer0, Timer1, Timer2

S15. PIC16F84 ile PIC16F877 arasındaki donanımsal farklar nelerdir, açıklayınız?

ÖZELLİKLER PIC16F877 PIC16F84
Maksimum çalışma hızı DC-20Mhz DC-10 Mhz
Program Belleği 8Kx14 word Flash ROM 1Kx14 word Flash ROM
EEPROM Belleği 256 byte 64 byte
RAM Belleği (byte) 368 byte 68 byte
Giriş / Çıkış Port sayısı 33 (Port A,B,C,D,E) 13 (Port A,B)
Zamanlayıcı(Timer) Timer0, Timer1, Timer2 Timer0
A / D çevirici 8 kanal 10 bit YOK
Capture / Comp. / PWM 16 bit Capture 16 bit Compare 10 bit PWM çözünürlük YOK
Seri iletişim ara birimi SPI (Master), I2C (Master / Slave) , USART (senkron /asenkron alıcı verici) YOK
Paralel / Slave port 8 bit, harici RD, WR ve CS kontrollu YOK

Hafta 5

S1. PIC Mikro denetleyicilerin bellek yapısının farklı bellek bloklarından oluşmasının nedeni nedir? Cvp: Belleğin bu şekilde ikiye ayrılması, PIC’

lerin Harvard mimarisinde üretilmesinden kaynaklanmaktadır. Bellek blokları farklı yolları kullandığından tek bir saat çevriminde her bloğa erişim sağlanabilir. PIC mikro denetleyicilerin ‘Harward’ mimarisine ve ‘RISC’ komut işleme tekniğine sahip olması nedeni ile, veri belleği ile program bellekleri birbirinden ayrıdır ve her bir bellek bölgesi kendi yoluna sahiptir.

S2. PIC16F84 ve PIC16F877 mikro denetleyicilerinin program belleği kapasitesi ne kadardır? Cvp: 1KBayt’lık program belleğine sahip olan PIC16F84 mikro denetleyicisinde her bir bellek hücresine 14 bit uzunluğuna sahip program komutları saklanabilir. Bunun anlamı; PIC16F84 mikro denetleyicisinin (000)16 ile (3FF)16 arasındaki adresler ile temsil edilen program belleğine 14 bit uzunluğunda toplam 1024 tane komut yazılabilmesidir. 16F877 nin program belleği ise 13 bit ile adreslenir ve dolayısıyla 2 13 = 8192 bellek hücresi vardır. Yani 16F877’nin program belleği 8KBayt olarak tasarlanmıştır. PIC16F877 ninde kelime uzunluğunun 14 bit olduğu daha önce belirtilmişti. Bu durumda bu elemanın program hafızasına 8192 adet 14 bitlik komut yazmak mümkündür.

S3. PIC mikro denetleyici program belleğinde ne saklanır? Cvp: bellek haritası görülen PIC mikro denetleyici program belleğine sadece Assembly

komutları saklanabilmesine karşılık, ‘RETLW’ komutu ile birlikte sınırlı miktarda veri de yüklenebilir.

S4. Programın çalışması sırasında program belleğindeki bilgilerin silinmesi veya değiştirilmesi mümkün müdür? Cvp: Programın çalışması sırasında program belleğindeki bilgilerin silinmesi veya değiştirilmesi mümkün değildir. Program belleğindeki bilgiler ancak programlama modunda değiştirilebilirler.

S5. Yığın bölgesinin temel görevi nedir? Cvp: Yığın bölgesinin temel görevi, ana programdan alt programlara dallanan program sayıcının içeriğini saklamaktır.

S6. PIC 16F877 mikro denetleyicisinin veri belleği kaç sayfaya ayrılmıştır, isimleri nelerdir? Cvp : PIC16F877 mikro denetleyicisi veri belleği

ise, ‘Bank0 / Sayfa0′, ‘Bank1 / Sayfa1′, ‘Bank2 / Sayfa2′, ‘Bank3 / Sayfa3′ olarak isimlendirilen dört bellek bölgesinden oluşmaktadır.

S7. PIC 16F84 mikro denetleyicisinin veri belleği kaç sayfaya ayrılmıştır, isimleri nelerdir? Cvp: PIC16F84 mikro denetleyicisi veri belleği, ‘Bank0 / Sayfa0′ ve ‘Bank1 / Sayfa1′ olarak isimlendirilen iki bellek bölgesinden oluşurken,

S8. SFR kelimesinin açılımı nedir? Cvp: Special File Register ‐ SFR / özel amaçlı / fonksiyonlu kaydediciler

S9. GPR kelimesinin açılımı nedir? Cvp: General Purpose Registers ‐ GPR / genel amaçlı kaydediciler

S10. “.inc” uzantılı dosyalar ne amaçla kullanılır? Cvp: Normalde program içinde özel fonksiyonlu kaydedicilerin de adreslerinin belirtilmesi gerekir. Fakat bunların adresleri bellidir ve her programda tekrar tekrar yazmak gereksiz zaman ve emek kaybına sebep olur. Bu yüzden üretici firma her PIC serisi için bu bilgileri yazıp, “.inc” uzantılı dosyalara kaydetmiştir.

S11. Veri belleği sayfalarını / banklarını değiştirmek için hangi kaydedicinin hangi bitleri kullanılır? Cvp : BANK değiştirme işlemi STATUS

kaydedicisinin 5 ve 6 numaralı bitlerini (RP0, RP1) değiştirmek suretiyle yapılır.

S12. PIC16F84’ de Bank 1’ e geçmek için gerekli komut satırını yazınız? Cvp: BSF STATUS, RP1 // Status kaydedicisinin RP0 bitini 1 yap

6.Hafta

S1. Bir PIC mikro denetleyicisi ile gerçekleştirilecek uygulamada minimum hangi devrelerin olması gerekir? Cvp: Bir PIC mikro denetleyicisi ile gerçekleştirilecek uygulama da o devreye/uygulamaya özel elemanların (direnç, led, buton, lcd gibi) yanı sıra en azından besleme, reset ve osilatör devresinin olması gerekir.

S2. PIC18F84 için besleme geriliminin bağlandığı bacaklar (isim ve bacak numaraları) hangileridir? Cvp: PIC16F84 için 14 nolu bacak,

S3. PIC18F877 için besleme geriliminin bağlandığı bacaklar (isim ve bacak numaraları) hangileridir? Cvp: PIC16F877 için ise 11 ve 32 nolu iki farklı bacak) isimli bacaklardır.

S4. Besleme devresinde ‘Vdd’ ile ‘Vss’ uçları arasına bağlanan 0,1 mikroF’lık kondansatörün görevi nedir? Cvp: ‘Vdd’ ile ‘Vss’ uçları arasına devreye ilk gerilim uygulaması anında (PIC’e enerji verme sırasında) olabilecek gerilim dalgalanmalarının sebep olabileceği arızaları önlemek amacıyla 0,1 mikroF’lık bir ‘dekuplaj kondansatörü’ bağlanır.

S5. “Power On Reset” ne demektir? Cvp: PIC mikro denetleyicilerin besleme uçlarına gerilim uygulandığı anda bellekteki programın başlangıç adresinden itibaren çalışmasını sağlayan bir reset /sıfırlama devresi vardır ve bu devre “Power On Reset” ismi ile PIC içerisine yerleştirilmiştir.

S6. PIC mikro denetleyicilerin reset bacağının ismi nedir? Cvp: PIC mikro denetleyicilerin MCLR ucu (16F84 için 4 nolu, 16F877 için 1 nolu bacak) reset bacağıdır.

S7. MCLR pininin yanlışlıkla lojik ‘0’ değeri ile aktif hale gelmesini engellemek amacıyla bir direnç üzerinden + besleme ucuna bağlanması gereklidir. Bağlandığı ucu sabit olarak lojik ‘1’ değerinde tutan bu direncin ismi nedir? Cvp: Bağlandığı ucu sabit olarak lojik ‘1’ değerinde tutan bu direnç, ‘pull-up‘ direnci olarak isimlendirilir.

S8. PIC mikro denetleyicilerin saat sinyali girişi için kullanılan uçlarının ismi nedir? Cvp: PIC mikro denetleyicilerin saat sinyali girişi için kullanılan iki ucu vardır; bunlar OSC1 (16F84 için 16. pin, 16F877 için 13. pin olmak üzere) ve OSC2 (16F84 için 15. pin, 16F877 için 14. pin olmak üzere) uçlarıdır.

S9. PIC mikro denetleyiciye saat(clock) sinyali niçin uygulanır? Cvp: PIC bir mikroişlemcili sistem olduğundan, komutları işleyebilmesi için saat(clock) sinyali dediğimiz, frekansı belli olan bir kare dalga işarete ihtiyaç duyar.

S10. PIC mikro denetleyicisinde kullanılan osilatör türleri ve isimleri nelerdir?  Cvp: kristal osilatörler veya seramik resonatör ler tercih edilmektedir.

S11. Kristal elemanı ile ona uygun kondansatörlerin bir kılıf içinde birleştirilmesi oluşan osilatörün ismi nedir?

S12. “Gerilim kaynağından PIC portuna doğru akan akıma ____ sink akımı _________, PIC portundan toprağa/şaseye doğru akan akıma ise _____ source akımı ________ adı verilir” Boşluklara ne gelmelidir?

S13. PIC 16F84 ve 16F877 için sink akımı ve source akımı sınırı maksimum kaç amperdir? Cvp: Gerilim kaynağından PIC portuna doğru akan akıma sink akımı, PIC portundan toprağa doğru akan akıma ise source akımı adı verilir. 16F84 ve 16F877 için sink akımı ve source akımı sınırı 25mA dir.

S14. Mikro denetleyicinin, sistemde bulunan diğer eleman veya cihazları izlemek veya kontrol etmek amacıyla kullandığı fiziksel bağlantılara/kapılara ne ad verilir? Cvp: Mikro denetleyici, sistemde bulunan diğer elemanları veya cihazları izlemek veya kontrol etmek amacıyla portları kullanır. Diğer bir ifade ile portlar mikro denetleyicini dış dünya ile irtibatını sağlayan fiziksel bağlantılardır/kapılardır. 

Hafta 7

S1. Kaydedici ne demektir ortalama bir PIC mikro denetleyicisinde hangi tip kaydediciler vardır? Cvp: Mikroişlemci ve mikro denetleyici içerisindeki veri ya da adres bilgileri kaydedicilerde (registeryazmaç) tutulur. Kaydediciler, ikili sayı formatındaki verilerin tutulduğu, gerektiğinde kolayca içerisindeki bilgilere erişilebilen alanlardır. Genel amaçlı kaydediciler, özel amaçlı kaydediciler ve MİB içerisinde yer alan ( Durum kaydedicisi, ALU, Program sayıcı, W kaydedicisi gibi) kaydediciler olarak sınıflandırabiliriz.

S2. ALU ne demektir, işlevi nedir? Cvp: Aritmetik Mantık Birimi, Aritmetik ve Mantık Birimi; toplama, çıkarma, kaydırma (bir kaydedici içerisinde sağa veya sola) ve mantık (VE VEYA DEĞİL) işlemlerini gerçekleştirir. Bu işlemleri gerçekleştirirken W kaydedicisi ve gerekiyorsa diğer kaydedicileri kullanır.

S3. W kaydedicisinin işlevi nedir? Cvp: Genel amaçlı bir kaydedicidir. PIC mikro denetleyici içerisindeki W kaydedicisinin mikroişlemcilerdeki karşılığı akümülatördür. Kaydediciler arası aktarma işleri, aritmetik işlemleri, atama işlemleri ve mantık işlemlerinde bu kaydedici geçici alan olarak kullanılır. Örneğin bir kaydediciye bir değer atamak istiyorsak, bu değeri önce W kaydedicisine yazar, sonra W kaydedicisinden diğer kaydediciye yükleriz. Veya bir kaydedici içindeki değeri bir sabitle karşılaştırmak istiyorsak, bu sabiti önce W kaydedicisine yükler, sonra karşılaştırırız.

S4. W kaydedicisinin diğer bir ismi nedir? Cvp: W kaydedicisinin mikroişlemcilerdeki karşılığı akümülatördür.

S5. GPR kelimesinin açılımı nedir?

S6. SFR kelimesinin açılımı nedir?

S7. STATUS kaydedicisinin görevi nedir? Cvp : STATUS, aritmetik ve mantık işlemleri, RESET ve veri belleği için bank seçim bitlerine ait

durum bilgisini içeren bir kaydedicidir. STATUS kaydedicisi diğer kaydedicilerde olduğu gibi herhangi bir komutun hedefi olabilir. Yani bazı komutlar çalıştırıldığında STATUS kaydedicisinin o komutla ilgili bitleri otomatik olarak değişebilir.

S8. Bir aritmetik işlemin sonucu sıfır (0) ise bu durumda STATUS kaydedicisinin hangi biti 1 (set) değerini alır? Cvp: Örneğin bir aritmetik işlemin sonucu sıfır (0) ise bu durumda STATUS kaydedicisinin Z (Zero) etiketli biti 1 değerini alır. STATUS kaydedicisinin bitleri okunabilir ve değiştirilebilir ama ve isimli bitler sadece okunabilir ama değiştirilemez.

S9. BANK değiştirme işlemi için STATUS kaydedicisinin hangi bitleri kullanılır? Cvp: BSF STATUS,RP0; komut satırı ile STATUS kaydedicisinin 5. Biti 1 yapılmış olur ve böylece Bank1’e geçilmiş olunur.

S10. PIC16F877 mikro denetleyicisinde hangi zamanlayıcılar kullanılır? Cvp: PIC 16F877 içinde TMR0 zamanlayıcısı haricinde TMR1 ve TMR2 zamanlayıcıları dabulunmaktadır.

S11. Osilatör frekansı 4MHz olan bir PIC için, OPTION kaydedicisindeki PS2, PS1 ve PS0

bitlerinin değerleri sırasıyla b’111’ şeklindedir. TMR0 zamanlayıcısının 00h değerinden saymaya başladığı kabulü ile bu PIC kaç saniye sonra TMR0 tarafından bir kesme oluşturur? Cvp:

Osilatör frekansı 4MHz ise, komut sinyalinin frekansı bunun dörtte biri olacağından;

fosc=4/4 = 1MHz olacaktır.

Komut sinyal frekansı 1MHz ise, bir komutun işletilmesi için gerekecek süre:

T=1/fosc= 1/(1MHz) = 1 μs olur.

TMR0 içeriğinin kaç komutta bir arttığını anlamak için, frekans bölme oranına bakmak gerekir. Frekans bölme oranını tablodan kontrol ettiğimizde, 111 şeklindeki dizilim için, bu oranın 1:256 olduğunu görürüz. Bu da her 256 komutta bir sefer TMR0 içeriğinin bir sayı artacağını gösterir.

O halde TMR0 içeriğini bir sayı arttırmak için geçecek süre:

1μs x 256 = 256μs olacaktır.

Fakat TMR0 içeriği bir arttığında kesme oluşmaz, kesme ondalık olarak 255’e kadar sayıp, 256’ya geçerken oluşur. Öyle ise kesme gecikmesi (bir kesmenin oluşması için geçecek zaman):

256μs x 256 = 65536 μs olur. Bu da yaklaşık 65ms değerine eşittir.

 

S12. Program Sayıcının görevi nedir? Cvp: Mikro denetleyicinin komutları işlemesi sırasında artırılarak, programdaki komutların adımadım

işlenmesini sağlar.

S13. PIC mikro denetleyicilerindeki program sayıcı olarak görev yapan kaydedicilerin isimleri nedir? Cvp: PCL ve PCLATH Kaydedicileri

S14. PCL ve PCLATH Kaydedicilerinin birbirinden farkı nedir? Cvp: Fiziksel olarak, adresin düşük değerli 8 biti ‘PCL’ kaydedicisinde ve adresin yüksek değerli 5 biti ‘PCLATH’ kaydedicisinin 5 bitinde saklanır

S15. Kesme ne demektir? PIC mikro denetleyicisinde kullanılan kesme kaydedicisinin ismi nedir? Cvp: Kesme, mikro denetleyicinin gerçekleştirdiği işleme bakmaksızın belirli durumların/olayların olması durumunda isteklere / olaylara cevap verilmesini sağlayan mekanizmadır. PIC mikro denetleyicilerde, kesmeyi kontrol eden kaydedici ‘INT CON’ olarak isimlendirilir ve bellek bölgesinden seçilen bank’a bakılmaksızın ‘INTCON’ kaydedicisine erişilebilir.

Hafta 8

S1. Assembly dilinin diğer programlama dillerinden farkını açıklayınız? Cvp: Alçak seviyeli dildir. ( Assembly dili)

S2. PIC mikro denetleyicilerini hangi programlama dilleri ile programlayabiliriz? Cvp: PIC mikro denetleyicileri assembly dili ile programlayabileceğimiz gibi C, BASIC, PASCAL gibi yüksek seviyeli bir programlama dili ile de programlamayabilirsiniz.

S3. Assembly programlama dilinin derleyicisinin ismi nedir? Cvp: Assembly diliyle yazılmış bir program( .asm) assembler derleyicisi ile makine diline (.hex) çevrilir.

S4. PIC16F84 ve PIC16F877 mikro denetleyicilerinin kaç adet PIC assembly komutu vardır? Cvp: Ortalama bir PIC mikro denetleyicisi (PIC16F84, PIC16F877 gibi) komut setinde 35 adet komut bulunmaktadır.

S5. PIC assembly komutları kaç saat çevriminde çalışır, açıklayınız? Cvp: Komutların büyük bir kısmı 1 saat çevrimi (tetikleme sinyali clock/ 4) sırasında gerçekleştirilirken, test ve dallanma komutları 2 saat çevrimi/saykılı sırasında gerçekleştirilir.

S6. Assembly dili ile program yazmak için hangi editörler kullanılır? Cvp: Örneğin Windows içindeki not defteri (notpad) programı bunun için uygundur. Fakat bir sonraki hafta anlatılacak olan MPLAB (http://www.microchip.com adresinden indirilebilir)

S7. Assembly dili yazım formatı/biçimi hangi alanlardan oluşur, isimleri nelerdir? Cvp: Assembly dili yazım formatı/biçimi 4 alandan oluşmaktadır, bunlar; Etiket(Label), Komut kodu (OpCode), İşlenen (Operand) ve Açıklama (Comment) alanlarıdır. Etiket ve açıklama alanları seçimliktir yani isteğe bağlıdır.

S8. PIC Assembly dilinde açıklama satırları için hangi simge kullanılır? Cvp: (noktalı virgül ;)

S9. PIC Assembly komutlarının yanındaki işlenen alanında neler yazılır? Cvp: h’0F’

S10. “MOVLW” şeklindeki bir komutun işlenen alanında ne tür veri yazılabilir? Cvp: Eğer komut sonu ‘W’ harfi ile sona eriyorsa işlenen kısmına sabit bir değer (direkt veri) yazılmalıdır. Örneğin MOVLW h’0F’ gibi, bu komut satırı; “0F” heksadesimal sayısını W kaydedicisine aktar anlamındadır.

S11. Yazılan programın bittiğini belirtmek için hangi komut kullanılır? Cvp:  Programın sonu. Programın nerede bittiği END komutu ile mutlaka belirtilmelidir. Derleyici END komutunu bulamadığı zaman program derleyemez ve hata verir.

S12. Kullanacağımız PIC mikro denetleyicisini programa hangi komut ile tanıtırız? Cvp: LIST Komutu Kullanarak

S13. PIC mikro denetleyicisinin herhangi bir adresini bir etikete atamak için hangi komut kullanılır? Cvp: Yukarıdaki örnekteki DON etiketi ise adres atanmamış bir etikettir. Bu etiket sadece oraya bir isim vermek amacıyla kullanılmıştır. Başka bir yerden programın buraya dallanmasını istersek,

GOTO DON komutunu veririz ve program bu etiketin olduğu satıra gelerek işleme buradan devam eder.

S14. “MOVLW 0x23” şeklindeki komut satırının işlevini açıklayınız? Cvp: W kaydedicisine Onaltılık sayı sistemi23 sayısı kopyalanır/aktarılır.

Hafta 9

S1. W kaydedicisini sıfırlayan komut satırını yazınız. Cvp : CLRW

S2. CLRW komut satırından sonra STATUS kaydedicisinin Z bayrağı hangi değeri alır?

S3. PORTA’ ya h ‘0F’ sayısını yükleyen komut satırını yazınız. Cvp: MOVLW h ‘0F’  ;W içeriğine ondalık 18 değeri yazılır MOVWF PORTA ;W içeriği, PORTB kaydedicisine yazılır.

S4. W kaydedicisinin ilk 4 bitini (LSB tarafını) sıfırlayan fakat son 4 bitini (MSB tarafını) olduğu gibi bırakan komut satırını yazınız.

S5. W=W*5 işlemini gerçekleştiren program parçasını yazınız. Cvp:

MOVLW d’03’ ; W kaydedicisine bir değer aktardık. W=03

MOVWF PORTB ; W içeriği PORTB’ ye aktarıldı. PORTB=03

RLF PORTB, F ; PORTB içeriği C ile birlikte bir bit sola kaydırıldı. PORTB=03*2

ADDWF PORTB,W ; PORTB ile W kaydedicisinin içeriğini topla sonucu W kaydedicisine ; aktar. W= 03*2 + 03

S6. d ‘05’ sayısından d ‘03’ sayısını çıkaran program parçasını yazınız.

S7. W kaydedicisinin içerisindeki tüm bitleri ters çevirmek için (1 leri 0, 0 ları 1 yapmak için) gerekli program parçasını yazınız.

S8. PORTB kaydedicisinin içeriğini 1 artıran komut satırını yazınız. Cvp:

34 MOVLW h’00’ ; 00h sayısını W kaydedicisine yükle

35 MOVWF PORTB ; W içeriğini PORTB ye aktar

36 INCF PORTB, F ; PORTB kaydedicisinin içeriği bir (1)

arttırılır ve sonuç PORTB de tutulur.

Hafta 10

S1. “BSF PORTB,2” komut satırının işlevini açıklayınız. Cvp : PORTB nin 2. Bitinin değerini 1 yap…

S2. “BCF PORTB,2” komut satırının işlevini açıklayınız.  Cvp : PORTB nin 2. Bitinin değerini 0 yap…

S3. Program akışını değiştiren komutlar nelerdir ve bu komutlar kaç saat çevrimi süresinde çalışır? Cvp: tüm komutlar 1 komut saykılı süresinde çalışır. Program akışını değiştiren dallanma komutları ise 2 komut saykılı süresinde çalışır. INCFSZ, DECFSZ, BTFSS, BTFSC gibi komutlar normalde 1 komut saykılı süresinde çalışırken dallanma durumunda (kaydedici içerisindeki sayı sıfır olduğunda) 2 komut saykılı süresinde çalışırlar. GOTO, CALL, RETURN, RETLW, RETFIE gibi koşulsuz dallanma komutları ise 2 komut saykılı (saat çevrimi) süresinde çalışırlar.

S4. PIC’ i uyku moduna geçiren komut hangisidir? Cvp: SLEEP Komutu (Enter SLEEP mode)

S5. NOP komutu hangi amaçla kullanılır? Cvp: Hiçbir işlem yapmayan bu komutun kullanım amacı, genelde zaman geciktirmesi yapmaktır.

S6. RETLW ile RETURN komutu arasındaki fark nedir? Cvp: RETLW gibi CALL ile çağrılan alt programdan geri dönmeye yarar. Fakat W içine bir şey

yazmaz. CALL komutunun kullanıldığı satırdan bir sonraki satıra geri döner. CALL komutu ile beraber kullanılır. Altprogramdan TOS (Top Of the Stack – Yığının en üstündeki) ‘taki adrese geri döner. RETURN komutu da diğer program akış komutları gibi iki saat çevrimi sürede çalışır. Bu komut uygulanınca program sayıcıya (PC) TOS değeri yerleştirilir.

S7. Şartlı dallanma komutları hangileridir? Cvp: şartlı dallanma komutları (INCFSZ, DECFSZ, BTFSS, BTFSC)

S8. Şartsız dallanma komutları hangileridir? Cvp: GOTO, CALL, RETURN, RETLW, RETFIE

S9. GOTO ve CALL komutları arasındaki fark nedir? Cvp: GOTO gibi bir dallanma komutudur. GOTO komutundan farkı, RETLW veya RETURN ile

beraber kullanılıp, dallandığı yere geri dönmesidir.

S10. 10 MHz lik saat frekansına sahip bir PIC16F84’de yaklaşık 2.5 mSn lik bir gecikme sağlayacak gecikme programını yazınız.

Hafta 11

S1. Microchip firmasının ürettiği PIC mikro denetleyicileri programlamak, test ve simüle etmek amacıyla geliştirdiği programın ismi nedir? Cvp: MPLAB programı Microchip firmasının ürettiği PIC mikro denetleyicileri programlamak, test ve simüle etmek amacıyla geliştirdiği bir programdır.

S2. ‘.asm’ uzantılı kaynak dosyaları derleyerek ‘.hex’ uzantılı hedef dosyalara dönüştüren programın ismi nedir? Cvp: Derleyici kısmı, yazılan ‘.asm’ uzantılı kaynak dosyaları derleyerek ‘.hex’ uzantılı hedef dosyalara dönüştürür. Derleme sırasında eğer bir hata ile karşılaşırsa, hatalı satır numarası ile birlikte hata bildirilir.

S3. Derlenmiş olan assembler programımızı adım adım çalıştırmak ve simüle etmek için hangi menü adımları seçilir? Cvp: Programın sürekli ama adım adım çalışmasını istiyorsanız Debugger ‐‐> Animate seçeneğini kullanabilirsiniz. Programın kendi kontrolünüzde çalışmasını istiyorsanız önce programınızı Debugger ‐‐> Reset (F6) ile resetleyin sonrada StepInto (F7) , StepOver (F8) ve StepOut seçeneklerini kullanın.

S4. MPLAB ile yazılan programı çalıştırmak için hangi menü adımları izlenir? Cvp: Debugger ‐‐> Select Tool ‐‐> MPLAB SIM seçeneğini seçiniz. Programınızı çalıştırmak için Debugger ‐‐> Run (F9) seçeneğini seçebilirsiniz. Bu komut programınızın “end” komutuna kadar çalışıp durmasını sağlar.

S5. MPLAB ile yazılan programı derlemek için hangi menü adımları izlenir? Cvp: Project ‐‐> Build All menüsünden derleyerek DENEME.HEX uzantılı dosyayı elde ederiz.

Dökümanı İndir313 downloads

micro-islemci

Etiketler: 

One Response to Micro İşlemci Dersi Çalışma Notlarım – Adamyo

  1. Okan diyor ki:

    Teşekkürler…

Bir Cevap Yazın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>