mcs51 ailesinin mikrodenetleyicileri. Mikrodenetleyiciler MCS – 51. Blok diyagram, ALU, veri belleği Programlama mcs 51

  • 06.11.2021

UDC 681.5, 681.325,5 (075.8)

BBK 32.973.202-018.2 ve 73

Shcherbina A.N.Bilgisayar makineleri, sistemleri ve ağları. Kontrol sistemlerinde mikrodenetleyiciler ve mikroişlemciler: cheb. ödenek / A.N. Shcherbina, P.A. Nechaev- SPb.: Politeknik'ten. Üniversite, 2012.-226 s.

Teknik sistemler, elektrik enerjisi ve elektrik mühendisliği alanındaki eğitim ve uzmanlık alanları için devlet eğitim standardının içeriğine ve "Bilgisayar makineleri, sistemleri ve ağları" disiplini için örnek müfredatın içeriğine karşılık gelir.

Mikroişlemci sistemlerinin mantıksal organizasyonunun temel sorunları, Intel'den MCS-51 mikrodenetleyici ailesinin temel mimarisi örneğinde ele alınmıştır. Assembler ve SI dillerinde mikrodenetleyici programlama teknolojisi anlatılmaktadır.

Yüksek teknik kurumların öğrencileri ve öğretmenleri, teknolojik süreçlerin ve üretim ekipmanlarının otomasyonunda uzmanlar ve ayrıca mikroişlemci sistemlerinin mühendisleri-tasarımcıları için yararlı olabilir.

Ayrıca, "Kontrol sistemlerinde mikrodenetleyiciler ve mikroişlemciler" ve "Elektronik otomasyon cihazları" disiplinlerinin devlet eğitim standardının içeriğine, 140400 "Elektrik gücü ve elektrik mühendisliği" yönündeki lisans, mühendislik ve yüksek lisans eğitimine uygundur.

Yayın ve Yayın Kurulu kararıyla yeniden basılmıştır

Petersburg Devlet Politeknik Üniversitesi.

© Shcherbina A.N., Nechaev P.A., 2012

© Saint Petersburg Eyaleti

Politeknik Üniversitesi, 2012

ISBN 978-5-7422-3553-8


Giriş .. 7

Bölüm 1. MCS51 ailesinin mimarisi. on

1.1 Genel özellikler 10

1.2 Blok diyagram 11



1.3 8051 15 mikrodenetleyicisinin sonuçlarının amacı

1.4 Hafıza organizasyonu 17

1.4.1 Program belleği (ROM) 18

1.4.2 Veri belleği (RAM) 19

1.4.3 Özel fonksiyonların kayıtları. yirmi

1.4.4 Bayrak Kaydı (PSW) 23

1.5 Kontrol ve senkronizasyon cihazı 26

1.6 G / Ç Bağlantı Noktalarının Düzenlenmesi 27

1.6.1 Genel bilgiler. 27

1.6.2 Alternatif fonksiyonlar. 27

1.7. 8051 mikrodenetleyiciler için Zamanlayıcılar / Sayıcılar.28

1.7.1. Zamanlayıcı-sayaç yapısı. 28

1.7.2 Zamanlayıcı-sayıcıların çalışma modları. otuz

1.8. Seri bağlantı noktası 32

1.8.1. Seri bağlantı noktası yapısı. 32

1.8.2. Alıcı-verici kontrolü / durum kaydı SCON .. 34

1.8.3. Güç kontrol kaydı PCON .. 36

1.9. Kesinti sistemi 37

1.9.1. Kesinti sistemi yapısı. 37

1.9.2 Kesinti rutinlerinin yürütülmesi. 40

Bölüm 2. 80C51GB mikrodenetleyicinin özellikleri .. 42

2.1 Özellikler 42

2.2 G / Ç Bağlantı Noktaları P0-P5 43

2.2.1 Giriş-çıkış portlarının işleyişi. 43

2.2.2 Porta Yazma .. 46

2.3 8XC51GB kesme sisteminin özellikleri .. 49

Kesintileri etkinleştirin / devre dışı bırakın. 50

Öncelik yönetimini kesintiye uğratın. 51

Harici kesintiler. 54

2.3. ADC Düğümü 56

2.4. Donanım Bekçisi 61

2.5. Saat Arızası Algılama 63

2.6. Programlanabilir sayaçların matrisi RSA 64

2.6.1. PCA yapısı .. 64

2.6.2. PCA sayaç modu kaydı (CMOD) 66

2.6.3. PCA sayaç kontrol kaydı (CON) 67

2.6.4. Modülleri karşılaştırın/taahhüt edin. 68

2.7. Genişletilmiş Seri Bağlantı Noktası 76

2.8. Zamanlayıcılar / Sayaçlar 79

Mikrodenetleyici grubu pin çıkışı 8XC51GB .. 86

Bölüm 3. Programlama MK 8051GB .. 89

3.1. Programlama Modeli 89

3.2 Veri Tipleri 93

3.3 Veri adresleme yöntemleri 93

3.4 Komuta Sistemi 95

3.4.1 Genel özellikler. 95

3.4.2 Komut türleri. 96

3.4.3 İşlenen türleri. 97

3.4.4 Mikrodenetleyici verilerinin aktarılması için komutlar. 98

3.4.5 Aritmetik işlemler için komutlar 8051.101

3.4.6 Mikrodenetleyicinin mantıksal işlem komutları 8051.104

3.4.7 Mikrodenetleyici bitleri ile işlemler için komutlar 8051.106

3.5 Hata Ayıklama Programları 111

Bölüm 4. Programlama dili ASM-51. 112

4.2 Program Metni Yazma 113

4.3 Dilin alfabesi. 114

4.4 Tanımlayıcılar. 115

4.5 Sayılar 117

4.6 Direktifler 118

4.7 ASM51 dilinde alt programların uygulanması 122

4.7.1 ASM51 dilinde bir alt rutin-prosedür yapısı. 122

4.7.2 Değişken parametreleri bir alt programa geçirmek. 123

4.7.3 ASM51 dilinde alt program işlevlerinin uygulanması. 123

4.7.4 ASM51 dilinde kesme işleme rutinlerinin uygulanması. 124

4.8 Assembly dilinde yapılandırılmış programlama. 125

4.9 Çok modüllü programların yayınlanmasının özellikleri 126

4.10 Segmentleri kullanma 128

4.10.1 MK belleğini segmentlere ayırma .. 128

4.10.2 Mutlak bellek bölümleri. 129

4.10.2 Yeniden konumlandırılabilir bellek bölümleri. 131

Bölüm 5. Programlama dili С-51. 134

5.1 Dilin genel özellikleri 134

5.3 Program yapısı С-51 136

5.3. C-51 programlama dilinin öğeleri 138

5.3.1. Semboller.. 138

5.3.2. Sözlüksel birimler, ayırıcılar ve boşluk kullanımı. 141

5.3.3 Tanımlayıcılar .. 142

5.3.4 Anahtar Kelimeler. 143

5.3.5 Sabitler .. 143

5.4. Dil Operatörlerinde İfadeler 146

programlama C-51 146

5.5. İşlemler için Öncelikler 148

5.6. C-51 programlama dilinin operatörleri 149

5.6.1. Bildirim operatörleri. 150

5.6.2 Yürütülebilir Operatörler .. 150

5.6.3 Atama operatörü. 151

5.6.4 Koşullu operatör. 151

5.6.5 Yapılandırılmış operatör (). 152

5.6.6 Döngü operatörü için. 152

5.6.7 while döngüsünün gövdesine kadar durumu kontrol eden döngü operatörü. 153

5.6.8 Döngünün operatörü ile döngünün gövdesinin durumunu kontrol ettikten sonra döngü sırasında yapar. 154

5.6.9 Operatör molası. 155

5.6.10 Operatör devam ediyor. 155

5.6.11 Operatör seçimi anahtarı. 155

5.6.12 Koşulsuz şube işletmecisi goto. 157

5.6.13 Operatör ifadesi. 158

5.6.14 Alt program dönüşünden dönüş operatörü. 158

5.6.15 Boş ifade. 158

5.7. C-51 programlama dilinde değişken bildirme. 159

5.7.1. Değişken bildirimi. 159

5.7.3 Tamsayı veri türleri. 161

5.7.4 Kayan nokta sayıları. 162

5.7.5 Numaralandırılmış türdeki değişkenler. 162

5.7.6. C-51 programlama dilinde dizi bildirme. 164

5.7.7. Yapılar .. 165

5.7.8. Kombinasyonlar (karışımlar) 166

5.8. C-51 167'de İşaretçileri Kullanma

5.8.1. İşaretçilerin beyanı. 167

5.8.2. Yazılmamış işaretçiler. 168

5.8.3. Belleğe bağlı işaretçiler. 169

5.9. Yeni Değişken Türlerini Bildirme 169

5.10. Veri başlatma 170

5.11. C-51 programlama dilinde alt programların kullanılması. 170

5.11.1. Alt programların tanımlanması 171

5.11.2. Alt programların parametreleri 173

5.11.3. Alt programların ön bildirimi 174

5.11.4 Alt programları çağırma .. 176

5.11.5 Alt programların yinelemeli çağrısı 176

5.11.6 Kesinti işleme rutinleri. 177

5.11.7 Değişkenlerin ve alt programların kapsamları 178

5.12. Çok modlu programlar 179

Bölüm 6. Keil μVision2 entegre geliştirme ortamında programların hazırlanması. 182

6.1 ASM-51 Dilinde Proje Oluşturma 182

6.2 Keil μVision2 entegre geliştirme ortamında bir eğitim denetleyicisi için C dilinde proje oluşturma örneği 188

Bölüm 7. Eğitim denetleyicisinin tanımı .. 199

7.1. Denetleyici yapısı 199

7.2. Adres alanı 200

7.2.1. Bellek ayırma. 200

7.2.2 Harici bellek. 201

7.2.3. Dahili veri belleği. 202

7.3. G / Ç Bağlantı Noktası Eşleme 202

7.4. Seri bağlantı noktası ……………………………… ... 203

7.5. LCD 205 ile çalışma

7.6. Kontrol panelleri ……………………………………………… 213

EK P2 LABORATUVAR RAPORU YAPISI …… ..217

Ek A3 Makine talimatlarının kodları. 217

Referanslar ... 224


Tanıtım

Teknolojik süreçlerin ve üretimin otomasyonu ile ilgili uzmanlıkların geliştirilmesinde, mikrodenetleyicilerin çalışması önemli bölümlerden biridir.

Dünyada sürekli bir gelişme ve giderek daha fazla 16 ve 32 bit mikrodenetleyici ve mikroişlemcinin ortaya çıkması var, ancak dünya mikroişlemci pazarının en büyük payı hala 8 bit cihazlara ait. Analitik şirketlerin yakın gelecek için tüm tahminlerine göre, dünya pazarında 8 bitlik mikrodenetleyicilerin lider konumu devam edecek.

Şu anda, tüm 8 bitlik mikrodenetleyiciler arasında, MCS-51 ailesi, çeşitlerin sayısı ve değişikliklerini üreten şirket sayısı açısından şüphesiz liderdir. Adını bu ailenin ilk temsilcisi olan 8051 mikrodenetleyiciden almıştır.Başarılı bir çevresel aygıt seti, esnek harici veya dahili program belleği seçimi ve uygun fiyat, bu mikro denetleyicinin pazardaki başarısını sağlamıştır.

MCS-51 ailesinin avantajları:

· Fiili bir standart olan mimari;

· Ailenin olağanüstü genişliği ve olasılıkların çeşitliliği;

· İşlemcilerin yüksek performanslı ve genişletilmiş sürümlerinin mevcudiyeti;

· Önemli sayıda ücretsiz olarak erişilebilen yazılım ve donanım geliştirmeleri;

· Devre içi programlama dahil olmak üzere donanım programlama kolaylığı;

· Düşük maliyet ve temel çiplerin bulunabilirliği;

Özel kullanım koşulları için özel kontrolör versiyonlarının mevcudiyeti

· Düşük seviyede elektromanyetik parazite sahip kontrolör versiyonlarının mevcudiyeti;

· Hem dünyada hem de BDT ülkelerinde eski neslin geliştiricileri arasında yaygın olarak bilinir;

· Dünyanın önde gelen eğitim kurumlarının mimarlığı desteklemesi.

Ve son olarak, ana avantaj: ailenin temel çipine hakim olduktan sonra, mikrodenetleyiciler Cygnal, Dallas Semiconductor, Analog Devices, Texas Instruments gibi bilgisayar "canavarları" ile kolayca çalışmaya başlayabilirsiniz.

MCS-51 ailesi, en basit mikro denetleyicilerden en karmaşık olanlara kadar bir dizi mikro devre içerir. Bugün, yaklaşık 20 şirket tarafından üretilen 8051 mikrodenetleyici ailesinin 200'den fazla modifikasyonu var. Her yıl, bu ailenin temsilcilerinin yeni çeşitleri ortaya çıkıyor.

Gelişimin ana yönleri:

· Performansta artış (saat frekansında artış ve mimarinin yeniden tasarımı);

· Besleme geriliminin ve güç tüketiminin azaltılması;

· Devre içi programlama imkanı ile bir çip üzerindeki RAM ve FLASH bellek miktarında artış;

· Sürücü kontrol sistemleri, CAN ve USB arabirimleri vb. gibi karmaşık cihazların mikrodenetleyici çevre birimine tanıtılması.

MCS-51 ailesinin mikro denetleyicileri, çeşitli cihazlar için hem kontrol görevlerini gerçekleştirmenize hem de ayrı analog devre düğümleri uygulamanıza olanak tanır. Bu ailenin tüm mikro devreleri aynı komut seti ile çalışır. Çoğu, aynı pin çıkışına sahip aynı durumlarda yapılır (vaka için bacakların numaralandırılması). Bu, cihazın ve programın devre şemasını değiştirmeden geliştirilen cihaz için farklı üreticilerin mikro devrelerinin kullanılmasına izin verir.

Dünyadaki 51. ailenin çeşitlerinin ana üreticileri Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Gold Star, Winbond, Silicon Systems ve diğerleridir.

Genişletilmiş yeteneklere sahip MCS-51 ailesinin (Intel 8XC51FA, 8XC51GB, 80C152) mikrodenetleyici analoglarının özellikleri Tabloda gösterilmektedir. 1.

Tablo B.1

Veri deposu ROM PCA ADC WDT T / C doğum sonrası. Kanallar özellikler
Atmel: AT89C2051
- - - - UART Flaş 2 Kb
AT89C4051 - - - - UART Flaş 4Kb
AT89S4D12 128K - - - UART, SPI Flaş 4Kb
DALLAS Yarı İletken: DS5000FP
- - - + UART Önyükleme yükleyicisi
DS5001FP - - - + UART Önyükleme yükleyicisi
DS8xC520 16K - - + 2xUART 2 DPTR
SIEMENS: C505C
16K - + + UART, CAN 8 DPTR
C515C 64K - + + UART + SSC + CAN 4 PWM, 8 DPTR
Philips: * 89C51RA +
- + - + UART 2 DPTR, 4 lvl. kesinti, saat aşımı, Flash 8K
P51XAG1x 8K - - + 2 UART
Intel: 8xC51RA
8K - + + UART 4 seviye IRQ, çıkış saati
8XC196KC 64K 16K - + - UART 3 PWM
80C196KB 64K 8K - + - UART PWM

Bölüm 1. MCS51 Aile Mimarisi

8 bitlik tek çipli mikro denetleyicilerin MCS-51 ailesi, iyi tasarlanmış mimarileri nedeniyle mikroişlemci kontrol sistemi tasarımcıları arasında büyük popülerlik kazanmıştır. Bir mikro denetleyicinin mimarisi, dahili ve harici yazılımla erişilebilen donanım kaynakları ve bir dizi talimat topluluğudur. MCS-51 ailesinin mimarisi, büyük ölçüde amacına göre önceden belirlenir - kompakt ve ucuz dijital cihazların yapımı. Tek bir mikro devre kullanarak bir mikrobilgisayarın tüm işlevlerini yerine getiren mikrodenetleyicilere tek çipli bilgisayarlar (OEVM) denir.

Intel, Intel 8051 mikrodenetleyicisinin çalışma çekirdeğine dayanan yaklaşık 50 model yayınladı.Aynı zamanda, Atmel, Philips gibi diğer birçok firma, MCS-51 standardında geliştirilen kendi mikrodenetleyicilerini üretmeye başladı.

Genel özellikleri

Ailenin temel özellikleri:

· Yürütücü aygıtları kontrol etmeye odaklanan 8 bitlik merkezi işlem birimi (CPU);

· CPU, 8 bitlik donanım çarpması ve sayıların bölünmesi için yerleşik bir devreye sahiptir;

· Komut setinde, doğrudan adreslenebilir bitlerle çalışmak için çok sayıda işlemin bulunması, bit verileriyle çalışmak için bir işlemci (boolean işlemci) hakkında konuşmayı mümkün kılar;

· Çeşitli kristaller için 4 ila 32 Kb'lik bir hacme sahip maskelenmiş veya yeniden programlanmış tipte dahili (çipte bulunur) program belleği, bazı versiyonlarda yoktur;

· Kullanıcı verilerinin organizasyonu, kayıt bankaları, yığını ve depolanması için kullanılan en az 128 bayt yerleşik veri RAM'i;

· Bilgi girişi veya çıkışı için ayrı ayrı yapılandırılmış en az 32 çift yönlü arayüz hattı (port);

· Harici olayları saymak, zaman gecikmelerini düzenlemek ve iletişim portunu saatlemek için kullanılan iki adet 16-bit çok modlu sayaç / zamanlayıcı;

· Çift yönlü çift yönlü asenkron alıcı-verici (UART), mikrodenetleyici ve harici cihazlar arasındaki iletişim kanallarını geniş bir veri aktarım hızı yelpazesiyle düzenlemek için tasarlanmıştır. Mikrodenetleyicilerin bağlı bir sisteme donanım ve yazılım entegrasyonu için araçlar vardır;

· 4 dahili ve 2 harici olay kaynağından en az 5 kesme vektörünü destekleyen iki seviyeli öncelikli kesme sistemi;

· Dahili saat üreteci.

yapısal şema

Kontrolörün blok şeması Şekil 1.1'de gösterilmiştir ve şu ana işlevsel birimlerden oluşur: kontrol birimi, aritmetik mantık birimi, zamanlayıcı/sayıcı birimi, seri arabirim ve kesme birimi, program sayacı, veri belleği ve program belleği. Çift yönlü değişim, dahili 8 bitlik bir veri yolu kullanılarak gerçekleştirilir. 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.

Zamanlama ve Kontrol Ünitesi- 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;

G / Ç mantığı;

komutların kaydı;

elektrik tüketimi kontrol kaydı;

komutların kod çözücüsü, bilgisayar kontrol mantığı.

Pirinç. 1.1. I8051 kontrolörünün blok şeması.

Zaman dilimi şekillendirme cihazı fazların, saatlerin ve döngülerin dahili senkronizasyon sinyallerinin oluşturulması ve yayınlanması için tasarlanmıştır. Makine çevrimlerinin sayısı, komut yürütme süresini belirler. Süresi dört makine döngüsü olan çarpma ve bölme komutları dışında, hemen hemen tüm OEVM komutları bir veya iki makine döngüsünde yürütülür. Ana osilatörün frekansını F g ile belirleyelim.Makine çevriminin süresi 12 / F g veya ana osilatörün sinyalinin 12 periyodudur. Giriş - çıkış mantığı, P0-P3 giriş/çıkış portları üzerinden harici cihazlarla bilgi alışverişi 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, komut kod çözücü ve bilgisayar kontrol mantığı yardımıyla komut yürütme mikro programına dönüştürülür.

Tüketim Kontrol Kaydı (PCON) güç tüketimini azaltmak ve mikro denetleyiciden gelen gürültü seviyesini azaltmak için mikro denetleyiciyi durdurmanıza olanak tanır. Mikrodenetleyicinin ana osilatörünü durdurarak güç tüketiminin daha da azaltılması ve gürültünün azaltılması sağlanabilir. Bu, tüketim kontrol kaydı PCON'da biraz çevrilerek başarılabilir. n-MOS için (1816 serisi veya ortada "c" olmayan yabancı IC'ler), PCON Tüketim Kontrol Kaydı, SMOD seri bağlantı noktası baud hızını kontrol etmek için yalnızca bir bit içerir ve güç kontrol biti yoktur.

Aritmetik Mantık Birimi (ALU) aritmetik ve mantıksal işlemler gerçekleştiren paralel sekiz bitlik bir aygıttır. ALU şunlardan oluşur:

akümülatör kayıtları, tutma kayıtları TMP1 ve TMP2;

sabitlerin ROM'u;

toplayıcı;

ek kayıt (kayıt B);

pil (ACC);

program durum kaydı (PSW).

Kayıt olmak akümülatör ve tutma kayıtları- üzerlerindeki işlemler süresince işlenenleri almak ve depolamak için tasarlanmış sekiz bitlik kayıtlar. Bu kayıtlara programlı olarak erişilemez.

ROM sabitleri ikili-ondalık veri gösterimi için bir düzeltme kodu, bit işlemleri için bir maske kodu ve bir sabit kod oluşturulmasını sağlar.

Paralel sekiz bitlik toplayıcı Toplama, çıkarma aritmetik işlemlerini ve toplama, çarpma, eşit olmayan ve özdeş mantıksal işlemlerini gerçekleştirmek için tasarlanmış, sıralı taşımalı 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 süper işlem kaydı olarak görülebilir.

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

Seri arayüz ve kesme ünitesi (PIP) sıralı bilgi akışlarının giriş-çıkışlarının organizasyonu ve bir program kesinti sisteminin organizasyonu için tasarlanmıştır. Blok şunları içerir:

PIP arabelleği;

kontrol mantığı;

kontrol kaydı;

verici tamponu;

alıcı tamponu;

seri port alıcı-verici;

öncelikli kaydı kesme;

kesme etkinleştirme kaydı;

kesme bayrağı işleme mantığı ve vektör oluşturma devresi.

Program sayıcı dahili program belleğinin mevcut 16 bit adresini ve harici program belleğinin 8/16 bit adresini oluşturmak için tasarlanmıştır. Talimat sayacı, 16 bitlik bir PC arabelleği, bir PC kaydı ve bir artış devresi (içeriği 1 oranında artırma) içerir.

Veri belleği (RAM) program yürütme sürecinde kullanılan bilgilerin geçici olarak depolanması için tasarlanmıştır.

Bağlantı Noktaları P0, P1, P2, P3 yarı çift yönlü giriş-çıkış portlarıdır ve 32 giriş-çıkış hattı oluşturarak bilgisayar ile harici cihazlar arasında bilgi alışverişini sağlamak için tasarlanmıştır.

Program Durum Kaydı (PSW) program yürütme sırasında ALU'nun durumu hakkında bilgi depolamak için tasarlanmıştır.

Program belleği (EPROM) programları depolamak için tasarlanmıştır ve salt okunur bir bellektir (ROM). Farklı mikro devreler maske, UV ile silinebilir veya FLASH ROM kullanır.

Veri İşaretçi Kaydı (DPTR) 16 bitlik harici veri belleği adresini depolamak için tasarlanmıştır.

Yığın İşaretçisi (SP) herhangi bir bellek hücresinin geçici olarak saklanabileceği özel bir veri belleği (yığın) alanını düzenlemek için tasarlanmış sekiz bitlik bir kayıttır.

1.3 8051 mikrodenetleyicisinin pin ataması(şekil 1.2)

· U ss - ortak telin potansiyeli ("toprak");

· U cc - ana besleme gerilimi +5 V;

· X1, X2 - bir kuvars rezonatörünün bağlanması için kablolar;

RST - mikrodenetleyici genel sıfırlama girişi;

· PSEN - yalnızca harici ROM'a erişirken verilen harici program belleğinin izni;

· ALE - harici bellek adresinin flaşı;

· ЕА - dahili program belleğini devre dışı bırakın; bu girişteki seviye 0, mikro denetleyiciyi programı yalnızca harici ROM'dan yürütmeye zorlar; dahiliyi görmezden gelmek (ikincisi mevcutsa);

Pirinç. 1.2. Pin ataması 8051.

· P1 - sekiz-bit yarı-çift yönlü giriş/çıkış bağlantı noktası, bağlantı noktasının her bir biti, diğer bitlerin durumundan bağımsız olarak hem bilgi girişi hem de çıkışı için programlanabilir;

P2 - P1'e benzer sekiz bitlik yarı çift yönlü bir bağlantı noktası, bu bağlantı noktasının pinleri, harici programa veya veri belleğine (ikincisi 16 bit adresleme ise) erişirken adres bilgilerini vermek için kullanılır. Ek olarak, portun pinleri programlama sırasında adresin yüksek dereceli bitlerini mikrodenetleyiciye girmek için kullanılır;

РЗ - P1'e benzer sekiz bit yarı çift yönlü bir bağlantı noktası, bu bağlantı noktasının pinleri, zamanlayıcıları, seri giriş-çıkış bağlantı noktasını, bir kesme denetleyicisini ve harici program ve verileri çalıştırırken kullanılan bir dizi alternatif işlevi yerine getirebilir. hafıza;

· P0 - çoklanmış sekiz bitlik çift yönlü bilgi giriş-çıkış portu, bu port üzerinden farklı zamanlarda adresin düşük baytı ve veri çıkışı yapılır.

Hafızanın organizasyonu

MCS-51 serisinin tamamı Harvard mimarisine sahiptir, yani program ve veri belleği için ayrı adres alanları. Bellek yapısı Şekil 1'de gösterilmektedir. 1.3.

Mikro devrenin türüne bağlı olarak çip üzerinde bulunan dahili (yerleşik) program belleği (ROM, EPROM veya OTP ROM) miktarı 0 (ROM'suz), 4K (temel kristal), 8K, 16K veya 32K olabilir. Gerekirse, kullanıcı harici bir ROM kurarak program belleğini genişletebilir. Dahili veya harici ROM'a erişim, EA pinindeki (Harici Erişim) sinyalin değeri ile belirlenir:

EA = V cc (besleme voltajı) - dahili ROM'a erişim;

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

ROM'suz (ROM'suz) kristaller için EA pimi kalıcı olarak V ss'ye bağlı olmalıdır.

Pirinç. 1.3. MCS-51 ailesinin hafıza 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ı kesme sistemi tarafından kullanılır. Temel 8051 yongasının mimarisi, beş kesme kaynağı için destek sağlar:

· İki harici kesme;

· Zamanlayıcılardan iki kesinti;

· Seri bağlantı noktasından kesintiler.

İncirde. 1.4, program belleğinin alt alanının bir haritasını gösterir.

Pirinç. 1.4. Alt program hafıza haritası

Program belleği (ROM)

8051 ailesinin mikro denetleyicilerinde, program belleği ve veri belleği, çeşitli komutlar ve kontrol sinyalleri ile adreslenen bağımsız ve bağımsız cihazlardır.

8051 mikrodenetleyicisinin çipinde bulunan yerleşik program belleği 4 KB'dir (ailede 32'ye kadar). Harici program belleğine erişirken, 8051 ailesinin tüm mikro denetleyicileri her zaman 64 KB ROM'a erişim sağlayan 16 bitlik bir adres kullanır. Mikrodenetleyici, işlem kodunu ve işlenenleri okurken (PC talimat sayacını kullanarak) ve ayrıca program belleğinden pile bir bayt kopyalamak için talimatları yürütürken program belleğine erişir. Veri kopyalama komutları yürütüldüğünde, verilerin okunacağı program bellek hücresinin adreslenmesi hem PC sayacı hem de özel iki baytlık DPTR veri işaretleyici kaydı kullanılarak gerçekleştirilebilir.

Veri belleği (RAM)

Çip üzerindeki veri belleği 128 bayttır. Harici veri belleği 64 KB'a kadar olabilir. İlk 32 bayt, sırasıyla sıra 0 - sıra 3 olarak adlandırılan genel amaçlı kayıtların dört bankası halinde düzenlenmiştir. Bunların her biri sekiz R0 – R7 kaydından oluşur. Herhangi bir zamanda, program, kayıt adreslemesiyle, sayısı PSW programının durum kelimesinin üçüncü ve dördüncü bitlerinde yer alan yalnızca bir kayıt bankası mevcuttur.

8051 mikrodenetleyici bellek bit alanı adresleri

Tablo 1.1

Bayt adresi (Onaltılık) bit adresleri
D7 D6 D5 D4 D3 D2 D1 D0
2F 7F 7E 7D 7C 7B 7A
2E
2B 6F 6E 6D 6C 6B 6A
2C
2B 5F 5E 5D 5C 5B 5A
2A
4F 4E 4D 4C 4B 4A
3F 3E 3 boyutlu 3C 3B 3 A
2F 2E 2B 2C 2B 2A
1F 1E 1B 1C 1B 1 A
0F 0E 0D 0C 0B 0A
20 saat

Kalan adres alanı, geliştirici tarafından kendi takdirine bağlı olarak yapılandırılabilir: yığın, sistem ve kullanıcı veri alanlarını barındırabilir. Veri bellek hücrelerine iki şekilde erişilebilir. İlk yol, bir bellek hücresinin doğrudan adreslenmesidir. Bu durumda hücre adresi, ilgili talimatın işlenenidir. İkinci yöntem, R0 veya R1 işaretçi kayıtlarını kullanarak dolaylı adreslemedir: karşılık gelen komut yürütülmeden önce, adreslenecek hücrenin adresi bunlardan birine girilmelidir.

Harici veri belleğine erişmek için, R0 ve R1 kayıtları veya 16-bit DPTR işaretçi kaydı kullanılarak yalnızca dolaylı adresleme kullanılır.

Veri belleğinin bir kısmı, özel bit talimatlarının yardımıyla bellek hücrelerinin her bir bitinin adreslenmesinin mümkün olduğu bir bit alanıdır. Doğrudan adreslenebilir bitlerin adresi (Byte Adresi) (Bit) olarak da yazılabilir. Bu iki adresleme yönteminin yazışmaları Tablodan belirlenebilir. 1.1.

OMEVM komut sistemi, harika veri işleme yetenekleri sağlar, mantıksal, aritmetik işlemlerin yanı sıra gerçek zamanlı kontrolün uygulanmasını sağlar. Bitsel, dörtlü (4 bit), bayt (8 bit) ve 16 bitlik veri işleme uygulanmaktadır. LSI ailesi MCS-51 - 8-bit ОМЭВМ: ROM, RAM, özel amaçlı kayıtlar, ALU ve harici veriyolları bir bayt organizasyonuna sahiptir. Çift baytlık veriler yalnızca Pointer Register (DPTR) ve Command Counter (PC) tarafından kullanılır. Veri işaretçi kaydının iki baytlık bir DPTR kaydı olarak veya iki bir baytlık özel amaçlı kayıt defteri DPH ve DPL olarak kullanılabileceğine dikkat edilmelidir. Komut sayacı her zaman iki baytlık bir kayıt olarak kullanılır. OMEVM komut seti, bu sistemin 33 işlevini somutlaştırmak için 42 anımsatıcı komut atamasına sahiptir. Çoğu montaj dili komutunun sözdizimi, bir anımsatıcı işlev tanımlayıcısı ve ardından adresleme yöntemlerini ve veri türlerini gösteren işlenenlerden oluşur. Farklı veri türleri veya adresleme modları, anımsatıcı gösterimlerdeki değişikliklerle değil, ayarlanan işlenenler tarafından belirlenir. Komut sistemi şartlı olarak beş gruba ayrılabilir:
  • Aritmetik komutlar;
  • Mantıksal komutlar;
  • Veri aktarım komutları;
  • Bit işlemci komutları;
  • Dallanma ve kontrol transfer komutları.
Aşağıdaki kaynak işlenen adresleme türleri mevcuttur:
  • Adreslemeyi kaydet
  • Doğrudan adresleme
  • Dolaylı kayıt adresleme
  • Doğrudan adresleme
  • Baz ve indeks kayıtlarının toplamına göre dolaylı kayıt adreslemesi
Aritmetik komutlar Komut seti aşağıdaki aritmetik işlemleri içerir: toplama, taşıma bayrağıyla toplama, ödünç alma ile çıkarma, artırma, eksiltme, karşılaştırma, ondalık düzeltme, çarpma ve bölme. ALU'da işlemler işaretsiz tamsayılar üzerinde gerçekleştirilir. İki işlenenli işlemlerde: toplama (ADD), toplama ve taşıma (ADDC) ve çıkarma ve ödünç alma (SUBB), akümülatör ilk işlenendir ve işlemin sonucunu alır. İkinci işlenen, seçilen iş kayıtları bankasının bir iş kaydı, dolaylı kayıt ve doğrudan adresleme içeren bir dahili veri hafıza kaydı veya bir doğrudan veri baytı olabilir. Bu işlemler işaretleri etkiler: tamamlama, taşıma, ara taşıma ve işlemci durum sözcüğündeki (PSW) eşlik bayrağı. Taşıma basamağının kullanılması, toplama (ADDC) ve çıkarma (SUBB) işlemlerinin doğruluğunu önemli ölçüde artırmanıza olanak tanır. İşaret tabanlı toplama ve çıkarma, PSW kaydının taşma bayrağını (OV) programlı olarak kontrol ederek gerçekleştirilebilir. Ara taşıma (AC) bayrağı, BCD aritmetiği sağlar. Arttırma ve eksiltme işlemleri bayrakları etkilemez. Karşılaştırma işlemleri, hedef veya kaynak işleneni etkilemez, ancak taşıma bayraklarını etkiler. Yalnızca pil üzerinde gerçekleştirilen üç aritmetik işlem vardır: A pilinin (JZ, JNZ) içeriğini kontrol etmek için iki komut ve ikili ondalık kodlar eklerken bir ondalık düzeltme komutu. Çarpma işlemi sırasında, A akümülatörünün içeriği B kaydının içeriği ile çarpılır ve sonuç şu şekilde yerleştirilir: B kaydındaki düşük bayt, A kaydındaki yüksek bayt. Bayt değişkenli mantıksal komutlar Komut sistemi size izin verir. mantıksal işlemleri uygulamak için: akümülatör kaydı (A) ve kaynak bayt üzerinde "VE", "VEYA", "ÖZEL VEYA". İkinci işlenen (kaynak bayt), seçilen iş kayıtları bankasındaki bir iş kaydı olabilir; kayıt-dolaylı adresleme kullanılarak adreslenen bir dahili RAM kaydı; dahili RAM ve özel amaçlı kayıtların doğrudan adreslenebilir hücreleri; anlık değer. Bu mantıksal işlemler, A akümülatörünün içeriği veya ikinci işlenen olarak doğrudan veri kullanılarak dahili RAM'in herhangi bir doğrudan adreslenebilir kaydında veya özel amaçlı kayıt defterinde uygulanabilir. Yalnızca pil üzerinde gerçekleştirilen mantıksal işlemler vardır: A'nın sekiz bitinin tümünü sıfırlayın ve tersine çevirin; sola ve sağa döngüsel kayma; taşıma bayrağını dikkate alarak sola ve sağa döngüsel kayma; pilin içindeki kıdemli ve genç tetradların (nibls) yerlerini değiştirmek. Veri aktarım komutları Program ROM'una gömülü sembol tabloları (kodlar), dolaylı adresleme kullanılarak veri aktarım komutları kullanılarak seçilebilir. Sabit bayt, temel kayıt (PC veya DPTR) ve indeks kaydının (A'nın içeriği) toplamı tarafından adreslenen program hafıza hücresinden akümülatöre aktarılabilir. Bu, örneğin, ASCII kodunu yedi parçalı koda dönüştürmek için bir algoritmayı uygulamanın uygun bir yolunu sağlar. 256 baytlık harici veri RAM bloğunun herhangi bir hücresi, R0 veya R1 işaretçi kayıtları (seçilen çalışma kayıtları bankası) aracılığıyla dolaylı kayıt adreslemesi kullanılarak seçilebilir. 64KB harici RAM adres alanı içindeki bir konum, DPTR veri işaretçi kaydı aracılığıyla kayıt-dolaylı adresleme kullanılarak da seçilebilir. Doğrudan adreslenebilir kayıtlar arasındaki aktarım talimatları, iş kayıtları veya pil kullanmadan bir bağlantı noktasından dahili bir RAM hücresine bir değer girmenize olanak tanır. Mantıksal bir işlemcide, herhangi bir iletilebilir bit, bir taşıma bitine yerleştirilebilir ve bunun tersi de geçerlidir. Akümülatörün içeriği, çalışan kayıtların (seçilen bankanın) içeriği ve dolaylı kayıt adresleme yoluyla adreslenen dahili RAM hücrelerinin içeriği ile ve ayrıca doğrudan adreslenebilir hücrelerin içeriği ile değiştirilebilir. dahili RAM ve özel amaçlı kayıtların içeriği ile. Akümülatör içeriğinin minör ucu (bit 3-0), register-dolaylı adresleme kullanılarak seçilen dahili RAM hücrelerinin içeriğinin minör ucu ile değiştirilebilir. Bit İşlemci Talimatları Bit işlemci, MCU mimarisinin MCS51 ailesinin bir parçasıdır ve bağımsız bir bit işlemcisi olarak görülebilir. Bit işlemci bir dizi talimat yürütür, kendi bit adreslenebilir RAM'ine ve kendi G / Ç'sine sahiptir. Bit komutları, dahili RAM'in on altı hücresinde (20H-2FH adresli hücreler) 128 bitin (0-127) doğrudan adreslenmesini ve adresleri sekizin katları olan özel amaçlı kayıtların doğrudan bit adreslenmesini sağlar. Ayrı ayrı adreslenebilir bitlerin her biri "1" olarak ayarlanabilir, "0" olarak temizlenebilir, ters çevrilebilir, kontrol edilebilir. Geçişler gerçekleştirilebilir: eğer bit ayarlanmışsa; bit ayarlanmamışsa; geçiş, eğer bit ayarlanmışsa, bu bitin temizlenmesi ile; bit, taşıma bitinin üzerine yazılabilir. "VE", "VEYA" mantıksal işlemleri, doğrudan adreslenebilir herhangi bir bit ile taşıma bayrağı arasında gerçekleştirilebilir, burada sonuç, taşıma bayrağının bitine girilir. Bitsel işleme talimatları, kombinatoryal mantığın karmaşık işlevlerinin uygulanmasını ve kullanıcı programlarının optimizasyonunu sağlar. Dallanma ve Kontrol Aktarım Komutları Program belleği adres alanı, sayfa numarasını yeniden yüklemeden (değiştirmeden) program parçalarını adres alanı içinde serbestçe taşımanıza izin veren bir sayfalama organizasyonuna sahip değildir. Bireysel program parçalarının taşınması, çeşitli programlar tarafından yeniden yerleştirilebilir program modüllerini kullanma yeteneği sağlar. 16 bitlik dal ve alt rutin çağrı talimatları, 64 KB program belleği adres alanında herhangi bir noktaya atlamanıza izin verir. 11 bitlik atlamalar ve alt rutin çağrı talimatları, 2 KB'lik bir program birimi içinde atlamalar sağlar. Komut sisteminde, (РС) -128 ila (ЗС) +127 aralığında bir sonraki programın başlangıç ​​adresine göre koşullu ve koşulsuz atlamalar için komutlar vardır. Bireysel bitleri kontrol etmek için komutlar, doğrudan adreslenen bitlerin "0" veya "1" durumu üzerinde koşullu geçişlere izin verir. Pil içeriğini kontrol etme talimatları (sıfır / sıfır olmayan için) A'nın içeriği üzerinde koşullu atlamalara izin verir. Talimat sistemindeki dolaylı kayıt atlamaları, içinde bulunan bir ofset ile taban kaydına (DPTR veya PC içeriği) göre dallanma sağlar. akümülatör A. Kayıt adresleme Kayıt adresleme, seçilen iş kayıtları bankasının sekiz iş kaydına erişmek için kullanılır (aynı kayıtlar, dahili veri RAM'inin normal hücreleri olarak doğrudan adresleme ve dolaylı kayıt adresleme kullanılarak seçilebilir). Kayıt adresleme, A, B, AB (çift kayıt), DPTR ve taşıma bayrağı C'ye erişmek için kullanılır. Kayıt adreslemenin kullanılması, üç baytlık doğrudan adres talimatlarının iki bayt eşdeğerini elde etmenizi sağlar. Doğrudan Adresleme Doğrudan bayt adresleme, dahili veri belleği (RAM) konumlarına (0-127) ve özel amaçlı kayıtlara erişmek için kullanılır. Bit yönlendirmeli adresleme, 20H-2FH adres konumlarında bulunan ayrı olarak adreslenebilir 128 bitleri ve özel amaçlı kayıtların ayrı olarak adreslenebilir bitlerini belirtmek için kullanılır. Doğrudan adres kodu baytının en önemli biti, RAM'de veya özel amaçlı kayıtlarda bulunan iki ayrı adreslenebilir bit grubundan birini seçer. 0-127 (00H-7FH) adreslerine sahip doğrudan adreslenebilir bitler, 20H-2FH adreslerine sahip 16 dahili RAM hücresi bloğunda bulunur. Belirtilen hücreler, en az anlamlı baytın en az anlamlı bitinden en anlamlı baytın en anlamlı bitine kadar sırayla numaralandırılır. Özel amaçlı kayıtlardaki ayrı olarak adreslenebilir bitler şu şekilde numaralandırılır: adresin en önemli beş biti, kaydın kendisinin en önemli beş bitiyle eşleşir ve en az anlamlı üç bit, kayıt içindeki bireysel ibt'nin konumunu belirler. Dolaylı kayıt adreslemesi Dolaylı kayıt adreslemesi, dahili veri RAM'inin hücrelerine atıfta bulunmak için kullanılır. Seçilen kayıt bankasının R10, R1 kayıtları, işaretleyici kayıtları olarak kullanılır. PUSH ve POP komutları, yığın işaretçisinin (SP) içeriğini kullanır. Dolaylı kayıt adreslemesi de harici veri belleğine erişmek için kullanılır. Bu durumda, R0 ve R1 işaretçi kayıtları (seçilen çalışma kayıtları bankası) kullanılarak, 256 baytlık bir harici veri belleği bloğundan bir hücre seçilir. Blok numarası, P2 portunun içeriğine göre önceden ayarlanmıştır. 16-bit Veri İşaretçisi (DPTR), 64 KB'a kadar harici veri belleğinin adres alanındaki herhangi bir konuma erişmek için kullanılabilir. Doğrudan adresleme Doğrudan adresleme, komutta açıkça belirtilen program belleği adres alanından sabitleri seçmenize olanak tanır. Temel ve indeks kayıtlarının toplamına göre dolaylı kayıt adreslemesi Toplama göre dolaylı kayıt adreslemesi: temel kayıt artı indeks kaydı (akümülatör A'nın içeriği), program belleğine bağlı tabloların görüntülenmesini kolaylaştırır. Tablodaki herhangi bir bayt, DPTR veya PC içeriği ve içeriğin toplamı tarafından belirlenen bir adreste seçilebilir A. Komut sisteminde kullanılan semboller ve semboller tablosu
Tanım, sembol Randevu
A pil
Rn Halihazırda seçili olan kayıt bankasının kayıtları
r Komutta belirtilen yüklenen kayıt sayısı
doğrudan Dahili veri RAM hücresi (0-127) veya SFR (128-255) olabilen, doğrudan adreslenebilir 8 bit dahili veri hücresi adresi
@Rr Dolaylı olarak adreslenebilir 8 bit dahili veri RAM hücresi
veri8 TBM'ye giden 8 bitlik doğrudan veri
veriH Doğrudan 16 bitlik verilerin en önemli bitleri (15-8)
veriL Doğrudan 16 bitlik verilerin en az anlamlı bitleri (7-0)
addr11 11 bitlik hedef adres
adrL Hedef adresin en küçük anlamlı bitleri
disp8 m işaretiyle 8 bitlik bayt ofset
biraz Adresi dahili veri RAM'inde veya SFR'de bulunan CPC'yi içeren doğrudan adreslenebilir bit
a15, a14 ... a0 Hedef adres bitleri
(NS) X öğesinin içeriği
((NS)) X öğesinde depolanan adresteki içerik
(X) [M] X elemanının M boşalması
+ - * / VE VEYA XOR / X İşlemler: toplama çıkarma çarpma bölme mantıksal çarpma (VE işlemi) mantıksal toplama (VEYA işlemi) modulo 2 toplama (hariç VEYA) X öğesinin tersine çevrilmesi

İşlev anımsatıcıları, adresleme yöntemlerinin ve veri türlerinin belirli kombinasyonlarıyla benzersiz bir şekilde ilişkilendirilir. Komut sisteminde bu tür toplam 111 kombinasyon mümkündür. Tablo, alfabetik olarak sıralanmış bir komut listesi sağlar.

anımsatıcılar İşlev Bayraklar
ACALL komutu Mutlak alt program çağrısı
EKLE A Takımı,<байт-источник> Ek AC, C, OV
ADDC A Takımı,<байт-источник> taşıma katlanır AC, C, OV
AJMP Ekibi Mutlak geçiş
ANL Ekibi<байт-назначения>, <байт-источникa> Mantıksal "VE"
ANL C Ekibi,<байт-источникa> Değişken bitler için mantıksal "VE"
CJNE Ekibi<байт-назначения>, <байт-источник>, <смещение> Karşılaştır ve eşit değilse atla C
CLR A Komutu Pil sıfırlama
CLR Komutu biraz temizleniyor biraz
CPL A Takımı Ak umul ora'nın tersine çevrilmesi
CPL Ekibi Bit inversiyonu biraz
Takım DA A Ekleme için akümülatör ondalık düzeltmesi AC, C
Aralık Ekibi<байт> Azaltma
DIV AB Ekibi Bölüm C, OV
DJNZ Ekibi<байт>, <смещение> Sıfır değilse azaltma ve geçiş
INC Ekibi<байт> artış
INC DPTR Ekibi Veri işaretçisi artışı
JB Takımı , Bit ayarlanmışsa atla
JBC Ekibi , Bir bit ayarlanmışsa atla ve o biti temizle
JC Takımı Taşıma ayarlanmışsa atla
JMP @ A + DPTR Komutu dolaylı geçiş
JNB Ekibi , Bit ayarlanmamışsa atla
JNC Ekibi Taşıma ayarlanmamışsa atla
JNZ Ekibi Pil içeriği sıfır değilse atla
JZ Takımı Akümülatör içeriği 0 ise atla
LCALL Komutu uzun arama
LJMP Ekibi Uzun geçiş
MOV komutu<байт-назначения>, <байт-источника> bayt değişkeni gönder
MOV komutu<бит-назначения>, <бит-источника> veri biti gönder C
MOV DPTR komutu, # data16 16-Bit Sabitli Veri İşaretçisini Yükle
MOVC komutu A, @ A + ( ) Program belleğinden bayt gönder
MOVX komutu<байт приемника>, <байт источника> Verileri harici belleğe gönder (harici bellekten)
MUL AB Ekibi Çarpma işlemi C, OV
NOP komutu İşlem yok bilgisayar
ORL Ekibi<байт-назначения>, <байт-источникa> Değişken baytlar için mantıksal "VEYA"
ORL C Ekibi,<бит источникa> Değişken bitler için mantıksal "VEYA" C
POP komutu Yığından okuma
PUSH komutu İstifleme
RET komutu Bir alt programdan dönüş
RETI ekibi Kesintiden dönüş
RL A Takımı Pil içeriğini sola kaydır
RLC A Takımı Pil içeriğini taşıma bayrağı ile sola kaydırın
Takım RR A Pil içeriğini sağa kaydır
RRC A Takımı Pilin içeriğini taşıma bayrağı aracılığıyla sağa kaydırın C
SETB Komutu Bit ayarla C
SJMP Ekibi<метка> Kısa atlama
SUBB A takımı,<байт источника> Kredi ile çıkarma AC, C, OV
Bir Komutu Değiştir Pilin içindeki dizüstü bilgisayarların değişimi
Takım XCHA,<байт> Değişken bayt ile akümülatör içeriğini değiştirme
XCHD Takım A, @ R1 Not defterini değiştirmek
XRL Komutu<байт-назначения>, <байт-источникa> Değişken baytlar için mantıksal ÖZEL VEYA

MCS-51 ailesinin mikrodenetleyicileri, program belleğinin ve veri belleğinin bölümlendiği Harvard mimarisine göre inşa edilmiştir, kendi adres alanlarına ve bunlara erişim yöntemlerine sahiptir.

Program hafızası


Maksimum bellek boyutu 64K bayttır, bunun 4K, 8K, 16K veya 32K bayt bellek (Tablo 7.3.1) çipte bulunur, geri kalanı kalıbın dışındadır.
EA terminalindeki voltaj ile = VCC EA = V CC = 0 ile hem dahili hem de harici bellek kullanılır - yalnızca harici bellek.
Tablo 7.3.1 gösterir program hafıza adresleri belirtilen durumlar için.
Program belleğinin alt alanı, mikrodenetleyici çalışmasını başlatmak (sıfırlamadan sonra 0000h başlangıç ​​adresi) ve kesintileri işlemek için ayrılmıştır (kesme adresleri 8 baytlık bir aralıkla bulunur: 0003h, 000Bh, 0013h, vb.).


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

● için harici bellek programlar, ¯PSEN sinyali üretilir ve her zaman 16 bitlik bir adres oluşturulur.
Adresin düşük baytı, makine döngüsünün ilk yarısında P0 portu üzerinden iletilir ve kayıttaki ALE flaşının kenarında sabitlenir.
Döngünün ikinci yarısında, harici bellekten MC'ye bir veri baytı girmek için P0 portu kullanılır.
Adresin yüksek sıralı 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 mikro denetleyici veri yolundaki 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 konumunu adresleyen 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 özel fonksiyonların SFR kayıtlarını adreslemek için komutlar farklı adresleme yöntemleri kullanır: dolaylı ve düz.

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

00h adresli düşük 32 bayt dahili RAM.
1Fh, her biri sekiz kayıt (R0.R7) ile dört bankada gruplandırılmıştır.
20h adresli sonraki 16 bayt RAM.
2Fh, 8 × 16 = 128 bitlik bir bellek alanını temsil eder ve bu, her bir bitin erişilmesine izin verir.
Banka kaydının adresini seçmek için adı R0 kullanılır.
R7, bir sıra seçmek 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.

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

4 gösteri adres haritasını kaydetSFR MCS-51 ailesinin dikkate alınan mikro devrelerinin.
SFR adresi, onaltılık gösterimde sütun ve satır numaralarının bir kombinasyonu ile belirlenir.

Örneğin, CMOD kaydı D9h adresine sahiptir.

Adresleri 0h veya 8h ile biten (kalın harflerle yazılmış) SFR kayıtları için bayt izin verilmiş bit düzeyinde adresleme.

Bu durumda, kayıttaki N. biti 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ğişir.
Örneğin, ACC akümülatörünün bit adresleri E0h-E7h aralığındadır.

Harici bellek veriler (64 KB'ye kadar), MC'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 kullanılır (Şekil 7.1.8):
● dolaylı adreslemeli komutlar;
● ¯RD okuma ve ¯WR yazma sinyalleri;
● adresin en önemsiz baytını iletmek ve veri baytını almak / iletmek için P0 portu;
● Adresin yüksek dereceli baytını iletmek 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 aşağıdaki komut sistemi tabloları aşağıdaki gösterimi kullanır:

Doğrudan adresleme.

Bu adresleme yöntemiyle, bayt veya veri 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 kaydı yapın.


Bu adresleme yöntemi, sekiz R0 kaydından birinde saklanan verilere erişim sağlar.
Mevcut çalışma kayıtları bankasının R7'si.
Ayrıca A, B, AB (çift kayıt), DPTR işaretçi kaydına erişmek ve C bayrağını taşımak için 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, verilerin adresi, konumu işlem kodu 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 SP yığın işaretçisi olabilir; 16 bitlik adresleme için sadece DPTR veri işaretleyici kaydı 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 komutuyla, 50 sayısı A akümülatörüne yüklenir.

Endeksli adresleme.


Bu yöntem, veri bayt adresinin, temel (DPTR veya PC) ve indeks (A) kayıtlarının içeriğinin toplamı olarak belirlendiği dolaylı bir kayıt adreslemesidir.
Yol yalnızca program belleğine erişim için ve yalnızca okuma modunda kullanılır; program belleğine kablolu olarak bağlanmış tabloları görüntülemeyi kolaylaştırır.

Komut yapısı.

Bir komutun uzunluğu bir (49 komut), iki (45 komut) veya üç (17 komut) bayttır.
Komutun ilk baytı her zaman işlem kodunu (OP) 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 gösterilen 13 tip komut vardır:

● A, PC, SP, DPTR, Rn (n = 0, 7) - akümülatör, talimat 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 mevcut bankanın kaydı;
● doğrudan - doğrudan adreslenen işlenenin 8 bitlik adresi;
● bit - doğrudan adreslenen bitin adresi;
● rel - geçişin göreli adresi;
● addr11, addr16 - 11- ve 16-bit mutlak geçiş adresi;
● # data8, # data16 - 8 ve 16 bit uzunluğundaki doğrudan veriler (işlenenler);
● A10, A9, A0 - 11 bitlik adresin ayrı bitleri;
● (.) - 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, not defterleri, baytlar, çift bayt sözcükler biçimindeki verilerin işlenmesi için büyük olanaklar sağlar.
ASM51 makro derleyici dili, komutları açıklamak için kullanılır. Çoğu komutun sözdizimi, gerçekleştirilecek işlemin bir anımsatıcısından (kısaltma) ve ardından işlenenlerden oluşur.
İşlenenler, farklı adresleme yöntemlerini ve veri türlerini belirtmek için kullanılır.

Özellikle, MOV kısaltmasının farklı adres alanlarında üç tip veriyi (bit, bayt, adres) işlemek için tasarlanmış 18 farklı talimatı vardır.
Komut seti, 33 MK fonksiyonunu somutlaştırmak için 111 tip komutun 42 anımsatıcı tanımı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ında, bir makine çevriminin (12 saat çevrimi) süresi 1 μs'dir. Tarafından işlevsel özellik takımlar 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 komutu seçelim (Tablo 7.3.6). etkiler(+ ile işaretli) bayrakların durumu hakkında durum kelime kaydı PSW.

Veri aktarım komutları

Aktarım komutları ayrı alt gruplara ayrılabilir.
Dahili bellek hücreleri arasında veri aktarımı ve alışverişi için komutlar(Tablo 7.3.7).

Anımsatıcı MOV hedefine sahip olan 1-16 komutları, src, yönlendirme kaynak kaynaktan hedef hedefe bayt veya iki bayt (komut 16) veri aktarırken:
● 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üldüğünde, baytlar değiştirilir ve XCHD komutları, bayt işlenenlerinin alt tetradları ile değiştirilir.

Hücrelerden biri her zaman akümülatör A'dır. Başka bir hücre, bayt alışverişinde mevcut bankanın Rn kayıtlarından biri kullanıldığından, A ayrıca dahili belleğin doğrudan veya dolaylı olarak adreslenebilir bir hücresidir; tetradları değiştirirken - dahili belleğin yalnızca dolaylı olarak adreslenebilir bir hücresi.

Tüm MCU'larda yığın dahili RAM'de bulunduğundan, bu alt grup şunları içerir: komutlar(20, 21) yığın erişimi PUSH kaynağı, POP hedefi.
Bu komutlar, yığına bir bayt yazarak veya yığından kurtararak yalnızca doğrudan adresleme yöntemini kullanır.
RAM'de üst 128 bayta sahip olmayan MCU'larda yığını 128 baytın üzerine çıkarmanın veri kaybına yol açtığı unutulmamalıdır.

Dahili ve harici veri belleği arasında veri aktarım 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 bulunabilir ve iki baytlık adres DPRT veri işaretçi kaydında bulunabilir.
Harici belleğe herhangi bir erişimde, pil A, dahili bellekte alıcı veya işlenen kaynağı rolünü oynar.

Program belleğinden veri aktarım talimatları(Tablo 7.3.9).

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

MOVC A, @ A + DPTR komutu, 0 ile 255 arasında giriş sayısı olan bir tabloya başvurmak için kullanılır.

Gerekli tablo girişinin sayısı akümülatöre yüklenir ve DPTR kaydı tablonun başlangıç ​​noktasına ayarlanır. Diğer komutun ayırt edici bir özelliği, program sayacı PC'sinin bir temel işaretçi olarak kullanılması ve tabloya bir 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. Tablo, 1'den 255'e kadar sayılarla 255 girişe sahip olabilir, çünkü alt program çıkışının 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 eklemeler EKLE, devam eden ekleme ADDC ve kredi kesintisi SUBB:

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

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

Bir ikili sayı 2 N'ye bölündüğünde, N bit sola kaydırılır.
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. INC, DEC komutları, sırasıyla bellek hücresinin içeriğini birer birer artırmaya veya azaltmaya 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.

Boole komutları.

Çift işlemler

(Tablo 7.3.12).

AML, ORL, XRL komutları, 8 bitlik işlenenlerde üç adet iki basamaklı mantıksal işlemin gerçekleştirilmesine izin verir: ANL - mantıksal çarpma (AND), ORL - mantıksal toplama (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 bir kayıt, doğrudan, dolaylı veya doğrudan adresleme yöntemi 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 tek-yerli işlem içerir: temizleme (CLR), mantıksal tamamlayıcı veya ters çevirme (CPL), 1 bit sağa (RL, RLC) ve sola döngüsel ve genişletilmiş döngüsel kaymalar ( RR, RRC), değişim tetradları veya bir baytın 4 bitlik döngüsel kayması (SWAP), A da boş bir işlemdir (NOP), bunun sonucunda tüm MC 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ı ikinci ve üçüncü komut baytlarıyla yükleyerek, belirtilen addr16 adresine "uzun" koşulsuz bir atlama gerçekleştirir.
Komut, 64K bayt adres alanındaki herhangi bir noktaya atlama 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 sayfadaki bir adrese "mutlak" bir atlama sağlar (başlangıçta, PC içeriği 2) arttı.

SJMP (S - Kısa) talimatı, önceden 2 arttırılmış PC sayacının içeriğiyle ikinci komut baytına işaretli ofset rel eklenerek hesaplanan adrese "kısa" koşulsuz bir atlamaya izin verir.

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 adresli komut 4 de kullanılabilir.
Bu durumda, A'nın içeriği işaretsiz tamsayı olarak yorumlanır.

Boş 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 komutları

(Tablo 7.3.15).

JZ ve JNZ komutları yardımıyla, akümülatörün içeriği sırasıyla sıfıra eşit veya sıfıra eşit değilse bir atlama gerçekleştirilir.
Atlama adresi, 2 (bayt cinsinden komut uzunluğu) eklendikten sonra PC komut sayacının içeriğine göreli işaret ofseti rel eklenerek hesaplanır.

Pilin içeriği değişmeden kalır.
Komutlar bayrakları etkilemez.

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

Atlama adresi, önceden 3 artan PC sayacının içeriğiyle ofset rel eklenerek hesaplanır.
Aksi takdirde, bir sonraki 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 (7) komutları, program döngülerini düzenlemek için tasarlanmıştır.

Rn kaydı veya doğrudan adreslenebilir konum, döngü tekrar sayacıdır ve rel ofseti (ikinci ve üçüncü komut baytlarında), döngünün başlangıcına yapılan atlamanın 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 çevrim başlangıcına geçiş yapılır.
Aksi takdirde, aşağıdaki komut yürütülür.

Atlama adresi, daha önce komutun uzunluğuyla (2 veya 3 ile) artırılan sayaç 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, bu komutların yığındaki ana programa dönüş adresini (sayacın içeriği) saklamalarıdır.
RET alt yordamından gelen dönüş komutu, program sayacının içeriğinin değerini yığından geri yükler ve RETI komutu ayrıca hizmet seviyesindeki kesintileri etkinleştirir.

Göreceli adresleme, yeri değiştirilebilen program modüllerini destekleyen kontrol aktarım komutlarında yaygın olarak kullanılır.
8 bitlik işaretli bir ofset bağı, PC sayacının mevcut konumundan her iki yönde ± 127 bayt dallanma sağlayan göreli bir adres görevi görür.

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

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

Tüm bu adresleme türleri yalnızca şube işlemine uygulanabilir ve çağrı işlemi için yalnızca doğrudan addr16 ve dahili adresleme yöntemlerine izin verilir.
Tüm koşullu işlemlerde yalnızca göreli adresleme kullanılabilir.

MK51 bir kesme talebini algıladığında, dönüş adresinin yığında depolanmasını otomatik olarak sağlayan 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 kesintisini etkinleştirme işlemini içeren RETI kesmesinden geri dönme komutu kullanılır.
JZ, JNZ operasyonları ayrıca standart koşullu operasyonlar MK51'e aittir.
Ancak, CJNE'nin yeni bir "Karşılaştır ve Git" işlemi var.

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

Aslında, CJNE komutu, yüksek seviyeli dil operatörü CASE'nin bir üyesidir.

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 atlamaları uygulamak için tasarlanmış 5 komuttan oluşur (Tablo 7.3.17).

Talimatlar, 20h adresli dahili RAM'in altı ila on bir 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 olarak vurgulanmıştır).

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

MOV (1,2) komutları gönderi Dahili RAM'in doğrudan adreslenebilir bir bit hücresinden flip-flop C'ye veya tam tersi bitler.
Sırasıyla CRL (3, 4), SETB (5, 6) komutları çöplük sıfıra veya kurmak birine C bayrağını veya belirtilen biti taşır.
CPL, ANL, ORL (7-12) komutları yardımıyla ters çevirme, toplama ve çarpma mantıksal işlemleri gerçekleştirilir.

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

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

Intel, adını bu ailenin ilk temsilcisinden alan MCS-51 ailesi mimarisinin atasıdır - 1980 yılında n-MOS teknolojisine dayalı olarak piyasaya sürülen 8051 mikrodenetleyici. Başarılı bir çevresel aygıt seti, esnek bir harici veya dahili program belleği seçimi ve makul bir fiyat, bu mikro denetleyicinin pazarda başarılı olmasını sağlamıştır. Teknoloji açısından 8051 mikrodenetleyici, zamanı için çok karmaşık bir üründü - kristalde, 16 bit 8086 mikroişlemcideki transistör sayısından 4 kat daha fazla olan 128 bin transistör kullanıldı. MCS-51 ailesi bugüne kadar.

Ailenin temel mimarisinin ana unsurları (8051 mikrodenetleyicinin mimarisi):

8-bit ALU;

4 banka, her birinde 8;

Dahili (yerleşik) program belleği 4 Kbayt, ROM veya EPROM tipine (8751);

Dahili (yerleşik) veri belleği 128 bayt;

21 özel fonksiyon kaydı;

Boole işlemcisi;

İki adet 16-bit Zamanlayıcı / Sayaç

Seri bağlantı noktası denetleyicisi (UART);

İki öncelik düzeyine sahip kesinti denetleyicisi;

İkisi harici programa ve veri belleğine erişim için adres/veri yolu olarak kullanılan dört adet 8-bit G/Ç bağlantı noktası;

Dahili saat üreteci.

Ardından, üçüncü bir zamanlayıcı ve buna bağlı olarak genişletilmiş bir kesme denetleyicisi tarafından tanıtılan artan miktarda yerleşik program ve veri belleği ile ayırt edilen 8052 mikrodenetleyici serbest bırakıldı.

MCS-51'in geliştirilmesindeki bir sonraki temel adım, üretim teknolojisinin CMOS'a aktarılmasıydı (8xC51 modifikasyonu). Bu, kristalin güç tüketiminde keskin bir düşüş sağlayan Idl (boşta) ve Power Down (düşük tüketim) modlarının uygulanmasını mümkün kıldı ve örneğin, uçucu uygulamalarda mikrodenetleyici kullanımının yolunu açtı. bağımsız pille çalışan cihazlar.

Ve Intel tarafından MK 8051'in geliştirilmesindeki son önemli aşama, kısaca genellikle 8xC51Fx ve 8xC51Rx olarak adlandırılan 8xC51FA / FB / FC ve 8xC51RA / RB / RC mikro denetleyicilerinin piyasaya sürülmesiydi. Bu kristal grubunun ana ayırt edici özelliği, özel bir zamanlayıcı / sayıcıya (PCA) sahip olmalarıdır. Ek olarak, 8xC51Rx mikro denetleyiciler ek olarak bir watchdog zamanlayıcı (WDT) içerir. PCA'nın mimarisine ve işlevselliğine daha yakından bakalım.

PCA şunları içerir:

16 bit zamanlayıcı / sayaç;

Her biri mikrodenetleyicinin G / Ç bağlantı noktasının kendi hattına bağlı beş adet 16 bit örnekleme ve karşılaştırma modülü.

Zamanlayıcı / sayaç, 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 programlanabilir zamanlayıcı;

16 bit yüksek hızlı çıkış aygıtı;

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, genel verimi artırmayı, ölçümlerin ve sinyal işlemenin doğruluğunu iyileştirmeyi ve özellikle gerçek zamanlı sistemler için önemli olan mikro denetleyicinin dış olaylara tepki süresini azaltmayı mümkün kılar. 8xC51Fx'te (8xC51Rx) uygulanan PCA'nın öyle olduğu ortaya çıktı

atama

Maks. frekans (MHz)

ROM / EPROM (bayt)

sayaçlar

bu mikrodenetleyicilerin mimarisinin endüstriyel bir standart haline gelmesi ve PCA'nın kendisi MK 8051'in çeşitli modifikasyonlarında tekrar tekrar üretildiği için şanslı.

Intel tarafından üretilen bir dizi MCS-51 mikro denetleyicisinin bazı özellikleri Tablo 1.1'de gösterilmektedir.

MCS-51 mimarisinin ilk darboğazları, 8 bit pil tabanlı ALU'lar ve nispeten yavaş komut yürütmeydi (en hızlı komutlar 12

Tablo 1.1

giriş çıkış

ADC, girişler x bit

çevre,

özellikler

Çukur. (V)

Alçak gerilim seçeneği

4 seviye IRQ, çıkış saati

4 seviye IRQ, çıkış saati

Alçak gerilim versiyonu 8xC51Fx

4 seviye IRQ, çıkış saati

4 seviye IRQ, çıkış saati

4 seviye IRQ, çıkış saati

periyot saat frekansı (saat frekansı MK)). Bu, artan performans ve karmaşık hesaplamalar (16- ve 32-bit) gerektiren uygulamalarda ailenin mikro denetleyicilerinin kullanımını sınırladı. Acil bir konu, MCS-51 mimarisinin temel modernizasyonuydu. Modernizasyon sorunu, 90'ların başında, MCS-51 ailesinin yazılım ve donanımı alanındaki birçok gelişmenin, tasarımın ana görevlerinden biri ile bağlantılı olarak zaten yaratılmış olması nedeniyle karmaşıktı. yeni mimari, MCS -51'e dayalı gelişmelerle donanım ve yazılım uyumluluğunun uygulanmasıydı.

Bu sorunu çözmek için Intel ve Philips'ten ortak bir uzman grubu oluşturuldu, ancak daha sonra bu iki şirketin yolları ayrı yollara gitti. Sonuç olarak, 1995'te önemli ölçüde farklı iki aile ortaya çıktı: Intel için MCS-251/151 ve Philips için MCS-51XA (bkz. alt bölüm 1.2).

MCS-251 mimarisinin ana özellikleri:

16 MB belleğe kadar adresleme için 24 bit doğrusal adres alanı;

Kayıtlara bayt, kelime ve çift kelime olarak erişilmesine izin veren bir kayıt mimarisi;

Harici program belleğinden talimatların alınmasını hızlandırmak için sayfa adresleme modu;

Talimat sırası;

16 bitlik aritmetik ve mantıksal işlemleri içeren genişletilmiş komut seti;

Yığının genişletilmiş adres alanı (64 KB'ye kadar);

2 saat döngüsünde en hızlı komutun yürütülmesi.

MCS-251 komut seti iki komut seti içerir - ilk set, MCS-51 komut setinin bir kopyasıdır ve ikincisi, MCS-251 mimarisinden yararlanan genişletilmiş komutlardan oluşur. Mikrodenetleyiciyi kullanmadan önce yapılandırılmalıdır, yani. programlayıcının yardımıyla, güç verildikten sonra komut setlerinden hangisinin aktif olacağını belirleyen konfigürasyon bitlerini "yakın". İlk talimat setini kurarsanız, bu durumda MCS-251 ailesi, ikili kod düzeyinde MCS-51 ile uyumlu olacaktır. Bu moda İkili Mod denir. Başlangıçta bir dizi genişletilmiş talimat (Kaynak Modu) kurarsanız, MCS-51 için yazılan programların MCS-251 için çapraz araçlar üzerinde yeniden derlenmesi gerekecektir. Kaynak Modu, MCS-251 mimarisinden en iyi şekilde yararlanmanıza ve en yüksek performansı elde etmenize olanak tanır.

MCS-51'in mekanik bir yedeği olarak MCS-251 mikro denetleyicilerinin kullanımına yönelik kullanıcılar için Intel, halihazırda İkili Mod durumunda programlanmış MCS-151 mikro denetleyicileri üretir.

Bir dizi MCS-251/151 mikro denetleyicisinin bazı özellikleri Tablo 1.1'de gösterilmiştir.

Şu anda Pentium işlemci pazarını hedefleyen Intel, MCS-51 kristallerinin üretimini aşamalı olarak durduruyor. Genel olarak, belirli bir geliştirici için, diğer şirketlerin ürünleri arasında tam muadillerine sahip olmayan 8xC51GB ve 80C152Jx mikro denetleyicilerini kullanmadığı sürece bu farkedilmeyebilir. MCS-51 ailesinin diğer tüm mikrodenetleyicilerine gelince, hepsi başka şirketler tarafından defalarca kopyalandı.

Kesinti sistem durumu, RETI komutları ve IE ve IP kayıtlarına atıfta bulunan herhangi bir komut haricinde, S5P2 aşamasındaki her makine döngüsünün sonunda sorgulanır. Kesinti talebinin sabitlenmesinden kesintiye hizmet verilmesine kadar, talebin aşamasına ve talebin alındığı komutun makine çevrimi sayısına bağlı olarak, fOSC frekansının 38 ila 86 periyodunu alır.

Kesinti donanımda uygulandığında, program sayacının mevcut durumunun yığında saklanmasını (dönüş adresinin saklanması) ve ilgili servis prosedürünün başlangıç ​​adresi addr16'ya taşınmasını sağlayan LCALL addr16 komutu yürütülür. Her kesme isteği kaynağının kendi

başlangıç ​​adresi (kesme vektörü):

Harici kesme INT0.

Kesinti zamanlayıcısı / sayıcı TC0.

Harici kesme INT1.

Kesinti zamanlayıcısı / sayıcı TC1.

Seri bağlantı noktası kesintisi.

2.7. MCS-51 Ailesi Adresleme Yöntemleri ve Komuta Sistemi

MCS-51 ailesinin komut sistemi, evrensel P0 ... P3 portları ve birincil bilgi işleme yoluyla esnek veri giriş-çıkışını düzenlemeye odaklanmıştır. Bit içeren işlemlere ve değerlerine göre kontrol aktarımına özel önem verilir. Bu tür işlemleri gerçekleştiren komutlar büyük bir grup oluşturur ve karşılık gelen donanımla birlikte MCS-51 mimarisinde "Boole işlemcisi" olarak adlandırılır.

Komut seti, programcıya, tam bir adresleme yöntemleri seti ve yazılımda mevcut donanım kaynakları ile çoğu işlemi kullanma yeteneği sağlar.

2.7.1. adresleme yöntemleri

Her talimat işlemciye gerçekleştirilecek işlemi ve işlenenlere erişme yöntemlerini söyler. Komut kodunun belirli bir işlevsel amacı olan birkaç alanı vardır. Herhangi bir komutun en önemli alanları, komutun eylemini belirleyen işlem kodu (CPC) ve adres kısmıdır. Adres bölümünün alanları, işlenenlerin adresleri ve işlemin sonucu ve bazı durumlarda bir sonraki komutun adresi hakkında bilgi içerir.

Adres, işlenenin bulunduğu veya yazıldığı bellek hücresinin numarasını gösteriyorsa, doğrudan adres olarak adlandırılır.

Adresleme yöntemleri, işlenenlere erişmek için bir mekanizmalar topluluğudur. Bazıları basittir, kompakt bir talimat formatına ve işlenene hızlı erişime yol açar, ancak sınırlı miktarda kullanılabilir kaynağa sahiptir. Diğerleri, sistemde mevcut olan tüm kaynaklarla çalışmanıza izin verir, ancak komutun uzun olduğu ortaya çıkar.

giriş ve yürütme zaman alıcıdır. Her komut kümesindeki adresleme yöntemleri kümesi, çözülecek görev kümesine dayalı olarak mimarlar tarafından seçilen bilinen adresleme mekanizmalarının bir uzlaşma bileşimidir.

Aşağıdakiler, MCS-51 ailesi komut setinde kullanılan ana adresleme yöntemleridir.

örtük adresleme... Komut, işleme katılan işlenenin adresi veya işlemin sonucunun yerleştirildiği adres hakkında açık talimatlar içermez, ancak bu adres ima edilir. Komutlarda, akümülatör çoğu zaman örtük olarak bir işlemin sonucunun alıcısı olarak ele alınır. Örneğin, ADD A, R1 komutu ile mevcut veri bankasının akümülatör (A) ve register R1 içeriğinin eklenmesi sonucu örtük olarak adreslenebilir aküye yazılır. Belirtilen komutun tamamı bellekte bir bayt kaplarken, yalnızca akümülatörün adresi (SFR alanının 8Eh'si) bir bayt içerir.

Doğrudan adresleme... Komut adresi alanı şunları içerir:

Adres, işlenenin adresi değil, işlenenin kendisidir. Doğrudan adresleme, numaranın önündeki # özel karakteriyle belirtilir. Örneğin MOV A, # 15h komutu ile onaltılık sayı 15 (komutun ikinci baytı) akümülatöre yüklenir. Komut sisteminde, doğrudan adresleme #veri olarak atanır, burada veri bir sayıdır

(veri = 00h ... FFh).

Doğrudan adresleme... Komut adresi alanı, işlenenin bulunduğu veya yazıldığı veri bellek hücresinin doğrudan adresini belirtir. Örneğin MOV A, 15h komutu ile 15h adresli DSEG hücresinin içeriği akümülatöre yüklenir. Akümülatör örtük iken, bellek hücresi doğrudan adreslenebilir. Adreslenen işlenenin konumuna bağlı olarak, doğrudan adresleme doğrudan kayıt ve mutlak olarak ikiye ayrılır.

Doğrudan kayıt adresleme... Komut adresi alanı, mevcut kayıt bankasının kaydının doğrudan adresini içerir. Her bankada sekiz kayıt vardır ve bunları adreslemek için üç bitlik bir yönlendirme adresi gerekir. Komutların anımsatıcılarında, adreslenebilir kayıt Rn olarak adlandırılır, burada n = 0 ... 7 Tüm komut alanları bir bayta sığar. Buna kısa adresleme denir. Örneğin, MOV R4, R1.

Doğrudan mutlak adresleme herhangi bir DSEG hücresine ve SFR alanına başvurmanıza izin verir. Bu durumda doğrudan adres bir bayt ve komut - iki bayt alır. Komut sisteminde, doğrudan adres baytı doğrudan kelimesiyle belirtilir (doğrudan = 00h… FFh). Örneğin, MOV 80h, R2 (veya MOV P0, R2) komutu, mevcut veri bankasının R2 kaydının içeriğini P0 portuna (SFR alanının 80h konumu) yükler. Her iki işlenen de doğrudan mutlak adreslemeye sahipse, talimat üç bayt olur (Örneğin, MOV 80h, 15h).

dolaylı adresleme... Adres alanı, işlenenin doğrudan adresinin bulunduğu bellek hücresinin adresini içerir. Komut sisteminde @ özel sembolü dolaylı adreslemeyi gösterir. Mülk

her kayıt bankasının R0 ve R1 kayıtları (@Ri, i = 0,1) doğrudan adrese sahiptir. Örneğin, mevcut kayıt bankasının R1 kaydının içeriği 15h ise, MOV A, @ R1 komutu yukarıdaki MOV A, 15h komutuyla aynı eylemi gerçekleştirecektir - DSEG bellek hücresinin içeriğini yükleyecektir. adres 15h ile akümülatöre. Bununla birlikte, MOV A, @ R1 komutu tek bayttır, ancak en önemlisi, R1 kaydının içeriğini değiştirerek adresi programlı olarak değiştirmek mümkündür.

göreli adresleme... Göreceli adresleme ile doğrudan adres, komut adresi alanı ile temel adres eklenerek oluşturulur. Program sayacının içeriği, temel adres olarak kullanılır ve komut adresi alanı, sekiz bitlik bir ofset rel'dir (göreli). Rel numarası, komut tarafından ikiye tümleyende temsil edilen işaretli bir tamsayı olarak yorumlanır. Sunum aralığı (-128 ... + 127)'dir. Rel numarasını belirlerken, program sayacının yürütülecek bir sonraki komutu işaret ettiğini unutmayın. Göreceli adresleme, yeri değiştirilebilen program modülleri oluşturmanıza olanak tanıyan kontrol aktarım komutlarında yaygın olarak kullanılır. Göreceli adreslemeli kontrol transfer komutları, PC program sayacının mevcut konumuna göre her iki yönde (-128 ... + 127) bayt ile dallanmanın düzenlenmesine izin verir.

Montaj dili programlarında, ofset alanında atlanacak etiketi belirtebilirsiniz. Çevirme sonucunda derleyici ofset değerini (-128 ... + 127) aşmıyorsa hesaplayacaktır. Aksi takdirde, bir hata mesajı görüntülenecektir.

Temel adresleme bir tür göreli adreslemeyi temsil eder. Bu durumda doğrudan adres, komutta belirtilen adresin, taban adresini saklayan taban kaydının içeriğiyle eklenmesiyle oluşturulur. MCS-51 ailesindeki baz kaydının işlevi, DPTR veri işaretleyici kaydı veya PC program sayacıdır. Bu tür adresleme, özellikle tabloları ve veri dizilerini işlerken kullanışlıdır. MOVC A, @ A + DPTR ve MOVC A, @ A + PC komutlarında, 16 bitlik yönlendirme adresi, DPTR ve A veya PC ve A'nın içeriğinin toplamı olarak oluşturulur.

Sayfa adresleme... Sayfalama kullanıldığında, bellek eşit uzunlukta bir dizi sayfaya bölünür. Sayfalar, ayrı bir sayfa kaydı tarafından adreslenir ve sayfa içindeki bellek hücreleri, komutta yer alan adres tarafından adreslenir. Doğrudan adres, sayfaların adresini ve sayfa içindeki bellek hücresinin adresini birleştirerek (ekleyerek) oluşturulur. MOVX A, @ Ri komutunda, P2 portu (adres yüksek baytı) sayfa kaydının işlevini yerine getirir ve Ri kaydının içeriği (adres düşük baytı) sayfa içindeki adresi ayarlar. Bu durumda bellek, her birinde 256 hücreden oluşan 256 sayfaya bölünmüştür.

yığın adresleme Adreslenemeyen komutlarda kullanılır ve LIFO (L ast Input - First Output) ilkesi - "son giren ilk çıkar" ile çalışan, otomatik artan ve otomatik azalan adresleme yöntemlerinin bir kombinasyonudur. Yığın, DSEG'de bulunur ve artan adres yönünde büyür. Yığının üst kısmının adresi, SP yığın işaretçisinde bulunur. Yığına bir bayt yazıldığında, önce SP içeriği artırılır ve ardından bu adrese bir yazma yapılır. Yığından bir bayt okurken, önce SP'nin gösterdiği adresi okur ve ardından SP'yi azaltır. Bir yığın kullanırken, yığının derinliğinin (yığın tarafından işgal edilen maksimum bellek hücresi sayısı) donanım tarafından kontrol edilmediği akılda tutulmalıdır. Yığındaki aşırı bir artışla, bunun için tasarlanmamış bellek hücreleri, içlerindeki bilgi kaybıyla meşgul olabilir. Donanım yığını, kesmeye hizmet verirken dönüş adresini depolamak için kullanılır.

2.7.2. MCS-51 ailesi komut seti

Komut sistemi, Ek 2'nin A2.1 ... A2.6 tablolarında sunulmaktadır. Tablolar komutun adını, anımsatıcısını, ikili işlem kodunu, yürütülen komutun C, OV bayrakları üzerindeki etkisini gösterir. , AC ve P, komutun bayt (B) cinsinden uzunluğu ve makine çevrimlerinde (C) yürütme süresi ve ayrıca talimat tarafından gerçekleştirilen dönüşümün içeriği. Komutlardaki adres alanları için ayırıcı olarak virgül kullanılır. Okunabilirliği artırmak için, kullanılan derleyici bunları destekliyorsa virgülden sonra boşluk ekleyebilirsiniz.

Tüm komut seti 5 gruba ayrılabilir: veri transfer işlemleri, aritmetik işlemler, mantıksal işlemler, bit işlemleri ve kontrol transfer işlemleri.

Veri aktarım işlemleri için komut grubu(tablo A2.1) ile-

MOV (DSEG ve RSEG arasında veri aktarımı), MOVC (CSEG ve A arasında), MOVX (XSEG ve A arasında), PUSH ve POP yığın erişim komutlarını ve iki değişim komutunu XCH ve XCHD içerir. Pili alan tüm veri aktarım komutları, pil içeriğinin eşlik bayrağını P ayarlar ve PSW kaydını alan doğrudan adres komutları tüm bayrakları değiştirir. En kapsamlısı, dört adresleme yöntemini kullanan MOV komutudur: doğrudan kayıt (A, Rn, DPTR), doğrudan (doğrudan), dolaylı (@Ri), doğrudan (#data, # veri16). Komutun ikinci işleneni kaynak, ilki hedeftir. Hedefi belirtmek için üç adresleme yöntemi (doğrudan hariç) ve dördü de kaynağı belirtmek için vardır. Üç baytlık MOV, RSEG dahil olmak üzere herhangi iki bellek konumu (DSEG ve SFR) arasında doğrudan, doğrudan komut aktarımları. RSEG ile değiş tokuş için özel iki ve bir baytlık formatlar sağlanmıştır:

Özel MOV DPTR komutu, # data16, 16-bit DPTR işaretçisini data16 ile yükler.

MOVC talimatı, CSEG program belleğindeki bilgileri kontrol cihazının komut kaydına değil, işletim cihazının piline okumanıza izin verir. Komut iki adresleme yöntemi kullanır: DPTR'ye dayalı ve PC'ye göre. Her iki durumda da, işaretsiz tamsayı ofseti (dizin) akümülatörde depolanır. Pil ayrıca sonucun alıcısı olarak da hizmet eder. Komut, tablolar arasında hızlı kod dönüştürme gerçekleştirmenize olanak tanır.

MOVX komutu kullanılarak harici belleğe erişilir. Değişim, pil ve harici XSEG arasındaki baytlarla gerçekleştirilir. XSEG hücresi iki şekilde adreslenebilir: 16 bitlik DPTR işaretçisi aracılığıyla dolaylı olarak ve 8 bitlik Ri işaretçisi aracılığıyla dolaylı olarak çağrılır, i = 0,1. İkinci durumda, P2 kaydı sayfa kaydı olarak kullanılır.

Adressiz PUSH ve POP komutları veri aktarımı sağlar

DSEG, RSEG ve SFR arasında.

XCH değişim talimatı, iki yönlü bir bayt alışverişi sağlar ve XCHD talimatı, bayt işlenenlerinin en az anlamlı tetradlarını sağlar.

Aritmetik komut grubu(tablo A2.2) ortak

ADD ekleme, taşıma ADDC ile toplama, ödünç alma SUBB ile çıkarma, bir INC ve DEC ile artırma ve eksiltme, paketlenmiş format BCD toplama, MUL çarpma ve DIV bölme talimatlarını içerir. İşlemler işaretsiz tamsayılar üzerinde gerçekleştirilir. Toplama ve çıkarma işlemlerinde, akümülatör sonucun ilk işleneni ve alıcısıdır. İkinci işleneni tanımlamak için doğrudan kayıt, doğrudan mutlak, doğrudan ve dolaylı adresleme kullanılır. INC ve DEC işlemleri, bir akümülatöre, doğrudan adreslenebilir bir kayıt defterine veya doğrudan veya dolaylı olarak adreslenebilir bir bellek konumuna uygulanır. Ayrıca, INC işlemi, 16 bitlik DPTR işaretçi kaydının içeriğine uygulanır.

İşaretsiz tamsayı çarpma ve bölme işlemleri, akümülatörü ve B kaydını içerir. Çarpmada, A'nın 8 bitlik değeri B'nin 8 bitlik değeri ile çarpılır ve 16 bitlik sonuç BA çiftine yazılır. Bu durumda B kaydı ürünün üst kısmını saklar. Ürün 255'ten büyükse OV bayrağı ayarlanır. 8 bitlik bir A değeri 8 bitlik bir B değerine bölündüğünde, bölüm A'ya ve kalan B'ye yazılır. 0, OV taşma bayrağını ayarlar.

Akümülatör ondalık düzeltme komutu DA, ekleme komutundan sonra yer alır. Terimler BCD kodunda gösterilmelidir. Düzeltme standart bir şekilde gerçekleştirilir.

Mantıksal işlemler için komut grubu(tablo A2.3 ) üç tipik işlemi içerir: ANL - mantıksal VE, ORL - mantıksal VEYA, XRL - mantıksal hariç VEYA. İlk işlenenin kaynağı

ya akümülatör A ya da doğrudan adreslenebilir bellek hücresi hizmet vermektedir. İkinci işlenen, dört temel adresleme yönteminden biri tarafından belirlenir. Grup ayrıca şunları içerir: tek işlem akümülatörün içeriği üzerinde: CLR - clear, CPL - inversiyon ve ayrıca RL, RLC, RR ve RRC - sağa ve sola döngüsel ve genişletilmiş vardiya işlemleri. Bu aynı zamanda, bir baytın dört basamaklı döngüsel kayması olarak yorumlanabilen SWAP akümülatöründeki not defterlerinin değiştirilmesi işlemini de içerir.

Bit İşlemleri Komut Grubu(tablo A2.6) ortak

komutları SETB - biti 1'e ayarlama, CLR - biti 0'a sıfırlama, CPL - bit ters çevirme, ANL ve ORL - C bayrağının içeriğinin mantıksal VE ve mantıksal VEYA ve doğrudan adreslenmiş bir bit, MOV - bit aktarımı.

V bit işlemlerinde, C bayrağı bir boole akümülatörü görevi görür. İşlenenler, C bayrağının içeriği veya BSEG alanının doğrudan adreslenen bitidir. ANL ve ORL işlemleri, doğrudan adreslenebilir bir bitin (bit) içeriğini veya içeriğin inversiyonunu (/ bit) kullanabilir.

V bu grup ayrıca göreli ile koşullu dallanma için komutlar içerir. 8-bit ofset rel. Hem set (JB komutu) hem de temizlenmiş (JNB komutu) biti ile koşullu bir atlama gerçekleştirilebilir. Özellikle dikkat edilmesi gereken nokta, bit ayarlandığında dallanmayı uygulayan ve aynı zamanda biti 0'a temizleyen JBC komutudur.

Kontrol aktarımı komut grubu(tablo A2.4 ve A2.5) ile-

koşulsuz atlama komutlarını tutar AJMP, LJMP, SJMP, JMP, koşullu atlama JZ, JNZ, CJNE, ACALL, LCALL, geri RET, RETI ve koşullu atlama DJNZ ile değiştirin. Boş bir NOP komutu da dahildir.

V Göreceli adresleme, kontrol aktarım komutlarında yaygın olarak kullanılır ve yeri değiştirilebilen program modülleri oluşturmanıza olanak tanır. göreli adres 8 bitlik ofset rel, geçerli PC konumuna göre bir atlama (–128… +127) bayt sağlayan işaretli bir bayttır. 64K adres alanındaki herhangi bir noktaya atlamak için doğrudan addr16 veya dolaylı @ A + DPTR adresi kullanılabilir. İkinci durumda, A'nın içeriği işaretsiz tamsayı olarak yorumlanır. 2KB mevcut sayfadaki kısa doğrudan adresleme varyantı addr11, MCS-48 ailesi ile uyumluluk için tanıtıldı.

Tüm bu adresleme türleri atlama komutlarında kullanılır. Çağrı komutlarında yalnızca doğrudan addr16 ve sayfa içi addr11 adresleme yöntemleri kullanılır. Tüm koşullu komutlar yalnızca göreli adreslemeyi kullanır.

Mikrodenetleyici kesme talebini tanıdığında, dönüş adresinin yığında saklanmasını otomatik olarak sağlayan LCALL addr16 komutunu üretir. Program durum bilgisi (PSW kayıt içeriği) otomatik olarak kaydedilmez. nerede