You are on page 1of 181

ELN3104 MKROLEMCLER

r. Gr. Bayezit DRM


Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm





ELN 3104
MKROLEMCLER
DERS NOTLARI

YAZ OKULU 2014
1

ERK
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


Say ve Kodlama Sistemi
Mantk Devreleri
Mikroilemciler

2

SAYILAR VE
KODLAMA
SSTEMLER

Ondalk ve
kili Say
Sistemleri
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

nsanolu aritmetik ilemlerde ondalk
saylar kullanr. (Decimal number
systems)
Burada 10 farkl say sembol bulunur:
0, 1, 2, 3, ,9
Bilgisayarlar ise ikili saylar kullanr.
(Binary number system)
kili saylar sadece 0 ve 1 saylarn ierir.
kili saylara genel olarak bit denir.
3


SAYILAR VE
KODLAMA
SSTEMLER

Ondalk
Saydan kili
Sayya
evirme
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Ondalk sayy ardarda 2 ile blnr.
Kalan sa tarafa yazlr.
Blm < 1 olana kadar bu ileme devam edilir.
Kalanlar aadan yukarya doru (ters srada)
okunup soldan saa yazlr.
rnek: 25
10
ondalk saysn ikili sayya eviriniz.
Blm Kalan
25/2 = 12 1 LSB (en kk anlaml bit)
12/2 = 6 0
6/2 = 3 0
3/2 = 1 1
1/2 => 0 1 MSB (en byk anlaml bit)
Sonu olarak 25
10
= 11001
2
bulunur
4


SAYILAR VE
KODLAMA
SSTEMLER

kili Saydan
Ondalk
Sayya
evirme
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Her bit kendi arl ile arplr.
Ondalk sayy elde etmek iin bunlar birbiri ile
toplanr.
rnek: 11001
2
saysn ondalk sayya eviriniz.
Arlk: 2
4
2
3
2
2
2
1
2
0
Hane: 1 1 0 0 1
Topl: 16+ 8+ 0+ 0+ 1+ = 25
10



Ondalk sayy ikili sayya evirmek iin arlk
kavramndan faydalanlabilir.
rnek: 39
10
saysn ikili sayya eviriniz.
32 + 0 + 0 + 4 + 2 + 1 = 39
1 0 0 1 1 1
Sonuta 39
10
=100111
2
olarak bulunur.
5


SAYILAR VE
KODLAMA
SSTEMLER

Onaltlk
Say Sistemi
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Onaltlk (Hexadecimal)
say sistemi ikili saylarla
kolayca alabilmek iin
kullanlan bir say
sistemidir.
rnek:
100010010110 ikili says
yerine 896H onaltlk
edeerini kullanmak
daha kolaydr.
1000 = 8
1001 = 9
0110 = 6 -> 896H
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

6


SAYILAR VE
KODLAMA
SSTEMLER

Onaltlk ve
kili Saylar
Birbirine
evirme
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

kili sayy onaltlk sayya evirmek iin
kili say sadan balayarak 4 bitlik gruplara
ayrlr, her 4 bitlik ikili sayya ait onaltlk (hex)
karl yazlr.
rnek: 100111110101 ikili saysnn onaltlk
karln yaznz.
1001 1111 0101
= 9 F 5
Onaltlk saydan ikili sayya evirmek iin
Her onaltlk say hanesinin karlna ikili say
karl yazlr.
rnek: 29BH saysn ikili sayya eviriniz.
2 9 B
= 0010 1001 1011
7


SAYILAR VE
KODLAMA
SSTEMLER

Ondalk
Saydan
Onaltlk
Sayya
evirme
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

nce ondalk saydan ikili sayya sonra onaltlk
sayya evrilir.
Dorudan ondalk saydan onaltlk sayya evirmek
iin art arda 16 blme ilemi yaplrken kalanlar sa
tarafa yazlr. Bu ilem blm<1 oluncaya kadar
devam eder.
rnek: 45
10
saysn onaltlk sayya eviriniz
32 16 8 4 2 1
1 0 1 1 0 1 32 + 8 + 4 + 1 = 45
45
10
= 0010 1101
2
= 2D
16

rnek: 629
10
saysn onaltlk sayya eviriniz.
512 256 128 64 32 16 8 4 2 1
1 0 0 1 1 1 0 1 0 1
629
10
= 512+ 64+32+16+4+1=0010 0111 0101
2
=275
16



8


SAYILAR VE
KODLAMA
SSTEMLER

Ondalk
Saydan
Onaltlk
Sayya
evirme
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


9


SAYILAR VE
KODLAMA
SSTEMLER

Onaltlk
Saydan
Ondalk
Sayya
evirme
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Onaltlk saydan ikili sayya ve sonra ondalk
sayya evirilir.
Dorudan onaltlk saydan ondalk sayya
evirmek iin btn haneler arlklar ile
arplp toplanr.
rnek: 6B2
16
= 0110 1011 0010
2

1024 512 256 128 64 32 16 8 4 2 1
1 1 0 1 0 1 1 0 0 1 0
1024 + 512 + 128 + 32 + 16 + 2 = 1714
10

10


SAYILAR VE
KODLAMA
SSTEMLER

Onaltlk
Saylarla
Toplama
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Haneler en kk anlaml haneden balayarak
toplanr
Hane toplamnn sonucu 16 dan az ise deer
dorudan ilgili hanesine yazlr.
Eer sonu 16 dan bykse sonutan 16 karlr,
kalan ilgili haneye yazlr ve bir sonraki haneye 1
eklenir.
rnek: 23D9
16
+94BE
16
toplamn hesaplaynz.
23D9 LSD: 9 + 14 =23 23-16 = 7 + elde
+94BE 1+13+11 = 25 25-16 = 9 + elde
B897 1+3+4 = 8
MSD: 2 + 9 = B
11


SAYILAR VE
KODLAMA
SSTEMLER

Onaltlk
Saylarla
kartma
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Eer kartlan hane rakam eksilen rakamdan
byk ise nceki haneden 1 dn (borrow)
alnr
rnek: 59F 2B8 kartma ilemini yapnz.
59F LSD: 15 8 = 7
- 2B8 9 + 16 11 = 14 = E
16

2E7 5 1 2 = 2
12


SAYILAR VE
KODLAMA
SSTEMLER

ASCII Kodu
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

ASCII (aski diye okunur) kodu
0 ila 9 saylarna
ngilizce alfabenin byk ve kk harflerine
Birok kontrol kodu ve noktalama iaretlerine
karlk gelen ikili say dizisinden oluan bir
karakter tablosu veya listesidir.
ASCII sistemi her sembol iin 7 bitlik bir ikili
say dizisi kullanr.
Hex Sembol Hex Sembol
41 A 61 a
42 B 62 b
43 C 63 c

59 Y 79 y
5A Z 7A z
Seilmi
ASCII
kodlar
13


MANTIK
DEVRELER

Lojik
Seviyeler
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

ki farkl gerilim seviyesi 0 ve 1 olarak
gsterilebilir.
Saysal devrelerdeki iaretler, gerilim
seviyelerindeki deiimlere (dalgalanmalara)
kar belirlenmi toleranslar olan iki farkl
gerilim seviyesine sahiptir.
Geerli saysal iaret aadaki diyagramda
gsterilen glgelendirilmi alanlar (bantlar)
iinde olmak zorundadr.
14


MANTIK
DEVRELER

Lojik
Kaplar

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
VEYA kaps (OR gate)
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

VE kaps (AND gate)
15


MANTIK
DEVRELER

Lojik
Kaplar

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
DILAYAN VEYA kaps (XOR gate)
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

durumlu tampon devre (tri-state buffer)
Evirici (inverter)


MANTIK
DEVRELER

Lojik
Kaplar

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
VEYA DEL kaps (NOR gate)
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

VE DEL kaps (NAND gate)



MANTIK
DEVRELER

Lojik Kaplar
Kullanarak
Devre
Tasarm

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

kili say toplama devreleri


MANTIK
DEVRELER

Lojik Kaplar
Kullanarak
Devre
Tasarm

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

4 bit toplayc
4-Bitlik A ve B ikili saylarna ait 4-Bit toplayc
ile toplama rnekleri


MANTIK
DEVRELER

Lojik Kaplar
Kullanarak
Devre
Tasarm

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
9 adresi iin kod 5 adresi iin kod
zm zm
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Kod zcler
Kod zcler adres zmlemesi iin oka
kullanlrlar


MANTIK
DEVRELER

Lojik Kaplar
Kullanarak
Devre
Tasarm

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Flip-flop devreleri
Sklkla veri saklama iin kullanlrlar


MKROLEMC
YAPISI

nemli
Tanmlar

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Veri byklne ilikin tanmlar
Bit: Bir ikili rakama (hanesine) verilen ad, 0 veya 1
deerini alabilir.
Bayt (Byte): 8 bitten oluur
Yarm bayt (Nibble) : 4 bitten oluur
Kelime(Word): ki bayttr, 16 bit ierir
Bir bilgisayar belleinin bykln
gstermek zere kullanlan birimler
Kilobayt (KB): 2
10
bayt, 1024 bayt
Megabayt (MB): 2
20
bayt, 1.048.576 bayt
Gigabayt (GB): 2
30
bayt, 1.073.741.824 bayt
Terabayt (TB): 2
40
bayt, 1.099.511.627.776 bayt


MKROLEMC
YAPISI

Mikroilemcinin
i Organizasyonu

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

MB (CPU) Merkezi ilemci birimi
Bellekte saklanan veriyi iler
G/ (I/O) Giri/k birimi
Merkezi ilemci birimine veri tar, d dnyaya
almn salar
Bellek
RAM (Random Access Memory) Rastgele ulalabilir
bellek, mikroilemci alrken gerekli olan anlk
verileri saklar
Enerji kesilince veriler kaybolur
ROM (Read Only Memory) Salt okunabilir bellek,
mikroilemci alrken gerekli olan program kodlar
ve deimeyen veriler burada saklanr
Kullanm esnasnda kaytl veriler deitirilemez ve
enerji kesildiinde bu veriler kaybolmaz (Nonvolatile)



MKROLEMC
YAPISI

Mikroilemcinin
i Organizasyonu

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm




MKROLEMC
YAPISI

Mikroilemcinin
i Organizasyonu

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

MB (CPU), bellek ve G/ arayzne bus (yol)
ad verilen eritler (iletken demetleri) ile
baldr
Bir yerden bir yere veri tarlar
Adres yolu (Address bus)
Veri yolu (Data bus)
Kontrol yolu (Control bus)


MKROLEMC
YAPISI

Mikroilemcinin
i Organizasyonu

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Adres yolu (Address Bus)
Bellek veya G/ birimlerinin mikroilemci tarafndan
tannabilmesi iin bunlara bir adres atanmaldr.
Belirli bir birim iin atanan adres tek (bir tane)
olmaldr
CPU (MB) adres yoluna adresi yazar ve kod zc
istenilen birimi bulur
Veri yolu
CPU, veri yolunu kullanarak bellek ve G/
birimlerinden veri alverii yapar
Kontrol yolu
CPU Birimlerle veri alverii yaparken yazma veya
okuma ilemlerine ait iaretleri kontrol yolu
zerinden iletir



MKROLEMC
YAPISI

Veri Yolu
Hakknda Daha
Fazla Bilgi

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

CPU ne kadar ok veri yoluna sahip olursa o
kadar verimli alr
Veri yolunu geni otoyollara benzetebilirsiniz
ok veri yolu demek daha pahal mikroilemci
demektir
CPU iindeki veri yollarnn ortalama genilii 8 ile
64 bit arasnda deiir
Veri yollar iki ynldr
Ayni yoldan veri hem gnderilip hem de alnabilir
Mikroilemcinin ilem gc yollarn genilii ile
ilikilidir.
16 bit veri yoluna sahip bir mikroilemci 8 bit veri
yoluna sahip ilemciden ayni sre iinde ok daha
fazla ilem yapabilir



MKROLEMC
YAPISI

Adres Yolu
Hakknda Daha
Fazla Bilgi

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Adres yolu geniledike daha fazla bellek alan
adreslenebilir. Bu da daha fazla evre biriminin
adreslenebilmesi demektir
CPU nun veri alveriinde bulunabilecei
bellek alannn says 2
n
olur. Burada n says
adres hatlarnn (iletkenlerinin) saysdr
16 adres ve 8 veri hatt olan mikroilemci
2
16
= 65536 = 64 KB adreslenebilir bellee sahiptir
Mikroilemciler genel olarak bayt adreslenebilir
olduundan her veri alan en fazla 1 bayt veri ierir
Adres yolu tek ynldr, sadece evre
biriminin adresi iaret edilir.


MKROLEMC
YAPISI

Mikroilemci
RAM ve ROM

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

CPU nun bilgiyi ileyebilmesi iin veri her
ikiside birincil bellek olarak adlandrlan RAM
ya da ROM da saklanmaldr.
ROM sabit ve kalc olan veriyi saklar.
Tablolar veya balang programlar
letim sisteminin (OS) ve uygulama paketlerini
saklar.
RAM kalc olmayan ve zamanla deien veriyi
(bilgi = information) saklar.
CPU ilenecek bilgiyi,
nce RAM veya ROM dan
Burada yoksa ikincil bellek olarak adlandrlan yn
bellekten (mass storage) RAM a tayarak
elde eder.
letim sisteminin (OS) deiik srmleri (version) ve
uygulama paketleri yn bellekte de saklanabilir.



MKROLEMC
YAPISI

Mikroilemci
indeki Kaytlar

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Kaytlar (Registers)
CPU anlk veriyi saklamak iin kaytlar kullanr.
Bunlar,
lenecek deikenler (deiken veriler)
Bellekten alnacak deikenlerin adresleridir
Genel olarak kaytlar ne kadar ok ve bykse CPU
o kadar iyi ve esnek yapya sahip demektir.
Kaytlar 8, 16, 32 ve 64 bit uzunluunda olabilirler.
Mikrodenetleyici aileleri genelde 8 bitlik kaytlara
sahiptir.
Kaytlarn saysnn ve bit uzunluunun byk olduu
ilemciler pahaldrlar.


MKROLEMC
YAPISI

Mikroilemcinin
i Organizasyonu

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Program sayac, Komut kayts, Komut kod zc,
zamanlama ve kontrol, genel kaytlar, Aritmetik
Lojik Birim, Bayrak kayts


MKROLEMC
YAPISI

Mikroilemcinin
i Organizasyonu

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

ALU (arithmetic/logic unit) aritmetik/lojik
birimi
Toplama, karma, arpma ve blme gibi aritmetik
ilemler ile VE, VEYA, DEL gibi lojik ilemleri
gerekler.
Program sayac (Program counter)
cra edilecek yeni komutun adresini gsterir.
Her bir komut icra edilirken program sayac bir sonra
icra edilecek komutun adresini gsterecek ekilde
arttrlr.
Komut kodu zc (Instruction decoder)
Bellekten CPU ya getirilen komutu zer.
CPU nun ok sayda komutu zebilmesi iin
tasarmnda kullanlan transistor saysnn o lde
arttrlmas gerekir.


MKROLEMC
YAPISI

Mikroilemcinin
alma ekli

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Mikroilemcinin alma ekli
rnek: Bir ilemcinin 8-bit veri yolu, 16-bit adres
yolu, A, B, C ve D kaytlar (8-bit) olsun. CPU
0000 FFFFH arasndaki bellek adreslerine
ulaabilir
Bir deeri A kaytsna yazma komutu B0H ve
baka bir deeri A kaytsndaki deerle
toplama komutu da 04H olsun.
CPU tarafndan icra edilecek eylem 21H
deerini A kaytsna yazmak ve buna 42H ve
12H deerlerini toplamaktr.



MKROLEMC
YAPISI

Mikroilemcinin
alma ekli

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

nceki slayttan devam,

Eylem Kod Veri
21H -> reg.A B0H 21H
Top 42H -> reg.A 04H 42H
Top 12H -> reg.A 04H 12H

Bellek Ad. Bellek ierii
1400 (B0) komut kodu
1401 (21) deer
1402 (04) komut kodu
1403 (42) topl. Deer
1404 (04) komut kodu
1405 (12) topl. Deer
1406 (F4) dur komutu



MKROLEMC
YAPISI

Mikroilemcinin
alma ekli

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Devam
CPU tarafndan icra edilen eylem aadaki
gibidir:
1. Program sayac icra edilecek ilk komut
kodunun adresini gstermek zere 1400H
deerine kurulur.
2.
CPU 1400 H deerini adres yoluna koyar.
Bellek i devresi adresi bulur.
CPU bellekte 1400H adresindeki veriyi okumak iin
OKU (READ) iaretini aktifletirir
Bu eylem 1400H adresindeki B0H olan veriyi veri
yoluna kartr ve CPU ya getirir.



MKROLEMC
YAPISI

Mikroilemcinin
alma ekli

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek devam ediyor,
3.
CPU B0H komutunu zer
CPU kontrol devresine bir sonraki adresteki veriyi A
kaytsna getirmek iin komut verir.
Program sayac arttrlarak bir sonra icra edilecek
komutun adresine (1402H) kurulur.
1402H adresi adres yoluna konur ve yeni komut
bellekten okunur




MKROLEMC
YAPISI

Mikroilemcinin
alma ekli

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek devam ediyor
4.
1402H Bellek adresinden 04H kodu alnr
Kod zlr ve sonraki adreste (1403H) bulunan
deeri (42H) A kaytsna toplama ilemi yaplaca
belli olur
CPU (42H) deerini bellekten okuduktan sonra bu
deerle birlikte A kaytsnn ieriini toplama ilemi
yapmak zere ALU giriine getirir
Alu kna gelen toplama ilemi sonu deeri A
kaytsna yazlr
Program sayac ierii bir sonraki komutun adresi
olan1404H olur



MKROLEMC
YAPISI

Mikroilemcinin
alma ekli

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Devam
5.
1404H adres yoluna konur ve komut bellekten CPU
ya alnr, kodu zlr ve icra edilir
Bu komut kodu da A kaytsna bir deer ilave eder
Program sayac 1406H deerine arttrlr
6.
1406H adresinin ierii alnr ve icra edilir
DUR (HALT) komutu CPU program sayacnn
arttrlmasn ve yeni komutlarn getirilmesini
durdurur


8051
MKRODENETLEYC

ERK

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


Mikrodenetleyiciler ve gml
ilemciler
8051 Ailesine bak


MKRODENETLEYC
VE GML
LEMCLER

Mikrodenetleyiciler
ile
Mikroilemcilerin
Karlatrlmas

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Genel kullanm mikroilemciler
RAM
ROM
G/ kaplar
iermezler
Mikrodenetleyiciler (Microcontrollers)
CPU (microilemci)
RAM
ROM
G/ kaplar
Zamanlayc (hatta hzl sayclar)
ADC ve dier evre birimlerini
ierirler


MKRODENETLEYC
VE GML
LEMCLER

Mikrodenetleyiciler
ile
Mikroilemcilerin
Karlatrlmas

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Mikrodenetleyici
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Genel kullanm mikroilemci


MKRODENETLEYC
VE GML
LEMCLER

Mikrodenetleyiciler
ile
Mikroilemcilerin
Karlatrlmas

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Genel kullanm mikroilemciler
Fonksiyonunu yerine getirebilmesi iin RAM, ROM,
G/ birimleri ve zamanlayclar dardan balanmak
zorundadr
Bu sistemi bytr ve olduka pahal yapar
Ancak RAM, ROM ve G/ birimlerini istenildii gibi
seme imkan gibi avantajlar vardr
Mikrodenetleyici
Krmk zerindeki sabit miktarda ROM, RAM ve belli
sayda G/ kaps maliyetin ve yerin kstl olduu
uygulamalarda ok uygundurlar.
ou uygulamalarda harcanan elektriksel g,
kaplanan yer ve birim bana maliyet ilemci
gcnden ok daha nemlidir.


MKRODENETLEYC
VE GML
LEMCLER

Gml Sistemler
iin
Mikrodenetleyiciler

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Gml bir rn sadece ve sadece bir grevi
yerine getirmek iin bir mikroilemci (veya
mikrodenetleyici) kullanr
Burada ROM ierisine kaydedilmi sadece bir
uygulama yazlm vardr.
Gml sisteme kar bir kiisel bilgisayar (PC)
birok uygulamay altrmak iin kullanlabilir
PC nin RAM bellei ve eitli uygulamalar RAM
bellee ykleyip altrabilen iletim sistemi vardr
Bir PC eitli gml sistemleri ihtiva eder veya
bunlara balanabilir
Her evre birimi iinde bir mikrodenetleyici vardr ve
sadece bir i yapar.


MKRODENETLEYC
VE GML
LEMCLER

Gml Sistemler
iin
Mikrodenetleyiciler

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Evde
Ev aletleri, telefon, dofon, emniyet sistemleri, faks,
telefon cevaplama ve kaydetme sistemleri,
bilgisayarlar, televizyonlar, uzaktan kumanda, cep
telefonlar, elektronik mzik aletleri, buzdolab, diki
makineleri, amar makineleri, kou bantlar gibi
eksersiz aletleri
Ofiste
Telefon, faks, bilgisayar, fotokopi makineleri, laser
yazclar, personel takip sistemleri, kamera izleme
sistemleri, havalandrma-stma-soutma sistemi
Otomotivde
Motor kontrol nitesi (powertrain control module),
ABS fren, anzuman kontrol, enstrmantasyon, yol
bilgisayar, navigasyon, klima kontrol, anahtarsz
giri kilit sistemi vb.


MKRODENETLEYC
VE GML
LEMCLER

x86 PC
Gml
Uygulamalar

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

ou reticilerin genel kullanma sunduu
mikroilemciler gml ilemciler pazarnn
yksek segmentine yneliktir. Bazen bu
mikroilemcilerin ie uygun olmad durumlar
olmutur.
Bu nedenle gml ilemci pazarna ynelik
mikroilemci hedefleyen reticiler ilemciyi bu
i iin optimize etmek durumundadrlar.
ou zaman gml ilemci ile
mikrodenetleyici terimleri birbiri yerine
kullanlmaktadr



MKRODENETLEYC
VE GML
LEMCLER

x86 PC
Gml
Uygulamalar

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Gml sistemler iin en nemli ihtiyalar
hacmi daraltmak ve g sarfiyatn azaltmaktr.
Yksek performansl gml ilemcilerde
gidiat, CPU ipine daha fazla fonksiyonun ilave
edilmesi ve tasarmcya kullanmak istedii
fonksiyonlara karar verme imkan tanmaktr.
ou durumlarda, yksek teknolojili gml
uygulamalar iin x86 PC leri kullanmak
gelitirme sresini ksaltr ve paradan tasarruf
salar.
Geni bir yazlm ktphanesi hazr yazlmtr.
Windows geni bir alanda kullanlmakta olan iyi
anlalm bir platformdur.




MKRODENETLEYC
VE GML
LEMCLER

Mikrodenetleyici
Seimi


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


8-Bit mikrodenetleyiciler
Motorola 6811
Intel 8051
Zilog Z80
Microchip PIC serisi
Ayrca piyasada eitli ip (krmk)
imalatlarnn 16-Bit ve 32-Bit
mikrodenetleyicileri bulunmaktadr.



MKRODENETLEYC
VE GML
LEMCLER

Mikrodenetleyici
Seim Kriterleri


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Yaplacak i iin gerekli ilem yetenekleri kolay
ve ucuz olarak elde edilmeli
Hz
Klf
G sarfiyat
ip zerindeki RAM ve ROM bellek miktar
ip zerindeki G/ ularnn ve zamanlayclarn
says
Daha iyi performansl ve dk g harcayan yeni
tipleri ile kolayca deime imkan
Birim bana maliyet



MKRODENETLEYC
VE GML
LEMCLER

Mikrodenetleyici
Seim Kriterleri


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Derleyici, assembler ve debugger gibi yazlm
gelitirme aralarnn kolay bulunabilmesi
Mikrodenetleyicinin geni ve gvenli
kaynaklardan temini imkan
8051 ailesi eitli kaynaklardan tedarik edilebilir
Intel (orijinal)
Atmel
Philips/Signetics
AMD
Infineon (nceden Siemens idi)
Matra
Dallas Semiconductor/Maxim


8051 Ailesine
Genel Bak


8051
Mikrodenetleyici

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Intel firmas MCS 51 olarak atfta bulunulan
8051 i 1981 ylnda tantt
8051 8-Bitlik bir ilemcidir
8051
128 baytlk RAM
ip zerinde 4K baytlk ROM
ki zamanlayc
Bir seri port
Her biri 8 bit olan drt G/ portu
6 kesme (interrupt sources)
8051 ilemcisi dier reticiler 8051 ile kod
uygunluu olan eitli tipte mikrodenetleyiciler
retmeye balaynca piyasada olduka tannr
oldu.


8051 Ailesine
Genel Bak


8051
Mikrodenetleyici

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

8051 Mimarisi


8051 Ailesine
Genel Bak


8051
Mikrodenetleyici

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

8051, 8052 nin bir alt setidir.
8031 zerinde ROM olmayan 8051 dir.
Dardan ROM balamak gereklidir
G/ lardan iki port kaybedilir ve G/ ilemleri iin
sadece 2 port kalr.



8051 Ailesine
Genel Bak


8051
Mikrodenetleyici

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

8751 mikrodenetleyicisi
UV-EPROM u var
PROM yazc gerekir
Prom un UV-EPROM silici ile tamamen silinmesi iin
20 dakika gerekir
AT89C51 (Atmel Corp.)
Flash (yazmadan nce sil)
Flash destekleyen ROM yazc
Ayrca bir siliciye gerek yok
DS89C4x0 (Dallas Semiconductor/Maxim)
Flash
ip zerinde program ykleyici ile gelir, program PC
COM portundan dorudan ipe yklenir.


8051 Ailesine
Genel Bak


8051
Mikrodenetleyici

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

DS5000 (Dallas Semiconductor/Maxim)
NV-RAM (Her seferinde bir bayt
deitirilebilir), RTC (gerek zaman saati)
ip zerinde ykleyici (programlayc) ile gelir
OTP (8051 in bir defa programlanabilir
tipi)
Philips firmasnn 8051 ailesi
ADC, DAC, geniletilmi G/, hem OTP hem
Flash tipi






8051
Mikrodenetleyici

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm




8051 ASSEMBLY
DL LE
PROGRAMLAMA


8051
YAPISI


Kaytlar

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Anlk veriyi saklamak iin kaytlar
kullanlr. Buradaki veri,
lenecek bir veri bayt veya
Alnacak veriye ilikin bir adres iaretisi
olabilir.
8051 kaytlarnn ounluu 8-Bit
kaytlardr
Burada sadece 8-bitlik veri tipi vardr.


8051
YAPISI


Kaytlar

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Kaytlarn 8 biti soldan saa MSB D7
den LSB D0 a aada grlmektedir.
8-Bitlik veri tipinde, 8 bitten byk veri
ilenmeden nce 8-Bitlik veri paralar
haline indirgenmelidir.


8051
YAPISI


Kaytlar

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

En ok kullanlan kaytlar
A (Akmlatr)
Aritmetik ve lojik ilem komutlar iin kullanlr
B, R0, R1, R2, R3, R4, R5, R6, R7
DPTR (veri iaretisi) ve PC (program sayac)


8051
YAPISI


MOV
Komutu

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
59
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

MOV hedef, kaynak ;kayna hedefe kopyalar
Bu komut CPU ya kaynak operandnn hedef
operandna tanmasn (aslnda kopyalanmasn)
syler


8051
YAPISI


MOV
Komutu

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Programlama notlar
Deer (nnde # iareti olan) dorudan A,
B veya R0 R7 kaytlarna yklenebilir
MOV A, #23H ;# olmazsa adres olur
MOV R5, #0F9H ;0 olmazsa harf olur
Eer 0 ila F deerleri 8-bitlik bir kaytya
tanrsa geri kalan bitlerin tm 0
addedilir.
MOV A, #5 , sonu A=00000101 yani
A=05
ok byk bir deeri kaytya tamak
hataya neden olur (8 bitten byk say)
MOV A, #7F2H ;GEERSZ: 7F2H>FFH
60


8051
YAPISI


ADD
Komutu

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

ADD A, kaynak ; Kaynak operand akmlatre topla
ADD komutu, kaynak operandn akmlatrle
toplar ve sonucu akmlatrde tutar.
Kaynak operand bir hazr deer veya kaytdaki bir
deer olabilir ancak hedef daima A kaytsdr
(Akmlatr)
ADD R4, A ve ADD R2, #12H komutlar
geersizdir. nk herhangi bir aritmetik ilemin
hedef kayts A olmaldr.


8051
ASSEMBLY
PROGRAMLAMA

Assembly
Dilinin Yaps

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Mikroilemcilerin ilk zamanlarnda
programclar program kodunu 0 ve 1
lerden oluan makine dilinde yazarlard.
Skc yava ve hata yapmaya ak bir metot
Makine komut kodlar iin ksa anmsatclar
kullanan Assembly dili ve dier zellikleri
gelitirildi.
Bir Assembly dili program bir sr Assembly dili
komut satrlarndan oluur.
Assembly dili dk seviye dillerdendir.
Dorudan CPU nun i yaps ile ilgilenir ve ondan
faydalanr.



8051
ASSEMBLY
PROGRAMLAMA

Assembly
Dilinin Yaps

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Assembly dili komutlar aadakileri ierir:
Bir anmsatc (mnemonic)(kolay hatrlanacak bir
ksaltma) ve
Seenek olarak komuttan sonra bir veya iki operand
(ellelenecek veri eleri)
Assembly dili program, ifadelerin bir dizisi
veya
CPU nun ne yapacan belirten Assembly dili
komutlar ile
Assembler ynlendiren Direktiflerden (veya sahte-
komutlardan) oluan satrlar eklinde verilir.


8051
ASSEMBLY
PROGRAMLAMA

Assembly
Dilinin Yaps

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Bir Assembly dili komutu drt alandan oluur
[label:] Mnemonic [operands] [;comments]


8051
ASSEMBLY
PROGRAMLAMA

Bir 8051
Programn
Assembler ile
Derleyip
altrmak

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


Assembly dili program admlarnn ana hatlar
aadadr:
1. ncelikle program yazmak iin bir editr program
kullanlr. Program oluturmak ve/veya
dzenlemek iin mkemmel birok editr
program veya kelime ilemci mevcuttur.
Editr program bir ASCII dosyas kts
retebilmelidir.
ou assembler iin dosya ismi allageldik DOS
kurallarna uyar fakat kaynak dosya kullanlan,
assembly diline gre asm veya src uzantsna
sahiptir.


8051
ASSEMBLY
PROGRAMLAMA

Bir 8051
Programn
Assembler ile
Derleyip
altrmak

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

2. Birinci admda oluturulan ve program kodunu
ieren asm kaynak dosyas bir 8051
assemblerine yklenir.
Assembler, komutlar makine koduna evirir
Assembler bir nesne ve liste (object and list files)
dosyas retir
Nesne dosyasnn uzants obj ve liste dosyasnn
uzants lst dir.
3. Assembler balama (linking) diye anlan nc bir
adma gereksinim duyar.
Balayc (linker) program bir veya daha fazla nesne
kodu dosyasn alp uzants abs olan mutlak nesne
dosyas (absolute object file) retir.
Bu abs dosyas monitr program olan 8051 kitleri ile
kullanlabilir.


8051
ASSEMBLY
PROGRAMLAMA

Bir 8051
Programn
Assembler ile
Derleyip
altrmak

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm



4. Sonra abs dosyas, ROM iine yazlmaya hazr
hex uzantl bir dosya oluturmak zere OH
denilen, nesneden onaltlya eviren (object to
hex converter) bir eviriciden geirilir.
Bu program btn 8051 assemblerleri ile birlikte gelir.
En son kan Windows-temelli assemblerlar 2.
admdan 4. adma kadar yaplanlar tek adm altnda
birletirmitir.

8051
ASSEMBLY
PROGRAMLAMA

Bir 8051
Programn
Assembler ile
Derleyip
altrmak

Program
Oluturma
Admlar
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm



8051
ASSEMBLY
PROGRAMLAMA

Bir 8051
Programn
Assembler ile
Derleyip
altrmak

lst Dosyas
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Seime bal olan lst (liste) dosyas kullanc
iin ok kullanldr.
Btn ilem kodlar (opcode) ve adresleri ve hatta
Assemblerin yakalad hatalar da listeler.
Kullanc (programc) hata ayklama veya sentaks
hatalarn bulmak iin liste dosyasn kullanr.


8051
ASSEMBLY
PROGRAMLAMA

Bir 8051
Programn
Assembler ile
Derleyip
altrmak

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm



PROGRAM
SAYACI VE
ROM ALANI

Program
Sayac
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Program sayac icra edilecek sonraki
komutun adresini gsterir.
CPU ROMprogram belleinden ilem
kodunu (opcode) alrken program sayac
artarak sonraki komutun yerini gsterir.
Program sayac 16 bitliktir.
Bunun anlam CPU 0000 ile FFFFH program
adresleri arasndaki toplam 64 K baytlk kod
adresine ulaabiliyor demektir.

PROGRAM
SAYACI VE
ROM ALANI

Devreye
Besleme
Gerilimi
Veriliyor
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

8051 ailesinin btn yeleri gerilim
verildiinde 0000 bellek adresinden
balarlar.
Program sayac 0000 deerindedir.
8051 boot olduunda ilk komutu iin
bakt adres 0000H olduundan ilk ilem
kodu (opcode) ROM bellekte bu adrese
yazlr.
Kaynak programnda bu ORG ifadesi (terimi)
(statement) ile belirtilir.

PROGRAM
SAYACI VE
ROM ALANI

ROM Bellee
Kodu Yazma
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Liste dosyasn inceleyin ve kodun ROM
bellekte nasl yeraldn grn

PROGRAM
SAYACI VE
ROM ALANI

ROM Bellee
Kodu Yazma
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Program ROM bellee yazldktan sonra, ilem kodu
ve operand ROM bellekte 0000 dan balayarak
yerlemi olur.

PROGRAM
SAYACI VE
ROM ALANI

Programn
cra Edilmesi
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

8051 e gerilim uyguladktan sonraki
eylemlerin adm adm aklamas:
1. 8051 e gerilim verildiinde program Sayac
(PC) 0000 adresinden balar ve ilk ilem
kodunu ROM bellein 0000 adresinden
alr.
7D ilem kodunu icra ederken CPU 25 deerini
alr ve bunu R5 kaytsna yazar.
Bir komut bitmitir ve imdi PC bir artarak ilem
kodu 7F yi ieren 0002 adresini iaret eder.
2. 7F ilem kodu icra edilirken34H deeri R7
kaytsna tanr.
PC (program sayac) 0004 deerine arttrlr.

PROGRAM
SAYACI VE
ROM ALANI

Programn
cra Edilmesi
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

(devam)
3. 0004 adresindeki komut icra edilir. imdi
PC = 0006 deerini alr.
4. 0006 adresindeki 1-Baytlk komut icra
edildikten sonra PC =0007 olur.
5. 0007 adresindeki 1-Baytlk komut icra
edilirken PC = 0008 saysna arttrlr.
Bu sre btn komutlar alnp ilenene kadar
devam eder.
Aslnda bir sonra ilenecek komutu gsteren
program sayac baz mikroilemciler iin komut
iaretisi olarak adlandrlr

PROGRAM
SAYACI VE
ROM ALANI

8051
Ailesinde
ROM Bellek
Haritas
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

8051 ailesinin hibir yesi 64K bayttan
fazla ilem koduna ulaamaz.
Program sayac 16-bitlik bir kaytdr.

8051 VER
TPLER VE
YNERGELER

Veri Tipleri
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


8051 mikroilemcide sadece 8-bitlik veri
tipleri mevcuttur.
Her kayt (register) 8-bit uzunluundadr.
Programcnn ii 8 bitten daha uzun verileri
8 bitlik verilere blerek ilemektir (00 ila
FFH veya 0 ila 255 ondalk)
Veri tipleri pozitif veya negatif olabilir.

8051 VER
TPLER VE
YNERGELER

Assembler
Ynergeleri
(Directives)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

DB ynergesi assembler iinde en ok
kullanlan veri ynergesidir.
8-bitlik veriyi tanmlamak iin kullanlr.
Veriyi tanmlamak iin DB kullanldnda saylar
ondalk, ikili, onaltl ve ASCII formatnda olabilir.


8051 VER
TPLER VE
YNERGELER

Assembler
Ynergeleri
(devam)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


ORG (orijin, kken)
ORG ynergesi balang adresini belirtmek iin
kullanlr,
ORG ynergesinden sonra gelen say onaltl (hex)
veya ondalk (decimal) olabilir.
Say sonunda H harfi yoksa ondalktr ve assembler bu
sayy onaltla evirir.
END
Bu ynerge assembler kaynak (asm) dosyasnn
sonunu belirler.
END ynergesi 8051 programnn son satrdr.
Bunun anlam END ynergesinden sonra gelen
herhangi bir kod geersizdir.

8051 VER
TPLER VE
YNERGELER

Assembler
Ynergeleri
(devam)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


EQU (equate) (atama)
Bu ynerge bellekte bir yer igal etmeyen
bir sabiti tanmlar.
EQU ynergesi bellekte bir veri parasna
yer ayrmaz ancak sabit deeri bir veri
etiketi ile ilikilendirir.
Etiket programda belirdiinde sabit deer
etiketin yerini alr.

8051 VER
TPLER VE
YNERGELER

Assembler
Ynergeleri
(devam)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

EQU
Program iinde eitli noktalarda kullanlacak bir
sabit olsun ve programcda bunun deerini
deitirmek istesin
EQU ynergesi kullanlrken bir kere deitirildiinde
assembler her seferinde onu deitirir.

BAYRAK
BTLER VE
PSW KAYITISI

Program
Durum
Kelimesi
(Word)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Bayrak kayts olarak ta anlan program
durum kayts (PSW) 8-bitlik bir kaytdr.
Sadece 6 biti kullanlr
Bunlardan drd CY (carry, elde biti), AC (auxiliary
carry, yardmc elde biti) ve OV (overflow, tama biti)
Bunlar komut icra edilmesi sonucunda oluan baz
durumlar gsterdiinden koullu bayraklar olarak ta
isimlendirilir.
PSW3 ve PSW4 bitleri RS0 ve RS1 olarak tasarlanmtr
ve kayt kmesini (register bank) semek iin
kullanlr.
Geriye kalan iki bit kullanc tarafndan
tanmlanabilir.


BAYRAK
BTLER VE
PSW KAYITISI

Program
Durum
Kelimesi
(Word)

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

CY PSW.7 Elde (tama) bayra (biti) Carry flag
AC PSW.6 Yardmc elde bayra Auxiliary carry flag
F0 PSW.5 Genel kullanma ak bit General purpose bit
RS1 PSW.4 Kayt kmesi seim biti 1 Register bank sel.1
RS0 PSW.3 Kayt kmesi seim biti 1 Register bank sel.0
OV PSW.2 Tama bayra Overflow flag
-- PSW.1 Genel kullanma ak bit General purpose bit
P PSW.0 Parite bayra Parity flag
Akmlatrdeki 1 lerin says tek ise bu bit 1 dir
CY AC F0 RS1 RS0 OV -- P
D3 den D4 e Y. Elde bayra
D7 den oluan Elde bayra
RS1 RS0 Kayt Kmesi Adres
0 0 0 00H - 07H
0 1 1 08H - 0FH
1 0 2 10H - 17H
1 1 3 18H - 1FH
PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0

BAYRAK
BTLER VE
PSW KAYITISI

Bayrak
Bitlerine Etki
Eden Komutlar
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Bayrak Bitlerine Etki Eden Komutlar

BAYRAK
BTLER VE
PSW KAYITISI

ADD (topla)
Komutu ve
PSW
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
rnek 2-2:
Aadaki komut ile 38H ve 2FH saylar toplandktan sonra CY, AC,
ve P bayraklarnn durumunu gsteriniz.
MOV A, #38H
ADD A, #2FH ;toplamadan sonra A=67H, CY=0
zm:
38 00111000
+ 2F 00101111
67 01100111
CY = 0 D7 bitinden sonra elde olmadndan sfrdr.
AC = 1 D3 - > D4 arasnda elde olduu iin 1 dir.
P = 1 Akmlatrdeki 1 lerin says tek olduundan (5 tane
1 var) 1 dir.
EdSim51DI kullanarak, komutlar assembler de yazp koturarak
sonular dorulaynz. (ADD-PSW.asm)
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

ADD komutundan etkilenen bayraklar CY, P, AC ve
OV dir
xx

BAYRAK
BTLER VE
PSW KAYITISI

ADD (topla)
Komutu ve
PSW
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 2-3:
Aadaki komut ile 9CH ve 64H saylar toplandktan sonra CY, AC,
ve P bayraklarnn durumunu gsteriniz.
MOV A, #9CH
ADD A, #64H ;toplamadan sonra A=00H, CY=1
zm:
9C 10011100
+ 64 01100100
1 00 00000000
CY = 1 D7 bitinden sonra elde olduundan 1 dir.
AC = 1 D3 - > D4 arasnda elde olduu iin 1 dir.
P = 0 Akmlatrdeki 1 lerin says ift olduundan (0 tane
1 var) 0 dir.
EdSim51DI kullanarak, komutlar assembler de yazp koturarak
sonular dorulaynz. (ADD-PSW.asm)

BAYRAK
BTLER VE
PSW KAYITISI

ADD (topla)
Komutu ve
PSW
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 2-4:
Aadaki komut ile 88H ve 93H saylar toplandktan sonra CY, AC,
ve P bayraklarnn durumunu gsteriniz.
MOV A, #88H
ADD A, #93H ;toplamadan sonra A=1BH, CY=1
zm:
88 10001000
+ 93 10010011
1 1B 00011011
CY = 1 D7 bitinden sonra elde olduundan 1 dir.
AC = 0 D3 - > D4 arasnda elde olmad iin 0 dir.
P = 0 Akmlatrdeki 1 lerin says ift olduundan (4 tane
1 var) 0 dir.
EdSim51DI kullanarak, komutlar assembler de yazp koturarak
sonular dorulaynz. (ADD-PSW.asm)

BAYRAK
BTLER VE
PSW KAYITISI

ADD (topla)
Komutu ve
PSW
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm



KAYITI
KMELER VE
YIIN

RAM Bellek
Alan Yerleimi
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

8051 iinde 128 baytlk bir RAM bellek
mevcuttur.
Bu alana atanan adresler 00H dan 7Fh ya kadardr.
128 baytlk bu alan farkl gruba
blnmtr:
1. 00H 1F aras 32 bayttr ve kayt kmeleri ile
yna ayrlmtr.
2. 20H 2FH arasndaki 16 baytlk alan, bit olarak
adreslenebilen oku/yaz (read write = R/W) bellek
olarak ayrlmtr.
3. 30H 7FH arasndaki 80 baytlk alan da yazboz
tahtas (scratch pad) adyla oku/yaz (R/W) bellek
olarak ayrlmtr.

8051
KAYITI
KMELER VE
YIIN

RAM Bellek
Alan Yerleimi
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


8051
KAYITI
KMELER VE
YIIN

RAM Bellek
Alan Yerleimi
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


8051
KAYITI
KMELER VE
YIIN

Kayt
Kmeleri
(Registry
Bank)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Bu 32 baytlk alan her biri R0 dan R7 ye 8
kayt ieren 4 kmeye ayrlmtr.
0 ile 7 arasndaki RAM blgesi R0 R7 yi ieren kme
0 iin ayrlmtr. RAM bellein 00H adresi R0
kaytsna , 01H adresi R1 kaytsna,, 07H adresi
R7 iin ayrlmtr.
Operand olarak Bu RAM alanlarn 00H, 01H,,07H
adresleri yerine R0, R1,,R7 eklinde adlandrmak
daha kolaydr.
8051 enerjilendiinde kayt kmesi 0
varsaylan (default) kayt kmesidir.

8051
KAYITI
KMELER VE
YIIN

Kayt
Kmeleri
(Registry
Bank)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Kayt kmeleri ve RAM adresleri

8051
KAYITI
KMELER VE
YIIN

Kayt
Kmeleri
(Registry
Bank)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Dier kayt kmeleri PSW kaytsn
kullanarak seilebilir.
PSW.4 ve PSW.3 bitleri kullanlarak istenilen kayt
kmesi seilebilir.
Bit adresleyebilen SETB ve CLR komutlar ile PSW.4
ve PSW.3 bitleri set ve reset edilerek istenilen kme
seilir.

8051
KAYITI
KMELER VE
YIIN

Kayt
Kmeleri
(Registry
Bank)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 2-5:

MOV R0, #99H ;R0 kaytsn 99H ile ykle
MOV R1, #85H ;R1 kaytsn 85H ile ykle
rnek 2-6:

MOV 00, #99H ;00 RAM adresini 99H ile ykle
MOV 01, #85H ;01 RAM adresini 85H ile ykle

rnek 2-6:

SET PSW.4 ;Kme 2 yi se
MOV R0, #99H ;R0 kaytsn 99H ile ykle
MOV R1, #85H ;R1 kaytsn 85H ile ykle

EdSim51DI kullanarak, komutlar assembler de yazp koturarak
sonular dorulaynz. (PSW-REG.asm)

8051
KAYITI
KMELER VE
YIIN

Yn
(Stack)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Yn CPU nun geici olarak bilgi saklad RAM
bellek alandr.
Bu bilgi veri veya adres olabilir.
Yn adresine ulamak iin kullanlan kaytya
Yn aretisi SP (stack pointer) denir.
8051 yn iaretisi sadece 8 bit uzunluundadr.
00H dan FFH ya kadar deer alabilir demektir.
8051 enerjilendiinde yn iaretisi SP 07H
deerini ierir.
RAM 08H alan 8051 tarafndan yn kayts iin
kullanlacak ilk baytn adresidir.

8051
KAYITI
KMELER VE
YIIN

Yn
(Stack)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

CPU nun bir kaytsn yn iinde saklamak
iin yaplan ileme PUSH (itme) ad verilir.
SP, ynn en son kullanlan adresini gsterir.
Yn zerine veri itme ilemi (data push) yapldka
SP bir arttrlr.
Bu alma ekli ou mikroilemcilerden farkldr.
Ynn ieriini CPU ya geri ykleme ilemi
POP (kartma) ad verilir.
Her pop ilemiyle ynn en stndeki bayt komutla
belirlenen kaytya alnr ve yn iaretisi bir
azaltlr.

8051
KAYITI
KMELER VE
YIIN

Yna tme
(Pushing to
Stack)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 2-8:

Aadaki rnekte yn ve yn iaretisini gsteriniz. Varsaylan yn
kullannz.
MOV R6, #25H
MOV R1, #12H
MOV R4, #0F3H
PUSH 6
PUSH 1
PUSH 4
zm:

8051
KAYITI
KMELER VE
YIIN

Yndan
karma
(Popping from
Stack)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Push_Pop.asm
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 2-9:

Yn inceleyiniz, aadaki komutlar icra edildikten sonra kayt ve SP
ieriini gsteriniz. Btn deerler onaltldr (hex).

POP 3 ;Yndan kar, R3 e ykle
POP 5 ;Yndan kar, R5 e ykle
POP 2 ;Yndan kar, R2 ye ykle

zm:
20-2FH adresleri bit adreslenebilen bellek blgeleri
olduundan MOV SP, #XX komutunu kullanarak SP yi
bunun dnda dier RAM blgelerine gnderebiliriz.

8051
KAYITI
KMELER VE
YIIN

CALL
Komutu ve
Yn
(Stack)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

CPU CALL komutunun hemen altndaki
komutun adresini saklamak iin yn
kullanr.
Bu CPU nun arlan alt programdan geriye
dnerken nereden devam edeceini bilmesi
iin gereklidir.

8051
KAYITI
KMELER VE
YIIN

Yn
aretisini
Bir Arttrmak
(Incrementing
Stack Pointer)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

SP yi PUSH komutundan sonra bir
attrmann nedeni udur:
Ynn RAM blgesi 7FH ya aadan
yukarya doru ilerlediine emin olmak
(artan adres).
Ynn RAM tabanna erimediine ve yn
alannn tkenmemesini garantiye almak.
Eer yn iaretisi push dan sonra
azaltlsayd o zaman kme 0 a ait R7-R0
varsaylan kaytlara ait RAM 7, 6, 5, vb.
blgelerini kullanm olurduk.

8051
KAYITI
KMELER VE
YIIN

Kme 1
ve Yn
akmas
(Stack and
Bank 1
Conflict)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

8051 enerjilendiinde kayt kmesi 1
ve yn ayni bellek alann kullanr.
Yn RAM bellein baka bir blgesine
yerletirebiliriz.

8051
KAYITI
KMELER VE
YIIN

Kme 1
ve Yn
akmas
(Stack and
Bank 1
Conflict)
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 2-10:

Yn inceleyiniz, aadaki komutlar icra edildikten sonra kayt ve SP
ieriini gsteriniz. Btn deerler onaltldr (hex).
MOV SP, #5FH ;ilk yn RAM adresini 60H yap
MOV R2, #25H
MOV R1, #12H
MOV R4, #0F3H
PUSH 2
PUSH 1
PUSH 4
zm:


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

JUMP, LOOP VE CALL
KOMUTLARI

DNG VE
SIRAMA
KOMUTLARI
(LOOP AND
JUMP
INSTRUCTIONS)




Dng
(Looping)

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Komutlar dizisinin belirli bir sayda tekrarna
dng denir.
Dng eylemi aadaki komut tarafndan icra edilir:
DJNZ kayt, Etiket
Kayt bir azaltlr
Sfr deilse, etiket tarafndan gsterilen hedef adrese
srar
Dng balamadan nce kayt (saya) tekrar says
ile yklenir.
Saya R0 R7 veya herhangi bir RAM adresi olabilir.
R2 FFH olduunda en
fazla 255 dng yaplr

DNG VE
SIRAMA
KOMUTLARI
(LOOP AND JUMP
INSTRUCTIONS)




Yuvalanm
Dng
(Nested Loop)

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Eer 256 dan fazla dng yaplmas istenirse,
yuvalanm dng denilen, dng iinde
dng kullanlr.
Sayma ilemi iin birden fazla kayt kullanrz.

Akmlatr 55H deeri ile ykleyen ve bunun eleniini 700
kere alan bir program yaznz.

MOV A, #55H ;A=55H
MOV R3, #10 ;R3=10, d dng says
YEN: MOV R2, #70 ;R2=70, i dng says
TEKR: CPL A ; A nn tmleyenini al
DJNZ R2, TEKR ;70 defa tekrarla
DJNZ R3, YEN

DNG VE
SIRAMA
KOMUTLARI
(LOOP AND JUMP
INSTRUCTIONS)




artl Sra
(Conditional
Jump)

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Sadece belirli artlar olutuunda sra
komutu icra edilir.
JZ Etiket ;A=0 ise sra

DNG VE
SIRAMA
KOMUTLARI
(LOOP AND JUMP
INSTRUCTIONS)




artl Sra
(Conditional
Jump)

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

(devam)
JNC Etiket ;elde yoksa sra CY=0
CY=0 ise CPU Etiket ile gsterilen adresten veriyi alr.
CY=1 ise etikete dallanmaz (sramaz) ama JNC
komutundan hemen sonraki komutu icra eder.

DNG VE
SIRAMA
KOMUTLARI
(LOOP AND JUMP
INSTRUCTIONS)




artl Sra
(Conditional
Jump)

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Btn artl srama (dallanma) komutlar ksa
srama komutlardr.
Hedef adresi program sayac ieriinin -128 ila + 127 bayt
tesine kadardr.

DNG VE
SIRAMA
KOMUTLARI
(LOOP AND JUMP
INSTRUCTIONS)




artsz Sra
(Unconditional
Jump)

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

artsz srama komutu icra edildii anda
herhangi bir art aranmadan hedef adrese
dallanlr.
LJMP ;uzun sra
3-baytlk bir komuttur.
lk bayt ilem kodudur (opcode).
kinci ve nc baytlar 16 bit hedef adresini gsterir.
0000 dan FFFFH ya kadar herhangi bir bellek
adresi
SJMP ;ksa sra
2-baytlk bir komuttur.
lk bayt ilem kodudur.
kinci bayt hedefin bal adresidir.
00 dan FFH ya kadar (PC ieriinden artan ynde
+127 ve azalan ynde -128 bayt tesine kadar).

DNG VE
SIRAMA
KOMUTLARI
(LOOP AND JUMP
INSTRUCTIONS)



Ksa Srama
Adresinin
Hesaplanmas
(Calculating
Short Jump
Adres)

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Ksa srama hedef adresini hesaplamak
iin
kinci bayt, sra komutunun hemen
altndaki adresi gsteren program sayacna
eklenir (toplanr).
Hedef adresi ksa sra komutunun
hemen altndaki adresten -128 veya
+127 bayt daha uzakta ise,
Assembler sramann snr dnda (out of
range) olduuna ilikin bir hata verir.

DNG VE
SIRAMA
KOMUTLARI
(LOOP AND JUMP
INSTRUCTIONS)



Ksa Srama
Adresinin
Hesaplanmas
(Calculating
Short Jump
Adres)

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


ARI
KOMUTLARI
(CALL
INSTRUCTIONS)





ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

ar komutu (call instruction) alt programlar
armakta kullanlr.
Alt programlar ska icra edilmesi gereken grevlerin
yerine getirilmesi iin kullanlr.
Bu ekildeki yapsal programlama bellekten kazan
salar.
LCALL ;uzak ar(long call)
3-baytlk komuttur.
lk bayt ilem kodudur.
kinci ve nc baytlar hedef altprogramn adresi
iin kullanlr.
Alt program 64K lk adres alannn herhangi bir
yerinde bulunabilir.
ACALL ;mutlak ar (absolute call)
2-baytlk komuttur.
2K-baytlk alan iinde adress iin 11 bit kullanlr.

ARI
KOMUTLARI
(CALL
INSTRUCTIONS)




LCALL
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Bir alt program arldnda programn
kontrol bu alt programdadr.
CPU, LCALL komutundan hemen sonraki adresi
yna saklar ve
Alt programn balad yeni adresten komutlar
almaya balar.
Alt programn icras bitirildiinde
RET komutu ile programn kontrol ana programa
dner
Bunun iin yndaki adres yndan karlr ve
program sayacna yklenir.
Her alt programn en son satr RET (return) komutu
ile biter


ARI
KOMUTLARI
(CALL
INSTRUCTIONS)




LCALL
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm



ARI
KOMUTLARI
(CALL
INSTRUCTIONS)




LCALL
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

ORG 0
BACK: MOV A, #55H ;Aya 55H ykle
MOV P1, A ;Port1e 55H gnder
LCALL DELAY ;gecikme sresi
MOV A, #0AAH ;Aya AAH ykle
MOV P1, A ;Port1e AAH gnder
LCALL DELAY ;
SJMP BACK ;Bunu sonsuza kadar yap



;------------------- Bu bir zamanlama (delay) altprogramdr ---------------------
ORG 300H ; Altprogram 300H adresinde
DELAY: MOV R5, #0FFH ;R5=255 yaz
AGAIN: DJNZ R5, AGAIN ;R5 sfr olana kadar say
RET ;sonra ana programa dn
END
Gecikme sresinin deeri
8051 saat frekansna baldr
DELAY altprogram arlrken hemen alt
sradaki MOV A, #0AAH komutuna ait
adres yna itilir ve CPU program icraya
300H adresinden devam eder
R5 sfr olduunda RET komutu ilenir ve
yndaki adres kartlp program
sayacna yazlr ve ana programda kalnan
yerden devam edilir
Sayc olarak kullanlan R5
kaytsna FFH yazlr,
dng 255 defa yaplr

ARI
KOMUTLARI
(CALL
INSTRUCTIONS)




CALL
Komutu
ve Yn
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


ARI
KOMUTLARI
(CALL
INSTRUCTIONS)









PUSH/POP
Komutlarnn
Altprogramda
Kullanlmas
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


ARI
KOMUTLARI
(CALL
INSTRUCTIONS)




Altprogramlar
arma
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


ARI
KOMUTLARI
(CALL
INSTRUCTIONS)




ACALL
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

ACALL komutu ile LCALL komutu
arasndaki yegane fark
LCALL komutundaki hedef adres 64K baytlk
adres alannda herhangi bir yerde olabilir.
ACALL komutundaki hedef adres 2K baytlk
bir alan iinde olmak zorundadr
LCALL yerine ACALL komutu kullanlmas
program kodunun yazld ROM
alannda yer kazanlmasn salar

ARI
KOMUTLARI
(CALL
INSTRUCTIONS)




ACALL
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


ETL 8051
PLER N
GECKME
SRES
(TIME DELAY
FOR VARIOUS
8051 CHIPS)





ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

CPUnun icra ettii komut belirli sayda saat
evrimini (periyodunu) kullanr.
Bunlara makine evrimi ad verilir.
Makine evrimlerinin uzunluu 8051
osilatrne bal kristal frekansna baldr.
Orijinal 8051 de bir makine evrimi 12 osilatr
periyodu boyunca srer.
11.0592 MHz kristal frekans iin bir makine evrim
periyodunu bulunuz.

zm:
11.0592 / 12 = 921.6 kHz
Makine evrim periyodu ise 1 / 921.6 = 1.085 s

ETL 8051
PLER N
GECKME
SRES
(TIME DELAY
FOR VARIOUS
8051 CHIPS)





ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


ETL 8051
PLER N
GECKME
SRES
(TIME DELAY
FOR VARIOUS
8051 CHIPS)





ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


ETL 8051
PLER N
GECKME
SRES
(TIME DELAY FOR
VARIOUS 8051
CHIPS)


NOP Komutu
Kullanarak
Gecikme
Sresini
Arttrma
ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


ETL 8051
PLER N
GECKME
SRES

Yuvalanm
NOP Komutu
Kullanarak
Gecikme Sresini
Arttrma




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


ETL 8051
PLER N
GECKME
SRES


Dier 8051 ler
iin gecikme
sresi hesab




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Gecikme sresinin doruluuna iki etkenin
etkisi vardr:
Kristal frekans,
Makine evriminin periyod aral kristal frekansnn
fonksiyonudur.
8051 tasarm,
Orijinal makine evrim sresi 12 saat darbesine
ayarlanmt.
Entegre devre teknolojisi ve CPU tasarmndaki
ilerlemeler makine evrimini 1-saat darbesine indirdi.
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


ETL 8051
PLER N
GECKME
SRES


Dier 8051 ler
iin gecikme
sresi hesab



ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


ETL 8051
PLER N
GECKME
SRES


Dier 8051 ler
iin gecikme
sresi hesab


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm






ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

G/ KAPILARINI
PROGRAMLAMA


G/
PROGRAMLAMA
(I/O
PROGRAMMING)





ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

8051 u diyagram (pin diagram)
+Vcc = + 5V
besleme ucu
Her biri 8-bit
olan drt adet
P0, P1, P2, P3
portlar
toplam 32 u
(pin) ile d
ortama alr
Toprak ucu
0V

G/
PROGRAMLAMA
(I/O
PROGRAMMING)






ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Drt adet (P0, P1, P2, P3) G/ portunun
her biri 8-bitliktir.
RESET olunca btn portlar giri olarak
konfigre edilir (yaplandrlr), giri
olarak kullanmaya hazr hale gelir.
Porta nce 0 yazlrsa port k olarak
yaplandrlm olur.
Tekrar giri olarak yaplandrmak iin porta
1 gnderilmelidir.
Bu portlardan herhangi birini giri portu olarak
kullanabilmek iin port program ile
yaplandrlmaldr.


G/
PROGRAMLAMA
(I/O
PROGRAMMING)



Port 0



ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Port 0 giri veya k olarak kullanlabilir. Her
u (pin) 10 k luk direnle +Vcc gerilimine
balanmaldr (pull-up).
P0 portu dierlerinin aksine ak savakldr (open
drain).
Ak savak mosfet devresi iin kullanlan bir terimdir.
Ayni ekilde bipolar tranzistor iin ak kollektr terimi
kullanlr.

G/
PROGRAMLAMA
(I/O
PROGRAMMING)



Port 0


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Aada yazl program kodu Port 0 a artarda
55H ve AAH deerlerini gnderir.
Program yazlp hata vermeden assemble
edilebilmesi iin DELAY altprogramnn da editrde
yazlmas gereklidir.
DELAY altprogramnn belli bir adrese yerletirilmesi
iin ORG ynergesi (direktifi) kullanlarak altprogram
balang adresi iaretlenmelidir.

G/
PROGRAMLAMA
(I/O
PROGRAMMING)



Giri Olarak
Port 0


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Port 0 ularn giri yapmak iin btn bitlerine
1 yazlmas gereklidir.

G/
PROGRAMLAMA
(I/O
PROGRAMMING)


Port 0 n Adres
Portu olarak da
Kullanm



ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Port 0 ayrca adres ve veri portu olarak da
tasarlanmtr.
8051/31 bir harici bellee balanacak olursa Port 0
hem adres hem de veriyi yolunu salar.

G/
PROGRAMLAMA
(I/O
PROGRAMMING)



Port 1


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Port 1 de hem giri hem de k olarak
kullanlabilir.
Port 0 a karlk bu porta herhangi bir pull-up direnci
balanmasna gerek yoktur, nk bu direnler
entegre iinde baldr.
Reset olunca Port 1 giri portu olarak yaplandrlr.
Aadaki program kodu Port 1 e
artarda 55H ve AAH deerlerini
gnderir.

MOV A, #55H
BACK: MOV P1, A
ACALL DELAY
CPL A
SJMP BACK

Program code Port1_55_AA.asm

G/
PROGRAMLAMA
(I/O
PROGRAMMING)



Giri Olarak
Port 1


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Port 1 i giri portu yapmak iin btn bitlerine
1 yazlmaldr.

G/
PROGRAMLAMA
(I/O
PROGRAMMING)



Port 2


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Port 2 giri veya k olarak kullanlabilir.
Ayni P1 portunda olduu gibi P2 de entegre iinde
mevcut olduundan pull-up direnleri gerektirmez.
Reset uygulandktan sonra Port 2 giri olarak
yaplandrlm olur.

G/
PROGRAMLAMA
(I/O
PROGRAMMING)


Port 2 nin ift
Fonksiyonu



ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Port 2 yi giri portu olarak yaplandrmak iin
btn bitlerine 1 yazmak yeterlidir.
ou 8051 tabanl sistemlerde P2 basit G/
portu olarak kullanlr.
8031 tabanl sistemlerde P2, P1 ile birlikte
harici bellek iin 16-bitlik adres yolu olarak
kullanlmak zorundadr.
Port 2, A8 A15 olarak ift fonksiyonlu olarak
tasarlanmtr.
Port 0 adres yolunun dk 8-bitlik A0 A7 adres
bitlerini salar.

G/
PROGRAMLAMA
(I/O
PROGRAMMING)



Port 3


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Port 3 giri veya k olarak kullanlr.
Port 3, pull-up direnleri gerektirmez.
Port 3, reset uygulandktan sonra giri olarak
yaplanr. Reset kullanarak portu giri yapmak genel
olarak tercih edilen bir yol deildir.

G/
PROGRAMLAMA
(I/O
PROGRAMMING)



Port 3


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Port 3, ilave fonksiyonlar ile baz ok nemli
iaretleri salar.

G/
PROGRAMLAMA
(I/O
PROGRAMMING)



Port 3


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

DSC89C420 iin P0, P1, P2 nin tm bitlerini her saniyede tersini alan
program yaznz.

G/
PROGRAMLAMA
(I/O
PROGRAMMING)



Tm 8-bite
Ulamann
Farkl Yollar


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm



G/ BTLERN
PROGRAMLAMA
(I/O BIT
MANIPULATION
PROGRAMMING)



G/ Portlar ve
Bit Olarak
Adresleme


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Baz durumlarda portun sadece 1 veya 2 bitine
ulalmak istenir.

G/ BTLERN
PROGRAMLAMA
(I/O BIT
MANIPULATION
PROGRAMMING)



G/ Portlar ve
Bit Olarak
Adresleme


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Square_P1_0.asm
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 4-2:
%50 darbe/periyot oran (duty cycle) olan kare dalgay port 1 bit 0
knda retiniz.
zm:
%50 darbe/periyot oran demek darbe sresi boluk sresine eit
demektir. Bu nedenle P1.0 biti ayni gecikme sresi ile artarda 1 ve 0
yaplacak (toggle) demektir.
LBL1: SETB P1.0 ;P1.0 1 yaplr
LCALL DELAY ;DELAY altproramn ar
CLR P1.0 ;P1.0 = 0
LCALL DELAY
SJMP LBL1 ;ayni ii srekli yap
Bu program yazmann dier bir yolu:
LBL1: CPL P1.0 ;P1.0 bitinin tmleyeni
LCALL DELAY ;altprogram ar
SJMP LBL1 ;ayni ii srekli yap


G/ BTLERN
PROGRAMLAMA
(I/O BIT
MANIPULATION
PROGRAMMING)



G/ Portlar ve
Bit Olarak
Adresleme


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Bit ilemleri iin kullanlan komutlar aadadr:


Komut Fonksiyon
SETB bit Biti kur (bit = 1)
CLR bit Biti sfrla (bir = 0)
CPL bit Bitin tmleyeni (bit = bitin deili)
JB bit, hedef Bit=1 ise hedefe sra
JNB bit, hedef Bit=0 ise hedefe sra
JBC bit, hedef Bit=1 ise hedefe sra ve biti sfrla
Tek Bitlik Komutlar

G/ BTLERN
PROGRAMLAMA
(I/O BIT
MANIPULATION
PROGRAMMING)



Giri Bitini
Yoklamak
(Checking an
Input Bit)

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

JNB ve JB komutlar tek bitlik komutlar iinde
ok kullanlr.
Bitin deerinin 0 veya 1 olmasna bal olarak
karar verme imkan salar
Bu iki komut P0, P1, P2 ve P3 G/ portlarnn
herhangi bir biti iin kullanlabilir.
Port 3 tipik olarak bit olsun bayt olsun herhangi bir
G/ iin kullanlmaz

G/ BTLERN
PROGRAMLAMA
(I/O BIT
MANIPULATION
PROGRAMMING)



Giri Bitini
Yoklamak
(Checking an
Input Bit)



ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 4-3:

Aadakileri icra eden bir program yaznz:
a) P1.2 bitini 1 oluncaya kadar izle
b) P1.2 1 olduunda 45H deerini port 0 a yaz
c) P2.3 bitini 1 den 0 a deitir.

zm:

SETB P1.2 ;P1.2 yi giri yap
MOV A, #45H ;A=45H
AGAIN: JNB P1.2, AGAIN ;P1.2 1 olunca
MOV P0, A ;A y P0 a yaz
SETB P2.3 ;P2.3 e 1 yaz
CLR P2.3 ;P2.3 e 0 yaz

G/ BTLERN
PROGRAMLAMA
(I/O BIT
MANIPULATION
PROGRAMMING)



Giri Bitini
Yoklamak
(Checking an
Input Bit)



ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 4-4:
P2.3 bitinin giri olduunu ve bir frnn durumunu gsterdiini
varsayalm. Bu biti srekli gzleyelim ve 1 olursa frnn scak
olduunu belirtsin. 1 olursa bir sesli uyar iin port P1.5 i 1 den
0 a drsn.

zm:

HERE: JNB P2.3, HERE ;biti 1 iin izle
SETB P1.5 ;P1.5=1 yap
CLR P1.5 ;P1.5 i sfr yap
SJMP HERE ;Bu dngy tekrarla

G/ BTLERN
PROGRAMLAMA
(I/O BIT
MANIPULATION
PROGRAMMING)


Giri Bitini
Yoklamak
(Checking an
Input Bit)



ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 4-5:

zm:
SETB P1.7 ;P1.7 yi giri yap
AGAIN: JB P1.2, OVER ;P1.7=1 ise sra
MOV P2, #N ;SW=0 ise P2 ye N yaz
SJMP AGAIN ;Yoklamaya devam et
OVER: MOV P2 #Y ;SW=1 ise P2 ye Y yaz
SJMP AGAIN ;Yoklamaya devam et

G/ BTLERN
PROGRAMLAMA
(I/O BIT
MANIPULATION
PROGRAMMING)


Biti Okuyup Elde
Bayrana
Yazmak
(Reading Single
Bit into Carry
Flag)



ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 4-6:
P1.7 ucuna bir anahtar baldr. Bu SW anahtarnn durumunu yoklayan
ve aadakileri gerekleyen bir program yaznz.
a) Eer SW=0 ise P2 ye N harfini gnder
b) Eer SW=1 ise P2 ye Y harfini gnder
Elde bayran anahtarn durumunu yoklamak iin kullan.

zm:
SETB P1.7 ;P1.7 yi giri yap
AGAIN: MOV C, P1.7 ;Durumu oku
JC OVER ;SW=1 ise sra
MOV P2, #N ;SW=0 ise P2 ye N yaz
SJMP AGAIN ;Yoklamaya devam et
OVER: MOV P2 #Y ;SW=1 ise P2 ye Y yaz
SJMP AGAIN ;Yoklamaya devam et


G/ BTLERN
PROGRAMLAMA
(I/O BIT
MANIPULATION
PROGRAMMING)


Biti Okuyup Elde
Bayrana
Yazmak
(Reading Single
Bit into Carry
Flag)



ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 4-7
Bir anahtar pin P1.0 ye ve bir LED pin P2.7 ye baldr. Anahtarn
durumunu okuyan ve bunu LED in bal olduu uca gnderen bir
program yazn.

zm:
SETB P1.7 ;make P1.7 an input
AGAIN: MOV C, P1.0 ;read SW status into CF
MOV P2.7, C ;send SW status to LED
SJMP AGAIN ;keep repeating

MOV P1.0, P2.7 komutu
geersizdir nk byle bir
komut tanml deildir
Bununla birlikte
MOV P2, P1 komutu
tanml ve geerlidir.

G/ BTLERN
PROGRAMLAMA
(I/O BIT
MANIPULATION
PROGRAMMING)


Port Latcha
Karlk Giri
Ucunu Okuma
(Reading Input
Pins vs. Port
Latch)



ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Portu okuma
Baz komutlar port ularnn durumlarn okumak iin
kullanlr.
Dierleri de ierideki port kaytsnn (latch)
durumunu okumak iin kullanlr.
Bu nedenle port okumak iin iki tr imkan
vardr:
Giri ucunun durumunu okumak
k portunun ierideki kaytsnn durumunu
okumak
zellikle d donanm gz nne alndnda,
bunlar kartrmak 8051 programlarken yaplan
nemli hata kaynaklarndan biridir.


PORT KAYITISI VE
GR ULARINI
OKUMA
(READING INPUT
PINS VS. PORT
LATCH)


k Portu
Kaytsn
Okumak
(Reading Latch
for Output Port)



ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Baz komutlar d ularn yerine ierideki
port kaytsnn durumunu okurlar.
rnein, ANL P1, A komutunun ne
ekilde ilendiine bakalm:
1. Komut i kayty okur ve veriyi CPU (MB) ya getirir.
2. Bu veri A akmlatrnn ierii ile AND ilemine
tabi tutulur.
3. Sonu port kaytsna geri yazlr.
4. Port ularna ait durum deiir ve port kaytsnn
ieriindeki deer port ularna yazlm olur.


PORT KAYITISI VE
GR ULARINI
OKUMA
(READING INPUT
PINS VS. PORT
LATCH)


k Portu
Kaytsn
Okumak
(Reading Latch
for Output Port)



ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Yaz Deitir Oku
Komut port kaytsndan deeri okur, bir
ilem gerekletirir sonra bunu porta geri
yazar.


G/ BTLERN
PROGRAMLAMA
(I/O BIT
MANIPULATION
PROGRAMMING)


Oku Deitir
Yaz zellii
(Read Modify
Write
Feature)





ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

8051 in portlarna Yaz Deitir Oku
teknii ile ulalabilir.
Bu zellik eylemi de tek bir komutla yerine
getirdiinden kod yazmnda satrlarn azalmasn
salar.
1. Portu okuma
2. Okunan deeri deitirmek
3. Sonucu porta geri yazmak







ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

ADRESLEME
MODLARI

ADRESLEME
MODLARI
(ADDRESSING
MODES)






ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


CPU veriye adresleme modlar olarak
adlandrlan eitli ekillerde ular:
Annda adresleme(immediate)
Kayt ile adresleme
Dorudan adresleme
Kayt zerinden dolayl adresleme
Dizinli adresleme (indexed addressing)
Bellee ulama

ANINDA
ADRESLEME
MODU
(IMMEDIATE
ADRESSING
MODE)






ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Kaynak operand bir sabit deerdir.
Annda veri nnde bir # (kare, hash) iareti
ile betimlenir.
16-bitlik DPTR kayts dahil herhangi bir
kaytya bu bilgi yklenebilir.
DPTR kaytsna 8-bitlik kaytlar eklinde
ulalabilir. Anlaml bayt DPH ve anlamsz bayt
DPL dir.

ANINDA
ADRESLEME
MODU
(IMMEDIATE
ADRESSING
MODE)






ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Annda veriye ulamak iin EQU ynergesini
kullanabiliriz.
Ayrca 8051 portlarna veri gndermek iin
annda adresleme modunu kullanabiliriz.

KAYITI LE
ADRESLEME
MODU
(REGISTER
ADDRESSING
MODE)






ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Kaytlar arasnda veri aktarmaya izin verilmez
MOV R4, R7 geersizdir.
Kaytlar ilenecek verileri saklamak iin
kullanlr
Hedef ve kaynak kaytlarn bit uzunluu ayni
olmaldr

BELLEE ULAIM
(ACCESSING
MEMORY)




Dorudan
Adresleme Modu
(Direct
Addressing
Mode)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

RAM bellein 30H 7FH alanna ulamak iin
sklkla dorudan adresleme modu kullanlr.
RAM bellein btn 128 baytna bu ekilde
ulalabilir.
Kayt kmeleri alanna kayt isimleri ile
ulalabilir.
MOV A, 4 ;dorudan adresleme
MOV A, R4 ;kayt ile adresleme
Annda adresleme moduna karlk dorudan
adresleme modunda operand nnde #
simgesi yoktur.

MOV R0, 40H ;40H adr. eriini R0 a yaz
MOV 56H, A ;A ieriini 56H adr. yaz

BELLEE ULAIM
(ACCESSING
MEMORY)




SFR Kaytlar
ve Adresleri
(SFR Registers
and Their
Addresses)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

SFR (zel Fonksiyon) kaytlarna bunlarn
isimleri veya adresleri ile ulalabilir.

MOV 0E0H, #55H ;Bu iki komutta
MOV A, #55H ;birbirinin ayndr

MOV 0F0H, R0 ;Bu iki komutta
MOV B, R0 ;birbirinin ayndr

SFR kaytlarnn adresleri 80H ile FFH
arasndaki alandadr.
80H ile FFH arasndaki btn baytlar SFR ler
tarafndan kullanlmaz.
Bu aralkta kullanlmayan baytlar rezerve olup 8051
programlaycs tarafndan kullanlmamaldr.

BELLEE ULAIM
(ACCESSING
MEMORY)




SFR Kaytlar
ve Adresleri
(SFR Registers
and Their
Addresses)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM
* Bit adreslenebilir
Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


BELLEE ULAIM
(ACCESSING
MEMORY)




SFR Kaytlar
ve Adresleri
(SFR Registers
and Their
Addresses)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

* Bit adreslenebilir

BELLEE
ULAIM
(ACCESSING
MEMORY)




SFR Kaytlar
ve Adresleri
(SFR Registers
and Their
Addresses)


ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

zel Fonksiyon Kaytlar SFR (special function
registers) bellek haritas

BELLEE ULAIM
(ACCESSING
MEMORY)




SFR Kaytlar
ve Adresleri
(SFR Registers
and Their
Addresses)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 5-1
(a) simlerini (b) adreslerini kullanarak, P1 ve P2 portlarna
55H deerini gnderecek program kodunu yaznz.

zm:
(a) MOV A, #55H ;A=55H
MOV P1, A ;P1=55H
MOV P2, A ;P2=55H

(b) Tablo 5-1 den, P1 adresi=80H; P2 adresi=A0H

MOV A, #55H ;A=55H
MOV 80H, A ;P1=55H
MOV 0A0H, A ;P2=55H

BELLEE ULAIM
(ACCESSING
MEMORY)




Yn ve
Dorudan
Adresleme Modu
(Stack and Direct
Addressing
Mode)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Yna veri atlrken veya kartlrken sadece
dorudan adresleme moduna izin verilir.
PUSH A geersizdir.
Akmlatrn ieriini yna atmak iin PUSH
0E0H yazmak gerekir.
rnek 5-2
R5 ve A y yna itecek ve sonra onlar B = A ve R2 = R5
olacak ekilde R2 ve B ye karacak program kodunu yaznz.
zm:
PUSH 05 ;R5 i yna it
PUSH 0E0H ;Akmlatr yna it
POP 0F0H ;Yn tepesini B ye kar
;imdi B = A olur
POP 02 ;Yn tepesini R2 ye kar
;imdi R2=R5 olur

BELLEE ULAIM
(ACCESSING
MEMORY)




Kayt ile Dolayl
Adresleme Modu
(Register Indirect
Addressing
Mode)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Bir kayt veri iaretleyicisi olarak kullanlr.
Sadece R0 ve R1 bu amala kullanlr.
Geri kalan R2 R7 kaytlar RAM bellekteki veri
adreslerini tutmak iin kullanlamazlar.
R0 ve R1 de RAM bellek adresleri varsa bu
kaytlarn isimlerinin nne @ simgesi
konmaldr.
MOV A,@R0 ;adresi R0 da olan RAM bellek
;verisini akmlatre yaz
MOV @R1,B ;adresi R1 de olan RAM bellek
;ieriine B deki veriyi yaz

BELLEE ULAIM
(ACCESSING
MEMORY)




Kayt ile Dolayl
Adresleme Modu
(Register Indirect
Addressing
Mode)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm


rnek 5-3:
(a) Dorudan adresleme, (b) dngsz olarak kayt ile dolayl adresleme ile ve
(c) dng kullanarak 55H deerini, 40H ve 41H RAM bellek adreslerine
kopyalayan program kodunu yaznz.

zm:
(a)
MOV A, #55H ;load A with value 55H
MOV 40H, A ;copy A to RAM location 40H
MOV 41H. A ;copy A to RAM location 41H
(b)
MOV A, #55H ;load A with value 55H
MOV R0, #40H ;load the pointer. R0=40H
MOV @R0, A ;copy A to RAM R0 points to
INC R0 ;increment pointer. Now R0=41h
MOV @R0, A ;copy A to RAM R0 points to
(c)
MOV A,#55H ;A=55H
MOV R0,#40H ;load pointer.R0=40H,
MOV R2,#02 ;load counter, R2=3
AGAIN: MOV @R0,A ;copy 55 to RAM R0 points to
INC R0 ;increment R0 pointer
DJNZ R2, AGAIN ;loop until counter = zero

BELLEE ULAIM
(ACCESSING
MEMORY)




Kayt ile Dolayl
Adresleme Modu
(Register Indirect
Addressing
Mode)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Dorudan eriime gre dolayl eriimin
avantaj daha dinamik oluudur.
Dorudan adresleme modunda dng
kurulamaz.
rnek 5-4
RAM adresi 60H dan balayan 16 RAM alann silmek
iin bir program kodu yaznz.
zm:
CLR A ;A=0
MOV R1, #60H ;iareti. R1=60H
MOV R7, #16 ;saya, R7=16
AGAIN: MOV @R1, A ;R1 in gsterdii adresleri
INC R1 ;R1 iaretisini arttrarak
DJNZ R7, AGAIN ;saya=0 olana kadar sil.

BELLEE ULAIM
(ACCESSING
MEMORY)




Kayt ile Dolayl
Adresleme Modu
(Register Indirect
Addressing
Mode)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 5-5
35H adresinden balayan 10 baytlk bir veri
blounu 60H adresinden balayarak kopyalayan
program kodunu yaznz.
zm:
MOV R0, #35H ;kaynak iaretisi
MOV R1, #60H ;hedef iaretisi
MOV R3, #10 ;saya
BACK: MOV A, @R0 ;kaynaktan bayt al
MOV @R1, A ;hedefe kopyala
INC R0 ;kaynak ia. bir arttr
INC R1 ;hedef ia. bir arttr
DJNZ R3, BACK ;10 bayt iin devam et

BELLEE ULAIM
(ACCESSING
MEMORY)




Kayt ile Dolayl
Adresleme Modu
(Register Indirect
Addressing
Mode)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

R0 ve R1 kayt ile dolayl adresleme
yapmak inin kullanlabilen yegane
iaretilerdir.
R0 ve R1 8-bit uzunluunda olduundan
bunlar kullanlarak ancak i RAM bellee
ulalabilir.
ip zerindeki ROM veya d RAM
bellee ulam iin 16-bitlik iaretiye
ihtiya vardr.
Bu durumda DPTR (data pointer) veri
iaretisi kullanlr.


BELLEE ULAIM
(ACCESSING
MEMORY)




Dizinli Adresleme
Modu ve ipteki
ROM Bellee
Ulam
(Indexed
Addressing Mode
and On-chip
ROM Access)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Dizinli adresleme modu, program ROM
belleinde yerleik bavuru (taramal)
tablo veri eleman girilerine ulamak
iin oka kullanlr.
Bu ama iin kullanlacak komut
MOVC A, @A+DPTR
MOVC komutu kullanlr, C kod
anlamndadr.
Gerekli verinin adresini elde etmek iin
akmlatr ierii 16-bit DPTR kayts ile
toplanr.

BELLEE ULAIM
(ACCESSING
MEMORY)




Dizinli Adresleme
Modu ve ipteki
ROM Bellee
Ulam
(Indexed
Addressing Mode
and On-chip
ROM Access)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

rnek 5-6
Bu programda 200H adresinden balayarak ROM bellee CAN yazld
varsaylsn. Program da ROM bellee 0 adresinden balayarak yazlsn. Program
analiz ederek CAN kelimesinin nereye yazldn belirleyiniz.

zm:
ORG 0000H ;Programn ROM balang adresi 0
MOV DPTR,#200H ;DPTR=200H taramal tablo adresi
CLR A ;A y sfrla (A=0)
MOVC A,@A+DPTR ;kod alanndan karakteri al
MOV R0,A ;R0 kaytsna sakla
INC DPTR ;DPTR=201 yeni karakteri iaret eder
CLR A ;A y sfrla (A=0)
MOVC A,@A+DPTR ;yeni karakteri al
MOV R1,A ;R1 kaytsna sakla
INC DPTR ;DPTR=202 yeni karakteri iaret eder
CLR A ;A y sfrla (A=0)
MOVC A,@A+DPTR ; yeni karakteri al
MOV R2,A ;R2 kaytsna sakla
HERE: SJMP HERE ;burada kal
;Veri kod alanna 200H adresinden balayarak yazlr
ORG 200H
MYDATA: DB CAN
END ;program sonu
R0=43H
R0=41H
R0=4EH
DPTR=200H, A=0
DPTR=200H, A=43H
DPTR=201H, A=43H
DPTR=201H, A=0
DPTR=201H, A=41H
DPTR=202H, A=41H

BELLEE
ULAIM
(ACCESSING
MEMORY)




Taramal Tablo
(Look-up Table)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Taramal tablo sklkla kullanlan tablo
elemanlarna en az ilemle ulamaya imkan
tanr.
rnek 5-8
P1 portundan okunan x deerinin karesini alp srekli P2 ye gnderen program
kodunu yaznz.

zm:
ORG 0
MOV DPTR, #300H ;LOAD TABLE ADDRESS
MOV A, #0FFH ;A=FF
MOV P1, A ;CONFIGURE P1 INPUT PORT
BACK: MOV A, P1 ;GET X
MOV A, @A+DPTR ;GET X SQUARE FROM TABLE
MOV P2, A ;ISSUE IT TO P2
SJMP BACK ;KEEP DOING IT
ORG 300H
XSQR_TABLE:
DB 0,1,4,9,16,25,36,49,64,81
END

BELLEE ULAIM
(ACCESSING
MEMORY)




Dizinli Adresleme
Modu ve MOVX
(Indexed
Addressing Mode
and MOVX)

ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

Baz uygulamalarda program kodu 64K-
bayt kod alannda veri ile paylalacak
bir alan brakmaz.
8051 veri saklamak iin zel olarak ikinci bir
64K-baytlk harici bellek daha kullanr.
Bu veri bellek alanna harici bellek denir ve
sadece MOVX komutu ile ulalabilir.
8051 toplamda 128K-baytlk bellek
alanna sahiptir.
64K program kod alan, 64K veri bellek
alandr.
Veri bellek alan hem program kodu ve hem
de veri alan olarak kullanlamaz.

BELLEE ULAIM
(ACCESSING
MEMORY)




Yaz-Boz Tahtas
Olarak 30H-7FH
RAM Bellek
Alanlar
(RAM Locations
30H-7FH as
Scratch Pad)




ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

ou uygulamalarda 30H-7FH RAM bellek
alanlar yaz-boz tahtas olarak kullanlr.
Kme 0 n R0 R7 kaytlar kullanlr.
08H-1FH alan yn iin kullanlr.
Daha ok kaytya ihtiya duyulursa 30H-7FH RAM
alan kullanlr.
Example 5-10
P1 in 200 defa tmleyenini alan bir program yaz. RAM
Alan 32H adresini saya olarak R0 R7 kaytlar yerine kullan.

zm:
MOV P1, #55H ;P1=55H
MOV 32H, #200 ;saya deerini
;32H adr. ykle
LOP1: CPL P1 ;P1 in tmleyeni
ACALL DELAY
DJNZ 32H, LOP1 ;200 defa tekrarla

BIT ADRESLER
(BIT ADDRESSES)






ELN3104 MKROLEMCLER
r. Gr. Bayezit DRM

Uluda niversitesi Mhendislik Fakltesi
Elektrik Elektronik Mhendislii Blm

ou mikroilemciler kaytlara ve G/
portlarna bit baznda ulama imkan verirler.
Genellikle ou uygulamalarda tek bir bit yoklanr.
8051 in yegane ve ok gl zellii tek bitlik
ilemlerdir.
Tek bitlik ilemler programcya bir portun, bellein
veya kaytnn bitlerinin teker teker kurulmas,
sfrlanmas, tanmas ve tmleyeninin alnmas
imkann verir.
Kaytlarn RAM bellein ve G/ portlarnn bit
adreslenebilir olmasna ihtiya vardr.
Program kodunu ieren ROM bellek bit
adreslenebilir deildir.

You might also like