Mikroişlemciler-IMikrodenetleyiciler. Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu



Benzer belgeler
MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

BÖLÜM Mikrodenetleyicisine Giriş

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

BÖLÜM in Bellek Organizasyonu

Mikrobilgisayar Mimarisi ve Programlama

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

BÖLÜM MİKROİŞLEMCİSİ

Mikroişlemcili Sistemler ve Laboratuvarı 5.HAFTA:BÖLÜM-1

MEB YÖK MESLEK YÜKSEKOKULLARI PROGRAM GELİŞTİRME PROJESİ. 1. Tipik bir mikrobilgisayar sistemin yapısı ve çalışması hakkında bilgi sahibi olabilme

PROJE RAPORU. Proje adı: Pedalmatik 1 Giriş 2 Yöntem 3 Bulgular 6 Sonuç ve tartışma 7 Öneriler 7 Kaynakça 7

Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Embedded(Gömülü)Sistem Nedir?

KOMUT TABLOSU İLE İLGİLİ AÇIKLAMALAR:

Mikroişlemcili Sistemler ve Laboratuvarı

MC6800. Veri yolu D3 A11. Adres yolu A7 A6 NMI HALT DBE +5V 1 2. adres onaltılık onluk bit 07FF kullanıcının program alanı

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Adres Yolu (Address Bus) Bellek Birimi. Veri Yolu (Databus) Kontrol Yolu (Control bus) Şekil xxx. Mikrodenetleyici genel blok şeması

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

EEM 437 MİKROİŞLEMCİLER DERS NOTLARI

DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar

İçİndekİler. 1. Bölüm - Mİkro Denetleyİcİ Nedİr? 2. Bölüm - MİkroDenetleyİcİlerİ Anlamak

HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

Ayhan Yüksel. (Son güncelleme: Berat Doğan) Tıbbi Enstrumantasyon Tasarım & Uygulamaları ( )

Çalışma Açısından Bilgisayarlar

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

4-Deney seti modüler yapıya sahiptir ve kabin içerisine tek bir board halinde monte edilmiştir.

EEM 419-Mikroişlemciler Güz 2017

8051 Mikrokontrolcü Ailesi

BM-311 Bilgisayar Mimarisi

9. MERKEZİ İŞLEM BİRİM MODÜLÜ TASARIMI

BÖLÜM 6 Seri Port Đşlemleri

BÖLÜM 7 XTAL2 XTAL1. Vss. Şekil Mikrodenetleyicisi osilatör bağlantı şekli. Bir Makine Çevrimi = 12 Osilatör Periyodu

1. Ders Giriş. Mikroişlemcili Sistem Uygulamaları

Mikroişlemcili Sistemler ve Laboratuvarı

BİLGİSAYAR KONTROLLÜ KAMERALI ROBOT KOL PROJESİ

Mikroişlemci Nedir? Mikrodenetleyici Nedir? Mikroişlemci iç yapısı Ders Giriş. Mikroişlemcili Sistem Uygulamaları

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

Deney No Deney Adı Tarih. 3 Mikrodenetleyici Portlarının Giriş Olarak Kullanılması / /201...

Mikroişlemcili Sistemler ve Laboratuvarı

8. MİKROİŞLEMCİ MİMARİSİ

8051 DONANIM ÖZELLİKLERİ

CUMHURİYET MESLEKİ VE TEKNİK ANADOLU LİSESİ BİLİŞİM TEKNOLOJİLERİNİN TEMELLERİ DERSİ DERS NOTLARI BELLEKLER

EasyPic 6 Deney Seti Tanıtımı

Mikroişlemciler ve Mikrodenetleyiciler

Erzurum Teknik Üniversitesi RobETÜ Kulübü Robot Eğitimleri. ARDUİNO EĞİTİMLERİ I Arş. Gör. Nurullah Gülmüş

7. HAFTA KBP208 VE ASSEMBLER. Öğr.Gör. Kürşat M. KARAOĞLAN.

Mikrodenetleyiciler İ ZMİ R 8051 Uygulamaları

8086 nın Bacak Bağlantısı ve İşlevleri. 8086, 16-bit veri yoluna (data bus) 8088 ise 8- bit veri yoluna sahip16-bit mikroişlemcilerdir.

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu

EEM 437 MİKROİŞLEMCİLER DERS NOTLARI

B.Ç. / E.B. MİKROİŞLEMCİLER

BQ Modbus Analog Giriş Kartı 6 Kanal 4 20mA. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ

EEM 419-Mikroişlemciler Güz 2016

Hacettepe Robot Topluluğu

Haftalık Ders Saati Okul Eğitimi Süresi

TIMER. SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

İÇİNDEKİLER. 1-1 Lojik ve Anahtara Giriş Lojik Kapı Devreleri... 9

Alt Programdan Ana Programa Dönüş Adresine Donanım Tarafından Hesaplanması

SAYISAL MANTIK LAB. PROJELERİ

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Mikroişlemciler ve Assembler Programlama. Teknoloji Fakültesi / Bilgisayar Mühendisliği Öğr.Gör. Günay TEMÜR

BM-311 Bilgisayar Mimarisi

PİC HAKKINDA KISA KISA BİLGİLER GİRİŞ/ÇIKIŞ PORTLARI

William Stallings Computer Organization and Architecture 9 th Edition

İşletim Sistemlerine Giriş

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

80C51 Mikrodenetleyicilerinde Timer-Counter Yapılarının FPGA Mimarileri Kullanılarak Geliştirilmesi. Özdemir ÇETİN 1. Bölümü, Adapazarı

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

İÇİNDEKİLER 1. KLAVYE KLAVYE RB KLAVYE RBHIGH DİSPLAY... 31

Eğitim - Öğretim Yöntemleri Başlıca öğrenme faaliyetleri Kullanılan Araçlar Dinleme ve anlamlandırma

Komutların Yürütülmesi

Fatih Üniversitesi. İstanbul. Haziran Bu eğitim dokümanlarının hazırlanmasında SIEMENS ve TEKO eğitim dokümanlarından faydalanılmıştır.

Arduino nedir? Arduino donanım ve yazılımın kolayca kullanılmasına dayalı bir açık kaynak elektronik platformdur.

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

8. MİKRO İŞLEMCİ VE MİKRODENETLEYİCİLER 1

XC8 ile PİC uygulamaları

BM-311 Bilgisayar Mimarisi

Bir mikroişlemci temel olarak üç kısımdan oluşur. Bunlar merkezi işlem birimi (CPU), giriş çıkış birimi (G/Ç) ve bellektir.

PIC 16F877 nin kullanılması

Deney 6: Ring (Halka) ve Johnson Sayıcılar

Bilgisayar Yapısı MİKROİŞLEMCİ SİSTEMLERİ. Bilgisayar Temel Birimleri. MİB Yapısı. Kütükler. Kütükler

Günümüz. Intel Core i nm teknolojisi 1.86 Milyar tranzistör. Intel Core i nm teknolojisi 1.4 Milyar tranzistör

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

ADUC841 MİKRODENETLEYİCİ TABANLI GELİŞTİRME KARTININ TANITIMI:

RF İLE ÇOK NOKTADAN KABLOSUZ SICAKLIK ÖLÇÜMÜ

6. DİJİTAL / ANALOG VE ANALOG /DİJİTAL ÇEVİRİCİLER 1

ACD BİLGİ İŞLEM ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ URT-V2 KABLOSUZ VERİ TOPLAMA TERMİNALİ DONANIM TEKNİK BELGESİ. URT-V2 Terminallerinin

WiFi RS232 Converter Sayfa 1 / 12. WiFi RS232 Converter. Teknik Döküman

PROGRAMLANABİLİR LOJİK DENETLEYİCİ İLE DENEYSEL ENDÜSTRİYEL SİSTEMİN KONTROLÜ

BÖLÜM 1: MİKRODENETLEYİCİLER

Transkript:

Mikroişlemciler-I Mikrodenetleyiciler Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu 2014

Sunuma Genel Bakış Sunuma Genel Bakış I 1 Mikrodenetleyiciler 8051 Mikrodenetleyici Ailesi 8051 Mikrodenetleyicisinin Genel Yapısı 80C52 Uç Fonksiyonları Mikrodenetleyici Seçimi 2 80C52 Kaydedicileri CPU Zamanlaması Port Yapısı 80C52 Bellek Yapısı

Mikrodenetleyiciler Mikrodenetleyiciler Daha önce bahsedildiği gibi bir bilgisayar sistemi merkezi işlem birimi (CPU), bellek ve G/Ç birimlerinin bir araya gelmesi ile oluşur. Bu birimler birbirlerine adres, veri ve kontrol yolları adı verilen iletken hatlar vasıtası ile bağlanırlar. CPU bellek, G/Ç birimleri arasındaki veri akışını kontrol etmek ve çeşitli aritmetik ve mantık işlemleri yapmaktan sorumludur. Eğer CPU, bellek ve G/Ç birimleri tek bir yonga içine yerleştirilirse, oluşturulan bu yeni yongaya mikrodenetleyici denilmektedir. Bu üç özelliğin bir anda bulunması mikrodenetleyiciyi özellikle endüstriyel kontrol uygulamalarında güçlü bir dijital işlemci haline getirmektedir. Günümüzde yonga teknolojisindeki hızlı gelişmeler ile beraber mikrodenetleyicilere her geçen gün yeni özellikler eklenmektedir

Mikrodenetleyiciler Bir mikrodenetleyici aşağıdaki birimleri içermektedir. CPU Program ve veri belleği Giriş-çıkış portları Zamanlayıcı ve sayıcılar Analog dijital çevirici (ADC) Dijital analog çevirici (DAC) Pals genişlik üreteci (PWM) Seri port Kesme (interrupt) devresi Güç yönetim birimi

Mikrodenetleyiciler Bu birimlerin bazıları seçimliktir. Bu özellikler mikrodenetleyici üreten firmalara ve mikrodenetleyicilerin tipine göre değişmektedir. Bu özellikleri sayesinde mikrodenetleyiciler, elektrikli ev aletleri, oyuncaklar, müzik setleri ve televizyonlarda, cd çalar ve fotokopi makinelerinde, motor kontrol sistemleri, hırsız alarm ve güvenlik sistemlerinde, otomobillerde vb. birçok sistemde kontrol elemanı olarak kullanılmaktadır. Bu sebeple mikroişlemcilerle birlikte mikrodenetleyicilerin öğrenilmesi son derece önem arz etmektedir. Günümüzde yaygın olarak 8051 ve PIC adı verilen mikrodenetleyiciler kullanılmaktadır. Bu bölümde 8051 mikrodenetleyici ailesi anlatılmaktadır.

Mikrodenetleyiciler 8051 Mikrodenetleyici Ailesi 8051 Mikrodenetleyici Ailesi 8051 mikrodenetleyicisi ilk olarak 1980 li yılların başında intel firması tarafından üretilen 8-bitlik bir mikrodenetleyicidir. Daha sonraki yılarda 16, 32-bitlik mikrodenetleyiciler de üretilmiştir. Günümüzde birçok firma intel firmasının üretmiş olduğu mikrodenetleyici ile uyumlu kendi mikrodenetleyicilerini de üretmektedir. Bu yüzden 8051 veya MCS-51 ifadeleri mikrodenetleyicilerin genel adı olarak kullanılmaktadır. 8051 ailesi dünyada çok yaygın kullanıma sahip, bugün bir endüstri standardı haline gelmiş mikrodenetleyicidir.

Mikrodenetleyiciler 8051 Mikrodenetleyici Ailesi 8051 Mikrodenetleyici Ailesi Kolayca temin edilebilmesi, istenen uygulamalara uygun çok çeşitli özelliklere sahip ürün yelpazesi, ucuz olması, güçlü mimari özelliği, çok çeşitli firmalar tarafından üretilmesi ve desteklenmesi, kitap, uygulama notu ve internet dokümanlarının bolluğu bu mikrodenetleyicinin kullanımını yaygınlaştırmıştır. Tabloda görülenlerin haricinde başka birçok firmanın üretmiş olduğu 8051 uyumlu mikrodenetleyiciler de bulunmaktadır.

Mikrodenetleyiciler 8051 Mikrodenetleyici Ailesi 8051 Mikrodenetleyici Ailesi Figure: Bazı firmaların üretmiş oldukları 8051 ailesi mikrodenetleyiciler ve özellikleri

Mikrodenetleyiciler 8051 Mikrodenetleyicisinin Genel Yapısı 8051 Mikrodenetleyicisinin Genel Yapısı 8051 ailesi günümüzde CMOS teknolojisi ile 8-bitlik olarak üretilmektedir. Başka bir ifade ile veri yolu ve işlemci kaydedicileri 8-bit genişliğindedir. CMOS teknolojisi ile üretilen 8051 mikrodenetleyicisi 80C51 olarak isimlendirilmektedir. CMOS olarak üretilen yongalar daha az akım çekmektedir. 80C51 in dahili ROM belleği olmayan versiyonu 80C31 dir. 80C52 yongası 80C51 yongasının 256 bayt dahili RAM belleği ve 8K ROM belleği olan gelişmiş versiyonudur.

Mikrodenetleyiciler 8051 Mikrodenetleyicisinin Genel Yapısı 8051 Mikrodenetleyicisinin Genel Yapısı Figure: 80C52 mikrodenetleyicisinin blok şeması

Mikrodenetleyiciler 8051 Mikrodenetleyicisinin Genel Yapısı 8051 Mikrodenetleyicisinin Genel Yapısı 80C52 nin 8KB EPROM belleğe sahip versiyonu 87C52 dir. Mesela, Atmel firmasının AT89C52 mikrodenetleyicisi EPROM/ROM bellek yerine 8KB FLASH bellek kullanmaktadır. 80C52 mikrodenetleyicisi 256 Bayt dahili (on chip) RAM belleğe, 2 adet harici, 4 adet dahili kesme girişine, 3 adet 16-bitlik zamanlayıcı ve sayıcıya, 4 adet (P0, P1, P2-P3) 8- bitlik G/Ç portuna, 1 adet full duplex olarak çalışabilen seri haberleşme arabirimine sahiptir. Ayrıca istenirse 64KB harici ROM/EPROM ve 64K harici RAM belleği adresleyerek kullanabilir. 80C52; 12, 24 ve 33Mhz kristal bağlanarak çalıştırılabilmektedir.

Mikrodenetleyiciler 80C52 Uç Fonksiyonları 80C52 Uç Fonksiyonları 80C52 40 uçlu DIP sokete uygun olarak üretilmektedir. Ancak QFP (yüzey montaj) ve PLCC (elemanın soket içine gömülerek takıldığı, genelde kare şeklinde) soketlere uygun olarak üretim şekilleri de bulunmaktadır. Mikrodenetleyicinin 1-8 no lu pinleri P1 portu için G/Ç amaçlı kullanılır. 1 ve 2 no lu uçlar zamanlayıcı-2 için harici giriş uçları olarak da kullanılabilir. Bu taktirde 1-2 no lu uçlar port olarak G/Ç için kullanılmazlar. P1 portu çalışması için harici pull up (mantık 1 seviyesine çekebilmek için kullanılır) direnci gerektirmez.

Mikrodenetleyiciler 80C52 Uç Fonksiyonları 80C52 Uç Fonksiyonları Figure: 80C52 mikrodenetleyicisinin dış görünüşü

Mikrodenetleyiciler 80C52 Uç Fonksiyonları 80C52 Uç Fonksiyonları Mikrodenetleyicinin 9 no.lu ucu (RST) mikrodenetleyiciyi resetlemek için kullanılır. Eğer bu uca kısa bir süre mantık 1 sinyali (+ 5V) uygulanırsa mikrodenetleyici resetlenir. Mikrodenetleyici resetlendiğinde 0000H adresine dalınarak tüm ROM bellekteki programı baştan yeniden çalıştırır.

Mikrodenetleyiciler 80C52 Uç Fonksiyonları 80C52 Uç Fonksiyonları Mikrodenetleyicinin 10-17 no.lu uçlan P3 portu için G/Ç amaçlı kullanılır. 10-17 no lu uçlar port olarak G/Ç için kullanılmadıklarında alternatif fonksiyonlar içinde kullanılabilir. 10-11 no.lu uçlar (TX, RX) seri haberleşme (UART) için kullanılır. 12-13 no.lu uçlar (INTO-INTI) harici kesme girişleri için kullanılabilir. 14-15 no.lu uçlar (TO, Tl) zamanlayıcı-o ve zamanlayıcı-1 için harici giriş ucu olarak kullanılabilir. 16-17 no.lu uçlar eğer harici RAM bellek kullanılmış ise, harici RAM bellekten okuma ve yazma yapmak için kullanılır. P3 portu çalışması için harici pull up direnci gerektirmez.

Mikrodenetleyiciler 80C52 Uç Fonksiyonları 80C52 Uç Fonksiyonları 18-19 no.lu uçlar (XTAL1, XTAL2) mikrodenetleyicinin çalışması için gerekli saat frekansını sağlayan kristal elemanın bağlandığı uçlardır. 20 no lu uç (GND) toprak ve 40 no lu uç ise besleme (+5V) güç kaynağı uçlarıdır. Mikrodenetleyicinin 21-18 no lu uçlan P2 portu için GIÇ amaçlı olarak kullanılır. Eğer harici RAM veya ROM bellek kullanılmış ise bu bellekleri adreslemek için adresin yüksek değerlikli kısmi (A8...A15) yine bu porttan gönderilir. 29 no lu uç (PSEN) harici program belleğini seçmek için kullanılır. 30 no lu uç (ALE) harici bellek kullanıldığında, adres/veri hatlarını ayırmak için kullanılan yongayı yetkilendirmek için kullanılır.

Mikrodenetleyiciler 80C52 Uç Fonksiyonları 80C52 Uç Fonksiyonları 31 no lu uç (EA) dahili veya harici ROM belleklerden hangisinin kullanılacağını seçmek için kullanılır. Eğer EA ucu GND hattına bağlanırsa harici ROM, VCC hattına (+5 V) bağlanırsa dahili ROM kullanılır. Mikrodenetleyicinin 32-39 no lu pinleri P0 portu için G/Ç amaçlı olarak kullanır. Aynı zamanda harici belleği adreslemek için adres verisinin düşük değerlikli (A0...A7) kısmını göndermede de kullanılmaktadır.

Mikrodenetleyiciler Mikrodenetleyici Seçimi Mikrodenetleyici Seçimi Herhangi bir uygulamada mikrodenetleyici kullanılmak istendiğinde aşağıdaki unsurlar göz önünde bulundurulmalıdır. Mikrodenetleyicinin çalışma hızı G/Ç port sayısı. Bellek büyüklüğü Analog dijital dönüştürücü Kesme sayısı Zamanlayıcı veya sayıcı adedi Yukarıda belirtilen unsurlar aşağıda kısaca açıklanmaktadır.

Mikrodenetleyiciler Mikrodenetleyici Seçimi Mikrodenetleyicinin Çalışma Hızı Kesintisiz güç kaynağı (UPS), statik regülatörler, motor hız kontrol uygulamaları gibi yerlerde bir kontrol sinyalinin başlama ve bitiş süresi belirli bir zaman zarfında gerçekleştirilmesi gerekir. Eğer böyle bir zaman sınırlaması söz konusu ise mikrodenetleyicinin çalışma hızı önem arz etmektedir. Mikrodenetleyicinin çalışma hızı, mikrodenetleyicinin çalışma frekansına (kullanılan XTAL frekansı), mikrodenetleyicinin makine çevrimine (tek bir komutu işleme süresi), kaydedici büyüklüklerine bağlı olmaktadır.

Mikrodenetleyiciler Mikrodenetleyici Seçimi Mikrodenetleyici G/Ç Port Sayısı Uygulama içinde giriş için butonlar (anahtarlar), çıkış için LCD veya LED görüntü elemanları ve çeşitli kontrol sinyalleri göndermek için gerekli olan G/Ç uç sayısı önem arz eder. Mesela, az sayıda giriş yapılacak ve ekranda herhangi bir gösterge elemanı kullanılmayacak ise az uçlu bir denetleyici uygulama için seçilebilir. Atmel firmasının AT89C2051 mikrodenetleyicisi 20-uç DIP, AT89C52 mikrodenetleyicisi 40-uç DIP şeklinde üretilmektedir. Eğer port sayısı uygun ve diğer özellikleri yeterli ise AT89C2051 kullanıldığında uygulama için geliştirilecek baskılı devre kartı daha küçük boyutlu ve dolayısı ile düşük maliyetli olacaktır.

Mikrodenetleyiciler Mikrodenetleyici Seçimi Bellek Büyüklüğü Mikrodenetleyici içinde program ve veri saklamak için kullanılan bellek büyüklüğü bazı uygulamalarda önem arz etmektedir. Uygulama programı için de büyük boyutlu bakış tabloları kullanılıyor ise program belleğinin büyük olması gerekmektedir. Çünkü bakış tabloları değişmeyen sabit bilgiler içermektedirler. Uygulama için yazılan assembly programları da fazla yer kaplayabilir. Uygulama programlan da program belleğinde saklandıklarından seçilen mikrodenetleyicinin ne kadarlık bir program belleğine sahip olduğu önem arz etmektedir.

Mikrodenetleyiciler Mikrodenetleyici Seçimi Bellek Büyüklüğü Program belleği olarak EPROM, FLASH, OTP ROM belleklerinden yalnız biri kullanılmaktadır. Program yazma veya geliştirme aşamasında EPROM veya FLASH program belleğine sahip mikrodenetleyiciler seçilirken, Program geliştirildikten ve test edildikten sonra aynı mikrodenetleyicinin OTP ROM (One times programmable ROM- Bir kez programlanabilen ROM) olanı kullanılmaktadır. Çünkü OTP ROM, EPROM ve FLASH belleğe sahip olanlara göre daha ucuzdur. Son zamanlarda geliştirme aşamasında kullanılan Mikrodenetleyicilerin FLASH belleğe sahip olanları tercih edilmektedir. Bunun sebebi FLASH belleğin programlama cihazlan vasıtası ile çok kısa bir zamanda silinmesi ve tekrar programlanabilmeleridir. Tekrar programlanabilme sayıları yaklaşık 1000 defadır.

Mikrodenetleyiciler Mikrodenetleyici Seçimi Bellek Büyüklüğü EPROM olanlar ise silinmek için ultraviyole ışık veren silici cihazlara ihtiyaç duyarlar ve silinmesi için geçen süre yaklaşık 10 dakikadır. RAM bellek program belleğindeki uygulama programının çalıştırılması sırasında geçici değerlerin ve program içinde tanımlanan değişkenlerin saklanması için kullanılmaktadır. Büyük boyutlu programlarda, çok sayıda değişken kullanıldığında ve program içinde dinamik diziler tanımlandığında RAM bellek boyutu önem arz eder. Standart olarak 256 KB ile üretilen 8051 mikrodenetleyicilerinin bazı tiplerinde extra RAM (XDATA) bulunmaktadır.

Mikrodenetleyiciler Mikrodenetleyici Seçimi Bellek Büyüklüğü Çalışma anında RAM belleğe atılan veriler sistem kapatıldığında otomatik olarak silinmektedir. Ayrıca Mikrodenetleyici çalışırken bazı kurulum değerlerinin kaydedildiği EEPROM belleklerde bulunmaktadır. EEPROM belleklerin özelliği çalışma esnasında veri yazma/silme yapılabilmesi ve sistem kapatıldığında verilerin silinmeden kalabilmesidir.

Mikrodenetleyiciler Mikrodenetleyici Seçimi Analog Dijital Dönüştürücü Birçok uygulamada Analog-dijital dönüştürücü eleman kullanılması gerekmektedir. Mesela, oda sıcaklığı, basınç, nem, akım, gerilim gibi analog değerler anlık olarak mikrodenetleyici ile kontrol edilmek istenebilir. Bu durumda, ya harici bir ADC ya da ADC ye sahip olan bir mikrodenetleyici kullanılmalıdır. Burada kullanılacak ADC nin kaç bitlik ve kaç kanallı olduğu önemlidir. ADC nin bit sayısı ölçüm hassasiyetini belirlemektedir. Eğer 5 farklı analog değer ölçülecek ise kullanılan ADC nin en az 5 veya daha fazla kanalı olmalıdır.

Mikrodenetleyiciler Mikrodenetleyici Seçimi Kesme Sayısı Daha önce anlatıldığı gibi kesme, mikrodenetleyici bir iş ile uğraşırken (bir komutu işlerken) gelen uyancı bir sinyal ile (bu sinyal harici veya dahili olabilir) o an yapmakta olduğu işi bırakıp kesme sinyalinin gerektirdiği işe dallanması ve bu işi bitirdikten sonra tekrar kaldığı işe devam etmesi olarak tanımlanır. Kesme yapısı ile mikrodenetleyicinin anlık olarak cevap vermesi veya yapması gereken işler yaptırılır. Böylece mikrodenetleyicinin gerçek zamanlı olarak çevre birimlerden gelen isteklere cevap vermesi sağlanırken mikrodenetleyicinin daha az meşgul olması farklı türden isteklere cevap vermesi için zaman kazanması sağlanır. Bu yüzden bir mikrodenetleyicinin ne kadar kesme üreten kaynağa (birime) sahip olduğu önem arz etmektedir. Harici kaynaklar, dahili olarak zamanlayıcı ve sayıcılar, seri port, birimleri kesme üretebilir.

Mikrodenetleyiciler Mikrodenetleyici Seçimi Zamanlayıcı ve Sayıcı Mikrodenetleyici için de belki de en çok kullanılan birimler zamanlayıcı ve sayıcılardır. Belirli aralıklarla yaptırılması gereken işler, haricen gelen bir sinyalin saydırılması, seri port haberleşmesinde baud rate ayarlamak, ve bazen de PWM (Pulse Width Modulation-Pals genişlik modülasyonu) sinyalleri üretmek için kullanılırlar.

80C52 ailesi içerisinde 8-bitlik bir işlemci vardır. Bu işlemci de diğerleri gibi ALU, zamanlama ve kontrol birimi ve kaydedicilerden meydana gelmiştir. ALU, mikroişlemciler konusunda anlatıldığı gibi aritmetik işlemlerden sorumludur. Zamanlama ve kontrol birimi CPU ya gelen ve giden veri akışının senkronizasyonundan sorumludur. Verilerin, veri yoluna yerleştirilmesi veya veri yolundan okunması işlemlerini koordine eder. PSEN, ALE, WR kontrol sinyallerini üretir.

80C52 Kaydedicileri 80C52 Kaydedicileri Programcı mikrodenetleyici ile bir iş yaptırmak istediğinde bunu program yazarak gerçekleştirir. Program yazabilmek için mikroişlemcide olduğu gibi mikrodenetleyicinin mimari yapısını, çalışma ilkelerini, kaydedici sayısını ve bunların hangi amaçlar için kullanıldığının bilinmesi gerekmektedir. Çünkü kaydediciler programcının denetimi altındadır. Programa kaydedicilere istediği veriler yazabilir veya okuyabilir. Kaydedicilere yazılan veriler ile programcı, mikrodenetleyici içindeki zamanlayıcı, sayıcı, seri haberleşme birimi, kesmeler varsa ADC birimi vb. diğer birimleri kontrol edebilir. Yalnızca IR ve PC kaydedicileri programcının direkt denetimi altında değildir. Bu iki kaydedicinin dışında kalan diğer kaydediciler özel fonksiyon kaydedicileri (SFR-Special function register) olarak ifade edilirler.

80C52 Kaydedicileri Özel Fonksiyon Kaydedicileri A, B, PSW, DPTR, P0, P1, P2, P3, SBUF, TH0, TL0, TH1, TL1, IP, TMOD, TCON, SCON, PCON kaydedicileri birer özel fonksiyon kaydedicileridir. Bu kaydedicilerin her birinin RAM belleğin 80H-FFH arası adres bölgesinde bir adresi vardır, Bu adres bölgesine doğrudan adresleme modu kullanılarak erişilebilir. Bu kaydedicilerden birine bir veri yazıldığında, kaydedicinin RAM bellek adresine veri yazılmış olur. Kaydedicilerden birine ait RAM adresine bir veri yazıldığında ise o kaydediciye veri yazılmış olur.

Figure: 80C52 özel fonksiyon kaydedicileri ve RAM bellek adresleri Mikroişlemciler-IMikrodenetleyiciler 80C52 Kaydedicileri Özel Fonksiyon Kaydedicileri

80C52 Kaydedicileri Özel Fonksiyon Kaydedicileri Yukarıdaki şekilde kenarında * işareti olan kaydediciler bit adresleme ile kullanılabilmektedirler. Başka bir deyişle bu kaydedicilerin her hangi bir biri diğerlerinden bağımsız olarak 1 veya 0 yapılabilir. Diğer taraftan mikroişlemciye RESET atıldığında SFR lerin aldıkları değerler önemlidir. Mesela P0 portu RESET den sonra FFH veya 1111111 1B değerini almaktadır. Bu port ile bir LED sürülüyor ise, RESET den hemen sonra LED ler yanacaktır.

80C52 Kaydedicileri Özel Fonksiyon Kaydedicileri Akümülatör kaydedicisi: Kısaca A veya ACC olarak gösterilen bu kaydedici 8 bitliktir ve veri transfer işlemleri, aritmetik ve mantık işlemleri, harici veri, program belleğine erişim işlemlerinde kullanılır. RAM bellekte E0H adresinde yer alır. B Kaydedicisi: 8 bitlik bir kaydedicidir ve çarpma ve bölme işlemlerinde kullanılır.

80C52 Kaydedicileri Özel Fonksiyon Kaydedicileri Bayrak Kaydedicisi (PSW-Processor Status Word): İşlemci durum kaydedicisi olarak da bilinen bu kaydedici programcıya işlenmiş komutun sonuçları hakkında bilgi vermek ve RO...R7 kaydedicileri kullanabilmek için bank seçimi yapmayı sağlar. Bayrak kaydedicisinde elde (C) biri, taşma (0V) biri, eşlik (P-Parity) biti, yardımcı elde (AC-Auxilary carry) biri ve RSO, RS 1 bank seçim bitleri yer almaktadır. Aritmetik işlemlerde, mesela toplama işleminde sonuç 8- biri aşarsa elde biri 1 olur. Programcı şartlı dallanma komutlarından birini kullanarak, eğer elde varsa şu etikete git gibi bir komutla programı yönlendirebilir.

80C52 Kaydedicileri Özel Fonksiyon Kaydedicileri Figure: PSW kaydedicisi

80C52 Kaydedicileri Özel Fonksiyon Kaydedicileri Yığın bellek gösterici (SP-Stack Pointer): Yığın belleğe atılacak verilerin adresini tutan 8 bitlik bir kaydedicidir. Başlangıçta 07H adresine varsayılan değer olarak ayarlanır. Altyordam çağrılarında ve kesme hizmet altyordamlarına dallanmadan önce programın kaldığı noktaya dönebilmesi için dönüş adresleri otomatik olarak SP nin gösterdiği bellek alanına atılır. SP ye değer atılmadan önce değeri iki artırılır. PUSH komutu ile bir kaydedici içeriği yığın belleğe atılmadan önce SP 1 artırılır. Daha sonra SP nin gösterdiği bu adrese veri yazılır. SP kaydedicisi RAM bellekte 81H adresinde yer alır.

80C52 Kaydedicileri Özel Fonksiyon Kaydedicileri Veri gösterici (DPTR-Data Pointer): 16 bitlik bir kaydedicidir. DPH, DPL olmak üzere iki bölümden oluşur. Harici program ve veri belleğine erişirken akümülatörle birlikte bellek adresini göstermek için ve JMP komutunda uzun dallanmalarda kullanılır. RAM bellekte 82H ve 83H adresinde yer alır. P0, P1, P2, P3 Port kaydedicileri: 8-bitlik kaydedicilerdir. RAM bellekte sırası ile 80H, 90H, AOH, BOH adreslerinde yer alırlar. Port kaydedicileri mikrodenetleyicinin dış dünyaya açılan kapılarıdır. Mikrodenetleyiciye harici bir birimden gelen bilgileri almak veya mikrodenetleyiciden harici bir birime çıkış verisi göndermek için kullanılırlar.

80C52 Kaydedicileri Özel Fonksiyon Kaydedicileri Seri haberleşme veri tamponu (SBUF-Serial Data Buffer): 8 bitlik bir kaydedicidir. Bir başka birimle mesela bir bilgisayar veya bir başka mikrodenetleyici ile seri veri haberleşmesi yaparken, seri olarak gelen veya giden verilerin tutulması için kullanılır. Zamanlayıcı kaydedicileri (TH0, TL0, TH1, TL1, TH2, TL2): Zamanlama ve sayıcı işlemlerinde zaman bilgisini tutarlar ve 8 bitlik kaydedicilerdir. Zamanlayıcı-0 için TH0 ve TL1 birlikte 16 bit olarak zaman değerini saklarlar. Diğer iki zamanlayıcı için de aynı kullanım geçerlidir.

80C52 Kaydedicileri Özel Fonksiyon Kaydedicileri Kontrol kaydedicileri: IP, le, TMOD, TCON, T2CON, SCON, ve PCON çeşitli işlemleri kontrol etmek için kullanılır. Mesela TCON kaydedicisinde her bir bitin farklı bir görevi vardır. Bu kontrol kaydedicisindeki 4. bit 1 yapıldığında zamanlayıcı çalışmaya başlar, 0 yapıldığında zamanlayıcı çalışmasını durdurur.

80C52 Kaydedicileri Diğer Kaydediciler Komut kaydedicisi (IR-Instruction Register): Komut kaydedicisi program belleğinden (ROM/EPROM/FLASH) okunan komut kodlarının tutulduğu 8-bitlik kaydedicidir. Program sayacı (PC-Program counter): Program sayacı bir komut işlenirken bir sonraki işlenecek olan komutun adresini gösterir. PC kaydedicisi 16-bitliktir ve PCH, PCL olarak ikiye aynlmıştır. PCH adresin yüksek değerlikli 8 birlik kısmını, PCL ise adresin düşük değerlikli 8 bit kısmını tutmaktadır. İkisi birleşerek 16 bit PC yi oluşturur. R0...R7 kaydedicileri: Bu kaydediciler RAM belleğin 00-IFH adresleri arasında kalan bellek bölgesini kullanırlar. Veri transfer işlemleri, aritmetik işlemler ve dolaylı adresleme de kullanılırlar. Bu kaydedicilerin kullanım şekli, veri belleğinin yapısı konusunda daha detaylı anlatılmaktadır.

CPU Zamanlaması CPU Zamanlaması Zamanlama ve kontrol birimi, işlemciye gelen ve giden veri akışının senkronizasyonundan sorumludur. Verilerin, veri yoluna yerleştirilmesi veya veri yolundan okunması işlemlerini koordine eder. PSEN, ALE, WR kontrol sinyallerini üretir. Bu işlemler için gerekli saat sinyalini mikrodenetleyicinin XTAL1 ve XTAL2 uçlarına bağlanan kristal elemandan alır. Kullanılan kristal çoğu 8051 ailesi mikrodenetleyici için 0-24MHz arasındadır. Bazıları daha yüksek kristal değerinde de çalışabilir. Mikrodenetleyicinin maksimum hangi frekansta çalıştığı katalog değerlerinden öğrenilebilir.

CPU Zamanlaması CPU Zamanlaması Daha öncede açıklandığı gibi bir komutun çalışması komut kodunu algetir (fetch), kodu çöz (decode) ve çalıştır (execute) olmak üzere üç aşamada tamamlanır. 80C52 mikrodenetleyicisi minimum 12 saat periyodunda bir komutu işleyebilir. Buna işlemcinin makine çevrimi denmektedir. Standart olarak 8051 ailesi mikrodenetleyicilerinin makine çevrimi 12 dir. 12Mhz bir kristal kullanıldığında bir komutun minimum 1 mikro saniyede çalışması biter. Mesela MOV A, Wl0 komutu 1 makine çevrimi, MUL AB komutu 4 makine çevrimi çeker. 12 MHz Kristal kullanıldığında bu iki komutun çalışması sırası ile 1 ve 4 mikro saniye, 24Mhz kristal kullanıldığında sırası ile 0,5 ve 2 mikro saniye zaman alacaktır.

CPU Zamanlaması CPU Zamanlaması Cygnal firmasının 8051 ailesi mikrodenetleyicileri makine çevrimleri 1, Dallas firmasının 4 dür. Cygnal firmasını üretmiş olduğu mikrodenetleyiciler aynı frekansta 12 kat daha hızlı çalışabilir. Dallasın mikrodenetleyicileri ise 3 kat daha hızlı çalışabilir. MIPS ifadesi kristal frekansının makine çevrimine bölümü ile bulunabilir. Mesela Dallas firmasının mikrodenetleyicisinin makine çevrimi 4 olduğuna göre, 12Mhz kristal kullanıldığında (12/4)=3 olarak MIPS cinsinden hızı hesaplanabilir. Bu yüzden mikrodenetleyicinin seçiminde makine çevrimi önemli bir faktör oluşturmaktadır.

CPU Zamanlaması Figure: 80C52 nin kristal bağlantı şekli

Port Yapısı Port Yapısı P0, P1, P2, P3 portları çift yönlü olarak giriş ve çıkış olarak kullanılabilir. Her bir port D tipi flip floptan oluşan bir tutucu (Lanch-), çıkış sürücüsü (FET) ve giriş tamponlarından oluşmaktadır. P0 ve P2 harici belleğe erişmede kullanılmaktadır. Bu yüzden P0 ve P2 portunda bilgi seçici eleman (multiplexer) kullanılmaktadır. Bu bilgi seçici eleman harici belleğe adres veya veri gönderilirken P0 ve P2 portlarının adres/veri hattını, aksi takdirde D flip flop çıkışını seçmektedir.

Port Yapısı Port Yapısı Figure: 80C52 port yapısı

Port Yapısı Port Yapısı P1, P2, P3 portları çıkışında dahili pull-up dirençleri vardır. Bu portlar giriş olarak kullanıldığında D flip flop larına öncelikle 1 yazılarak port giriş olarak ayarlanır. Bu durumda Q çıkışı mantıksal 0 olacak ve sürücü FET yalıtım durumunda olacaktır. Bu takdirde port ucuna gelen veri 1 veya 0 olarak okunacaktır. Eğer port giriş olarak ayarlanmadan porttan okuma yapılmak istenirse, FET iletim durumunda olabileceğinden port ucuna gelen mantıksal 1 verisi algılanamaz.

Port Yapısı Port Yapısı P0 portu diğerlerinden farklı olarak dahili pull-up direncine sahip değildir. Bunun yerine üstte ikinci bir FET bulunmaktadır. Bu FET yukarıda bahsedildiği gibi sadece harici belleğe erişim işleminde iletim durumundadır. MOVC ve MOVX komutlarının dışında porttan bilgi okumak mümkün değildir. Harici bellekten veri okumanın dışında P0 portunu çift yönlü giriş ve çıkış olarak kullanabilmek için port çıkışına 4.7K gibi harici bir pull up direnci bağlanmalıdır. P1.1 ve P1.2 port uçları ile P3.0 - P3.7 port uçları alternatif amaçlarlarla kullanılabilir.

Port Yapısı Port Yapısı Figure: P1 ve P3 portlarının alternatif fonksiyonları

80C52 Bellek Yapısı 80C52 mikrodenetleyicisi program belleği ve veri belleği olmak üzere iki ayrı bellek düzeneğine sahiptir. Program belleği program kodlarını saklamak için, veri belleği ise programın işleyişi sırasında üretilen veya kullanılan geçici değerlerin saklanması için kullanılır. Program belleği için ROM, EPROM veya FLASH bellek türlerinden biri kullanılırken, veri belleği için ise RAM bellek kullanılmaktadır.

80C52 Bellek Yapısı Program Belleği 80C52 nin program belleği 8KB ROM, 87C52 için 8KB EPROM ve AT89C52 için 8KB FLASH olarak tasarlanmıştır. Program belleğinde program kodlarının yanı sıra programın işleyişi sırasında kullanılacak sabit değerler ve veri tabloları (bakış tablosu) da bulunabilir. Çoğu zaman 8KB bellek yeterli olmaktadır. Ancak sabit değerlerin veya bakış tablosunun boyutu büyük ise, daha büyük dahili program belleğine sahip bir mikrodenetleyici seçilmeli veya harici bir ROM bellek kullanılmalıdır. Aynı durum RAM bellek içinde geçerlidir. Mikrodenetleyiciye bağlanacak harici ROM veya RAM belleğin büyüklüğü 64KB olabilir.

80C52 Bellek Yapısı Program Belleği Figure: 80C52 program belleğinin kullanımı

80C52 Bellek Yapısı Program Belleği Eğer harici ROM kullanılmış ise mikrodenetleyicinin EA pini 0 yapılmalıdır. Eğer EA ucu 1 (+5V) yapılmış ise bu durumda 0000-IFFF adresleri arasındaki dahili 8KB ROM bellek ile 2000-FFFF arasındaki 56KB harici ROM birlikte kullanılabilir. Eğer EA ucu 0 yapılmış ise bu durumda sadece 0000-FFFFH adres aralığındaki harici ROM program belleği olarak kullanılabilir. Mikrodenetleyici reset edildiğinde veya ilk defa çalıştırıldığında program belleğinin 0000H adresine dallanır. Ve buradaki program kodunu çalıştırmaya başlar. Eğer EA=0 ise harici ROM belleğin 0000H adresi reset anında başlangıç adresi olarak seçilir. Eğer EA= 1 ise dahili ROM belleğin 0000H adresi başlangıç adresi olarak seçilir ve buradaki komut kodu ilk olarak çalışmaya alınır.

80C52 Bellek Yapısı Veri Belleği Veri belleği 128 Bayt veya 256 Bayt olabilir. Standart olarak 8051 ailesinde 128 bayt yerleşiktir. 80C52 ve üzeri gelişmiş versiyonların hepsinde 256 Bayı veri belleği bulunmaktadır. Ayrıca 64 KB istenirse harici bir veri belleği kullanılabilir. RAM bellek program içinde kullanılan geçici değerlerin saklanmasında kullanılır. Dahili veri belleği her biri 128 baytdan oluşan 3 adet sayfadan oluşuyormuş gibi düşünülebilir. Her sayfadaki veriye erişim yöntemi farklıdır.

80C52 Bellek Yapısı Veri Belleği 00-7FH adresleri arasındaki ilk 128 baytlık bölümüne doğrudan veya dolaylı adresleme türlerinden biri kullanılarak erişilebilir. 80H-FFH adreslerini kullanan iki sayfa vardır. 80H-FFH adreslerine doğrudan adresleme yöntemi ile erişildiğinde mikrodenetleyicinin kaydedicilerinin yer aldığı sayfaya erişilmiş olur. Mikrodenetleyici kaydedicilerine özel fonksiyon kaydedicileri denilmektedir. 80H- FFH adreslerine dolaylı adresleme yöntemi ile erişildiğinde başka bir sayfaya erişilmiş olunur. Mikrodenetleyici de dahili ve harici RAM bellek aynı anda birlikte kullanılabilir.

80C52 Bellek Yapısı Veri Belleği Figure: 80C52 mikrodenetleyicisinin veri belleği

80C52 Bellek Yapısı Veri Belleği 00H-7FH adresleri arasındaki 128 bayt RAM bölgesi üç şekilde kullanılmaktadır. 00H ile 1FH adresleri arasında 32 baytlık kısım 8 baytlık 4 banka bölünmüştür. Her bank içinde R0 dan R7 ye kadar 8 adet kaydedici yer alır. Bu bank ve kaydediciler dolaylı adreslemede veya kaydedici adresleme modunda kullanılır. Hangi bankın kullanılacağı bayrak kaydedicisi içindeki (PSW) RS1 ve RS0 bitleri set edilerek belirlenir. Belleğin bu şekilde kullanımı kaydedici adresleme modunda mikrodenetleyiciye daha hızlı işlem yapma imkanı sunar. Mesela PSW içindeki RS1=1 ve RS=0 yapılmış ise Bank2 seçilmiş olur. Bu durumda R0 kaydedicisine bir değer yüklendiğinde Bank2 içindeki R0 kaydedicisine veya belleğin 10H adresine bu değer yazılmış olur.

80C52 Bellek Yapısı Veri Belleği Figure: 80C52 nin 128 baytlık bölümü

80C52 Bellek Yapısı Veri Belleği Belleğin 20H-2FH adresleri arası bit veya Bayt erişimli olarak kullanılabilir. 30H-7FH adresleri arası ise sadece bayı olarak kullanılabilir. Bu kullanım şekilleri mikrodenetleyicilerin adresleme modları ile ilgili olup bu konu daha sonra ayrıntılı bir şekilde anlatılmaktadır.

80C52 Bellek Yapısı Yol Kontrol Sinyalleri ve Zamanlama Adres ve veri yolu üzerindeki sinyal akışını ve zamanlamayı öğrenmek 80C52 mikrodenetleyicisinin harici program ve veri belleğini kullanırken önem arz eder. Harici program belleğini okumak için P0, P2 portları, ALE ve PSEN kontrol sinyalleri kullanılır. P0, P2 birlikte 16-bit bellek adresini oluşturur. P0 portu hem adres hem de veri yolu olarak kullanıldığından adres ve veri yolunu ayırmak için çıkışta bu port üzerine 74LS373 tutucusu (latch) kullanılır. ALE tutucuyu yetkilendirerek adresin düşük değerlikli kısmının saklanmasını sağlar. PSEN sinyali ise ROM belleği yetkilendirerek girişteki 1 6-birlik adresin gösterdiği bellek hücresindeki yerinin bellek çıkışına konulmasını sağlar. Harici program belleğinden bir veriyi okumak için MOVC A,@A+DPTR komutu kullanılır.

80C52 Bellek Yapısı Yol Kontrol Sinyalleri ve Zamanlama Figure: Program ve veri belleğine erişmek için kullanılan kontrol sinyalleri ve zamanlama diyagramı

80C52 Bellek Yapısı TEŞEKKÜRLER