Mikrodenetleyiciler MCS – 51: yazılım modeli, yapısı, komutları. Mikrodenetleyiciler MCS – 51. Blok diyagram, ALU, veri hafızası MCS 51 mikrodenetleyicileri tipinde bir mimariye sahiptir.

  • 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.

Şu anda, çeşitli firmalar hem Intel hem de diğer üreticiler tarafından bu ailenin birçok modifikasyonunu ve analogunu üretiyor, saat frekansı ve bellek kapasitesi on kat arttı ve artmaya devam ediyor. LSI'da yerleşik modül seti de tamamlanmaktadır; çok sayıda modern model, 12'ye kadar yerleşik yüksek hızlı ADC ile donatılmıştır ve şimdi daha fazla rakam olabilir. Ancak MCS51 ailesinin kalbinde, ilk örnekleri 1980'de piyasaya sürülen Intel'den BIS 8051, 80C51, 8751, 87C51, 8031, 80C31 bulunmaktadır.

MCS51 ailesinin mikrodenetleyicileri, yüksek kaliteli n-MOS teknolojisi (8XXX serisi, analog - Rusya ve Beyaz Rusya'da 1816 serisi) ve k-MOS teknolojisi (seri 8ХСХХ, analog - 1830 serisi) kullanılarak yapılır. 8'den sonraki ikinci karakter şu anlama gelir: 0 - çip üzerinde EPROM yok, 7 - UV silmeli 4K EPROM. Üçüncü sembol: 3 - ROM kristalleşecek, 5 - EPROM yoksa çip üzerinde bir maske ROM olacaktır.

Ve böylece 80S51 - bir çip üzerinde maskeli ROM'lu k-MOS teknolojisine göre LSI, bir çip üzerinde program belleği olmayan (ROM, EPROM) 8031 ​​- LSI n-MOS, yerleşik olan 8751 - LSI n-MOS (bir çip) ultraviyole silmeli EPROM. LSI 8751'i ayrıca ele alacağız, gerekirse diğer devrelerdeki farklılıklar hakkında çekinceler yaparak, ilk seri LSI için yayınlanan parametreleri vereceğiz. Gerekirse, tüm modern modifikasyonlar hakkında ek bilgileri şirket kılavuzlarında ve teknik belgelerde bulabilirsiniz.

A. Genel özellikler ve pin ataması

MCS51 ailesi, MK'nin beş modifikasyonuna (aynı temel özelliklere sahip) dayanmaktadır, aralarındaki ana fark program belleğinin uygulanması ve güç tüketimidir (bkz. Tablo 3.1). Mikrodenetleyici sekiz bittir, yani. sekiz bitlik kelimeleri işlemek için komutlara sahiptir, Harvard mimarisine sahiptir, ailenin temel örneklerinin saat frekansı 12 MHz'dir.

Tablo 3.1.

mikro devreler

Dahili program belleği, bayt

Program hafıza tipi

Dahili veri belleği, bayt

Saat frekansı, MHz

Tüketim akımı, mA

MK 8051 ve 80C51, bir kristalin üretimi sırasında 4096 bayt kapasiteli maske ile programlanabilir bir program belleği ROM'u içerir ve seri üretimde kullanılmak üzere tasarlanmıştır. MK 8751, ultraviyole silme özelliğine sahip 4096 bayt kapasiteli bir EPROM içerir ve sistem geliştirme aşamasında programların hatalarını ayıklarken, küçük gruplar halinde üretim yaparken veya yeniden gerektiren sistemler oluştururken uygundur.

periyodik ayar.

MK 8031 ​​​​ve 80C31, yerleşik program belleği içermez. Daha önce açıklanan değişiklikler gibi, 64 Kbyte'a kadar harici program belleği kullanabilirler ve çok daha büyük hacimli (bir çipte 4 Kbyte'tan) program belleği gerektiren sistemlerde etkin bir şekilde kullanılabilirler.

Ailenin her MC'si, harici IC RAM kullanımı yoluyla toplam RAM veri miktarını 64 Kbyte'a kadar genişletme olasılığı olan 128 bayt kapasiteli yerleşik veri belleği içerir.

    merkezi sekiz bit işlemci;

    4 KB program belleği (yalnızca 8751 ve 87C51);

    128 baytlık veri belleği;

    dört adet sekiz bit programlanabilir G / Ç bağlantı noktası;

    iki adet 16 bit çok modlu zamanlayıcı / sayaç;

    beş vektör ve iki yazılım kontrollü öncelik seviyesi ile otomatik vektör kesintileri sistemi;

    dört modda çalışabilen evrensel bir çift yönlü alıcı-verici içeren bir seri arabirim;

    saat üreteci.

MK komut sistemi, 1, 2 veya 3 bayt biçiminde 111 temel komut içerir. Mikrodenetleyicide şunlar bulunur:

    32 genel amaçlı kayıt RON, her biri R0 ... R7 adlarına sahip sekiz kayıttan oluşan dört banka olarak organize edilmiştir, bir veya başka bir bankanın seçimi, PSW program durum kaydındaki ilgili bitlerin ayarlanmasıyla program tarafından belirlenir;

    128 yazılım kontrollü bayrak (bit işlemci, aşağıya bakın);

    MK öğelerini kontrol eden bir dizi özel işlev kaydı. Mikrodenetleyicinin aşağıdaki çalışma modları vardır:

1). Genel sıfırlama. 2) Normal çalışma. 3) Düşük güç modu ve boş mod. 4). Varsa, yerleşik EPROM programlama modu.

Burada ilk iki çalışma moduna odaklanacağız, tüm modlarda MC'nin bileşimi ve çalışmasının ayrıntılı bir açıklaması Ek A1'de verilmiştir.

RON ve bit işlemci bölgesi, 0 ila 80h arasındaki adreslerle yerleşik RAM'in adres alanında bulunur.

Yerleşik rasgele erişim belleğinin adreslerinin üst bölgesinde özel işlevlerin kayıtları (SFR, Özel İşlev Kayıtları) vardır. Amaçları tabloda verilmiştir. 3.2.

Tablo 3.2.

atama

İsim

pil

B'yi kaydet

Program durum kaydı

yığın işaretçisi

Veri işaretçisi. 2 bayt:

En az önemli bayt

Yüksek bayt

Kesinti Önceliği Kaydı

Kesinti etkinleştirme kaydı

Zamanlayıcı / Sayaç Modu Kayıt

Zamanlayıcı / Sayaç Kontrol Kaydı

Zamanlayıcı / Sayaç 0. Yüksek Bayt

Zamanlayıcı / Sayaç 0. Düşük Bayt

Zamanlayıcı / Sayaç 1. Yüksek Bayt

Zamanlayıcı / Sayaç 1. Düşük Bayt

Seri bağlantı noktası kontrolü

Seri bağlantı noktası arabelleği

Tüketim yönetimi

* - kayıtlar, kabul etmek bit düzeyinde adresleme

Tablo 3.2'de gösterilen SFR yazmaçlarının işlevlerine hızlıca bir göz atalım.

pil ACC - pil kaydı. Çalışmak üzere tasarlanmış komutlar

piliniz varsa, anımsatıcı "A"yı kullanın, örneğin, HAREKET A, P2 ... "ACC" anımsatıcısı, örneğin, bit düzeyinde pil adreslemesi için kullanılır. Bu nedenle, A5M51 montajcısı kullanılırken akümülatörün beşinci bitinin sembolik adı aşağıdaki gibi olacaktır: ACC. 5. .

Kayıt olmak V ... Çarpma ve bölme işlemlerinde kullanılır. Diğer talimatlar için B kaydı, ek bir süper işlem kaydı olarak kabul edilebilir.

Kayıt olmak servet programlar PSW programın durumu hakkında bilgi içerir ve kısmen kullanıcı tarafından gerçekleştirilen işlemin sonucuna göre kısmen otomatik olarak kurulur. Kayıt bitlerinin tanımı ve amacı sırasıyla tablo 3.3 ve 3.4'te verilmiştir.

Tablo 3.3.

atama

Tablo 3.4.

atama

Bit ataması

Bit'e erişim

Bayrak taşımak. Bir dizi aritmetik ve mantıksal talimatın yürütülmesi sırasındaki değişiklikler.

Donanım veya yazılım

Ek taşıma bayrağı. Sonucun (D0-D3) en az anlamlı nibble oluşturulduğunda, bit 3'te taşıma veya ödünç alma belirtmek için toplama veya çıkarma talimatları sırasında donanım ayarlanır / temizlenir.

Donanım veya yazılım

Bayrak 0. Kullanıcı tanımlı bayrak.

programatik olarak

programatik olarak

İş kaydı banka işaretçisi

programatik olarak

Sıra 0 adresli (00H - 07H) Sıra 1 adresli (08H - 0FH) Sıra 2 adresli (10H - 17H) Sıra 3 adresli (18H - 1FH)

Taşma bayrağı. Bir taşma durumunu belirtmek için aritmetik talimatların yürütülmesi sırasında donanım ayarlanır veya temizlenir

Donanım veya yazılım

Kıyamamak. Kullanılabilecek bir okuma/yazma tetikleyicisi içerir

Parite biti. "1" durumundaki pil bitlerinin çift veya tek sayısını belirtmek için her talimat döngüsünde donanım temizlenir veya ayarlanır.

Donanım veya yazılım

Işaretçi yığın SP - PUSH ve CALL komutlarını yürütürken yığına veri yazmadan önce içeriği artırılan 8 bitlik kayıt. İlk sıfırlamada yığın işaretçisi 07H'ye ayarlanır ve veri RAM'indeki yığın alanı 08H adresinde başlar. Gerekirse yığın işaretçisini yeniden tanımlayarak yığın alanı, mikro denetleyicilerin dahili veri RAM'inde herhangi bir yere yerleştirilebilir.

Işaretçi veri DPTR yüksek bayt (DPH) ve düşük bayttan oluşur

(DPL). Harici belleğe erişirken 16 bitlik bir adres içerir. Kullanılabilir

16 bitlik bir kayıt veya iki bağımsız sekiz bitlik kayıt olarak yazılabilir.

bağlantı noktası0 - PortZ. P0, P1, P2, P3 özel fonksiyonlarının kayıtlarının ayrı bitleri bitlerdir - P0, P1, P2, P3 portlarının pinlerinin "mandalları".

Tampon tutarlı Liman SBUF iki ayrı kayıttır: verici tamponu ve alıcı tamponu. SBUF'a veri yazıldığında, verici arabelleğine girer ve SBUF'a bir bayt yazmak, otomatik olarak seri port üzerinden iletimini başlatır. SBUF'tan veri okunduğunda, alıcı tamponundan alınır.

Kayıtlar zamanlayıcı. (TH0, TL0) ve (TH1, TL1) çiftlerini 16- formuna kaydedin

sırasıyla zamanlayıcı / sayaç 0 ve zamanlayıcı / sayaç 1 için bitsel sayma kayıtları.

Kayıtlar yönetmek. IP, IE, TMOD, TCON, SCON ve PCON özel fonksiyonlarının kayıtları, kesme sisteminin kontrol bitlerini ve durum bitlerini, zamanlayıcıyı içerir

metre/sayaç ve seri port. Aşağıda ayrıntılı olarak tartışılacaktır.

RxD TxD INT0 INT1 T0 T1 WR

P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

RST BQ2 BQ 1 AD

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7

P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7

Çalışırken, MK şunları sağlar:

    ekleme komutlarını yürütmek için minimum süre 1 μs'dir;

    minimum 4 μs yürütme süresi ile donanım çarpma ve bölme.

MK, bir kuvars, LC zinciri veya bir harici osilatör kullanarak dahili osilatörün frekansını ayarlama yeteneği sağlar.

Genişletilmiş komut sistemi, bayt ve bit bazında adresleme, ikili ve ikili-ondalık aritmetik, taşma göstergesi ve çift/tek parite ve mantıksal bir işlemci uygulama imkanı sağlar.

MCS51 ailesinin mimarisinin en önemli ve ayırt edici özelliği, ALU'nun 8 bitlik veri türleri üzerinde işlem yapmanın yanı sıra tek bitlik verileri de manipüle edebilmesidir. Yazılımla erişilebilen bireysel bitler, tamamlayıcıları tarafından ayarlanabilir, temizlenebilir veya değiştirilebilir, gönderilebilir, kontrol edilebilir ve

Şekil 3.2. Dış sonuçlar

mikrodenetleyici

mantıksal hesaplamada kullanılır. Basit veri türleri için destek (mevcut

kelime uzunluğunu artırma eğilimi) ilk bakışta geriye doğru bir adım gibi görünebilir, bu kalite MCS51 mikro denetleyici ailesini özellikle denetleyici kullanan uygulamalar için uygun hale getirir. İkincisinin algoritmaları, kendi yollarıyla, standart mikroişlemciler kullanılarak uygulanması zor olan giriş ve çıkış Boole değişkenlerinin varlığını varsayar. Bu özelliklerin tümü topluca MCS51 Boole işlemci ailesi olarak adlandırılır. Böylesine güçlü bir ALU ile MCS51 talimat ailesi, gerçek zamanlı kontrol uygulamaları ve veri yoğun algoritmalar için eşit derecede uygundur.

Mikrodenetleyicinin şematik diyagramı Şekil 1'de gösterilmektedir. 3.2. Temel versiyonda, 40 pinli bir DIP paketinde paketlenmiştir. Sonuçların amacını ele alalım.

Güç pimleri ile başlayalım «0 V" ve "5 V" , bunun için ana yemeği alır. Tüketim akımı tabloda verilmiştir. 3.1.

Çıktı "RST" - mikrodenetleyicinin sıfırlanması. Bu pime aktif bir yüksek seviye uygulandığında, mod yaygın damping ve MK aşağıdaki eylemleri gerçekleştirir:

PC komut sayacını ve P0-P3 bağlantı noktası mandalları, SP yığın işaretçisi ve SBUF kaydı dışındaki tüm özel işlev kayıtlarını sıfıra ayarlar;

    yığın işaretçisi 07H'ye ayarlanır;

    tüm kesme kaynaklarını, zamanlayıcı sayaçlarını ve seriyi devre dışı bırakır

    BANK 0 RAM'i seçer, P0-P3 portlarını veri almak için hazırlar ve

ALE ve PME pinlerini harici senkronizasyon için girişler olarak ayırır;

      PCON, IP ve IE özel fonksiyon kayıtlarında, yedek bitler rastgele dağıtılır ve diğer tüm bitler sıfıra ayarlanır;

      SBUF kaydı rastgele değerlere ayarlanmıştır.

      P0-P3 portlarının mandallarını "1" olarak ayarlar.

Sıfırlamadan sonra mikrodenetleyici kayıtlarının durumları Tablo 3.5'te gösterilmiştir.

Tablo 3.5.

Bilgi

Belirsiz

k-MOS için 0ХХХ0000В n-MOS için 0XXXXXXXB

RST pininin ayrıca alternatif bir işlevi vardır. Bu sayede, ana bellek çıkarıldığında mikrodenetleyicinin RAM'inin içeriğini değişmeden tutmak için yedek güç sağlanır.

sonuçlar BQ1, BQ2 MK'nin saat frekansını belirleyen bir kuvars rezonatörü bağlamak için tasarlanmıştır.

Çıktı EA` (E harici A elbise harici adres) - bu çıkışa aktif bir düşük seviye uygulandığında, harici program belleğinden kontrol kodlarını okuma modunu etkinleştirmek için tasarlanmıştır. Pimin alternatif bir amacı (fonksiyonu) vardır. Programlama modunda EPROM'u programlama voltajı ile beslenir.

Çıktı PME (P program m emory E mümkün izin hafıza programlar) - program belleğinden okuma döngüsünü kontrol etmek için tasarlanmıştır ve her makine döngüsünde MC tarafından otomatik olarak etkinleştirilir.

Çıktı bira (A elbise L uzunluk E mümkün izin genç adresleri) adresin alt kısmının çıktısını P0 portunda çakar. Çıkış, EPROM'u programlarken, ona bir flaş darbesi verilirken de kullanılır.

MK dört grup bağlantı noktası içerir: P0, P1, P2 ve P3. Bunlar mikrodenetleyicinin kalan 40 pinidir. Bu portlar bit-bit G/Ç bilgilerine hizmet edebilir, ancak bunun dışında her birinin kendi uzmanlığı vardır. Bağlantı noktasının genelleştirilmiş fonksiyonel diyagramı Şekil 2'de gösterilmektedir. 3.3. Bağlantı noktası, pime bağlı çıkış FET anahtarlarını, işlev anahtarını, D-flip-flop üzerindeki mandalı ve kontrol mantığını içerir. Dahili bus MK üzerindeki mandal bir veya sıfır olarak yazılabilir. Bu bilgi, fonksiyon anahtarından çıkış tuşlarına ve MK çıkışına gider. Bir durumunda, hem N hem de N1 transistörleri kapalıdır, ancak N2 açıktır. Sıfır durumunda, N açılır

Xia ve N2 kapanır. Bağlantı noktası, uzmanlaştığı alternatif işlevi yerine getirdiği anda, pin durumu serbest bırakılır. Mikrodenetleyici, harici bir sinyalle ayarlanan bağlantı noktası mandalının durumunu ve çıkışının durumunu ayrı ayrı okuyabilir. Bunun için montajcı MK'da ilgili satırları etkinleştiren özel komutlar vardır. Pin durumunu okumak için ilgili port mandalı

önceden kaydedilmiş olmak

Dahili

mandal kontrolü

fonksiyon seçici

Vcc

Hafta sonları

birim. Bu hattın bağlı olduğu "AND" hücresinin çıkışında "okuma mandalı" satırı etkinleştirildiğinde,

MK D Q'yu yorar

Mandal yazma C Q

mandalı okumak

bağlantı noktası pimi

MC'nin dahili veriyoluna sağlanan mandalın durumu, şu durumlarda etkinleştirilir:

"Çıktıyı oku" - bağlantı noktasının harici çıkışının durumu.

Liman P0 - evrensel çift yönlü bağlantı noktası

giriş çıkış. Bu limanın ötesinde

harici adres otobüslerini düzenleme işlevi ve

Pirinç. 3.3. Mikrodenetleyici bağlantı noktasının işlevsel şeması

program belleğini ve veri belleğini genişletmek için veriler

mikrodenetleyici. Harici program belleğine erişim olduğunda veya harici veri belleğine erişim komutu yürütüldüğünde, adresin düşük sıralı kısmı (A0 ... A7), ALE pininde yüksek kapılı olan port pinlerinde ayarlanır. . Ardından, veri belleğine yazarken, MC'nin dahili veri yolundan kaydedilen bilgiler P0 portunun pinlerine beslenir. Okuma işlemlerinde ise tam tersine port pinlerinden gelen bilgi dahili bus'a gider. P0 bağlantı noktasının bir özelliği, çıkışa güç sağlayan bir "çekme" transistör N2'nin olmamasıdır. Ünite portunun mandalına yazmak, onu normal veri yolu çalışması için gerekli olan yüksek empedans durumuna getirir. Çıkış üzerinden herhangi bir harici cihaza güç verilmesi gerekiyorsa, güç kaynağı devrelerinden port çıkışına harici dirençler sağlamalısınız.

Liman Р1 - alternatif fonksiyonlara sahip olmayan evrensel çift yönlü G / Ç bağlantı noktası.

Liman P2 - harici belleğe erişirken adresin kıdemli bölümünün (A8 ... A15) verilmesini gerçekleştiren alternatif bir işlev olarak evrensel bir çift yönlü G / Ç bağlantı noktası.

Liman P3 - her bir biti çeşitli alternatif işlevlerin uygulanmasını sağlayan evrensel çift yönlü giriş-çıkış bağlantı noktası. Bu durumda, port pin mandallarına bir tane yazıldığında sadece alternatif fonksiyonlar uygulanır, aksi takdirde alternatif fonksiyonların yürütülmesi engellenir. Bunları her bit için ayrı ayrı listeleyelim:

P3.0 RxD (r e e x dahili NS yedi, harici verileri oku) - yerleşik seri alıcı-vericinin girişi.

P3.1 TxD (T e tipi x dahili NS yedi, harici veri ilet) - yerleşik seri alıcı-vericinin çıkışı.

P3.2 INT0` (INT hata, kesinti) - harici kesme girişi 0.

P3.3 INT1` - harici kesme girişi 1.

P3.4 C / T0 - sıfır yerleşik zamanlayıcı / sayıcı girişi.

P3.5 C / T1 - ilk yerleşik zamanlayıcı / sayacın girişi.

P3.6 WR` (W rite, write) - veri belleğindeki yazma döngüsünün çıktısını kontrol eder.

P3.7 RD` (r ead, read) - veri belleğinden okuma döngüsünün çıktı kontrolü.

P1, P2 ve P3 bağlantı noktasının pinleri bir ünitede yaklaşık 0,2 mA akım ve sıfırda 3 mA akım verme yeteneğine sahiptir, P0 bağlantı noktasının pimleri daha güçlüdür ve birim başına yaklaşık 0,8 mA akım verebilir ve sıfırda 5 mA akım alınması. Mikrodenetleyici pinlerinin kullanım amacı hakkında kısa bilgi tablo 3.6'da verilmiştir.

Tablo 3.6.

atama

Pin ataması

8 bit çift yönlü bağlantı noktası P1. Dahili ROM'u (EPROM) kontrol ederken adres girişi A0-A7

Giriş çıkış

Genel sıfırlama sinyali. Harici bir kaynaktan yedek RAM gücünün çıkışı (1816 için)

Ek işlevlere sahip 8 bit çift yönlü P3 bağlantı noktası

Giriş çıkış

Alıcı Seri Verileri - RxD

Verici Seri Verileri - TxD

Harici kesme girişi 0- INT0`

Harici kesme girişi 1-INT1`

Zamanlayıcı / Sayaç 0 girişi: - T0

Zamanlayıcı / Sayaç 1 Girişi: - T1

Harici veri belleğine yazarken flaş sinyali çıkışı: - WR`

Harici veri belleğinden okurken flaş sinyali çıkışı - RD`

Bir kuvars rezonatörünün bağlanması için yol açar.

çıkış girişi

Genel sonuç

8 bit çift yönlü P2 bağlantı noktası. Harici bellekle çalışma modunda A8-A15 çıkışını adresleyin. Dahili ROM kontrol modunda, P2.0 - P2.6 pinleri A8-A14 adresinin girişi olarak kullanılır. Sonuç P2.7 - ROM okuma izni.

Giriş çıkış

Program bellek çözünürlüğü

Adres kilitleme etkinleştirme çıkış sinyali. EPROM sinyalini programlarken: PROG

Giriş çıkış

Dahili bellekle çalışmanın engellenmesi. EPROM'u programlarken, UPR sinyali verilir

Giriş çıkış

8 bit çift yönlü P0 bağlantı noktası. Adres / veri yolu r harici bellek ile çalışır. Dahili ROM'u (EPROM) kontrol etme modunda veri çıkışı D7-D0.

Giriş çıkış

+ 5V voltaj kaynağından güç çıkışı

Mikrodenetleyicinin temeli (bkz. Şekil 1) 8-bit Aritmetik-Mantık Birimidir (ALU). MK bellek, Harvard mimarisine sahiptir, yani. mantıksal olarak bölünmüş: program belleğine - PP (dahili veya harici), 16 bitlik bir komut sayacı (SC) ve veri belleği tarafından adreslenir - dahili (Yerleşik veri belleği - RPD) 128 (veya 256) bayt ve ayrıca harici (Harici) veri belleği - VPD) 64 KB'ye kadar. Fiziksel olarak, program belleği ROM'da (salt okunur) ve veri belleği - RAM'de (veriler yazılabilir ve okunabilir) uygulanır.

Harici sinyallerin alınması ve iletilmesi, 4 adet sekiz bitlik P0..P3 portu üzerinden gerçekleştirilir. Harici program belleğine (EPM) veya veri belleğine (EPM) erişirken, P0 ve P2 portları çoğullanmış bir harici adres / veri yolu olarak kullanılır. P3 bağlantı noktası hatları da alternatif işlevleri yerine getirebilir (bkz. Tablo 1).

16 bitlik DPTR kaydı, Akümülatör dönüştürme komutunda VFD adresini veya Program Belleğinin temel adresini oluşturur. DPTR kaydı, işlenenleri depolamak için iki bağımsız 8 bitlik kayıt (DPL ve DPH) olarak da kullanılabilir.

8-bit dahili komut kaydı (RK) yürütülmekte olan komutun kodunu alır; bu kodun kodu, kontrol sinyalleri üreten kontrol devresi tarafından çözülür (bkz. Şekil 1).

Özel fonksiyonların kayıtlarına atıfta bulunarak - RSF (SFR - Şekil 1'de noktalı bir çizgi ile daire içine alınmıştır) yalnızca 128 (80h) ve daha fazla adres aralığında doğrudan bayt adresleme kullanımı ile mümkündür.


MCS-51 mikro denetleyicilerinin ilk modellerindeki yerleşik veri belleği (RPM) 128 baytlık bir hacme sahipti. RPD'nin en düşük 32 baytı aynı zamanda genel amaçlı kayıtlardır - RON (her biri 8 RON'luk 4 banka). Program, aktif bankanın 8 RON'undan birine başvurabilir. Aktif RON bankasının seçimi, işlemci durum kaydında - PSW'de iki bit programlanarak gerçekleştirilir.


Tablo 1 - MCS-51 pinlerinin amacı

Pin numarası atama Randevu
1..8 Р1 8 bit yarı çift yönlü giriş/çıkış bağlantı noktası
9 RST

Sıfırlama sinyali (aktif seviye - yüksek);

RST sinyali temizlenir: PC ve Özel İşlev Kayıtlarının (SFR'ler) çoğu, tüm kesintileri ve zamanlayıcı çalışmasını devre dışı bırakır; Sıra RON 0'ı seçer; P0_P3 portlarına "tümü" yazar ve onları giriş için hazırlar; yığın işaretçisine (SP) 07H kodunu yazar;

10..17

8 bit yarı çift yönlü giriş/çıkış bağlantı noktası; ilgili "1" kategorisine yazdıktan sonra - ek (alternatif) işlevler gerçekleştirir:

Seri port girişi - RxD;

Seri bağlantı noktası çıkışı - TxD;

Harici kesme girişi 0 - ~ INT0;

Harici kesme girişi 1 - ~ INT1;

Zamanlayıcı / sayaç girişi 0 - T0;

Zamanlayıcı / sayaç girişi 1 - T1;

Flaş çıkışı. VPD'ye yazarken sinyal - ~ WR;

Flaş çıkışı. VPD - ~ RD'den okurken sinyal;

18, 19 X1, X2 Bir kuvars rezonatörü veya LC devresini bağlamak için kablolar;
20 GND Genel sonuç;
21..28 P2 8 bit yarı çift yönlü giriş/çıkış bağlantı noktası; veya harici bellek (VFP veya VFD) ile çalışma modunda A adresinin çıkışı;
29 PME Harici Program Belleğini okuma flaşı, yalnızca harici ROM'a erişirken verilir;
30 bira Harici bellek adresi flaşı (VPP veya VPD);
31 EA RPP'nin kapatılması, bu girişteki "0" seviyesi, MC'yi bir dizi komuta aktarır sadece pistten ;
39..32 P0 8 bit çift yönlü giriş/çıkış bağlantı noktası; Harici Belleğe erişirken, A adreslerini (ALE sinyali tarafından harici kayıt defterine yazılır) verir ve ardından ~ PME (komutlar için) veya ~ WR, ~ RD (VFD'deki veriler için) sinyaliyle eşzamanlı olarak bir bayt alışverişi yapar. ), Harici Belleğe erişirken tüm birimler port register P0'a yazılır, burada depolanan bilgiler yok edilir;
40 Ucc Besleme voltajı çıkışı

RON bankalarını değiştirmek, alt rutinlerin yürütülmesini ve kesme işlemlerini basitleştirir, çünkü bir alt program çağırırken ana programın RON'larının içeriğini yığına itmeye gerek yoktur (alt programdaki başka bir aktif RON bankasına geçmek yeterlidir).

RPD'ye erişim, dolaylı veya doğrudan bayt adresleme kullanılarak mümkündür (doğrudan bayt adresleme, RPD'nin yalnızca ilk 128 baytına erişime izin verir).

Genişletilmiş RPD alanı (MCS-52 ailesinin mikro denetleyicileri ve sonraki aileleri için) adres 128'den (80h) 255'e (FFh) yalnızca dolaylı adresleme yöntemi kullanılarak adreslenebilir.

Tablo 2 - Özel Fonksiyonların Kayıt Bloğu (s f r)

anımsatıcı kodu İsim
0E0h * ACC pil
0F0h * B Pil genişletici kaydı
0D0h * PSW İşlemci durum kelimesi
0B0h * P3 3 numaralı bağlantı noktası
0A0h * P2 2. bağlantı noktası
90 saat * P1 1 numaralı bağlantı noktası
80 saat * P0 0 numaralı bağlantı noktası
0B8h * IP Kesinti Önceliği Kaydı
0A8h * IE Kesinti maskesi kaydı
99 saat SBUF Seri alıcı-verici arabelleği
98 saat * SCON Seri Port Kontrolü / Durum Kaydı
89 saat TMOD Zamanlayıcı / Sayaç Modu Kayıt
88h * TCON Zamanlayıcı / sayaç kontrolü / durum kaydı
8 Gün TH1 Zamanlayıcı 1 (yüksek bayt)
8Bh TL1 Zamanlayıcı 1 (Düşük Bayt)
8Ch TH0 Zamanlayıcı 0 (yüksek bayt)
8Ah TL0 Zamanlayıcı 0 (düşük bayt)
83h DPH Veri İşaretçi Kaydı (DPTR) (Yüksek Bayt)
82 saat DPL Veri İşaretçi Kaydı (DPTR) (Düşük Bayt)
81 saat SP Yığın işaretçi kaydı
87 saat PCON Güç tüketimi kontrol kaydı

2. YAZILIM MODELİ MCS – 51


KOMUT TÜRLERİ MCS – 51

Talimatların neredeyse yarısı 1 makine döngüsünde (MC) yürütülür. 12 MHz'lik bir kristal osilatör frekansı ile, böyle bir komutun yürütme süresi 1 μs'dir. Komutların geri kalanı 2 makine döngüsünde yürütülür, yani. 2 μs için. 4 makine çevriminde yalnızca çarpma (MUL) ve bölme (DIV) talimatları yürütülür.

Bir makine döngüsü sırasında, iki komut baytını okumak için Program Belleğine (dahili veya harici) iki çağrı veya Harici Veri Belleğine (EPM) bir erişim vardır.

3. MCS-51 ADRESLEME YÖNTEMLERİ (YÖNTEMLERİ)

1. KAYIT ADRESİ - 8 bitlik işlenen, seçilen (aktif) kayıt bankasının RON'undadır;

2 DOĞRUDAN ADRESLEME (- # ile gösterilir) - işlenen, komutun ikinci (ve 16-bit işlenen için ve üçüncü) baytındadır;

3 DOLAYLI ADRESLEME (- @ ile gösterilir) - işlenen Veri Belleğinde (RPD veya VPD) ve bellek hücresinin adresi dolaylı adreslemenin RON'larından birinde (R0 veya R1) bulunur; PUSH ve POP komutlarında adres, SP yığın işaretçisinde bulunur; DPTR kaydı 64K'ya kadar VPD adresi içerebilir;

4 DIRECT BYTE ADRESLEME - (dir) - RPD'nin hücrelerine (00h… 7Fh adresleri) ve SFR özel fonksiyonlarının kayıtlarına (80h… 0FFh adresleri) atıfta bulunmak için kullanılır;

5 DOĞRUDAN BİT ADRESLEME - (bit) - 20H ... 2FH adreslerinde RAD hücrelerinde bulunan ayrı adreslenebilir 128 bit ve özel fonksiyon kayıtlarının ayrı adreslenebilir bitlerini belirtmek için kullanılır (bkz. Tablo 3 ve program modeli);

6 DOLAYLI İNDEKS ADRESLEME (- @ ile gösterilir) - Program Belleğindeki tabloların görüntülenmesini kolaylaştırır, PP adresi temel kayıt (PC veya DPTR) ve indeks kaydının (Akümülatör) toplamı ile belirlenir;

7 ETKİ (DAHİLİ) ADRESLEME - komut kodu, işlenenlerden birine (çoğunlukla Bataryaya) örtük (varsayılan) bir referans içerir.

4. İŞLEMCİ DURUM KELİME BİÇİMİ (PSW)

C - Taşıma bayrağı (CARY) veya ödünç alma, ayrıca bitler üzerinde çalışan talimatlarda "Boolean Akümülatörü" olarak da hizmet eder;

AC - yardımcı (ilave) taşıma bayrağı - ekleme komutunda (ADD, ADDC) alt nibble'dan yüksek olana (yani 3. bitten 4. bite) bir aktarım varsa "1" olarak ayarlanır;

F0 - kullanıcı bayrağı - programlı olarak ayarlanır, temizlenir ve kontrol edilir;

RS1 RS0 Banka Adres (yön)
0 0 0 00h..07h
0 1 1 08h..0Fh
1 0 2 10s..17s
1 1 3 18h..1Fh

RS1, RS0 - Banka seçimini kaydet:

OV - Aritmetik taşma bayrağı; değeri, ALU'nun en önemli bitinin giriş ve çıkış taşıyıcılarının sinyallerinin "Özel VEYA" işlemiyle belirlenir; bu bayrağın tek bir değeri, ikinin tümleyen kodundaki bir aritmetik işlemin sonucunun aralık dışında olduğunu gösterir: –128… + 127; bir bölme işlemi gerçekleştirirken, OV bayrağı temizlenir ve sıfıra bölme durumunda ayarlanır; çarpma sırasında, sonuç 255'ten (0FFH) büyükse OV bayrağı ayarlanır;

Bit PSW - Ayrılmış, yazma veya okuma için kullanılabilen bir parmak arası terlik içerir;

P - parite bayrağı - akümülatördeki tek bit sayısının çifte tümleyenidir; kombinasyonel bir devre tarafından oluşturulur (yazılım yalnızca okunarak kullanılabilir).

MCS-51 mikrodenetleyicilerinde "Z" bayrağı yoktur. Ancak koşullu atlama talimatlarında (JZ, JNZ), Akümülatörün mevcut (sıfır veya sıfır olmayan) içeriği kombinasyonel devre tarafından kontrol edilir.

İşlenenleri aktarmak ve değiştirmek için tüm komutlar Pil aracılığıyla gerçekleştirilebilir (bkz. Şekil 3). Ayrıca Harici Belleğe (Program Belleği veya Veri Belleği) /'den aktarımlar yalnızca Pil üzerinden gerçekleştirilebilir.

Çoğu aktarım, doğrudan adres baytı (dir) aracılığıyla da yapılabilir. Hatta dir'den dir'e transferler bile vardır (bkz. Şekil 3).

RON'dan RON'a eksik aktarımlar, RON'dan doğrudan adreslenebilir bir bayt dizinine aktarımlar olarak uygulanabilir (RON'ların, Hücreleri dir olarak adreslenebilen Yerleşik Veri Belleğinin ilk alanında yer aldığı dikkate alınarak).

XCH değişim komutları, her iki işleneni de bozmadan baytların transferine izin verir.

Aritmetik komutlar yalnızca Akümülatörde yürütülür. Bu nedenle, ilk işlenen önce Biriktiriciye yerleştirilmeli ve ardından ikinci işleneni toplamalı veya çıkarmalıdır. Sonuç Bataryaya yerleştirilir.


SUBB çıkarma komutu yalnızca bir ödünç alma ile yürütülür (yani, Сary bayrağı da sonuçtan çıkarılır). Bu nedenle, çıkarma komutunu ödünç almadan yürütmek için, önce C bayrağını (CLRC) temizlemek için komutu yürütmelisiniz.

Tek baytlık işlenenleri çarpma talimatı - MULAB - iki baytlık (16 bit) bir sonuç yerleştirir: düşük bayt - Pilde, yüksek bayt - B kaydında.

Tek baytlık işlenenleri - DIVAB - bölme komutunu yürütmenin sonucu: bölüm - bir Akümülatör, kalan - B kaydına yerleştirilir.

INC aritmetik komutu, seçilen işlenene bir tane ekler. DEC aritmetik komutu, seçilen işlenenden bir çıkarır. Ondalık Biriktirici Düzeltme (DAA) komutu, ikili ondalık sayıları (BCD sayıları) onaltılık biçime (onaltılık biçim) dönüştürmeden eklemenize yardımcı olur. Kaynak işlenenler BCD biçiminde olmalıdır, yani. bir baytlık her tetrad yalnızca 0 ila 9 arasındaki sayıları içerir (onaltılık sayılar olamaz: A, B, C, D, E, F). Bu nedenle, bir bayt, paketlenmiş BCD numaraları için 00'dan 99'a kadar sayıları veya paketlenmemiş BCD numaraları için 0'dan 9'a kadar olan sayıları içerebilir.

DA A - ondalık düzeltme komutu, işlemcide BCD numaralarının eklenmesinden sonra (sayılar onaltılık aritmetik yasalarına göre eklenmiştir) Akümülatörün içeriği üzerinde aşağıdaki gibi eylemler gerçekleştirir (örneğe bakın):

· Akümülatörün en düşük ucunun içeriği 9'dan büyükse veya yardımcı taşıma bayrağı ayarlanmışsa (AC = 1), Akümülatörün içeriğine 6 eklenir (yani onaltılık formatta eksik altı hane);

· Bundan sonra Akümülatörün yüksek kemirme içeriği 9'dan büyükse veya C bayrağı ayarlanmışsa, Akümülatörün yüksek kemirmesine 6 sayısı eklenir.

Arttırma komutu C ve AC bayraklarını etkilemediği (değiştirmediği) için DA A ondalık ofset komutu INC komutundan sonra kullanılmaz.

Mantıksal komutlar:

Mantıksal "VE" - ANL,

Mantıksal "VEYA" - ORL,

"EXCLUSIVE OR" - XRL– mantıksal komutu Akümülatörde (ayrıca aritmetikte) yürütülür, ancak mantıksal komutları doğrudan adreslenebilir baytta (dir) yürütmek de mümkündür. Bu durumda, ikinci işlenen şöyle olabilir:

Pilde veya

Komuttaki hemen işlenen.

Döndürme komutları (RR A, RL A) ve CARY bayrağı aracılığıyla döndürme komutları (RRC A, RLC A) Akümülatörün içeriğini çevrimsel olarak 1 bit kaydırır.Bit cihaz referansları sadece C bayrağı aracılığıyla gerçekleştirilir.

Rusya Federasyonu Genel ve Mesleki Eğitim Bakanlığı Novosibirsk Devlet Teknik Üniversitesi V.N. Veprik, V.A. Afanasyev, A.I. Druzhinin, A.A. Zemskov, A.R. Isaev, O.V. MCS-51 AİLESİNİN Malyavko MİKROKONTROLÖRLERİ Her türlü eğitimin Otomasyon ve Bilgisayar Mühendisliği Fakültesi son sınıf öğrencileri için "Mikroişlemci sistemleri" ve "Mikroişlemci sistemlerinin tasarımı" dersleri hakkında ders kitabı Novosibirsk 1997 V.N. Veprik, V.A. Afanasyev, A.I. Druzhinin, A.A. Zemskov, A.R. Isaev, O.V. Malyavko. Mikrodenetleyiciler MCS-51 Ailesi: Eğitim. - Novosibirsk. Bu öğretici, INTEL tarafından üretilen MCS-51 tek çipli mikrodenetleyici ailesinin (Gömülü Mikrodenetleyiciler) mimarisinin, işlevselliğinin ve komut setinin genel bir tanımını içerir. Kılavuzun ikinci kısmı, bir laboratuvar çalışması döngüsü gerçekleştirirken öğrencilere bir araştırma nesnesi olarak sunulan eğitim mikroişlemci denetleyicisi UMPK-51'in bir tanımını sağlar. Kılavuzun malzemesi kurs ve diploma tasarımında kullanılabilir ve ayrıca elektronik ekipmanın geliştirilmesi ve çalıştırılmasıyla ilgilenen devre mühendisleri için de faydalı olabilir. Yazarlar, INTEL'in resmi distribütörü olan AOZT "New Technologies"e, bu çalışmanın gerçekleştirildiği malzemeleri sağladığı için derin şükranlarını sunarlar. Tablo 15, şekil 25, harf listesi. 12 başlık İnceleyenler: E.D. Baran, G.G. Matushkin. Çalışma Novosibirsk Devlet Bilgisayar Mühendisliği Bölümünde hazırlanmıştır © Teknik Üniversitesi 2 GİRİŞ. 8 bitlik tek çipli mikro denetleyicilerden oluşan MCS-51 ailesi, seksenlerin başında küresel pazara girdi. Kristallerin ilk modifikasyonları (yaklaşık 7) yüksek kaliteli n-MOS (HMOS) teknolojisi kullanılarak yapıldı ve ana ilkelerinden biri adresin mantıksal olarak ayrılması olan Harvard mimarisinin işlevsel olarak eksiksiz tek çipli mikro bilgisayarlarıydı. program hafızası ve veri boşlukları. Yarı iletken teknolojisinin gelişmesiyle birlikte, MCS-51 mikro devrelerinin sonraki sürümleri daha gelişmiş ve düşük güçlü CMOS (CHMOS) teknolojisi kullanılarak üretilmeye başlandı (aktif modda kristal tüketimi 10-50 mA'ya getirildi). Önceki MCS-48 ailesinin komut sistemi ile bazı dış benzerlikleri korurken, çeşitli dijital kontrol algoritmalarının uygulanmasına odaklanan MCS-51 komut sistemi, niteliksel olarak genişledi, içinde temel yenilikler ortaya çıktı: bit odaklı işlemler ve bir çip üzerinde bir bit işlemcinin uygulanması hakkında konuşmayı mümkün kılan veri belleğinde adreslenebilir bit alanları; Çarpma, bölme ve çıkarma komutlarının uygulanması; yığınla geliştirilmiş çalışma; kontrol transfer komutları grubu genişletildi; Komut sistemi daha simetrik, yani pil üzerinden veri aktarımlarına daha az bağımlı görünmeye başladı. Yerleşik çevre birimlerinin işlevselliği, aşağıdakilerin eklenmesiyle genişletildi: iki adet 16-bit zamanlayıcı / sayaç; donanım seri çift yönlü bağlantı noktası; iki seviyeli kesme sistemi; dört adet 8 bit G / Ç bağlantı noktası. İşlemcinin zaman döngüsünün yapısındaki temel değişiklikler, harici program ve veri belleği ile çalışmanın hızlandırılmasına ve ayrıca harici ve dahili kesintilere tepkilere yol açtı. Harici programın adres alanı ve veri belleğinin toplam boyutu 128 Kbyte'a yükseldi. 16 bitlik Program Sayacı ve Veri İşaretçi kayıtları, tüm adres aralığına doğrudan erişime izin verdi ve bu da geliştiricilere büyük veri dizilerinin hızlı işlenmesi için algoritmalar uygulama yeteneği verdi. Mikrodenetleyicinin yazılımla erişilebilen tüm düğümleri, özel bir veri belleği alanında (Özel İşlev Kaydı) bir araya getirildi, bu da onlara yerleşik RAM'in sıradan hücrelerine neredeyse aynı şekilde erişmeyi mümkün kıldı. Kristallerin sonraki modifikasyonlarında, iyileştirme, önceki sürümlerle tam yazılım uyumluluğunu korurken ek işlevselliği artırma yolunda ilerledi. MCS-51 mikrodenetleyicilerinin en son modifikasyonlarının özellikleri şunlardır: tamamen statik tasarım; 3- ve 5-volt kristal versiyonları; çok çeşitli yerleşik çevre birimleri; maksimum saat frekansı - 24 MHz; bireysel kristal grupları için - 33 MHz. Şu anda, MCS-51 kristallerin yaklaşık 60 versiyonunu içeriyor, ayrıca ayrıntılı tescilli belgeler var ve mevcut (maalesef, şimdiye kadar çok az Rusça'ya çevrilmiş). Yazılımı MCS-51 mikrodenetleyicileri için hazırlamak için, temel olarak "ASM-51", "C" dilleri kullanılır, bunun için çok sayıda kanıtlanmış derleyici, standart alt program kütüphaneleri ve çeşitli yabancı tarafından üretilen yazılım emülatörleri bulunur. ve yerli firmalar. 3 Ailenin yeterli "antikliğine" (15 yıldan fazla) ve son yıllarda daha yüksek performanslı ve geliştirilmiş mimariye sahip tek çipli mikro denetleyicilerin dünya pazarındaki görünümüne rağmen - MCS-51, MCS-251, MCS-96, MCS-51 kontrolörleri, nispeten basit gömülü kontrol sistemlerinde yaygın olarak kullanılacaktır. 4 1. INTEL BİLEŞENLERİNİN TASARIM SİSTEMİ VE MCS-51 AİLESİNİN FONKSİYONEL BİLEŞİMİ INTEL tarafından mikro devreleri işaretlemek için, birkaç alandan oluşan bir atama sistemi kullanılır: 1 2 3 4 ХХ ХХХХХХХХХХХХХХХ ХХХХХХ İlk alan tek harfli Otomotiv önekini içerir: , genişletilmiş sıcaklık aralığı için otomotiv versiyonu (-40 / + 125 C) M (Askeri), askeri standartlara göre versiyon (-55 / + 125 C) Q veya C (Ticari), "ticari" sıcaklık aralığı (0 / + 70 C ) s (160 8) - bir saatlik dinamik termal eğitim; L veya E (Genişletilmiş), "genişletilmiş" sıcaklık aralığı (-40 / + 85 C) (160 8) - saatlik dinamik termal eğitim; T (Genişletilmiş), "genişletilmiş" sıcaklık aralığı (-40 / + 85 C) termal eğitim olmadan; I (Endüstriyel), endüstriyel standartlara göre uygulama. İkinci alan, mikro devrenin paket tipini (Paket Tipi) gösteren bir veya iki harfli bir ön ek içerir. Bugün birkaç düzine farklı tipte mikro devre paketi vardır, bu nedenle örnek olarak sadece bazı tanımlamaları vereceğiz: Seramik Pim Izgara Dizisi, (PGA); C Seramik Çift Sıralı Paket, (CDIP); K Seramik Dörtlü Düz Paket Paket, (QFP); KD Plastik Dörtlü Düz Paket Paket, İnce Aralık, Die Down, (PQFP); KU Plastik Dörtlü Düz Paket Paketi, İnce Aralık, Die Up, (PQFP); N Plastik Kurşunlu Talaş Taşıyıcı, (PLCC); P Plastik Çift Sıralı Paket, (PDIP); SM Tek Sıralı Kurşunsuz Bellek Modülü, (SIMM); U Plastik Çift Sıralı Paket, Shrink Dip, (PDIPS); Z Zigzag Sıralı Paket, (ZIP). Üçüncü alan, çipte bulunan belirli bir aygıtın türünü gösteren en fazla 15 sayısal ve alfabetik karakter içerebilir. Dördüncü alan, mikro devrelerin çeşitli özelliklerini ve sürümlerini yansıtan altı adede kadar dijital ve alfabetik karakter içerebilir. Paket türleri ve tasarımları hakkında ek bilgi şu kitapta bulunabilir: Paketleme Sipariş Numarası 240800. MCS-51 ailesinin açıklanan mikro denetleyicileri ile ilgili olarak, üçüncü alanın ilk karakteri geleneksel olarak (Intel için) eşittir. "8". Üçüncü alanın ikinci karakteri genellikle yerleşik ROM'un türünü belirtir: 0 maskeli ROM program; ROM'suz kristal (kristallerin sonraki sürümleri için); 1 maske ROM programı (Standart ROM Kodu, Bellenim); 3 maske ROM (daha sonraki kristal sürümleri için), (Özelleştirilebilir ROM Kodu); 7 UVROM veya tek seferlik programlanabilir ROM (EPROM veya OTP ROM); 8 EEPROM (Flash - bir çip üzerindeki bellek) Ayrıca, üretimin teknolojik özelliklerini gösteren bir harf gelebilir: harf yok HMOS teknolojisi, güç kaynağı 5V; CHMOS teknolojisi ile 5V güç kaynağı; L CHMOS teknolojisi, güç kaynağı 3V; 5 MCS-51 mikro denetleyicileri için üçüncü alanın sonraki karakterleri sayılardır (örneğin, 31,32,51,54,58,152) ve kristallerin işlevsel özelliklerini yansıtan bir ila dört harftir (örneğin, ROM boyutu). , bir grup kristalin özellikleri, program belleğinin yetkisiz erişime karşı sistem kullanılabilirliği koruması, daha gelişmiş bir programlama algoritması "Hızlı Darbe" ve benzerlerini kullanma yeteneği). Intel'in orijinal teknik belgelerinde, tüm MCS-51 mikro denetleyicileri, her biri işlevsellik ve elektrik parametrelerine en yakın kristal sürümlerini birleştiren gruplara ("Ürün Serisi") ayrılmıştır. Bir grubun mikro devrelerinin adları biraz farklı olduğundan, her bir grubu belirtmek için, farklı karakterleri "X" ile değiştirerek belirli mikro devrelerin işaretlenmesinden oluşan genelleştirilmiş bir sembolizm kullanılır. Böylece, aşağıdaki mikrodenetleyici grupları ayırt edilebilir. 1. Grup 8Х5Х (8051 Ürün Grubu ve 8052 Ürün Grubu): 8031АН, 8051АН, 8751Н, 8051АНР, 8751Н-8, 8751ВН, 8032АН, 8052АН, 8752ВН. 2. Grup 8С51 (80С51 Ürün Grubu): 80С31ВН, 80С51ВН, 87С51. 3. Grup 8С5Х (8ХС52 / 54/58 Ürün Grubu): 80С32, 80С52, 87С52, 80С54, 87С54, 80С58, 87С58. 4. Grup 8XC51FX (8XC51FA / FB / FC Ürün Grubu): 80C51FA, 83C51FA, 87C51FA, 83C51FB, 87C51FB, 83C51FC, 87C51FC. 5. Grup 8ХL5X (8XL52 / 54/58 Ürün Grubu): 80L52, 87L52, 80L54, 87L54, 80L58, 87L58. 6. Grup 8XL51FX (8XL51FA / FB / FC Ürün Grubu): 80L51FA, 83L51FA, 87L51FA, 83L51FB, 87L51FB, 83L51FC, 87L51FC. 7. Grup 8XC51RX (8XC51RA / RB / RC Ürün Grubu): 80C51RA, 83C51RA, 87C51RA, 83C51RB, 87C51RB, 83C51RC, 87C51RC. 8. Grup 8XC51GB (8XC51GX Ürün Grubu): 80C51GB, 83C51GB, 87C51GB. 9. Grup 8XC152JX (8XC152 Ürün Grubu): 80C152JA, 83C152JA, 80C152JB, 80C152JC, 83C152JC, 80C152JD. 10.Grup 8XC51SL (8XC51SL Ürün Grubu): 80C51SL-BG, 81C51SL-BG, 83C51SL-BG, 80C51-AH, 81C51SL-AH, 83C51SL-AH, 87C51SL- AH, 80C51SL-AL, 81C51SL-AL, 83C51AL 87C . İlk mikrodenetleyici grubu, n-MOS teknolojisi kullanılarak yapılan ve yeni tasarımlarda kullanılması önerilmeyen ailenin genç modellerini içerir, diğer tüm gruplar modern CMOS teknolojisi kullanılarak yapılır. İkinci, üçüncü ve dördüncü grupların mikro devreleri bugün MCS-51 ailesinin klasik temsilcileridir. Beşinci ve altıncı gruplar, kristallerin 3 voltluk versiyonlarını (Düşük Voltaj) içerir. Yedinci grubun kristalleri, hacmi 512 bayt olan genişletilmiş RAM (Genişletilmiş RAM) ile donatılmıştır. Sekizinci, dokuzuncu ve onuncu grupların mikro devreleri uygulamaya özel mikrodenetleyicilerdir (Uygulamaya Özel). Birçok modern uygulama, gelişmiş adresleme yetenekleri, kayıt mimarisi, büyük miktarda dahili RAM ve yığın kullanan ve yüksek seviyeli programlamayı verimli bir şekilde destekleyen yüksek performanslı MCU'lar gerektirir. Bu mikro denetleyiciler, Intel'in 1995 yılında üretimine başladığı Yeni Mimari MCS-5 ve MCS-251 mikro denetleyicilerini içerir. MCS-51 / MCS-251 mikrodenetleyicinin fonksiyonel bileşimi ve temel özellikleri ekte verilmiştir. 6 2. MİKRODENETLEYİCİLER AİLESİ MCS-51 TEMEL MODELİNİN TEMEL ÖZELLİKLERİ. MCS-51 mikrodenetleyici ailesinin temel modeli ve sonraki tüm değişikliklerin temeli I-8051 mikrodenetleyicidir. Başlıca özellikleri şunlardır: kontrol işlevleri için optimize edilmiş sekiz bitlik bir CPU; yerleşik saat üreteci; program belleğinin adres alanı - 64 K; veri belleği adres alanı - 64 K; dahili program belleği - 4K; dahili veri belleği - 128 bayt; Boole cebri işlemlerini gerçekleştirmek için ek olanaklar (bitsel işlemler); 32 çift yönlü ve ayrı ayrı adreslenebilir I/O hattı; 2 on altı bitlik çok işlevli zamanlayıcı / sayaç; tam çift yönlü asenkron alıcı-verici; iki öncelik seviyesi ve altı olay kaynağına sahip vektör kesme sistemi. I-8051'in blok şeması Şekil 1'de gösterilmiştir, mikro devrenin pin ataması Şekil 2'de gösterilmiştir. Harici kesintiler Kesintiler 128 bayt T / C 0 sayıcı 4K ROM kontrolü RAM T / C 1 girişler CPU BUS 4 I / O Seri OSC kontrolü Portlar Port P0 P1 P2 P3 T D R D Adres / Veri Şekil 1. I-8051 blok şeması MCS-51 serisinin tamamı bir Harvard mimarisine, yani program belleği ve veri için ayrı adres alanlarına sahiptir. Hafıza organizasyonu Şekil 3'te gösterilmektedir. 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 (Harici Erişim) pinindeki sinyalin değeri ile belirlenir: EA = Vcc (besleme voltajı) - dahili ROM'a erişim; EA = Vss (toprak potansiyeli) - harici ROM'a erişim. ROM'suz (ROM'suz) kristaller için EA pini Vss'ye kalıcı olarak bağlı olmalıdır. Harici ROM okuma flaşı - PS EN (Program Deposu Etkinleştirme), harici program belleğine erişilirken oluşturulur ve çip üzerinde bulunan ROM'a erişilirken etkin değildir. 7 Program belleğinin alt adreslerinin alanı kesme sistemi tarafından kullanılır, 8051 mikro devresinin mimarisi beş kesinti kaynağı için destek sağlar: iki harici kesinti; zamanlayıcılardan iki kesinti; seri bağlantı noktasından kesintiler. P1.0 1 40 Vcc P1.1 2 39 P0. 0 (AD0) P1.2 3 38 P0.1 (AD1) P1.3 4 37 P0.2 (AD2) P1.4 5 36 P0.3 (AD3) P1.5 6 35 P0.4 (AD4) P1. 6 7 34 P0.5 (AD5) P1.7 8 33 P0.6 (AD6) RESET 9 32 P0.7 (AD7) (RD) P3.0 10 31 EA / Vpp (TD) P3.1 11 30 ALE / PROG (INT0) P3.2 12 29 PSEN (INT1) P3.3 13 28 P2.7 (A15) (T0) P3.4 14 27 P2.6 (A14) (T1) P3.5 15 26 P2.5 ( A13) (WR) P3.6 16 25 P2.4 (A12) (RD) P3.7 17 24 P2.3 (A11) XTAL2 18 23 P2.2 (A10) XTAL1 19 22 P2.1 (A9) Vss 20 21 P2.0 (A8) Şekil 2. I-8051'in pin ataması Program hafızası (Okuma) Veri hafızası (Okuma / Yazma) FFFFH Harici ROM FFFFH Harici @DPTR RD hafızası PSEN WR data @PC MOVC EA = 0 Dahili hafıza @DPTR data @PC Harici dahili FFH üst 128 SFR MOVX ROM ROM 80H EA = 0 0000H EA = 1 alt 128 00H 0000H PSEN Şekil 3. MCS-51 Aile Belleği Organizasyonu 8 Şekil 4, alt program bellek alanının bir haritasını gösterir. ROM Program belleği 0033H 002BH Seri Port 0023H Vektör Zamanlayıcı1 001BH kesintileri EINT1 0013H Zamanlayıcı0 000BH EINT0 0003H Başlangıç ​​adresi 0000H (Sıfırlama) Şekil 4. Program belleği Kesme vektörlerinin adresleri 8 baytlık aralıklarla yer alır: - 0003H harici kesme 0 (Harici Kesinti 0) - pin IN T 0; - zamanlayıcı 0'dan 000BH kesintisi (zamanlayıcı taşma bayrağı tarafından - T F 0); - 0013H harici kesme 1 - pin IN T 1; - zamanlayıcı 1'den 001BH kesintisi (zamanlayıcı taşma bayrağı tarafından - T F 1); - seri bağlantı noktasından 0023H kesintisi (Seri Kesinti = Alma Kesintisi veya İletim Kesintisi); vesaire. Veri belleği program belleğinden ayrıdır. Bu alanda 64K harici RAM adreslemesi mümkündür. Harici veri belleğine erişirken, mikro denetleyicinin CPU'su karşılık gelen okuma (RD) veya yazma (W R) sinyallerini üretir, dahili veri belleği ile etkileşim komut düzeyinde gerçekleştirilir, ancak R D ve W R sinyalleri üretilmez. Harici program belleği ve harici veri belleği, bir harici bellek (program/veri) flaşı sağlamak için AR-GE ve PS EN sinyallerinin AND ile birleştirilmesiyle birleştirilebilir. Alt 128 bayt dahili veri belleği (daha düşük 128) tüm MCS-51 kalıplarında bulunur ve Şekil 5'te gösterilmektedir. İlk 32 bayt, 8 kayıt (R7 ... R0) ile 4 bankayı (Kayıt Bankası) temsil eder. Herhangi bir bankadaki R0 ve R1 kayıtları dolaylı adres kayıtları olarak kullanılabilir. Kayıt bankalarını izleyen 16 bayt, bir bit adreslenebilir alan bloğu oluşturur. MCS-51 komut seti çok çeşitli bit işlemleri içerir ve bu bloktaki 128 bit doğrudan adreslenebilir ve adresler 00H ile 7FH arasında değişir. Belleğin 128 baytlık alt yarısındaki tüm baytlar doğrudan veya dolaylı olarak adreslenebilir. RAM belleğinin üst 128 baytlık yarısı (üst 128) I-8051 mikro devresinde yoktur, ancak 256 bayt RAM'li kristal versiyonlarında mevcuttur. Bu durumda "Üst 128" alanı yalnızca dolaylı adresleme için kullanılabilir. SFR (Özel Fonksiyon Kaydı) alanı yalnızca doğrudan adresleme ile kullanılabilir. SFR uzayındaki özel fonksiyon kayıtlarının düzeni Şekil 6'da gösterilmektedir. Bunlara bağlantı noktası kayıtları, zamanlayıcılar, çevresel denetimler vb. dahildir. 9 7FH Bayt adreslenebilir RAM alanı 30H (doğrudan, dolaylı) 2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 2EH 77H 76H 75H 74H 73H 72H 71H 70H Bayt adreslenebilir RAM alanı (doğrudan) 21H 0FH 0EH 0DH 0CH 0BH 20AH 07 04H 03H 02H 01H 00H 1FH RB3 18H 17H RB2 10H 0FH RB1 08H 07H SP RESET'ten sonra 00H RB0 (R7 + R0) Şekil 5. Alt 128 bayt dahili RAM. bit adresleme 8 bayt F8H FFH F0H B F7H E8H EFH E0H ACC E7H D8H DFH D0H PSW D7H C8H CFH C0H C7H B8H IP BFH B0H P3 B7H A8H IE AFH A0H P2 A7H 98H SP1 SCONH /8 1/9 2 / A 3 / B 4 / C 5 / D 6 / E 7 / F Şekil 6. Özel fonksiyon kayıtlarının SFR uzayına yerleştirilmesi. SFR alanındaki 16 adres için hem bayt hem de bit adresleme mümkündür. Bit adreslenebilir kayıtlar için onaltılık adres "0H" veya "8H" ile biter. Bu alandaki bit adresleri 80H ile FFH arasında değişir. MCS-51 ailesinin tüm kristal serisi, aynı adreslerde bulunan I-8051 mikro devresinde olduğu gibi temel bir SFR setine sahiptir. Bununla birlikte, SFR bölgesindeki ailenin daha da gelişmesi olan kristallerde, 10'u genişletmek için yeni kayıtlar eklenir.

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:

Aşağıdaki kaynak işlenen adresleme türleri mevcuttur:

  • Baz ve indeks kayıtlarının toplamına göre dolaylı kayıt adreslemesi

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 CPC'ye dahil edilen 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 8 bit imzalı ofset bayt
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
Operasyonlar:
eklemeler
çıkarma
çarpma işlemi
Bölüm
mantıksal çarpma (VE işlemi)
mantıksal ekleme (VEYA işlemi)
ek mod 2 (özel VEYA)
X elemanının ters ç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ı
Ek AC, C, OV
taşıma katlanır AC, C, OV
AJMP Ekibi Mutlak geçiş
Mantıksal "VE"
Değişken bitler için mantıksal "VE" C
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ı Pil ters çevirme
CPL Ekibi Bit inversiyonu biraz
Takım DA A Toplama 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ş
bayt değişkeni gönder
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
Verileri harici belleğe gönder (harici bellekten)