s 51 dilinde mikrodenetleyici programlama MCS-51 mikrodenetleyiciler: program modeli, yapısı, komutları. Bağlantı Noktası Okuma Modu

Temel sürüm MCS-51 Kısa bilgi. Modern 8 bitlik mikrodenetleyiciler (MC), daha önce ayrı mikro bilgisayar kartları biçimindeki pahalı çok çipli düzenlerin kullanıldığı gerçek zamanlı kontrol kaynaklarına sahiptir, yani:

● yeterli bellek kapasitesine, fiziksel ve mantıksal olarak program belleğine bölünmesine ve veri belleği(Harvard mimarisi) ve kontrol algoritmalarının yürütülmesine odaklanan bir komut sistemi;

● minimum yapılandırma ile bir mikroişlemci kontrol sistemi uygulamak için gereken tüm aygıtları (işlemci, ROM, RAM, giriş/çıkış bağlantı noktaları, kesme sistemi, bit bilgi işleme araçları, vb.) içerir. 1970'li yıllarda firma bilgi bir dizi ortak özellikle (rakam kapasitesi, komut sistemi, bir dizi temel fonksiyonel blok, vb.) Bu ailenin temel versiyonu şunları içerir:

● 8 bit işlemci;

● dahili program belleği (1/2/4K bayt);

● dahili veri belleği (64/128/256 bayt);

● en fazla 27 dahili ve 16 harici G/Ç hattı;

● bir adet 8 bitlik zamanlayıcı sayacı;

● iki istek kaynağına sahip tek seviyeli kesme sistemi. 1980'de aynı şirket, MCS-48 ailesinin mimarisiyle uyumlu, ancak daha geniş yeteneklere sahip yeni bir sekiz bitlik MCS-51 mikrodenetleyici ailesi geliştirdi.

MCS-51 ailesinin mimarisi o kadar başarılı oldu ki, bugüne kadar 8 bitlik MK'ler için standartlardan biri olmaya devam ediyor. Bu nedenle, nispeten basit kontrol sistemlerinde yaygın olarak kullanılan bu ailenin MC'leri çalışmanın amacı olarak seçilmiştir.

MCS-51 ailesi için çeşitli program hazırlama araçları (derleyiciler, donanım-yazılım öykünücüleri vb.) geliştirilmiştir ve çok sayıda standart alt program kitaplığı vardır. Aile, mikrodenetleyicilerin çeşitli mikro devre modifikasyonlarını (çip versiyonları) içerir. Bu bölümün makaleleri, MCS-51 ailesinin mikrodenetleyicilerinin temel sürümünü (8051 mikro devre, yerel analog KP1816BE51'e karşılık gelir), yapısal ve işlevsel açıdan ve anlayış açısından en basit olanı yeterince ayrıntılı olarak ele alır.

Sonraki mikro devre serileri, temel sürümle uyumluluğu korurken, geliştirilmiş üretim teknolojisinde ondan farklıdır; elektriksel parametreler, ek donanım ve işlevsellik. Aşağıdaki makaleler, MCS-51 ailesi mikro devrelerinin müteakip modifikasyonlarının yapısal ve işlevsel özelliklerine ayrılmıştır.
MCS–51'in genelleştirilmiş blok diyagramı. Genelleştirilmiş bir blok diyagramı Şekil 2'de gösterilen MC'nin bileşimi. 7.1.1 şunları içerir:

● 8 bit İşlemci CPU'dan oluşan ALÜ, kontrol araçları uu ve adres üreteci F;

● programları depolamak için 4K bayt kapasiteli maskelenmiş ROM;

● Veri depolama için 128 bayt RAM;

● Giriş için dört programlanabilir bağlantı noktası P0–P3– bilgi çıktısı;

● blok seri arayüzİki telli bir hat üzerinden harici cihazlarla bilgi alışverişi için BPI;

● gerçek zamanlı modu sürdürmek için zamanlayıcılar/sayaçlar BT/C bloğu;

● Yürütülebilir programların kesintilerini düzenlemek için BP kesme bloğu. Bu fonlar oluşur ikamet eden kişi doğrudan çip üzerinde bulunan mikrodenetleyicinin bir parçası. MC, ayrı fonksiyonel bloklara atanan ve şemada gösterilmeyen çok sayıda kayıt içerir.

Diyagram ayrıca kontrol devrelerini göstermez. Bloklar arasında ikili bilgi alışverişi, dahili bir 8-bit aracılığıyla gerçekleştirilir. veri yolu SD-8.

Dahili 16 bit ile adres yolu SHA-16, CPU'da oluşturulan adres ROM'da (adresin 12 biti) ve RAM'de (8 düşük bit) görüntülenir.

Harici bellek kullanılırken, adresin 8 düşük sıralı biti P0 bağlantı noktasına ve 3 veya 8 yüksek sıralı bit P2 bağlantı noktasına verilir.

Arayüzün mantıksal uzantısı için port hatlarının fonksiyonlarının kombinasyonu kullanılır. Örnek olarak, Şek. 7.1.1 noktalı çizgi, P3 bağlantı noktasının hatlarını gösterir; alternatif amacı aşağıda tartışılacak olan kontrol sinyali iletim fonksiyonları. Dahili bir saat üreteci oluşturmak için, mikro devre MK'nin çıkışlarına bir kuvars rezonatör ve iki kapasitör bağlanır (Şekil 7.1.1). Senkronizasyon için dahili bir saat üreteci yerine harici bir osilatör kullanılabilir. koşullu grafik atama mikroçip MK, Şek. 7.1.2, sonuçların tanımı ve amacı - tabloda. 7.1.1. MK'nin fonksiyonel bloklarını ve çalışma prensibini düşünün. Aritmetik-mantıksal aygıt. Aritmetik-mantıksal birim, sekiz bitlik işlenenlerde aritmetik (çarpma ve bölme dahil) ve mantıksal işlemlerin yanı sıra mantıksal kaydırma, sıfırlama, ayarlama vb. 7.1.3.

ALU içerir

● paralel sekiz bit toplayıcı Sıralı transfer, aritmetik (toplama ve çıkarma) ve mantıksal (toplama, çarpma, eşitsizlik ve özdeşlik) işlemleri gerçekleştiren SM kombinasyon tipi;

pil bir, ana aritmetik kaydın işlevlerini sağlamak;

kayıt olmak B, çarpma ve bölme işlemlerini gerçekleştirmek için veya işlevleri kullanıcı tarafından tanımlanan ek bir süper işlemsel kayıt olarak kullanılır;

kayıtlar(programlı olarak kullanılamıyor) geçici depolamaРВХ1, РВХ2, işlem süresince işlenenleri almak ve saklamak için tasarlanmıştır;

● ROM'u sabitler ikili ondalık veri gösterimi için bir düzeltme kodu, bit işlemleri için bir maske kodu ve bir sabit kod depolayan ROM;

program durumu kelime kaydıİşlem gerçekleştirildikten sonra ALU'nun durumunu sabitleyen PSW. Masada. 7.1.2, bitlerin PSW kaydının bireysel basamaklarına atanması hakkında bilgi sağlar. Kontrol cihazı. CPU Kontrol Birimi (CU) amaçlanan koordine olmak ortak çalışmaüretilen saat darbelerini ve kontrol sinyallerini kullanan tüm MK düğümleri. Şunları içerir (Şekil 7.1.4):

senkronizasyon ve kontrol ünitesi Makine döngülerini ve bunların bireysel durumlarını (S) ve fazlarını (P) ayarlayan ve MK'nin çalışma moduna bağlı olarak saat darbeleri üreten USU, gerekli kontrol sinyalleri setini üretir. Talimatı yürütmek için bir, iki veya dört makine döngüsü tahsis edilir.

Her makine çevrimi, altı eyalet S1–S6, Her durum şunları içerir: iki faz Süresi saat üretecinin T 0SC salınım periyodu olan P1, P2 .

Makine çevriminin süresi 12T 0SC'dir. S1P1 aşamasından başlayıp S6P2 aşamasına kadar tüm makine döngüleri aynıdır.

Saat darbelerine ek olarak, her makine döngüsündeki saat cihazı, S1P2-S2P1 ve S4P2-S5P1 fazlarında pozitif darbe şeklinde ALE adresinin düşük baytından iki (bazen bir) flaş sinyali üretir. Şek. 7.1.5 makine çevrimlerinin organizasyonunu gösterir;

● RK komut kaydı, komut çözücü DC ve PLA, her makine döngüsünde yürütülmekte olan komutun mikro programına uygun olarak bir dizi mikro işlem oluşturmaya izin verir;

● Р0–Р3 bağlantı noktaları aracılığıyla MC ile harici cihazlar arasında bilgi alışverişi sağlayan sinyallerin alınması ve verilmesi için LVV'nin giriş-çıkış mantığı;

● Seri bağlantı noktasının veri hızını iki katına çıkarmak için PCCON.7 konumunda tek bir etkinleştirilmiş SMOD bitine sahip olan PCCON kaydı. Kalan bitler ileride kullanılmak üzere ayrılmıştır.
Adres üreteci. Adres şekillendirici (FA) veya PC komut sayacı, amaçlanan mevcut 16-bit program hafıza adresini ve 8/16-bit harici veri hafıza adresini oluşturmak için. Şunları içerir (Şekil 7.1.6):

● 16 bit tampon SD'nin 8 bitlik veri yolu ile adres oluşturucunun 16 bitlik dahili veri yolu (IS) arasında iletişim kuran B;

● Geçerli adresin değerini artırmak için SI artırma şeması program hafızası birim başına;

● SI'dan gelen PTA komutlarının mevcut adresini saklamak için kayıt olun;

● Veri işaretçisi kaydı DPTR , iki adet 8 bitlik kayıt DPH ve DPL'den oluşur. Harici veri belleğinin 16 bitlik bir adresini saklamaya hizmet eder ve yazılım tarafından erişilebilen iki bağımsız RON olarak kullanılabilir;

● Yürütücü 16-bit program hafıza adresini veya 8/16-bit harici veri hafıza adresini depolamak için RFA adres oluşturucu kaydı. Bu kayıt aynı zamanda P0 portu üzerinden veri aktarmak için kullanılır. harici cihazlar MOVX @Rm, A ve MOVX @DPRT, A komutlarını yürütürken.

Veri belleği. veri belleği amaçlanan program yürütme sürecinde kullanılan bilgileri almak, depolamak ve yayınlamak için. Verilerin dahili (yerleşik) belleği (Şekil 7.1.7), 128 bayt kapasiteli RAM'den oluşur, yığın işaretçisi SP, adres kaydı RAM RA ve kod çözücüÖş. SP yığın işaretçisi, en son erişilen yığın konumunun adresini alan ve depolayan 8 bitlik bir kayıttır. Sıfırlamadan sonra yığın işaretçisi, 08H adresli yığının başlangıcına karşılık gelen 07H adresine ayarlanır. Adres kaydı RA, kod çözücü Dsh ile birlikte, bir bayt veya bilgi biti içeren gerekli bellek hücresine erişim sağlar.

MK, bağlanarak veri belleği miktarını 64 KB'ye kadar artırma yeteneği sağlar. harici depolama aygıtları.Örnek olarak, Şek. 7.1.8, MOVX gibi komutlar kullanılarak 2K bayt kapasiteli harici veri belleği VPD'nin sayfalanmasını gösterir. @ Rm(m = 0; 1). Bu durumda, P0 bağlantı noktası çoklanmış bir adres/veri yolu olarak çalışır, P2 bağlantı noktasının üç satırı harici bir RAM sayfasını adreslemek için kullanılır ve kalan beş satır G/Ç hatları olarak kullanılabilir.
Şek. 7.1.9, MK harici RAM ile çalışırken okuma ve yazma döngülerinin zamanlama diyagramlarını gösterir. Diyagramlar şunları gösterir:

● PCN - PC komut sayacının yüksek baytı;

● DPL, DPH - MOVX @DPTR,A ve MOVX A,@DPTR komutlarında dolaylı bir adresleme kaydı olarak kullanılan DPTR veri işaretçi kaydının düşük ve yüksek baytları;

● P2 SFR - P2 bağlantı noktası mandalları;

● Rm (m = 0, 1) - MOVX @Rm, A ve MOVX A, @Rm komutlarında dolaylı adres kayıtları olarak kullanılan kayıtlar;

● Z - yüksek direnç durumu;

● D - P0 bağlantı noktasından gelen verilerin mikrodenetleyiciye girildiği süre. Program hafızası. Program belleği, programları depolamak için tasarlanmıştır, kendi (veri belleğinden ayrı) adres alanına sahiptir ve salt okunurdur. Bir kod çözücü Dsh ve ROM içerir (Şekil 7.1.10). Program belleği, 16 bitlik bir PC sayacı kullanılarak adreslenir, bu nedenle maksimum kapasitesi 64K bayttır. Dahili program belleği, 4K bayt kapasiteli bir ROM ve 12 bitlik bir kod çözücüden oluşur. Harici bellek, şekil 2'deki şemaya göre bağlanır. 7.1.11. ¯EA MK çıkışı 0 V ile beslenirse (Şekil 7.1.11'de gösterildiği gibi), iç hafıza programlar kapatılır. Tüm bellek erişimleri 0000h adresinde başlar. ¯EA pini güç kaynağına bağlandığında, 0000h–FFFFh adreslerindeki dahili program belleğine ve 0FFFh–FFFFh adreslerindeki harici program belleğine erişim otomatik olarak gerçekleşir.

MK'nin harici program hafızasını okumak için ¯PSEN sinyali üretilir. Dahili bellekle çalışırken okuma sinyali kullanılmaz. Harici program belleğine erişirken, her zaman 16 bitlik bir adres oluşturulur. Adresin düşük baytı, makine döngüsünün ilk yarısında P0 bağlantı noktası üzerinden iletilir ve kayıttaki ALE flaşının kesilmesiyle sabitlenir Döngünün ikinci yarısında, bir veri baytı girmek için P0 bağlantı noktası kullanılır. harici bellekten MCU'ya.

Adresin yüksek baytı, belleğe erişilen tüm süre boyunca P2 bağlantı noktası aracılığıyla iletilir.

MK'nin harici RAM ile çalışması sırasında okuma ve yazma döngülerinin zamanlama şemaları, Şek. 7.1.12.
Diyagramlar şunları gösterir:

● PCL OUT - PC komut sayacının düşük bayt çıkışı;

● PCN OUT - PC komut sayacının yüksek baytının verilmesi;

● DPH, MOVX @DPTR,A ve MOVX A,@DPTR komutlarında dolaylı bir adresleme kaydı olarak kullanılan DPTR veri işaretçisi kaydının yüksek baytıdır;

● P2 SFR - P2 bağlantı noktası mandalları;

● INS IN - program belleğinden komut (komut) bayt girişi;

● ADDR OUT - Rm kayıtlarından (m = 0, 1) veya DPL kaydından (alt kayıt DPTR) harici veri belleği adresinin düşük baytının verilmesi. G/Ç bağlantı noktaları. Bağlantı noktası ataması. Bağlantı Noktaları P0, P1, P2, P3 amaçlanan MK ve harici cihazlar arasında bilgi alışverişi yapmak ve ayrıca aşağıdaki işlevleri gerçekleştirmek için:

● А7…A0 adresinin düşük baytı, Р0 bağlantı noktası üzerinden verilir; harici program belleği ve harici veri belleği (zaman bölmeli) ile çalışırken MK'den bir bayt veri çıkar ve MK'ye girilir;

● A15…A8 adresinin yüksek baytı, harici program belleği ve harici veri belleği ile çalışırken (yalnızca MOVX A,@DPTR ve MOVX @DPTR,A komutları kullanılırken) P2 bağlantı noktası üzerinden verilir;

● P3 port hatları bu hattın latch-latch'ine 1 girilirse alternatif fonksiyonları gerçekleştirmek için kullanılabilir, aksi takdirde hat çıkışında 0 sabitlenir.P3 port çıkışlarının alternatif fonksiyonları Tablo'da verilmiştir. 7.1.3.

Bağlantı noktalarının şematik özellikleri

Şek. 7.1.13, aşağıdakiler dahil olmak üzere her bir MK bağlantı noktasının bir kanalı için diyagramları gösterir:

● alınan veri bitini sabitlemek için bir mandal;

● çıkış yükseltme Çağlayan(sürücü);

● düğüm ile bağlantıçıkış aşaması (P2 hariç);

● B2 ve B3 arabelleklerinden (P4 bağlantı noktası için) oluşan, bağlantı noktasının çıkış tarafından bir veri biti iletmek için bir devre. Mandal, "Mandala yaz" dahili sinyali tarafından saatlenen bir D-flip-flop'tur. D-flip-flop'un doğrudan çıkışından gelen bir miktar veri, yazılım tarafından B1 tamponu aracılığıyla MK'nin dahili veri yolu (SD) hattına "Okuma mandalı" sinyali ile okunabilir.

Çıkış aşaması bağlantı noktası P0, özellikleri yük transistörü VT2'nin yalnızca harici belleğe erişirken (port üzerinden adresleri ve verileri aktarırken) açılması gerçeğinde ortaya çıkan bir invertördür. Diğer tüm modlarda, yük transistörü kapalıdır. Bu nedenle, P0'ı ​​(Şekil 7.1.13, a) genel amaçlı bir çıkış portu olarak kullanmak için, çıkışlarına harici yük dirençleri bağlanmalıdır. Port mandalına 1 yazarken, invertör transistörü VT1 kapatılır ve P0.X portunun harici pimi yüksek dirençli bir duruma aktarılır. Bu modda port pini P0.X giriş görevi görebilir. P0 bağlantı noktası genel amaçlı bir G/Ç bağlantı noktası olarak kullanılıyorsa, P0.X pinlerinin her biri bağımsız olarak giriş veya çıkış olarak çalışabilir. Çıkış aşamaları P1, P2, P3 bağlantı noktaları (Şek. 7.1.13, b,c,d) transistör VT2 olarak kullanılan dahili yük direncine sahip invertörlerin devrelerine göre yapılmıştır.

Bağlantı noktası çıkışlarının durum 0'dan durum 1'e geçişi sırasında anahtarlama süresini azaltmak için, yük transistörü VT2 ile paralel olarak ek bir transistör VT3 eklenir. Kapı devresindeki elemanların yardımıyla transistör VT3, ana kristal osilatörün iki salınım periyoduna eşit bir süre boyunca açılır (makine döngüsünün S1P1, S2P2 aşamaları sırasında). Çıkış aşamaları MX çoklayıcı kullanılarak P0, P2 bağlantı noktaları (Şekil 7.1.13, A, c) mandallara veya "Adres / veri" ve "Adres" dahili veri yollarına bağlanabilir. P1 portunun çıkış aşaması (Şekil 7.1.13, 6) mandala kalıcı olarak bağlıdır.

P3 bağlantı noktası pimi bir çıkışsa ve mandalı 1 ise, çıkış aşaması donanım tarafından kontrol edilir. dahili sinyal Karşılık gelen alternatif işlevin yürütülmesini sağlayan "Alternatif çıkış işlevi", yani. ¯WR, ¯RD veya RxD sinyallerinden biri harici pin üzerinde oluşturulur. Port pini giriş olarak kullanılıyorsa ona gelen alternatif sinyal (TxD, ¯INT0, ¯INT1, T0, T1) “Alternatif Giriş Fonksiyonu” iç hattına iletilir.

Bağlantı noktası yazma modu.

Bir porta yaz komutu verildiğinde, yeni değer S6P2 fazındaki mandala yazılır ve bir sonraki makine çevriminin S1P1 fazındaki port çıkış pinine doğrudan çıkış olarak yazılır.

Bağlantı Noktası Okuma Modu

Port okuma komutları, bilgileri doğrudan port pinlerinin harici pinlerinden veya mandal çıkışlarından okur. İlk durumda, port çıkışından gelen veri biti, MK'nin dahili veri yolu (SD) hattına “Çıkışları oku” sinyali ile B2 arabelleği aracılığıyla programlı olarak okunur. "Mandala yaz", "Mandalı oku", "Pinleri oku" sinyallerinin ilgili komutlar yürütüldüğünde donanım tarafından üretildiğini unutmayın.

İkinci durumda, komutun mandal durum sinyalini okuduğu, gerekirse değiştirdiği ve ardından mandala geri yazdığı sözde "Oku-Değiştir-Yaz" modu uygulanır. Oku-Değiştir-Yaz modu, aşağıdaki komutlar yürütüldüğünde uygulanır: ANL, ORL, XRL, JBC; CPL; I.N.C.; Aralık; DJNC; MOV PX,Y; CLR PX.Y; SETB PX,Y.

Mandal çıkışlarından bilgi okumak, bir port pimindeki mantık seviyesini yorumlarken hataları ortadan kaldırır. Makalenin devamını içinde okuyun.

MCS-51 ailesinin mimarisi, büyük ölçüde amacına göre önceden belirlenmiştir - bina kompakt Ve ucuz dijital cihazlar. Mikrobilgisayarın tüm işlevleri, tek bir mikro devre kullanılarak gerçekleştirilir. MCS-51 ailesi, en basit mikro denetleyicilerden oldukça karmaşık olanlara kadar çok çeşitli mikro devreler içerir. MCS-51 ailesinin mikrodenetleyicileri, hem çeşitli cihazları kontrol etme hem de bireysel düğümleri uygulama görevlerini gerçekleştirmenize izin verir. analog devre. Bu ailenin tüm mikro devreleri çalışır aynı komut sistemi ile, çoğu aynı durumlarda yapılır eşleşen pin çıkışı(kasa için bacakların numaralandırılması). Bu, geliştirilen cihaz için farklı üreticilerin (Intel, Dallas, Atmel, Philips vb.) çiplerini kullanmanıza olanak tanır. değişiklik olmadan devre şeması cihazlar ve programlar.

Şekil 1. K1830BE751 kontrol cihazının yapısal diyagramı

Denetleyicinin blok şeması Şekil 1'de gösterilmektedir ve aşağıdaki ana işlevsel birimlerden oluşur: bir kontrol birimi, bir aritmetik mantık birimi, bir zamanlayıcı/sayaç birimi, bir seri arabirim ve kesme birimi, bir program sayacı, veri belleği ve program hafızası. İkili değişim, dahili 8 bitlik bir veri yolu kullanılarak gerçekleştirilir. Her bloğun amacına daha yakından bakalım. MCS-51 ailesinin hemen hemen tüm temsilcileri bu şemaya göre inşa edilmiştir.. Bu ailenin çeşitli mikro devreleri, yalnızca özel amaçlı kayıtlarda (bağlantı noktası sayısı dahil) farklılık gösterir. Komut sistemi tüm denetleyiciler MCS-51 ailesi 111 içerir temel komutlar 1, 2 veya 3 bayt formatta ve bir çipten diğerine geçerken değişmez. Bu, programların bir çipten diğerine mükemmel taşınabilirliğini sağlar.

Kontrol ve senkronizasyon ünitesi

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

  • zaman aralıkları oluşturmak için cihaz,
  • G/Ç mantığı,
  • talimat kaydı,
  • elektrik tüketimi yönetimi kaydı,
  • komut kod çözücü, bilgisayar kontrol mantığı.

Zaman yerleştirme cihazı fazların, döngülerin ve döngülerin dahili senkronizasyon sinyallerinin üretimi ve çıkışı için tasarlanmıştır. Makine döngülerinin 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 gösterelim.O zaman makine çevriminin süresi 12/F g veya ana osilatörün sinyalinin 12 periyodudur. Giriş-çıkış mantığı, P0-P3 giriş/çıkış portları aracılığıyla harici cihazlarla bilgi alışverişini sağlayan sinyalleri almak ve vermek için tasarlanmıştır.

Komut kaydı yürütülmekte olan komutun 8 bitlik bir işlem kodunu kaydetmek ve depolamak için tasarlanmıştır. İşlem kodu, komutlar ve bilgisayar kontrol mantığı yardımıyla, komutu yürütmek için bir mikro programa dönüştürülür.

Talep Kontrol Kaydı (PCON), güç tüketimini azaltmak ve mikrodenetleyiciden kaynaklanan parazit düzeyini azaltmak için mikrodenetleyicinin çalışmasını durdurmanıza olanak tanır. Mikrodenetleyicinin ana osilatörünü durdurarak güç tüketiminde ve gürültü azaltmada daha da büyük bir azalma elde edilebilir. Bu, PCON talep kontrol kaydındaki bitleri değiştirerek elde edilebilir. nMOS üretim seçeneği için (1816 serisi veya adının ortasında "c" harfi olmayan yabancı yongalar), güç kontrol kaydı PCON, SMOD seri bağlantı noktasının baud hızını kontrol eden yalnızca bir bit içerir ve burada güç tüketimi kontrol biti yoktur.

"MCS-51 mikrodenetleyici mimarisi" makalesiyle birlikte şunları okurlar:


http://web sitesi/MCS51/tablems.php


http://web sitesi/MCS51/SysInstr.php


http://web sitesi/MCS51/port.php

Şu anda, çeşitli şirketler hem Intel hem de diğer üreticiler tarafından bu ailenin birçok modifikasyonunu ve analogunu üretiyor, saat frekansı ve bellek boyutu on kat arttı ve artmaya devam ediyor. Yerleşik LSI modülleri seti de desteklenmektedir; 12 adede kadar sahip çok sayıda modern modele yüksek hızlı yerleşik bir ADC yerleştirilmiştir ve şimdi daha fazla bit olabilir. Ancak MSS51 ailesinin kalbinde, ilk örnekleri 1980'de piyasaya sürülen Intel'den BIS 8051, 80C51, 8751, 87C51, 8031, 80C31 yer alır.

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

Ve böylece 80S51, bir çip üzerinde maske ROM'u olan bir k-MOS LSI'dır, 8031 ​​​​bir çip üzerinde program belleği (ROM, EPROM) olmayan bir n-MOS LSI'dır, 8751, yerleşik (yerleşik) bir n-MOS LSI'dır. bir çip üzerinde) ultraviyole silmeli RPROM. Gerekirse, ilk seri LSI için yayınlanan parametrelere atıfta bulunarak diğer devrelerdeki farklılıklar hakkında çekinceler koyarak LSI 8751'i dikkate almaya devam edeceğiz. Gerekirse, tüm modern değişiklikler hakkında ek bilgileri şirket rehberlerinde ve teknik belgelerde bulabilirsiniz.

A. Genel özellikler ve pim ataması

MCS51 ailesi, MK'nin (aynı ana özelliklere sahip) beş modifikasyonuna dayanmaktadır; aralarındaki temel fark, program belleğinin uygulanması ve güç tüketimidir (bkz. Tablo 3.1). Mikrodenetleyici sekiz bittir, yani. sekiz bitlik kelimeleri işlemek için talimatlara sahiptir, bir Harvard mimarisine sahiptir, ailenin temel örnekleri için 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, 4096 bayt kapasiteli, maske programlanabilir bir ROM program belleği içerir ve seri üretimde kullanılmak üzere tasarlanmıştır. MK 8751, UV silme özellikli 4096 baytlık bir EPROM içerir ve sistem geliştirme aşamasında, programlarda hata ayıklarken ve ayrıca küçük partiler halinde üretirken veya 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 KB'ye kadar harici program belleği kullanabilirler ve önemli ölçüde daha büyük (bir çipte 4 KB'den fazla) ROM program belleği gerektiren sistemlerde etkili bir şekilde kullanılırlar.

Ailenin her bir MK'si, harici RAM IC'leri kullanılarak toplam RAM verisi miktarını 64 KB'ye kadar genişletme olasılığı ile 128 bayt kapasiteli yerleşik bir veri belleği içerir.

    merkezi sekiz bitlik işlemci;

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

    128 bayt veri belleği;

    dört adet sekiz bitlik programlanabilir giriş-çıkış bağlantı noktası;

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

    beş vektöre ve iki yazılım kontrollü öncelik düzeyine sahip bir otomatik vektör kesme sistemi;

    dört modda çalışabilen evrensel bir çift yönlü alıcı-verici dahil olmak üzere seri arayüz;

    saat üreteci.

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

    32 genel amaçlı yazmaç RON, her biri R0 ... R7 adlarına sahip sekiz yazmaçtan oluşan dört sıra olarak düzenlenmiş, belirli bir bankanın seçimi, PSW program durum kaydındaki karşılık gelen bitlerin ayarlanmasıyla program tarafından belirlenir;

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

    MC'nin öğelerini kontrol eden özel işlevlerin bir dizi kaydı. Mikrodenetleyici aşağıdaki çalışma modlarına sahiptir:

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

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

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

Yerleşik RAM adreslerinin üst bölgesinde özel fonksiyonların kayıtları bulunur (SFR, Özel Fonksiyon Kayıtları). Amaçları Tablo'da verilmiştir. 3.2.

Tablo 3.2.

atama

İsim

Pil

Kayıt B

Program Durum Kaydı

yığın işaretçisi

Veri işaretçisi. 2 bayt:

düşük bayt

yüksek bayt

Kesme Öncelik Kaydı

Kesme etkinleştirme kaydı

Zamanlayıcı/Sayaç Modu Kaydı

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 port kontrolü

Seri Tampon

Tüketim yönetimi

* - kayıtlar, izin vermek azar azar adresleme

Tablo 3.2'de listelenen SFR'lerin işlevlerine hızlıca bir göz atalım.

Pil ACC - akümülatör kaydı. Çalışmak için tasarlanmış ekipler

bir akümülatörünüz varsa, anımsatıcı "A" kullanın, örneğin, MOV A, R2 . Anımsatıcı "ACC", örneğin akümülatörü bit parça adreslerken kullanılır. Böylece, A5M51 derleyici kullanılırken akümülatörün beşinci bitinin sembolik adı şu şekilde olacaktır: ACC. 5.

Kayıt olmak İÇİNDE . Çarpma ve bölme işlemleri sırasında kullanılır. Diğer komutlar için, kayıt B, ek bir karalama defteri kaydı olarak kabul edilebilir.

Kayıt olmak devletler 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 otomatik olarak ayarlanır. 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ı

Ritime 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) düşük bitini oluştururken bit 3'te bir taşımayı veya ödünç almayı belirtmek için toplama veya çıkarma talimatlarının yürütülmesi sırasında donanım tarafından ayarlanır/temizlenir.

Donanım veya yazılım

Bayrak 0. Kullanıcı tarafından tanımlanan bayrak.

programlı olarak

programlı olarak

Çalışma kayıtları bankasına işaretçi

programlı olarak

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

taşma bayrağı Bir taşma koşulunu belirtmek için aritmetik talimatların yürütülmesi sırasında donanım tarafından 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 tarafından sıfırlayın veya ayarlayın.

Donanım veya yazılım

Işaretçi yığın SP - PUSH ve CALL komutları sırasında veriler yığına yazılmadan önce içeriği artırılan 8 bitlik bir 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ı mikrodenetleyicinin 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 olarak veya iki bağımsız sekiz bitlik kayıt olarak saklanabilir.

Bağlantı noktası0 - PortZ. P0, P1, P2, P3 özel fonksiyonlarının kayıtlarının ayrı bitleri, P0, P1, P2, P3 portlarının çıkışlarının bitleridir - "mandallardır".

Tampon tutarlı liman SBUF iki ayrı kaydı temsil eder: verici tamponu ve alıcı tamponu. Veriler SBUF'a yazıldığında, verici arabelleğine girer ve SBUF'a bir bayt yazmak, seri port üzerinden iletimini otomatik olarak başlatır. Veriler SBUF'tan okunduğunda, hedef tampondan alınır.

Kayıtlar zamanlayıcı. Kayıt çiftleri (TH0, TL0) ve (TH1, TL1) 16- oluşturur

sırasıyla zamanlayıcı/sayaç 0 ve zamanlayıcı/sayaç 1'in bit sayacı kayıtları.

Kayıtlar yönetmek. Özel işlev kayıtları IP, IE, TMOD, TSON, SCON ve PCON, kesme sistemi, zaman- için kontrol bitleri ve durum bitleri içerir.

önlemler/sayaçlar ve bir seri bağlantı noktası. 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 1EA

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ışma sırasında MC şunları sağlar:

    toplama komutları için minimum yürütme süresi 1 µs'dir;

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

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

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

MCS51 ailesinin mimarisinin en önemli ve ayırt edici özelliği, ALU'nun 8 bitlik veri türleri üzerinde işlem yapabilmesinin yanı sıra, tek bitlik verileri işleyebilmesidir. Bireysel yazılımla erişilebilen bitler, tamamlayıcıları tarafından ayarlanabilir, sıfırlanabilir veya değiştirilebilir, iletilebilir, kontrol edilebilir ve

Şekil 3.2. Dış bulgular

mikrodenetleyici

mantıksal hesaplamalarda kullanılır. Oysa basit veri türleri için destek (mevcut olduğunda

Artan kelime uzunluğuna yönelik mevcut eğilim) ilk bakışta geriye doğru bir adım gibi görünebilir, bu kalite MCS51 ailesinin mikrodenetleyicilerini özellikle denetleyici kullanan uygulamalar için uygun hale getirir. İkincisinin çalışma algoritmaları, standart mikroişlemciler kullanılarak uygulanması zor olan girdi ve çıktı boolean değişkenlerinin varlığını kendi yöntemleriyle varsayar. Tüm bu özellikler topluca MCS51 ailesinin Boolean işlemcisi olarak adlandırılır. Bu güçlü ALU, MCS51 mikrodenetleyici ailesini hem gerçek zamanlı kontrol uygulamaları hem de veri yoğun algoritmalar için eşit derecede uygun bir komut seti haline getirir.

Mikrodenetleyicinin devre şeması Şek. 3.2. Temel versiyonda, 40 pinli bir DIP paketinde paketlenmiştir. Sonuçların amacını düşünün.

Güç kablolarıyla başlayalım «0 İÇİNDE" Ve "5 İÇİNDE" , üzerinden ana gücü alır. Akım tüketimi tabloda verilmiştir. 3.1.

Çözüm "RST" - mikrodenetleyiciyi sıfırlayın. Bu pim aktif olarak yükseğe sürüldüğünde, mod genel Sıfırla ve MK aşağıdaki eylemleri gerçekleştirir:

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

    yığın işaretçisi 07H'ye eşit bir değer alır;

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

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

harici saat için giriş olarak ALE ve PME pinlerini paylaşır;

      kayıtlarda özel fonksiyonlar PCCON, IP ve IE ayrılmış bitleri rastgele değerler alır ve diğer tüm bitler sıfırlanır;

      SBUF kaydı rastgele değerlere ayarlanır.

      P0-P3 bağlantı noktalarının mandallarını "1" olarak ayarlar.

Sıfırlama sonrası mikrodenetleyici kayıtlarının durumları Tablo 3.5'te gösterilmektedir.

Tablo 3.5.

Bilgi

belirsiz

k-MOS için 0XXXX0000B n-MOS için 0XXXXXXXB

RST çıkışının ayrıca alternatif bir işlevi vardır. Ana bellek çıkarıldığında mikrodenetleyicinin RAM içeriğini değişmeden korumak için yedek güç sağlanır.

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

Çözüm 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. Çıktının alternatif bir amacı (işlevi) vardır. Programlama modunda EPROM'un programlama gerilimi ile beslenir.

Çözüm PME (P programı M emory E soylu 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 MK otomatik olarak etkinleştirilir.

Çözüm ALE (A elbise L İngilizce E soylu izin genç adresler) P0 bağlantı noktasındaki adresin alt kısmının çıktısını yanıp söner. Çıkış, EPROM programlanırken de kullanılırken, programlama işlemi sırasında buna bir flaş darbesi uygulanır.

MK dört port grubu içerir: P0, P1, P2 ve P3. Bunlar mikrodenetleyicinin kalan 40 pinidir. Bu bağlantı noktaları, bit bit bilgi girişi - çıktısı için hizmet verebilir, ancak ek olarak, her birinin kendi uzmanlığı vardır. Bağlantı noktasının genelleştirilmiş işlevsel diyagramı, Şek. 3.3. Bağlantı noktası, pime bağlı FET çıkış anahtarları, bir işlev anahtarı, bir D-mandal mandalı ve kontrol mantığı içerir. MK'nin dahili veri yolu üzerindeki mandala bir veya sıfır yazılabilir. Bu bilgi, fonksiyon anahtarı aracılığıyla çıkış tuşlarına ve MC'nin çıkışına beslenir. Bir durumunda, her iki transistör N ve N1 kapalıdır, ancak N2 açıktır. Sıfır durumunda, N açılır-

Xia ve N2 kapanır. Bir bağlantı noktası, uzmanlaştığı alternatif işlevi yerine getirdiği anda, çıkış kilitleme durumu serbest bırakılır. Mikrodenetleyici, harici bir sinyal tarafından ayarlanan portun mandal durumunu ve çıkışının durumunu ayrı ayrı okuyabilir. Bunu yapmak için MK derleyicide ilgili satırları etkinleştiren özel komutlar vardır. Bir pinin durumunu ilgili portun mandalına okumak için,

önceden kaydedilmiş olmak

Dahili

Yönetim Mandalı

fonksiyon anahtarı

Vcc

Hafta sonu

birim. Bu hattın bağlı olduğu “AND” hücresinin çıkışında “mandal okuma” satırı aktif edildiğinde;

lastikleri MK D Q

C Q mandalına yaz

mandal okuma

Bağlantı noktası pimi

etkinleştirildiğinde mikrodenetleyicinin dahili veri yoluna gelen mandalın durumu

"okuma çıkışı" - bağlantı noktasının harici çıkışının durumu.

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

giriş çıkış. Bu limanın arkasında

harici adres otobüslerini organize etme işlevi ve

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

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

mikrodenetleyici. Harici bir program hafızasına erişildiğinde veya harici bir veri hafızası erişim komutu yürütüldüğünde, adresin alt kısmı (A0…A7), ALE pininde yüksek olarak yanıp sönen port pinlerinde ayarlanır. Ardından, veri belleğine yazarken, MK'nin dahili veri yolundan yazılan bilgiler P0 portunun pinlerine beslenir. Okuma işlemlerinde ise tam tersine port pinlerinden gelen bilgiler dahili bus'a gider. P0 bağlantı noktasının bir özelliği, çıkışa güç sağlayan bir "çekmeli" transistör N2'nin olmamasıdır. 1 bağlantı noktasına bir mandal yazıldığında, veri yolunun düzgün çalışması için gerekli olan yüksek empedans durumuna kolayca yerleştirilir. Çıkış üzerinden herhangi bir harici cihaza güç verilmesi gerekiyorsa, güç kaynağı devrelerinden port çıkışına harici dirençler sağlanmalıdır.

Liman P1 – alternatif işlevlere sahip olmayan evrensel çift yönlü G/Ç bağlantı noktası.

Liman R2 – alternatif bir işlev olarak, harici belleğe erişirken adresin üst kısmını (А8…А15) veren evrensel çift yönlü G/Ç bağlantı noktası.

Liman P3 – her biti çeşitli alternatif işlevlerin performansını sağlayan evrensel çift yönlü giriş-çıkış bağlantı noktası. Bu durumda, alternatif fonksiyonlar sadece port çıkış mandallarına üniteler yazılırsa uygulanır, aksi takdirde alternatif fonksiyonların yürütülmesi engellenir. Bunları her bit için ayrı ayrı listeliyoruz:

P3.0 RxD (R kafa e X kalıcı D yedi, harici verileri oku) – yerleşik seri alıcı-vericinin girişi.

P3.1 txd (T tip e X kalıcı D ye, harici veri ilet) – yerleşik seri alıcı-verici çıkışı.

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

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

P3.4 С/T0 – sıfır yerleşik zamanlayıcı/sayaç 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 kontrol çıktısı.

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

Port pinleri P1, P2 ve P3, yaklaşık 0,2 mA akım verme ve sıfırda 3 mA akım alma yeteneğine sahiptir, port P0 pinleri daha güçlüdür ve sıfırda yaklaşık 0,8 mA akım verme ve sıfırda 5 mA akımı kabul etme yeteneğine sahiptir. Mikrodenetleyici pinlerinin kullanım amaçları hakkında kısa bilgi Tablo 3.6'da verilmiştir.

Tablo 3.6.

atama

Çıkış Hedefi

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

Giriş çıkış

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

Ek özelliklere 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ç girişi 0: - T0

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

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

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

Bir kuvars rezonatörü bağlamak için sonuçlar.

çıkış girişi

genel sonuç

8 bit çift yönlü P2 bağlantı noktası. Harici bellekle çalışma modunda A8-A15 çıkış adresi. Dahili ROM test modunda, P2.0 - P2.6 çıkışları, A8-A14 adres girişi olarak kullanılır. Sonuç P2.7 - ROM'u okuma izni.

Giriş çıkış

Program belleği çözünürlüğü

Adres mandalı çıkışı etkinleştirir. EEPROM sinyalini programlarken: PROG

Giriş çıkış

Dahili bellek ile çalışmayı engelleme. EEPROM programlanırken UPR sinyali verilir.

Giriş çıkış

8 bit çift yönlü bağlantı noktası P0. Harici bellekle çalışmak için adres/veri yolu. Dahili ROM'un (RPZU) test modunda veri çıkışı D7-D0.

Giriş çıkış

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

DERS PLANI

1. Giriş

2. Aritmetik ve mantıksal talimatlar

3. Veri aktarım komutları

4. Boole işlemleri

5. Atlama talimatları

1. Giriş

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

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

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

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

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

Komut setibu sistemin 33 işlevini belirtmek için 42 komut anımsatıcısına sahiptir. Çoğu derleme dili yönergesinin sözdizimi, adresleme yöntemlerini ve veri türlerini belirten işlenenler tarafından takip edilen anımsatıcı bir işlevden oluşur. Çeşitli tipler veri veya adresleme modları, anımsatıcı notasyondaki değişikliklerle değil, ayarlanan işlenenlerle belirlenir.

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

Masa. Komut sisteminde kullanılan notasyonlar ve semboller

Tanımlama, sembol

Amaç

Pil

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

Komutta belirtilen yüklenen kaydın numarası

doğrudan

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

Dolaylı olarak adreslenebilir 8 bit dahili veri RAM konumu

8 bit doğrudan işlem kodunda (COP) bulunan veriler

veriH

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

veriL

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

11 bitlik hedef adresi

addrL

Hedef adresin en önemsiz bitleri

8 bit imzalı ofset baytı

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

a15, a14...a0

Hedef adres bitleri

X öğesinin içeriği

X öğesinde saklanan adresteki içerik

M elemanı X'i boşaltın


+

*
VE
VEYA
XOR
/X

Operasyonlar:
eklemeler
çıkarma
çarpma işlemi
bölüm
mantıksal çarpma (VE işlemi)
mantıksal toplama (VEYA işlemi)
ek modül 2 (XOR)
X elemanı ters çevirme

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

2. Aritmetik ve mantıksal talimatlar

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

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

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

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

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

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

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

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

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

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

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

ANLA,@ R1 - A kaydının içeriğinin, adresi kayıtta saklanan numara ile mantıksal olarak çarpılması R 1 (dolaylı adresleme) ve sonucu A kaydında saklayın;

ANL A,R6- A yazmacının içeriğinin, yazmacın içeriğiyle mantıksal olarak çarpımı R 6 ve sonucu A kaydında saklayın;

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

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

Döndürme işlemleri RL A, RLC A, vb. akümülatörün içeriğini bir bit sağa veya sola taşır. Sola döngüsel kaydırma durumunda, en önemsiz bit en önemli konuma taşınır. Sağ döngüsel kayma durumunda bunun tersi olur.

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

3. Veri aktarım komutları

Takım MOV hedefi, kaynak verilerin dahili RAM hücreleri veya özel fonksiyon kayıt alanı arasında aktarılmasına izin verir SFR pil kullanmadan. Bu durumda, dahili RAM'in üst yarısı ile çalışmak yalnızca dolaylı adresleme modunda gerçekleştirilebilir ve kayıtlara erişim SFR– sadece doğrudan adresleme modunda.

Tüm mikro devrelerde MCS-51 yığın doğrudan veri yerleşik belleğe yerleştirilir ve yukarı doğru büyür. Talimat İTMEKönce yığın işaretçisi kaydındaki değeri artırır SP, ve ardından veri baytlarını yığına iter. Takımlar İTMEK Ve POP yalnızca doğrudan adresleme modunda kullanılır (bir baytı yazarken veya geri yüklerken), ancak bir kayıt aracılığıyla dolaylı olarak adresleme yapıldığında yığın her zaman kullanılabilir SP. Böylece yığın, veri belleğinin ilk 128 baytını da kullanabilir. Aynı düşünceler, kayıtların adreslenmesi için yığın yönergelerinin kullanılmasını engeller. SFR.

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

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

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

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

MOVC A,@A+ DPTR ;

MOVC A,@A+ bilgisayar .

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

4. Boole işlemleri

mikro devreler MCS-51 bir Boole işlemcisi içerir. Dahili RAM, 128 doğrudan adreslenebilir bit içerir. Özel işlev kayıt alanı SFR ayrıca 128 bit alana kadar destekleyebilir. Bit komutları, koşullu atlamalar, transferler, sıfırlamalar, ters çevirmeler, AND ve OR işlemlerini gerçekleştirir. Belirtilen tüm bitler doğrudan adresleme modunda mevcuttur.

Biraz taşımak CFözel fonksiyon kaydında "program durum kelimesi PSW', bir bitlik Boolean işlemci akümülatörü olarak kullanılır.

5. Atlama talimatları

Sıçrama işlemi adresleri, derleme dilinde bir etiketle veya program bellek alanındaki gerçek bir değerle gösterilir. Koşullu şube adresleri, program sayacına eklenen bir işaret baytı olan göreli bir ofsette toplanır bilgisayar geçiş koşulu sağlanırsa. Bu tür atlamaların sınırları, talimatı izleyen ilk bayta göre eksi 128 ile 127 arasındadır. Özel fonksiyon kaydında "program durum kelimesi PSW» sıfır bayrağı yoktur, bu nedenle talimatlar JZ Ve JNZ Akümülatördeki verileri test ederken "sıfıra eşittir" koşulunu kontrol edin.

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

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

Takım AJMP 11 bitlik bir adres sabiti kullanır. Komut iki bayttan oluşur. Bu komut yürütüldüğünde, adres sayacının alt 11 biti, komuttaki 11 bitlik adres ile değiştirilir. Program sayacının en önemli beş biti bilgisayar değişmeden kalır. Böylece atlama, talimatı takip eden talimatı içeren 2K baytlık blok içinde yapılabilir. AJMP.

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

Alt program komutla sona erer. RET, komutu takip eden talimata geri dönmenizi sağlar ARAMA. Bu komut, dönüş adresini yığından çıkarır ve program sayacına yükler. bilgisayar . Talimat RETİ kesme rutinlerinden geri dönmek için kullanılır. Tek fark RETİ itibaren RET bu mu RETİ Kesme işleminin tamamlandığını sisteme bildirir. Yürütme sırasında ise RETİ başka kesinti yok, aynı RET.

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

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

Birleştirilmiş formdaki tüm talimatlar 1, 2 veya 3 bayt yer kaplar.

AİLENİN MİKRODENETLEYİCİLERİNİN MİMARİSİÇKS-51

Derslere göre ders notları

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

"Mikroişlemci araçları ve sistemleri"

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

072000 - Standardizasyon ve belgelendirme

210200 - Teknolojik süreçlerin otomasyonu

230104 - Bilgisayar destekli tasarım sistemleri

Tambov 2005

GİRİŞ.. 3

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

1.1. Bellek organizasyonu. 5

1.2. Aritmetik mantık cihazı. 6

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

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

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

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

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

1.8. Kontrol ve senkronizasyon cihazı. on bir

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

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

1.11. seri port. 18

1.11.1. SBUF'u kaydettirin.. 18

1.11.2. Seri port çalışma modları. 18

1.11.3. SCON'u Kaydedin.. 19

1.11.4. Alma/gönderme hızı. 21

1.12. kesinti sistemi. 22

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

2.1. Genel bilgi. 26

2.1.1. Komut türleri. 27

2.1.2. işlenen türleri. 28

2.1.3. Veri adresleme yöntemleri. otuz

2.1.4. sonuç bayrakları. 31

2.1.5. sembolik adresleme 32

2.2. Veri aktarım komutları. 33

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

2.2.2. Aküye erişim. 33

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

2.2.4. Program belleğine erişim.. 34


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

2.3. Aritmetik işlemler. 35

2.4. mantıksal işlemler. 39

2.5. Kontrol aktarım komutları. 43

2.5.1. Uzun geçiş. 43

2.5.2. Mutlak geçiş. 43

2.5.3. Bağıl geçiş. 44

2.5.4. dolaylı geçiş 44

2.5.5. Koşullu atlamalar.. 44

2.5.6. Alt programlar.. 47

2.6. Bitlerle işlemler. 48

Güvenlik soruları... 49

EDEBİYAT.. 50

Ek INTEL 8051 KOMUTA SİSTEMİ 51

GİRİİŞ

20. yüzyılın 80'li yıllarından itibaren mikroişlemci teknolojisinde bağımsız bir sınıf ortaya çıktı. Entegre devreler- çeşitli amaçlar için cihazlara gömülmek üzere tasarlanmış tek çipli mikrodenetleyiciler. Tek çipli mikroişlemciler sınıfından, dahili belleğin varlığı, harici cihazlarla gelişmiş etkileşim araçları ile ayırt edilirler.

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

Ardından Intel, Intel 8051 mikrodenetleyicinin işletim çekirdeğini temel alan yaklaşık 50 model çıkardı.Aynı zamanda Atmel, Philips gibi birçok başka şirket de MCS-51 standardında geliştirilen mikrodenetleyicilerinin üretimine başladı. Ayrıca birde şu var yerli analog mikrodenetleyici Intel 8051 - çip K1816BE51.

2. MİKRODENETLEYİCİ INTEL 8051'İN YAPISI

Intel 8051 mikrodenetleyici, üst düzey n-MOS teknolojisine dayalıdır. Ana özellikleri aşağıdaki gibidir:

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

Dahili saat üreteci (maksimum frekans 12 MHz);

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

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

Dahili program belleği - 4 KB;

dahili veri belleği - 128 bayt;

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

· 2 adet on altı basamaklı çok amaçlı zamanlayıcı/sayaç;

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

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

Şekil 1 - Intel 8051 mikro denetleyicisinin blok diyagramı

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

2.1. Hafıza organizasyonu

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


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

Gerekirse, kullanıcı harici bir ROM yükleyerek 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.

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

Şekil 2 - Intel 8051 Bellek Organizasyonu

Harici ROM okuma flaşı - (Program Mağazası Etkin) harici program belleğine erişirken üretilir ve çip üzerinde bulunan ROM'a erişim sırasında etkin değildir.

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

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

2.2. Aritmetik mantık Birimi

8 bitlik aritmetik mantık birimi (ALU), toplama, çıkarma, çarpma ve bölme gibi aritmetik işlemleri gerçekleştirebilir; mantıksal işlemler AND, OR, özel OR ve ayrıca döngüsel kaydırma, sıfırlama, ters çevirme vb. işlemleri. Yazılımla erişilemeyen kayıtlar T1 ve T2, işlenenlerin geçici olarak saklanması için tasarlanmış girişlere bağlanır, bir ondalık düzeltme devresi (DCU) ve bir özellik oluşturma devresi işlem sonucu (PSW).

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

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

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

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

2.3. Yerleşik program ve veri belleği

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

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

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

Veri belleği gibi program belleği de genişletilebilir.
Harici yongaları bağlayarak 64 KB.

tablo 1

Özel Fonksiyon Kayıt Bloğu

İsim

Pil

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

Program durum sözcüğü

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

Veri işaretçisi kaydı

Kesme Öncelik Kaydı

Kesme maskesi kaydı

Zamanlayıcı/Sayaç Modu Kaydı

Zamanlayıcı kontrolü/durum kaydı

Zamanlayıcı 0 (yüksek bayt)

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

Zamanlayıcı 1 (yüksek bayt)

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

Alıcı-verici kontrol kaydı

Telsiz Tamponu

Güç kontrol kaydı

Not. Adları yıldız (*) ile işaretlenmiş kayıtlar, ayrı bitlerin adreslenmesine izin verir.

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

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

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

2.5. Program durumu kelime kaydı ve bayrakları

ALU'da birçok talimat yürütüldüğünde, Program Durum Sözcüğü (PSW) kaydında sabitlenen bir dizi işlem işareti (işaret) üretilir. Masada. 2, PSW bayraklarını listeler, sembolik adlarını verir ve oluşum koşullarını açıklar.

Tablo 2

PSW Program Durumu Word Formatı

İsim ve amaç

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

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

Bayrak 0. Program tarafından kullanıcı tanımlı bir bayrak olarak ayarlanabilir, temizlenebilir veya kontrol edilebilir.

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

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

Kullanılmamış

parite bayrağı Donanım tarafından her döngüde ayarlayın ve sıfırlayın ve akümülatördeki 1 bitlik tek/çift sayısını sabitleyin, yani çift parite gerçekleştirir

Tablo 3

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

Adres sınırları

En "aktif" PSW bayrağı, toplama, çıkarma ve vardiya dahil olmak üzere çeşitli işlemlerin gerçekleştirilme sürecinde yer alan ve değiştirilen taşıma bayrağıdır. Ek olarak, taşıma bayrağı (CY), bitleri işleyen komutlarda bir "boole toplayıcı" görevi görür. Taşma bayrağı (OV), işaretli tamsayılar üzerindeki işlemlerde aritmetik taşmayı düzeltir ve ikinin tümleyen kodlarında aritmetiğin kullanılmasını mümkün kılar. ALU, kayıt bankası seçim bayraklarını (RS0, RS1) kontrol etmez, değerleri tamamen uygulama programı tarafından belirlenir ve dört kayıt bankasından birini seçmek için kullanılır.

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

Akümülatöre dayalı mikroişlemcilerde, komutların çoğu örtülü adresleme kullanarak onunla çalışır. Intel 8051'de işler farklı. İşlemci bir pile dayalı olmasına rağmen, birçok talimatı onun katılımı olmadan yürütebilir. Örneğin, herhangi bir RDM hücresinden herhangi bir kayda veri aktarılabilir, herhangi bir kayıt anında bir işlenenle yüklenebilir vb.Birçok mantıksal işlem, bir akümülatöre ihtiyaç duymadan gerçekleştirilebilir. Ayrıca, akümülatör kullanılmadan değişkenler artırılabilir, azaltılabilir ve kontrol edilebilir. Bayraklar ve kontrol bitleri aynı şekilde kontrol edilebilir ve değiştirilebilir.

2.6. İşaretçi kayıtları

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

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

2.7. Özel Fonksiyon Kayıtları

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

2.8. Kontrol ve senkronizasyon cihazı

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

Mikrodenetleyici şemasında, talimat kaydı (IR) kontrol cihazına bitişiktir. İşlevi, yürütülmekte olan komutun kodunu saklamaktır.

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

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

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

3. PROG - programlama sinyali,

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

5. VPP - programlama voltajı,

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

7. VPD - bellek yedekleme güç çıkışı dış kaynak,

8. XTAL - bağlantı girişleri kuvars rezonatör.

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

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

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

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

Tablo 4

Alternatif Bağlantı Noktası P3 İşlevleri

İsim ve amaç

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

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

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

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

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

Kesme talebi girişi 0. Düşük sinyal veya kesme algılandı.

UART modunda seri port verici çıkışı. Shift register modunda saat çıkışı

UART modunda seri port alıcı girişi. Shift register modunda veri girişi/çıkışı

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

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

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

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




Tepe