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.




               İÇ RAM BELLEĞİ KULLANIMI

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.


             AKÜMÜLATÖR

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

Bu blogdaki popüler yayınlar

MİKRODENETLEYİCİ-3

MİKRODENETLEYİCİ-5