Hazırlayan: Ozan Haznedaroğlu – Emeği geçen Kişilere Teşekkürler. Mikroişlemci Sistemi Mikroişlemcin adet data hattı, m adet adres hattı ve t adet hattı bulunan; bu hatlar vasıtasıyla aldığı bilgileri, daha önceden yazılmış bir programa göre işleyerek, değerlendiren bir birimdir.
Mikroişlemci sisteminin işleyebilmesi için dört ana unsurun uyum içinde çalışması gerekir. Bu unsurlar şunlardır;
• Merkezi işlem birimi (MİB)
• Bellek
• Çoklu Yol (BUS)
• Giriş/Çıkış Birimleri (I/o port)
Merkezi İşlem Birimi (CPU)
Merkezi işlem birimi çoklu yol aracılığıyla, bellekten ve giriş/ Çıkış birimlerinden gelen bilgileri kendi özel mantığına göre çözerek, yapılacak işlemler için karar veren birimdir. CPU değişik birimleri arasındaki veri akışı ve veri işleme görevini yerine getirir. SAB80C535 verimli olarak hem denetleyici gibi, hem de aritmetik işlemci gibi çalışır. 12 Mhz kristal osilatör vasıtasıyla görevlerin %58 ini 1µS de yapabilecek kabiliyete sahiptir.
Bellek
Bellek mikroişlemci sisteminin işleyebilmesi için gerekli olan bilgilerin depolandığı yerdir. Böyle bir sistemde bellek iki kısma ayrılır. Bunlar; sistemin çalışması için gerekli programın yüklendiği program belleği (program memory) ve bilgilerin yüklendiği bilgi belleği (data memory) dir. Bellek elemanları kullanım amacına göre RAM (okunur/ yazılır bellek), ROM (salt okunur bellek), PROM Cultraviole ışık ile programlanabilen bellek), EPROM (elektrikle programlanabilen bellek), EEPROM (elektrikle programlanıp silinebilen bellek) olabilir.
Giriş/Çıkış Birimleri (I/O Port)
Giriş/Çıkış birimleri sistemin dış dünya ile iletişiminin sağlandığı bölümlerdir. Mikroişlemci bu birimler aracılığıyla dış dünya ile iletişim kurabildiği gibi, bilgileri kendi hafızası dışında da saklayabilme olanağına sahip olur.
Çoklu Yol (BUS)
Bir mikroişlemci sistemindeki birimlerin, merkezi işlem birimi (CPU) ile iletişimi çoklu yol (BUS) aracılığıyla yapılır. Sistem içinde çoklu yol üçe ayrılır.Bunlar veri yolu (Data Bus), Adres yolu (address Bus) ve Kontrol yolu (control Bus) dur.
Mikrodenetleyici Sistemi
Bir mikroişlemci sisteminde yukarıda anlatıldığı gibi merkezi işlem birimi, bellek ve Giriş/Çıkış (I/O) birimleri yer almaktadır. Mikrodenetleyicide ise bu birimlerin tamamı bir yonga içinde toplanmıştır. Ancak bizim kullandığımız 80C535 mikrodenetleyicisinde ailesinin diğer entegrelerine nazaran dahili EPROM bulunmamaktadır. Bu yüzden 80C535’e dışarıdan EPROM bağlanmalıdır.
Mikroişlemci ile mikrodenetleyici arasındaki temel fark ; mikrodenetleyici program değişikliği olmayan, sabit bir programın sürekli çalışması gereken durumlarda kullanılır. Mikroişlemci ise geniş kapsamlı ve duyarlı işlemler yapmak için seçilen bir sistemdir.
80C535 Mikrodenetleyici Sistemi
80C535 Mikrodenetleyicisinin Genel Yapısı ve Üstün Özellikleri SAB80C535 8051 serisinden gelişmiş entegrelerdir. 80C515 ve 80C535 entegreleri birbirlerine oldukça benzerler. Bunlardan 80C515 iç eprom hafızaya sahiptir. Fakat 80C535’in iç epromu yoktur. Bu yüzden harici bir eprom kullanılacaktır.
80C535’in 68 adet bacağı bulunmaktadır. 8051 de ise bu sayı 40 adet ile sınırlı tutulmuştur. 80C535 fazla bacaklarıyla yeni özellikler taşımaktadır. Bu yüzden de dizayn mühendislerinin ilgisini üstüne çekmeyi başarmıştır. Bunu sebeplerinden birisi 80C535’in daha fazla porta sahip oluşudur. Standart 8051 yalnızca 4 porta sahipken, 80C535, 7 porta sahiptir. P0,P1,P2 ve P3 portları standart 8051 ile aynı görevlere ve aynı pin yapılarına sahiptir.
Ek olarak P4, P5 ve P6 kullanıma sunulmuştur ki bunlardan P4 ve P5 tamamen programcı kullanımını için düşünülmüş, başka fonksiyonları olmayan giriş/çıkış birimleridir. P6 analog sinyal girişidir. 80C535’in Zamanlayıcı 2’si, bu ailenin eski entegrelerine nazaran daha gelişmiştir.
Gelişmiş bir gözleyicizamanlayıcı’ya (WATCHdog Timer) sahip olan 80C535 ayrıca güç kontrolü özellikleri de mevcuttur.
Yapısal Özellikleri
• 256 Byte içsel RAM
• 6 adet I/O (Giriş/Çıkış) portu, 1 adet dijital veya analog giriş portu.
• 3 adet 16-bit Zamanlayıcı/Sayıcı
• Yüksek esneklikte tekrar yükleme, yakalama ve karşılaştırma kabiliyetleri
• Tam çift yönlü seri kanal
• 12 adet interrupt (kesme) vektörü
• 8 kat girişli ve programlanabilir içsel referans gerilimli 8-bit Analog/dijital çevirici
• 16-bit Watch Dog Timer
• Boolean işlemci
• Birçok direktifi 1µS’de gerçekleştirebilme
• 3µS’de çarpma ve bölme işlemleri
• 128 Kbyte’a kadar yükseltilebilir dışsal hafıza
• SAB 8051 ile uyumlu çalışabilme
• SAB 80515 ile işlevsel olarak uyumluluk
• Boşta bekleme ve güç yönetim modları
• Plastik metrik entegre yuvası P-LCC-68
• -40°C ile 85°C sıcaklıkta çalışabilme
SAB 80C535 Siemens’in 8 bitlik güçlü mikro kontrolörlerinden biridir. SAB 80515/80535 aygıtlarıyla uyumlu çalışmak üzere tasarlanmıştır.
SAB 80C535, SAB 8051/80C51 mimarisine dayanarak üretilmiş tek başına güçlü bir tek cip mikro kontrolördür. SAB 80C51’in bütün operasyon karakteristiklerini koruyarak, tasarımda esnekliği ve tüm sistem performansını arttıran yeni özellikleri bulunmaktadır.
Bunlara ek olarak boşta bekleme ve güç yönetim modları sayesinde güç tüketimi azaltılmıştır. 68 bacaklı SAB 80C535 entegresinin plakete oturtma yuvası P-LCC-68 yuvasıda bulunmaktadır. -40°C ile 85°C sıcaklıkta çalışabilme özelliği, çalışma ortamı açısından avantaj sağlamaktadır.
80C535 Mikrodenetleyicisinin Pinleri ve Blok Şeması
Bacak Konfigurasyonu
(Üstten görünüm)
SAB 80C535 entegresi bacak konfigurasyonu (üstten görünüm)
Lojik Sembolü
80C535’in Port Tanımlamaları ve Fonksiyonları
Port 0 (P0.0-P0.7) Entegrenin 52 ile 59 nolu uçlarını oluşturur. Çift yönlü açık 8 bit giriş/çıkış portudur. Bu port dış elemanlar (RAM, ROM) kullanılmadığı zaman normal bir port görevi yapar. Dış elemanlar kullanıldığında ise veri yolu ile adres yolunun alt 8 biti için (A0 – A7) kullanılır.
Port 0 data ve adres yolunu multiplex olarak sürmek üzere tanımlanmıştır. Bu yüzden port 0 pinleri open-drain olarak tasarlanmıştır. Open drain uçlar iç pullup (Yukarı Çekme) dirençlerine sahip olmadığından bu pullup dirençlerinin dışarıya konulması sağlıklı data alışverişi için gerekli olabilir. Mikro denetleyici çalıştığı zaman dış hafızadan veri transferlerinde, önce okunacak veya yazılacak hafıza adresinin düşük baytı port 0’a yüklenir. Daha sonra ise data okunur veya yazılır. Bu multiplex işlem için, 80C535’te iç ROM olmadığı ve dışsal hafıza elemanına (EPROM) bağlandığı için, 74573 türü bir oktal latch kullanılır.
Port 0’ın pin yapısı.
Port 0 giriş olarak kullanılmak istendiğinde, ilgili bite 1 yazılır. Bu sayede her iki transistörde off durumuna getirilir. Her iki transistöründe off olduğu bu durum yüksek empedans durumu olarak adlandırılır. Bu durumda giriş direkt olarak Pin data oku hattına bağlanmış olur. Port 0 çıkış olarak kullanıldığında , 0 yazılmak istendiğinde alt FET açılarak
pin topraklanır. 1 yazılmak istendiğinde ise çıkışlar yine yüksek empedans durumuna geçer. Dolayısı ile port 0 çıkış olarak kullanıldığında, yüksek sinyalleri sağlıklı görebilmek için, port 0 çıkışlarına pull-up dirençleri koymak gereklidir.
Port 0 adres bus olarak kullanıldığında ise, iç kontrol mantığı, adres hatlarının FET girişlerine bağlar. Adres hattına 1 yazmak için üst FET on, alt FET off yapılır ve dış hatta lojik 1 verilir. Adres hattına 0 yazılacaksa ise, üst FET off alt, FET on yapılır ve çıkış toprağa çekilir. Adres oluşturulduktan ve adres yoluna ALE darbesiyle yerleştirildikten sonra, adres yolu data yolu haline gelir. Bu durumda port 0 dış hafızadan bilgi okumak üzere otomatik olarak giriş moduna getirilir.
Port 1 (P1.7-P1.0)
Entegrenin 29 ile 36 nolu bacakları port 1’i oluşturur. İç pull-up dirençlerine sahip çift yönlü bir giriş/çıkış portudur. Port 1 giriş olarak kullanılacağı zaman, FET off yapılır ve dolayısıyla çıkış iç pull up direnci ile 1 olur. Dışarıdan bağlanan 0 değeri yüksek iç pull-up direncini yenerek pin girişini 0 yapar. Bu sayede 0 değeri okunur. Dışarıdan girilen 1 değeri ise pin değerini değiştirmez.
Port 1’ın pin yapısı.
Port 1 çıkış olarak kullanıldığı zaman ise, pine 1 yazılacağı zaman FET off yapılır. Bu sayede pull-up direnci üzerinden dış devre 1 değerine sürülür. 0 yazılacağı zaman ise, FET açılır ve FET çıkışı toprağa alınır.
Bu port kesme, zamanlayıcı, clock, yakala ve karşılaştır bacaklarını da içerir. Port 1’in ikinci bir görevi ise, sistemin dış dünya ile haberleşmesi için gerekli olan kontrol uçlarının bu port üzerinde olmasıdır. Bu uçlar ve görevleri ise şunlardır:
____
-INT3/CC0 (P1.0): Kesme 3 giriş/karşılaştırma 0 çıkış/yakala 0 girişi
____
-INT4/CC1 (P1.1): Kesme 4 giriş/karşılaştırma 1 çıkış/yakala 1 girişi
____
-INT5/CC2 (P1.2): Kesme 5 giriş/karşılaştırma 2 çıkış/yakala 2 girişi
____
-INT6/CC3 (P1.3): Kesme 6 giriş/karşılaştırma 3 çıkış/yakala 3 girişi
____
-INT2 (P1.4): Kesme 2 girişi
-T2EX (P1.5): Zamanlayıcı 2 harici yeniden yükle tetikleme girişi
-CLKOUT (P1.6): Sistem clock çıkışı
-T2 (P1.7): Sayıcı 2 girişi
Port 2 (P2.0-P2.7)
Entegrenin 41 ile 48 nolu uçları port 2 yi oluşturur. İçsel pull-up dirençlerine sahip iki yönlü 8 bit giriş/çıkış portudur. Dış hafıza elemanlarına ulaşırken adres yolunun üst bitleri (A8-A15) olarak görev yapabilir. Birim dış hafıza elamanlarına ulaşılmak istendiğinde aktif hale gelerek adres yolu olarak görev yapar. Port 2 adres hattı olarak kullanıldığında, adresleme boyunca kararlı kalır. Port 0 da olduğu gibi data girişi yapmak üzere tekrar 1 lenmez. Port 2 basit giriş çıkış için kullanıldığında ise, aynen Port 1 gibi kullanılır.
Port 2’nın pin yapısı.
Port 2 dışsal hafıza belleğinden veri alırken ve dışsal hafıza belleğine erişim sağlarken, yüksek öncelikli adres byte’larını yayarken 16 bitlik adresleri kullanır (MOVX@DPTR). Bu uygulamada 1’lerin ihracı yapılırken güçlü içsel yukarı çekme dirençleri kullanılır. 8 bit adresler kullanılarak dışsal hafıza belleğine erişimde (MOVX@Ri), port 2 kendi özel fonksiyon kaydedicisinin içeriğini çıkarır. (SFR)
Port 3 (P3.0-P3.7)
Entegrenin 21 ile 28 nolu bacakları port 3’ü oluşturur. İçsel pull-up dirençlere sahip iki yönlü giriş/çıkış portudur. Bu port kesme, zamanlayıcı, seri port ve çeşitli seçeneklerle kullanılan harici hafıza biriminin bacaklarını içerir.
Port 3’ün bir görevi de, sistemin dış dünya ile haberleşmesi için gerekli olan kontrol uçlarının bu port üzerinde olmasıdır. Bu uçlar ve görevleri ise şunlardır:
-RxD (P3.0): Seri portun alıcı veri girişi (eş zamansız) yada giriş/çıkış (eş zamanlı)
-TxD (P3.1): Seri portun gönderici veri çıkışı (eş zamansız) yada clock çıkışı (eş zamanlı)
-INT0\ (P3.2): Kesme 0 giriş/zamanlayıcı 0 kapı kontrol girişi
-INT1\ (P3.3): Kesme 1 giriş/zamanlayıcı 1 kapı kontrol girişi
-T0 (P3.4): Sayıcı 0 girişi
-T1 (P3.5): Sayıcı 1 girişi
-WR\ (P3.6): Yazma kontrol sinyali Port 0 dan datayı yakalar ve dışsal veri belleğine atar.
-RD\ (P3.7): Okuma kontrol sinyali dışsal veri belleğini Port 0’a atar.
Port 3’ün pin yapısı.
Port 4 (P4.0-P4.7)
Entegrenin 1-3 ile 5-9 nolu bacakları port 4’ü oluşturur. Pull-up dirençlere sahip 8 bit çift yönlü giriş/çıkış (I/O) portudur.
Port 5 (P5.7-P5.0)
Entegrenin 60 ile 67 nolu uçlarını oluşturur. Port 5, 8 bitlik çift yönlü, pull-up dirençlerine sahip bir giriş/çıkış portudur.
Port 6 (P6.7-P6.0)
Entegrenin 13 ile 20 nolu bacakları port 6’yı oluşturur. 8 bit tek yönlü veri iletimine sahip giriş portudur. A/D çeviricinin giriş gerilimleri ile uyuşturulduğu takdirde bu portun bacakları dijital giriş olarak da kullanılabilir.
80C535’in Diğer Pinlerinin Tanımlamaları
__
PE (Power saving mode enable) Güç kazanç modu aktif
Entegrenin 4 nolu bacağını oluşturur. Bu bacaktaki bir düşük seviye (low level) (0V) güç kazanç modlarını aktif hale getirir. (Boşta bekleme ve güç yönetimi modları). Eğer /PE yüksek seviyeye çekilirse (high level) (+5V) güç kazanç modu aktif olamaz.
______
RESET
Entegrenin 10 nolu bacağını oluşturur. Düşük seviye sinyal bu bacağa uygulandığında entegre resetlenir.
V AREF
Entegrenin 11 nolu bacağını oluşturur. Analog / Dijital çevirici için Referans gerilimidir.
VAGND
Entegrenin 12 nolu bacağını oluşturur. Analog / Dijital çevirici için Referans toprak potansiyelidir.
XTAL2
Entegrenin 39 nolu bacağındadır. Tersleyen osilatör yükselticisine giriş ve içsel clock üreticisi devrelerine girişi oluşturur.
XTAL1
Entegrenin 40 nolu bacağındadır. Tersleyen osilatör yükselticisi çıkışı. Bir aygıtı, dışsal bir clock kaynağıyla sürmek için, XTAL1 bağlanmamış şekilde bırakıldığında, XTAL2 sürülmelidir.
_____
PSEN (Program store enable) Program kaydetme aktif
Bu sinyal mikrodenetleyicinin 49 nolu pininden çıkar. Bu sinyalle dış bellek elemanı belirtilen adresteki bilginin veri yoluna çıkmasına izin verir. Her altı osilatör periyodunda aktive edilir.
ALE (Address latch enable) Adres yakalama aktif
Mikro denetleyicinin dış dünya ile haberleşmesinde port 0 hem veri, hem de adres bilgisinin alt 8 biti için (A0 – A7) kullanılır. Bu zamanlama ALE sinyali ile sağlanır. ALE sinyali kristal devresinin çalışıp çalışmadığını gösteren en önemli sinyaldir.
EA (External access enable) Dışsal erişim aktif
Mikro denetleyici içindeki ROM’un program belleği için kullanılıp kullanılmayacağına karar verir. 80C535 için bu uç düşük seviye (0V) olmalıdır. Çünkü 80C535’in içsel ROM’u yoktur. Bunun yerine dışsal Eprom kullanılır.
VCC (Supply voltage)
Mikro denetleyicinin pozitif beslemesi (+5V). 37 ve 68 nolu pinler besleme uçlarıdır.
VSS (Ground)
Mikro denetleyicinin şasesi (0V). 38 nolu pin.
İşlevsel Tanımlamalar ve Mimari Prensipleri
SAB 80C535, SAB 80515 mikro denetleyici ailesinden gelmektedir. Bu ailenin 515’li üyelerinde içsel ROM bulunmakta, ancak 535’lilerde içsel bir ROM bulunmamaktadır. Bu yüzden harici Eprom kullanılır.
80C535 geri dönüktür. Yani SAB 80C51 ile uyumludur. Aşağıda bu uyumlu özellikler yazılmıştır:
-Komut seti
-Harici hafıza genişleme arayüzü (Port 0 ve port 2)
-Tam çift yönlü seri port
-Sayıcı/Zamanlayıcı 0 ve 1
-Port 3’te alternatif fonksiyonlar
80C535 Mikrodenetleyicisinin Bellek Haritası
80C535 bir reset sinyali aldığında veya 80C535 entegresine ilk güç verildiğinde, program sayıcısı 0000H adresinden başlayarak, hafızadaki bilgileri okumaya ve bu bilgileri işlemeye başlar. Eğer EA hattı DÜŞÜK tutulmuşsa ilk hafıza hücresi olarak dış hafızanın birinci elemanı alınır. Mikrokontrolcü PSEN sinyalini DÜŞÜK yapar ve dış hafıza birimi aktiflenir.
Eğer uygulama büyük miktarda data hafızasına gereksinim duyuyorsa, bu durumda dış data hafızası (RAM) kullanılabilir. Dış RAM elemanı ile data alışverişi, MOVX komutlarıyla yapılır. Program içerisinde bir MOVX komutu görüldüğünde, 80C535 otomatik olarak dış data hafızası ile ilgili bir veri iletişimi olduğunu anlar ve uygun WR, RD sinyallerini aktifler.
Eğer 256 bayt RAM yeterliyse, iç RAM hafızayı kullanmak daha avantajlıdır. Çünkü iç hafızaya erişmek, çok daha hızlıdır ve iç hafıza ile bilgi alışverişi için pek çok komut tipi sunulmuştur. 80C535 RAM hafıza temel olarak iki bloktan oluşmuştur. Birinci grup 00H’dan 7FH’a kadar adreslenmiş toplam 128 bayttan oluşur. İkinci grup ise özel fonksiyon data gözleri olarak adlandırılır ve 80H’dan FFH’a kadar adreslidir. Her bir adres bir baytlık bir hafıza dilimine karşılık gelmektedir. Bu sayede kod alanına giriş kolaylaşır ve data alışverişi hızlanır.
Veri Hafızası / Özel Fonksiyon Kaydedicileri Hafızası (SFR)
İç RAM hafızanın dökümü şöyledir: İlk 256 bit, 4 grup 8 bayt data gözünden (register) oluşmuştur. Her bir gruptaki data gözleri R0..R7 olarak adlandırılmışlardır. Bu gözlere direkt olarak data gözünün ismi verilerek ulaşılabilir. Bu dört gruptan hangisinin seçileceği Program Statüsü Registerindeki (Program Status Word PSW) gerekli grup seçme bitlerinin seçilmesiyle yapılır.
Bundan sonra gelen 128 bitlik bölüm bit adreslenebilir bölümdür. Burası 20H ile 2FH arasında adreslidir. Buradaki her bir bite tek tek ulaşılabilir. Dolayısıyla buradaki bitler kullanıcının ON/OFF bayrakları içeren değişkenler için kullanması gereken bölümdür. 30H’dan 7FH’a kadar kısım, genel amaçlı data saklama ve yığın için kullanılır.
İkinci 128 baytlık grup özel fonksiyon data gözlerinden oluşmaktadır. Bu özel fonksiyon data gözleri hem program kodunun işlemesi için gerekli birimleri, hem de 80C535 içindeki donanımla ilgili birimleri içerir. Aşağıdaki tablo özel fonksiyon data (SFR) gözlerinin isimlerini, adreslerini ve fonksiyonlarını vermektedir. (Bu özel fonksiyonlara ileriki bölümlerde ayrıntılı olarak değinilecektir.) Bir özel fonksiyon data gözünün adresi yalnızca 1 bayttır.
Fakat özel fonksiyon data gözüne ulaşmak için, bu gözün adresini verebileceğiniz gibi, data gözünün ismini de belirtebilirsiniz. Bu data gözlerinden bazıları bit adreslenebilir data gözleridir. Örneğin akümülatörün üçüncü bitine ulaşmak için, E0H.3 adresini belirtebilirsiniz veya ACC.3 diyerek belirtebilirsiniz. Program status data gözü de bit adreslenebilirdir. Bu data gözündeki parite biti 0 numaralı bittir. Bu bite ulaşmak için, bu bitin adresini; D0H.0 veya ismini PSW.0 diyerek belirtebilirsiniz. Aşağıdaki diğer tablo program statüsü registerindeki, bitlerin sembollerini, adreslerini ve fonksiyonlarını göstermektedir.
Özel Fonksiyon Kaydedicileri (SFR) [(*) işaretliler bit adreslenebilir.)
Özel Fonksiyon Kaydedicileri (SFR)
80C535 mikrodenetleyicide, pek çok çalışma moduna sahip olan esnek bir entegredir. Programların çalışma modunu değiştirmek için özel fonksiyon registerleri değerleri okunabilir veya değiştirilebilir. Özel fonksiyon registerlerine ulaşmak aynen normal RAM data gözlerine ulaşmak gibidir. İç genel hafıza RAM 00h adresinden 7Fh adresine kadar uzanırken, özel fonksiyon registerleri 80h adresinden FFh adresine kadar uzanır. 8051 de 21 adet SFR bulunmasına karşılık, 80C535’de bu sayı 42’dir. Sayının artmasıyla entegre işlevsellik yönünden yeni özellikler kazanmıştır.
SFR P0 (Port0, adres 80h, bit adreslenebilir)
Bu port giriş/çıkış portlarından birisidir. Bu özel fonksiyon data gözündeki bitlerin her biri 80C535 entegresinin bacaklarından birisine karşılık gelmektedir. Örneğin port0 registerinin 0 nolu biti, entegrenin P0.0 bacağına, 7 nolu bit P0.7 nolu bacağa karşılık gelmektedir. Entegredeki P0 bacaklarından herhangi birisini 1 veya 0 yapmak için, P0 registerinde, entegre bacağına karşılık gelen bit değeri 0 veya 1 yapılır. Dolayısıyla port 0 pinleri bit adreslenebilir pinlerdir. Port 0’a yazmak veya okumak için aşağıdaki komutlar kullanılır:
MOV P0, #0FH;
Yukarıdaki komut port 0’ın pinlerinin düşük nibelini 1 yüksek nibelini 0 yapacaktır. Yukarıdaki komut verildikten sonra port 0 pinlerinin değerleri aşağıdaki gibi olacaktır.
P0.0, P0.1, P0.2, P0.3 = 1 ve P0.4, P0.5, P0.6, P0.7 = 0
Bu porttan bir okuma yapmak için ise aşağıdaki komutlar verilir.
MOV P0, #0FFH;
MOV A, P0;
Görüldüğü gibi porttan okuma yapmadan önce, bütün port giriş moduna getirilir. Port giriş moduna getirildikten sonra ise okuma işlemi gerçekleştirilir. Yukarıdaki komutlar port 0’a 1 bayt bilgiyi yazmak veya okumakta kullanılır. Daha önce söylediğimiz gibi port 0 istenirse pin pin de kontrol edilebilir. Bit bit kontrol için kullanılabilecek 80C535 assembly komutları, SETB bit , CLR bit , CPL bit, MOV bit, C, MOV C, bit komutlarıdır. Aşağıda bu komutların nasıl kullanılabileceğine dair örnekler verilmiştir.
SETB P0.1 : P0.1 pinini 1 yap.
CLR P0.5 : P0.5 pinini 0 yap
SETB C : Elde bayrağı 1
MOV P0.4, C : P0.4 pinine Elde bayrağının değerini yaz.
SETB P0.7 : P0.7 pinini giriş için hazırla.
MOV C, P0.7 : P0.7 pininin değerini Elde bayrağına oku.
SFR SP (Yığın İşaretleyici, adres 81h)
Bu register 80C535 entegresinin yığın işaretleyici registeridir. Yığın hızlı data alışverişinin bir yoludur. Yığın (Stack) last-in-first-out, son giren ilk çıkar prensibine göre çalışan bir hafıza kavramıdır. Yığın işaretleyici, yığına en son eklenen datanın RAM hafıza adresini gösterir (TOP of stack). Yığına bir değer itilmeden önce yığın işaretleyicisinin değeri 1 artırılır. Örneğin yığın işaretleyicinin değeri 07h ise, bir PUSH komutundan sonra, yığın işaretleyicinin değeri 08h olacaktır. Yığından bir değer geri alınırken ise önce değer yığından alınır, daha sonra yığın işaretleyicisinin değeri 1 azaltılır. Yığın işaretleyicinin değeri, yığın ile çalışan tüm komutlardan sonra değişmektedir. 8051 komut kümesi içinde yığını kullanan komutlar, PUSH, POP, LCALL, RET, RETI ve kesme programı girişleridir.
SFR DPL/DPH Data işaretleyicileri, adres 82h ve 83h )
DPL/DPH (data işaretleyicisi (Data Pointer, DPTR) düşük ve yüksek registerleri, adres 82h ve 83h)
DPL ve DPH registerleri 16 bit bir adres oluşturmak üzere bir arada kullanılan özel fonksiyon registerleridir. Data işaretleyici, dış RAM hafıza ile veri alışverişinde ve dış kod hafıza ile ilgili bazı işlemlerde kullanılır. Data işaretleyici işaretsiz 16 bit bir sayıyı gösterdiğine göre, data işaretleyici ile 0000h dan FFFFh (0-65535) adresi aralığında hafıza adreslenebilir.
Assembler dilinde DPTR ismi ile kullandığınız data işaretleyici, aslında DPH ve DPL özel fonksiyon data gözleri tarafından oluşturulmuş 16 bit bir sayıdır. Pek çok durumda DPTR nin DPH ve DPL baytlarını ayrı ayrı işlemek durumunda kalabilirsiniz. Örneğin DPTR değerini yığına yazmak istediğinizi varsayalım. 16 bit bir değeri tek hamlede yığına yazacak bir 80C535 komutu yoktur.
Bu nedenle DPH ve DPL değerlerini ayrı ayrı yığına yazmanız gerekir. Öte yandan DPTR işaretleyicini bir artıran 80C535 komutu olmasına rağmen DPTR işaretleyicisini bir azaltan bir komut yoktur. Böyle bir durumda DPH ve DPL registerlerini kullanarak bu azaltma işleminin yapılması gereklidir. Data işaretleyicisi en çok dış veri hafıza ile data alışverişinde kullanılır. Bu amaçla önce data okunacak veya yazılacak hafıza adresinin değeri data işaretleyicisine yüklenir. Daha sonra MOVX komutu ile bu değer hafızadan okunur veya hafızaya yazılır. Aşağıdaki komut seti 2300H adresine 13 değerini yazmak için kullanılmıştır.
MOV DPTR, #2300H;
MOV A, #13;
MOVX @DPTR, A;
Hafızanın 2300H adreindeki bir değeri okumak için ise
MOV DPTR, #2300H;
MOVX A, @DPTR;
SFR PCON (Güç Kontrol registeri, adres 87h)
PCON registeri bit adreslenebilir bir register değildir. Bu registerin PD ve IDL bitleri 80C535’in güç kontrolü amacıyla kullanılmaktadır. Şimdi bu registerin bitlerini ve bit anlamlarını görelim.
Tablo : SFR PCON
Bit 7 – SMOD seri iletişim hızı modifikasyonu biti. Bu bit SET edildiğinde seri haberleşme hızı, zamanlayıcı 1’in mod 1, 2 veya 3 ile kullanılması sonucunda hesaplanan iletişim hızının 2 katına çıkar. Bu bit 0 olduğunda, iletişim hızı zamanlayıcı 1 ile belirlenen iletişim hızı olur.
Bit 6 – PDS Power Down Start Bit. Power Down moduna geçmeden önceki son komut bitidir.
Bit 5 – IDLS Idle Start Bit. Idle moduna geçmeden önceki son komut bitidir.
Bit 4 – Kullanılmıyor.
Bit 3 – GF1 Genel amaçlı bayrak. Programcı tarafından kullanılabilir.
Bit 2 – GF0 Genel amaçlı bayrak. Programcı tarafından kullanılabilir.
Bit 1 – PDE Power Down Enable Bit. Entegrenin güç tüketimini azaltmakta kullanılır. Power Down modunu active eder.
Bit 0 – IDLE Idle Mode Enable Bit. Entegrelerin güç tüketim kontrolü için kullanılan diğer bir bit. Idle Modu active eder.
80C535 entegresinde, PD (Power Down) ve IDLE özellikleri mevcuttur.
SFR TCON (Zamanlayıcı kontrol registeri, adres 88h, bit adreslenebilir)
Zamanlayıcı kontrolü registeri standart 80C535 entegresinde bulunan zamanlayıcı 0 ve 1’in ayarlarının yapılmasında kullanılır. Bu register kullanılarak zamanlayıcılar çalıştırılabilir veya durdurulabilir. Bu registerde bulunan bitlerden birisi zamanlayıcının taşma biti olarak kullanılmaktadır. Böylece her zamanlayıcı veya sayıcı taşmasında bu bit aktiflenmektedir. Bu özel fonksiyon registerinde bulunan bitlerden diğer birkaçı, zamanlayıcı ve sayıcının kesme üretmesi için programlanabilmektedir.
TCON registeri bit adreslenebilir bir registerdir. Bu registerin bitleri zamanlayıcı/sayıcıları kontrol etmekte kullanılır.
Tablo : SFR TCON
Bit 7 -TF1 Zamanlayıcı 1 taşma bayrağı. Zamanlayıcı taştığı anda bu bayrak SET olur. Mikroişlemci ilgili kesme programına sıçradığı anda bu bayrak tekrar temizlenir. Eğer kesme programı yoksa bu bayrak program tarafından temizlenmelidir.
Bit 6 -TR1 Zamanlayıcı 1 çalışma kontrol biti. Zamanlayıcı 1 çalışmaya başlatılmak istendiğinde bu bayrak SET edilir. Bu bayrak SET olduğu sürece zamanlayıcı 1 çalışmaktadır.
Bit 5 -TF0 Zamanlayıcı 0 taşma bayrağı. Zamanlayıcı taştığı anda bu bayrak SET olur. Mikroişlemci ilgili kesme programına sıçradığı anda bu bayrak tekrar temizlenir. Eğer kesme programı yoksa bu bayrak program tarafından temizlenmelidir.
Bit 4 -TR0 Zamanlayıcı 0 çalışma kontrol biti. Zamanlayıcı 0 çalışmaya başlatılmak istendiğinde bu bayrak SET edilir. Bu bayrak SET olduğu sürece zamanlayıcı 0 çalışmaktadır.
Bit 3 -IE1 Harici kesme 1 kenar bayrağı. INT1 pininde yüksekten alçağa düşen bir sinyal görüldüğünde, program INT1 kesme adresi 0013h’e sıçrar.
Bit 2 – IT1 Harici kesme 1 INT1 tip belirleme biti. Eğer sinyal yüksekten düşüğe geçtiğinde kesme aktiflenmesi isteniyorsa bu bit SET edilir. Bu bit 0 olduğunda pindeki bir 0 sinyali kesmeyi aktifler.
Bit 1 – IE0 Harici kesme 0 kenar bayrağı. INT0 pininde yüksekten alçağa düşen bir sinyal görüldüğünde, program INT0 kesme adresi 0003h’e sıçrar.
Bit 0 – IT0 Harici kesme 0 INT0 tip belirleme biti. Eğer sinyal yüksekten düşüğe geçtiğinde kesme aktiflenmesi isteniyorsa bu bit SET edilir. Bu bit 0 olduğunda pindeki bir 0 sinyali kesmeyi aktifler.
SFR TMOD (zamanlayıcı modu registeri, adres 89h)
TMOD registerindeki bütün bitlerin ayrı ayrı anlamları olmasına rağmen TMOD registeri bit adreslenebilir bir register değildir. Bu register standart iki zamanlayıcının hangi modda çalışacağını kontrol etmekte kullanılan registerdir. Bu register kullanılarak zamanlayıcılar, 16 bit zamanlayıcı, 8-bit tekrar yüklenen zamanlayıcı veya 13 bit zamanlayıcı olarak programlanabilmektedir. Buna ilave olarak zamanlayıcılar, sayıcı olarak ta programlanabilir. Böylece harici bir sinyalin her değişiminde zamanlayıcının değeri 1 artacaktır.
Tablo : SFR SMOD
Bit 7 – Gate OR kapısı enable biti.. Zamanlayıcı 1’in çalışmaya başlayabilmesi için bu bitin değerinin 0 olması gereklidir. Yani GATE biti ve TCON registerindeki TR1 biti zamanlayıcı 1’in çalışmaya başlamasını kontrol eder. GATE biti 1 ve TR1 biti 1 ise, zamanlayıcının çalışması INT1 pinindeki sinyale bağlıdır. Bu sinyal 1 olduğu anda zamanlayıcı 1 çalışır.
Bit 6 – C/T Sayıcı veya zamanlayıcı seçme biti. Bu bit SET olduğu zaman zamanlayıcı/sayıcı 1 sayıcı modunda çalışmaya başlar. Bu durumda T0 pinine bağlı sinyal sayılmaya başlar.
Bit 5 – M1 Zamanlayıcı/sayıcı 1 mod seçme biti
Bit 4 – M0 Zamanlayıcı/sayıcı 1 mod seçme biti.
Bit 3 – Gate OR kapısı enable biti.. Zamanlayıcı 1’in çalışmaya başlayabilmesi için bu bitin değerinin 0 olması gereklidir. Yani GATE biti ve TCON registerindeki TR1 biti zamanlayıcı 1’in çalışmaya başlamasını kontrol eder. GATE biti 1 ve TR1 biti 1 ise, zamanlayıcının çalışması INT1 pinindeki sinyale bağlıdır. Bu sinyal 1 olduğu anda zamanlayıcı 1 çalışır.
Bit 2 – C/T Sayıcı veya zamanlayıcı seçme biti. Bu bit SET olduğu zaman zamanlayıcı/sayıcı 1 sayıcı modunda çalışmaya başlar. Bu durumda T0 pinine bağlı sinyal sayılmaya başlar.
Bit 1 – M1 Zamanlayıcı/sayıcı 0 mod seçme biti.
Bit 0 – M0 Zamanlayıcı/sayıcı 0 mod seçme biti.
M1 M0 MOD
00 0
01 1
10 2
11 3
SFR TL0/TH0 (Zamanlayıcı 0 düşük ve yüksek, adres 8Ah ve 8Bh)
Bu iki özel fonksiyon registeri zamanlayıcı 0’ı temsil eden özel fonksiyon registerleridir. Bu registerlerin nasıl davranacakları TMOD registerine yazılan kod ile konfigüre edilir. Bilinmesi gereken önemli noktalardan birisi de zamanlayıcıların yalnızca yukarı doğru saymasıdır. TL0 ve TH0 sayıcının sayma değerlerinin bulunduğu registerlerdir.
SFR TL1/TH1 (Zamanlayıcı 1 düşük ve yüksek, adres 8Ch ve 8Dh)
Bu iki özel fonksiyon registeri zamanlayıcı 1’i temsil ederler. Zamanlayıcı/sayıcı 1’in sayma değerleri bu registerlerde bulunur. Herhangi bir anda sayma değeri okunmak istendiğinde, TL1 ve TH1 sayıcıları nın değerleri değişkenlere okunur. Örneğin kullanacağımız iki değişken TIMERH ve TIMERL olsun.
MOV TIMERH, TH1;
MOV TIMERL, TL1;
SFR P1 (Port 1, adres 90h, bit adreslenebilir)
Bu port giriş/çıkış portlarından birisidir. Bu özel fonksiyon data gözündeki bitlerin herbiri 80C535 entegresinin bacaklarından birisine karşılık gelmektedir. Örneğin port1 registerinin 0 nolu biti, entegrenin P1.0 bacağına, 7 nolu bit P1.7 nolu bacağa karşılık gelmektedir. Entegredeki P1 bacaklarından herhangi birisini 1 veya 0 yapmak için, P1 registerinde, entegre bacağına karşılık gelen bit değeri 0 veya 1 yapılır. Dolayısıyla port 1 pinleri bit adreslenebilir pinlerdir. Port 1 bizim devremizde çıkış olarak ayarlanmıştır. Çıkışta 8 adet LED sürülmüştür.
SFR SCON (seri kontrol, adres 98h, bit adreslenebilir)
SCON özel fonksiyon registeri 80C535 seri giriş/çıkış biriminin davranışını kontrol etmekte kullanılır. Örneğin bu register kullanılarak seri haberleşme hızı (baud rate) belirlenir. Bu registerde, aynı zamanda seri bir karakter başarıyla yollandığında veya başarıyla okunduğunda aktiflenen bayraklar bulunur. Seri port kullanılmak istendiğinde yalnızca SCON registerinin konfigüre edilmesi yeterli olmayabilir. Bu durumda TCON ve TMOD registerlerinde de gerekli değişimler yapılmalıdır. Çünkü seri haberleşme hızını ayarlamak için zamanlayıcılardan birisini kullanmak gerekebilir. Aşağıda SCON registerinin yapısı ve bitleri görülmektedir.
Tablo : SM0 ve SM1 bitleri ve anlamları.
(*) Zamanlayıcı 1 kullanılarak haberleşme hızı seçildiği durumda, eğer PCON.7 biti aktif yapılırsa, haberleşme hızı iki katına yükselmiş olur.
SCON registeri bit adreslenebilir bir registerdir. SCON registerinin üst 4 biti (bit 4 – bit 7 ) konfigürasyon bitleridir. SM0 ve SM1 bitleri seri haberleşme modunu seçmekte kullanılır. 4 farklı seri haberleşme modu vardır. Seri haberleşme modunun seçilmesiyle haberleşme hızının nasıl hesaplanacağı da belirlenmiş olur. Mode 0 ve Mod 2 de haberleşme hızı kristal frekansı ile orantılı bir sayıdır ve sabittir. Mod 1 ve 3 de ise haberleşme hızı zamanlayıcı 1’in birim zamanda taşma sayısına bağlı olarak değişkendir.
SM2 biti, birden fazla işlemci haberleşmesi bayrağıdır
Bir sonraki bit REN (receiver enable) alıcı aktifle bitidir. Bu bitin anlamı çok açıktır. Eğer seri port üzerinden okuma yapmak istiyorsanız bu biti aktiflemeniz gerekir.
SCON registerinin son 4 biti, seri haberleşme sırasında kullanılan işlem bitleridir. Bu bitler seri portu konfigüre etmek için değil seri yazma/okuma işlemlerini gerçekleştirmek için kullanılır.
TB8 biti mod 2 ve mod 3 de kullanılır. Mod 2 ve mod 3 de toplam 9 bit data yollanıp okunmaktadır. İlk 8 bit karakter değeridir, 9’uncu bit TB8 den okunarak yollanır.
RB8 biti de mod 2 ve mod 3 de kullanılır. Mod 2 ve mod 3 de okuma yapıldığında toplam 9 bit data okunur. Okunan ilk 8 bit SBUF registerine kaydedilir. 9’uncu bit RB8 bitine okunur.
TI (transmit interrupt) yollandı kesmesi bitidir. Program seri porttan bir bilgi yolladığında, değerin seri porttan tamamen yollanması için belli bir zaman geçecektir. Eğer bu karakterin yollanması bitmeden, yeni bir karakter yollanmak üzere SBUF registerine yazılırsa, datalar birbirine karışacaktır. Bunu önlemek için yollama tamanlandı (TI) biti kullanılır. TI biti “1” ise bir önceki karakter yollanmış demektir ve yeni bir karakter yollanmasında sakınca yoktur. Dolayısıyla programcı, yeni bir karakter yollamadan önce TI bitini okuyarak kontrol etmelidir.
RI (receive interrupt) alma kesmesi bitidir. Bu bit de TI bitine benzer bir görev görmektedir. Fakat bu defa, dışardan bir karakter okunduğunda, okumanın bittiğini bildirmek üzere bu bir “1” olmaktadır.
SFR SBUF( seri kontrol, adres 99h) Seri port bafırı, seri port üzerinden dataların yazılmasında ve okunmasında kullanılır. SBUF registerine yazılan herhangi bir değer entegrenin yolla (TXD) bacağı üzerinden seri bilgi halinde yollanılır. Benzer şekilde entegreye oku (RXD) bacağı üzerinden gelen bir bilgi de SBUF registerinde okunmaya hazır bir şekilde tutulur. Yani bir karakter yollanacağı zaman SBUF registerine yazılır. Bir karakter okunacağı zaman ise SBUF registeri okunur.
SFR P2 (Port 2, adres A0h, bit adreslenebilir)
Bu portta diğer portlar gibi bit adreslenebilir bir porttur. Dış hafıza kullanan devrelerde bu portun görevi, dış adres hattının yüksek baytını sağlamaktır. Mikroişlemci dış program hafızadan kod okuma yaptığı sırada kodun adresinin yüksek baytı bu port tarafından sağlanır. Dış veri veya kod hafızadan MOVX veya MOVC komutlarıyla veri alışverişi sırasında da bu port yine okunacak adresin yüksek baytını sağlama işlevini görür.
SFR IEN0 ( Kesme 0 aktifle registeri, adres A8h)
IE özel fonksiyon registeri, kesmelerin aktiflenmesinde ve pasiflenmesinde kullanılan registerdir. Bit 0-1-2-3-4-5-6 , herhangi bir özel kesmeyi aktiflemekte veya pasiflemekte kullanılan bitlerdir. Bit 7 tüm kesmeleri aktiflemek ve pasiflemekte kullanılır. Bu bit pasiflendiğinde, herhangi bir özel kesmeyi aktifleyecek bit 1 olsa bile, kesme pasif kalır.
Tablo : SFR IEN0
Herhangi bir kesmeyi aktiflemek için, once hangi kesme aktifleneckse o bit SET edilir. Daha sonra EA biti SET edilir. Örneğin Dış kesme 0’ın çalışmaya başlaması için,
SETB EX0;
SETB EA;
komutları verilir.
SFR IEN1 (Kesme 1 aktifle registeri, adres B8h)
Tablo : SFR IEN1
SFR P3 (Port 3, adres B0h, bit adreslenebilir)
Bu portta diğer portlar gibi bit adreslenebilir bir porttur. Port 3 pinlerinin hepsi çift fonksiyona sahip pinlerdir. Örneğin seri iletişim için kullanılan TxD, RxD pinleri, dış hafıza okuma yazma pinleri WR ve RD, zamanlayıcı/sayıcı pinleri T0 ve T1, Dış kesme pinleri INT0 ve INT1 hep bu portta bulunur. Bütün bu fonksiyonlar, kendi özel fonksiyon registerleri aracılığı ile programlanır. Bu fonksiyonların kullanılmadığı pinler basit giriş/çıkış pinleri olarak kullanılabilir. Port3 de Port1 ve Port2 gibi iç pull-up dirençlerine sahiptir. Bu sebeble bu port basit giriş çıkış için kullanıldığında, harici pull-up dirençlere gerek yoktur. Diğer portlarda olduğu gibi basit giriş/çıkış işlemleri P3 özel fonksiyon registeri aracılığı ile yapılır.
SFR IP0 ve IP1 (Adres 0A9h ve 0B9h)
IP özel fonksiyon registeri kesme önceliklerini tanımlamakta kullanılır. Birden çok kesme yaratan bir sistemde, aynı anlı oluşan iki kesmeden hangisinin daha önce işleme sokulacağını belirlemek gereklidir. 80C535 entegresinde bir kesme ya düşük önceliğe (0) yada yüksek önceliğe (1) sahip olarak tanımlanabilir.
Her iki register daki (IP0 ve IP1) bitler uyuşarak, kesme önceliğini belirlerler.
Tablo : Kesme Seviyeleri
Priority-Within-Level Structure
Bu seviye sadece eş zamanlı ve aynı kesme taleplerinde önceliği belirlemek için kullanılır.
Tablo : Priority-Within-Level Structure 1
Tablo : Priority-Within-Level Structure 2
SFR PSW (Program statüsü kelimesi, adres D0h, bit adreslenebilir)
Program statüsü kelimesi registerinde 80C535 komutlarının işlemesine göre, aktiflenen ve pasiflenen bayraklar bulunur. PSW registerinde, elde bayrağı, yedek elde bayrağı, taşma bayrağı ve parite bayrağı gibi önemli bitler bulunur. Buna ek olarak PSW registerinde hangi register bankasının kullanılacağını belirlemekte kullanılan bitler bulunur. Bir kesme programı yazıldığında, kesme programı başında program statüsü kelimesini yığına saklamak ve kesme programı sonunda yığından geri almak, pek çok programlama hatasını önleyecektir. Çünkü 80C535 komut kümesi komutlarının pek çoğu, PSW registerinin değişmesine yol açar.
80C535 matematik işlemlerinin sonucuna göre değişen 4 PSW bitine sahiptir. Bu bitler Carry (elde) biti, Auxillary Carry (yardımcı elde) biti, Overflow (taşma) biti ve Parity (parite) bitleridir. PSW registerinde bunlardan başka RS0 ve RS1 register bank seçme bitleri ve bir tan de programcı kullanımına sunulmuş genel amaçlı bit F0 bulunur.
Tablo : SFR PSW
Bit Sembol
7 CY : Elde bayrağı. Matematik işlemlerde, sıçra, döndür ve bit işlemlerinde kullanılır.
6 AC : Yardımci elde. BCD sayı işlemlerinde kullanılır.
5 F0 : Kullanıcı için ayrılmış bit.
4 RS1 : Register bank seçme biti 1
3 RS0 : Register bank seçme biti 0
2 OV : Taşma bayrağı. Aritmetik işlemlerde kullanılır.
1 F1 : Genel amaçlı kullanıcı bayrağı
0 P : Akümülatörün paritesini gösterir. 1 = ODD Parity
SFR ACC (akümülatör, adres E0h, bit adreslenebilir)
Akümülatör, 8051 registerleri içerisinde en çok kullanılan registerlerden birisidir. Çünkü pek çok 80C535 komutu direkt olarak akümülatörü kullanmaktadır. Akümülatör de özel fonksiyon registerlerinden birisidir. Dolayısıyla adresi veya ismi verilerek erişilebilir. Örneğin MOV A, #20h komutu ile MOV E0h, 20h komutu aynı işlemleri yapar. Bununla beraber birini komutu kullanmayı tercih etmeliyiz. Çünkü birinci komutun makina kodu karşılığı 2 bayt, fakat ikinci komutun makina kodu karşılığı 3 bayttır.
SFR B (B registeri, adres F0h, bit adreslenebilir)
B registeri 80C535 komut kümesi içerisinde, çarpma ve bölme işlemlerinde kullanılan bir registerdir. Fakat bu register aynı zamanda geçici dataların saklanması içinde sıklıkla kullanılır.
SFR IRCON (Interrupt Request Control Register, 0C0h)
Tablo : SFR IRCON
Bütün bu kesmelere neden olan bitler yazılım tarafından set edilebilir. Bu kesme kaynakları IEN0 ve IEN1 den de kontrol edilebilir. IEN0, EAL adında, bütün kesmeleri aktif ve deaktif edebilen bir bite sahiptir. Bu bit sayesinde dilediğinde bütün kesmeler durdurulabilir.
SFR CCEN (Compare/Capture Enable Register, 0C1h)
Tablo : SFR CCEN
Compare : Karşılaştırma
Reload : Yeniden yükleme
Capture : Yakalama
Bunlar 80C535’in zamanlayıcı 2 si ile ilgili özelliklerdir, ileriki konularda değinilecektir.
SFR CCL1, CCH1 (Compare/Capture Register 1’in Düşük ve Yüksek Nibelleri)
CCL1 : 0C2h
CCH1 : 0C3h adreslerinde bulunurlar.
SFR CCL2, CCH2 (Compare/Capture Register 2’in Düşük ve Yüksek Nibelleri)
CCL2 : 0C4h
CCH2 : 0C5h adreslerinde bulunurlar.
SFR CCL3, CCH3 (Compare/Capture Register 3’in Düşük ve Yüksek Nibelleri)
CCL3 : 0C6h
CCH3 : 0C7h adreslerinde bulunurlar.
SFR T2CON (Timer 2 Control Register, 0C8h) Zamanlayıcı 2 Kontrol Kaydedicisi
Tablo : SFR T2CON
SFR CRCL, CRCH (Compare/Reload/Capture Register’ın Düşük ve Yüksek Nibelleri)
CRCL : 0CAh
CRCH : 0CBh adreslerinde bulunur.
SFR TL2, TH2 (Timer 2 Düşük ve Yüksek Nibelleri)
TL2 : 0CCh
TH2 : 0CDh adreslerinde bulunur.
SFR ADCON (A/D Converter Control Register, 0D8h) A/D Çevirici Kontol Kaydedicisi
SFR ADDAT (A/D Converter Data Register, 0D9h) A/D Çevirici Veri Kaydedicisi
Bu register, 8 bitlik çevrim sonucunu içerir.
SFR DAPR (D/A Converter Program Register, 0DAh) D/A Çevirici Program Kaydedicisi
Her 4-bitlik nibeller içşel referans voltajını programlamak için kullanılır.
Dış Program Belleğinin kullanılması (EPROM)
Mikrodenetleyici sisteminde çevre birimler ( RAM, ROM, PIO v.b. ) kullanıldığında mikrodenetleyiçinin P0.P1 ve P3 portları, bu birimlerle iletişim sağlamak amacıyla kullanılır.Mikrodenetleyici sisteminde program in kullanılması 6 temel unsur ile belirlenir.
EA :Program beleğinin nereden başlayacağını seçer, eğer 1 olursa Program belleği iç ROM’dan başlayarak dışarıda 64 Kbyte’a cıkabilir.0 olursa program belleği tamamen dışarda kurulur.
PSEN :Bu sinyal mikrodenetleyiçinin 49 no’lu ucundan çıkar.Bu sinyalle dış bellek elemanı belirtilen adresteki bilginin veri yoluna Çıkmasına izin verir.
Veri Yolu : Bilgilerin iletildiği yoldur.
Adres Yolu : İstenen bilginin hafızadaki yerini gösteren bilgidir.
CS : Birden fazla hafıza elemanı varsa sadece bilginin bulunduğu hafıza elemanını aktif yapar ve adres bilgisinin kodlanması ile elde edilir.
ALE : Mikrodenetleyici sistemi çevre birimlerle haberleşirken Port 0 hem veri, yolu için hem de adres bilgisinin alt 8 biti için kullanılır.ALE sinyali bu işlem için gerekli olan zamanlamayı yapar.
Program belleğinden bilgi okuma iki aşamada gerçekleşir.
a-) Port 2 otomatik olarak adres bilgisinin üst 8 biti ile yüklenir.
b-) Okuma çevriminin ilk yarısında Port 0 adres bilgisinin alt 8 biti ile yüklenir ve ALE sinyalinin 0’a düşmesiyle tutucu tarafından tutularak adres yolunda 16 bitlik adres bilgisi elde edilmiş olur. Adres bilgisinin elde edilmesiyle CS sinyali de oluşur. PSEN sinyalinin 0’a düşmesinden belli bir süre sonra veri yoluna belirlenen bilgi çıkmış olur. Çıkan bu bilgi bir komutun op-code bilgisidir.
Dış Veri Belleğinin Kullanılması (RAM)
Dış veri belleği, program ve iç veri belleğinden tümüyle ayrı bir bölgede bulunmaktadır ve kendine özgü komutları vardır. Program belliği gibi P0 ve P2 üzerinden, 128K Byte’a kadar genişletilebilmektedir. Dış veri belleğine yalnızca iki komutla erişilebilmektedir.
MOVX
A,@DPTR
MOVX
@DPTR,A
Bu sistemde işlem iki aşamada yapılır.
a-) Port 2 otomatik olarak veri göstericinin üst 8 biti ile (DPH) yüklenir.
b-) Port 0 dış belleğe erişim çevriminin ilk bölümünde veri göstericisinin alt 8 bitini (DPL) dışarı çıkarır.
ALE sinyalinin düşen kenarı ile DPL, tutucunun çıkışında tutulmuş olur. Bundan sonra dış belleğe ulaşıncaya kadar ALE 1 olmayacaktır. Bu andan sonra okuma/yazma işlemi yürütülür. Kullanılan komut MOVX A,@DPTR ise dış bellekten okuma yapılacağı için /RD çıkışı 0 olur. Böylece P0 vasıtasıyla DPTR’nin gösterdiği bilgi A’ya aktarılır. Eğer MOVX @DPTR,A komutu kullanılırsa dış belleğe yazma olayı yapılacağından /WR çıkışı 0 olacaktır.
80C535 Zamanlayıcısı (TIMER/COUNTER) Yapısı
Zamanlayıcı/Sayıcı 0 ve 1
Zamanlayıcı ve sayıcılar aşağıdaki görevler için kullanılırlar.
• Zaman gecikmesi yaratmak için
• Pals zamanı veya zaman aralığı ölçmek için
• Pals veya oluşan olayları saymak için
• Çoklu işlem uygulamalarında (Multi-tasking)
• Kesme üretmek için
80C535, zamanlayıcı 2 dışında, iki adet 16 bit zamanlayıcı/sayıcıya sahiptir; Zamanlayıcı 0 ve Zamanlayıcı 1.
Bu zamanlayıcı /sayıcılar, zamanlayıcı konumunda iken, zamanlayıcı/sayıcı kaydedicisinin (THx veya TLx) değeri her makina peryodunda (machine cycle) bir artar. Yani zamanlayıcı/sayıcı makina peryodunu sayar. Bir makina peryodu ise osilatör frekansının 1/12’sine eşittir.
Sayıcı konumunda, TO ve Tl giriş uçlarının “1” den ,”0″ a geçiş anlarında kaydedicinin değeri bir artar. Bu fonksiyonda sayıcı, makina peryoduna bağlı olarak dış giriş ucundan örnek alır. Örnekleme sırasında giriş sinyali “1” den, “0” a düşüyorsa sayıcının değeri bir artar. Bir sonraki örnekleme için, bir makine peryodunun geçmesi gerekmektedir. Bu yüzden örnekleme frekansı osilatör frekansının 1/24’üne eşittir. Bundan daha yüksek frekansta bir sinyal T0 veya Tl uçlarına uygulanacak olursa hatalar oluşur.
Zamanlayıcı/Sayıcıların Kontrol Kaydedicileri
Zamanlayıcı/sayıcı 1 veya 2’nin çalışma modlarının secimi TMOD, kontrollerinin yapılması ise TCON kaydedicileri vasıtasıyla sağlanır.
TMOD (Register) Kaydedicisi
TMOD kaydedicisinin alt 4 biti Sayıcı 0’a, üst 4 biti Sayıcı 1’e aittir.
GATE : Gate kontrol biti “1” olduğunda Zamanlayıcı/sayıcı “x” in çalışabilmesi için /INTx dış kesme girişinin 1 olması yeterli olacaktır.
C/T : Zamanlayıcı veya sayıcı seçme bitidir. Eğer bu bit “1” yapılırsa “Tx” girişinden alınan sinyalle sayıcı işlemi yapılır. “0” yapılırsa makina peryoduyla zamanlayıcı işlevi yapılır.
Çalışma Modları (M1, M0):
TCON Kaydedicisi
TF1: Zamanlayıcı-1 taşma bayrağı. Zamanlayıcı/sayıcı istenilen değereden FFH değerine ulaştığında donanım ile 1 olur. Program ile sıfırlanır. Not: Zamanlayıcı/Sayıcılar belirlenen değerden yukarıya doğru FFH değerine kadar sayarlar.
TR1: Zamanlayıcı-1 çalıştırma biti. Bu bit “1” yapı¬lırsa zamanlayıcı/sayıcı çalışmaya başlar.”0″ yapılırsa durur. TR1 bitini 1 veya 0 yapmak program ile gerçekleşir.
TF0: Zamanlayıcı-0 tasma bayrağı. Zamanlayıcı/sayıcı istenilen değerden FFH değerine ulaştığında donanım ile 1 olur.Program ile sıfırlanır.
TR0: Zamanlayıcı-0 çalıştırma biti. Bu bit “1” yapı¬lırsa zamanlayıcı/sayıcı çalışmaya baslar. “0” yapılırsa durur. TR1 bitini 1 veya 0 yapmak program ile gerçekleşir.
Kesme kontrolü registerinde (IE) bulunan ET1 ve ET0 bitleri, zamanlayıcı taşmasında kesme üretilip üretilmeyeceğini belirlemekte kullanılır. Bit değerinin “1” olması, zamanlayıcı/sayıcı taşmasının kesme üretmesi anlamına gelir.
Zamanlayıcı/Sayıcıların Çalışma Modları
Zamanlayıcı/Sayıcıların çalışma modları TMOD kaydedicisi yoluyla belirlenir ve 4 adet çalışma modu vardır.
MOD0
MOD0’da her iki zamanlayıcıda 32 bit ön bölücülü, 8 bit zamanlayıcı/sayıcı olarak kullanılır.
Bu modu anlatmak için zamanlayıcı/sayıcı 1 kullanılmıştır. TH1 kaydedicisi 8 bitlik sayılacak değeri, TL1 ise 5 bitlik ön bölücü değerini tutar. Timer l’in sayıcı modunda çalıştığı (C/T=1 ,Gate=0) varsayılsın.
Zamanlayıcı/Sayıcı 1 MOD0 (13 Bit Sayıcı)
Timer-1’i çalıştırmadan önce, TH1 kaydedicisine 8 bitlik sayılmak istenen değeri, TL1 kaydedicisine de 5 bitlik ön bölücü değeri yazmak gerekir. Daha sonra TF0 bayrağı “0” yapılır. Timer-1 sayıcı modunda çalınaşağı için Tl girişinden uygulanan sinyali sayacaktır. Bu sayma işlemine ise TR1 biti “1” yapıldığında başlanacaktır. Timer-1 FFFF değerine ulaştığında TF0 bayrağı donanım tarafından 0 yapılır, işlem bu anda durdurulmazsa, kaydediciler 0000 değerini alarak tekrar FFFF’e kadar saymaya devam eder. TR1 biti “0” yapıldığı takdirde ise duracaktır. Timer-1 sayma işlemini yaparken her hangi bir anda TH1 ve TL1 kaydedicile¬ri okunabilir. Bu modda 12 MHz saat frekansında 1µs ile 8,192 ms arasında zamanlar üretilebilir.
MOD1
Bu modda zamanlayıcı/sayıcı 16 bit sayıcı olarak çalışır. Yani TH1 kaydedicisine 8 bitlik, TL1 kaydedicisine de 8 bitlik bilgi yüklenir. MOD0 dan tek farkı budur. 12 MHz saat frekansında lµs ile 65.535 ms arasında, 1µs duyarlılıkta zamanlar elde edilebilir.
M0D2
Otomatik yeniden yüklemeli mod. Bu modun özelliği sadece TLx’in sayıcı olarak kullanılması ve THx’de bulunan değerin her tasmadan sonra TLx’e yüklenmesidir. Böylelikle zamanlayıcı/sayıcının devamlı olarak sabit bir sayıyı sayması ve belli aralıklarla taşma sinyali üretmesi sağlanmış olur. Bu mod asenkron seri heberleşmede veri hızı (Baudrate) üretmek için kullanılır. Sayıcının çalışması esnasında TLx ve THx istenildiği gibi değiştirilebilir.
Zamanlayıcı/Sayıcı 1 MOD2 (8 Bit Otomatik Yüklemeli)
MOD3
Zamanlayıcı/Sayıcı 1’in kullanılmadığı tek mod budur. Bu moda TL0 ve TH0 ayrı birer sayıcı gibi çalışır. TL0 kaydedicisi sayıcı-0’ın kontrol bitleri ile kontrol edilir. TH0 ise zamanlayıcı/sayıcı-1’in kontrol bitleri ile çalışır.
Zamanlayıcı/Sayıcı 0 MOD3 (İki Adet 8 Bit Sayıcı)
Gelişmiş Zamanlayıcı 2
80C535 zamanlayıcı, 8052 zamanlayıcı 2’ye göre daha da geliştirilmiş özelliklerle donatılmıştır. Gelişmiş özelliklerin eklendiği bu birim programlanabilir zamanlayıcı/sayıcı vektörü (programmable timer/counter array PTRA) olarak adlandırılmıştır. 80C535 zamanlayıcı 2, 8052 zamanlayıcı 2 ile uyumlu değildir. Dolayısıyla 8052 zamanlayıcı 2^yi kullanan programlar 80535’de çalışmayacaktır.
PTRA birimindeki karşılaştır/tekrar yükle/yakala registerleri CRCL ve CRCH olarak isimlendirilmiştir. PTRA birimi 3 karşılaştır/yakala registerine sahiptir. Bunlar CC1, CC2 ve CC3 registerleridir. Yeniden yükle işlemleri, CRC registerlerinin içeriklerini, sayma registerleri TH2 ve TL2 ye kopyalar. CRC registerleri, yeniden yükle özelliğine sahip CCx registerleri olarak ta düşünülebilir. PTRA biriminin çeşitli çalışma modları, CCEN PTRA kontrol registeri aracılığı ile kontrol edilir. Zamanlayıcı 2 taşması kesme aktifleyebilir. Bu kesme aktiflenirse, bir kesme programı aracılığı ile gerekli işlemler yapılabilir.
Zamanlayıcı 2’nin dört çift karşılaştır/yakala CC registeri, 16 bit registerler olarak düşünülebilir. Çünkü kontrol işlemlerinde CC registerlerinin yüksek ve düşük baytları birlikte etkilenir. PTRA biriminin temel 2 görevi vardır:
1. Anlık sayım değerini CC registerlerinden birinde bulunan değerle karşılaştırmak (compare).
2. Anlık sayım değerini CC data registerlerinden birine yollamak (capture)
Her karşılaştır/yakala registeri, karşılaştırma sonucunu bildiren bir sinyal üretme özelliğine sahiptir. Benzer şekilde, PTRA ünitesi dış bir sinyal geldiği anda, o anki sayma değerinin yakalanıp CC data registerine kopyalanması da sağlanabilir. Port 1’in 4 pini, yakala girişleri veya karşılaştırma sonucunun verildiği çıkış uçları olarak kullanılabilir. PTRA biriminin çalışması, zamanlayıcı 2 control registeri T2CON ve karşılaştır/yakala kontrol registeri CCEN ile kontrol edilir. 80C535 T2CON registeri bitleri aşağıda verilmiştir.
Tablo : T2CON
BIT – İSİM – AÇIKLAMA
7 — T2PS Zamanlayıcı 2, 2ye bölerek say biti.
6 — I3FR Zamanlayıcı 2 Dış Bayrak.
5 — I2FR Zamanlayıcı 2 karakter okuma saati.
4 — T2R1 Zamanlayıcı 2 yeniden yükle modu seçme biti 1.
3 — T2R0 Zamanlayıcı 2 yeniden yükle modu seçme biti 0.
2 — T2CM Zamanlayıcı 2 karşılaştırma modu seçme biti.
1 — T2I1 Zamanlayıcı 2 giriş seçme biti 1.
0 — T2I0 Zamanlayıcı 2 giriş seçme biti 0.
Tablo : T2CON Bitleri
Zamanlayıcı 2 Giriş Birimi
PTRA biriminin zamanlayıcı 2’si, sayıcı veya zamanlayıcı olarak kullanılabilir. Sayıcı modunda, giriş sinyali, pin T2 (Port 1.7)ye uygulanır. Zamanlayıcı modunda ise her bir makine çeviriminde (12 osilatör çevrimi),
Sayıcı bir artırılır. T2PS biti 1 yapıldığında, 2 ye bölünerek sayma işlemi de gerçekleştirilebilir. T2CON.1 ve T2CON.0 bitleri (T2I1 ve T2I0 olarak da adlandırılır).
Zamanlayıcı 2 Giriş Seçmesi
T2I1 T2I0 Seçilen Giriş
0 0 Giriş yok.
0 1 Zamanlayıcı fonksiyonu
1 0 Sayıcı fonksiyonu
1 1 Kapılı zamanlayıcı fonksiyonu. P1.7 (T2) = 1 ise zamanlayıcı çalışmaktadır.
Zamanlayıcı 2 Reload Özelliği (Zamanlayıcı 2 Yeniden Yükle İşlemleri)
Zamanlayıcı 2 yeniden yükle operasyonu, CRCL ve CRCH içerisindeki datanın TH2 ve TL2 registerlerine kopyalanmasıdır. Daha önceden söylediğimiz gibi, CRC registerleri yeniden yükle kapasitesine sahip CC registerleri olarak düşünülebilir. T2CON registerinin T2R1 ve T2R0 bitleri yeniden yükle modunun seçiminde kullanılır.
Zamanlayıcı 2 Yeniden Yükle Modları
T2R1 T2R0 Yeniden yükle modu
00 Yeniden yükleme yok.
01 Yeniden yükleme yok.
10 Yeniden yükle modu 0 : zamanlayıcı 2 taştığında yeniden yükle
11 Yeniden yükle modu 1: P1.5 (T2EX) pinindeki sinyalin düşen kenarında yeniden yükle.
Yeniden yükle modu, özellikle periyodik sinyallerin üretilmesinde yararlıdır. Zamanlayıcı 2, zamanlayıcı olarak ve zamanlayıcı taştığında yeniden yükle modunda çalıştırılırsa, yeniden yükleme değeri, peş peşe taşmalar arası periyodu belirler. Her bir taşmada bir kesme programı çağrılabilir. Dolayısıyla yeniden yükle değeri bu kesme programının ne kadar sıklıkla çağrılacağını belirler.
Zamanlayıcı 2 yeniden yükle (reload) işlemi.
Zamanlayıcı 2 Compare Özelliği (Zamanlayıcı 2 Karşılaştırma İşlemi)
Zamanlayıcı 2 karşılaştır/yakala (CC ve CRC) registerleri Port 1’in ilgili pinlerinde zamanlama sinyalleri yaratmakta kullanılabilir. Bu sinyaller, TL2 ve TH2 registerlerindeki değerler CRC veya CC registerlerindeki değerlere ulaştıkça, ilgili pinlerde sinyaller oluşur. Karşılaştırma işlemi, pek çok işlem için kullanılabilir. Bu işlerin şüphesiz en önemlisi, darbe genişliği modülasyonudur. (Pulse Width Modulation PWM) . Karşılaştırma statüsü, Port 1’in ilgili bir pininde bulunur. Böylece, CC registerindeki değer pin üzerindeki sinyalin on/off zamanı oranını (duty cycle) belirler.
T2CON registerinin T2CM biti karşılaştırma işleminin modunu belirler. T2CM = 0 olduğunda Mod 0 seçilir. Bu modda zamanlayıcı taşmasıyla bir pozitif darbenin sonuna ulaşılır. Yani TH2 ve TL2 değerleri, CCLx ve CCHx registerlerindeki değere ulaştığında, port 1’deki ilgili çıkış 1 yapılır. Zamanlayıcı 2 taştığında da çıkış 0 yapılır. Bu modda, P1.0 pini CC0, P1.1 pini CC1, P1.2 pini CC2 ve P1.3 pini CC3 registerlerindeki karşılaştırma sayılarına göre kontrol edilir.
PTRA karşılaştır çıkışı (P1.0) Mod 0.
T2CM=1 yapıldığında, Mod 1 seçilmiş olur. Bu mod, 2 aşamalı bir LATCH yapısını kontrol eder. Yazılım ile P1.0, P1.1, P1.2 veya P1.3 pinlerine bir değer yazılabilir. Bu değer zamanlayıcı 2 taşması ile, ilgili pine aktarılır. Böylece pinlerdeki darbenin polaritesi de belirlenebilmiş olur.
PTRA karşılaştır çıkışı (P1.0) Mod 1.
Zamanlayıcı 2 Capture Özelliği (Zamanlayıcı 2 Yakala İşlemleri)
Yakala (Capture) işlemi TL2 ve TH2 registerlerinin değerini CC veya CRC registerlerine transfer etme işlemidir. 2 temel yakala işlemi vardır. Dış bir sinyal gelince yakala ve yazılım ile yakala. Mod 0’da, P1.0-P1.3 pinlerinde 0-1 geçişinde, o anki sayma değeri CC registerlerine kopyalanır. Mod 0 aynı zamanda CRC registerleri kullanılarak da gerçekleştirilebilir. Bu durumda pinlerde I3FR biti ile belirlenen bir geçiş 0-1 veya 1-0, yakala işlemini tetikler. I3FR = 1 olduğunda 0-1 geçişi, I3FR = 0 olduğunda ise 1-0 geçişi yakala işlemini tetikler.
Zamanlayıcı 2 yakala işlemi.
Yakala Modu 1 yazılımın yakala işlemini tetiklemesine olanak verir. CCLx registerlerinden herhangi birine, herhangi bir yazma işlemi, yakala işlemini tetikler. CCLx registerine hangi değerin yazıldığı önemli değildir. Yakala modları, CCEN registeri bitleri ile kontrol edilir. CCEN registeri 4 bit çiftinden oluşmuştur. Bit 0-1 CRC registerini, bit 2-3 CC1 registerini, bit 4-5 CC2 registerini, bit 6-7 CC3 registerini kontrol etmekte kullanılır. Bu bir çift bitin değerine göre, karşılaştır/yakala işlemlerinin nasıl gerçekleştiğini görelim.
Bitler
0 0 karşılaştır/yakala işlemi yok.
0 1 dış sinyal üzerine yakala
1 0 karşılaştır modu.
1 1 CRC veya CC registerine yazma işlemi sonucunda yakala.
Watchdog Timer
WDT her makine çevriminde (duty-cycle) artan 16 bitlik bir sayıcıdır. Dışsal bir reset sonrası WDT geçersizleşir ve 0000h olarak temizlenir. Sayıcı SFR SWDT tarafından başlatılır. WDT yazılımsal olarak durdurulamaz. Sadece içeriği IEN0.6 tarafından 0000h olarak temizlenebilir. WDT biti (IEN0.6) bir kez set edildikten sonra, ikinci makine çevriminden itibaren otomatik olarak temizlenir.
Tablo : SFR IEN0
WDT biti: Watch Timer Tazeleme Bayrağı
Tablo : SFR IEN1
SWDT biti: Watchdog timer başlatma ve tazeleme bayrağı. WDT’ı aktive etmek ve tazelemek için set edilir.
Tablo : SFR IP0
WDTS biti: Watchdog Timer Durum Bayrağı. WDT başladığında donanım tarafından set edilir. Yazılım tarafından okunabilir.
WDT’ nin kullanım amacı, denetleyiciyi bir döngüde kilitlenmekten uzak tutmaktır. Böyle bir durum yazılımda bir hata veya harici elektriksel kıvılcımlar nedeniyle ortaya çıkabilir. WDT, mikro denetleyiciye bir çeşit kalp atışı sağlar.
Bu mükemmel bir özelliktir ve güvenlik sistemleri gibi, ana kontrol panellerinde bir kilitlenmenin asla söz konusu olmaması gereken uygulamalar için birebirdir.
Güç koruması gereken ve yalnızca periyodik olarak açılması gereken ürünlerde WDT’ den faydalanılır.
80C535 GÜÇ KAZANÇ MODLARI (POWER SAVING MODES)
80C535 entegresinin güç tüketimini önemli ölçüde azaltan iki güç kazanç modu vardır. Bunlar; IDLE Mode, Power Down Mode.
IDLE Mode
Bu modda bileşenlerin operasyonları tamamen durur. Osilatör durdurulmuştur. Sadece içsel Ram, küçük bir akımla beslenir.
Power-Down Mode
Bu modda ise osilatör çalışmaktadır. Ama CPU clock sinyalinden izole edilmiştir. Bununla birlikte, kesme sistemi, seri kanal, A/D çevirici ve tüm zamanlayıcılar clock sinyalinden faydalanırlar. CPU durumu bütünlüğünü korur. stack pointer, program counter, program status word, accumulator ve tüm diğer registerlar idle mode esnasında içeriklerini korurlar.
80C535 Mikrodenetleyici Sisteminde Seri Haberleşme
80C535 entegresinin güçlü özelliklerinden birisi de yapısında bulundurduğu seri haberleşme birimidir (UART). 80C535 entegrenin seri bir haberleşme birimine sahip olması demek, 80C535 ile standart RS-232 seri haberleşmesinin yapılabilmesidir.
RS-232 bilgisayar dışındaki cihazların bilgisayar ile haberleşmelerinde en çok kullanılan iletişim standartlarından birisidir. RS-232 temel olarak bir seri iletişim birimidir. Seri iletişim biriminde karakterler bir hat üzerinden bit bit yollanır. Seri iletişimin paralel iletişime göre en önemli üstünlüğü bağlantı kolaylığıdır. Bilgisayardan cihaza karakter yollamak için bir hat, cihazdan gelen karakterleri okumak üzere bir hat ve bir toprak hattı olmak üzere toplam üç hat kullanılarak iletişim gerçekleştirilebilir.
Her bilgisayar en az bir seri RS-232 iletişim birimine sahiptir. Yeni bilgisayarlarda RS-232 konnektörleri hemen hemen tamamen 9 pin erkek konnektörlerdir.
DB9S konektör
Bizim deney setimizde bilgisayar ile mikrodenetleyici arasındaki seri haberleşmeyi sağlayan Jomon programı kullanılmıştır. Bu program, seri port için gerekli tüm ayarları otomatik yapmaktadır. Jomon programına ileriki sayfalarda değinilmiştir.
80C535 Kesme Sistemi (INTERRUPT)
Kesme isminden de anlaşılacağı üzere , bir kesme normal program çalışmasını kesen bir mekanizmayı tanımlamaktadır. Mikrokontrolcüler programları sıra ile işleyen cihazlardır. Bu sıra yalnızca sıçra (JMP) ve çağır (CALL) gibi komutlarla değiştirilebilmektedir. Kesmelerde ise normal program akışı, bir kesme ile kırılmakta ve kesme programı tamamlandıktan sonra normal program akışı, tam kesmeden önceki noktadan normal akışına devam etmektedir. Bu tür bir altprograma kesme hizmet programı (Interrupt Handler) adı verilir. Bu altprogram yalnızca bir kesme olduğunda çalışır. Kesme olmaması durumunda programa hiç bir katkısı yoktur.
80C535 uygun bir şekilde programlandığı zaman bu kesmelerden birisi gerçekleştiğinde, program akışının kesme hizmet programına yöneltilmesi mümkündür. Bu kesme tamamlandığında program kaldığı yerden normal akışına devam edecektir. Ana program böyle bir sıçramanın farkında bile olmayacaktır. Normal program akışının bu şekilde kesilebilmesi, belli koşulları kontrol etmek açısından son derece önemli olabilir. Eğer kesmeler olmasaydı, ana program sürekli olarak zamanlayıcının taşıp taşmadığını, seri porttan bir karakter gelip gelmediğini kesme uçları değerlerinin “1” olup olmadığını sürekli olarak kontrol etmek zorunda kalacaktı. Bu durumda yazılan kod hem çok uzun ve okunması zor olacaktı, hem de işlemci zamanının önemli bir kısmı, çok nadir olarak gerçekleşen bir olayın, gerçekleşip gerçekleşmediğini kontrol etmekle harcanacaktı.
8051 5 kesme kaynağına, 8051 6 kesme kaynağına, 80535 ise 12 kesme kaynağına sahiptir. Her kesme, kendisiyle ilgili bir adrese sahiptir. Herhangi bir kesme alındığında, işlemci o kesme adresine sıçrar. 80C535’deki yeni kesmeler, 1 tane ADC kesmesi ve IE0 ve IE1’e ek olarak 5 tane daha dış kesme kaynaklarıdır.
80C535 özel fonksiyon registerleri
80C535 özel fonksiyon registerleri, P4, P5, ve P6 80C535 ek portları ile ilgili özel fonksiyon registerleridir. ADCON, ADDAT ve DAPR registerleri analog sayısal çevirici ile ilgili özellikleri programlamak üzere konulmuş yeni registerlerdir. CCEN, CCL1,CCH1,CCL2,CCH2,CCL3,CCH3 registerleri geliştirilmiş zamanlayıcı 2’nin bu gelişmiş özelliklerini desteklemek üzere yeni registerlerdir. Entegre üzerindeki yeni kesme kaynakları sebebiyle 8051’deki IE ve IP registerleri yetersiz kalmıştır. Bu yüzden 80C535’te IE yerine IE0 ve IE1 registerleri, IP yerine de IP0 ve IP1 registerleri konulmuştur. IRCON, kesme isteği kontrol registeridir. Aşağıda 8051, 8051 ve 80C535’in kesme kaynakları ve kesme adresleri gösterilmektedir.
8051, 8052 ve 80C535 kesme kaynakları ve kesme adresleri.
Bir kesme aktif edildiğinde işlemci o kesme adresine sıçrar. Aşağıda 80C535 kesme adresleri görülmektedir.
Kesme kaynak ve vektörleri
80C535’de kesmeler 5 adet özel fonksiyon kaydedicileriyle (SFR) kontrol edilir. Bunlar
1. SFR IEN0 : Interrupt Enable 0.Kesme 0 aktifle registeri. Kesmelerin aktiflenmesinde ve pasiflenmesinde kullanılan registerdir.
2. SFR IEN1 : Interrupt Enable 1. Kesme 1 aktifle registeri. Kesmelerin aktiflenmesinde ve pasiflenmesinde kullanılan diğer bir registerdir.
3. SFR TCON : Timer Control Register. Zamanlayıcı kontrol registeri. Zamanlayıcı 0 ve 1’in ayarlarının yapılmasında kullanılır.
4. SFR IRCON : Interrupt Request Control Register. Kesme talep kontrol kaydedicisi, kesme taleplerini kontrol eder.
5. SFR T2CON : Timer2 Control Register. Zamanlayı2 Kontrol kaydedicisi
Bu registerların iç yapısı ve bitlerinin ne işe yaradığı, özel fonksiyon kaydedicileri (SFR) konusunda bahsedildiği için burada tekrar ele alınmamıştır.
80C535 A/D Çevirici
80C535 Analog Sayısal Çevirici
80C535’in bu kadar popüler olmasındaki en büyük sebep herhalde, entegre üzerindeki analog-sayısal çeviricisidir. 80C535 analog sayısal çevirici 8 kanala sahiptir ve girişleri Port 6 üzerinde bulunur. Analog sayısal çeviricinin kontrolü 3 özel fonksiyon registeri aracılığı ile gerçekleştirilir. ADCCON (ADC Kontrol) registeri hangi analog girişin okunacağını belirlemekte ve ADC çevrim modunun belirlenmesinde kullanılır. ADCCON registerindeki diğer bir bit BSY çevrim statüsünü gözlemekte kullanılır. Bu bit 1 ise çevrim devam ediyor demektir. Yapılan çevrimin sonucu otomatik olarak ADDAT registerine kopyalanır. 80C535 analog sayısal çevirici oransal bir analog sayısal çeviricidir. Ardışıl yaklaşım (Successive Approximation) mantığı ile bitlerin değeri belirlenmektedir. ADC çevrimi için gerekli referans gerilim değerleri, VAREF ve VAGND pinleri aracılığı ile ADC ye sağlanır.
80C535’e sağlanacak VAREF ve VAGND gerilimleri kullanıcı tarafından bağlanmak zorundadır. VAREF gerilimi 5 volt ve VAGND gerilimi 0 volt olarak verilmelidir. Entegre içerisinde bulunan bir DAC sayesinde bu referans gerilimi ADCye verilmeden önce değiştirilebilmektedir. Bu değişken referans gerilimleri IVAREF ve IVAGND programlanabilmektedir.
Entegre içi sayısal-analog çevirici DAPR özel fonksiyon registeri aracılığı ile programlanır. Burada dikkat edilecek nokta, IVAREF geriliminin IVGND geriliminden 1.25 volt fazla olmasıdır.
Bu iç referans ayarlaması sayesinde, 2 ardışıl yaklaşım daha gerçekleştirilir Böylece çözünürlük 9 veya 10 bite çıkarılabilmektedir. Analog sayısal çevirici tek tek çevrim modunda veya sürekli çevrim modunda çalıştırılabilmektedir. Analog sayısal çevirici kesme isteği kontrol registerindeki (IRCON) IADC statüs bitini SET ederek çevrimin bittiğini haber verir. Eğer bu bit IE registerinde maskelenmemişse, her ADC çevrimi sonucunda bir kesme aktiflenir.
Analog sayısal çevrim sonucunun alınması 4 adımda gerçekleşir. Önce ADCON registerine gerekli değerler yazılır. Daha sonra çevrim başla komutu verilir, sonra çevrim sonucu için beklenir ve en son olarak çevrim sonucu okunur.
ADC’nin Çevrime Hazırlanması
ADC’nin çevrime hazırlanması için, önce referans gerilimler ayarlanır, sonra giriş kanalı seçilir ve daha sonra çevrim modu seçilir.
ADC Çevriminin Başlatılması
Eğer ADCON registerine, mod seçimi bilgisi ve giriş kanalı seçim bilgisi yazılmışsa, ADC çevrimi DAPR registerine 1 bayt yazıldığı anda başlar. Bu yazım sırasında eğer bir çevrim yapılıyorsa o çevrim durdurulur.
Çevrim Bitişinin Beklenmesi
ADCON registerinin BSY biti çevrim durumunu göstermektedir. Çevrim sürdüğü sürece bu bitin değeri 1dir. Çevrim bittiği anda BSY biti 0 olur. Uygulama programı sürekli bu biti sorgulayarak çevrimin bitip bitmediğini kontrol edebilir. Buna alternatif olarak çevrim bitişinde bir kesme aktiflenip gerekli işlemlerin yapılması da mümkündür.
Çevrim Sonucunun Okunması
Çevrim sonucu ADDAT registerine yaılır. Çevrim sonucu direk olarak ADDAT registerinden okunabilir. Yeni bir çevrim yapıldığında ADDAT registerinin içeriğine yeni çevrim sonucu yazılır. Dolayısıyla çevrim sonucu, yeni çevrim sonucu yazılmadan önce ADDAT registerinden okunmuş olmalıdır.
Şifre-Pass: 320volt.com
Yayım tarihi: 2008/09/27 Etiketler: 8051, 80c51, atmel avr projeleri, mikrodenetleyici, SAB80C535, seviye ölçümü, ultrasonik sensör