37
1 8085 MĐKROĐŞLEMCĐ VE MIKROBĐLGĐSAYAR Murat KELLEGÖZ LĐSANS TEZĐ HAZĐRAN 1998

8085 Mikroislemciler ve uygulamalari

Embed Size (px)

Citation preview

Page 1: 8085 Mikroislemciler ve uygulamalari

1

8085 MĐKROĐŞLEMCĐ VE MIKROBĐLGĐSAYAR

Murat KELLEGÖZ

LĐSANS TEZĐ

HAZĐRAN 1998

Page 2: 8085 Mikroislemciler ve uygulamalari

2

T.C.

OSMANGAZĐ ÜNĐVERSĐTESĐ

FEN-EDEBĐYAT FAKÜLTESĐ

FĐZĐK BÖLÜMÜ

8085 MĐKROĐŞLEMCĐ VE MĐKROBĐLGĐSAYAR

Danışman : Yrd. Doç. Dr. Đsmail ÖZKAN

Hazırlayan : Murat KELLEGÖZ

Page 3: 8085 Mikroislemciler ve uygulamalari

3

HAZĐRAN 1998

4394003 no‘lu öğrenci Murat KELLEGÖZ tarafından hazırlanmış olan

8085 MĐKROĐŞLEMCĐ VE MĐKROBĐLGĐSAYAR konulu bitirme ödevi tarafımdan

okunup kabul edilmiştir.

...../...../1998

Yrd. Doç. Dr. Đsmail ÖZKAN

Page 4: 8085 Mikroislemciler ve uygulamalari

4

T E Ş E K K Ü R

Bu tez çalışmasını bana veren ve gerek fikir gerekse kaynak yönünden beni yönlendiren

sayın hocam Yrd. Doç. Dr. Đsmail ÖZKAN‘a teşekkür ederim.

Tez süresince bana gerek maddi gerekse manevi desteklerini esirgemeyen aileme ,

ayrıca değer verdiğim ve moral yönünden beni destekleyen Filiz ALACA‘ya sonsuz

teşekkürü bir borç bilirim.

Page 5: 8085 Mikroislemciler ve uygulamalari

5

Đ Ç Đ N D E K Đ L E R

1. MĐKROĐŞLEMCĐLER VE MĐKROBĐLGĐSAYARLAR................................................1

1.1. MĐKROĐŞLEMCĐNĐN KULLANIM ALANLARI VE ÜSTÜNLÜKLERĐ..............1

1.2. MĐKROBĐLGĐSAYARLARIN TEMEL YAPISI....................................................2

2. MERKEZĐ ĐŞLEM BĐRĐMĐ (MĐB)................................................................................3

2.1 MERKEZĐ ĐŞLEM BĐRĐMĐNĐN HIZI VE YETENEKLERĐ....................................3

2.2 MERKEZĐ ĐŞLEM BĐRĐMĐNĐN ĐÇ YAPISI............................................................4

3. BELLEK.......................................................................................................................8

3.1. ROM......................................................................................................................8

3.2. RAM......................................................................................................................9

4. GĐRĐŞ / ÇIKIŞ BĐRĐMLERĐ........................................................................................10

4.1. ĐLETĐŞĐM YÖNTEMLERĐ................................................................................. .10

5. ĐLETĐŞĐM YOLLARI..................................................................................................11

6. INTEL 8080 AĐLESĐ ..................................................................................................12

6.1. 8085 MĐKROĐŞLEMCĐ....................................................................................... 12

6.2. 8085 MĐKROĐŞLEMCĐSĐNĐN BACAKLARININ TANIMI.................................13

Page 6: 8085 Mikroislemciler ve uygulamalari

6

7. ADRESLEME YÖNTEMLERĐ VE KOMUTLARI.....................................................17

7.1. ADRESLEME YÖNTEMLERĐ............................................................................17

7.2. KOMUTLAR.......................................................................................................18

7.3. KOMUTLAR LĐSTESĐ........................................................................................19

EK : 8085 MĐKROĐŞLEMCĐNĐN KARAKTERĐSTĐK ÖZELLĐKLERĐKLERĐ

1. MĐKROĐŞLEMCĐLER VE MĐKROBĐLGĐSAYARLAR

Mikroişlemci bir bilgisayarın beynini oluşturan ‘Merkezi Đşlem Birimi’ dir. Kısaca MĐB.

Mikroişlemci geniş hacimli bir entegredir. Dar bir alana milyonlarla ifade edilen transistör,

flip-flop gibi elemanların sıkıştırılmaları ile imal edilmiştir.

Mikroişlemci tek başına bir mikrobilgisayar değildir. Mikrobilgisayar oluşturmak için

mikroişlemci ile bellekler ve giriş/çıkış birimlerine ihtiyaç vardır.

MĐKROBĐLGĐSAYAR = MĐKROĐŞLEMCĐ + BELLEKLER + GĐRĐŞ/ÇIKIŞ BĐRĐMLERĐ

1.1. MĐKROĐŞLEMCĐNĐN KULLANIM ALANLARI VE ÜSTÜNLÜKLERĐ

Mikroişlemci sadece bilgisayarlarda değil, aynı zamanda endüstride, kontrol sistemlerinde,

haberleşme sistemlerinde, robot endüstrisinde kullanılmaktadır. Mikroişlemci bir

elektronik devre elemanı olmasına rağmen alışıla gelmiş devre elemanlarına göre

üstünlükleri vardır.

a.) Programlanarak değişik işlerde kullanılabilirler.

Page 7: 8085 Mikroislemciler ve uygulamalari

7

b.) Bir makinenin arka arkaya yapacağı çok sayıda işlemlerini bir program içinde düzenli

olarak sırayla yürütebilirler.

c.) Daha dar bir alana monte edilirler ve maliyetleri daha ucuz olur.

d.) Daha hassas çalışırlar, mikrosaniye gibi zaman aralıklarında, ısı, gerilim gibi

değişkenlerin mikro değerlerindeki değişmeleri hissederek kontrol yapabilirler.

e.) Çok sayıda veri girişine sahip komplike devrelerde, giriş/çıkış durumlarına göre bir

sistemi kontrol edebilirler.

1.2. MĐKROBĐLGĐSAYARLARIN TEMEL YAPISI

Mikrobilgisayarların tüm işlemlerinin organizasyonunu MĐB yapıp birçok alt birimlerden

meydana gelir. Bir mikrobilgisayar temelde üç üniteden meydana gelir.

a.) Merkezi Đşlem Birimi (MĐB)

b.) Bellek birimi

c.) Giriş/Çıkış birimi

Mikrobilgisayarın, bu üç ünite arasındaki veri ve program akışını sağlamak üzere, çok

sayıda bağlantıdan oluşan yollar bulunmaktadır.

a.) Veri yolları

b.) Adres yolları

c.) Denetim yolları

Page 8: 8085 Mikroislemciler ve uygulamalari

8

(Şekil 1: Bilgisayarın üç temel birimi arasındaki bağlantı)

2. MERKEZĐ ĐŞLEM BĐRĐMĐ (MĐB)

Merkezi işlem birimi bilgisayarın temel birimi olarak kabul edilebilir. Bilgisayarın

aritmetik ve lojik işlemler yapabilmeli ve ortaya çıkan sonuçlara göre karar verebilmelidir.

Bu görev MĐB tarafından yarine getirilir. Bunun yanısıra MĐB’ye bilgisayarın beyni olarak

bakılmaktadır.

2.1. MERKEZĐ ĐŞLEM BĐRĐMĐNĐN HIZI VE YETENEKLERĐNĐN ÖLÇÜTLERĐ

a.) HIZ: MĐB’nin belli zaman içinde yapabileceği işlemşerin sayısıdır. Bu sayıya iş yüküde

denilmektedir. MĐB’nin çalışmasını senkronlayan saat frekansına bağlıdır.

b.) SÖZCÜK UZUNLUĞU: MĐB’nin bir anda işleyebileceği veri uzunluğu, MĐB’nin

gücünü gösterir.

c.) KOMUT KÜMESĐ: Bir MĐB’nin yeteneklerinin ölçülmesinde, komut kümesinin

çeşitliliği ve komutlarının güçlülüğüde önemli bir etkendir. Komut kümesinin zengin

olması, programcıya esneklik ve kolaylık sağlayacağı için MĐB’yi güçlü kılar.

Page 9: 8085 Mikroislemciler ve uygulamalari

9

d.) ADRSLEME YETENEĞĐ: Bir MĐB’nin en önemli özelliklerinden biride komut içinde

kullanılan adresleme yöntemlerinin zenginliği ve güçlülüğü, bu arada düzgünlüğü de bir

MĐB için önemli bir ölçüttür.

e.) ADRESLEME KAPASĐTESĐ: MĐB’nin bir başka yeteneği ise, doğrudan

adresleyebileceği bellek boyudur. 8 bit mikroişlemcilerde adresleme kapasitesi 64K’dır.

2.2. MERKEZĐ ĐŞLEM BĐRĐMĐNĐN YAPISI

a.) BELLEK VERĐ SAKLAYICI: MĐB’inden belleğe veye giriş/çıkış arabirimlerine giden

veye bu birimlerden MĐB ne gelen verinin yazıldığı yerdir. 8085 mikroişlemcide bellek

veri saklayıcısı 8 bittir.

b.) BELLEK ADRES SAKLAYICI: MĐB ile bellek arasında gidip gelen verilerin bellekte

hangi göze yazılacağı veye verinin hangi gözden geldiği bu kutüğe yazılan adres ile

belirtilir. Giriş/çıkış arabirimlerinin adreslenmesinde de bellek adres saklayıcısından

faydalanılır. 8 bitlik mikroişlemcilerde adres yolları 16 bit olduğundan bellek adres

saklayıcısıda 16 bit uzunluğundadır.

c.) ARĐTMETĐK LOJĐK BĐRĐM (ALU): MĐB içinde yapılması gereken aritmetik ve lojik

birimler ALU içerisinde gerçekleşir. Karşılaştırma ve karar verme işlemleride bu birim

içerisinde olur.

• Aritmetik işlemler: ALU toplama, çıkarma, çarpma ve bölme işlemlerini yerine

getirebilir.

Page 10: 8085 Mikroislemciler ve uygulamalari

10

• Lojik işlemler: ALU içinde temel VE, VEYA gibi işlemleri yerine getirebilir.

• Karşılaştırma ve karar verme işlemleri: Đki büyüklüğün birbirine göre büyüklük,

küçüklük veya eşitlik karşılaştırması yapılabilir. Ortaya çıkan duruma göre karar

rebilir ve sonuç durum saklayıcısına işlenir.

d.) AKÜMÜLATÖR: MĐB’nin ana saklayıcısıdır. Komutların çoğu akümülatör üzerinde

yapılır ve. Akümülatör yürürlükteki komutla işlenen bilginin geçici olarak depolandığı

yerdir. Akümülatördeki bilgi belleğe alındığında akümülatördeki bilgi silinmez. 8085

mikroişlemcide akümülatör 8 bittir.

e.) DURUM SAKLAYICI: ALU tarafından gerçekleştirilen işlemlerin sonunda ortaya çıkan

durumların yazıldığı bir saklayıcıdır. Buna bayrak saklayıcısıda denilmektedir. Durum

saklayıcısının içeriği, karar verme işlemlerinde temel alınır. 8085 mikroişlemcide durum

saklayıcısı 8 bitten oluşur.

(Şekil 2: Durum saklayıcı)

Durum saklayıcısının D0, D2, D4, D6 ve D7 nolu bayrakları programcı tarafından

kullanılır. D4 nolu bayrağı mikroişlemci, programcının kontrolü dışında kullanır. D3 ve

D5 nolu bayraklar ise boştur.

• S-işaret bayrağı: Sayının pozitif veya negatif olduğunu gösteren bayraktır. Eğer

işaret bayrağı 1 ise sayı negatif, 0 ise pozitiftir.

Page 11: 8085 Mikroislemciler ve uygulamalari

11

• Z-sıfır bayrağı: Akümülatörde bulunan sayının değeri sıfır ise bu bayrak 1 değerini,

sıfır değil ise 0 değerini alır.

• AC-yardımcı elde bayrağı: Bu bayrak iki tabanlı sayılar ile çalışırken kullanılır. Bir

aritmetik işlem sonucunda üçüncü bitten dördüncü bite bir elde aktarıldığında

yardımcı elde bayrağı 1 değerini alır. Eğer bir elde aktarımı söz konusu değil ise 0

değerini alır.

• P-parite bayrağı: Bir aritmetik veya mantık işleminden sonra elde edilen 1 sayıları

ile ilgilidir. Sonuç içerisinde 1’lerin sayısı çift ise bu bayrak 1 değerini, sonuç

içerisindeki 1’lerin sayısı tek ise bu bayrak reset olur.

• CY-elde bayrağı: Bir aritmetik işlem sonucunda akümülatöre yazılamayan bir elde

varsa bu elde bayrağı 1 değerini alır.

f.) YARDIMCI SAKLAYICI: MĐB içindeki işlemlere hız kazandırmak amacıyla, yardımcı

saklayıcı kullanılmaktadır. Bu saklayıcılar, üzerinde sık sık işlem yapılacak işlemler için

kullanılırlar. Bu saklayıcının akümülatörden tek farkı, aritmetik ve lojik işlemlerde

birinci işlenen yerini almamalarıdır. 8085 mikroişlemcilerde 8 bit akümülatörün yanında

herbiri 8 bit olan B, C, D, H ve L yardımcı saklayıcılar vardır.

g.) PROGRAM SAYICI: Program sayıcı bir sonra gelen programdaki komutun adresini

depolar. Adres yolları 16 bit genişliğinde olduğundan program sayıcısıda 16 bit

genişliğinde bir kaydedicidir. Program sayıcısının adresi, son adres kullanıldıktan sonra

otomatik olarak atrar veye komuta göre azalabilir. Ayrıca program sayıcısı atlama

komutu ile program sayıcısının adresi herhangi bir adresle değiştirilebilir.

h.) KOMUT SAKLAYICI: Komut saklayıcısı o anda işlenen komutu içerir.

i.) KOMUT KOD ÇOZÜCÜ: Komut saklayıcısında bulunan komutun taşıdığı anlamı

çözümlediği yerdir.

j.) YIĞIN GÖSTERGESĐ: Bilgisayar dilinde, verilieri üst üste yığmaya ve gerektiğinde,

verileri yığından teker teker geri almaya yığın işlemi denilmektedir. Yığının nerede

kurulduğunu belirtmek için MĐB içinde yığın göstergeside kullanılmaktadır. Yığın

Page 12: 8085 Mikroislemciler ve uygulamalari

12

göstergesi bellek üzerinde herhangi bir bölgesindeki yığının alınmasına müsaade eder.

Bu yığın göstergesi 16 bitlik bir kaydedicidir.

(Şekil 3: Mikroişlemcinin kaydedici yapısı)

k.) SIRALAMA SAKLAYICI: Sıralı verilerin belleğe yazılması veya bellekte sıralı bulunan

verşlerin okunması için kullanılır.

l.) DENETĐM BĐRĐMĐ: MĐB’nin en önemli birimlerindendir. Bu birim hem MĐB içindeki

çalışmayı düzenler hemde bilgisayar içindeki çalışmayı düzenler.

Page 13: 8085 Mikroislemciler ve uygulamalari

13

(Şekil 4: Merkezi işlem biriminin iç yapısı)

3. BELLEK

Bilgisayarın çalışmasına yön verecek programı ve programın üzerinde çalışacağı verileri

saklamak için bellek kullanılmaktadır. Bellek posta kutusuna benzetilebilir.Her bir posta

kutusu bir adrese sahiptir. Bilgiler bu kutularda binary formunda saklanır. Bu belleğe

yazılmış olan bilgileri tutabilmek için enerjiye ihtiyaç vardır. Yani belleği besleyen gerilim

kesilmesi durumunda bellekteki bilgiler kaybolur. Bu olumsuz durum sebebiyle yarı iletken

teknolojisinde iki tip bellek üretimi sağlanmıştır.

3.1. ROM (Salt okunur bellek)

Bilgisayarda sürekli kalması istenilen bilgilerin saklanması için kullanılan bellek türüdür.

Özel amaçlı ve sabit programla çalışan bilgisayarların programları ile bilgisayar

açıldığında, kullanıcıya hizmet verecek, yol verme programları bu tür belleklere saklanır.

En önemli özelliği gerilim kesildiğinde bellekteki bilgiler saklı kalır. Bu tür bellekler

programlanabilme yeteneklerine göre dört gruba ayrılır.

Page 14: 8085 Mikroislemciler ve uygulamalari

14

• ROM: Bu bellek türüne bilgi yazılması, belleğin üretimi esnasında gerçekleşir.

Sonuçtada programlanan belleğin içerisindeki program değiştirilememektedir.

• PROM (Programlanabilir salt okunur bellek): Bu bellek türü üretildikleri zaman bütün

gözeneklerinde birer sigotta bulunmaktadır. Bu sigortalar istenilen nitelikteki programa

göre attırılarak bellek programlanır. Programlandıktan sonra bir başka değişle sigortanın

yenilenerek farklı bir programın yazılması olanağı yoktur. Anlaşılacağı üzere bu bellek

yalnız bir kere programlanabilir.

• EPROM (Silinebilir, programlanabilir salt okunur bellek): Bu bellek türü üretildiğinde

tüm bellek gözeleri 1 konumundadır. 1 konumunda olan gözelerden istenenler özel

yöntem ve araçlarla 0 konumuna getirilebilir. Bu belleğin gövdesi üzerinde bulunan

pencereden ultraviyole ışığının tutulması durumunda belli bir süre sonunda bellek

gözeleri 1 konumuna gelerek silinmiş olur ve tekrar programlanmaya hazır hale

getirilebilir. Güneşten gelen ışığın ultraviyole ışık içerdiğini düşünecek olursak sağlıklı

bir çalışma için programlanan EPROM’un penceresinin siyah bir bant ile kapatılması

uygun görülür.

• EEPROM (Elektriksel silinebilir, programlanabilen salt okunur bellek): Bu bellek

türünde bellek gözelerine istenilen bir değer yazılabilir ve yazılan bu bilgi yeni bir

yazmaya kadar kalır. Bellek gözesine yazılan bilgi 0 ve 1’lerden oluşmaktadır.

EEPROM’lara veri yazılmasında özel yöntem ve araçlar kullanılabilir. EEPROM’ların

silinmesi durumunda tüm belleklerin 0 veya 1 olması durumu anlaşılır.

3.2. RAM (Okunabilir silinebilir bellek)

Bu tür bellekler bilgilerin geçici olarak saklandığı yerlerdir. Đstenildiğinde yazılabilen

istenildiğinde silinebilen belleklerdir. Gerilim kesildiğinde bilgilerin tümü kaybolur.

RAM’lar bilgiyi saklama açısında iki gruba ayrılırlar.

Page 15: 8085 Mikroislemciler ve uygulamalari

15

• STASĐK RAM: Bu belleğin her bir gözesinde bir flip-flop bulunur. Bilindiği üzere iki

konumlu olan flip-floplar, girişine uygulanan lojik işaretin durumuna göre 0 veye 1

konumunu alır. Yeni bir veri girişi yapılana dek eski konumda kalır. Gerilimin

kesildiğinde bilgilerin yok olması bazı uygulamalarda sorun yaratabileceğinden dıştan

veya içten pilli bellekler üretilmektedir.

• DĐNAMĐK RAM: Bu bellek türü MOS transistörlerinden oluşmuştur ve bilgileri elektrik

yükü olarak saklanır. Bu elektrik yükünün boşalmaya başladığı durumda yük yarıya

inmeden okuduğunda 1 değerini, aksi halde 0 değerini alır. 1 olduğu algılanırsa kapasite

yeniden doldurulur.

(Şekil 5: Belleklerin sınıflandırılması)

4. GĐRĐŞ/ÇIKIŞ BĐRĐMLERĐ

Bir bilgisayar her zaman için dış ortamlarlaa ilişki halindedir. Bu ilişki giriş çıkış birimleri

ile sağlanır. Giriş birimi input port, çıkış birimi output port olarak adlandırılır. Merkezi

işlem birimi, giriş/çıkış birimleri ile akümülatör üzerinden biligi alış verişini sağlar.

4.1. ĐLETĐŞĐM YÖNTEMLERĐ

Bilgi aliş verişi paralel iletişim ve seri iletişim iki gruba ayrılırlar.

• PARALEL ĐLETĐŞĐM: Bir verinin alıcıya gönderilmesi sırasında, verinin her bir biti için

ayrı bir hat kullanılıyor ise, bu iletişim yöntemine paralel iletişim yöntemi denir.

Page 16: 8085 Mikroislemciler ve uygulamalari

16

(Şekil 6: Paralel iletişime örnek bağlanmış iki birim)

Şeki 6’da görüldüğü gibi, verici ve alıcı arasında, aktarılacak veri içindeki bit sayısı

kadar hat bulunmaktadır. Ayrıca veri hatlarına ek olarak al ve hazır bağlantıları vardır.

Bu iki bağlantı bilginin hangi yönde akacağını belirlemekte kullanılır. Çünkü bir tek

hat

üzerinden çift taraflı bilgi akışı olabilir.

• SERĐ ĐLETĐŞĐM: BU iletişim yönteminde , bir veri içindeki bitler, Aynı hat üzerinden

peş peşe gönderilirler. Bir başka değişle, iletişim hatları bitler tarafından zamanda

paylaşılırlar.

5. ĐLETĐŞĐM YOLLARI

Mikroişlemci birimi ile bellek veya giriş/çıkış birimleri arasındaki bilgi alış verişinin

sağlanması için üç çeşit iletişim yolu vardır.

• ADRES YOLU: Merkezi işlemci birimi tarafından bellekten seçilecek bilginin

bulunduğu yerin adresiniğ taşıyan yoldur. Adres binary olarak uygulanır. Uygulanan bu

adres paralel bilgi hattından oluşur. 8 bitlik mikroişlemci biriminde adres hat sayısı 16

bitliktir. Buna göre 216=65536 bellek gözesi adreslenebilmektedir.

• BĐLGĐ YOLU: Bilgi yolu genellikle sekiz hattan oluşur. Giriş/çıkış birimi ile merkezi

işlem biriminde bulunan akümülatör arasında bilgi alış verişini sağlar. Aynı zamanda bu

Page 17: 8085 Mikroislemciler ve uygulamalari

17

hatlar üzerinden de dış devreler yollanabilir veya dış devrelerden bilgi alınabilir. Bilgi

yolu adedi bit sayısını tanımlar. Yani sekiz bilgi hattına sahip bir merkezi işlem birimi 8

bitlik mikroişlemci olarak olarak tanımlanır.

• KONTROL YOLU: Mikroişlemcinin dış ortamla ilişki kurarak gerekli işlemleri

gerçekleştirebilmesi için kontrol sinyallerini taşıyan hatlara ihtiyaç vardır. Bu hatlara

kontrol yolları denir.

(Şekil 7: Mikroişlemcide iletişim yolları)

6. INTEL 8080 AĐLESĐ

Intel 8080, 4004, 4040 ve 8008’lerin ardından üretilmiş 8 bit mikroişlemcilerin ilkidir ve

1974’te kullanıma sunulmuştur. 8085 mikroişlemcilerin ise 8 bit mikroişlemcilerin

ikincisidir. 8080; +5, -5 ve +12 V’luk üç gerilim kaynağı gerektirdiğinden yerini yalnızca

5V ile çalışan 8085’e bırakmıştır. Yalnızca tek değerde bir gerilim kaynağı kullanmayıp

aynı zamanda bir çok eksiklikleride giderilmiştir. Bunların başında 8080’de adres ve veri

yolları için bağımsız ayaklar bulunurken, 8085’de veri yolları ile adres yolları geçmeli

olarak düzenlenmiştir.

Page 18: 8085 Mikroislemciler ve uygulamalari

18

6.1. 8085 MĐKROĐŞLEMCĐ

8085 mikroişlemcisinin özellikleri şöyle özetlenebilir.

• Sözcük uzunluğu 8 bittir.

• Bellek adresleme yeteneği 64K’dır.

• Veri yolu ve adres yolu geçmelidir.

• Saat osilatörü içindedir.

• Kesme girişleri ve kesme öncelikvericisi vardır.

• Giriş/çıkış arabirimleri bellek dışındadır.

Page 19: 8085 Mikroislemciler ve uygulamalari

19

(Şekil 8: 8085 Mikroişlemcisinin iç yapısı)

6.2. 8085 MĐKROĐŞLEMCĐSĐNĐN BACAKLARININ TANITIMI

• AD0-AD7 (Adres ve veri yolları): 8085’te veri ve adres yolları için ortak hatlar

kullanılmıştır. Bunlar 12. ile 19. Bacaklar arasında yar almaktadır. Bu nedenle verilier

için kullanılan 8 hat ile, adres hatlarının ilk 8 hattı aynıdır. AD0-AD7 hattı olarak anılan

bu hatlar üzerinde, buyruğun işlenişine uygun olarak ya adres bilgisi yada veri bilgisi

bulunur. Böylece aynı hatlar ortaklaşa kullanılmış olur. AD0-AD7 hatları iki yönlü

çalışmaktadır. Çıkış durumunda çalışırken her bir bit bir TTL yükü sürebilecek

yetenektedir ve bu hatlar üç konumlu kapılardan oluşmuştur. AD0-AD7 adres hatları

üzerinde, giriş/çıkış birimlerinin seçimi sırasında, 8 bitlik giriş/çıkış birimi adresi

oluşur.

A8-A15 (Adres yolları): Adres yollarının diğer hatlarıdır. Bunlar 21. ile 28. Bacaklar

arasında yer almaktadırlar. Her bir hat bir TTL sürebilecek güçteüç konumlu kapılardan

kurulmuştur. HALT, HOLD ve RESET durumlarında, bu çıkışlar üçüncü konuma

geçerler. A8-A15 adres hatları üzerinde, giriş/çıkış birimlerinin seçimi sırasında, AD0-

AD7 hatları üzerine olduğu gibi, 8 bitlik giriş/çıkış birimi adresi oluşur.

ALU (Adres tutucu): Bu 30. bacağı oluşturan bu bacak AD0-AD7 hatları üzerine adres

bilgisi yerleştirildikten sonra etkin duruma gelir. Böylece, bu hatlara bağlı olan tutucu

devrede, adres bilgilerinden ilk sekizinin tutulması sağlanır. ALU ucunun lojik 1’den

0’a inmesi, tutma emrini oluşturur.

Page 20: 8085 Mikroislemciler ve uygulamalari

20

• HOLD (Dur): 39. Bacağı oluşturan bu bacak girişinin lojik 0 olması ile, merkezi işlem

birimi elindeki son komutu tamamlar ve çalışmasını durdurur. Bu durumda, adres ve

veri yolları ile, RD, WR ve IO/M çıkışları üçüncü konuma geçerler. Kullanılmadığı

durumda, +5V’a bağlanması gerekir.

• HLDA (Dur anlaşıldı): 38. bacağını oluşturan bu bacak HALT girişinin lojik 0’a inmesi

ve merkezi işlem biriminin kendisini çevresinden yalıtması durumu,HLDA çıkışının 0’a

inmesi ile yansıtılır.

• RD (Oku): 32.bacağı oluşturan RD çıkışı merkezi işlem birimi ile Oku

• WR (Yaz): Yaz çıkışı 31. Bacağı teşkil eder. Bu çıkış merkezi işlem birimi ile bellek

ve/veya giriş/çıkış birimleri arasında yazma işlemini sağlar. Yaz çıkışı lojik 0’da

etkindir. HALT, HOLD ve RESET girişlerinden biri etkin iken üçüncü konuma geçer.

• READY (Hazır): 35. Bacağı oluşturan bu giriş, merkezi işlem birimine bağlı bellek veya

giriş/çıkış biriminin okuma veya yazma için hazır olup olmadığını yansıtır. Hazır

girişinin lojik 1 olması bellek veya giriş/çıkış biriminin hazır olduğunu gösterir. Bu

girişin 0 olması durumunda, merkezi işlem birimi girişin hazır olması durumunu bekler.

• TRAP (Kesme): 6. bacak maskelenemez kesme girişidir. Bu giriş 0’dan 1’e çıkması

sonucunda belirlenmiş adresten başlayan kesme hizmet programına dallanır. Önceliği en

yüksek olan kesmedir.

• RST 7.5; RST 6.5; RST 5.5 (Kesme isteği) : Bunlar sırasıyla 7. 8. ve 9. bacakları

oluşturur. Bu üç kesme isteği de yazılımla denetlenebilmektedir. Bu üç girişten gelen

kesme isteklerinde, belirlenmiş adreslerden başlayan kesme hizmet programlarına

dallanır.

Page 21: 8085 Mikroislemciler ve uygulamalari

21

• INTR (Kesme isteği): 10. Bacağı oluşturur. Bu girişe, yazılımla denetlenmek istenen

kesme isteği bağlanır. Bu girişten kesme isteği gelmesi, mermezi işlem birimini

dışarıdan komut okumaya zorlar. Önceliği en düşük olan kesmedir.

• INTA (Kesme alındı): Bu 11. Bacak olup kesme alındığını belirten çıkıştır. Etkin

durumu 0 dır.

• RESET IN (Reset girişi): 36. Bacağı oluşturur. Merkezi işlem birimini albaştan etmeye

yarar. Bu girişin kısa bir süre için 0 olması ile merkezi işlem birimi 0000 adresine

bağlanır ve bu adresten başlayan programı işlemeye koyulur.

• RESET OUT (Reset çıkışı): 3. Bacağı teşkil eden bu bacak merkezi işlem biriminin

RESET edildiğini belirtir. Etkin durumu lojik 1 dir.

• X1; X2; CLK OUT (Saat uçları): Sırasıyla 1. 2. ve 37. Bacakları oluştururlar. X1 ve X2

arasına bir rezonans devresi veya bir kristal bağlanması ile, 8085 mikroişlemci içinde

bulunan osilatör çalışır. Bir başka çozüm; dışarıda bulunan bir osilatörün çıkışı, X1’e

bağlanarak, 80852in bu frekansta çalışması sağlanabilir. CLK OUT, bilgisayar

sisteminin çalışması için gereklidir. Ve frekansı X1’de görülen frekansın yarısıdır.

• SID; SOD (Seri giriş/çıkış): Bunlar sırasıyla 5. ve 4. Bacaklardır. Akümülatör de

bulunan veri SOD komutu ile, seri biçimde SOD çıkışından dışarı gönderilebilir. Benzer

şekilde, SID girişine uygulanmış olan seri bilgiler, SID komutu ile akümülatöre

alınabilir.

• S0; S1; IO/M (Merkezi işlem biriminin durumu): Bunlar sırasıyla 29. 33. ve 34.

Bacaklardır. Bu üç cıkış 8085 mikroişlemcisinin o andaki çalışma biçimini ve

durumunu yansıtırlar.

• VSS;VCC : 5 V’lik besleme için bağlantı bacakları. Bunlar 20. ve 40. bacaklardır.

Page 22: 8085 Mikroislemciler ve uygulamalari

22

(Şekil 9: 8085 Mikroişlemcinin bacaklarının tanıtımı)

7. ARESLEME YÖNTEMLERĐ VE KOMUTLAR

8085 Mikroişlemcilerde dört temel adresleme yöntemleri kullanılmaktadır ve bu

yöntemlerin her birine has komutlar mevcuttur. Bu komutlar makine dili dediğimiz

makinanın anlayabilecegi dilde düzenlenmiştir.

7.1. ADRESLEME YÖNTEMLERĐ

Page 23: 8085 Mikroislemciler ve uygulamalari

23

• ĐVEDĐ ADESLEME: Merkezi işlem birimi içerisindeki akümülatör ve saklayıcılar,

boylarına uygun verilere ivedi olarak yüklenebilir. Ayrıca herhangi bir bellek gözesine

de ivedi olarak yazılabilir.

• DOĞAL ADRESLAME: Bu adreslemeye karşılık olarak ‘register’ ve ‘implied’

adresleme yöntemleri kullanılmaktadır. Đki adresleme yöntemide doğal adresleme

kavramına uygundur. Sadece adlandırmada farklılık göstermiştir.

‘Register adressing’ diye anılan yöntemde, merkezi işlem birimi içindeki kütükler

üzerinde işlemler yapılmaktadır.

‘Đmplied adressing’ yönteminde ise, durum saklayıcı bayrağını etkileyen komutlar örnek

verilebilir.

• DOĞRUDAN ADRESLEME: Doğrudan adresleme 0000 - FFFF arasındaki bellek

alanını kapsamaktadır. Bu adresleme yönteminde, bir komut üç byte içine

yazılmaktadır. Yani ilk byte’e komutu, ikinci byte’e adresin düşük anlamlı kısmı,

üçüncü byte’e ise adresin yüksek anlamlı kısmı yazılır.

• KÜTÜĞE BAĞLI ADRESLEME: Bu yöntemde, üzerinde işlem yapılacak bellek

gözünün adresi, bir kütük çiftinde yazılı olmalıdır. Bir anlamda dolaylı adresleme

olarak düşünülebilir.

7.2. KOMUTLAR

8085 mikroişlemcilerde kullanılan Intel firmasınca altı kümeye ayrılmaktadır. Bu altı

kümenin tümünde kullanılan komutlar makine dilinde ifade edilir. Komutların yazılımı ve

kullanılan kodların programın hazırlanmasında büyük önem vardır.

Page 24: 8085 Mikroislemciler ve uygulamalari

24

• ARĐTMETĐK ĐŞLEM KOMUTLARI: Bu komutlar yardımı ile, akümülatörün içeriği ve

belirtilen veri arasında aritmetik işlemler yapar.

• LOJĐK ĐŞLEM KOMUTLARI: Bu grup içindeki komutlar, akümülatörün içeriği üzerinde

lojik işlemleri yapar.

• ĐŞLEM KOMUTLARI: Bu küme içindeki komutlar, aritmetik veya lojik komut kümesine

katılmak üzere özellikleri gereği temel anlamda ayrı tutulmuştur.

• KARAR VERME VE DALLANMA KOMUTLARI:Bu komutlar yardımı ile program akışı

içinde değişik satırlara atlanabilir.

• GĐRĐŞ / ÇIKIŞ KOMUTLARI: Bu küme içindeki komutlar yığına veya çevre

elemanlarına veri göndermek ve oradan veri kabul etmek için kullanılır.

1. BYTE 2. BYTE 3. BYTE

TEK BYTE OPCODE

ĐKĐ BYTE OPCODE VERĐ

ÜÇ BYTE OPCODE ADRESĐN DÜŞÜK KISMI ADRESĐN YÜKSEK KISMI

(Tablo 1: ĐNTEL 8085 için komutların belleğe yazılış formu)

REGĐSTER A B C D E H L

KODU S/D 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1

(S verinin çıktığı registerleri, D verinin gittiği rgisterleri temsil eder.)

REGĐSTER ÇĐFTĐ B(B,C) D(D,E) H(H,L) SP(STACK POĐNTER

Page 25: 8085 Mikroislemciler ve uygulamalari

25

KODU 0 0 0 1 1 0 1 1

(Tablo 2: Register ve register çiftleri için kodlar)

7.3. KOMUTLAR LĐSTESĐ

Komut adı : MOV R1 R2

Tanım : R2 register içeriğini R1’e taşır.

Opcode : 01DDDSSS

Komut adı : MOVE R M

Tanım : Bellekten R registerine veri yükler:

Opcode : 01DDD110

Komut adı : MOV M R

Tanım : R registerin içeriğini belleğe taşır.

Opcode : 01110SSS

Komut adı : MVI R veri

Tanım : Veriyi R registerine taşır.

Opcode : 00DDD110

Komut adı : MVI M veri

Tanım : Veriyi belleğe taşır.

Opcode : 00110110

Komut adı : LXI RP veri

Tanım : Veriyi Rp register çiftine taşır.

Opcode : 00RP0001

Komut adı : LDA adres

Tanım : Bellekteki veriyi akümülatöre taşır.

Page 26: 8085 Mikroislemciler ve uygulamalari

26

Opcode : 00111010

Komut adı : STA adres

Tanım : Akümülatörün içeriğini belleğe taşır.

Opcode : 00110010

Komut adı : LHLD adres

Tanım : Verilen adresin içeriğini L’ye bir sonrakini H registerine taşır.

Opcode : 00101010

Komut adı : SHLD adres

Tanım : Register içeriğini verilen adrese taşır.

Opcode : 00100010

Komut adı : LDAX RP

Tanım : RP pegister çiftinin içeriğini akümülatöre taşır.

Opcode : 00RP1010

Komut adı : STAX RP

Tanım : Akümülatörün içeriğini RP register çiftine taşır.

Opcode : 00RP0010

Komut adı : XCHG

Tanım : H ve L register içeriğini sırasıyla D ve E ile değiştirir.

Opcode : 11101011

Komut adı : INR R

Tanım : Register içeriğini 1 ile toplar.

Opcode : 00DDD100

Page 27: 8085 Mikroislemciler ve uygulamalari

27

Komut adı : INR M

Tanım : Bellek içeriğini 1 ile toplar.

Opcode : 00110100

Komut adı : INX RP

Tanım : Register çiftinin içeriğini 1 ile toplar.

Opcode : 00RP0011

Komut adı : DCR R

Tanım : Register içeriğinden 1 çıkartır.

Opcode : 00DDD101

Komut adı : DCR M

Tanım : Bellek içeriğinden 1 çıkartır.

Opcode : 00110101

Komut adı : DCX RP

Tanım : RP register çifti içeriğinden 1 çıkartır.

Opcode : 00RP1011

Komut adı : ADD R

Tanım : R register ve akümülatör içeriğini toplar sonucu akümülatörde saklar.

Opcode : 10000SSS

Komut adı : ADD M

Tanım : Bellek ve akümülatörün içeriğini toplar sonucu akümülatörde saklar.

Opcode : 10000110

Komut adı : ADI veri

Tanım : Veri ve akümülatörü toplar sonucu akümülatörde saklar.

Opcode : 11000110

Page 28: 8085 Mikroislemciler ve uygulamalari

28

Komut adı : ADC R

Tanım : R register ve elde bayrağını akümülatör ile toplar sonucu akümülatörde saklar.

Opcode : 10001SSS

Komut adı : ADC M

Tanım : Bellek ve elde bayrağını akümülatör ile toplar sonucu akümülatörde saklar

Opcode : 10001110

Komut adı : ACI veri

Tanım : Veri ve elde bayrağını akümülatör ile toplar sonucu akümülatörde saklar.

Opcode : 11001110

Komut adı : DAD RP

Tanım : RP register çiftini HL register çifti ile toplar sonucu HL register çiftinde saklar.

Opcode : 00RP1001

Komut adı : SUB R

Tanım : R register çiftini akümülatörden çıkartır sonucu akümülatörde saklar.

Opcode : 10010SSS

Komut adı : SUB M

Tanım : Bellek içeriğini akümülatörden çıkartır sonucu akümülatörde saklar.

Opcode : 10010110

Komut adı : SUI veri

Tanım : Veriyi akümülatörden çıkartır sonucu akümülatörde saklar.

Opcode : 11010110

Komut adı : SBB R

Tanım : R register i ve elde bayrağını akümülatörden cıkartır sonucu akümülatörde saklar.

Page 29: 8085 Mikroislemciler ve uygulamalari

29

Opcode : 10011SSS

Komut adı : SBB M

Tanım : Bellek ve elde bayrağını akümülatörden çıkartır sonucu akümülatörde saklar.

Opcode : 10011110

Komut adı : SBI veri

Tanım : Veri ve elde bayrağını akümülatörden çıkartır sonucu akümülatörde saklar.

Opcode : 11011110

Komut adı : CMA

Tanım : Akümülatördeki sayının tümleyenini alır.

Opcode : 00101111

Komut adı : STC

Tanım : Elde bayrağının değerini 1 yapar.

Opcode : 00110111

Komut adı : CMC

Tanım : Elde bayrağının değerini 0 ise 1, 1 ise 0 yapar.

Opcode : 00111111

Komut adı : DAA

Tanım : Akümülatörün içeriğini BCD sayıları ile çalışacak şekilde düzenler.

Opcode : 00100111

Komut adı : RLC

Tanım : Akümülatörü bir bit sola döndürür.

Opcode : 00000111

Komut adı : RRC

Page 30: 8085 Mikroislemciler ve uygulamalari

30

Tanım : Akümülatörü bir bit sağa kaydırır.

Opcode : 00001111

Komut adı : RAL

Tanım : Akümülatörü elde bayrağı ile birlikte sola kaydırır.

Opcode : 00010111

Komut adı : RAR

Tanım : Akümülatörü elde bayrağı ile birlikte sağa kaydırır.

Opcode : 00011111

Komut adı : ANA R

Tanım : R registeri ile akümülatör arasında VE işlemi yapar sonucu akümülatörde saklar.

Opcode : 10100SSS

Komut adı : ANA M

Tanım : Bellek ile akümülatör arasında VE işlemi yapar sonucu akümülatörde saklar.

Opcode : 10100110

Komut adı : ANI veri

Tanım : Veri ile akümülatör arasında VE işlemi yapar sonucu akümülatörde saklar.

Opcode : 11100110

Komut adı : XRA R

Tanım : R registeri ile akümülatör arasında XOR işlemi yapar sonucu akümülatörde saklar.

Opcode : 10101SSS

Komut adı : XRA M

Tanım : Bellek ile akümülatör arasında XOR işlemi yapar sonucu akümülatörde saklar.

Opcode : 10101110

Page 31: 8085 Mikroislemciler ve uygulamalari

31

Komut adı : XRI veri

Tanım : Veri ile akümülatör arasında XOR işlemi yapar sonucu akümülatörde saklar.

Opcode : 11101110

Komut adı : ORA R

Tanım : R registeri ile akümülatör arasında VEYA işlemi yapar sonucu akümülatörde

saklar.

Opcode : 10110SSS

Komut adı : ORA M

Tanım : Bellek ile akümülatör arasında VEYA işlemi yapar sonucu akümülatörde saklar.

Opcode : 10110110

Komut adı : ORI veri

Tanım : Veri ile akümülatör arasında VEYA işlemi yapar sonucu akümülatörde saklar.

Opcode : 11110110

Komut adı : (CMP R)1

Tanım : R registeri ile akümülatörü karşılaştırır sonuç bayrakların durumu ile gösterilir.

Opcode : 10111SSS

Komut adı : (CMP M)1

Tanım : Bellek ile akümülatörü karşılaştırır sonuç bayrakların durumu ile gösterilir.

Opcode : 10111110

Komut adı : (CPI veri)1

Tanım : Veri ile akümülarötü karşılaştırır sonuç bayrakların durumu ile gösterilir.

Opcode : 11111110

Komut adı : JMP adres

Tanım : Komutta verilen adrese dallanır.

Page 32: 8085 Mikroislemciler ve uygulamalari

32

Opcode : 11000011

Komut adı : JC adres

Tanım : Verilen adrese elde var ise atlar.

Opcode : 11011010

Komut adı : JNC adres

Tanım : Verilen adrese elde yok ise atlar.

Opcode : 11010010

Komut adı : JZ adres

Tanım : Verilen adrese sıfır ise atlar.

Opcode : 11001010

Komut adı : JNZ adres

Tanım : Verilen adrese sıfır değil ise atlar.

Opcode : 11000010

Komut adı : JP adres

Tanım : Verilen adrese pozitif ise atlar.

Opcode : 11110010

Komut adı : JM adres

Tanım : Verilen adrese negatif ise atlar.

Opcode : 11111010

Komut adı : JPE adres

Tanım : Verilen adrese çift parite ise atlar.

Opcode : 11101010

Komut adı : JPO adres

Page 33: 8085 Mikroislemciler ve uygulamalari

33

Tanım : Verilen adrese tek parite ise atlar.

Opcode : 11100010

Komut adı : PCHL

Tanım : HL register çiftini prıgram sayıcısına alır program kaldığı adresten devam eder.

Opcode : 11101001

Komut adı : CALL adres

Tanım : Verilen adresten programa devam eder.

Opcode : 11001101

Komut adı : CNZ adres

Tanım : Verilen adrese sıfır değil ise atlar.

Opcode : 11000100

Komut adı : CZ adres

Tanım : Verilen adrese sıfır ise atlar.

Opcode : 11001100

Komut adı : CNC adres

Tanım : Verilen adrese elde yok ise atlar.

Opcode : 11010100

Komut adı : CC adres

Tanım : Verilen adrese elde var ise atlar.

Opcode : 11011100

Komut adı : CPO adres

Tanım : Verilen adrese tek parite ise atlar.

Opcode : 11100100

Page 34: 8085 Mikroislemciler ve uygulamalari

34

Komut adı : CPE adres

Tanım : Verilen adrese çift parite ise atlar.

Opcode : 11101100

Komut adı : CP adres

Tanım : Verilen adrese pozitif ise atlar.

Opcode : 11110100

Komut adı : CM adres

Tanım : Verilen adrese negatif ise atlar.

Opcode : 11111100

Komut adı : RET

Tanım : Alt program sona erdikten sonra ana programda kaldığı adresten devam eder.

Opcode : 11001001

Komut adı : RNZ

Tanım : Ana programa sıfır değil ise döner.

Opcode : 11000000

Komut adı : RZ

Tanım : Ana programa sıfır ise döner.

Opcode : 11001000

Komut adı : RNC

Tanım : Ana programa elde yok ise döner.

Opcode : 11010000

Komut adı : RC

Tanım : Ana programa elde var ise döner.

Opcode : 11011000

Page 35: 8085 Mikroislemciler ve uygulamalari

35

Komut adı : RPO

Tanım : Ana programa tek parite ise döner.

Opcode : 11100000

Komut adı : RPE

Tanım : Ana programa çift parite ise döner.

Opcode : 11101000

Komut adı : RP

Tanım : Ana programa pozitif ise döner.

Opcode : 11110000

Komut adı : RM

Tanım : Ana programa negatif ise döner.

Opcode : 11111000

Komut adı : RST n

Tanım : Özel amaçlı bir CALL komutudur. Opcode’u 3., 4. ve 5. bitleri ile belirlenir.

Opcode : 11n1n2n3111

Komut adı : XTHL

Tanım : Yığının en üsteki byte‘i HL register çifti ile yer değiştirir.

Opcode : 11100011

Komut adı : SPHL

Tanım : HL register çiftini stack pointere aktarır.

Opcode : 11111001

Komut adı : OUT PORT

Tanım : Akümülatörden porta bilgi gönderir.

Page 36: 8085 Mikroislemciler ve uygulamalari

36

Opcode : 11010011

Komut adı : IN PORT

Tanım : Porttan akümülatöre bilgi gönderir.

Opcode : 11011011

Komut adı : DI

Tanım : Dışarıdan gelen maskelenebilir interrupt sinyallere tepki gösterir.

Opcode : 11110011

Komut adı : EI

Tanım : Dışarıdan gelen maskelenebilen interrupt sinyallerine tepki göstermez.

Opcode : 11111011

Komut adı : NOP

Tanım : Zamanlama programlarında işlemciyi bekletir.

Opcode : 00000000

Komut adı : HLT

Tanım : Đşlemcinin çalışması durdurulur.

Opcode : 01110110

1 Akümülatör = R, M veya veri ise sıfır (Z) bayrağı 1 değerini alır.

Akümülatör ≠ R, M veya veri ise sıfır (Z) bayrağı 0 değerini alır.

Akümülatör > R, M veya veri ise elde (CY) bayrağı 1 değerini alır.

Akümülatör < R, M veya veri ise elde (CY) bayrağı 0 değerini alır.

Page 37: 8085 Mikroislemciler ve uygulamalari

37

KAYNAKLAR

1. ADALI Eşref, Mikroişlemciler / Mikrobilgisayarlar, Birsen Yayınları, 1988.

2. AYTAÇ Cihat ve KUNTALP Mehmet, 8 Bit Mikrobilgisayar, Beta Basım A.Ş.,

1993.

3. KURTULDU Şaban , GÜLER Mehmet Ali ve VARGÖR, Đlhan, Đleri Elektronik 2,

M.E.B. Yayınları, 1994.

4. AKBAY Sönmez ve ÇETĐN Kadir, Mikroişlemciler, Birsen Yayınları, 1995.

5. Đntel Copreration, INTEL MCS- 80/85 User’s Manuel, 1979.