MİKRODENETLEYİCİ-4
8051’İN BELLEK YAPISI
MCS–51 ailesinde iç RAM, dış RAM ve dış program belleği olmak üzere üç tür bellek yer alır. Bazı kaynaklarda RAM belleklere veri belleği, program belleğine ise kod belleği adı verilir. Program belleği 8051 ve 8751’de tümdevre üzerinde yer alır. İç program belleği yeterli olduğunda dış program belleği kullanmaya gerek yoktur. Dış bellek kullanıldığında giriş çıkış portlarının bir kısmı adres ve veri yolu olarak kullanılacağından giriş/çıkış hattı olarak kullanılamayacaktır. 8051’in bellek yapısı Şekil‐2.5’te gösterilmiştir.
MCS–51 ailesi mikrodenetleyicilerde program belleği ile veri bellekleri ayrı adres alanlarına sahiptir. Her iki bellek türünden 64 Kbayt bellek bağlanabilir. Bu iki bellek satırı arasındaki ayrım kullanılan komut ve denetim hattı ile yapılır. 8051 komut okurken okuma işareti olarak PSEN hattını veri okurken RD hattını etkin yapılır. Veri yazarken ise WR işaretini etkin yapılır, program belleğine ise yazma yapılmaz. Devre tasarımı sırasında EPROM’un oku girişine PSEN hattı, RAM belleğin oku girişine RD hattı, yaz girişine ise WR hattı bağlanmalıdır. Bu ayrık bellek yapısına HARVARD mimarisi adı verilir. Bu mimaride MİB’e bağlanabilecek bellek kapasitesi iki katına çıkarken, denetim hattı sayısı ve komut sayısı artar. Şekil–2.6’da bellek alanları ve her bellek türünün kulandığı denetim hatları gösterilmiştir.
8051’de iç RAM olarak adlandırılan bölge MİB yazaçları,
çevre birimini denetleyen yazaçlar, bit adreslenebilen bellek satırları ve işlem
sonuçlarını geçici olarak saklamaya yarayan bellek satırlarından oluşur. İç RAM
MİB yazaçları ve çevre birimlerini denetleyen yazaçların yer aldığı özel amaçlı
yazaç bölgesi, yazaç bankaları, bit adreslenebilir ve genel kullanıma açık bellek
satırlarının bulunduğu alt 128 bayt bölgesi ve sadece genel kullanım amaçlı bellek
satırlarının bulunduğu üst 128 bayt bölgesi olmak üzere üç ana bölgeye
ayrılmıştır. Şekil‐2.7’da iç RAM belleğin kullanım bölgeleri gösterilmiştir.
ALT 128 BAYT
Alt 128 baytın adres aralığı 00h‐7Fh’dir ve bu kısma doğrudan ve dolaylı adresleme kiplerinin her ikisi ile de ulaşılabilir. Bu alanda yer alan 128 bayt farklı kullanım amaçlarına göre bölümlendirilmiştir. Bunlardan ilk 32 bayt yazaç bankaları olarak adlandırılır. Bunun hemen üzerinde yer alan 16 bayt bit adreslenebilen bölgedir. Geri kalan 80 bayt ise genel kullanıma açık bölgedir.
Bu bölgelerin kullanımı katı kurallara bağlı değildir, ayrılan görevde kullanmak programcıya kolaylık sağlar. Yazaç bankasını kullanmak veya kullanmamak programcıya bırakılmıştır. Reset sonrası bank 0 olarak adlandırılan yazaç gurubu etkin olur. Programcı seçmek istediği yazaç bankası numarasını yazarak etkin yazaç bankasını değiştirebilir. Kullanılmayan yazaç bankasını genel amaçlı RAM bellek olarak kullanılabilir. Bit adresli bölgenin bit adresleri 00h’den başlayarak 7Fh’ye kadar devam eder. Bu adresler bayt adreslere benzer fakat bit adreslemenin kullanıldığı komut ile bayt adreslemenin kullanıldığı komutlar faklı olduğu için herhangi bir kargaşaya sebep olmaz. Şekil‐2.8’de alt 128 baytın kullanım alanları gösterilmiştir.
ÜST 128 BAYT
Üst 128 baytın adres aralığı 80h‐FFh arasıdır ve bu kısım sadece dolaylı adresleme kipi ile kullanılabilir. Bu kısım 8052 ve üst serilerde yer alır. Bu bellek alanı üst sürümlerde gerek duyulan daha büyük kapasiteli yığına bir çözüm olarak eklenmiştir. MCS–51 ailesi mikrodenetleyiciler yığının dış veri belleğinde oluşturulmasına izin vermez. Programcı başlangıçta yığının başlangıç adresini 80H ayarlayarak üst 128 baytı yığın olarak kullanabilir.
ÖZEL İŞLEV YAZAÇLARI
Özel amaçlı yazaçlar (SFR) kısmının adres aralığı üst 128 bayta olduğu gibi 80H‐FFH aralığıdır, aynı adresi iki birimin paylaşması sebebiyle karışıklığı engellemak için MCS–51 ailesi mikrodenetleyiciler bu bellek alanına sadece doğrudan adresleme kipi ile erişime izin vermiştir. Özel işlev yazaçları tümdevre üzerinde yer alan çevre birimleri ile merkezi işlem biriminde yer alması gereken ana, yardımcı ve denetleme yazaçlarından oluşmaktadır. Çevre birimlerine erişmek için bu yazaçlar kullanılır. MCS–51 ailesi mikrodenetleyicilerde sonraki sürümleri düşünülerek bu bölge için 128 baytlık yer ayrılmıştır, fakat fiziksel olarak bunların çok azı ilk sürümlerinde kullanılmıştır. 8051’de bu yazaçların sayısı 21 adettir, 8052’de ise 26 adettir. 8051 içerisine çevre birimi eklendikçe Özel İşlev Yazaçlarının sayısı artacaktır. Şekil– 2.10’da AT89S52’nin özel işlev yazaçlarının yerleşimi verilmiştir. Özel İşlev Yazaçlarının tümünün assemlerda kullanılan simgeleri vardır, assembly programı yazarken simgeler kullanılabilir.
Özel amaçlı yazaçların isimleri ve SFR bölgesine
yerleşimleri şekil–2.9’da gösterilmiştir. Çizelge–2.4’te ise bu yazaçların reset
sonrası aldıkları değerler belirtilmiştir. Akümülatör ve durum yazacı da bu
bölgede yer alır ve birer adresleri vardır. Şimdi bu yazaçları daha yakından
tanıyalım.
Kısaca A veya Acc olarak adlandırılan bu yazaç aritmetik ve
mantık işlemlerde ana yazaç olarak kullanılır. Dış veri belleğinden veri alış
verişi ve program belleğinden veri okuma işlemleri de sadece bu yazaçtan yapılabilir.
SFR bölgesinde 0E0H adresinde yer alır, bit adreslenebilir. Kullanıldığı birçok
komutta adresi op‐kod içerisinde yer aldığından ayrıca adres yazılmaz. Eğer
adresi op‐kod içerisinde olmayan bir komut kullanılıyorsa assembler programına
bildirmek için A yerine Acc kısaltması kullanılmalıdır.
B YAZACI
B yazacı veya başka söyleyiş ile B akümülatörü 0F0H
adresinde yer alır, çarpma ve bölme işlemlerinde yardımcı akümülatör olarak
kullanılır. MUL AB komutu A akümülatörü ile B akümülatörünün içeriklerini
çarparak 16 bitlik sonucun düşük değerli kısmını A akümülatörüne, yüksek
değerli kısmını B akümülatörüne yazar. DIV AB komutu, A akümülatörünün
içeriğini (bölünen) B akümülatörünün içeriğine (bölen) böler. Bölümü A
akümülatörüne, kalanı ise B akümülatörüne yazar. Ayrıca B akümülatörü A
akümülatörü gibi bit adreslenebilir, özel görevleri dışında genel amaçlı
yardımcı yazaç olarak kullanılabilir.
DURUM YAZACI
Durum yazacı işlemcinin yaptığı en son işlem hakkında
bilgiler içerir. Boş kalan bitleri denetim amacıyla kullanılmıştır. Bu yazaca
hem durum göstermesi hem de denetim ditleri içermesi nedeniyle durum/denetim
yazacı adı da verilir. D0h adresinde yer alan durum yazacının her bitinin
görevi çizelge–2.5’te gösterildiği gibi farklıdır. Şimdi bu görevlerini
yakından tanıyalım.
ELDE BAYRAĞI (C veya CY)
Elde bayrağı aritmetik işlemlerde kullanılır. Toplama
işleminde eğer toplanan sayıların en yüksek değerli bitlerinden bir elde oluşur
ise elde bayrağı kurulur. Çıkarma işleminde ise çıkarılan daha büyük ise elde
bayrağı kurulur. Elde bayrağı ayrıca boolean akümülatörüdür. Bir bitlik
işlemlere birinci işlenen elde bayrağında bulunmak zorunda ve ayrıca sonuçta
elde bayrağına yazılır.
YARDIMCI ELDE BAYRAĞI (AC)
Yardımcı elde bayrağı İKO sayıların toplanmasında üçüncü
bitlerin toplamından elde oluşması durumunda veya sonucun düşük değerli nible
0Ah‐0Fh aralığında ise kurulur.
YAZAÇ BANKI SEÇME BİTLERİ
Bank seçme bitleri (RS0, RS1) etkin yazaç bankasını belirler.
Reset işareti ile bu iki bit temizlenir ve böylece bank 0 başlangıç olarak
seçilir. Diğer bankların etkin yapılabilmesi için yazılım ile bu bitlerin ayarlanması
gerekir. Çizelge–2.6’da bankların seçimleri için RS0 ve RS1 bitlerinin
değerleri verilmiştir.
BAYRAK 0
Bayrak 0 genel amaçlı bayraktır, herhangi bir özel görevi yoktur programcı kendi istediği görevi bu bite verebilir.
Taşma Bayrağı
Taşma bayrağı (OV) toplama veya çıkarma işlemi sonrası eğer aritmetik taşma varsa kurulur. Yazılım bu bite bakarak sonuç hakkında gerekli düzenlemeyi yapar. Bu bit işaretli sayılar ile aritmetik işlemler yapıldığında kullanılır. İşaretsiz sayılarla aritmetikte bu bayrak ihmal edilir. Toplama sonucu +127’den büyük veya –128’den küçük ise bu bit kurulur.
EŞLİK BİTİ
Eşlik biti her makine saykılında otomatik olarak akümülatördeki çift eşliği denetler, eğer birlerin sayısı tek ise bu bit kurulur. Akümülatör ile bu bitin durumu sürekli çift eşlik oluşturur. Başka bir söyleyişle akümülatörün içerisindeki birlerin sayısı tek olduğunda kurulur ve akümülatör ve bu bitin içeriğindeki bir sayısını çift hale getirir. Eşlik biti iletişim sistemlerinde hata denetlemek amacı ile kullanılır.
PORT YAZAÇLARI
8051’in portlarına SFR bölgesinde yer alan yazaçları kullanılarak erişilebilir. portların yapılarında küçük farklılıklar vardır. Bu farklılıklar portları okuma ve yazma işleminde herhangi bir farklılık yaratmaz. Yapılarının farklı olmasının nedeni birçok port hattının giriş çıkış işleminin dışında ikincil görevleri vardır. Port yazaçları 80h, 90h, A0h, B0h adreslerinde yer alır. Eğer dış bellek kullanılıyor ise port 0, 2 ve 3 genel amaçlı giriş/çıkış hattı olarak kullanılamaz. Tüm portlar bit adreslenebilir, bu özellik denetim uygulamalarında programcıya kolaylık sağlayacaktır. Her hattı farklı bir motor veya röle bağlanarak çok sayıda değişken aç‐kapa denetimi yapılabilir.
PORT 0
Port 0’ın ikincil görevi dış bellek kullanıldığında zaman paylaşımlı adres yolu düşük değerli baytı ve veri yolu olmasıdır. Port 0’ın iç yükseğe çekme dirençleri veri/adres yolu olarak kullanılması dışında yoktur. Bağlanılan cihaza göre bu porta dışarıdan yükseğe çekme dirençleri bağlanmalıdır.
Şekil–2.10’da port 0’ın içyapısı verilmiştir. Hatta
bağlanacak R direncinin değeri kullanılan 8051’in veri yapraklarından elde
edilecek port hatlarının sink akımına ve bu hatta bağlanacak yükün değerine
göre seçilmelidir. Port 0’ın bir hattına veri yazmak için tutucu çıkışına
istenilen veri yazılır. Tutucu çıkışta bulunan MOSFET’i sürerek yazmak
istediğimiz veriyi hat çıkışına ulaştırır. Giriş olarak kullanmak istediğimizde
önce çıkışa “1” yazılır ve çıkıştaki MOSFET’in yalıtıma geçmesini sağlarız ve
daha sonra girişi okuyan komut ile girişin seviyesi 8051 yazaçına aktarılır. 8051
portlarını giriş ve çıkış olarak kullanılırken yönlendirme işlemi yapılmaz. Bir
anlamda otomatik giriş çıkış seçimi yapılır diyebiliriz. Giriş işlemi öncesi 1
yazılmasının nedeni önceki işlemden 0 yazılı kalırsa port hattı girişine 1 uygulansada
0 uygulansa da her zaman MOSFET iletimde olacağı için sürekli 0 okunur. 8051’in
giriş çıkış hatları yönlendirme yapılan mikrodenetleyici giriş çıkış hatları
ile karşılaştırıldığında zayıf bir yapıya sahiptir aşırı akım ve gerilimlere
karşı korumasız olduğu için kolay zarar görür. Güçlü çıkış akımın gerek olduğu uygulamalarda
transistör veya mantık geçitleri kullanılarak akım olarak çıkış hattarı güçlendirilmelidir.
PORT 1
Port 1 iç yükseğe çekme dirençleri olan 8 adet çift yönlü
çalışabilen Giriş/Çıkış hattından oluşur. Port 1’in her bir hattı 4 adet LS
ailesi TTL geçidi sürebilecek kaynak/şase kapasiteye sahiptir. 8051’de port
1’in ikincil bir görevi yoktur, fakat 8052’de zamanlayıcı 2’nin girişleri için
P1.0’a sayıcı tetikleme, P1.1’e ise yakalama/yeniden yükleme işlemi tetikleme
girişi görevleri verilmiştir. Seri programlama yapılabilen 8052’nin yeni
sürümlerinde P1.5’e MOSI, P1.6’ya MOSO ve P1.7’ye SCK görevleri verilmiştir.
Port 1’in ikincil görevleri ve bit adresleri çizelge– 2.7’de verilmiştir. Port
1, 2 ve 3’ün iç yapıları aynıdır ve şekil‐2.11’de gösterilmiştir.
PORT 2
Port 2 iç yükseğe çekme dirençleri olan 8 adet çift yönlü
çalışabilen Giriş/Çıkış hattından oluşur. Port 2’nin her bir hattı 4 adet LS
ailesi TTL geçidi sürebilecek kaynak/şase kapasiteye sahiptir. port 2’nin
ikincil görevi dış bellek kullanımında adresin yüksek değerli 8 bitini
taşımasıdır. Dış bellek kullanılmadığında veya 256 bayt kullanıldığında yüksek
değerli adrese gereksinim olmayacaktır ve bu hatlar serbest I/O hattı olarak
kullanılabilirler.
PORT 3
Port 3 iç yükseğe çekme dirençleri olan 8 adet çift yönlü
çalışabilen Giriş/Çıkış hattından oluşur. Port 3’in her bir hattı 4 adet LS
ailesi TTL geçidi sürebilecek kaynak/şase kapasiteye sahiptir. Port 3’ün her
hattının farklı bir ikincil görevi vardır, ikincil görevleri ve adresleri her
hat için çizelge–2.7’de verilmiştir. Özel görevlendirildiği birim
kullanılmadığı durumlarda bu hatlar serbest giriş/çıkış (I/O) hattı olarak
kullanılabilir.
Port 3 diğer portlara göre daha güçlü çıkış hatlarına sahip
olduğu için ikincil görevleri olmadığı durumlarda tasarımda bu porta öncelik
verilmelidir. Port 0’da olduğu gibi bu portta da giriş olarak kullanılmadan
önce mutlaka çıkışa 1 yazılmalıdır. Özellikle kesme ve zamanlayıcı girişlerinde
bu kurala kesinlikle uyulmalıdır.
VERİ GÖSTERİCİ
Veri gösterici yazaç (DPTR) dış veri veya program belleğine
ulaşmak için kullanılan 16 bitlik bir yazaçtır. 82H ve 83H adreslerinde yer alır,
8 bitine veya bir defada 16 bitine ulaşabilen komutlar vardır. Bu yazaca bir
defada 16 bit sayı yüklenebilir veya içeriği arttırılabilir ya da
azaltılabilir. Yeni türev 8051’lerde ikinci bir DPTR1 yazacı eklenmiştir
çalışma şekli benzerdir.
YIĞIN İŞARETLEYİCİ
Yığın işaretleyici 81H adresinde yer alan 8 bit bir
yazaçtır. Yığına en son atılan verinin adresini gösterir. Yığına veri atma
işleminde önce yığın işaretleyicinin içeriği bir arttırılır ve bilgi yığına
atılır. Yığından bilgi çekmede ise önce bilgi akümülatöre alınır ve sonra
içerik bir azaltılır. 8051’de yığın alt 128 baytlık iç RAM ile sınırlıdır 8052’de
ise iç RAM belleğin tamamı (256 bayt) yığın olarak kullanılabilir. Reset sonrası
yığın işaretleyici 07H adresine ayarlanır. Bu demektir ki bank 0 dışındaki banklar
ve bit adreslenen bölge yığın olarak kullanılacağı için özel görevlerinde kullanılamayacaklardır.
ZAMANLAYICI YAZAÇLARI
8051 iki adet 16 bit zamanlayıcı/sayıcıya sahiptir. Zamanlayıcı
0 ve 1’in çalışma kipi seçme işlemleri için TMOD denetim ve durum gösterme
işlemleri için TCON yazaçları görevlendirilmiştir. Bu iki yazaç 8 bitliktir ve
her bitine ayrı görev verilmiştir. Zamanlayıcı/Sayıcı 0 ve 16 bit bir
sayıcıdır. 8051’in SFR yazaç yapısı ise 8 bitlik olduğu için Zamanlayıcı/Sayıcı
0 TL0 ve TH0 olarak adlandırılmış iki 8 bit yazacın birleşiminden oluşur.
Zamanlayıcı/Sayıcı 1 ise TL1 ve TH1 olarak adlandırılmış iki 8 bit yazacın
birleşiminden oluşur.
8052’ye Zamanlayıcı/Sayıcı 2 olarak adlandırılan üçüncü
16 bitlik bir Zamanlayıcı/Sayıcı eklenmiştir. Bu zamanlayıcının çalışma kipi
seçme bitleri, T2MOD yazacında denetim bitleri ve durum bitleri ise T2CON
yazacında yer alır. Zamanlayıcı/Sayıcı 2
8’er bitlik T2H ve T2L yazaçlarından oluşur. Zamanlayıcı/Sayıcı 2 diğer
zamanlayıcı/sayıcılardan farklı olarak 16 bit yeniden yükleme ve yakalama çalışma
kiplerinde kullanmak üzere RCAP2L RCAP2H yazaçlarına sahiptir. Çizelge‐ 2.8’de
8052’nin zamanlayıcıların yazaçlarının isimleri, simgeleri, görevleri ve adresleri
gösterilmiştir.
SERİ PORT YAZAÇLARI
8051 tümdevre üzerinde seri iletişim yapan cihazlarla iletişim kurmak amacı ile seri porta (UART) sahiptir. Seri port tampon yazacı (SBUF) 99h adresinde yer alır. Gönderilecek olan veriyi veya gelen veriyi içerir. Çalışma kipi ve işlem sonuçları ise seri port denetim yazacı (SCON) tarafından yapılır. Yeni türev 8051 üyelerinde ikinci bir UART1 birimi, SPI haberleşme birimi ve I2C seri haberleşme birimleri eklenmiştir ve bu birimleri kullanmak ve denetlemek için yeni yazaçlar eklenmiştir.
KESME YAZAÇLARI
8051 iki önceliklime düzeyi olan 5 adet kesme kaynağına sahiptir. Sistem resetlendiğinde kesmeler etkisiz hale getirilir, yazılım ile kullanılacak kesmeler kesme izinleme (IE) yazacı ile genel ve bireysel olarak etkin hale getirilebilir. Kesme kaynaklarının algılanması sırasında oluşacak kargaşanın engellenmesi için kesme öncelik sıralama yazacı (IP) yerleştirilmiştir. 8052’de zamanlayıcı 2 kesmesi en düşük önceliği sahip olarak kesme kaynaklarına eklenmiştir.
GÜÇ DENETİM YAZACI
Güç denetim yazacının görevi mikroişlemcinin güç tüketimini azaltmaktır. Mikroişlemcinin normal çalışması dırasında güç azaltılması mümkün değildir. Fakat işlemini bitiren ve yeni bir iş bekleyen mikroişlemci uyku moduna geçerek güç tüketimini azaltabilir. Güç denetim yazacı (PCON) içerisine bu amaca hizmet etmeyen başka birimlerin denetim bitleri de yerleştirilmiştir, isimleri ve görevleri çizelge–2.9’da gösterilmiştir. SMOD biti seri kanalın iletim hızını ikiye katlar. 4, 5, 6 nolu bitler kullanılmamıştır. Güç denetim bitleri IDL ve PD sadece CMOS tüm devrelerde kullanılmaktadır.
Aylak Çalışma Kipi
IDL bitini kuran komut işletilen son komut olacaktır. Çünkü bu bit kurulduğunda
MİB’nin saat işareti kapatılır, MİB en son halini korur. Seri portu ve zamanlayıcıların
çalışmasını etkilemez. Portların mantık seviyeleri son durumlarını korur. ALE ve
PSEN işaretleri yüksek seviyede kalırlar. IDL moddan ancak kesme veya sistem reseti
ile çıkılabilir.
Kısık Güçte Çalışma Kipi
PD bitini kuran komut en son işletilen komut olur. PD biti kurulduktan sonra
işlemcinin saati kapatılır. Reset ile ancak kısık güç çalışmadan çıkılabilir. Tüm işlemler sayıcılar ve seri port da olmak üzere durdurulur, portlar ve yazaçlar en son
halini korurlar. ALE ve PSEN düşük seviyede kalırlar.
PROGRAM BELLEĞİ
MCS–51 ailesi mikrodentleyiciler program belleği olarak tümdevre üzerinde yer alan ROM, EPROM, FLASH bellek türleri kullanılır. Üzerinde bellek bulunmayan üyelerine EA bacağı şaseye bağlanarak dışarıdan kalıcı tür program belleği bağlanabilir. Günümüzde üretilen MCS–51 üyelerinin hepsi yeteri kadar iç program belleğine sahiptir, yeterli olmadığında dış bellek bağlamak yerine daha yüksek belleği olan bir ürün seçilmektedir. 8051 iç ve dış olmak üzere 65536 satır program belleğini adresleyebilir. Bazı üreticiler kendilerine özgü yöntemle program belleğini kapasitesini 512 Kbayta kadar arttırmışlardır. Bazı üreticiler ise program belleiğinin bir kısmını veri saklamak üzere çalışırken programlanmasına olanak sağlamışlardır. MCS–51 ailesi mikrodentleyiciler program belleğinden okuma yaparken PSEN hattını etkin yapar. Adres yolu olarak P0 ve P2’yi veri yolu olarakta yine P0’ı kullanır. P0’ın adres ve veri yolu olarak zaman paylaşımlı kullanımını ALE işareti sağlar.
DIŞ BELLEK KULLANIMI
Mikrodenetleyicilerin sadece içerisinde bulunan birimleri ile devre tasarlamak kullanım alanlarını kısıtlar. Özellikle iç belleğin kullanımı bazı uygulamalarda yetersiz kalabilir. Mikrodenetleyici üreticileri devre tasarımcılarını daha fazla olanak sunmak için iç belleğin yanı sıra dışarıdan hem program belleği hem veri belleği bağlantısının yapılması için mikrodenetleyici üzerinde gerekli düzenlemeleri yapmışlardır. MCS–51 ailesi mikrodenetleyiciler de 64 K dış program ve veri belleği adres alanına sahiptir. İç belleğin yetersiz kaldığı uygulamalarda dışarıdan 64 Kbayta kadar program belleği, 64 Kbayt veri belleği eklenebilir. Ayrıca çevre arabirimi (Peripheral interface) dış bellek alanına eklenebilir. Dış bellek kullanıldığında Port 0 giriş/çıkış işlemleri için kullanılamaz. Bu port zaman paylaşımlı adresin düşük değerli baytı (A0‐A7) ve veri yolu (D0‐D7) olarak kullanılır. Dış bellek işlem saykılının birinci yarısında ALE işareti ile adresin düşük değerli baytı tutucu çıkışlarında tutulur. İkinci yarıda veri yolu olarak kullanılır. Port 2 ise kullanıldığında adresin yüksek değerli baytı olarak görevlendirilir. Kullanılan dış bellek 256 baytın altında ise adres için 8 bit yeterli olduğundan port 2 giriş çıkış işlemleri için kullanılabilir. Zaman paylaşımlı aynı portun adres ve veri yolu için kullanılması adres ve veri yolu için kullanılacak hat sayısını azaltır. Zaman paylaşımlı kullanılmayan işlemcilerde 24 bacak bu işlem için kullanılırken zaman paylaşımlı kullanan sistemlerde 16 bacak kullanılır. Diğer bacaklar farklı işlevler için kullanılabilir. Bu tür işlemcilerin DIP 40 soketinde üretildiğini düşünürsek 8 hat oldukça değerlidir. Şekil–2.12’de zaman paylaşımlı ve paylaşımsız sistemlerin zamanlama diyagramları verilmiştir. Zaman paylaşımlı çalışmada işlem saykılının birinci yarısında port 0 çıkış olarak yönlendirilir ve adresin düşük değerli baytı yazılır. ALE işareti etkin yapılarak 74HHC373 veya eşdeğer tutucuda tutulur. Port 2’ye ise adresin yüksek değerli baytı yazılır. İkinci yarıda port 2’nin içeriği değişmez fakat port 0, okuma işlemi yapılıyor ise giriş yapılır ve veri okunur. Yazma işlemi ise çıkış yapılır ve veri yazılır. İkinci yarıda ALE işareti etkin olmaz fakat program belleğinden işlem yapılıyorsa PSEN, veri belleğinden işlem yapılıyor ise WR veya RD işaretleri etkin yapılır.
DIŞ PROGRAM BELLEĞİ
Dış program belleği PSEN işareti ile etkin olan sadece okunabilir türü bellektir. Dış EPROM kullanıldığında port 0 ve port 2 genel amaçlı Giriş/Çıkış hattı olarak kullanılamaz. Bu tür belleğin 8051’e bağlantısı şekil–2.14’te gösterilmiştir. 8051’in bir makine saykılı 12 osilatör periyodundan oluşur. 12 MHz’lik kristal kullanıldığında bir makine saykılı 1 𝜇S’dir. Bir makine saykılı süresince ALE işareti iki defa etkin olur ve dış program belleğinden iki bayt okunur. Eğer okunan komut tek baytlık ise ikinci bayt atılır. Bu işlemin zamanlama diyagramı şekil– 2.15’de gösterilmiştir.
DIŞ VERİ BELLEĞİ
Dış veri belleği RD ve WR işaretleri ile etkinleştirilen oku/yaz
türü belleklerdir. RD ve WR işaretleri P3.7 ve P3.6 hatlarından MOVX komutu ile
üretilirler. MOVX komutunda adres gösterici olarak DPTR kullanıldığında dış
veri belleğinin adres hattı 16 olur, R0 veya R1 yazaçlarından biri
kullanıldığında adres hattı 8 bittir. Dış veri belleği olarak 256 baytlık
bellek kapasitesi yeterli ise ikinci seçenek kullanılır. Şekil–2.16’da
gösterildiği gibi veri belleği bağlantısı adresin düşük değerli kısmı ile veri
yolu bağlantısı EPROM’da olduğu gibidir. Farklı kısmı ise RD işaretinin RAM belleğin
OE girişine ve WR işaretinin de W girişine bağlanmasıdır. PSEN işareti dış veri
belleği bağlantısında kullanılmaz. Port 0 ve Port 2 kullanılarak 64 Kbayta
kadar dış veri belleği bağlanabilir. Örnek şekilde ise 1Kbayt’lık RAM
bağlantısı gösterilmiştir. P2 portunun boşta kalan hatları bilinçli bir şekilde
serbest G/Ç hattı olarak kullanılabilir. 8051 bu hatlar bir yere bağlanmasa da
MOVX A,@DPTR veya MOVX @DPTR, A komutları işletildiğinde mantık seviyelerini
değiştirebilir.
MOVX A,@R0 veya MOVX @R0, A işletildiğinde ise bu komutlarda
sadece 8 bit adres kullanılması nedeniyle P2 portu etkilenmeyecektir. Bu
yöntemle erişilebilecek bellek kapasitesi 256 bayttır. Daha büyük kapasite
gerekiyorsa P2 ya da diğer boş olan portların hatları gerektiği kadar RAM
belleğin A8, A9, A10 adres girişlerine bağlanır ve bu hatların mantık
seviyeleri programcı tarafından okuma ve yazma komutları işletilmeden önce
yapılır. Bu yöntem 2 Kbayta kadar bellek bağlamak için verimli olabilir, daha büyük
bellek bağlamak için veri gösterici olarak DPTR kullanılır. İşlem yapılacak
veri belleğinin adresi DPTR yazacına yüklenir ve sonra okuma veya yazma işlemi
yapılır. Şekil–2.17’de MOVX A, @DPTR komutunun işleme zamanlaması verilmiştir.
Birinci makine saykılında opkod program belleğinden okunacağı için ALE ve PSEN
sırasıyla etkin olmuştur. İkinci makine saykılında işlem dış veri belleğinden
yapıldığı için PSEN etkin değildir RD işareti etkindir. Dış veri belleğine
yazma işlemi de okuma ile aynı olacaktır, tek fark işlemci tarafından ikinci makine
saykılında RD işareti yerine WR işareti etkin yapılacaktır.


















Yorumlar
Yorum Gönder