8051 Mikrodenetleyicide Bankaları ve Yığın Bellek Tahsisini Kaydedin

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Genel amaçlı kayıtların toplanması (R0-R7), bir bayt veri kabul eden kayıt bankaları olarak adlandırılır. Banka kaydı, Gömülü RAM belleği mikrodenetleyiciler ve program talimatlarını saklamak için kullanılır. Her mikro denetleyici, çeşitli bellek bankalarından oluşur ve her banka kaydı, depolama konumunu tanımak için benzersiz bir adresten oluşur.

8051'de Bankaları Kaydedin

8051

8051'de Bankaları Kaydedin



8051 mikro denetleyici PSW (Program Durum Word) kaydı tarafından seçilen Bank0, Bank1, Bank2, Bank3 gibi dört kayıt bankasından oluşur. Bu kayıt bankaları, 8051 mikro denetleyicinin dahili RAM belleğinde bulunur ve mikro denetleyici programlandığında verileri işlemek için kullanılır.


Kayıt Bankalarının Değiştirilmesi



Varsayılan olarak, 8051 mikro denetleyicisine kayıt bankası 0 ile güç verilir ve Program Durum Word'ü (PSW) kullanarak diğer bankalara geçebiliriz. İki bit PSW, kayıt bankaları arasında geçiş yapmak için kullanılır. Bu iki bite, bit adresli komutlar SETB ve CLR ile erişilir.

PSW'nin RS1 ve RSO'nun olası kombinasyonlarına bağlı olarak, kayıt bankası buna göre değiştirilir, yani eğer RS1 ve RS0 0 ise, o zaman Banka 0 seçilir. Benzer şekilde Bank1, 2 & 3, RS1 ve RS0 değerlerine göre seçilir.

8051 Mikrodenetleyicide Yığın Bellek Tahsisi

Yığın, değişkenlerin tüm parametrelerini geçici olarak tutmak için ayrılmış rastgele erişim belleği (RAM) alanıdır. Yığın ayrıca, bir işlevin doğru şekilde döndürülebilmesi için çağrıldığı sırayı hatırlatmaktan da sorumludur. İşlev her çağrıldığında, onunla ilişkili parametreler ve yerel değişkenler yığına eklenir (PUSH). İşlev geri döndüğünde, parametreler ve değişkenler yığından kaldırılır ('POP'). Bu nedenle, program çalışırken programın yığın boyutu sürekli olarak değişir.


Yığına erişmek için kullanılan kayıt, yığın işaretçi kaydı olarak adlandırılır. Yığın işaretçisi, yığını işaret etmek için kullanılan küçük bir kayıttır. Yığın belleğine bir şey gönderdiğimizde, yığın işaretçisi artar.

8051 Mikrodenetleyicide Yığın Bellek Tahsisi

8051 Mikrodenetleyicide Yığın Bellek Tahsisi

Misal

Bir 8051 mikro denetleyicisi çalıştırıldığında, yukarıdaki şekilde gösterildiği gibi, yığın işaretçisi içerdiği değer varsayılan olarak 07'dir. 'PUSH' işlemini gerçekleştirirsek, yığın işaretçisi adresi artırılacak ve başka bir kayda kaydırılacaktır. Bu sorunu önlemek için, programı başlatmadan önce, yığın işaretçisine farklı bir adres konumu atamamız gerekir.

İTME işlemi

'PUSH', herhangi bir kayıttan değerleri almak ve yığın işaretçisinin başlangıç ​​adresinde saklamak için kullanılır, yani 'PUSH' işlemini kullanarak 00h. Ve bir sonraki 'PUSH' için + 1'i artırır ve değeri yığın işaretçisinin sonraki adresinde, yani 01h'de saklar.

Yığın İTME işlemi

Yığın İTME işlemi

PUSH işlemi anlamına gelir (İlk Giren İlk Çıkar)

Örnek: PUSH işlemi için montaj dilinde WAP

0000 saat
MOV 08h, # 21h
MOV 09h, # 56h
İTME 00h
PUSH 01h
SON

POP Operasyonu

Değerleri, yığın işaretçisinin maksimum adresinden başka herhangi bir kayıt adresine yerleştirmek için kullanılır. Bu 'POP' u tekrar kullanırsak, 1 azalır ve herhangi bir kayıtta saklanan değer 'POP' olarak verilir.

Yığın İçinde POP İşlemi

Yığın İçinde POP İşlemi

POP işlemi 'Son giren İlk çıkar' anlamına gelir.

000 saat
MOV 00H, # 12H
MOV 01H, # 32H
POP 1FH
POP 0EH
SON

8051 Mikrodenetleyicinin Kayıtları

Toplama veya çıkarma gibi herhangi bir işlem yaparsak, bu işlemler doğrudan bellekte gerçekleştirilemez ve bu nedenle kayıtlar kullanılarak gerçekleştirilir. Farklı türleri vardır 8051 mikro denetleyicide kayıtlar .

Bu kayıtlar, işlemlerine göre iki türe ayrılır:

• Genel Amaçlı Kayıtlar

• Özel Fonksiyon Kayıtları

Genel Amaçlı Kayıtlar

Bu makalede daha önce tartıştığımız gibi, her bankanın 8 adreslenebilir 8 bitlik siciline sahip olduğu dört farklı banka kaydı vardır ve bir seferde yalnızca bir banka siciline erişilebilir. Ancak, bayrak sicilindeki banka sicilinin numarasını değiştirerek, bu makalede daha önce tartışılan diğer banka kayıtlarına erişebiliriz. 8051'de interrupt kavramı .

Özel Fonksiyon Kayıtları

Akümülatör, Kayıt B, Veri işaretçisi, PCON, PSW, vb. İçeren özel fonksiyon kayıtları, 80H ila FFH adresli üretim sırasında önceden belirlenmiş bir amaç için tasarlanmıştır ve bu alan veri veya program saklama amacıyla kullanılamaz. Bu kayıtlar, bit adresi ve bayt adres kayıtları tarafından gerçekleştirilebilir.

Özel İşlev Kayıt Türleri

8051, toplam 32 I / O hattı bulunan, giriş / çıkışla ilgili dört özel fonksiyon kaydından oluşur. Özel fonksiyon kayıtları, G / Ç hatlarından okunan değerleri ve 8051'in çalışmasını kontrol eden özel fonksiyon kayıtlarını kontrol eder. Yardımcı özel fonksiyon kayıtları doğrudan 8051'e bağlı değildir - aslında bu kayıtlar olmadan - 8051 düzgün çalışamıyor. 8051 kayıt seti aşağıda açıklanmıştır.

8051 Mikrodenetleyicinin kayıt seti

Kayıtta sabit bir sabit değerin ayarlanması, kayıt kümesi olarak adlandırılır. Değerler, komut seti kullanılarak kayıtlarda ayarlanır. 8051, CISC talimatlarını 'Harvard' mimarisiyle izler. CISC, karmaşık komut seti hesaplama anlamına gelir . 8051 mikro denetleyicisindeki farklı talimat türleri şunları içerir:

  1. Aritmetik Komutlar
  2. Koşullu Talimatlar
  3. Çağrı ve Atlama Talimatları
  4. Döngü Talimatları
  5. Mantıksal Talimatlar
  6. Külçe Talimatları

1. Aritmetik talimatlar

Aritmetik komutlar, aşağıdakiler gibi birkaç temel işlemi gerçekleştirir:

  • İlave
  • Çıkarma
  • Çarpma işlemi
  • Bölünme
8051 Mikrodenetleyicide aritmetik talimatlar

8051 Mikrodenetleyicide aritmetik talimatlar

Örnekler:

a. İlave:

Org 0000h
MOV R0, # 03H // 3 değerini taşı kayıt R0 //
MOV A, # 05H // toplayıcı A'daki 5 değerini taşı //
0 ile A, 00H // akümülatör değerini '5' ekleyin ve akümülatörde kaydedin //
SON

b. Çıkarma:

Org 0000h
MOV R0, # 03H // 3 değerini taşı kayıt R0 //
MOV A, # 05H // toplayıcı A'daki 5 değerini taşı //
SUBB A, 03H // A = 5-3 son değer 2 A Akümülatörde saklanır //
SON

C. Çarpma:

Org 0000h
MOV R0, # 03H // 3 değerini taşı kayıt R0 //
MOV A, # 05H // toplayıcı A'daki 5 değerini taşı //
MUL A, 03H // A = 5 * 3 son değer 15'tir, Akümülatör A'da saklanır //
SON

D. Bölümü:

Org 0000h
MOV R0, # 03H // 3 değerini taşı kayıt R0 //
MOV A, # 15H // toplayıcı A'daki 5 değerini taşı //
DIV A, 03H // A = 15/3 son değer 5 A Akümülatörde saklanır //
SON

2. Koşullu Talimatlar

CPU, tek bit durumunu kontrol ederek koşula göre talimatları yürütebilir veya bayt durumuna koşullu talimatlar denir, örneğin:

Bit adreslenebilir kayıtta tek bit durumunu kontrol etmek için

JB- aşağıya atla

JNB- yukarıda değilse zıpla

Taşıma bit durumunu kontrol etmek için

JC- bayrak taşıyorsa atlama

Taşıma yoksa JNC atlama

Akümülatör durumunu 0 veya 1 kontrol etmek için

JZ- sıfır bayrağı ise atla

JNZ- sıfır değilse atla

Bu tamamen 8051 mikrodenetleyicideki kayıt seti ve yığın bellek tahsisi ile ilgilidir. Bu makalenin size konuyla ilgili bazı temel bilgiler vermiş olmasının yanı sıra her konuyla birlikte çok ilginç programların da verilmiş olabileceğini umuyoruz. Ayrıca herhangi bir yardım için bize yazabilirsiniz. mikro denetleyiciyi kodlamak ve ayrıca hakkında mikrodenetleyici ile ilgili son projeler .