Mikroişlemci - Hızlı Kılavuz
Mikroişlemci, ALU (Aritmetik Mantıksal Birim) işlemlerini gerçekleştirebilen ve ona bağlı diğer cihazlarla iletişim kurabilen küçük bir yonga üzerinde üretilen bir mikro bilgisayarın kontrol birimidir.
Mikroişlemci bir ALU, yazmaç dizisi ve bir kontrol biriminden oluşur. ALU, bellekten veya bir giriş cihazından alınan veriler üzerinde aritmetik ve mantıksal işlemler gerçekleştirir. Register dizisi B, C, D, E, H, L ve akümülatör gibi harflerle tanımlanan yazmaçlardan oluşur. Kontrol ünitesi, bilgisayardaki veri akışını ve talimatları kontrol eder.
Temel Bir Mikrobilgisayarın Blok Şeması
Mikroişlemci Nasıl Çalışır?
Mikroişlemci şu sırayı takip eder: Getir, Kod Çöz ve ardından Yürüt.
Başlangıçta, talimatlar bellekte sırayla saklanır. Mikroişlemci bu talimatları bellekten alır, daha sonra kodunu çözer ve STOP komutuna ulaşılana kadar bu talimatları yürütür. Daha sonra sonucu ikili olarak çıkış portuna gönderir. Bu işlemler arasında, kayıt defteri geçici verileri depolar ve ALU hesaplama işlevlerini gerçekleştirir.
Mikroişlemcide Kullanılan Terimlerin Listesi
İşte bir mikroişlemcide sık kullanılan bazı terimlerin listesi -
Instruction Set - Mikroişlemcinin anlayabileceği talimatlar dizisidir.
Bandwidth - Tek bir komutta işlenen bit sayısıdır.
Clock Speed- İşlemcinin saniye başına gerçekleştirebileceği işlem sayısını belirler. Megahertz (MHz) veya gigahertz (GHz) cinsinden ifade edilir. Saat Hızı olarak da bilinir.
Word Length- Dahili veri yolu, kayıtlar, ALU, vb. Genişliğine bağlıdır. 8 bitlik bir mikroişlemci bir seferde 8 bitlik verileri işleyebilir. Kelime uzunluğu, mikro bilgisayarın tipine bağlı olarak 4 bit ile 64 bit arasında değişir.
Data Types - Mikroişlemci, ikili, BCD, ASCII, işaretli ve işaretsiz sayılar gibi birden çok veri türü biçimine sahiptir.
Bir Mikroişlemcinin Özellikleri
Herhangi bir mikroişlemcinin en önemli özelliklerinden bazılarının listesi aşağıdadır -
Cost-effective - Mikroişlemci çipleri düşük fiyatlarla mevcuttur ve düşük maliyetle sonuçlanır.
Size - Mikroişlemci küçük boyutlu yongadır, dolayısıyla taşınabilirdir.
Low Power Consumption - Mikroişlemciler düşük güç tüketimi olan metaloksit yarı iletken teknolojisi kullanılarak üretilmektedir.
Versatility - Mikroişlemciler çok yönlüdür çünkü yazılım programını yapılandırarak aynı yongayı birkaç uygulamada kullanabiliriz.
Reliability - Mikroişlemcilerdeki bir IC'nin arıza oranı çok düşüktür, bu nedenle güvenilirdir.
Bir mikroişlemci üç kategoriye ayrılabilir -
RISC İşlemci
RISC, Reduced Instruction Set Computer. Bilgisayarın komut setini basitleştirerek yürütme süresini azaltmak için tasarlanmıştır. RISC işlemcileri kullanarak, her komut, sonuçları tek tip yürütme süresiyle yürütmek için yalnızca bir saat döngüsü gerektirir. Bu, daha fazla kod satırı olduğu için verimliliği azaltır, dolayısıyla talimatları depolamak için daha fazla RAM gerekir. Derleyicinin ayrıca yüksek seviyeli dil talimatlarını makine koduna dönüştürmek için daha fazla çalışması gerekir.
RISC işlemcilerinden bazıları -
- Güç PC: 601, 604, 615, 620
- Aralık Alfa: 210642, 211066, 21068, 21164
- MIPS: TS (R10000) RISC İşlemci
- PA-RISC: HP 7100LC
RISC Mimarisi
RISC mikroişlemci mimarisi, yüksek düzeyde optimize edilmiş talimatlar kullanır. Güç verimi nedeniyle Apple iPod gibi taşınabilir cihazlarda kullanılmaktadır.
RISC'nin Özellikleri
Bir RISC işlemcisinin temel özellikleri aşağıdaki gibidir -
Basit talimatlardan oluşur.
Çeşitli veri türü formatlarını destekler.
Basit adresleme modlarını ve boru hattı için sabit uzunluktaki talimatları kullanır.
Herhangi bir bağlamda kullanmak için kaydı destekler.
Bir döngü yürütme süresi.
Bellek konumuna erişmek için “LOAD” ve “STORE” talimatları kullanılır.
Daha fazla sayıda kayıttan oluşur.
Daha az sayıda transistörden oluşur.
CISC İşlemci
CISC, Complex Instruction Set Computer. Komut başına döngü sayısını göz ardı ederek program başına komut sayısını en aza indirmek için tasarlanmıştır. Vurgu, doğrudan donanıma karmaşık talimatlar oluşturmaktır.
Derleyicinin yüksek seviyeli bir dili derleme seviyesi diline / makine koduna çevirmek için çok az iş yapması gerekir çünkü kodun uzunluğu nispeten kısadır, bu nedenle talimatları depolamak için çok az RAM gerekir.
CISC İşlemcilerinden bazıları -
- IBM 370/168
- VAX 11/780
- Intel 80486
CISC Mimarisi
Mimarisi, bellek maliyetini düşürmek için tasarlanmıştır, çünkü daha büyük programlarda daha fazla depolamaya ihtiyaç duyulur ve bu da daha yüksek bellek maliyeti sağlar. Bunu çözmek için, program başına komut sayısı, işlemlerin sayısını tek bir komuta yerleştirerek azaltılabilir.
CISC'nin Özellikleri
- Çeşitli adresleme modları.
- Daha fazla talimat sayısı.
- Değişken uzunluktaki komut formatları.
- Bir komutu yürütmek için birkaç döngü gerekebilir.
- Komut-kod çözme mantığı karmaşıktır.
- Birden fazla adresleme modunu desteklemek için bir talimat gereklidir.
Özel İşlemciler
Bunlar bazı özel amaçlar için tasarlanmış işlemcilerdir. Özel işlemcilerden çok azı kısaca tartışılmıştır -
Yardımcı İşlemci
Bir yardımcı işlemci, özel olarak tasarlanmış bir mikroişlemcidir ve belirli işlevini sıradan mikro işlemciden birçok kez daha hızlı gerçekleştirebilir.
For example - Matematik Yardımcı İşlemcisi.
Bazı Intel matematik yardımcı işlemcileri -
- 8087-8086 ile kullanılır
- 80287-80286 ile kullanılır
- 80387-80386 ile kullanılır
Giriş / Çıkış İşlemcisi
Minimum CPU katılımı ile I / O cihazlarını kontrol etmek için kullanılan, kendine ait bir yerel belleğe sahip özel olarak tasarlanmış bir mikroişlemcidir.
For example -
- DMA (doğrudan Bellek Erişimi) denetleyicisi
- Klavye / fare denetleyicisi
- Grafik ekran denetleyicisi
- SCSI bağlantı noktası denetleyicisi
Transputer (Transistörlü Bilgisayar)
Bir transputer, kendi yerel hafızasına sahip ve bir transputer'i işlemciler arası iletişim için başka bir transputer'e bağlamak için bağlantıları olan, özel olarak tasarlanmış bir mikroişlemcidir. İlk olarak 1980 yılında Inmos tarafından tasarlandı ve VLSI teknolojisinin kullanılması hedefleniyor.
Bir transputer, tek işlemcili bir sistem olarak kullanılabilir veya harici bağlantılara bağlanabilir, bu da inşaat maliyetini düşürür ve performansı artırır.
For example - 16 bit T212, 32 bit T425, kayan noktalı (T800, T805 ve T9000) işlemciler.
DSP (Dijital Sinyal İşlemci)
Bu işlemci, analog sinyalleri dijital formda işlemek için özel olarak tasarlanmıştır. Bu, voltaj seviyesini düzenli zaman aralıklarında örnekleyerek ve o andaki voltajı dijital bir forma dönüştürerek yapılır. Bu işlem, analogdan dijitale dönüştürücü, A'dan D'ye dönüştürücü veya ADC olarak adlandırılan bir devre tarafından gerçekleştirilir.
Bir DSP aşağıdaki bileşenleri içerir -
Program Memory - DSP'nin verileri işlemek için kullanacağı programları depolar.
Data Memory - İşlenecek bilgileri depolar.
Compute Engine - Program hafızasından programa ve veri hafızasından verilere erişerek matematiksel işlemleri gerçekleştirir.
Input/Output - Dış dünyaya bağlanır.
Uygulamaları -
- Ses ve müzik sentezi
- Ses ve video sıkıştırma
- Video sinyali işleme
- 2D ve 3d grafik hızlandırma.
For example - Texas Instrument'ın TMS 320 serisi, ör. TMS 320C40, TMS320C50.
8085, "seksen seksen beş" mikroişlemci olarak telaffuz edilir. Intel tarafından 1977'de NMOS teknolojisi kullanılarak tasarlanan 8 bitlik bir mikroişlemcidir.
Aşağıdaki konfigürasyona sahiptir -
- 8 bit veri yolu
- 64KB'ye kadar adres verebilen 16 bit adres veriyolu
- 16 bitlik bir program sayacı
- 16 bitlik bir yığın işaretçisi
- Çiftler halinde düzenlenmiş altı adet 8 bitlik yazmaç: BC, DE, HL
- 3,2 MHZ tek fazlı saatte çalışmak için + 5V besleme gerektirir
Çamaşır makinelerinde, mikrodalga fırınlarda, cep telefonlarında vb. Kullanılır.
8085 Mikroişlemci - Fonksiyonel Birimler
8085 aşağıdaki işlevsel birimlerden oluşur -
Akümülatör
Aritmetik, mantıksal, I / O & LOAD / STORE işlemlerini gerçekleştirmek için kullanılan 8 bitlik bir kayıttır. Dahili veri yoluna ve ALU'ya bağlanır.
Aritmetik ve mantıksal birim
Adından da anlaşılacağı gibi 8 bitlik veriler üzerinde Toplama, Çıkarma, AND, OR, vb. Gibi aritmetik ve mantıksal işlemleri gerçekleştirir.
Genel amaçlı kayıt
8085 işlemcide 6 genel amaçlı kayıt vardır, yani B, C, D, E, H & L. Her kayıt 8 bitlik verileri tutabilir.
Bu kayıtlar, 16 bitlik verileri tutmak için çift olarak çalışabilir ve eşleştirme kombinasyonları BC, DE ve HL gibidir.
Program sayıcı
Yürütülecek bir sonraki komutun bellek adres konumunu saklamak için kullanılan 16 bitlik bir kayıttır. Mikroişlemci, bir komut yürütüldüğünde programı arttırır, böylece program sayacı yürütülecek bir sonraki komutun hafıza adresini işaret eder.
Yığın işaretçisi
Ayrıca, push & pop işlemleri sırasında her zaman 2 artırılan / azaltılan yığın gibi çalışan 16 bitlik bir yazmaçtır.
Geçici kayıt
Aritmetik ve mantıksal işlemlerin geçici verilerini tutan 8 bitlik bir kayıttır.
Bayrak kaydı
Bu, toplayıcıda depolanan sonuca bağlı olarak 0 veya 1 tutan beş adet 1-bitlik flip-flop'a sahip 8-bitlik bir kayıttır.
Bunlar 5 parmak arası terlik seti -
- İşaret (S)
- Sıfır (Z)
- Yardımcı Taşıma (AC)
- Parite (P)
- Taşıma (C)
Bit konumu aşağıdaki tabloda gösterilmektedir -
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
S | Z | AC | P | CY |
Komut kaydı ve kod çözücü
8 bitlik bir kayıttır. Bir talimat bellekten alındığında, Komut yazmacında saklanır. Komut kod çözücü, Talimat yazmacında bulunan bilgilerin kodunu çözer.
Zamanlama ve kontrol ünitesi
İşlemleri gerçekleştirmek için mikroişlemciye zamanlama ve kontrol sinyali sağlar. Harici ve dahili devreleri kontrol eden zamanlama ve kontrol sinyalleri aşağıdadır -
- Kontrol Sinyalleri: READY, RD ', WR', ALE
- Durum Sinyalleri: S0, S1, IO / M '
- DMA Sinyalleri: HOLD, HLDA
- RESET Sinyalleri: RESET IN, RESET OUT
Kesinti kontrolü
Adından da anlaşılacağı gibi, bir işlem sırasında kesintileri kontrol eder. Bir mikroişlemci bir ana programı çalıştırırken ve bir kesinti meydana geldiğinde, mikroişlemci gelen talebi işlemek için kontrolü ana programdan kaydırır. Talep tamamlandıktan sonra kontrol ana programa geri döner.
8085 mikroişlemcide 5 kesinti sinyali vardır: INTR, RST 7.5, RST 6.5, RST 5.5, TRAP.
Seri Giriş / çıkış kontrolü
Bu iki talimatı kullanarak seri veri iletişimini kontrol eder: SID (Seri giriş verileri) ve SOD (Seri çıkış verileri).
Adres tamponu ve adres veri tamponu
Yığın işaretçisinde ve program sayacında depolanan içerik, CPU ile iletişim kurmak için adres arabelleğine ve adres-veri arabelleğine yüklenir. Bellek ve G / Ç yongaları bu veri yollarına bağlanır; CPU, istenen verileri bellek ve I / O yongaları ile değiştirebilir.
Adres yolu ve veri yolu
Veri yolu, depolanacak verileri taşır. Çift yönlüdür, adres veriyolu ise depolanması gereken yeri taşır ve tek yönlüdür. Veri ve Adres G / Ç cihazlarını aktarmak için kullanılır.
8085 Mimarlık
8085'in mimarisini aşağıdaki görselle tasvir etmeye çalıştık -
Aşağıdaki görüntü 8085 Mikroişlemcinin pin diyagramını göstermektedir -
8085 mikroişlemcinin pimleri yedi gruba ayrılabilir -
Adres veriyolu
A15-A8, en önemli 8 bitlik bellek / IO adresini taşır.
Veri yolu
AD7-AD0, en az önemli olan 8 bitlik adresi ve veri yolunu taşır.
Kontrol ve durum sinyalleri
Bu sinyaller, operasyonun doğasını belirlemek için kullanılır. 3 kontrol sinyali ve 3 durum sinyali vardır.
Üç kontrol sinyali RD, WR ve ALE'dir.
RD - Bu sinyal, seçilen IO'nun veya bellek cihazının okunacağını ve veri yolunda bulunan verileri kabul etmeye hazır olduğunu gösterir.
WR - Bu sinyal, veri yolu üzerindeki verilerin seçilen bir belleğe veya IO konumuna yazılacağını belirtir.
ALE- Mikroişlemci tarafından yeni bir işlem başlatıldığında üretilen pozitif giden bir darbedir. Darbe yükseldiğinde adresi gösterir. Darbe düştüğünde verileri gösterir.
Üç durum sinyali IO / M, S0 ve S1'dir.
IO / M
Bu sinyal, IO ve Bellek işlemleri arasında ayrım yapmak için kullanılır, yani yüksek olduğunda IO işlemini gösterir ve düşük olduğunda bellek işlemini gösterir.
S1 ve S0
Bu sinyaller, mevcut işlemin türünü belirlemek için kullanılır.
Güç kaynağı
2 güç kaynağı sinyali vardır - VCC ve VSS. VCC, + 5v güç kaynağını ve VSS, toprak sinyalini gösterir.
Saat sinyalleri
3 saat sinyali vardır, yani X1, X2, CLK OUT.
X1, X2- Bu iki pime bir kristal (RC, LC N / W) bağlanır ve dahili saat üretecinin frekansını ayarlamak için kullanılır. Bu frekans dahili olarak 2'ye bölünmüştür.
CLK OUT - Bu sinyal, mikroişlemciye bağlanan cihazlar için sistem saati olarak kullanılır.
Kesmeler ve harici olarak başlatılan sinyaller
Kesintiler, mikroişlemcinin bir görevi gerçekleştirmesini istemek için harici cihazlar tarafından üretilen sinyallerdir. 5 kesinti sinyali vardır, yani TRAP, RST 7.5, RST 6.5, RST 5.5 ve INTR. Kesintileri, kesintiler bölümünde ayrıntılı olarak tartışacağız.
INTA - Bir kesinti onay sinyalidir.
RESET IN - Bu sinyal, program sayacını sıfıra ayarlayarak mikroişlemciyi sıfırlamak için kullanılır.
RESET OUT - Bu sinyal, mikroişlemci sıfırlandığında bağlı tüm cihazları sıfırlamak için kullanılır.
READY- Bu sinyal, cihazın veri göndermeye veya almaya hazır olduğunu gösterir. READY düşükse, CPU READY'nin yüksek olmasını beklemelidir.
HOLD - Bu sinyal, başka bir ana birimin adres ve veri yollarının kullanımını talep ettiğini gösterir.
HLDA (HOLD Acknowledge)- CPU'nun HOLD talebini aldığını ve sonraki saat döngüsünde veriyolundan vazgeçeceğini gösterir. HOLD sinyali kaldırıldıktan sonra HLDA düşük olarak ayarlanır.
Seri I / O sinyalleri
SID ve SOD olmak üzere 2 adet seri sinyal vardır ve bu sinyaller seri haberleşme için kullanılır.
SOD (Seri çıkış veri hattı) - Çıkış SOD, SIM talimatı tarafından belirtildiği gibi ayarlanır / sıfırlanır.
SID (Seri giriş veri hattı) - Bu satırdaki veriler, bir RIM talimatı yürütüldüğünde toplayıcıya yüklenir.
Şimdi 8085 Mikroişlemcideki adresleme modlarını tartışalım.
8085'te Adresleme Modları
Bunlar, bir kayıttan diğer bir kayıttan, bellekten kayıda ve kayıttan belleğe içerikte herhangi bir değişiklik olmaksızın veri aktarmak için kullanılan talimatlardır. 8085'teki adresleme modları 5 gruba ayrılmıştır -
Anında adresleme modu
Bu modda, 8/16-bit veri komutun kendisinde işlenenlerinden biri olarak belirtilir. For example: MVI K, 20F: 20F'nin K yazmacına kopyalandığı anlamına gelir.
Adresleme modunu kaydet
Bu modda, veriler bir kayıttan diğerine kopyalanır. For example: MOV K, B: B kaydındaki verilerin K kaydına kopyalandığı anlamına gelir.
Doğrudan adresleme modu
Bu modda, veriler doğrudan verilen adresten kayda kopyalanır. For example: LDB 5000K: 5000K adresindeki verilerin kayıt B'ye kopyalandığı anlamına gelir.
Dolaylı adresleme modu
Bu modda, kayıt tarafından gösterilen adres kullanılarak veriler bir kayıttan diğerine aktarılır. For example: MOV K, B: verilerin kayıt tarafından işaret edilen bellek adresinden K kaydına aktarıldığı anlamına gelir.
İma edilen adresleme modu
Bu mod herhangi bir işlenen gerektirmez; veriler işlem kodunun kendisi tarafından belirtilir.For example: CMP.
8085'deki kesintiler
Kesmeler, mikroişlemciden bir görevi gerçekleştirmesini istemek için harici cihazlar tarafından üretilen sinyallerdir. 5 kesinti sinyali vardır, yani TRAP, RST 7.5, RST 6.5, RST 5.5 ve INTR.
Kesme, parametrelerine göre aşağıdaki gruplara ayrılır -
Vector interrupt - Bu tür kesmede, kesme adresi işlemci tarafından bilinir. For example: RST7.5, RST6.5, RST5.5, TRAP.
Non-Vector interrupt - Bu tür bir kesmede, kesme adresi işlemci tarafından bilinmez, bu nedenle kesintileri gerçekleştirmek için kesme adresinin cihaz tarafından harici olarak gönderilmesi gerekir. For example: INTR.
Maskable interrupt - Bu tür bir kesmede, programa bazı talimatlar yazarak kesmeyi devre dışı bırakabiliriz. For example: RST7.5, RST6.5, RST5.5.
Non-Maskable interrupt - Bu tür bir kesmede, programa bazı talimatlar yazarak kesmeyi devre dışı bırakamayız. For example: TUZAK.
Software interrupt- Bu tür bir kesmede, programcı, kesmeyi yürütmek için komutları programa eklemelidir. 8085'te 8 yazılım kesintisi vardır, yani RST0, RST1, RST2, RST3, RST4, RST5, RST6 ve RST7.
Hardware interrupt - 8085'de donanım kesintileri olarak kullanılan 5 kesme pini vardır, yani TRAP, RST7.5, RST6.5, RST5.5, INTA.
Note- NTA bir kesme değildir, mikroişlemci tarafından alındı bildirimi göndermek için kullanılır. TRAP en yüksek önceliğe sahiptir, daha sonra RST7.5 vb.
Kesinti Servis Rutini (ISR)
Küçük bir program veya yürütüldüğünde karşılık gelen kesinti kaynağına hizmet veren bir rutine ISR adı verilir.
TUZAK
Tüm kesmeler arasında en yüksek önceliğe sahip olan, maskelenemez bir kesmedir. Varsayılan olarak, onaylanana kadar etkindir. Arıza durumunda ISR olarak yürütür ve verileri yedek belleğe gönderir. Bu kesinti, kontrolü 0024H konumuna aktarır.
RST7.5
Tüm kesmeler arasında ikinci en yüksek önceliğe sahip olan maskelenebilir bir kesmedir. Bu kesinti yürütüldüğünde, işlemci PC yazmacının içeriğini yığına kaydeder ve 003CH adresine dallar.
RST 6.5
Tüm kesmeler arasında üçüncü en yüksek önceliğe sahip olan maskelenebilir bir kesmedir. Bu kesinti yürütüldüğünde, işlemci PC yazmacının içeriğini yığına kaydeder ve 0034H adresine dallar.
RST 5.5
Maskelenebilir bir kesintidir. Bu kesinti yürütüldüğünde, işlemci PC yazmacının içeriğini yığına kaydeder ve 002CH adresine dallar.
INTR
Tüm kesmeler arasında en düşük önceliğe sahip olan maskelenebilir bir kesmedir. Mikroişlemci sıfırlanarak devre dışı bırakılabilir.
Ne zaman INTR signal goes highaşağıdaki olaylar meydana gelebilir -
Mikroişlemci, her komutun yürütülmesi sırasında INTR sinyalinin durumunu kontrol eder.
INTR sinyali yüksek olduğunda, mikroişlemci mevcut komutunu tamamlar ve aktif düşük kesinti onay sinyali gönderir.
Talimatlar alındığında, mikroişlemci bir sonraki talimatın adresini yığına kaydeder ve alınan talimatı yürütür.
8085 Mikroişlemcinin programlamasına bir göz atalım.
Komut setleri, bazı görevleri yerine getirmek için komut kodlarıdır. Beş kategoriye ayrılmıştır.
S.No. | Talimat ve Açıklama |
---|---|
1 | Kontrol Talimatları Anlamları ile birlikte Kontrol talimatlarının listesini gösteren tablo aşağıdadır. |
2 | Mantıksal Talimatlar Anlamlarıyla birlikte Mantıksal talimatların listesini gösteren tablo aşağıdadır. |
3 | Dallanma Talimatları Dallanma talimatlarının bir listesini anlamları ile birlikte gösteren tablo aşağıdadır. |
4 | Aritmetik Komutlar Aritmetik komutların listesini anlamları ile gösteren tablo aşağıdadır. |
5 | Veri Aktarım Talimatları Aşağıda, Veri aktarımı talimatlarının listesini anlamları ile gösteren tablo verilmiştir. |
8085 - Demo Programları
Şimdi, yukarıdaki talimatları kullanarak bazı program tanıtımlarına bir göz atalım -
İki 8 Bitlik Sayı Ekleme
3005H & 3006H hafıza konumuna veri eklemek için bir program yazın ve sonucu 3007H hafıza konumuna kaydedin.
Problem demo -
(3005H) = 14H
(3006H) = 89H
Result -
14H + 89H = 9DH
Program kodu şu şekilde yazılabilir -
LXI H 3005H : "HL points 3005H"
MOV A, M : "Getting first operand"
INX H : "HL points 3006H"
ADD M : "Add second operand"
INX H : "HL points 3007H"
MOV M, A : "Store result at 3007H"
HLT : "Exit program"
Bellek Konumlarını Değiştirme
5000M ve 6000M bellek konumunda veri alışverişi yapmak için bir program yazın.
LDA 5000M : "Getting the contents at5000M location into accumulator"
MOV B, A : "Save the contents into B register"
LDA 6000M : "Getting the contents at 6000M location into accumulator"
STA 5000M : "Store the contents of accumulator at address 5000M"
MOV A, B : "Get the saved contents back into A register"
STA 6000M : "Store the contents of accumulator at address 6000M"
Sayıları Artan Sırayla Düzenleme
Hafıza adresi 3000H'den ilk 10 numarayı artan sırada düzenlemek için bir program yazın.
MVI B, 09 :"Initialize counter"
START :"LXI H, 3000H: Initialize memory pointer"
MVI C, 09H :"Initialize counter 2"
BACK: MOV A, M :"Get the number"
INX H :"Increment memory pointer"
CMP M :"Compare number with next number"
JC SKIP :"If less, don’t interchange"
JZ SKIP :"If equal, don’t interchange"
MOV D, M
MOV M, A
DCX H
MOV M, D
INX H :"Interchange two numbers"
SKIP:DCR C :"Decrement counter 2"
JNZ BACK :"If not zero, repeat"
DCR B :"Decrement counter 1"
JNZ START
HLT :"Terminate program execution"
8086 Mikroişlemci, 1976 yılında Intel tarafından tasarlanan 8085 Mikroişlemcinin geliştirilmiş bir sürümüdür. 1MB'ye kadar depolama sağlayan 20 adres hattı ve 16 veri hattına sahip 16 bitlik bir Mikroişlemcidir. Çarpma ve bölme gibi işlemleri kolayca sağlayan güçlü komut setinden oluşur.
İki çalışma modunu destekler, yani Maksimum mod ve Minimum mod. Maksimum mod birden fazla işlemciye sahip sistem için, Minimum mod ise tek işlemcili sistem için uygundur.
8086'nın Özellikleri
8086 mikroişlemcinin en belirgin özellikleri şu şekildedir -
Hafızadan altı komut baytı depolayabilen ve daha hızlı işlemeyi sağlayan bir komut kuyruğuna sahiptir.
16-bit ALU, 16-bit yazmaçlar, dahili veri yolu ve 16-bit harici veri yoluna sahip ilk 16-bit işlemciydi ve daha hızlı işlemle sonuçlandı.
Çalışma sıklığına bağlı olarak 3 versiyonu mevcuttur -
8086 → 5 MHz
8086-2 → 8 MHz
(c) 8086-1 → 10 MHz
Performansı artıran iki ardışık düzen aşaması kullanır, yani Getirme Aşaması ve Yürütme Aşaması.
Getirme aşaması, 6 bayta kadar talimatı önceden getirebilir ve bunları kuyrukta saklar.
Yürütme aşaması bu talimatları yürütür.
256 vektörlü kesintiye sahiptir.
29.000 transistörden oluşur.
8085 ve 8086 Mikroişlemci Karşılaştırması
Size - 8085, 8 bit mikroişlemcidir, 8086 ise 16 bit mikroişlemcidir.
Address Bus - 8085'de 16 bit adres yolu bulunurken, 8086'da 20 bit adres yolu bulunur.
Memory - 8085 64Kb'ye kadar erişebilirken, 8086 1 Mb'a kadar belleğe erişebilir.
Instruction - 8085'in komut kuyruğu yok, 8086'nın komut kuyruğu var.
Pipelining - 8085 bir ardışık düzen mimarisini desteklemezken, 8086 ardışık düzenlenmiş bir mimariyi destekler.
I/O - 8085 2 ^ 8 = 256 G / Ç adresleyebilirken, 8086 2 ^ 16 = 65,536 G / Ç'ye erişebilir.
Cost - 8085'in maliyeti düşük, 8086'nın maliyeti yüksek.
8086 Mimarisi
Aşağıdaki şema bir 8086 Mikroişlemcinin mimarisini göstermektedir -
8086 Mikroişlemci iki işlevsel birime bölünmüştür, yani EU (Yürütme Birimi) ve BIU (Bus Arabirim Birimi).
AB (Yürütme Birimi)
Yürütme birimi, BIU'ya verilerin nereden alınacağını ve ardından bu talimatları çözüp çalıştıracağını belirten talimatlar verir. İşlevi, komut kod çözücüsünü ve ALU'yu kullanarak veriler üzerindeki işlemleri kontrol etmektir. AB, yukarıdaki şekilde gösterildiği gibi sistem veri yollarıyla doğrudan bağlantıya sahip değildir, BIU aracılığıyla veri üzerinden işlemler gerçekleştirir.
Şimdi 8086 mikroişlemcinin işlevsel kısımlarını tartışalım.
ALU
+, -, ×, /, OR, AND, NOT işlemleri gibi tüm aritmetik ve mantıksal işlemleri yönetir.
Bayrak Kaydı
Bir flip-flop gibi davranan 16 bitlik bir kayıttır, yani akümülatörde depolanan sonuca göre durumunu değiştirir. 9 bayrağı vardır ve 2 gruba ayrılır - Koşullu Bayraklar ve Kontrol Bayrakları.
Koşullu Bayraklar
Yürütülen son aritmetik veya mantıksal talimatın sonucunu temsil eder. Koşullu bayrakların listesi aşağıdadır -
Carry flag - Bu bayrak, aritmetik işlemler için bir taşma koşulunu gösterir.
Auxiliary flag- ALU'da bir işlem yapıldığında, alt yarım bayttan (yani D0 - D3) üst yarım bayrama (yani D4 - D7) bir taşıma / barrow ile sonuçlanır, bu durumda bu bayrak ayarlanır, yani D3 bit tarafından D4'e verilen taşıma AF bayrağı. İşlemci, ikili-BCD dönüştürme gerçekleştirmek için bu bayrağı kullanır.
Parity flag- Bu bayrak, sonucun paritesini belirtmek için kullanılır, yani sonucun alt sıra 8 biti çift sayıda 1'i içerdiğinde Parite Bayrağı ayarlanır. Tek sayı olan 1'ler için Eşlik Bayrağı sıfırlanır.
Zero flag - Bu bayrak, aritmetik veya mantıksal işlemin sonucu sıfır olduğunda 1'e, aksi takdirde 0'a ayarlandığında ayarlanır.
Sign flag - Bu bayrak, sonucun işaretini tutar, yani işlemin sonucu negatif olduğunda, işaret bayrağı 1'e, aksi takdirde 0'a ayarlanır.
Overflow flag - Bu bayrak, sistem kapasitesi aşıldığında elde edilen sonucu temsil eder.
Kontrol Bayrakları
Kontrol bayrakları, yürütme biriminin işlemlerini kontrol eder. Kontrol bayraklarının listesi aşağıdadır -
Trap flag- Tek adımlı kontrol için kullanılır ve kullanıcının hata ayıklama için her seferinde bir talimat yürütmesine izin verir. Ayarlanmışsa, program tek adım modunda çalıştırılabilir.
Interrupt flag- Bir kesme etkinleştirme / devre dışı bırakma bayrağıdır, yani bir programın kesintiye uğramasına izin vermek / engellemek için kullanılır. Kesme etkin koşulu için 1'e ve kesme devre dışı koşulu için 0'a ayarlanır.
Direction flag- String işleminde kullanılır. Adından da anlaşılacağı gibi, daha sonra dizge baytlarına yüksek bellek adresinden daha düşük bellek adresine ve tam tersi şekilde erişilir.
Genel amaçlı kayıt
AH, AL, BH, BL, CH, CL, DH ve DL gibi 8 genel amaçlı kayıt vardır. Bu kayıtlar, 8 bitlik verileri depolamak için ayrı ayrı kullanılabilir ve 16 bitlik verileri depolamak için çiftler halinde kullanılabilir. Geçerli kayıt çiftleri AH ve AL, BH ve BL, CH ve CL ve DH ve DL'dir. Sırasıyla AX, BX, CX ve DX'e atıfta bulunulur.
AX register- Akümülatör kaydı olarak da bilinir. Aritmetik işlemler için işlenenleri saklamak için kullanılır.
BX register- Baz kayıt olarak kullanılır. Veri segmenti içinde hafıza alanının başlangıç baz adresini saklamak için kullanılır.
CX register- Sayaç olarak adlandırılır. Döngü sayacını saklamak için döngü talimatında kullanılır.
DX register - Bu kayıt, G / Ç talimatı için G / Ç bağlantı noktası adresini tutmak için kullanılır.
Yığın işaretçisi kaydı
Bu, 16 bitlik bir kayıttır ve adresi segmentin başlangıcından bellek konumuna, yığın üzerinde en son bir sözcüğün depolandığı yere kadar tutar.
BIU (Veri Yolu Arayüz Birimi)
BIU, adres gönderme, hafızadan talimat alma, portlardan ve hafızadan veri okuma ve portlara ve hafızaya veri yazma gibi AB için veri yolları üzerindeki tüm veri ve adres transferlerini halleder. AB'nin Sistem Otobüsleri ile yön bağlantısı yoktur, bu nedenle BIU ile bu mümkündür. AB ve BIU, Dahili Veri Yolu ile bağlantılıdır.
Aşağıdaki işlevsel parçalara sahiptir -
Instruction queue- BIU, talimat kuyruğunu içerir. BIU, 6 bayta kadar sonraki talimatları alır ve bunları talimat kuyruğunda saklar. AB komutları yürüttüğünde ve bir sonraki talimatı için hazır olduğunda, bu komut kuyruğundaki talimatı basitçe okur ve yürütme hızının artmasına neden olur.
Mevcut talimat yürütülürken sonraki talimatı getirme çağrılır pipelining.
Segment register- BIU'da CS, DS, SS & ES olmak üzere 4 segmentli veri yolu vardır. İşlemci tarafından bellek konumlarına erişmek için kullanılan talimatların ve verilerin adreslerini bellekte tutar. Ayrıca, AB tarafından yürütülecek bir sonraki talimatın adresini tutan 1 işaretçi kayıt IP'si içerir.
CS- Kod Segmenti anlamına gelir. Çalıştırılabilir programın depolandığı belleğin kod bölümündeki bir bellek konumunu adreslemek için kullanılır.
DS- Veri Segmenti anlamına gelir. Program tarafından kullanılan verilerden oluşur ve veri segmentinde bir ofset adresi veya ofset adresini tutan diğer kaydın içeriğiyle erişilir.
SS- Stack Segment anlamına gelir. Yürütme sırasında verileri ve adresleri depolamak için hafızayı kullanır.
ES- Ekstra Segment anlamına gelir. ES, dizge tarafından ekstra hedef verileri tutmak için kullanılan ek veri bölümüdür.
Instruction pointer - Yürütülecek bir sonraki komutun adresini tutmak için kullanılan 16 bitlik bir kayıttır.
8086, 40-pin DIP (Dual Inline Package) çipinde bulunan ilk 16-bit mikroişlemciydi. Şimdi bir 8086 Mikroişlemcinin pin konfigürasyonunu ayrıntılı olarak tartışalım.
8086 Pin Diyagramı
İşte 8086 mikroişlemcinin pim diyagramı -
Şimdi sinyalleri ayrıntılı olarak tartışalım -
Power supply and frequency signals
V CC pin 40'ta 5V DC besleme kullanır ve çalışması için V SS pin 1 ve 20'de topraklama kullanır .
Clock signal
Saat sinyali, Pin-19 aracılığıyla sağlanır. İşlemler için işlemciye zamanlama sağlar. 5MHz, 8MHz ve 10MHz gibi farklı versiyonlar için frekansı farklıdır.
Address/data bus
AD0-AD15. Bunlar 16 adres / veri yolu. AD0-AD7 düşük sıralı bayt verisi taşır ve AD8AD15 yüksek sıralı bayt verisi taşır. İlk saat döngüsü sırasında 16 bitlik adres taşır ve bundan sonra 16 bitlik veri taşır.
Address/status bus
A16-A19 / S3-S6. Bunlar 4 adres / durum veri yoludur. İlk saat döngüsü sırasında 4 bitlik adres taşır ve daha sonra durum sinyalleri taşır.
S7/BHE
BHE, Bus High Enable anlamına gelir. 34 pininde bulunur ve D8-D15 veri yolu kullanılarak veri aktarımını belirtmek için kullanılır. Bu sinyal ilk saat döngüsü sırasında düşüktür, daha sonra aktiftir.
Read($\overline{RD}$)
Pin 32'de bulunur ve Okuma işlemi için sinyal okumak için kullanılır.
Ready
22 numaralı pimde bulunur. Verilerin aktarıldığı I / O cihazlarından gelen bir onay sinyalidir. Aktif bir yüksek sinyaldir. Yüksek olduğunda, cihazın veri aktarmaya hazır olduğunu gösterir. Düşük olduğunda bekleme durumunu gösterir.
RESET
Bu pin 21'de mevcuttur ve yürütmeyi yeniden başlatmak için kullanılır. İşlemcinin mevcut aktivitesini hemen sonlandırmasına neden olur. Bu sinyal, mikroişlemciyi SIFIRLAMAK için ilk 4 saat döngüsü boyunca yüksek aktiftir.
INTR
Pim 18'de mevcuttur. İşlemcinin bunu bir kesme olarak kabul edip etmediğini belirlemek için her komutun son saat döngüsü sırasında örneklenen bir kesme isteği sinyalidir.
NMI
Maskelenemez kesinti anlamına gelir ve pim 17'de bulunur. Mikroişlemciye bir kesme isteğine neden olan kenarla tetiklenen bir giriştir.
$\overline{TEST}$
Bu sinyal, bekleme durumuna benzer ve pim 23'te mevcuttur. Bu sinyal yüksek olduğunda, işlemcinin BOŞTA durumunu beklemesi gerekir, aksi takdirde yürütme devam eder.
MN/$\overline{MX}$
Minimum / Maksimum anlamına gelir ve pin 33'te bulunur. İşlemcinin hangi modda çalışacağını gösterir; yüksek olduğunda minimum modda ve yardımcısı olarak çalışır.
INTA
Bu bir kesinti onaylama sinyali ve pim 24'te bulunan kimliktir. Mikroişlemci bu sinyali aldığında, kesmeyi onaylar.
ALE
Adres etkinleştirme mandalı anlamına gelir ve pim 25'te bulunur. İşlemci herhangi bir işleme her başladığında pozitif bir darbe oluşturulur. Bu sinyal, adres / veri hatlarında geçerli bir adresin varlığını gösterir.
DEN
Bu, Veri Etkinleştirme anlamına gelir ve pim 26'da bulunur. Alıcı-Verici 8286'yı etkinleştirmek için kullanılır. Alıcı-verici, verileri adres / veri yolundan ayırmak için kullanılan bir cihazdır.
DT/R
Veri Gönderme / Alma sinyalinin kısaltmasıdır ve 27 numaralı pimde bulunur. Alıcı-verici üzerinden veri akışının yönüne karar verir. Veri yüksek olduğunda, veri iletilir ve bunun tersi de geçerlidir.
M/IO
Bu sinyal, bellek ve G / Ç işlemleri arasında ayrım yapmak için kullanılır. Yüksek olduğunda, G / Ç işlemini, düşük olduğunda bellek çalışmasını gösterir. 28 numaralı pimde mevcuttur.
WR
Yazma sinyali anlamına gelir ve pim 29'da bulunur. M / IO sinyalinin durumuna bağlı olarak verileri belleğe veya çıkış cihazına yazmak için kullanılır.
HLDA
Onay Tutma sinyali anlamına gelir ve pim 30'da bulunur. Bu sinyal HOLD sinyalini onaylar.
HOLD
Bu sinyal, işlemciye, harici cihazların adres / veri yollarına erişim talep ettiğini belirtir. 31 numaralı pimde mevcuttur.
QS1 and QS0
Bunlar kuyruk durum sinyalleridir ve pin 24 ve 25'te mevcuttur. Bu sinyaller komut kuyruğunun durumunu sağlar. Koşulları aşağıdaki tabloda gösterilmektedir -
QS 0 | QS 1 | Durum |
---|---|---|
0 | 0 | İşlem yok |
0 | 1 | Kuyruktan ilk opcode baytı |
1 | 0 | Sırayı boşalt |
1 | 1 | Kuyruktan sonraki bayt |
S0, S1, S2
Bunlar, bellek ve G / Ç kontrol sinyalleri oluşturmak için Veri Yolu Denetleyicisi 8288 tarafından kullanılan işlem durumunu sağlayan durum sinyalleridir. Bunlar, pin 26, 27 ve 28'de mevcuttur. Durumlarını gösteren tablo aşağıdadır -
Ç 2 | S 1 | S 0 | Durum |
---|---|---|---|
0 | 0 | 0 | Onaylamayı kes |
0 | 0 | 1 | G / Ç Okuma |
0 | 1 | 0 | G / Ç Yazma |
0 | 1 | 1 | Durdur |
1 | 0 | 0 | İşlem kodu getirme |
1 | 0 | 1 | Hafıza oku |
1 | 1 | 0 | Hafıza yazma |
1 | 1 | 1 | Pasif |
LOCK
Bu sinyal aktif olduğunda, diğer işlemcilere CPU'dan sistem veriyolunu terk etmesini istememelerini belirtir. Herhangi bir komutta KİLİT öneki kullanılarak etkinleştirilir ve pim 29'da bulunur.
RQ/GT1 and RQ/GT0
Bunlar, CPU'dan sistem veri yolunu serbest bırakmasını isteyen diğer işlemciler tarafından kullanılan İstek / Verme sinyalleridir. Sinyal CPU tarafından alındığında, alındı bildirimi gönderir. RQ / GT 0 , RQ / GT 1'den daha yüksek önceliğe sahiptir .
8086 mikroişlemci 8 tür talimatı destekler -
- Veri Aktarım Talimatları
- Aritmetik Komutlar
- Bit Manipülasyon Talimatları
- Dize Talimatları
- Program Yürütme Transfer Talimatları (Dal ve Döngü Talimatları)
- İşlemci Kontrol Talimatları
- Yineleme Kontrol Talimatları
- Kesme Talimatları
Şimdi bu komut setlerini ayrıntılı olarak tartışalım.
Veri Aktarım Talimatları
Bu talimatlar, verileri kaynak işlenenden hedef işlenene aktarmak için kullanılır. Bu grup altındaki talimatların listesi aşağıdadır -
Bir kelimeyi aktarma talimatı
MOV - Sağlanan kaynaktan sağlanan hedefe baytı veya kelimeyi kopyalamak için kullanılır.
PPUSH - Yığının en üstüne bir kelime koymak için kullanılır.
POP - Yığının en üstünden sağlanan konuma bir kelime almak için kullanılır.
PUSHA - Tüm kayıtları yığına koymak için kullanılır.
POPA - Yığından tüm kayıtlara kelime almak için kullanılır.
XCHG - İki konumdan veri alışverişi yapmak için kullanılır.
XLAT - Bellekteki bir tabloyu kullanarak AL'de bir baytı çevirmek için kullanılır.
Giriş ve çıkış bağlantı noktası aktarımı için talimatlar
IN - Sağlanan bağlantı noktasından akümülatöre bir bayt veya kelime okumak için kullanılır.
OUT - Akümülatörden sağlanan bağlantı noktasına bir bayt veya kelime göndermek için kullanılır.
Adresi aktarma talimatları
LEA - İşlenenin adresini sağlanan kayda yüklemek için kullanılır.
LDS - Hafızadan DS kaydını ve sağlanan diğer kayıtları yüklemek için kullanılır
LES - ES kaydını ve sağlanan diğer kayıtları bellekten yüklemek için kullanılır.
Bayrak kayıtlarını transfer etme talimatları
LAHF - AH'yi bayrak yazmacının düşük baytıyla yüklemek için kullanılır.
SAHF - AH kaydını bayrak yazmacının düşük baytında saklamak için kullanılır.
PUSHF - Yığının tepesindeki bayrak kaydını kopyalamak için kullanılır.
POPF - Yığının en üstündeki bir kelimeyi bayrak kaydına kopyalamak için kullanılır.
Aritmetik Komutlar
Bu talimatlar toplama, çıkarma, çarpma, bölme gibi aritmetik işlemleri gerçekleştirmek için kullanılır.
Bu grup altındaki talimatların listesi aşağıdadır -
Ekleme yapmak için talimatlar
ADD - Sağlanan baytı bayta / kelimeye eklemek için kullanılır.
ADC - Carry ile eklemek için kullanılır.
INC - Sağlanan baytı / kelimeyi 1 artırmak için kullanılır.
AAA - Eklemeden sonra ASCII'yi ayarlamak için kullanılır.
DAA - Toplama / çıkarma işleminden sonra ondalık sayıyı ayarlamak için kullanılır.
Çıkarma gerçekleştirme talimatları
SUB - Bayttan / sözcükten baytı çıkarmak için kullanılır.
SBB - Ödünç alarak çıkarma yapmak için kullanılır.
DEC - Sağlanan baytı / kelimeyi 1 azaltmak için kullanılır.
NPG - Sağlanan bayt / kelimenin her bir bitini olumsuzlamak ve 1 / 2'nin tamamlayıcısını eklemek için kullanılır.
CMP - Sağlanan 2 bayt / kelimeyi karşılaştırmak için kullanılır.
AAS - Çıkarmadan sonra ASCII kodlarını ayarlamak için kullanılır.
DAS - Çıkarmadan sonra ondalık sayı ayarlamak için kullanılır.
Çarpma işlemi yapma talimatı
MUL - İşaretsiz baytı bayt / kelime kelime çarpmak için kullanılır.
IMUL - İşaretli baytı bayt / kelimeye göre çarpmak için kullanılır.
AAM - Çarpma işleminden sonra ASCII kodlarını ayarlamak için kullanılır.
Bölme yapmak için talimatlar
DIV - İşaretsiz kelimeyi bayta veya işaretsiz çift kelimeye göre bölmek için kullanılır.
IDIV - İşaretli kelimeyi bayta veya işaretli çift kelimeye göre bölmek için kullanılır.
AAD - Bölmeden sonra ASCII kodlarını ayarlamak için kullanılır.
CBW - Kelimenin üst baytını, alt baytın işaret bitinin kopyalarıyla doldurmak için kullanılır.
CWD - Çift sözcüğün üstteki sözcüğünü alt sözcüğün işaret biti ile doldurmak için kullanılır.
Bit Manipülasyon Talimatları
Bu talimatlar, veri bitlerinin dahil olduğu işlemleri, yani mantıksal, kaydırma, vb. İşlemleri gerçekleştirmek için kullanılır.
Bu grup altındaki talimatların listesi aşağıdadır -
Mantıksal işlem gerçekleştirme talimatları
NOT - Bir bayt veya kelimenin her bir parçasını ters çevirmek için kullanılır.
AND - Bir bayt / kelime içindeki her biti başka bir bayt / kelimedeki karşılık gelen bit ile eklemek için kullanılır.
OR - Bir bayt / kelimedeki her biti başka bir bayt / kelimedeki karşılık gelen bit ile çarpmak için kullanılır.
XOR - Başka bir bayt / word'deki karşılık gelen bit ile bir bayt / word'deki her bit üzerinde Exclusive-OR işlemini gerçekleştirmek için kullanılır.
TEST - İşlenenleri etkilemeden bayrakları güncellemek için işlenenler eklemek için kullanılır.
Vardiya işlemlerini gerçekleştirme talimatları
SHL/SAL - Bir baytın / sözcüğün bitlerini sola kaydırmak ve LSB'lere sıfır (S) koymak için kullanılır.
SHR - Bir baytın / sözcüğün bitlerini sağa kaydırmak ve MSB'lere sıfır (S) koymak için kullanılır.
SAR - Bir baytın / sözcüğün bitlerini sağa kaydırmak ve eski MSB'yi yeni MSB'ye kopyalamak için kullanılır.
Döndürme işlemlerini gerçekleştirme talimatları
ROL - Bayt / kelime bitlerini sola döndürmek için kullanılır, yani MSB'yi LSB'ye ve Taşıma Bayrağı [CF] için.
ROR - Bayt / kelime bitlerini sağa doğru döndürmek için kullanılır, yani LSB'yi MSB'ye ve Taşıma Bayrağı [CF] için.
RCR - Bayt / kelime bitlerini sağa döndürmek için kullanılır, yani LSB'den CF'ye ve CF'den MSB'ye.
RCL - Bayt / kelime bitlerini sola döndürmek için kullanılır, yani MSB'den CF'ye ve CF'den LSB'ye.
Dize Talimatları
Dize, bir bayt / kelime grubudur ve bunların hafızası her zaman sıralı bir sırada tahsis edilir.
Bu grup altındaki talimatların listesi aşağıdadır -
REP - Verilen talimatı CX ≠ 0'a kadar tekrar etmek için kullanılır.
REPE/REPZ - Verilen talimatı CX = 0 veya sıfır bayrak ZF = 1 olana kadar tekrarlamak için kullanılır.
REPNE/REPNZ - Verilen talimatı CX = 0 veya sıfır bayrak ZF = 1 olana kadar tekrarlamak için kullanılır.
MOVS/MOVSB/MOVSW - Bayt / kelimeyi bir dizeden diğerine taşımak için kullanılır.
COMS/COMPSB/COMPSW - İki dize baytı / kelimeyi karşılaştırmak için kullanılır.
INS/INSB/INSW - G / Ç bağlantı noktasından sağlanan bellek konumuna bir giriş dizesi / bayt / kelime olarak kullanılır.
OUTS/OUTSB/OUTSW - Sağlanan bellek konumundan G / Ç bağlantı noktasına bir çıkış dizesi / bayt / kelime olarak kullanılır.
SCAS/SCASB/SCASW - Bir dizeyi taramak ve baytını AL'deki bir baytla veya dizge sözcüğünü AX'teki bir sözcükle karşılaştırmak için kullanılır.
LODS/LODSB/LODSW - Dize baytını AL'ye veya dize kelimesini AX'e depolamak için kullanılır.
Program Yürütme Transfer Talimatları (Dal ve Döngü Talimatları)
Bu talimatlar, bir yürütme sırasında talimatları aktarmak / dallara ayırmak için kullanılır. Aşağıdaki talimatları içerir -
Herhangi bir koşul olmaksızın bir yürütme sırasında talimatı aktarma talimatları -
CALL - Bir prosedürü çağırmak ve dönüş adreslerini yığına kaydetmek için kullanılır.
RET - Prosedürden ana programa dönmek için kullanılır.
JMP - Bir sonraki talimata geçmek için sağlanan adrese atlamak için kullanılır.
Bazı koşullara sahip bir yürütme sırasında talimatı aktarma talimatları -
JA/JNBE - Yukarı / aşağı değil / eşit talimatı sağlıyorsa atlamak için kullanılır.
JAE/JNB - Yukarıdaki / altında olmayan talimat tatmin ederse atlamak için kullanılır.
JBE/JNA - Aşağı / eşit / üstü olmayan komutlar yerine getirildiğinde atlamak için kullanılır.
JC - Carry bayrağı CF = 1 ise atlamak için kullanılır
JE/JZ - Eşit / sıfır bayrağı ZF = 1 ise atlamak için kullanılır
JG/JNLE - Daha büyük / daha az / eşittir talimatı karşılanırsa atlamak için kullanılır.
JGE/JNL - Talimattan büyük / eşit / küçük değilse atlamak için kullanılır.
JL/JNGE - Küçüktür / büyük değil / eşit komut tatmin ederse atlamak için kullanılır.
JLE/JNG - Küçük / eşitse / talimattan büyük değilse atlamak için kullanılır.
JNC - Elde bayrağı yoksa atlamak için kullanılır (CF = 0)
JNE/JNZ - Eşit değilse / sıfır bayrağı atlamak için kullanılır ZF = 0
JNO - Hiçbir taşma bayrağı OF = 0 ise atlamak için kullanılır
JNP/JPO - Eşlik / eşlik değilse atlamak için kullanılır tek PF = 0
JNS - SF = 0 imzalanmazsa atlamak için kullanılır
JO - Taşma bayrağı OF = 1 ise atlamak için kullanılır
JP/JPE - Parite / parite PF = 1 olsa bile atlamak için kullanılır
JS - İşaret bayrağı SF = 1 ise atlamak için kullanılır
İşlemci Kontrol Talimatları
Bu talimatlar, bayrak değerlerini ayarlayarak / sıfırlayarak işlemci eylemini kontrol etmek için kullanılır.
Bu grup altındaki talimatlar aşağıdadır -
STC - Taşıma işaretini CF'yi 1'e ayarlamak için kullanılır
CLC - Taşıma işaretini (CF) sıfırlamak / sıfırlamak için kullanılır
CMC - Tamamlayıcıyı taşıma bayrağı CF durumuna koymak için kullanılır.
STD - DF yön işaretini 1'e ayarlamak için kullanılır
CLD - DF yön işaretini sıfırlamak / sıfırlamak için kullanılır
STI - Kesme etkinleştirme bayrağını 1'e ayarlamak, yani INTR girişini etkinleştirmek için kullanılır.
CLI - Kesme etkinleştirme bayrağını 0'a temizlemek, yani INTR girişini devre dışı bırakmak için kullanılır.
Yineleme Kontrol Talimatları
Bu talimatlar, verilen talimatları birkaç kez yürütmek için kullanılır. Bu grup altındaki talimatların listesi aşağıdadır -
LOOP - Koşul tatmin edene kadar bir talimat grubunu döngüye almak için kullanılır, yani CX = 0
LOOPE/LOOPZ - ZF = 1 & CX = 0'ı karşılayana kadar bir grup talimatı döngüye almak için kullanılır
LOOPNE/LOOPNZ - ZF = 0 & CX = 0'ı karşılayana kadar bir grup talimatı döngüye almak için kullanılır
JCXZ - CX = 0 ise sağlanan adrese atlamak için kullanılır
Kesme Talimatları
Bu talimatlar, programın yürütülmesi sırasında kesmeyi çağırmak için kullanılır.
INT - Programı yürütme ve belirtilen hizmeti çağırma sırasında kesmek için kullanılır.
INTO - OF = 1 ise, yürütme sırasında programı durdurmak için kullanılır
IRET - Kesinti servisinden ana programa dönmek için kullanılır
Interruptprogramın yürütülmesi sırasında geçici bir durma yaratma yöntemidir ve çevresel aygıtların mikroişlemciye erişmesine izin verir. Mikroişlemci, bu kesintiye birISR (Interrupt Service Routine), mikroişlemciye kesmenin nasıl işleneceği konusunda talimat vermek için kısa bir programdır.
Aşağıdaki resim, 8086 mikroişlemcide sahip olduğumuz kesinti türlerini göstermektedir -
Donanım Kesintileri
Donanım kesintisine, mikroişlemciye belirli bir pin aracılığıyla bir sinyal göndererek herhangi bir çevresel aygıt neden olur.
8086'nın iki donanım kesme pini vardır, yani NMI ve INTR. NMI, maskelenemez bir kesmedir ve INTR, daha düşük önceliğe sahip maskelenebilir bir kesmedir. İlişkili bir kesme pini daha INTA, kesme onayı olarak adlandırılır.
NMI
Maskelenebilir kesme istek pininden (INTR) daha yüksek önceliğe sahip tek bir maskelenemez kesme pinidir (NMI) ve tip 2 kesintidir.
Bu kesinti etkinleştirildiğinde, bu eylemler gerçekleşir -
Devam etmekte olan mevcut talimatı tamamlar.
Flag register değerlerini yığına iter.
Geri dönüş adresinin CS (kod segmenti) değerini ve IP (komut işaretçisi) değerini yığına iter.
IP, 00008H kelime konumunun içeriğinden yüklenir.
CS, bir sonraki kelime konumu 0000AH'nin içeriğinden yüklenir.
Kesinti bayrağı ve tuzak bayrağı 0'a sıfırlanır.
INTR
INTR, maskelenebilir bir kesmedir çünkü mikroişlemci yalnızca kesmeler, ayarlanmış kesme bayrağı komutu kullanılarak etkinleştirilirse kesintiye uğrayacaktır. Net kesme bayrağı komutu kullanılarak etkinleştirilmemelidir.
INTR kesintisi, bir G / Ç bağlantı noktası tarafından etkinleştirilir. Kesme etkinleştirilirse ve NMI devre dışı bırakılırsa, mikroişlemci önce mevcut yürütmeyi tamamlar ve INTA pinine iki kez '0' gönderir. İlk '0', INTA'nın harici cihaza hazır olması için bilgi verdiği anlamına gelir ve ikinci '0' sırasında mikroişlemci, programlanabilir kesinti denetleyicisinden 8 biti, örneğin X'i alır.
Bu işlemler mikroişlemci tarafından gerçekleştirilir -
Önce mevcut talimatı tamamlar.
INTA çıkışını etkinleştirir ve kesme türünü alır, örneğin X.
Flag register değeri, dönüş adresinin CS değeri ve dönüş adresinin IP değeri yığına basılır.
IP değeri, X × 4 kelime konumunun içeriğinden yüklenir
CS, sonraki kelime konumunun içeriğinden yüklenir.
Kesinti bayrağı ve tuzak bayrağı 0'a sıfırlandı
Yazılım Kesintileri
Kesintiler oluşturmak için bazı talimatlar programa istenen konuma eklenir. Bu kesme talimatları, çeşitli kesme işleyicilerinin çalışmasını test etmek için kullanılabilir. İçerir -
INT- Tip numaralı kesme talimatı
2 baytlık talimattır. İlk bayt işlem kodunu sağlar ve ikinci bayt kesinti türü numarasını sağlar. Bu grup altında 256 kesme türü vardır.
Yürütülmesi aşağıdaki adımları içerir -
Flag register değeri yığına itilir.
İade adresinin CS değeri ve iade adresinin IP değeri yığına basılır.
IP, kelime konumu 'tip numarası' × 4 içeriğinden yüklenir
CS, sonraki kelime konumunun içeriğinden yüklenir.
Kesinti Bayrağı ve Tuzak Bayrağı 0'a sıfırlandı
Type0 kesmesinin başlangıç adresi 000000H, tip1 kesme için 00004H, tip2 için 00008H ve …… böyledir. İlk beş işaretçi, özel kesme işaretçileridir. yani -
TYPE 0 kesme, sıfır durumuna bölünmeyi temsil eder.
TYPE 1 kesme, bir programın hata ayıklaması sırasında tek adımlı yürütmeyi temsil eder.
TYPE 2 kesme, maskelenemez NMI kesmesini temsil eder.
TYPE 3 kesme, kesme noktası kesmesini temsil eder.
TYPE 4 kesme, taşma kesintisini temsil eder.
Tip 5'ten Tip 31'e kesintiler diğer gelişmiş mikro işlemciler için ayrılmıştır ve 32'den Tip 255'e kadar olan kesintiler donanım ve yazılım kesintileri için mevcuttur.
INT 3 Kırılma Noktalı Kesme Talimatı
İşlem kodu CCH olan 1 baytlık bir talimattır. Bu talimatlar programa eklenir, böylece işlemci oraya ulaştığında, programın normal çalışmasını durdurur ve kırılma noktası prosedürünü izler.
Yürütülmesi aşağıdaki adımları içerir -
Flag register değeri yığına itilir.
İade adresinin CS değeri ve iade adresinin IP değeri yığına basılır.
IP, kelime konumu 3 × 4 = 0000CH'nin içeriğinden yüklenir
CS, sonraki kelime konumunun içeriğinden yüklenir.
Kesinti Bayrağı ve Tuzak Bayrağı 0'a sıfırlandı
INTO - Taşma talimatında kesinti
1 baytlık bir talimat ve anımsatıcı INTO. Bu talimatın işlem kodu CEH'dir. Adından da anlaşılacağı gibi, bu bir koşullu kesme talimatıdır, yani yalnızca taşma bayrağı 1'e ayarlandığında aktiftir ve kesme tipi numarası 4 olan kesme işleyicisine dallanırsa, taşma bayrağı sıfırlanırsa, yürütme devam eder. sonraki talimat.
Yürütülmesi aşağıdaki adımları içerir -
Bayrak kaydı değerleri yığına itilir.
İade adresinin CS değeri ve iade adresinin IP değeri yığına basılır.
IP, kelime konumu 4 × 4 = 00010H'nin içeriğinden yüklenir
CS, sonraki kelime konumunun içeriğinden yüklenir.
Kesinti bayrağı ve Tuzak bayrağı 0'a sıfırlanır
Bir kaynak işlenenin bir komutta gösterilmesinin farklı yolları şu şekilde bilinir: addressing modes. 8086 programlamada 8 farklı adresleme modu vardır -
Anında adresleme modu
Veri işleneninin talimatın bir parçası olduğu adresleme modu, anında adresleme modu olarak bilinir.
Misal
MOV CX, 4929 H, ADD AX, 2387 H, MOV AL, FFH
Adresleme modunu kaydet
Bu, yazmacın bir talimat için bir işlenenin kaynağı olduğu anlamına gelir.
Misal
MOV CX, AX ; copies the contents of the 16-bit AX register into
; the 16-bit CX register),
ADD BX, AX
Doğrudan adresleme modu
Hafıza konumunun etkin adresinin doğrudan komuta yazıldığı adresleme modu.
Misal
MOV AX, [1592H], MOV AL, [0300H]
Dolaylı adresleme modunu kaydedin
Bu adresleme modu, verilerin aşağıdaki kayıtlardan herhangi birinde tutulan bir ofset adresi aracılığıyla herhangi bir bellek konumunda adreslenmesini sağlar: BP, BX, DI & SI.
Misal
MOV AX, [BX] ; Suppose the register BX contains 4895H, then the contents
; 4895H are moved to AX
ADD CX, {BX}
Tabanlı adresleme modu
Bu adresleme modunda, işlenenin ofset adresi, BX / BP yazmaçlarının ve 8-bit / 16-bit yer değiştirmenin içeriklerinin toplamı ile verilir.
Misal
MOV DX, [BX+04], ADD CL, [BX+08]
Dizine alınmış adresleme modu
Bu adresleme modunda, işlenen ofset adresi, SI veya DI yazmacının ve 8-bit / 16-bit yer değiştirmelerinin içerikleri eklenerek bulunur.
Misal
MOV BX, [SI+16], ADD AL, [DI+16]
Tabanlı indeks adresleme modu
Bu adresleme modunda, işlenenin ofset adresi, baz yazmacının bir İndeks yazmacının içeriğine toplanmasıyla hesaplanır.
Misal
ADD CX, [AX+SI], MOV AX, [AX+DI]
Yer değiştirme modu ile indekslenmiş
Bu adresleme modunda, işlenenler ofseti, temel kayıt içerikleri eklenerek hesaplanır. Bir Dizin, içerikleri ve 8 veya 16 bitlik yer değiştirmeyi kaydeder.
Misal
MOV AX, [BX+DI+08], ADD CX, [BX+SI+16]
Çok işlemcili, yönergeleri aynı anda yürüten birden çok işlemci kümesi anlamına gelir. Üç temel çok işlemcili yapılandırma vardır.
- Yardımcı işlemci yapılandırması
- Yakın bağlantılı konfigürasyon
- Gevşek bağlı konfigürasyon
Yardımcı İşlemci Yapılandırması
Bir Yardımcı İşlemci, mikroişlemcinin gerçekleştirdiği, aynı görevi çok hızlı bir şekilde gerçekleştirebilen, mikroişlemci çipi üzerinde özel olarak tasarlanmış bir devredir. Ana işlemcinin iş yükünü azaltır. İşlemci aynı belleği, IO sistemini, veriyolunu, kontrol mantığını ve saat üretecini paylaşır. Yardımcı işlemci, matematiksel hesaplamalar, ekranda grafik görüntüleme vb. Gibi özel görevleri yerine getirir.
8086 ve 8088 işlemlerin çoğunu gerçekleştirebilir, ancak komut seti karmaşık matematiksel işlemleri gerçekleştiremez, bu nedenle bu durumlarda mikroişlemci, Intel 8087 matematik yardımcı işlemcisi gibi bu işlemleri çok hızlı bir şekilde gerçekleştirebilen matematik işlemciye ihtiyaç duyar.
Yardımcı İşlemci Yapılandırmasının Blok Şeması
İşlemci ve işlemci nasıl bağlanır?
İşlemci ve işlemci TEST, RQ- / GT- ve QS 0 ve QS 1 sinyalleri aracılığıyla bağlanır .
TEST sinyali, yardımcı işlemcinin BUSY pinine bağlanır ve kalan 3 pin, işlemcinin aynı isimli 3 pinine bağlanır.
TEST sinyali, yardımcı işlemcinin faaliyetiyle ilgilenir, yani yardımcı işlemci meşgul veya boştadır.
RT- / GT-veri yolu tahkimi için kullanılır.
Yardımcı işlemci , ana işlemcinin kuyruğunun durumunu izlemek için QS 0 ve QS 1'i kullanır .
Yakın Bağlantılı Yapılandırma
Yakın bağlanmış konfigürasyon, yardımcı işlemci konfigürasyonuna benzer, yani her ikisi de aynı belleği, I / O sistem veriyolunu, kontrol mantığını ve kontrol jeneratörünü ana işlemciyle paylaşır. Ancak, yardımcı işlemci ve ana bilgisayar işlemcisi kendi talimatlarını alır ve yürütür. Sistem veriyolu, yardımcı işlemci ve ana bilgisayar işlemcisi tarafından bağımsız olarak kontrol edilir.
Yakın Bağlantılı Yapılandırmanın Blok Şeması
İşlemci ve bağımsız işlemci nasıl bağlanır?
Ana bilgisayar ile bağımsız işlemci arasındaki iletişim, bellek alanı aracılığıyla yapılır.
WAIT, ESC vb. Gibi talimatların hiçbiri iletişim için kullanılmaz.
Ana işlemci, belleği yönetir ve bağlantı noktalarından birine komutlar göndererek bağımsız işlemciyi uyandırır.
Ardından bağımsız işlemci, görevi yürütmek için belleğe erişir.
Görevin tamamlanmasından sonra, durum sinyalini veya bir kesme isteğini kullanarak ana işlemciye bir alındı bildirimi gönderir.
Gevşek Bağlı Yapılandırma
Gevşek bağlı konfigürasyon, ortak bir sistem veriyolu üzerinden bağlanan mikroişlemci tabanlı sistemlerin modüllerinin sayısından oluşur. Her modül kendi saat üretecinden, belleğinden, G / Ç cihazlarından oluşur ve yerel bir veri yolu ile bağlanır.
Gevşek Bağlı Yapılandırmanın Blok Şeması
Avantajlar
Birden fazla işlemciye sahip olmak, verimliliği artırır.
İşlemcilerin her biri, yerel belleğe / I / O cihazlarına erişmek için kendi yerel veri yoluna sahiptir. Bu, paralel işlemeyi gerçekleştirmeyi kolaylaştırır.
Sistem yapısı esnektir, yani bir modülün arızası tüm sistem arızasını etkilemez; hatalı modül daha sonra değiştirilebilir.
8087 sayısal veri işlemcisi olarak da bilinir Math co-processor, Numeric processor extension ve Floating point unit. Intel tarafından 8086/8088 ile eşleştirmek için tasarlanan ilk matematik işlemciydi ve bu da daha kolay ve daha hızlı hesaplama sağlıyor.
Talimatlar 8086/8088 işlemcisi tarafından tanımlandıktan sonra, daha sonraki yürütme için 8087 ortak işlemciye tahsis edilir.
8087 tarafından desteklenen veri türleri şunlardır:
- İkili Tamsayılar
- Paketlenmiş ondalık sayılar
- Gerçek sayılar
- Geçici gerçek format
8087 sayısal veri işlemcisinin en öne çıkan özellikleri aşağıdaki gibidir -
Tam sayı, kayan nokta ve 2-10 bayt arasında değişen gerçek türlerdeki verileri destekler.
İşlem hızı o kadar yüksektir ki, 64 bitlik iki gerçek sayının çarpımını ~ 27 µs'de hesaplayabilir ve ayrıca ~ 35 µs'de karekök hesaplayabilir.
IEEE kayan nokta standartlarına uyar.
8087 Mimari
8087 Mimarlık iki gruba ayrılır, yani Control Unit (CU) ve Numeric Extension Unit (YDÜ).
control unit İşlemci ile bellek arasındaki tüm iletişimi yönetir, örneğin talimatları alır ve çözer, bellek işlenenlerini okur ve yazar, paralel kuyruğu korur vb. Tüm yardımcı işlemci talimatları ESC talimatlarıdır, yani yalnızca yardımcı işlemci olan 'F' ile başlarlar diğer talimatlar mikroişlemci tarafından yürütülürken ESC komutlarını yürütür.
numeric extension unitaritmetik, mantıksal, aşkın ve veri aktarım talimatları gibi tüm sayısal işlemci talimatlarını yönetir. Komutlar ve sonuçları için işlenenleri tutan 8 yazmaç yığını vardır.
8087 yardımcı işlemcisinin mimarisi aşağıdaki gibidir -
8087 Pin Açıklaması
Önce 8087'nin pin diyagramına bir göz atalım -
Aşağıdaki liste 8087'nin Pin Açıklamasını sağlar -
AD0 – AD15 - Bunlar, ilk saat döngüsü sırasında adresleri ve ikinci saat döngüsünden itibaren verileri taşıyan zaman çoklamalı adres / veri hatlarıdır.
A19 / S6 – A16/S- Bu satırlar, zaman çoklamalı adres / durum satırlarıdır. 8086'nın ilgili pimlerine benzer şekilde işlev görür. S 6 , S 4 ve S3 kalıcı olarak yüksekken , S 5 kalıcı olarak düşüktür.
$\overline{BHE}$/S7 - İlk saat döngüsü sırasında, $\overline{BHE}$/ S 7 , 8086 veri yolunun yüksek baytında verileri etkinleştirmek için kullanılır ve bundan sonra durum satırı S 7 olarak çalışır .
QS1, QS0 - Bunlar, aşağıdaki tabloda gösterildiği gibi komut kuyruğunun durumunu ve koşullarını sağlayan kuyruk durumu giriş sinyalleridir -
QS 0 | QS 1 | Durum |
---|---|---|
0 | 0 | İşlem yok |
0 | 1 | Kuyruktan ilk opcode baytı |
1 | 0 | Sırayı boşalt |
1 | 1 | Kuyruktan sonraki bayt |
INT - Yürütme sırasında maskelenmemiş bir istisna alındığında yüksek olarak değişen bir kesme sinyalidir.
BUSY - Bu bir çıkış sinyalidir, yüksek olduğunda CPU'ya meşgul durumunu gösterir.
READY - Veriyolunun veri almaya hazır olup olmadığını yardımcı işlemciye bildirmek için kullanılan bir giriş sinyalidir.
RESET - İşlemcinin dahili faaliyetlerini reddetmek ve CPU tarafından ihtiyaç duyulduğunda onu daha fazla yürütmeye hazırlamak için kullanılan bir giriş sinyalidir.
CLK - CLK girişi, işlemci çalışması için temel zamanlamaları sağlar.
VCC - Devrenin çalışması için + 5V besleme gerektiren bir güç kaynağı sinyalidir.
S0, S1, S2- Bunlar, Veri Yolu Denetleyicisi 8087 tarafından bellek ve G / Ç kontrol sinyalleri oluşturmak için kullanılan işlemin durumunu sağlayan durum sinyalleridir. Bu sinyaller dördüncü saat döngüsü sırasında etkindir.
Ç 2 | S 1 | S 0 | Sıra Durumu |
---|---|---|---|
0 | X | X | Kullanılmayan |
1 | 0 | 0 | Kullanılmayan |
1 | 0 | 1 | Hafıza oku |
1 | 1 | 0 | Hafıza yazma |
1 | 1 | 1 | Pasif |
RQ/GT1 & RQ/GT0 - Bunlar Request/Grant 8087 işlemcileri tarafından işlenen aktarımları için ana bilgisayar işlemcisi 8086 / 8088'den veri yolunun kontrolünü kazanmak için kullanılan sinyaller.
Bu bölümde, 8085 ile Bellek Arabirimi ve IO Arabirimi'ni tartışacağız.
Interfaceiki bileşen arasındaki iletişim yoludur. Arabirim iki türdendir, bellek arabirimi ve G / Ç arabirimi.
Bellek Arabirimi
Herhangi bir talimatı yürütürken, mikroişlemcinin talimat kodlarını ve bellekte depolanan verileri okumak için belleğe erişmesine ihtiyacımız var. Bunun için hem bellek hem de mikroişlemci, yazmaçlardan okumak ve yazmaçlara yazmak için bazı sinyallere ihtiyaç duyar.
Arayüz oluşturma süreci, bellek gereksinimleri ve mikroişlemci sinyalleriyle eşleşecek bazı temel faktörleri içerir. Arabirim devresi, bu nedenle bellek sinyali gereksinimlerini mikro işlemcinin sinyalleri ile eşleşecek şekilde tasarlanmalıdır.
IO Arayüzü
Klavye, fare, yazıcı vb. Gibi çeşitli iletişim araçları vardır. Bu nedenle, klavye ve diğer aygıtlar ile mikroişlemci arasında mandallar ve tamponlar kullanarak arabirim oluşturmamız gerekir. Bu tür bir arabirim, G / Ç arabirimi olarak bilinir.
Bellek ve G / Ç Arayüzünün Blok Şeması
8085 Arayüz Pimleri
Diğer cihazlarla arayüz oluşturmak için kullanılan 8085 pinin listesi aşağıdadır -
- A 15 - A 8 (Daha Yüksek Adres Veriyolu)
- AD 7 - AD 0 (Alt Adres / Veri Yolu)
- ALE
- RD
- WR
- READY
İletişim Yolları - Dış Dünya ile Mikroişlemci?
Mikroişlemcinin dış dünya ile bağlantı kurabileceği iki iletişim yolu vardır.
- Seri İletişim Arayüzü
- Paralel İletişim arayüzü
Serial Communication Interface - Bu tür bir iletişimde, arayüz mikro işlemciden tek baytlık veri alır ve bunu diğer sisteme seri olarak ya da tam tersi olarak bit bit gönderir.
Parallel Communication Interface - Bu tür bir iletişimde, arayüz mikro işlemciden bir bayt veri alır ve bunu diğer sistemlere eşzamanlı (veya) paralel şekilde ya da tam tersi şekilde yavaş yavaş diğer sistemlere gönderir.
8279 programlanabilir klavye / ekran denetleyicisi, klavye ile CPU arasında arabirim oluşturan Intel tarafından tasarlanmıştır. Klavye önce klavyeyi tarar ve herhangi bir tuşa basılmış olup olmadığını belirler. Daha sonra, basılan tuşun göreceli yanıtını CPU'ya gönderir ve bunun tersi de geçerlidir.
Klavyenin CPU ile Kaç Yolu Arayüz?
Klavye, kesme modunda veya yoklamalı modda arabirimlenebilir. İçindeInterrupt modeişlemciden yalnızca herhangi bir tuşa basıldığında servis talep edilir, aksi takdirde CPU ana görevine devam eder.
İçinde Polled modeCPU, herhangi bir tuşa basılıp basılmadığını kontrol etmek için periyodik olarak 8279 dahili bayrağı okur.
8279 Klavye Nasıl Çalışır?
Klavye, anahtar kodları kullanılarak CPU ile arayüzlenen maksimum 64 tuştan oluşur. Bu anahtar kodları geri döndürülür ve CPU tarafından erişilebilen 8 baytlık bir FIFORAM'da saklanır. FIFO'ya 8'den fazla karakter girilirse, bu, bir seferde sekizden fazla tuşa basıldığı anlamına gelir. Bu, taşma durumunun ayarlandığı zamandır.
Bir FIFO geçerli bir anahtar girişi içeriyorsa, CPU bir kesme modunda kesilir, aksi takdirde CPU girişi okumak için yoklamadaki durumu kontrol eder. CPU bir anahtar girişi okuduğunda, FIFO güncellenir ve anahtar girişi, yeni girişler için alan oluşturmak üzere FIFO'dan dışarı itilir.
Mimari ve Açıklama
G / Ç Kontrolü ve Veri Tamponu
Bu birim, mikroişlemci boyunca veri akışını kontrol eder. Yalnızca D düşük olduğunda etkinleştirilir. Veri tamponu, sistemin harici veriyolu ile mikroişlemcinin dahili veriyolu arasında arayüz oluşturur. A0, RD ve WR pinleri komut, durum veya veri okuma / yazma işlemleri için kullanılır.
Kontrol ve Zamanlama Kaydı ve Zamanlama Kontrolü
Bu ünite, klavye, ekran modları ve CPU tarafından programlanan diğer işlemleri saklamak için kayıtlar içerir. Zamanlama ve kontrol ünitesi, devrenin çalışması için zamanlamaları yönetir.
Tarama Sayacı
İki modu vardır, yani Encoded modeve Çözülmüş mod. Şifreli modda sayaç, klavye ve ekran için tarama satırları sağlamak üzere harici olarak kodu çözülecek ikili sayımı sağlar.
İçinde decoded scan modeSayaç dahili en az önemli bit 2 kodunu çözer ve kodu çözülmüş bir 1 SL tarama 4 üzerinden içerir 0 -SL 3 .
Dönüş Tamponları, Klavye Geri Döndürme ve Kontrol
Bu birim ilk önce anahtar kapatma sırasını tarar, eğer bulunursa klavye geri döndürme birimi anahtar girişini iptal eder. Aynı anahtarın algılanması durumunda, o anahtarın kodu SHIFT & CONTROL anahtar durumu ile birlikte doğrudan sensör RAM'ine aktarılır.
FIFO / Sensör RAM ve Durum Mantığı
Bu birim, basılan her tuşun anahtar kodunun sırasına göre RAM'e girildiği 8 baytlık ilk giren ilk çıkar (FIFO) RAM olarak işlev görür. Durum mantığı, her FIFO okuma işleminden sonra FIFO boşalana kadar bir kesme isteği oluşturur.
Taranan sensör matrisi modunda, bu birim, her satırın karşılık gelen sensör sırasının durumuyla matrise yüklendiği sensör RAM'i olarak işlev görür. Sensör durumunu değiştirdiğinde, IRQ satırı yüksek olarak değişir ve CPU'yu kesintiye uğratır.
Adres Kayıtlarını Göster ve RAM'i Göster
Bu birim, CPU tarafından ekran RAM'ine / RAM'den o anda okunan / yazılan sözcük adreslerini tutan ekran adres kayıtlarından oluşur.
8279 - Pin Açıklaması
Aşağıdaki şekil 8279'un pin şemasını göstermektedir -
Veri Yolu Hatları, DB 0 - DB 7
Bunlar, verileri CPU'ya / CPU'dan aktarmak için kullanılan 8 çift yönlü veri yolu hattıdır.
CLK
Saat girişi, mikroişlemci tarafından gerekli görülen dahili zamanlamaları oluşturmak için kullanılır.
SIFIRLA
Adından da anlaşılacağı gibi bu pin mikro işlemciyi sıfırlamak için kullanılır.
CS Çip Seçimi
Bu pin düşük olarak ayarlandığında okuma / yazma işlemlerine izin verir, aksi takdirde bu pin yüksek olarak ayarlanmalıdır.
A 0
Bu pin, komut / durum bilgilerinin transferini gösterir. Düşük olduğunda veri transferini gösterir.
RD, WR
Bu Okuma / Yazma pini, veri arabelleğinin veri yolu üzerinden veri göndermesini / almasını sağlar.
IRQ
FIFO sensör RAM'inde veri olduğunda bu kesinti çıkış hattı yükselir. Kesme hattı, her FIFO RAM okuma işleminde azalır. Bununla birlikte, FIFO RAM ayrıca CPU tarafından okunacak herhangi bir anahtar-kod girişi içeriyorsa, bu pin CPU'da bir kesinti oluşturmak için tekrar yükselir.
V ss , V cc
Bunlar, mikroişlemcinin toprak ve güç kaynağı hatlarıdır.
SL 0 - SL 3
Bunlar, klavye matrisini taramak ve rakamları görüntülemek için kullanılan tarama çizgileridir. Bu satırlar, mod kontrol yazmacı kullanılarak kodlanmış veya kodu çözülmüş olarak programlanabilir.
RL 0 - RL 7
Bunlar, bir anahtar terminaline bağlı olan Dönüş Hatlarıdır, anahtarların diğer terminali ise kodu çözülmüş tarama hatlarına bağlıdır. Herhangi bir tuşa basıldığında bu satırlar 0 olarak ayarlanır.
VARDİYA
Shift giriş satırı durumu, taranan klavye modunda FIFO'daki her tuş koduyla birlikte saklanır. Anahtar kapamayla aşağı çekilinceye kadar, yüksek tutmak için içeriden yukarı çekilir
CNTL / STB - KONTROL / STROBED I / P Modu
Klavye modunda, bu hat bir kontrol girişi olarak kullanılır ve bir tuş kapanışında FIFO'da saklanır. Hat, verileri flaşlı giriş modunda FIFO RAM'e giren bir stroboskop çizgisidir. Dahili bir yukarı çekmesi vardır. Hat, bir anahtar kapama ile aşağı çekilir.
BD
Boş ekran anlamına gelir. Basamak değiştirme sırasında ekranı boşaltmak için kullanılır.
Outa 0 - Outa 3 ve outb 0 - outb 3
Bunlar, iki 16x4 veya bir 16x8 dahili ekran yenileme kaydı için çıkış bağlantı noktalarıdır. Bu satırlardan gelen veriler, ekranı ve klavyeyi taramak için tarama çizgileriyle senkronize edilir.
8279 Operasyonel Modları
8279'da iki çalışma modu vardır - Input Mode ve Output Mode.
Giriş Modu
Bu mod, klavye tarafından verilen girişle ilgilenir ve bu mod ayrıca 3 moda sınıflandırılır.
Scanned Keyboard Mode- Bu modda, anahtar matrisi kodlanmış veya kodu çözülmüş taramalar kullanılarak arabirim oluşturabilir. Şifreli taramada, 8 × 8 klavye veya kodu çözülmüş taramada 4 × 8 klavye arabirimlenebilir. SHIFT ve CONTROL durumu ile basılan tuşun kodu FIFO RAM'e kaydedilir.
Scanned Sensor Matrix- Bu modda, bir sensör dizisi kodlayıcı veya kod çözücü taramaları kullanılarak işlemciyle arabirim oluşturabilir. Enkoder taramasında, 8 × 8 sensör matrisi veya dekoder taraması ile 4 × 8 sensör matrisi arayüzlenebilir.
Strobed Input - Bu modda, kontrol satırı 0'a ayarlandığında, geri dönüş hatlarındaki veriler FIFO bayt baytında saklanır.
Çıkış Modu
Bu mod, ekranla ilgili işlemlerle ilgilenir. Bu mod ayrıca iki çıkış modu olarak sınıflandırılır.
Display Scan - Bu mod, 8/16 karakter çoklamalı ekranların çift 4-bit / tek 8-bit ekran birimleri olarak düzenlenmesine izin verir.
Display Entry - Bu mod, verilerin görüntülenmek üzere sağ / sol taraftan girilmesine izin verir.
DMA, Doğrudan Bellek Erişimi anlamına gelir. En yüksek hızda veri aktarımı için Intel tarafından tasarlanmıştır. Cihazın, CPU'nun herhangi bir müdahalesi olmadan verileri doğrudan belleğe / bellekten aktarmasını sağlar.
Bir DMA kontrolörü kullanarak, cihaz CPU'nun verilerini, adresini ve kontrol veriyolunu tutmasını ister, böylece cihaz verileri doğrudan belleğe / bellekten aktarabilir. DMA veri aktarımı yalnızca CPU'dan HLDA sinyali alındıktan sonra başlatılır.
DMA İşlemleri Nasıl Gerçekleştirilir?
Bir DMA tarafından gerçekleştirilen işlemler dizisi aşağıdadır -
Başlangıçta, herhangi bir cihazın cihaz ile hafıza arasında veri göndermesi gerektiğinde, cihazın DMA kontrol cihazına DMA talebi (DRQ) göndermesi gerekir.
DMA kontrolörü CPU'ya Tutma isteği (HRQ) gönderir ve CPU'nun HLDA'yı onaylamasını bekler.
Ardından mikroişlemci, tüm veri yolunu, adres yolunu ve kontrol veriyolunu üçlü hale getirir. CPU, veri yolu üzerinden kontrolü bırakır ve HOLD talebini HLDA sinyali ile kabul eder.
Artık CPU HOLD durumundadır ve DMA denetleyicisinin CPU, bellek ve I / O cihazları arasındaki veri yolları üzerinden işlemleri yönetmesi gerekir.
8257'nin Özellikleri
İşte 8257'nin öne çıkan özelliklerinden bazılarının listesi -
Dört I / O cihazı üzerinden kullanılabilen dört kanala sahiptir.
Her kanalın 16 bit adresi ve 14 bitlik sayacı vardır.
Her kanal 64kb'ye kadar veri aktarabilir.
Her kanal bağımsız olarak programlanabilir.
Her kanal, okuma aktarımı, yazma aktarımı gerçekleştirebilir ve aktarım işlemlerini doğrulayabilir.
128 bayt aktarılan çevre cihazına MARK sinyali üretir.
Tek fazlı bir saat gerektirir.
Frekansı 250Hz ile 3MHz arasında değişir.
2 modda çalışır, yani Master mode ve Slave mode.
8257 Mimari
Aşağıdaki resimde 8257'nin mimarisi gösterilmektedir -
8257 Pin Açıklaması
Aşağıdaki resim bir 8257 DMA denetleyicisinin pin şemasını göstermektedir -
DRQ 0 −DRQ3
Bunlar, DMA hizmetlerini kullanmak için çevre aygıtları tarafından kullanılan dört ayrı kanal DMA istek girişleridir. Sabit öncelik modu seçildiğinde, DRQ 0 en yüksek önceliğe sahiptir ve DRQ 3 bunlar arasında en düşük önceliğe sahiptir.
DACK o - DACK 3
Bunlar, CPU tarafından taleplerinin durumu hakkında talepte bulunan çevre birimini güncelleyen aktif-düşük DMA onay satırlarıdır. Bu hatlar, talep eden cihazlar için flaş hatları olarak da hareket edebilir.
D o - D 7
Bunlar, sistem veriyolunu DMA denetleyicisinin dahili veri yolu ile arayüzlemek için kullanılan çift yönlü veri hatlarıdır. Bağımlı modda, komut kelimelerini 8257'ye ve durum kelimesini 8257'ye taşır. Ana modda, bu satırlar üretilen adresin yüksek baytını mandala göndermek için kullanılır. Bu adres, ADSTB sinyali kullanılarak daha da kilitlenir.
IOR
Bu, CPU tarafından Slave modunda 8257 dahili yazmaçlarını okumak için kullanılan aktif-düşük çift yönlü bir üç-durumlu giriş hattıdır. Ana modda, bir bellek yazma döngüsü sırasında çevresel aygıtlardan veri okumak için kullanılır.
IOW
Veri yolunun içeriğini 8 bitlik mod yazmacına veya 16 bitlik bir DMA adres yazmacının veya terminal sayım kaydının üst / alt baytına yüklemek için kullanılan, etkin bir düşük iki yönlü üç durumlu hattır. Ana modda, DMA bellek okuma döngüsü sırasında verileri çevresel cihazlara yüklemek için kullanılır.
CLK
8257'nin dahili çalışması için gerekli olan bir saat frekansı sinyalidir.
SIFIRLA
Bu sinyal, tüm DMA kanallarını devre dışı bırakarak DMA kontrolörünü SIFIRLAMAK için kullanılır.
A o - A 3
Bunlar en az önemli dört adres hattıdır. Bağımlı modda, okunacak veya yazılacak kayıtlardan birini seçen bir girdi görevi görürler. Ana modda, 8257 tarafından üretilen en az önemli dört bellek adresi çıktı hattıdır.
CS
Aktif-düşük çip seçme hattıdır. Slave modunda, 8257'ye / 8257'den okuma / yazma işlemlerini etkinleştirir. Ana modda, 8257'ye / 8257'den okuma / yazma işlemlerini devre dışı bırakır.
A 4 - A 7
Bunlar, ana modda DMA tarafından oluşturulan düşük bayt adresinin yüksek bitleridir.
HAZIR
Bu, bekleme durumları ekleyerek DMA'yı hazır hale getiren, aktif yüksek asenkron giriş sinyalidir.
HRQ
Bu sinyal, çıkış cihazından tutma talebi sinyalini almak için kullanılır. Bağımlı modda, bir DRQ giriş hattı 8257 ile bağlanır. Ana modda, CPU'nun HOLD girişine bağlanır.
HLDA
DMA denetleyicisine veriyolunun CPU tarafından talep eden çevre birimine 1'e ayarlandığında verildiğini gösteren bekletme onay sinyalidir.
MEMR
DMA okuma döngüleri sırasında adreslenmiş bellek konumlarından verileri okumak için kullanılan düşük bellek okuma sinyalidir.
MEMW
DMA yazma işlemi sırasında verileri adreslenen hafıza konumuna yazmak için kullanılan aktif-düşük üç durum sinyalidir.
ADST
Bu sinyal, DMA kontrolörü tarafından üretilen bellek adresinin yüksek baytını mandallara dönüştürmek için kullanılır.
AEN
Bu sinyal, adres veriyolunu / veri yolunu devre dışı bırakmak için kullanılır.
TC
Mevcut çevresel cihazlara mevcut DMA döngüsünü gösteren 'Terminal Sayısı' anlamına gelir.
İŞARET
İşaret, her 128 döngüden veya başından itibaren integral katlarından sonra etkinleştirilecektir. Geçerli DMA döngüsünün, seçilen çevresel cihaza önceki MARK çıkışından bu yana 128. döngü olduğunu gösterir.
V cc
Devrenin çalışması için gerekli olan güç sinyalidir.
Bir microcontroller Mikrodalga bilgilerini görüntüleme, uzaktan sinyalleri alma gibi gömülü sistemlerin belirli görevlerini gerçekleştirmek için tasarlanmış küçük ve düşük maliyetli bir mikro bilgisayardır.
Genel mikro denetleyici; işlemci, bellek (RAM, ROM, EPROM), Seri bağlantı noktaları, çevre birimlerinden (zamanlayıcılar, sayaçlar) vb. Oluşur.
Mikroişlemci ve Mikrodenetleyici arasındaki fark
Aşağıdaki tablo, bir mikroişlemci ile bir mikro denetleyici arasındaki farkları vurgulamaktadır -
Mikrodenetleyici | Mikroişlemci |
---|---|
Mikrodenetleyiciler, bir uygulama içinde tek bir görevi yürütmek için kullanılır. | Mikroişlemciler büyük uygulamalar için kullanılır. |
Tasarım ve donanım maliyeti düşüktür. | Tasarım ve donanım maliyeti yüksektir. |
Değiştirmesi kolaydır. | Değiştirmesi o kadar kolay değil. |
Çalıştırmak için daha az güç gerektiren CMOS teknolojisi ile oluşturulmuştur. | Tüm sistemi kontrol etmesi gerektiğinden güç tüketimi yüksektir. |
CPU, RAM, ROM, G / Ç bağlantı noktalarından oluşur. | RAM, ROM, G / Ç bağlantı noktalarından oluşmaz. Pimlerini çevresel cihazlara arayüz oluşturmak için kullanır. |
Mikrodenetleyici Türleri
Mikrodenetleyiciler, bellek, mimari, bitler ve komut setlerine göre çeşitli kategorilere ayrılır. Türlerinin listesi aşağıdadır -
Bit
Bit yapılandırmasına bağlı olarak, mikro denetleyici ayrıca üç kategoriye ayrılır.
8-bit microcontroller - Bu tür bir mikro denetleyici, toplama, çıkarma, çarpma bölme vb. Gibi aritmetik ve mantıksal işlemleri yürütmek için kullanılır. Örneğin, Intel 8031 ve 8051, 8 bitlik mikro denetleyicilerdir.
16-bit microcontroller- Bu tür bir mikro denetleyici, daha yüksek doğruluk ve performansın gerekli olduğu aritmetik ve mantıksal işlemleri gerçekleştirmek için kullanılır. Örneğin Intel 8096, 16 bitlik bir mikro denetleyicidir.
32-bit microcontroller - Bu tip mikrodenetleyici genellikle otomatik operasyonel makineler, tıbbi cihazlar vb. Otomatik kontrollü cihazlarda kullanılır.
Hafıza
Bellek yapılandırmasına bağlı olarak, mikro denetleyici ayrıca iki kategoriye ayrılır.
External memory microcontroller- Bu tip mikrodenetleyici, çip üzerinde program hafızası olmayacak şekilde tasarlanmıştır. Bu nedenle harici bellek mikro denetleyicisi olarak adlandırılır. Örneğin: Intel 8031 mikro denetleyici.
Embedded memory microcontroller- Bu tür bir mikro denetleyici, mikro denetleyicinin tüm programlara sahip olacağı ve veri belleğinin, sayaçların ve zamanlayıcıların, kesmelerin, giriş / çıkış bağlantı noktalarının çip üzerine yerleştirildiği şekilde tasarlanmıştır. Örneğin: Intel 8051 mikro denetleyici.
Komut seti
Komut kümesi yapılandırmasına bağlı olarak, mikro denetleyici ayrıca iki kategoriye ayrılır.
CISC- CISC, karmaşık komut seti bilgisayarı anlamına gelir. Kullanıcının birçok basit talimata alternatif olarak tek bir talimat eklemesine izin verir.
RISC- RISC, Azaltılmış Komut Seti Bilgisayarları anlamına gelir. Komut başına saat döngüsünü kısaltarak çalışma süresini azaltır.
Mikrodenetleyicilerin Uygulamaları
Mikrodenetleyiciler, aşağıdakiler gibi çeşitli farklı cihazlarda yaygın olarak kullanılmaktadır:
LED gibi ışık algılama ve kontrol cihazları.
Mikrodalga fırın, bacalar gibi sıcaklık algılama ve kontrol cihazları.
Yangın alarmı gibi yangın algılama ve güvenlik cihazları.
Volt Metre gibi ölçüm cihazları.
8051 mikro denetleyici, 1981 yılında Intel tarafından tasarlanmıştır. 8 bitlik bir mikro denetleyicidir. 40 pinli DIP (çift hat içi paket), 4kb ROM depolama ve 128 bayt RAM depolama, 2 adet 16 bit zamanlayıcı ile oluşturulmuştur. Programlanabilir ve ihtiyaca göre adreslenebilir olan dört paralel 8 bit bağlantı noktasından oluşur. Bir çip üzerinde kristal osilatör, 12 MHz'lik kristal frekansına sahip mikro denetleyiciye entegre edilmiştir.
Şimdi 8051 Mikrodenetleyicinin mimarisini tartışalım.
Aşağıdaki şemada, sistem veriyolu tüm destek cihazlarını CPU'ya bağlar. Sistem veri yolu, 8 bitlik bir veri yolu, 16 bitlik bir adres yolu ve veri yolu kontrol sinyallerinden oluşur. Program belleği, bağlantı noktaları, veri belleği, seri arabirim, kesinti kontrolü, zamanlayıcılar ve CPU gibi diğer tüm aygıtlar, sistem veriyolu üzerinden birbirine bağlanır.
8051 mikrodenetleyicisinin pin şeması aşağıdaki gibidir -
Pins 1 to 8- Bu pinler Port 1 olarak bilinir. Bu port başka bir fonksiyona hizmet etmez. Dahili olarak yukarı çekilir, iki yönlü G / Ç bağlantı noktası.
Pin 9 - Mikrodenetleyiciyi başlangıç değerlerine sıfırlamak için kullanılan bir RESET pinidir.
Pins 10 to 17 - Bu pinler Port 3 olarak bilinir. Bu port, kesintiler, zamanlayıcı girişi, kontrol sinyalleri, seri iletişim sinyalleri RxD ve TxD gibi bazı işlevlere hizmet eder.
Pins 18 & 19 - Bu pinler, sistem saatini almak için harici bir kristale arabirim oluşturmak için kullanılır.
Pin 20 - Bu pim devreye güç kaynağını sağlar.
Pins 21 to 28- Bu pinler Port 2 olarak bilinir. G / Ç portu olarak hizmet eder. Daha yüksek sıralı adres veriyolu sinyalleri de bu bağlantı noktası kullanılarak çoklanır.
Pin 29- Bu, Program Deposu Etkinleştirmenin kısaltması olan PSEN pinidir. Harici program belleğinden bir sinyal okumak için kullanılır.
Pin 30- Bu, Harici Erişim girişi anlamına gelen EA pinidir. Harici bellek arayüzünü etkinleştirmek / devre dışı bırakmak için kullanılır.
Pin 31- Bu, Adres Mandalı Etkinleştirmenin kısaltması olan ALE pinidir. Bağlantı noktasının adres-veri sinyalini ayrıştırmak için kullanılır.
Pins 32 to 39- Bu pinler Port 0 olarak bilinir. G / Ç portu olarak hizmet eder. Alt sıra adresi ve veri yolu sinyalleri bu bağlantı noktası kullanılarak çoklanır.
Pin 40 - Bu pin, devreye güç beslemesi sağlamak için kullanılır.
8051 mikro denetleyiciler, giriş veya çıkış olarak yapılandırılabilen her biri 8 bitlik 4 G / Ç bağlantı noktasına sahiptir. Dolayısıyla, toplam 32 giriş / çıkış pini, mikro denetleyicinin çevresel cihazlara bağlanmasına izin verir.
Pin configurationyani pin, mantık durumuna göre giriş için 1 ve çıkış için 0 olarak yapılandırılabilir.
Input/Output (I/O) pin - Mikrodenetleyici içerisindeki tüm devreler, yerleşik kaldırma dirençlerine sahip olmadığı için P0 portu dışında pinlerinden birine bağlanmalıdır.
Input pin- Mantık 1, P yazmacının bir bitine uygulanır. Çıkış FE transistörü kapatılır ve diğer pin, yüksek dirençli bir kaldırma direnci üzerinden güç kaynağı voltajına bağlı kalır.
Port 0 - P0 (sıfır) portu iki fonksiyonla karakterize edilir -
Harici bellek kullanıldığında, üzerine daha düşük adres baytı (A0A7 adresleri) uygulanır, aksi takdirde bu bağlantı noktasının tüm bitleri giriş / çıkış olarak yapılandırılır.
P0 portu bir çıkış olarak yapılandırıldığında, ucu 5V güç kaynağına bağlanan yerleşik çekme direncine sahip pinlerden oluşan diğer portlar, bu portun pinlerinde bu direnç dışarıda bırakılır.
Giriş Yapılandırması
Bu bağlantı noktasının herhangi bir pini bir giriş olarak yapılandırılırsa, bu "yüzer" gibi davranır, yani girişin sınırsız giriş direnci ve belirlenmiş potansiyeli vardır.
Çıkış Yapılandırması
Pim bir çıkış olarak yapılandırıldığında, "açık tahliye" görevi görür. Bir port bitine mantık 0 uygulayarak, uygun pin toprağa (0V) bağlanacaktır ve mantık 1 uygulandığında, harici çıkış "yüzer" olarak kalacaktır.
Bu çıkış pinine lojik 1 (5V) uygulamak için harici bir pullup direnci oluşturmak gerekir.
Bağlantı Noktası 1
P1, P0'daki gibi herhangi bir alternatif işlevi olmadığı için gerçek bir G / Ç bağlantı noktasıdır, ancak bu bağlantı noktası yalnızca genel G / Ç olarak yapılandırılabilir. Yerleşik bir kaldırma direncine sahiptir ve TTL devreleriyle tamamen uyumludur.
Bağlantı Noktası 2
Harici bellek kullanıldığında P2 P0'a benzer. Bu bağlantı noktasının pinleri, harici bellek yongasına yönelik adresleri işgal eder. Bu bağlantı noktası, A8-A15 adresleriyle daha yüksek adres baytı için kullanılabilir. Bellek eklenmediğinde, bu bağlantı noktası Bağlantı Noktası 1'e benzer bir genel giriş / çıkış bağlantı noktası olarak kullanılabilir.
Bağlantı Noktası 3
Bu bağlantı noktasında, mantık 1'in P3 yazmacının uygun bitine uygulanması gerekliliği dışında işlevler diğer bağlantı noktalarına benzer.
Pin Akım Sınırlamaları
Pinler bir çıkış olarak yapılandırıldığında (yani mantık 0), bu durumda tek port pinleri 10mA'lık bir akım alabilir.
Bu pinler girişler (yani mantık 1) olarak yapılandırıldığında, yerleşik kaldırma dirençleri çok zayıf akım sağlar, ancak LS serisinin 4 TTL girişini etkinleştirebilir.
Bir portun 8 bitinin tümü aktifse, toplam akım 15mA ile sınırlandırılmalıdır (port P0: 26mA).
Tüm bağlantı noktaları (32 bit) aktifse, toplam maksimum akım 71mA ile sınırlandırılmalıdır.
Kesintiler, ana programı geçici olarak askıya alan, kontrolü harici kaynaklara geçiren ve görevlerini yerine getiren olaylardır. Daha sonra kontrolü kaldığı yerden ana programa geçirir.
8051, 5 kesme sinyaline sahiptir, yani INT0, TFO, INT1, TF1, RI / TI. Her kesme, IE yazmacının bitlerini ayarlayarak etkinleştirilebilir veya devre dışı bırakılabilir ve tüm kesme sistemi, aynı yazmacın EA bitini temizleyerek devre dışı bırakılabilir.
IE (Interrupt Enable) Kaydı
Bu kayıt, kesmenin etkinleştirilmesinden ve devre dışı bırakılmasından sorumludur. EA kaydı, kesintileri etkinleştirmek için bire ve kesintileri devre dışı bırakmak için 0'a ayarlanır. Bit dizisi ve anlamları aşağıdaki şekilde gösterilmektedir.
EA | IE.7 | Tüm kesintileri devre dışı bırakır. EA = 0 olduğunda, hiçbir kesinti kabul edilmeyecektir ve EA = 1, kesmeyi ayrı ayrı etkinleştirir. |
- | IE.6 | Gelecekte kullanılmak üzere rezerve edilmiştir. |
- | IE.5 | Gelecekte kullanılmak üzere rezerve edilmiştir. |
ES | IE.4 | Seri bağlantı noktası kesmeyi etkinleştirir / devre dışı bırakır. |
ET1 | IE.3 | Timer1 taşma kesintisini etkinleştirir / devre dışı bırakır. |
EX1 | IE.2 | Harici kesmeyi etkinleştirir / devre dışı bırakır1. |
ET0 | IE.1 | Timer0 taşma kesintisini etkinleştirir / devre dışı bırakır. |
EX0 | IE.0 | Harici kesmeyi etkinleştirir / devre dışı bırakır0. |
IP (Kesme Önceliği) Kaydı
Kesintilerin öncelik seviyelerini, aşağıdaki şekilde gösterildiği gibi Kesme Önceliği (IP) kaydındaki ilgili biti değiştirerek değiştirebiliriz.
Düşük öncelikli bir kesme, yalnızca yüksek öncelikli kesme tarafından kesilebilir, ancak başka bir düşük öncelikli kesme tarafından kesilemez.
Farklı öncelik seviyelerinde iki kesinti aynı anda alınırsa, daha yüksek öncelik seviyesi talebi karşılanır.
Aynı öncelik seviyelerine sahip talepler eşzamanlı olarak alınırsa, dahili sorgulama sırası hangi talebin hizmet verileceğini belirler.
- | IP.6 | Gelecekte kullanılmak üzere rezerve edilmiştir. |
- | IP.5 | Gelecekte kullanılmak üzere rezerve edilmiştir. |
PS | IP.4 | Seri bağlantı noktası kesinti öncelik seviyesini tanımlar. |
PT1 | IP.3 | 1 önceliğin zamanlayıcı kesmesini tanımlar. |
PX1 | IP.2 | Harici kesme öncelik seviyesini tanımlar. |
PT0 | IP.1 | Timer0 interrupt öncelik seviyesini tanımlar. |
PX0 | IP.0 | 0 öncelik seviyesinin harici kesmesini tanımlar. |
TCON Kaydı
TCON kaydı, mikro denetleyiciye harici kesintinin türünü belirtir.
8255A, gereken belirli koşullar altında G / Ç'yi kesmek için verileri G / Ç'den aktarmak için tasarlanmış genel amaçlı programlanabilir bir G / Ç cihazıdır. Hemen hemen her mikroişlemci ile kullanılabilir.
Gereksinime göre yapılandırılabilen üç adet 8-bit çift yönlü G / Ç bağlantı noktasından (24 G / Ç hatları) oluşur.
8255A bağlantı noktaları
8255A'da üç bağlantı noktası vardır, yani PORT A, PORT B ve PORT C.
Port A bir 8 bitlik çıkış mandalı / arabellek ve bir 8 bitlik giriş arabelleği içerir.
Port B PORT A'ya benzer.
Port C kontrol kelimesi ile PORT C alt (PC0-PC3) ve PORT C üst (PC7-PC4) olmak üzere iki kısma ayrılabilir.
Bu üç bağlantı noktası ayrıca iki gruba ayrılır, yani Grup A, PORT A'yı ve üst PORT C'yi içerir. Grup B, PORT B'yi ve alt PORT C'yi içerir. Bu iki grup üç farklı modda programlanabilir, yani ilk mod mod olarak adlandırılır 0, ikinci mod Mod 1 olarak adlandırılır ve üçüncü mod Mod 2 olarak adlandırılır.
Çalışma Modları
8255A'nın üç farklı çalışma modu vardır -
Mode 0- Bu modda, Bağlantı Noktası A ve B, iki adet 8 bit bağlantı noktası ve Bağlantı Noktası C, iki adet 4 bit bağlantı noktası olarak kullanılır. Her bağlantı noktası, çıkışların kilitlendiği ve girişlerin kilitlenmediği giriş modunda veya çıkış modunda programlanabilir. Bağlantı noktalarının kesme özelliği yoktur.
Mode 1- Bu modda, Bağlantı Noktası A ve B, 8 bitlik G / Ç bağlantı noktaları olarak kullanılır. Giriş veya çıkış bağlantı noktaları olarak yapılandırılabilirler. Her bağlantı noktası, el sıkışma sinyalleri olarak bağlantı noktası C'den üç hat kullanır. Girişler ve çıkışlar kilitlenir.
Mode 2- Bu modda, Bağlantı Noktası A çift yönlü bağlantı noktası ve Bağlantı Noktası B, Mod 0 veya Mod 1'de yapılandırılabilir. Bağlantı Noktası A, veri aktarımı için el sıkışma sinyalleri olarak Bağlantı Noktası C'den beş sinyal kullanır. C Bağlantı Noktasından kalan üç sinyal, basit G / Ç olarak veya B bağlantı noktası için el sıkışma olarak kullanılabilir.
8255A'nın Özellikleri
8255A'nın öne çıkan özellikleri aşağıdaki gibidir -
PA, PB ve PC gibi 3 adet 8 bit IO bağlantı noktasından oluşur.
Adres / veri yolu harici olarak demux'lenmiş olmalıdır.
TTL uyumludur.
DC sürüş kabiliyetini geliştirdi.
8255 Mimari
Aşağıdaki şekil 8255A'nın mimarisini göstermektedir -
Önce Intel 8255A'nın pin diyagramına bir göz atalım -
Şimdi 8255A'daki pimlerin işlevsel tanımını tartışalım.
Veri Yolu Arabelleği
Mikroişlemciyi sistem veri yoluna bağlamak için kullanılan üç durumlu 8 bitlik bir arabellektir. Veriler, CPU'nun talimatlarına göre arabellek tarafından iletilir veya alınır. Kontrol kelimeleri ve durum bilgileri de bu veri yolu kullanılarak aktarılır.
Kontrol Mantığını Oku / Yaz
Bu blok, veri / kontrol / durum kelimesinin dahili / harici transferini kontrol etmekten sorumludur. CPU adresinden ve kontrol veriyollarından gelen girişi kabul eder ve sırayla her iki kontrol grubuna da komut verir.
CS
Chip Select anlamına gelir. Bu girişteki DÜŞÜK, çipi seçer ve 8255A ile CPU arasındaki iletişimi etkinleştirir. Çözülen adrese bağlanır ve A 0 & A 1 mikroişlemci adres hatlarına bağlıdır.
Sonuçları aşağıdaki koşullara bağlıdır -
CS | A 1 | A 0 | Sonuç |
---|---|---|---|
0 | 0 | 0 | PORT A |
0 | 0 | 1 | PORT B |
0 | 1 | 0 | PORT C |
0 | 1 | 1 | Kontrol Kaydı |
1 | X | X | Seçim Yok |
WR
Yazmak için duruyor. Bu kontrol sinyali yazma işlemini etkinleştirir. Bu sinyal azaldığında, mikroişlemci seçilen bir G / Ç bağlantı noktasına veya kontrol yazmacına yazar.
SIFIRLA
Bu aktif bir yüksek sinyaldir. Kontrol kaydını temizler ve giriş modundaki tüm portları ayarlar.
RD
Oku anlamına gelir. Bu kontrol sinyali Okuma işlemini etkinleştirir. Sinyal düşük olduğunda, mikroişlemci verileri 8255'in seçilen G / Ç bağlantı noktasından okur.
A 0 ve A 1
Bu giriş sinyalleri RD, WR ve kontrol sinyallerinden biri ile çalışır. Aşağıda, çeşitli sinyallerini sonuçlarıyla birlikte gösteren tablo bulunmaktadır.
A 1 | A 0 | RD | WR | CS | Sonuç |
---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | Input Operation PORT A → Veri Yolu |
0 | 1 | 0 | 1 | 0 | PORT B → Veri Yolu |
1 | 0 | 0 | 1 | 0 | PORT C → Veri Yolu |
0 | 0 | 1 | 0 | 0 | Output Operation Data Bus → PORT A |
0 | 1 | 1 | 0 | 0 | Data Bus → PORT A |
1 | 0 | 1 | 0 | 0 | Data Bus → PORT B |
1 | 1 | 1 | 0 | 0 | Data Bus → PORT D |
The Intel 8253 and 8254 are Programmable Interval Timers (PTIs) designed for microprocessors to perform timing and counting functions using three 16-bit registers. Each counter has 2 input pins, i.e. Clock & Gate, and 1 pin for “OUT” output. To operate a counter, a 16-bit count is loaded in its register. On command, it begins to decrement the count until it reaches 0, then it generates a pulse that can be used to interrupt the CPU.
Difference between 8253 and 8254
The following table differentiates the features of 8253 and 8254 −
8253 | 8254 |
---|---|
Its operating frequency is 0 - 2.6 MHz | Its operating frequency is 0 - 10 MHz |
It uses N-MOS technology | It uses H-MOS technology |
Read-Back command is not available | Read-Back command is available |
Reads and writes of the same counter cannot be interleaved. | Reads and writes of the same counter can be interleaved. |
Features of 8253 / 54
The most prominent features of 8253/54 are as follows −
It has three independent 16-bit down counters.
It can handle inputs from DC to 10 MHz.
These three counters can be programmed for either binary or BCD count.
It is compatible with almost all microprocessors.
8254 has a powerful command called READ BACK command, which allows the user to check the count value, the programmed mode, the current mode, and the current status of the counter.
8254 Architecture
The architecture of 8254 looks as follows −
8254 Pin Description
Here is the pin diagram of 8254 −
In the above figure, there are three counters, a data bus buffer, Read/Write control logic, and a control register. Each counter has two input signals - CLOCK & GATE, and one output signal - OUT.
Data Bus Buffer
It is a tri-state, bi-directional, 8-bit buffer, which is used to interface the 8253/54 to the system data bus. It has three basic functions −
- Programming the modes of 8253/54.
- Loading the count registers.
- Reading the count values.
Read/Write Logic
It includes 5 signals, i.e. RD, WR, CS, and the address lines A0 & A1. In the peripheral I/O mode, the RD and WR signals are connected to IOR and IOW, respectively. In the memorymapped I/O mode, these are connected to MEMR and MEMW.
Address lines A0 & A1 of the CPU are connected to lines A0 and A1 of the 8253/54, and CS is tied to a decoded address. The control word register and counters are selected according to the signals on lines A0 & A1.
A1 | A0 | Result |
---|---|---|
0 | 0 | Counter 0 |
0 | 1 | Counter 1 |
1 | 0 | Counter 2 |
1 | 1 | Control Word Register |
X | X | No Selection |
Control Word Register
This register is accessed when lines A0 & A1 are at logic 1. It is used to write a command word, which specifies the counter to be used, its mode, and either a read or write operation. Following table shows the result for various control inputs.
A1 | A0 | RD | WR | CS | Result |
---|---|---|---|---|---|
0 | 0 | 1 | 0 | 0 | Write Counter 0 |
0 | 1 | 1 | 0 | 0 | Write Counter 1 |
1 | 0 | 1 | 0 | 0 | Write Counter 2 |
1 | 1 | 1 | 0 | 0 | Write Control Word |
0 | 0 | 0 | 1 | 0 | Read Counter 0 |
0 | 1 | 0 | 1 | 0 | Read Counter 1 |
1 | 0 | 0 | 1 | 0 | Read Counter 2 |
1 | 1 | 0 | 1 | 0 | No operation |
X | X | 1 | 1 | 0 | No operation |
X | X | X | X | 1 | No operation |
Counters
Each counter consists of a single, 16 bit-down counter, which can be operated in either binary or BCD. Its input and output is configured by the selection of modes stored in the control word register. The programmer can read the contents of any of the three counters without disturbing the actual count in process.
8253/54 can be operated in 6 different modes. In this chapter, we will discuss these operational modes.
Mode 0 ─ Interrupt on Terminal Count
It is used to generate an interrupt to the microprocessor after a certain interval.
Initially the output is low after the mode is set. The output remains LOW after the count value is loaded into the counter.
The process of decrementing the counter continues till the terminal count is reached, i.e., the count become zero and the output goes HIGH and will remain high until it reloads a new count.
The GATE signal is high for normal counting. When GATE goes low, counting is terminated and the current count is latched till the GATE goes high again.
Mode 1 – Programmable One Shot
It can be used as a mono stable multi-vibrator.
The gate input is used as a trigger input in this mode.
The output remains high until the count is loaded and a trigger is applied.
Mode 2 – Rate Generator
The output is normally high after initialization.
Whenever the count becomes zero, another low pulse is generated at the output and the counter will be reloaded.
Mode 3 – Square Wave Generator
This mode is similar to Mode 2 except the output remains low for half of the timer period and high for the other half of the period.
Mode 4 − Software Triggered Mode
In this mode, the output will remain high until the timer has counted to zero, at which point the output will pulse low and then go high again.
The count is latched when the GATE signal goes LOW.
On the terminal count, the output goes low for one clock cycle then goes HIGH. This low pulse can be used as a strobe.
Mode 5 – Hardware Triggered Mode
This mode generates a strobe in response to an externally generated signal.
This mode is similar to mode 4 except that the counting is initiated by a signal at the gate input, which means it is hardware triggered instead of software triggered.
After it is initialized, the output goes high.
When the terminal count is reached, the output goes low for one clock cycle.