mcs51 ailesinin mikrodenetleyicileri. Mikrodenetleyiciler MCS-51: program modeli, yapısı, komutları

AİLE MİKROKONTROLÖRLERİNİN MİMARİSİMM-51

Derslere göre ders notları

"Kontrol sistemlerinde mikroişlemciler", "Mikroişlemci teknolojisi"

"Mikroişlemci araçları ve sistemleri"

her türlü eğitim uzmanlığı öğrencileri için

072000 - Standardizasyon ve belgelendirme

210200 - Teknolojik süreçlerin otomasyonu

230104 - Bilgisayar destekli tasarım sistemleri

Tambov 2005

GİRİŞ.. 3

1. MİKRODENETLEYİCİ INTEL 8051'İN YAPISI. 3

1.1. Hafızanın organizasyonu. beş

1.2. Aritmetik mantık aygıtı. 6

1.3. Programlar ve veriler için yerleşik bellek. 7

1.4. Akümülatör ve genel amaçlı kayıtlar. 8

1.5. Program durumu word kaydı ve bayrakları. dokuz

1.6. Kayıtlar-işaretçiler. 10

1.7. Özel fonksiyonların kayıtları. on bir

1.8. Kontrol ve senkronizasyon cihazı. on bir

1.9. Paralel bilgi giriş/çıkış portları. 12

1.10. Zamanlayıcılar / sayaçlar. 13

1.11. seri port. on sekiz

1.11.1. SBUF'a kaydolun.. 18

1.11.2. Seri bağlantı noktası çalışma modları. on sekiz

1.11.3. Kaydol SCON.. 19

1.11.4. Alma/iletim hızı. 21

1.12. kesinti sistemi. 22

2. INTEL 8051 MİKRODENETLEYİCİ KOMUTLARI SİSTEMİ 26

2.1. Genel bilgi. 26

2.1.1. Komut türleri. 27

2.1.2. işlenen türleri. 28

2.1.3. Veri adresleme yöntemleri. otuz

2.1.4. sonuç bayrakları. 31

2.1.5. sembolik adresleme 32

2.2. Veri aktarım komutları. 33

2.2.1. Bilgi bağlantılarının yapısı. 33

2.2.2. Bataryaya erişim. 33

2.2.3. Harici veri belleğine erişim. 34

2.2.4. Program hafızasına erişim.. 34


2.2.5. Yığın erişimi. 35

2.3. Aritmetik işlemler. 35

2.4. mantıksal işlemler 39

2.5. Kontrol aktarım komutları. 43

2.5.1. Uzun geçiş. 43

2.5.2. Mutlak geçiş. 43

2.5.3. Göreceli geçiş. 44

2.5.4. dolaylı geçiş 44

2.5.5. Koşullu atlamalar.. 44

2.5.6. Altyordamlar.. 47

2.6. Bit ile işlemler. 48

Güvenlik soruları... 49

EDEBİYAT.. 50

Ek INTEL 8051 KOMUT SİSTEMİ 51

GİRİŞ

20. yüzyılın 80'lerinden bu yana, mikroişlemci teknolojisinde bağımsız bir entegre devre sınıfı ortaya çıktı - çeşitli amaçlar için cihazlara yerleştirilmek üzere tasarlanmış tek çipli mikro denetleyiciler. Tek çipli mikroişlemciler sınıfından, dahili belleğin varlığı, harici cihazlarla gelişmiş etkileşim araçları ile ayırt edilirler.

MCS-51 ailesinin 8 bitlik tek çipli mikro denetleyicileri yaygın olarak kullanılmaktadır. Bu aile, iyi tasarlanmış mimarisi nedeniyle mikroişlemci kontrol sistemleri geliştiricileri arasında büyük popülerlik kazanan Intel 8051 mikrodenetleyici temelinde oluşturulmuştur. Mikrodenetleyicinin mimarisi, bir dizi dahili ve harici yazılımla erişilebilen donanım kaynakları ve bir komutlar sistemidir.

Daha sonra Intel, Intel 8051 mikrodenetleyicisinin çalışma çekirdeğine dayanan yaklaşık 50 model yayınladı.Aynı zamanda, Atmel, Philips gibi diğer birçok şirket, MCS-51 standardında geliştirilen mikrodenetleyicilerinin üretimine başladı. Ayrıca Intel 8051 mikrodenetleyicisinin yerel bir analogu da var - K1816BE51 yongası.

2. MİKRODENETLEYİCİ INTEL 8051 YAPISI

Intel 8051 mikro denetleyici, üst düzey n-MOS teknolojisine dayanmaktadır. Başlıca özellikleri aşağıdaki gibidir:

· kontrol işlevlerinin uygulanması için optimize edilmiş sekiz bitlik merkezi işlemci;

Dahili saat üreteci (maksimum frekans 12 MHz);

· program bellek adres alanı - 64 KB;

· veri belleği adres alanı - 64 KB;

Dahili program belleği - 4 KB;

dahili veri belleği - 128 bayt;

Boole cebri işlemlerini gerçekleştirmek için ek özellikler (bitsel işlemler);

· 2 adet on altı haneli çok amaçlı zamanlayıcı/sayıcı;

Tam çift yönlü asenkron alıcı-verici (seri bağlantı noktası);

· İki öncelik düzeyine ve beş olay kaynağına sahip vektör kesme sistemi.

Şekil 1 - Mikrodenetleyici Intel 8051'in blok şeması

Blok diyagramın temeli (Şekil 1), mikrodenetleyicinin ana düğümlerini ve cihazlarını birbirine bağlayan dahili bir çift yönlü 8-bit veriyolundan oluşur: yerleşik program belleği (RPM), yerleşik veri belleği (RDM), aritmetik mantık birimi ( ALU), kayıt birimi özel işlevleri, kontrol birimi (CU), paralel G/Ç bağlantı noktaları (P0-P3) ve ayrıca programlanabilir zamanlayıcılar ve bir seri bağlantı noktası.

2.1. hafıza organizasyonu

Bu mikrodenetleyici yerleşik (yerleşik) ve harici program ve veri belleğine sahiptir. Yerleşik program belleği (RPM), 4 KB, yerleşik veri belleği (RDM) - 128 bayt kapasiteye sahiptir.


Mikrodenetleyicinin modifikasyonuna bağlı olarak RPM, bir maske ROM, bir kerelik programlanabilir veya yeniden programlanabilir ROM olarak uygulanır.

Gerekirse, kullanıcı harici bir ROM kurarak program belleğini genişletebilir. Dahili veya harici ROM'a erişim, EA (Harici Erişim) pinindeki sinyalin değeri ile belirlenir:

EA=VCC (besleme gerilimi) - dahili ROM'a erişim;

EA=VSS (toprak potansiyeli) - harici ROM'a erişim.

Harici program ve veri belleği 64K bayt olabilir ve P0 ve P2 bağlantı noktaları kullanılarak adreslenebilir. Şekil 2, Intel 8051 bellek kartını göstermektedir.

Şekil 2 - Intel 8051 Bellek Organizasyonu

Harici ROM okuma flaşı - (Program Deposu Etkinleştirme), harici program belleğine erişilirken oluşturulur ve çip üzerinde bulunan ROM'a erişim sırasında etkin değildir.

Program belleğinin alt adreslerinin alanı (Şekil 3) kesme sistemi tarafından kullanılır. INTEL 8051 yongasının mimarisi, beş kesme kaynağı için destek sağlar. Kontrolün bir kesmeye aktarıldığı adreslere kesme vektörleri denir.

Şekil 3 - Program belleğinin alt alanının haritası

2.2. Aritmetik mantık Birimi

8 bitlik aritmetik mantık birimi (ALU) toplama, çıkarma, çarpma ve bölme aritmetik işlemlerini gerçekleştirebilir; mantıksal işlemler VE, VEYA, özel VEYA ve ayrıca döngüsel kaydırma, sıfırlama, ters çevirme vb. işlemleri. Girişler, işlenenlerin geçici olarak depolanması için tasarlanmış, yazılım tarafından erişilemeyen T1 ve T2 kayıtlarına bağlanır, bir ondalık düzeltme devresi (DCU) ve bir özellik oluşturma devresi çalışma sonucu (PSW).

ALU'da en basit ekleme işlemi, kayıtların içeriğini artırmak, veri işaretleyici kaydını (RAR) ilerletmek ve yerleşik program belleğinin bir sonraki adresini otomatik olarak hesaplamak için kullanılır. ALU'da kayıtları azaltmak ve değişkenleri karşılaştırmak için en basit çıkarma işlemi kullanılır.

En basit işlemler, 16 bitlik kayıt çiftlerini artırma gibi işlemleri gerçekleştirmek için otomatik olarak "tandemler" oluşturur. ALU, karmaşık komutları uygulamak için basit işlemleri basamaklandırmak için bir mekanizma uygular. Bu nedenle, örneğin koşullu kontrol transfer komutlarından biri yürütülürken, karşılaştırma sonucuna göre program sayacı (PC) ALU'da üç kez artırılır, RDM iki kez okunur, iki değişkenin aritmetik karşılaştırması yapılır, 16 bitlik atlama adresi oluşturulur ve program üzerinden geçiş yapılıp yapılmayacağına karar verilir. Tüm bu işlemler sadece 2 µs içinde gerçekleştirilir.

ALU'nun önemli bir özelliği, yalnızca baytlarla değil, aynı zamanda bitlerle de çalışabilmesidir. Yazılımla erişilebilen bireysel bitler ayarlanabilir, temizlenebilir, ters çevrilebilir, iletilebilir, kontrol edilebilir ve mantıksal işlemlerde kullanılabilir. Bu yetenek oldukça önemlidir, çünkü algoritmalar genellikle girdi ve çıktı boole değişkenleri üzerindeki işlemleri içeren nesneleri kontrol etmek için kullanılır ve bunların uygulanması geleneksel mikroişlemciler aracılığıyla belirli zorluklarla ilişkilendirilir.

Böylece, ALU dört tip bilgi nesnesi ile çalışabilir: boolean (1 bit), dijital (4 bit), bayt (8 bit) ve adres (16 bit). ALU, bu veriler üzerinde 51 farklı transfer veya dönüştürme işlemi gerçekleştirir. 11 adresleme modu (veriler için 7 ve adresler için 4) kullanıldığından, işlem ve adresleme modunu birleştirerek, komutların temel sayısı 111, tek baytlık bir işlem kodu ile mümkün olan 256 üzerinden 255'e genişletilir.

2.3. Yerleşik program ve veri belleği

Yerleşik (on-chip) program belleği (RPM) ve veri belleği (RDM) fiziksel ve mantıksal olarak ayrılmıştır, farklı adresleme mekanizmalarına sahiptir, farklı sinyallerin kontrolü altında çalışır ve farklı işlevleri yerine getirir.

RPM program belleği 4 KB kapasiteye sahiptir ve komutları, sabitleri, başlatma kontrol sözcüklerini, giriş ve çıkış değişkenleri için dönüştürme tablolarını vb. depolamak için tasarlanmıştır. Bellek, PC program sayacından erişim sağlayan 16 bitlik bir adres yoluna sahiptir. veya kayıttan sağlanır.veri işaretçisi (DPTR). DPTR, dolaylı program atlamaları için bir temel kayıt görevi görür veya tablo işlemlerinde kullanılır.

RDM veri belleği, uygulama programının yürütülmesi sırasında değişkenleri depolamak için tasarlanmıştır, bir bayt ile adreslenir ve bir kapasiteye sahiptir.
128 bayt. Ek olarak, Tablo 1'de listelenen özel fonksiyon kayıtlarının adresleri, adres alanına bitişiktir. 1.

Program belleği, veri belleği gibi genişletilebilir.
64 KB harici yongaları bağlayarak.

tablo 1

Özel Fonksiyon Kayıt Bloğu

İsim

pil

Akümülatör genişletici kaydı

Program durum kelimesi

Yığın işaretçi kaydı

Veri işaretçisi kaydı

Kesinti Önceliği Kaydı

Kesinti maskesi kaydı

Zamanlayıcı/Sayaç Modu Kayıt

Zamanlayıcı kontrolü/durum kaydı

Zamanlayıcı 0 (yüksek bayt)

Zamanlayıcı 0 (düşük bayt)

Zamanlayıcı 1 (yüksek bayt)

Zamanlayıcı 1 (düşük bayt)

Alıcı-verici kontrol kaydı

alıcı-verici arabelleği

Güç kontrol kaydı

Not.İsimleri bir yıldız (*) ile işaretlenmiş olan kayıtlar, bireysel bitlerin adreslenmesine izin verir.

2.4. Akümülatör ve genel amaçlı registerlar

Akümülatör (A), aritmetik, mantıksal işlemler ve bir dizi veri aktarım işlemi gerçekleştirirken işlenenin kaynağı ve sonucun sabitlendiği yerdir. Ek olarak, yalnızca akümülatör kullanılarak kaydırma işlemleri gerçekleştirilebilir, sıfır olup olmadığı kontrol edilebilir, bir parite bayrağı oluşturulabilir, vb.

Kullanıcının, her biri R0–R7 olan 8 genel amaçlı kayıttan oluşan dört bankası vardır (Şekil 9). Ancak, PSW kayıt bitleri kullanılarak seçilen dört bankadan sadece birinin kayıtlarını kullanmak mümkündür.

2.5. Program durumu kelime kaydı ve bayrakları

ALU'da birçok komut yürütüldüğünde, Program Durum Kelimesi (PSW) kaydında sabitlenen bir dizi işlem işareti (bayrak) üretilir. Masada. 2, PSW bayraklarını listeler, sembolik isimlerini verir ve oluşum koşullarını tanımlar.

Tablo 2

PSW Program Durumu Kelime Formatı

isim ve amaç

Bayrak taşımak. Aritmetik ve mantık işlemlerini gerçekleştirirken donanım veya yazılım tarafından ayarlayın ve sıfırlayın

Yardımcı taşıma bayrağı. Toplama ve çıkarma talimatları yürütülürken yalnızca donanım tarafından ayarlanır ve temizlenir ve sinyaller bit 3'te taşınır veya ödünç alınır

Bayrak 0. Program tarafından kullanıcı tarafından belirlenen bir bayrak olarak ayarlanabilir, silinebilir veya kontrol edilebilir.

Bir kayıt bankası seçme. Çalışan bir kayıt bankası seçmek için yazılım tarafından ayarlayın ve sıfırlayın (Tablo 3)

taşma bayrağı. Aritmetik işlemler gerçekleştirirken donanım tarafından ayarlanır ve temizlenir

Kullanılmamış

parite bayrağı. Her döngüde donanım tarafından ayarlayın ve sıfırlayın ve akümülatördeki tek/çift sayı 1 biti düzeltir, yani çift parite gerçekleştirir

Tablo 3

Çalışan bir kayıt bankası seçme

Adres sınırları

En "aktif" PSW bayrağı, toplama, çıkarma ve kaydırma gibi çeşitli işlemlerin gerçekleştirilme sürecinde yer alan ve değiştirilen taşıma bayrağıdır. Ek olarak, taşıma bayrağı (CY), bitleri manipüle eden talimatlarda bir "boolean akümülatör" görevi görür. Taşma bayrağı (OV), işaretli tamsayılar üzerindeki işlemlerde aritmetik taşmayı düzeltir ve ikinin tümleyen kodlarında aritmetik kullanmayı mümkün kılar. ALU, kayıt bankası seçim bayraklarını (RS0, RS1) kontrol etmez, değerleri tamamen uygulama programı tarafından belirlenir ve dört kayıt bankasından birini seçmek için kullanılır.

Bir bayt olarak, PSW kaydı aşağıdaki gibi temsil edilebilir:

Akümülatöre dayalı mikroişlemcilerde, komutların çoğu örtük adresleme kullanarak onunla çalışır. Intel 8051'de işler farklıdır. İşlemci bir pile dayalı olmasına rağmen, katılımı olmadan birçok talimatı yürütebilir. Örneğin, herhangi bir RDM hücresinden herhangi bir register'a veri aktarılabilir, herhangi bir register hemen bir işlenen ile yüklenebilir, vb. Bir akümülatöre ihtiyaç duymadan birçok mantıksal işlem gerçekleştirilebilir. Ek olarak, değişkenler akümülatör kullanmadan artırılabilir, azaltılabilir ve kontrol edilebilir. Bayraklar ve kontrol bitleri aynı şekilde kontrol edilebilir ve değiştirilebilir.

2.6. işaretçi kayıtları

8 bitlik yığın işaretçisi (SP) herhangi bir RDM alanını adresleyebilir. PUSH ve CALL komutları sırasında veri yığında depolanmadan önce içeriği artırılır. POP ve RET komutlarının yürütülmesinden sonra SP'nin içeriği azaltılır. Yığın öğelerinin bu şekilde adreslenmesine artış öncesi/azalma sonrası denir. Mikrodenetleyicinin başlatılması sırasında, RST sinyalinden sonra, 07H kodu otomatik olarak SP'ye yüklenir. Bu, uygulama programı yığını yeniden tanımlamazsa yığındaki ilk veri öğesinin 08H adresindeki RDM konumunda bulunacağı anlamına gelir.

2 baytlık veri işaretleyici kaydı DPTR, tipik olarak, harici bellek işlemlerinde 16 bitlik bir adresi kilitlemek için kullanılır. Veri işaretçi kaydı, mikro denetleyici komutları tarafından 16 bitlik bir kayıt veya iki bağımsız 8 bitlik kayıt (DPH ve DPL) olarak kullanılabilir.

2.7. Özel Fonksiyon Kayıtları

IP, IE, TMOD, TCON, SCON ve PCON sembolik adlarına sahip kayıtlar, kesme devresi, zamanlayıcı/sayıcı, seri bağlantı noktası alıcı-vericisinin kontrol ve durum bitlerini kilitlemek ve programlı olarak değiştirmek ve güç yönetimi için kullanılır. Mikrodenetleyicinin çeşitli modlardaki özellikleri göz önüne alındığında, organizasyonları 1.8-1.12 bölümlerinde ayrıntılı olarak açıklanacaktır.

2.8. Kontrol ve senkronizasyon cihazı

Mikrodenetleyicinin harici pinlerine bağlı bir kuvars rezonatör, dahili osilatörün çalışmasını kontrol eder ve bu da senkronizasyon sinyalleri üretir. Kontrol ünitesi (CU), senkronizasyon sinyallerine dayalı olarak, 12 jeneratör periyoduna eşit, sabit süreli bir makine çevrimi üretir. Çoğu mikrodenetleyici komutu, bir makine döngüsünde yürütülür. 2 baytlık sözcükler üzerinde çalışan veya harici belleğe erişen bazı komutlar iki makine döngüsünde yürütülür. Yalnızca bölme ve çarpma talimatları, dört makine döngüsü gerektirir. Kontrol cihazının çalışmasının bu özelliklerine dayanarak, uygulama programlarının yürütme süresi hesaplanır.

Mikrodenetleyici şemasında, komut kaydı (IR) kontrol cihazının bitişiğindedir. İşlevi, yürütülmekte olan komutun kodunu saklamaktır.

Kontrol ve senkronizasyon cihazının giriş ve çıkış sinyalleri:

1. PSEN - program bellek çözünürlüğü,

2. ALE - adres mandalı çıkış sinyalini etkinleştirir,

3. PROG - programlama sinyali,

4. EA - dahili bellekle çalışmayı engelleme,

5. VPP - programlama voltajı,

6. RST - genel sıfırlama sinyali,

7. VPD - harici bir kaynaktan bellek yedek güç çıkışı,

8. XTAL - bir kuvars rezonatörü bağlamak için girişler.

2.9. Paralel giriş/çıkış bilgi portları

Dört bağlantı noktasının tümü (P0-P3), bilgi baytlarını bayt olarak girmek veya çıkarmak için tasarlanmıştır. Her bağlantı noktası, kontrollü bir mandal, giriş arabelleği ve çıkış sürücüsü içerir.

Harici belleğe erişilirken P0 ve P2 bağlantı noktalarının çıkış sürücüleri ve ayrıca P0 bağlantı noktasının giriş arabelleği kullanılır. Bu durumda, zaman çoğullama modunda P0 portu aracılığıyla, önce adresin düşük baytı çıktı alınır ve ardından veri baytı verilir veya alınır. Adresin yüksek baytı, adresin 16 bit genişliğinde olduğu durumlarda P2 portu üzerinden verilir.

Tüm P3 bağlantı noktası pimleri, Tablo 1'de listelenen alternatif işlevleri uygulamak için kullanılabilir. 4. Bu işlevler, P3 bağlantı noktasının karşılık gelen mandal bitlerine (P3.0-P3.7) 1 yazılarak etkinleştirilebilir.

Tablo 4

Alternatif Bağlantı Noktası P3 İşlevleri

isim ve amaç

Okuma. Harici veri belleğine erişirken donanım tarafından aktif bir düşük sinyal üretilir

Kayıt. Harici veri belleğine erişirken donanım tarafından aktif bir düşük sinyal üretilir

Zamanlayıcı/sayaç girişi 1 veya test girişi

Zamanlayıcı/sayaç girişi 0 veya test girişi

Kesinti talebi girişi 1. Düşük sinyal veya kesme algılandı.

Kesinti talebi girişi 0. Düşük sinyal veya kesinti algılandı.

UART modunda seri port verici çıkışı. Vardiya kaydı modunda saat çıkışı

UART modunda seri port alıcı girişi. Vardiyalı kayıt modunda veri girişi/çıkışı

0 numaralı bağlantı noktası çift yönlüdür ve 1-3 numaralı bağlantı noktaları yarı çift yönlüdür. Her bağlantı noktası satırı, giriş veya çıkış için bağımsız olarak kullanılabilir.

RST sinyalinde, birimler otomatik olarak tüm portların mandal kayıtlarına yazılır, böylece onları giriş moduna ayarlar.

Tüm portlar, çift yönlü iletim hatları üzerinden bilgi giriş / çıkışını düzenlemek için kullanılabilir. Ancak, sistemin harici belleğe sahip olması durumunda, iletişimin zaman çoğullama modunda çalışan ortak bir paylaşılan adres/veri yolu aracılığıyla organize edildiği P0 ve P2 bağlantı noktaları bu amaç için kullanılamaz.

G / Ç bağlantı noktalarına erişim, bir bayt, tek bir bit, rastgele bir bit kombinasyonu üzerinde çalışan komutlar kullanılarak mümkündür. Bu durumda, portun hem işlenen hem de sonucun hedefi olduğu durumlarda, kontrol cihazı otomatik olarak “oku-değiştir-yaz” adı verilen özel bir mod uygular. Bu erişim modu, bağlantı noktasının harici pinlerinden değil, mandalından gelen sinyallerin girişini içerir, bu da daha önce çıktı bilgilerinin yanlış okunmasını engellemeyi mümkün kılar. Bu bağlantı noktası erişim mekanizması, komutlarda uygulanır:

Mikrodenetleyici mimarisi

Assembler gibi programlama dillerini öğrenirken mikrodenetleyicilerin mimarisini anlamak çok önemlidir. Birleştiricinin yapısı, komutlarının formatı, işlenenlerin adreslenmesi vb. tamamen mimari tarafından belirlenir. Mimarlık okumanın amacı:

programlama için mevcut olan bir dizi kaydın tanımlanması, işlevsel amaçları ve yapısı;

RAM organizasyonunun ve kullanım sırasının anlaşılması;

Veri türlerine aşinalık

makine talimatlarının formatının incelenmesi;

Kesinti işleme organizasyonunu anlama.

MCS-51 ailesinin mimarisi, büyük ölçüde amacına göre önceden belirlenir - kompakt ve düşük maliyetli dijital cihazların yapımı. Tüm MK işlevleri, tek bir mikro devre kullanılarak gerçekleştirilir. MCS-51 ailesi, en basit mikro denetleyicilerden oldukça karmaşık olanlara kadar çok çeşitli mikro devreleri içerir. MCS-51 ailesinin mikro denetleyicileri, hem çeşitli cihazları kontrol etme hem de analog devrenin ayrı düğümlerini uygulama görevlerini gerçekleştirmenize izin verir. Bu ailenin tüm mikro devreleri aynı komut sistemi ile çalışır, çoğu aynı paketlerde aynı pin çıkışı ile gerçekleştirilir (paket için pin numaralandırması). Bu, geliştirilen cihaz için cihazın ve programın devre şemasını değiştirmeden farklı üreticilerin (Intel, Dallas, Atmel, Philips vb.) yongalarının kullanılmasını mümkün kılmaktadır.

MCS-51, program ve veri belleği adres alanlarının ayrıldığı Harvard mimarisine dayanmaktadır.

Kontrolörün blok şeması Şekil 2.3'te gösterilmiştir ve şu ana işlevsel birimlerden oluşur: bir kontrol birimi, bir aritmetik mantık birimi, bir zamanlayıcı/sayıcı birimi, bir seri arayüz ve kesintiler, bir program sayacı (komut sayacı), veri bellek ve program belleği.

İkili değişim, dahili 8 bitlik bir veri yolu kullanılarak gerçekleştirilir. Her bloğun amacına daha yakından bakalım. MCS-51 ailesinin hemen hemen tüm temsilcileri bu şemaya göre inşa edilmiştir. Bu ailenin çeşitli mikro devreleri, yalnızca özel amaçlı kayıtlarda (port sayısı dahil) farklılık gösterir. MCS-51 ailesinin tüm kontrolörlerinin komut sistemi, 1, 2 veya 3 bayt formatında 111 temel komut içerir ve bir mikro devreden diğerine geçerken değişmez. Bu, programların bir çipten diğerine mükemmel taşınabilirliğini sağlar.

Kontrol ve senkronizasyon ünitesi(Zamanlama ve Kontrol), OEVM birimlerinin izin verilen tüm çalışma modlarında ortak çalışmasının koordinasyonunu sağlayan senkronizasyon ve kontrol sinyalleri üretmek için tasarlanmıştır. Kontrol ünitesi şunları içerir:


  • zaman aralıkları oluşturmak için cihaz,
  • kombinasyonel G/Ç Devresi,
  • talimat kaydı,
  • komut kod çözücü.

Giriş ve çıkış kontrol ve senkronizasyon blok sinyalleri:

1 PSEN– program hafıza çözünürlüğü;

2 ALE– adres kilidi çıkış sinyalini etkinleştirir;

3 PROG– programlama sinyali;

4 EA- dahili bellekle çalışmayı engelleme;

5 VPP– programlama voltajı;

6 RST– genel sıfırlama sinyali.

Yerleştirme aygıtı, makine döngüsünü oluşturan CPU durumlarının sırasını senkronize etmek ve ayrıca tüm dahili mandalların ve bağlantı noktası çıkış arabelleklerinin doğru çalışması için gereklidir. Makine çevrimi, her biri sırayla iki aşamaya ayrılan S1'den S6'ya kadar altı ardışık durumdan (Durumlar) oluşur:

faz 1 (Aşama 1 - P1) ve faz 2 (Aşama 2 - P2). Bu nedenle, bir makine çevrimi, S1P1, S1P2, S2P1,....,S6P2 zaman dilimlerinin bir dizisi olarak tanımlanabilir. Fazın süresi saat darbelerinin periyoduna eşittir, bu nedenle makine çevrimi 12 saat periyodu alır.

Makine çevrimlerinin sayısı, komut yürütme süresini belirler. Tamamlanması dört makine döngüsü gerektiren çarpma ve bölme komutları dışında, hemen hemen tüm komutlar bir veya iki makine döngüsünde yürütülür. Giriş-çıkış mantığı, P0-P3 giriş/çıkış portları aracılığıyla harici cihazlarla bilgi alışverişini sağlayan sinyalleri almak ve vermek için tasarlanmıştır.

Komut kaydı yürütülmekte olan komutun 8 bitlik işlem kodunu kaydetmek ve saklamak için tasarlanmıştır. İşlem kodu, bir komut kod çözücü ve bilgisayar kontrol mantığı yardımıyla, komutun yürütülmesi için bir mikro programa dönüştürülür.

Şekil 2.3. Tek çipli bir mikro denetleyici Intel 8051'in blok şeması

(MCS-51 ailesi)

Aritmetik mantık Birimi(ALU), aritmetik ve mantıksal işlemler sağlayan paralel sekiz bitlik bir aygıttır. ALU şunlardan oluşur:

  • geçici depolama kayıtları -TMP1 ve TMP2,
  • sabit ROM,
  • toplayıcı,
  • ek kayıt - B kaydı,
  • pil - ACC,
  • program durumu kelime kaydı (bayrak kaydı) - PSW.

Tutma kayıtları TMP1, TMP2- üzerlerindeki işlemler süresince işlenenleri almak ve depolamak için tasarlanmış sekiz bitlik kayıtlar. Bu kayıtlara program aracılığıyla erişilemez.

ROM sabitleri ikili-ondalık veri gösterimi için bir düzeltme kodunun, bit işlemleri için bir maske kodunun ve bir sabit kodun geliştirilmesini sağlar.

Paralel 8-bit toplayıcı toplama, çıkarma aritmetik işlemlerini ve toplama, çarpma, eşitsizlik ve özdeşlik mantıksal işlemlerini gerçekleştirmek için tasarlanmış sıralı transferli kombinasyon tipi bir devredir.

B'yi kaydet- çarpma ve bölme işlemleri sırasında kullanılan sekiz bitlik bir kayıt. Diğer talimatlar için ek bir karalama defteri kaydı olarak kabul edilebilir.

pil- aritmetik-mantıksal işlemler veya kaydırma işlemleri gerçekleştirilirken elde edilen sonucu almak ve saklamak için tasarlanmış sekiz bitlik bir kayıt.

PSW (Program Durum Kelimesi) Program Durum Kaydı yürütülen komutların durum kelimesini saklamak için tasarlanmıştır. ALU'da birçok komut yürütüldüğünde, Program Durum Kelimesi (PSW) kaydında sabitlenen bir dizi işlem işareti (bayrak) üretilir. Masada. 1 PSW bayraklarını listeler, sembolik isimlerini verir ve oluşum koşullarını tanımlar.

Kesinti ve Seri Arayüz Bloğu - UART(Evrensel Asenkron Alıcı/Verici) sıralı bilgi akışlarının giriş - çıkışını ve program kesme sisteminin organizasyonunu düzenlemek için tasarlanmıştır.

Tanım olarak kesinti, donanım veya programın çalışmasının neden olduğu bazı planlanmış veya planlanmamış eylemleri gerçekleştirmek için ana bilgisayar sürecinin geçici olarak kesintiye uğraması anlamına gelir.

Bu eylemler hizmet niteliğinde olabilir, kullanıcı programından bakım gerçekleştirme talepleri veya acil durumlara yanıt olabilir.

DERS PLANI

1. Giriş

2. Aritmetik ve mantıksal yönergeler

3. Veri aktarım komutları

4. Boole işlemleri

5. Atlama talimatları

1. Giriş

Komut sistemi MCS-51 aktüatörleri kontrol etmek için 8 bitlik algoritmaları yürütmek üzere tasarlanmış tek bir talimat setini destekler. Küçük veri yapıları üzerinde bit işlemleri gerçekleştirerek, dahili RAM'i adreslemek için hızlı yöntemler kullanmak mümkündür. Boole cebrinin mantıksal ve kontrol komutlarında ayrı bitlerin kullanılmasına izin veren, bağımsız bir veri türü olarak tek bitlik değişkenleri adreslemek için kapsamlı bir sistem vardır.

adresleme modları : komut seti MCS-51 aşağıdaki adresleme modlarını destekler. Doğrudan Adresleme: İşlenen, talimatta 8 bitlik bir adresle belirtilir. Doğrudan adresleme yalnızca dahili veri belleğinin alt yarısı ve kayıtlar için kullanılır SFR. dolaylı adresleme: Yönerge, işlenenin adresini içeren kaydı ele alır. Bu tip adresleme, harici ve dahili RAM için kullanılır. 8 bitlik adresleri belirtmek için kayıtlar kullanılabilir R0 Ve R1 seçilen kayıt bankası veya yığın işaretçisi SP. 16 bit adresleme için yalnızca veri işaretçi kaydı kullanılır. DPTR.

Kayıt talimatları : kayıtlar R0–R7 mevcut kayıt bankası, talimatın kendisinde kayıt numarasını gösteren 3 bitlik bir alan içeren özel talimatlar aracılığıyla adreslenebilir. Bu durumda, komutta karşılık gelen bir adres alanı yoktur. Özel kayıtlar kullanan işlemler: bazı talimatlar bireysel kayıtlar kullanır (örneğin, akümülatör işlemleri, DPTR, vb.). Bu durumda, işlenenin adresi talimatta hiç belirtilmemiştir. İşlem kodu tarafından önceden belirlenir.

Anında Sabitler : sabit, doğrudan işlem kodunun arkasındaki komutta olabilir.

Dizin Adresleme : Dizine alınmış adresleme yalnızca program belleğine erişmek için ve yalnızca okuma modunda kullanılabilir. Bu modda program hafızasındaki tablolar görüntülenir. 16 bitlik kayıt ( DPTR veya program sayacı) istenen tablonun temel adresini gösterir ve akümülatör buna giriş noktasını gösterir.

Komut setiBu sistemin 33 işlevini belirtmek için 42 komut anımsatıcısına sahiptir. Çoğu montaj dili talimatının sözdizimi, bir işlev anımsatıcısından ve ardından adresleme yöntemlerini ve veri türlerini belirten işlenenlerden oluşur. Farklı veri türleri veya adresleme modları, anımsatıcı notasyondaki değişikliklerle değil, ayarlanan işlenenler tarafından belirlenir.

Komut sistemi koşullu olarak beş gruba ayrılabilir: aritmetik komutlar; mantıksal komutlar; veri aktarım komutları; bit işlemci talimatları; şube ve transfer komutları. Komut sisteminde kullanılan gösterimler ve semboller aşağıda verilmiştir.

Tablo. Komut sisteminde kullanılan notasyonlar ve semboller

Tanım, sembol

Amaç

pil

Halihazırda seçili olan kayıt bankasının kayıtları

Komutta belirtilen yüklenen kayıt sayısı

doğrudan

Bir dahili veri RAM konumu (0-127) veya özel bir fonksiyon kaydı SFR (128-255) olabilen, doğrudan adreslenebilir 8 bit dahili veri konumu adresi

Dolaylı olarak adreslenebilir 8 bit dahili veri RAM konumu

8 bit acil operasyon kodunda (COP) bulunan veriler

veriH

Anında 16 bitlik verilerin MSB'leri (15-8)

veriL

Anında 16 bitlik verilerin düşük bitleri (7-0)

11 bitlik hedef adres

addrL

Hedef adresin en az anlamlı bitleri

8 bitlik işaretli ofset bayt

Adresi dahili veri RAM'inde veya özel fonksiyon kaydı SFR'de bulunan CPC'yi içeren doğrudan adreslenebilir bit

a15, a14...a0

Hedef adres bitleri

X öğesinin içeriği

X öğesinde depolanan adresteki içerik

Boşaltma M elemanı X


+

*
VE
VEYA
XOR
/X

Operasyonlar:
eklemeler
çıkarma
çarpma işlemi
bölünme
mantıksal çarpma (VE işlemi)
mantıksal ekleme (VEYA işlemi)
ekleme modulo 2 (XOR)
element X inversiyonu

İşlev anımsatıcıları, adresleme yöntemlerinin ve veri türlerinin belirli kombinasyonlarıyla benzersiz bir şekilde ilişkilendirilir. Toplamda, komut sisteminde bu tür 111 kombinasyon mümkündür.

2. Aritmetik ve mantıksal yönergeler

Nasıl örnek vermek aritmetik komut, ekleme işlemi aşağıdaki komutlardan biri ile gerçekleştirilebilir.

EKLEA,7 F 16 - A kaydının içeriğine 7 sayısını ekleyin F 16 ve sonucu A kaydına kaydedin;

EKLEA,@ r0 - A kaydının içeriğine adresi olan numarayı ekleyin (@ – reklam de ) kayıtta saklanır r 0 (dolaylı adresleme) ve sonucu A kaydında saklayın;

EKLE,R7- A kaydının içeriğine kaydın içeriğini ekleyin r 7 ve sonucu A kaydına kaydedin;

EKLE,#127- A kaydının içeriğine, depolama hücresi adresi 127 olan bir sayı ekleyin ( # - sayı sembolü) ve sonucu kayıt defterine kaydedin T- yeniden A.

Tüm aritmetik komutlar, komut dışında tek bir makine döngüsünde yürütülür. INC DPTR(veri işaretçisi ofseti DPTR bir sonraki bayta kadar), iki makine döngüsü ve 4 makine döngüsünde gerçekleştirilen çarpma ve bölme işlemleri gerektirir. Dahili veri belleğindeki herhangi bir bayt, akümülatör kullanılmadan artırılıp azaltılabilir.

Talimat MUL AB Akümülatördeki verilerin B kaydındaki verilerle çarpımını (çarpma) gerçekleştirir ve ürünü A (alt yarı) ve B (üst yarı) kayıtlarına yerleştirir.

Talimat BÖL AB akümülatörün içeriğini B kaydındaki değere böler (bölünür), kalanı B'de ve bölümü akümülatörde bırakır.

Talimat DA A ikili ondalık aritmetik işlemler için tasarlanmıştır (ikili ondalık kodda temsil edilen sayılar üzerinde aritmetik işlemler). İkiliyi dönüştürmez ikili ondalık sayı, ancak yalnızca iki BCD numarası eklerken doğru sonucu sağlar.

Örnek vermek mantıksal komut: mantıksal AND işlemi aşağıdaki komutlardan biri ile gerçekleştirilebilir:

ANLA,7 F 16 - A kaydının içeriğinin 7 sayısı ile mantıksal çarpımı F 16 ve sonuç A kaydında saklanır;

ANLA,@ r1 - A kaydının içeriğinin, adresi kayıt defterinde kayıtlı olan sayı ile mantıksal olarak çarpımı r 1 (dolaylı adresleme) ve sonucu A kaydında saklayın;

ANL A,R6- A kaydının içeriğinin kaydın içeriği ile mantıksal çarpımı r 6 ve sonucu A kaydında saklayın;

ANL A,#53 - A kaydının içeriğinin, depolama hücresi adresi 53 16 olan bir sayı ile mantıksal çarpımı ve sonucu A kaydına kaydedin.

Akümülatörün içeriğindeki tüm mantıksal işlemler, bir makine döngüsünde, geri kalanı ikide gerçekleştirilir. Boole işlemleri, 128 baytlık dahili veri belleğinin herhangi birinde veya herhangi bir kayıtta gerçekleştirilebilir. SFR (özel fonksiyon kayıtları) pil kullanmadan doğrudan adresleme modunda.

Döndürme işlemleri RL A, RLC A, vb. akümülatörün içeriğini bir bit sağa veya sola hareket ettirir. Sola çevrimsel kaydırma durumunda, en az anlamlı bit, en anlamlı konuma taşınır. Sağa çevrimsel kayma durumunda, bunun tersi gerçekleşir.

Operasyon TAKAS A akümülatördeki genç ve kıdemli tetradların değişimini gerçekleştirir.

3. Veri aktarım komutları

Emretmek HAREKET hedefi, src verilerin dahili RAM hücreleri veya özel fonksiyon kayıt alanı arasında aktarılmasına izin verir SFR pil kullanmadan. Aynı zamanda, dahili RAM'in üst yarısı ile çalışma yalnızca dolaylı adresleme modunda gerçekleştirilebilir ve kayıtlara erişim sağlanabilir. SFR– sadece doğrudan adresleme modunda.

Tüm mikro devrelerde MCS-51 yığın doğrudan veri yerleşik belleğine yerleştirilir ve yukarı doğru büyür. Talimat İTMEKönce yığın işaretçi kaydındaki değeri artırır SP, ve ardından veri baytlarını yığına iter. Takımlar İTMEK Ve POP yalnızca doğrudan adresleme modunda kullanılır (bir bayt yazarken veya geri yüklerken), ancak yığın, bir kayıt aracılığıyla dolaylı olarak adreslenirken her zaman kullanılabilir SP. Böylece yığın, en üstteki 128 baytlık veri belleğini de kullanabilir. Aynı hususlar, yazmaçları adreslemek için yığın komutlarının kullanımını engeller. SFR.

Veri aktarım talimatları, 16 bit aktarım işlemini içerir MOV DPTR,#data16 veri işaretçisi kaydını başlatmak için kullanılan DPTR program belleğindeki tabloları görüntülerken veya harici veri belleğine erişim için.

Operasyon XCH A,bayt akümülatör ve adreslenen bayt arasında veri alışverişi için kullanılır. Emretmek XCHD A, @Riöncekine benzer, ancak yalnızca işlenenlerin değiş tokuşunda yer alan daha düşük tetradlar için.

Harici veri belleğine erişmek için yalnızca dolaylı adresleme kullanılır. Tek baytlık adreslerde kayıtlar kullanılır. R0 veya R1 geçerli kayıt bankası ve 16-bit olanlar için veri işaretçi kaydı DPTR. Harici veri belleğine erişmenin herhangi bir yöntemiyle pil, bilgi kaynağı veya alıcısı rolünü oynar.

Program belleğinde bulunan tablolara erişmek için aşağıdaki komutlar kullanılır:

MOVC A,@A+ DPTR ;

MOVC A,@A+ bilgisayar .

Karşılık gelen veri işaretçi kaydının içeriği, tablonun temel adresi olarak kullanılır. DPTR veya bilgisayar(yazılım sayacı) ve ofset şuradan alınır: A. Bu komutlar yalnızca program belleğinden veri okumak için kullanılır, ona yazmak için değil.

4. Boole işlemleri

mikro devreler MCS-51 Boolean işlemci içerir. Dahili RAM'de 128 doğrudan adreslenebilir bit vardır. Özel fonksiyon kayıt alanı SFR 128 bit'e kadar alanları da destekleyebilir. Bit komutları, koşullu atlamalar, aktarımlar, sıfırlamalar, ters çevirmeler ve AND ve OR işlemlerini gerçekleştirir. Belirtilen tüm bitler doğrudan adresleme modunda mevcuttur.

biraz taşımak CFözel fonksiyon kaydında "program durumu word'ü PSW' bir bit Boolean işlemci akümülatörü olarak kullanılır.

5. Atlama talimatları

Atlama işlemi adresleri, program bellek alanında bir etiket veya gerçek bir değer ile Assembly dilinde belirtilir. Koşullu şube adresleri göreli bir ofsette birleştirilir - program sayacına eklenen bir işaret baytı bilgisayar geçiş koşulu sağlanırsa. Bu tür atlamaların sınırları, talimatı izleyen ilk bayta göre eksi 128 ile 127 arasındadır. Özel fonksiyon kaydında "program durumu word'ü PSW» sıfır bayrak yoktur, bu nedenle talimatlar JZ Ve JNZ akümülatördeki verileri test ederken "sıfıra eşittir" koşulunu kontrol edin.

Üç tür koşulsuz dal talimatı vardır: SJMP, LJMP Ve AJMP– formatta farklılık gösteren hedef adresleri. Talimat SJMP adresi göreli bir uzaklık olarak kodlar ve iki bayt kaplar. Atlama mesafesi, aşağıdaki talimata göre eksi 128 ila 127 bayt aralığıyla sınırlıdır. SJMP.

Talimatlarda LJMP hedef adres 16 bitlik bir sabit olarak kullanılır. Komut üç bayt uzunluğundadır. Hedef adres, program belleğinde herhangi bir yerde bulunabilir.

Emretmek AJMP 11 bitlik bir adres sabiti kullanır. Komut iki bayttan oluşur. Bu talimat yürütüldüğünde, adres sayacının alt 11 biti talimattan gelen 11 bitlik adresle değiştirilir. Program sayacının en önemli beş biti bilgisayar değişmeden kalır. Böylece atlama, talimatı izleyen talimatı içeren 2K baytlık bloğun içinde yapılabilir. AJMP.

İki tür alt program çağırma talimatı vardır: LCALL Ve BİR ARAMA. Talimat LCALLçağrılan altyordamın 16 bitlik adresini kullanır. Bu durumda, alt program, program belleğinde herhangi bir yere yerleştirilebilir. Talimat BİR ARAMA 11 bitlik alt program adresini kullanır. Bu durumda, çağrılan alt program, aşağıdaki talimatla aynı 2K baytlık blokta bulunmalıdır. BİR ARAMA. Talimatın her iki versiyonu da bir sonraki talimatın adresini yığına iter ve onu program sayacına yükler. bilgisayar karşılık gelen yeni değer.

Alt program talimatla biter RET, komutu izleyerek talimata geri dönmenizi sağlar ARAMAK. Bu talimat, geri dönüş adresini yığından çıkarır ve onu program sayacına yükler. bilgisayar . Talimat RETI kesme rutinlerinden dönmek için kullanılır. Tek fark RETI itibaren RET bu mu RETI Kesinti işleminin tamamlandığını sisteme bildirir. Yürütme sırasında ise RETI başka kesinti yok, aynı RET.

Talimat DJNZçevrim kontrolü için tasarlanmıştır. Bir döngü çalıştırmak için n değeri olan sayaç baytlarına yüklemeniz gerektiğinde n ve döngü gövdesini komutla kapatın DJNZ, döngünün başlangıcını gösterir.

Emretmek CJNE iki işleneni işaretsiz tamsayılar olarak karşılaştırır ve karşılaştırılan işlenenler eşit değilse, içinde belirtilen adrese atlar. İlk işlenen ikinciden küçükse, taşıma biti CF "1" olarak ayarlayın.

Birleştirilmiş biçimdeki tüm talimatlar 1, 2 veya 3 baytlık yer kaplar.

MSS-51 ailesinin mikrodenetleyicileri, program belleği ve veri belleğinin ayrıldığı Harvard mimarisine göre inşa edilmiştir, kendi adres boşluklarına ve bunlara erişim yollarına sahiptir.

program hafızası


Maksimum bellek miktarı 64K bayttır, bunun 4K, 8K, 16K veya 32K bayt bellek (Tablo 7.3.1) çipte bulunur, geri kalanı çipin dışındadır.
EA çıkışındaki voltaj = VCC EA \u003d V CC \u003d 0 - yalnızca harici bellek ile hem dahili hem de harici bellek kullanılır.
Tablo 7.3.1 gösterir program hafıza adresleri belirtilen durumlar için.
Alt program hafıza alanı, mikrodenetleyicinin çalışmasını başlatmak için (resetten sonra 0000h başlangıç ​​adresi) ve kesme işlemi için ayrılmıştır (kesme adresleri 8 bayt aralıklarla bulunur: 0003h, 000Bh, 0013h, vb.).


Program belleği salt okunurdur ve erişildiğinde:

● için harici bellek programlar, ¯PSEN sinyali oluşturulur ve her zaman 16 bitlik bir adres oluşturulur.
Adresin düşük baytı, makine döngüsünün ilk yarısında P0 portundan geçirilir ve kayıttaki ALE flaşının kenarına mandallanır.
Döngünün ikinci yarısında, MCU'ya harici bellekten bir bayt veri girmek için P0 bağlantı noktası kullanılır.
Adresin yüksek baytı, tüm bellek erişim süresi boyunca P2 portu üzerinden iletilir (Şekil 7.1.11);

● için Dahili bellek okuma sinyali üretilmez ve dahili mikrodenetleyici veriyolunda değişim döngüleri kullanılır.

Veri belleği

Dahili bellek veriler koşullu olarak üç bloğa bölünebilir (Tablo 7.3.2).

Dahili bellek her zaman yalnızca 256 bellek konumuna adresleme sağlayan bir bayt ile adreslenir.
Bu nedenle, Tablo 7.3.2'den görülebileceği gibi, dahili RAM'in üst 8 bitlik hücrelerini ve aynı adres alanını işgal eden SFR özel fonksiyon kayıtlarını adreslemek için, komutlar farklı adresleme yöntemleri kullanır: dolaylı ve düz.

Dahili RAM'in alt bölgesinin organizasyonunun özellikleri Tablo 7.3.3'te yansıtılmıştır.

00h adresleri ile 32 bayt dahili RAM'i azaltın.
1Fh, sekiz kayıttan (R0.R7) oluşan dört bankada gruplandırılmıştır.
Sonraki 16 bayt RAM adresi 20h.
2Fh, her bir bitin erişilmesine izin veren 8x16=128 bitlik bir bellek alanıdır.
Banka kaydının adresini seçmek için adı R0 kullanılır.
R7, sıra seçimi için - PSW durum word kaydının RS0, RS1 bitleri.

bit adresleri

bit adresleri Tablo 7.3.3'te verilmiştir.

Adresleme yapılır doğrudan yol.

Adresleriyle birlikte tüm SFR özel fonksiyon kayıtlarının bir listesi Tablo 7.2.2'de verilmiştir.
Açıklık için Tablo 7.3'te.

4 verilir adres haritasını kaydetSFR MCS-51 ailesinin mikro devreleri olarak kabul edilir.
SFR adresi, onaltılık olarak sütun ve satır rakamlarının birleşimi ile belirlenir.

Örneğin, CMOD kaydının adresi D9h'dir.

Adresleri 0h veya 8h (kalın harflerle gösterilmiştir) ile biten SFR'ler için, ek olarak bayt izin verilmiş bit düzeyinde adresleme.

Bu durumda, kayıttaki N. basamağı işgal eden bitin adresi XXh + ​​0Nh olarak tanımlanır, burada XXh, SFR kaydının adresidir, N = 0.7.
Bu alandaki bit adresleri 80H ile FFH arasında değerlere sahiptir.
Örneğin, ACC akümülatörünün bit adresleri E0h-E7h içinde yer alır.

Harici bellek veriler (64 KB'ye kadar), MK'ye bağlı ek bellek yongaları tarafından oluşturulur.
Harici veri belleğiyle çalışmak için özel komutlar kullanılır, böylece harici ve dahili belleğin adres alanları çakışmaz ve bu nedenle her iki veri belleği türü aynı anda kullanılabilir.

Harici veri belleğinin hücrelerine erişmek için şunu kullanın (Şekil 7.1.8):
● dolaylı adreslemeli komutlar;
● ¯RD sinyallerini okuyun ve ¯WR yazın;
● adresin düşük baytını iletmek ve veri baytlarını almak/aktarmak için P0 bağlantı noktası;
● Adresin yüksek baytını aktarmak için P2 bağlantı noktası.
Adresleme yöntemleri.
Komut sistemi şunları kullanır:
● doğrudan, dolaylı, kayıt, dolaylı kayıt, doğrudan ve dizin adresleme (taban ve indeks kayıtlarının toplamı ile dolaylı adresleme) kaynak işlenenler;
● doğrudan, kayıt ve dolaylı kayıt adresleme hedef işlenenler.
Bu yöntemlerin kombinasyonu (adresleme) 21 adresleme modu sağlar.
Bu ve komut sisteminin aşağıdaki tablolarında aşağıdaki tanımlamalar kullanılır:

doğrudan adresleme

Bu adresleme yöntemiyle, bir veri baytının veya bitinin konumu, ikinci (ve üçüncü) komut baytının 8 bitlik adresi tarafından belirlenir.
Doğrudan adresleme yalnızca dahili veri belleğine (daha düşük 128 bayt RAM) ve özel işlev kayıtlarına erişmek için kullanılır.

adresleme kayıt


Bu adresleme yöntemi, sekiz kayıt R0'dan birinde saklanan verilere erişim sağlar.
Mevcut çalışma kayıtları bankasının R7'si.
Ayrıca A, B, AB kayıtlarına (çift kayıt), işaretçi kaydı DPTR'ye ve taşıma bayrağı C'ye erişmek için de kullanılabilir.
Bu kayıtların adresi, işlem koduna gömülüdür, böylece komut baytlarının sayısı azalır.

Dolaylı kayıt adresleme.


Bu durumda, veri adresi, konumu opcode tarafından belirlenen bir işaretçi kaydında saklanır.
Bu adresleme yöntemi, harici RAM'e ve dahili RAM'in üst yarısına erişmek için kullanılır.
8 bitlik adreslerin kayıt işaretçileri, seçilen çalışma kayıtları bankasının R0, R1 kayıtları veya 16 bitlik adresleme için sadece veri işaretleyici kaydı DPTR kullanılır.

doğrudan adresleme


Bu adresleme yöntemiyle, veriler doğrudan komutta belirtilir ve komutun ikinci (veya ikinci ve üçüncü) baytlarında bulunur, yani.
bellek adreslemesi gerekmez.
Örneğin, MOV A,#50 komutu, 50 sayısını A akümülatörüne yükler.

indeks adresleme


Bu yöntem, veri bayt adresinin temel (DPTR veya PC) ve dizin (A) kayıtlarının içeriğinin toplamı olarak belirlendiği kayıt-dolaylı adreslemedir.
Yol yalnızca program belleğine erişmek için ve yalnızca okuma modunda kullanılır; program belleğinde saklanan tabloların görüntülenmesini kolaylaştırır.

Komut yapısı.

Komut uzunluğu bir (49 komut), iki (45 komut) veya üç (17 komut) bayttır.
Komutun ilk baytı her zaman işlem kodunu (KO) içerir, ikinci ve üçüncü bayt ise işlenenlerin veya anlık veri değerlerinin adresleridir.

Tek tek bitler, tetradlar, baytlar ve çift baytlık sözcükler işlenen olarak kullanılabilir.
Tablo 7.3.5'te verilen 13 tip komut vardır:

● A, PC, SP, DPTR, Rn (n = 0, 7) - akümülatör, program sayacı, yığın işaretçisi, veri işaretçi kaydı ve geçerli banka kaydı;
● Rm (m = 0, 1) — dolaylı adresleme için kullanılan geçerli banka kaydı;
● doğrudan — doğrudan adreslenen işlenenin 8 bitlik adresi;
● bit — doğrudan adreslenebilir bir bitin adresi;
● rel — göreli geçiş adresi;
● addr11, addr16 — 11- ve 16-bit mutlak atlama adresi;
● #data8, #data16 — 8 ve 16 bit uzunluğundaki doğrudan veriler (işlenenler);
● A10, A9, A0 - 11 bitlik adresin ayrı rakamları;
● (.) — parantez içinde belirtilen adresteki bellek hücresinin içeriği;
● SB, MB - 16 bit işlenenin yüksek ve düşük baytları.

Komut sistemi hakkında genel bilgiler.

Komut sistemi, gerçek zamanlı kontrolün yanı sıra bitler, tetradlar, baytlar, çift bayt sözcükler biçiminde harika veri işleme yetenekleri sağlar.
Makro derleyici dili ASM51, komutları açıklamak için kullanılır. Çoğu komutun sözdizimi, gerçekleştirilecek işlem için bir anımsatıcıdan (kısaltma) ve ardından işlenenlerden oluşur.
İşlenenler, farklı adresleme yöntemleri ve veri türleri belirtir.

Özellikle, MOV kısaltmasının farklı adres alanlarında üç tür veriyi (bit, bayt, adres) işlemek için tasarlanmış 18 farklı komutu vardır.
Komut seti, 33 MC işlevini belirtmek için 111 komut tipinin 42 anımsatıcı atamasına sahiptir.

111 komuttan 64'ü bir makine döngüsünde, 45'i iki döngüde yürütülür ve 4 döngüde yalnızca iki komut (MUL - çarpma ve DIV - bölme) yürütülür. 12 MHz saat frekansı ile makine çevriminin (12 çevrim) süresi 1 µs'dir. İle işlevsel özellik komutlar beş gruba ayrılabilir. Aşağıda, tablolar şeklinde sunulan her grubun komutlarının bir açıklaması bulunmaktadır. Tabloların kompaktlığı için, yürütülmesi gereken bir grup komut seçiyoruz (Tablo 7.3.6). etkiler(+ ile işaretli) bayrakların durumu hakkında durum word'ü PSW kaydedin.

Veri aktarım komutları

Gönder komutları ayrı alt gruplara ayrılabilir.
Dahili bellek hücreleri arasında veri gönderme ve alışverişi için komutlar(Tablo 7.3.7).

Anımsatıcı MOV hedefi, src olan 1-16 komutları yönlendirme kaynak kaynaktan hedef hedefe bayt veya iki bayt (komut 16) veri gönderirken:
● belirtmek kaynak(src) dört adresleme yöntemi kullanılır: register (2-4, 6, 8 komutları), doğrudan (1, 7, 9, 11 komutları), dolaylı (5, 10 komutları) ve doğrudan (12-16 komutları);
● belirtmek alıcı(hedef) üç yöntem kullanılır: kayıt (1, 3…5, 9, 12, 14, 16 komutları), doğrudan (2, 7, 8, 10, 13 komutları), dolaylı (6, 11, 15 komutları).

Takımlar 17-20 sağlar değiş tokuş dahili veri belleğinin iki hücresi arasındaki bilgi (veya iki yönlü aktarım).
XCH komutları yürütülürken, baytlar değiştirilirken XCHD komutları, bayt işlenenlerinin daha düşük tetradları ile değiştirilir.

Hücrelerden biri her zaman akümülatör A'dır. Geçerli bankanın Rn kayıtlarından biri, bayt alışverişinde diğer hücre olarak kullanılır, A ayrıca doğrudan veya dolaylı olarak adreslenen bir dahili bellek hücresidir; tetradları değiştirirken - yalnızca dolaylı olarak adreslenmiş bir dahili bellek hücresi.

Tüm MK'lerde yığın dahili RAM'de bulunduğundan, aynı alt grup şunları içerir: takımlar(20, 21) yığın erişimleri PUSH kaynağı, POP hedefi.
Bu komutlar, yığına bir bayt yazarak veya yığından geri yükleyerek yalnızca doğrudan adresleme yöntemini kullanır.
RAM'de üst 128 bayta sahip olmayan MK'lerde yığını 128 baytın üzerine çıkarmanın veri kaybına yol açtığı akılda tutulmalıdır.

Dahili ve harici veri belleği arasında veri aktarımı için komutlar(Tablo 7.3.8).

Bu komutlar yalnızca dolaylı adreslemeyi kullanır, bir baytlık adres mevcut kayıt bankasının P0 veya R1'inde bulunabilirken, iki baytlık bir adres DRTR veri işaretçi kaydında olabilir.
Harici belleğe herhangi bir erişimle, alıcının veya işlenenlerin kaynağının dahili bellekteki rolü, akümülatör A tarafından oynanır.

Program belleğinden veri aktarma komutları(Tablo 7.3.9).

Bu talimatlar, program belleğinden tabloları okumak içindir.

MOVC A,@A + DPTR komutu, 0 ila 255 girişli bir tabloya erişmek için kullanılır.

İstenen tablo girişinin sayısı akümülatöre yüklenir ve DPTR kaydı tablonun başlangıç ​​noktasına ayarlanır. Başka bir komutun ayırt edici özelliği, program sayacı PC'sinin temel işaretçi olarak kullanılması ve tabloya alt programdan erişilmesidir. Önce gerekli giriş noktasının numarası akümülatöre yüklenir, ardından MOVC A, @ A + PC komutu ile alt program çağrılır. Tabloda 1'den 255'e kadar numaralandırılmış 255 giriş olabilir, çünkü alt programdan çıkmak için RET komutunun adresi için 0 kullanılır.

Aritmetik veri işleme komutları. Tüm aritmetik komutlar, işaretsiz tamsayılar üzerinde gerçekleştirilir. İki işlenen üzerinde işlemler(Tablo 7.3.10). operasyonlarda ek EKLE, taşıma ile ekleme ADDC ve kredi kesintileri SUBB:

● bir 8 bitlik işlenenin kaynağı ve sonucun alıcısı akümülatördür;
● başka bir işlenenin kaynağı, geçerli bankanın Rn (n = 0-7) çalışma kayıtlarından biri veya doğrudan doğrudan veya dolaylı olarak @Rm (m = 0, 1) adreslenebilir RAM bellek konumu veya doğrudan veri #verisi.

Operasyonlar çarpma işlemi MUL ve bölünme DIV'ler A ve B kayıtlarının içeriği üzerinde yürütülür. Çarpma sırasında sonucun üst 8 biti B kaydına, alt 8 biti A kaydına yazılır.
Ürün 255'ten büyükse, taşma bayrağı OV ayarlanır; taşıma bayrağı C her zaman sıfırlanır. DIV komutu, 8 bitlik akümülatör A işlenenini 8 bitlik kayıt B işlenenine böler.
Bölme sırasında, bölüm (en anlamlı bitler) A'daki kayıt defterine, kalan (alt bitler) - B'de yazılır. Taşıma bayrakları C ve taşma OV sıfırlanır.
0'a bölme girişimi, taşma bayrağı OV'yi ayarlar. Bölme işlemi, vardiyalar ve temel dönüşümler için daha yaygın olarak kullanılır.

İkili bir sayı 2 N'ye bölündüğünde, N bit sola kayar.
Ekstra bitler B kaydına aktarılır.

Tek baytlık işlenenler üzerindeki işlemler(Tablo 7.3.11).

DA komutu, BCD işlemlerini gerçekleştirmek için kullanılır. Talimatlar INC, DEC, sırasıyla bellek hücresinin içeriğini birer birer artırmanıza veya azaltmanıza izin verir.
A akümülatörünün, Rn çalışma kayıtlarından birinin veya hem doğrudan hem de dolaylı olarak adreslenen bir bellek hücresinin içeriğine uygulanırlar.
Arttırma işlemi, 16 bitlik DPTR işaretçi kaydının içeriği için de geçerlidir.

Mantıksal işlemlerin komutları.

Çift işlemler

(Tablo 7.3.12).

AML, ORL, XRL komutları, 8 bitlik işlenenlerde üç adet iki basamaklı mantıksal işlem gerçekleştirmenize izin verir: ANL - mantıksal çarpma (AND), ORL - mantıksal ekleme (OR), XRL - özel VEYA (XOR).
İşlemler, işlenenlerin ayrı bitleri üzerinde gerçekleştirilir. İşlenenlerden birinin kaynağı ve aynı zamanda sonucun alıcısı ya bir akümülatör (A) ya da doğrudan adreslenebilir bir bellek hücresidir (doğrudan).
Başka bir işlenenin kaynağı için kayıt, doğrudan, dolaylı veya doğrudan adresleme kullanılır.

Tek işlemler

(Tablo 7.3.13).
Grup ayrıca akümülatör A'nın içeriği üzerinde bir dizi tekil işlemi içerir: temizleme (CLR), mantıksal toplama veya tersine çevirme (CPL), 1 bit sağa (RL, RLC) ve sola döngüsel ve genişletilmiş döngüsel kaydırma işlemleri (RR, RRC), değişim tetrad veya 4 bit döngüsel bayt kaydırma (SWAP), A ayrıca boş bir işlem (NOP), bunun sonucunda tüm MK kayıtlarının durumu (program sayacı hariç) değişmeden kalır .

Kontrol Aktarım Komutları

Koşulsuz Atlama Komutları

(Tablo 7.3.14).

1-3 arasındaki komutlar yalnızca hedef adresin biçiminde farklılık gösterir.

LJMP (L - Uzun) komutu, PC sayacını komutun ikinci ve üçüncü baytlarıyla yükleyerek belirtilen adrese adres 16'ya "uzun" koşulsuz bir atlama gerçekleştirir.
Komut, 64K bayt adres alanındaki herhangi bir noktaya geçiş sağlar.

AJMP (A - Mutlak) komutu, başlangıç ​​adresi PC program sayacının en önemli beş biti tarafından belirlenen 2K baytlık bir sayfa içindeki bir adrese "mutlak" bir atlama sağlar (başlangıçta, PC'nin içeriği artar). 2) tarafından.

SJMP (S - Kısa) komutu, komutun ikinci baytına önceden 2 artırılmış PC sayacının içeriğiyle imzalı ofset rel eklenerek hesaplanan adrese "kısa" koşulsuz bir atlama gerçekleştirmenize olanak tanır. .

Atlama adresi, komut adresine göre -128+127 bayt içindedir.
64 kilobaytlık adres alanında herhangi bir başka noktaya atlamak için dolaylı @A+DPTR adreslemeli komut 4 de kullanılabilir.
Bu durumda, A'nın içeriği işaretsiz bir tamsayı olarak yorumlanır.

Boş bir işlem (NOP), bunun sonucunda tüm mikroişlemci kayıtlarının durumu (program sayacı hariç) değişmeden kalır.

Koşullu Atlama Talimatları

(Tablo 7.3.15).

Akümülatörün içeriği sırasıyla eşitse veya sıfır değilse, JZ ve JNZ talimatları atlar.
Atlama adresi, 2 sayısını (komutun bayt cinsinden uzunluğu) ekledikten sonra PC talimat sayacının içeriğine göreli işaret ofseti rel eklenerek hesaplanır.

Akümülatörün içeriği değişmeden kalır.
Komutlar bayrakları etkilemez.

CJNE komutları (3-6), konumu komutlarda belirtilen iki 8 bitlik işleneni karşılaştırmanın sonucuna dayalı bir koşullu atlama uygulamak için kullanılır.
Değerleri eşit değilse geçiş yapılır.

Atlama adresi, daha önce 3 arttırılmış olan PC sayacının içeriğine ofset rel eklenerek hesaplanır.
Aksi takdirde, aşağıdaki komut yürütülür.

Algoritma sütunu, karşılaştırılan 8 bitlik işlenenlerin değerlerinin taşıma bayrağı C üzerindeki etkisini gösterir.
DJNZ komutları (7, program döngülerini düzenlemek için tasarlanmıştır.

Rn kaydı veya doğrudan (doğrudan) adreslenebilir hücre, döngünün tekrarlarının sayacıdır, A offset rel (komutların ikinci ve üçüncü baytlarında), döngünün başlangıcına geçişin göreli adresidir.
Komutlar yürütüldüğünde, sayacın içeriği bir azaltılır ve sıfır olup olmadığı kontrol edilir.
Sayacın içeriği sıfıra eşit değilse döngünün başına geçiş yapılır.
Aksi takdirde, aşağıdaki komut yürütülür.

Atlama adresi, daha önce komut uzunluğu (2 veya 3 ile) tarafından artırılan sayacın içeriğine ofset eklenerek hesaplanır.
Komut bayrakları etkilenmez.

Alt programları çağırma ve programlardan geri dönme komutları

(Tablo 7.3.16).
LCALL "uzun arama" ve ACALL "mutlak arama" komutları, belirtilen adreste bulunan alt programı koşulsuz olarak çağırır.

Bu komutlar ile yukarıda tartışılan koşulsuz atlama komutları arasındaki fark, dönüş adresini (sayacın içeriği) yığındaki ana programa kaydetmeleridir.
RET alt yordamından gelen dönüş talimatı, program sayacının içeriğini yığından geri yükler ve RETI talimatı ayrıca hizmet seviyesi kesintilerini etkinleştirir.

Kontrol aktarım komutları, yeri değiştirilebilen program modüllerini destekleyen göreli adreslemeyi kapsamlı bir şekilde kullanır.
Göreceli adres, PC sayacının mevcut konumundan her iki yönde ±127 bayt dallanma sağlayan 8 bitlik işaretli bir ofset rel'dir.

64K baytlık adres alanındaki herhangi bir noktaya atlamak için doğrudan adres addr16 veya dolaylı @A+DPTR adresi kullanılabilir.
İkinci durumda, A'nın içeriği işaretsiz bir tamsayı olarak yorumlanır.

MK48 mimarisiyle uyumluluk için 2K baytlık geçerli sayfanın içindeki kısa doğrudan adres addr11'in bir çeşidi tanıtıldı.

Bu adresleme türlerinin tümü yalnızca bir atlama işlemine uygulanabilirken, bir çağrı işlemi için yalnızca doğrudan addr16 ve dahili adresleme yöntemlerine izin verilir.
Tüm koşullu işlemler yalnızca göreli adreslemeyi kullanabilir.

MK51 bir kesme talebini algıladığında, dönüş adresini yığında otomatik olarak saklayan LCALL addr16 komutlarından birini oluşturur.
Ancak, MK48'den farklı olarak MK51, otomatik olarak kaydedilmiş durum bilgisine sahip değildir.

Bu durumda, kesme mantığı, hizmet için kabul edilen düzeyin isteklerine yanıt vermeyi durdurur.
Kesinti seviyesini düşürmek için, RET'e eşdeğer işleme ek olarak, bu seviyenin kesme etkinleştirme işlemini içeren RETI kesme dönüş komutu kullanılır.
Tipik koşullu işlemler MK51 ayrıca JZ, JNZ işlemlerini de içerir.
Ancak, yeni bir "Karşılaştır ve git" işlemi var CJNE.

Bu komuta göre işlenen önce sabitli tam sayıları çıkarma kurallarına göre karşılaştırılır ve karşılaştırmanın sonucuna göre CY bayrağı ayarlanır, ardından sabitle uyumsuzluk olması durumunda dallanma yapılır. gerçekleştirildi. Bir akümülatör, kayıt veya bellek konumunu bir dizi sabitle karşılaştırarak, örneğin özel durumları tanımlamak için eşleşmeleri kontrol etmenin uygun bir yolunu elde ederiz.

Aslında, CJNE komutu, CASE türündeki üst düzey bir dil operatörünün bir öğesidir.

DJNZ ekibi daha da geliştirildi.
Artık programcı bir sayaç olarak çalışan Rn kayıtlarından yalnızca birini değil, aynı zamanda herhangi bir DSEG bellek hücresini de kullanabilir.

Bit işlem komutları.

Grup, bir veya iki bit üzerinde işlem gerçekleştirmenize izin veren 12 komuttan (reset, set, bit inversiyonu, A ayrıca mantıksal AND ve OR) ve koşullu geçişleri uygulamak için tasarlanmış 5 komuttan oluşur (Tablo 7.3.17).

Komutlar, 20h adresli dahili RAM'in on altı hücresinde bulunan 128 bitin doğrudan adreslenmesini sağlar.
2Fh (Tablo 7.3.3) ve adresleri sekizin katları olan özel amaçlı kayıtlarda bulunan 128 bit (Tablo 7.3.4'te koyu renkle vurgulanmıştır).

İki tek bitlik işlenen üzerinde işlemler gerçekleştirirken, PSW kaydının tetikleyicisi, taşıma bayrağını C depolayan mantıksal bir akümülatör olarak kullanılır (Tablo 7.1.2).

MOV (1,2) komutları gerçekleştirilir yönlendirme Dahili RAM'in doğrudan adreslenebilir bir bit hücresinden flip-flop C'ye veya tam tersi bit.
Sırasıyla CRL (3, 4), SETB (5, 6) komutları terk edilmiş sıfıra veya Yüklemek birine C bayrağını veya belirtilen biti taşır.
CPL, ANL, ORL (7-12) komutları kullanılarak ters çevirme, toplama ve çarpma mantıksal işlemleri yapılır.

Grup ayrıca, göreli 8 bitlik ofset rel ile koşullu atlama işlemlerini uygulamak için komutlar (13-17) içerir.
Geçişler hem bit hem de taşıma bayrağı ayarlandığında (komut 13, 16) ve temizlendiğinde (komut 14, 17) uygulanabilir.

JBC komutu, koşul (bit) = 1 karşılandığında, hesaplanan adrese atlamaya ek olarak, bu biti sıfırlar.
Koşullu atlama talimatlarını yürütürken, atlama adresi, sayacın içeriğine 3 veya 2 (talimattaki bayt sayısını yansıtan) sayıları eklendikten sonra hesaplanır.

Mikrodenetleyici üretiminin kökeninde, sekiz bitlik mikrodenetleyici 8048 ve 8051 ailelerine sahip Intel bulunur. MCS-51 mimarisi adını bu ailenin ilk temsilcisinden almıştır - 1980'de HMOS teknolojisine dayalı olarak piyasaya sürülen 8051 mikrodenetleyici. İyi bir çevre birimi seti, esnek bir harici veya dahili program belleği seçimi ve uygun bir fiyat, bu mikro denetleyicinin pazarda başarılı olmasını sağladı. Teknoloji açısından 8051 mikrodenetleyici, zamanı için çok karmaşık bir üründü - kristalde 128 bin transistör kullanıldı, bu da 16 bit 8086 mikroişlemcideki transistör sayısının 4 katıydı.

Temel mimarinin ana unsurları şunlardır:
- pil mimarisine dayalı 8 bit ALU;
- 4 banka, her biri 8 adet;
- dahili program belleği 4Kbayt;
- dahili RAM 128 bayt;
- boole işlemcisi
-2 on altı bit zamanlayıcı;
- seri bağlantı denetleyicisi (UART);
- iki öncelik düzeyine sahip kesme denetleyicisi;
- ikisi harici programa ve veri belleğine erişim için adres / veri yolu olarak kullanılan dört adet 8 bitlik giriş / çıkış bağlantı noktası;
- dahili saat üreteci.

Geliştiriciler tarafından en iyi bilinen ve çok çeşitli cihazlarda popüler bir kontrol aracı olan bu mikrodenetleyicidir. Kullanılabilir birçok öykünücü, hata ayıklayıcı ve 8051 programcısı vardır, bu nedenle yazılım geliştirme zor değildir.

MCS-51'in geliştirilmesindeki bir sonraki temel adım, üretim teknolojisinin CHMOS'a aktarılmasıydı. Bu, kristalin güç tüketimini büyük ölçüde azaltmayı mümkün kılan ve örneğin otonom pille çalışan cihazlarda, uçucu uygulamalarda bir mikro denetleyici kullanımının yolunu açan Boşta ve Güç Kapatma modlarının uygulanmasını mümkün kıldı.

Ve 8-bit mimari çerçevesinde Intel tarafından bu yönün geliştirilmesindeki son temel aşama, kısaca genellikle 8xC51FX olarak adlandırılan 8xC51FA / FB / FC mikro denetleyicilerinin piyasaya sürülmesiydi. Bu kristal grubunun ana ayırt edici özelliği, programlanabilir sayaçlar (PCA) dizileridir. PCA'nın yapısal diyagramı Şekil 2'de gösterilmiştir.

PCA şunları içerir:

Zamanlayıcı/sayıcı, aşağıdaki işlevlerden birini gerçekleştirmek üzere programlanabilen beş örnekleme ve karşılaştırma modülünün tümüne hizmet eder:

Harici sinyalin pozitif kenarında zamanlayıcı değerinin 16 bit örneklemesi;
Harici sinyalin negatif kenarındaki zamanlayıcı değerinin 16 bit örneklemesi;
Harici sinyalin herhangi bir kenarında zamanlayıcı değerinin 16 bit örneklemesi;
16 bit yazılım zamanlayıcı;
16 bit yüksek hızlı çıkış aygıtı (HSO);
8 bit PWM

Yukarıdaki işlevlerin tümü PCA'da donanım düzeyinde gerçekleştirilir ve merkezi işlemciyi yüklemez, bu da genel sistem verimini artırmayı, ölçümlerin ve sinyal işlemenin doğruluğunu iyileştirmeyi ve mikro denetleyici yanıt süresini harici işlemlere azaltmayı mümkün kılar. gerçek zamanlı sistemler için özellikle önemli olan olaylar. 8xC51FX'te uygulanan PCA o kadar başarılı oldu ki, FX mikro denetleyicilerinin mimarisi fiili endüstri standardı haline geldi ve PCA'nın kendisi, farklı şirketlerden mikro denetleyicilerin çeşitli modifikasyonlarında tekrar tekrar üretildi.

Başlangıçta, MCS-51 mimarisinin darboğazları, 8 bitlik pil tabanlı bir ALU ve nispeten yavaş talimat yürütmesiydi (en hızlı talimatları yürütmek için 12 saat döngüsü gerekir). Bu, artan performans ve karmaşık hesaplamalar (16- ve 32-bit) gerektiren uygulamalarda aile mikro denetleyicilerinin kullanımını sınırladı. Eski mimarinin temel modernizasyonu sorunu acil hale geldi. Modernizasyon sorunu, 90'ların başında yazılım ve donanım alanında birçok gelişmenin zaten yaratılmış olması ve yeni bir mimari geliştirmenin ana görevlerinden birinin donanım ve yazılım uyumluluğunu uygulamak olması nedeniyle karmaşıktı. MCS-51'e dayanan eski gelişmelerle. Bu sorunu çözmek için Intel ve Philips'ten ortak bir uzman grubu oluşturuldu. Sonuç olarak, 1995'te önemli ölçüde farklı 2 aile ortaya çıktı: Intel'den MCS-251/151 ve Philips'ten 51XA (aşağıda ikincisine odaklanacağız).

MSC-251 mimarisinin temel özellikleri:

24 bit doğrusal adres alanı, 16M belleğe kadar adresleme(MCS-251 ailesinden üretilmiş mikrodenetleyiciler, 256K'lık bir bellek adres alanına sahiptir);
MCS-251 ailesi mikro denetleyicilerinin komut seti, MCS-51 ailesi mikro denetleyicilerinin ("eski" komutlar) komut setinde bulunan 111 komutun tümünü ve ayrıca 157 "yeni" komutu içerir. Bazı yeni komut kodları 4 bayt biçimindedir.
Mikrodenetleyiciyi kullanmadan önce yapılandırılmalıdır, yani. programlayıcıyı kullanarak, güç açıldıktan sonra komut setlerinden hangisinin aktif olacağını belirleyen konfigürasyon baytlarını "yakın". MCS-51 komut setini kurarsanız, MSC-251 ikili kod seviyesinde MCS-51 ile uyumlu olacaktır. Bu moda İkili Mod denir. Ancak, bu moddaki genişletilmiş talimatlar "pencere" aracılığıyla da kullanılabilir - ayrılmış talimat kodu 0A5h. Doğal olarak, her genişletilmiş talimatın uzunluğu bu durumda 1 bayt artar. Başlangıçta bir dizi genişletilmiş talimat yüklerseniz, bu durumda, MCS-51 için yazılmış programlar, MCS-51 için çapraz araçlar üzerinde yeniden derleme gerektirecektir, çünkü şimdi standart komutlar aynı "pencere" 0A5h üzerinden erişilebilir olacak ve uzunlukları da 1 bayt artacak. Bu moda Kaynak Modu denir. Genişletilmiş yönergeleri maksimum verimlilikle kullanmanıza ve en yüksek performansı elde etmenize olanak tanır, ancak yazılımın yeniden tasarlanmasını gerektirir.
kayıtlara bayt, kelime ve çift kelime olarak atıfta bulunulmasına izin veren bir kayıt mimarisi;
harici program belleğinden talimatların alınmasını hızlandırmak için sayfa modu adresleme;
talimat kuyruğu;
16 bitlik aritmetik ve mantıksal komutlar dahil olmak üzere genişletilmiş komut seti;
64K'ya kadar genişletilmiş yığın adres alanı;
2 döngüde en hızlı talimatın yürütülmesi;
MCS-51 için programlarla ikili kod uyumluluğu.

MCS-51'in mekanik bir yedeği olarak MCS-251 mikrodenetleyicilerinin kullanımına yönelik kullanıcılar için Intel, yapılandırma bitleri Binary Mode durumunda zaten programlanmış olan MCS-251 mikrodenetleyicilerini piyasaya sürüyor. Bu tür mikrodenetleyiciler MCS-151 endeksini aldı.

Intel'in kendisine ek olarak, MCS-251 mikro denetleyicileri Temic Semiconductors tarafından lisanslanmıştır.

Evrensel Seri Veri Yolu (veya USB), Tak ve Çalıştır teknolojisini günümüzün yüksek performanslı kişisel bilgisayarlarında bulunan harici G/Ç aygıtlarına genişletir.

Çeşitli çevresel aygıtları bağlayabilmek için USB standardı dört aktarım modu tanımlar: Ana, Eşzamanlı, Darbe ve Dizi Aktarımı. Her çevre birimi, yapılandırma parametrelerinin, komutların ve cihaz durum bilgilerinin iletilmesi için bir kontrol modunu desteklemelidir. Eşzamanlı aktarım, garantili veri yolu erişimi, sabit bant genişliği ve hata toleransı sağlar ve ses çıkış aygıtlarında ve bilgisayar telefonlarında kullanılabilir. Darbe iletimi, bilgileri seyrek olarak ve küçük parçalar halinde, ancak sınırlı bir hizmet süresiyle ileten fare, joystick veya klavye gibi giriş aygıtları için tasarlanmıştır. Dizi aktarımı, tarayıcılar, faks makineleri veya dijital kameralar gibi aygıtların, bir veri yolu kanalı boşalır serbest kalır kalmaz büyük miktarda veriyi kişisel bir bilgisayara aktarmasına olanak tanır.

Ürün Ana Özellikleri

"Evrensel Seri Veri Yolu Spesifikasyonu 1.0" ile tam uyumlu
Entegre USB alıcı-verici Seri Veri Yolu Arayüzü Motoru (SIE)
İletim için dört FIFO kuyruğu
Üç adet 16 baytlık FIFO kuyruğu
Almak için dört FIFO kuyruğu
Üç adet 16 baytlık FIFO kuyruğu
Bir yapılandırılabilir FIFO kuyruğu (1024 bayta kadar)
FIFO kuyruklarında otomatik alım/iletim kontrolü
İşlemleri Durdur/Sürdür
Üç USB veri yolu kesme vektörü
Faz kilidi döngüsü
Veri hızları: 12 Mbps ve 1.5 Mbps
Yavaş çevrim modu
256 KB kapasiteli harici adres alanı
Güç tasarrufu modları: bekleme ve kapanma
Kullanıcı Tanımlı Seçenekler
Gerçek zamanlı olarak beklemek
1 KB çip üstü RAM
Dört G/Ç bağlantı noktası
Programlanabilir Sayaç Dizisi (PCA)
Standart (MCS 51) UART mikrodenetleyici
donanım bekçi köpeği
Üç esnek 16 bit zamanlayıcı/sayıcı
MCS 51 ve MCS 251 mikrodenetleyici komut seti ile uyumlu
Kayıtlara dayalı MCS 251 mikrodenetleyici mimarisi
Çalışma frekansı 6 veya 12 MHz

8x930Hx denetleyici ek özelliklere sahiptir:

USB hub
USB hub kontrol seçenekleri
Bağlantı yönetimi
Çıkış cihazı ile bağlantı/bağlantıyı kesme algılama
Durdurma/sürdürme dahil güç yönetimi
Otobüs arızası algılama ve kurtarma
Tam hız ve düşük hızlı çıkış cihazları için destek
Bağlantı noktası güç geçişi için çıkış pimi
Aşırı yük algılama için giriş kontağı

Üç öğenin işbirliğiyle dört farklı USB veri aktarımı modu sağlanır: Ana Bilgisayar, Hub, İşlevsel cihaz. Ana bilgisayar, veri yolu üzerindeki içerik ve kontrol bilgilerinin iletimini kontrol eder. İşlevsel cihazlar, ana bilgisayar sistemlerini genişletir. Buna tipik PC çalışması türleri dahildir: klavyeden veya joystick'ten giriş, monitöre çıkış; dijital telefon ve görüntü aktarımı gibi daha karmaşık faaliyetlerin yanı sıra. Bir Intel 8x930Ax mikro denetleyici, işlevsel cihazları kontrol etmek için tasarlanmıştır. Son olarak, hub'lar, diğer işlevsel aygıtlara erişim sağlayan bir USB genişletme noktasıdır. İşlevsel aygıt denetimi ve bir USB hub'ını birleştiren Intel 8x930Hx mikro denetleyici, modern PC çevre birimleri için tasarlanmış, ticari olarak satılan ilk USB hub'ıdır.

USB hub'ları, PC kullanıcılarının dünyasını genişletmede önemli bir rol oynar. Yerleşik hub'larla donatılmış çevre birimlerinin (klavyeler, monitörler, yazıcılar ve daha fazlası) ortaya çıkmasıyla birlikte, yeni bir aygıtı bağlamak veya bağlantısını kesmek, prize bir fiş takmak kadar kolay. Yeni performans seviyeleri ve gelişmiş USB bağlantısı, iş ve eğlence uygulamaları için yeni nesil cihazlara yol açabilir. Gömülü kartların, IRQ çakışmalarının ve karışık kabloların günleri numaralandırılmıştır.

USB veri yolu kablosu yalnızca dört telden oluşur: Vbus, D+, D- ve GND - böylece bağlantıyı basitleştirir ve tek tip hale getirir. Aynı amaca, çevresel aygıtları USB veriyoluna bağlamak için tek bir standart konektör tarafından hizmet edilir. Veriler D+ ve D- kablolarında tam hızda 12 Mbps'de veya düşük hızda 1.5 Mbps'de farklı şekilde iletilir. Alıcı-verici kristalin içine yerleştirilmiştir, bu nedenle harici elektronik devrelere gerek yoktur. İstisna, cihazın yüksek hızlı mı yoksa düşük hızlı mı olduğunu belirlemek için gerekli olan hem D+ hem de D- hatlarındaki sonlandırma direncidir.

Aileye genel bakış
Intel 8x930 ailesi iki adet tek çipli denetleyiciden oluşur.

Intel 8x930Ax denetleyicisi, MCS 251 mikro denetleyici mimarisini temel alan ve USB veri yoluna bağlı çevresel aygıtlarla çalışmak üzere tasarlanmış 8 bitlik bir aygıttır. Öte yandan, 8x930Hx, MCS 251 mikro denetleyicisinin aynı çekirdeğini ve yerleşik USB veri yolu hub'ının gelişmiş özelliklerini kullanır. MCS 251 mimarisinin her iki USB veri yolu denetleyicisinde kullanılması aşağıdaki avantajları sunar:

Yüksek performans
Karışık bellek ve adresleme türlerinin kullanılması
Düşük güç tüketimi
Düşük gürültü
Üst düzey diller için verimli destek
Genişletilmiş komut seti
Yerleşik özellikler

8x930Ax için talimatlar hem MCS 51 mikrodenetleyici kitinden hem de MCS 251 mikrodenetleyici kitinden kullanılabilir.Bu yaklaşım, kullanıcıların yazılım yatırımlarından tasarruf etmesini sağlar ve uygulamalardan en yüksek performansı alır.

8x930 mikrodenetleyiciler, çeşitli yerleşik özelliklerle o kadar doludur ki, yalnızca mikro denetleyicilerden daha güçlü görünürler. Programlanabilir Sayaç Dizisi (PCA), gerçek zamanlı karşılaştırma veya veri yakalama, yüksek hızlı iletişim veya darbe genişlik modülasyonu gerektiren uygulamalara esneklik sağlar. Ek olarak, denetleyicide genişletilmiş bir seri bağlantı noktası, üç adet 16 bitlik zamanlayıcı/sayıcı, bir donanım bekçisi, dört adet 8 bitlik G/Ç bağlantı noktası ve iki adet güç tasarrufu modu bulunur: bekleme ve kapatma.

8x930Ax ailesinin kontrolörleri 1 Kbyte hafıza ile donatılmıştır ve kalıcı hafızası olmayan veya 8 veya 16 Kbyte kapasiteli kalıcı hafızalı versiyonlarda kullanılabilir. Talimatlar ve veriler için 256 KB'ye kadar harici belleği ve CPU'da bir kayıt dosyası olarak bulunan 40 baytlık genel amaçlı kayıtları adresleyebilirler. Kullanılan kombinasyona bağlı olarak, bir kayıt dosyası 16 baytlık kayıt, 16 iki baytlık kayıt ve 10 dört baytlık kayıt içerebilir.

Kontrolörler, harici belleğe sahip esnek bir arayüze sahiptir. Yavaş belleğe sahip cihazlara erişmek için üç bekleme döngüsü eklemek ve daha fazla döngü oluşturmak için gerçek zamanlı işlevi kullanmak mümkündür. Harici talimat alma, adresin yüksek baytındaki verileri çeviren sayfa modunu kullanarak performansı iyileştirebilir.

Her iki 8x930 kontrol cihazı, dahili çıkış cihazlarını desteklemek için sekiz FIFO kuyruğu ile donatılmıştır: dört iletim kuyruğu ve dört alma kuyruğu. Dört alma/gönderme FIFO kuyruğu, dört uç işlevsel birimi (0 ila 3) destekler. Kuyruk 0, 16 bayttan oluşur ve kontrol bilgilerinin iletilmesi için tasarlanmıştır. Kuyruk 1, kullanıcı tarafından yapılandırılabilir olarak kategorize edilmiştir ve 1024 bayta kadar kapasiteye sahiptir. Kuyruk 2 ve 3'ün her biri 16 bayttır ve çoğuşma, eşzamanlı ve dizi aktarım modlarında bilgi aktarmak için kullanılabilir. 8x930Hx denetleyici kullanılması durumunda, bu kuyruklar, giriş aygıtları için bir çift FIFO kuyruğu tarafından güçlendirilir. 8x930Hx denetleyicideki bu kuyruklar, çıkış cihazları tarafından oluşturulan veri akışlarının yeniden iletilmesinden sorumlu olan ek bir tekrarlayıcı tarafından desteklenir.

Mimariye Genel Bakış
Yapısal olarak, 8x930Ax ve 8x930Hx mikrodenetleyicilerdeki USB uygulaması dört bloğa ayrılabilir: FIFO kuyrukları, fonksiyonel cihazlara sahip arayüz bloğu, seri veri yolu arayüz bloğu ve alıcı-verici. 8x930Hx kontrolör, yoğunlaştırıcının işlevlerini kontrol etmek için ek bloklara sahiptir: yoğunlaştırıcı ve tekrarlayıcı içeren bir arayüz bloğu.

Her iki denetleyicide alma ve gönderme için FIFO kuyrukları halka şeklindedir. Kuyruklar, iki adede kadar değişken boyutlu ayrı veri kümesini destekler ve veri kümelerindeki bayt sayısını gösteren bayt sayaç kayıtlarını içerir. Kuyruklar, kuyruğun dolu veya boş olduğunu gösteren bayraklarla donatılmıştır ve aynı zamanda mevcut veri setinin alımını veya iletimini tekrarlayabilir. İşlevsel Aygıt Arayüz Birimi (FFU), iletilen veya alınan USB verilerini iletim tipine ve kuyrukların durumuna göre dağıtır. Ek olarak, IFU bloğu işlemin durumunu izler, FIFO kuyruklarını yönetir ve bir kesme talebi kullanarak kontrol olaylarının oluşumunu 8x930 merkezi işlemciye bildirir.

Seri veri yolu arabirim birimi, USB iletim protokolünü uygular: paketleri sıralar, sinyal oluşturma ve tanıma, sağlama toplamı oluşturma ve doğrulama, NRZI veri kodlama/kod çözme, bit doldurma, paket tanımlayıcı (PID) oluşturma ve tanıma işlemlerini gerçekleştirir.

USB mikro denetleyicilerdeki entegre alıcı-verici, USB 1.0 spesifikasyonu tarafından tanımlanan basit dört telli arayüze uygundur. 8x930 denetleyici ailesinde USB ile ilgili üç kesme bulunur. Küresel bir askıya alma veya işin yeniden başlaması durumunda, terminal işlevsel cihazlara veri alımının/iletiminin her bir çerçeve başlangıcında, sonunda meydana gelirler. 8x930Hx hub'da, çıkış portlarının bağlantı durumunu yönetmek ve izlemek için hub arayüz bloğu kullanılır. Tekrarlayıcı, yukarı ve aşağı USB bağlantı noktalarının sinyallerini yaymaktan sorumludur.

gastroguru 2017