Vous êtes sur la page 1sur 238

Mikrodenetleyiciler 8051 Uygulamalar

EGE NVERSTES EGE MESLEK YKSEKOKULU


2012
Mikrodenetleyiciler
8051 Uygulamalar
Yrd. Do. Dr. Mustafa Engin
Z M R

EGE NVERSTES
EGE MESLEK YKSEKOKULU



Mikrodenetleyiciler
8051 Uygulamalar
(DERS NOTU)




Yrd. Do. Dr. MUSTAFA ENGN
zmir 2011
I
Mikrodenetleyiciler 8051 Uygulamalar
NDEKLER
Mikroilemciler ve Mikrobilgisayarn Geliimi _______________________ 1
Giri ____________________________________________________________ 1
Mikroilemcinin Geliimi ____________________________________________ 2
Mikrobilgisayarlar _________________________________________________ 3
Merkezi lem Birimi _______________________________________________ 4
Yar letken bellekler _______________________________________________ 6
Adres, Veri ve Denetim Yollar _______________________________________ 7
Giri/k Aygtlar ________________________________________________ 9
Veri Saklama Aygtlar __________________________________________________ 9
nsan le letiimi Salayan Cihazlar _______________________________________ 9
Denetim Ve Monitr Cihazlar ____________________________________________ 9
Yazlm _________________________________________________________ 10
Bilgisayarn leyii _______________________________________________ 11
Mikrodenetleyiciler _______________________________________________ 13
Sorular _________________________________________________________ 15
MCS51 Ailesi Mikrodenetleyiciler ______________________________ 17
Giri ___________________________________________________________ 17
MCS51 Ailesi Mikrodenetleyiciler __________________________________ 18
8051in ekirdek Yaps ___________________________________________ 22
Denetim Hatlar __________________________________________________ 23
PSEN _______________________________________________________________ 24
ALE ________________________________________________________________ 24
EA (EXTERNAL ACESS) ________________________________________________ 24
RESET ______________________________________________________________ 24
Osilatr Girileri ______________________________________________________ 25
Gerilim Balantlar ___________________________________________________ 27
Giri k Hatlar _________________________________________________ 27
8051in Bellek Yaps _____________________________________________ 28
RAM Bellein Kullanm ______________________________________________ 29
Alt 128 Bayt _________________________________________________________ 29
st 128 Bayt ________________________________________________________ 30
zel lev Yazalar ___________________________________________________ 30
II
Mikrodenetleyiciler 8051 Uygulamalar
Akmlatr _________________________________________________________ 32
B Yazac ____________________________________________________________ 34
Durum Yazac _______________________________________________________ 34
Port Yazalar _______________________________________________________ 36
Veri Gsterici ________________________________________________________ 39
Yn aretleyici _____________________________________________________ 39
Zamanlayc Yazalar _________________________________________________ 39
Seri Port Yazalar ____________________________________________________ 40
Kesme Yazalar _____________________________________________________ 40
G Denetim Yazac __________________________________________________ 41
Program Bellei _________________________________________________ 42
D Bellek Kullanm _____________________________________________ 42
D Program Bellei ______________________________________________ 44
D Veri Bellei __________________________________________________ 45
Sorular ________________________________________________________ 47
MCS51 Ailesi Mikrodenetleyicilerin Komutlar ____________________ 49
Giri __________________________________________________________ 49
Adresleme Kipleri _______________________________________________ 50
Dorudan Adresleme _________________________________________________ 50
vedi Adresleme ______________________________________________________ 51
Yaza Adresleme _____________________________________________________ 52
Bal Adresleme _____________________________________________________ 52
Dolayl Adresleme ____________________________________________________ 53
Mutlak Adresleme ____________________________________________________ 54
Uuzun Adresleme ____________________________________________________ 54
Sral Adresleme _____________________________________________________ 55
8051 Komut Kmesi _____________________________________________ 56
Veri Aktarma Komutlar ___________________________________________ 56
Veri Belleinde Veri Aktaran Komutlar _________________________________ 56
D Veri Belleinde Veri Aktaran Komutlar ________________________________ 59
Program Belleinden Veri Okuyan Komutlar _______________________________ 60
Aritmetik lem Komutlar _________________________________________ 62
Mantk lem Buyruklar __________________________________________ 68
Boolean lem Yapan Komutlar ____________________________________ 72
Balanma Komutlar _____________________________________________ 77
Koullu Dallanma Komutlar ___________________________________________ 79
Mikroilemciler ve Mikrobilgisayarn Geliimi III
Mikrodenetleyiciler 8051 Uygulamalar
Sorular _________________________________________________________ 82
Assembly Programlama _______________________________________ 85
Giri ___________________________________________________________ 85
Assembly lemi __________________________________________________ 86
Birinci Aama Onay___________________________________________________ 87
kinci Aama Onay ___________________________________________________ 87
Assembly Dilinde Proram Dzeni ____________________________________ 87
Assembler Ynergeleri ____________________________________________ 89
Durum Denetimi Yapan Assembler Ynergeleri ____________________________ 89
Program Gelitirme _______________________________________________ 90
rnek Kaynak Program Sayfas _____________________________________ 91
Altprogramlar ve Ynn Ku llanm __________________________________ 93
Ynn Yaps Ve Kullanm _____________________________________________ 94
Yazlm Tabanl Zaman Geciktirme Dngleri __________________________ 95
Tek Dngl Zaman Geciktirme Altprogramlar ____________________________ 96
ift Dngl Zaman Gecktirme Altprogramlar _____________________________ 99
rnek Altprogramlar _____________________________________________ 102
Sorular ____________________________________________________________ 110
MCS-51 Sayclar Zamanlayclar ______________________________ 113
Giri __________________________________________________________ 113
Zamanlayc Yazalar ____________________________________________ 115
Zamanlayc Mod Seme Yazac ________________________________________ 115
Zamanlayc Denetim Yazac ______________________________________ 116
Zamanlayc alma Kipleri _______________________________________ 117
13 Bit Zamanlayc alma Kipi ________________________________________ 117
16 Bit Zamanlayc Kipi _______________________________________________ 118
8 Bit Yeniden Yklemeli Kip ___________________________________________ 118
Ayrk Zamanlayc Kipi ________________________________________________ 119
Tetikleme Kaynaklar _________________________________________________ 119
Zamanlayclarn Kullanm ________________________________________ 120
Zamanlayc 2 __________________________________________________ 121
Yeniden Yklemeli Kip ________________________________________________ 123
Yakalama Kipi ______________________________________________________ 125
Baud Rate reteci Olarak Kullanlmas __________________________________ 125
IV
Mikrodenetleyiciler 8051 Uygulamalar
AT89S52nin Artlar ____________________________________________ 127
Seri Haberleme ve 8051 Seri Portu ___________________________ 139
Giri _________________________________________________________ 139
Asenkron Seri Veri letimi ________________________________________ 140
8051 UART ___________________________________________________ 142
Seri Port alma kipleri _________________________________________ 144
Kip 0 8 Bit Kayar Yaza Kipi ___________________________________________ 146
Kip 1 Deiken Hzl 8 Bit UART ________________________________________ 147
Kip 2 Sabit Hzl 9-Bit UART ___________________________________________ 149
Kip 3 Deiken Hzl 9-Bit UART ________________________________________ 149
Yazalarn Ayarlanmas __________________________________________ 149
Seri Port letiim Hznn Belirlenmesi ______________________________ 152
Baud Rate Saati Olarak T1in Kullanlmas _______________________________ 154
Sorular _______________________________________________________ 159
Kesme ve MCS-51 Kesmeleri _________________________________ 161
Giri _________________________________________________________ 161
8051in Kesme Yaps ___________________________________________ 164
D Kesme Girilerinin Denetimi___________________________________ 168
Kesme Servis Altprogram _______________________________________ 168
AT89S52nin Kesme Kaynaklar __________________________________ 169
Aylak Ve Ksk Gte alma _____________________________________ 169
Aylak alma Kipi ___________________________________________________ 170
Ksk Gte alma Kipi______________________________________________ 170
Sorular _______________________________________________________ 177
MCS-51 Komut Kmesi ______________________________________ 179
KISALTMALAR _________________________________________________ 179
ACALL adr 11 ______________________________________________________ 179
ADD A <kaynak-bayt> ________________________________________________ 180
ADDC A, <kaynak bayt> ______________________________________________ 181
AJMP adr 11 _______________________________________________________ 182
ANL <HEDEF ADRES>, <KAYNAK ADRES> _______________________________ 182
ANL C, <Kaynak Bit> ________________________________________________ 183
CJNE <Hedef Bayt>, <kaynak bayt>, kayklk _____________________________ 184
Mikroilemciler ve Mikrobilgisayarn Geliimi V
Mikrodenetleyiciler 8051 Uygulamalar
CLR A _____________________________________________________________ 186
CLR Bit ____________________________________________________________ 186
CPL A _____________________________________________________________ 186
CPL Bit ____________________________________________________________ 187
DA A ______________________________________________________________ 187
DEC BAYT __________________________________________________________ 188
DIV AB _____________________________________________________________ 189
DJNZ <Bayt>, <bal adres> ___________________________________________ 189
INC <Bayt> _________________________________________________________ 190
JB <Bayt>, bal adres________________________________________________ 191
JBC <Bayt>, bal adres ______________________________________________ 191
JC bal adres ______________________________________________________ 192
JMP @A+DPTR ______________________________________________________ 192
JNB bit, rel _________________________________________________________ 193
JNC rel ____________________________________________________________ 193
JNZ rel _____________________________________________________________ 193
JZ rel ______________________________________________________________ 194
LCALL 16 Bit Adres __________________________________________________ 194
LJMP 16 Bit Adres ___________________________________________________ 195
MUL AB ____________________________________________________________ 195
MOV <Hedef Bayt>, <Kaynak bayt> _____________________________________ 196
MOV <Hedef bit>, <Kaynak bit> ________________________________________ 198
MOV DPTR, #Veri 16 _________________________________________________ 199
MOVC A, @A+<Temel yaza> __________________________________________ 199
MOVX <hedef bayt>,<kaynak bayt> ____________________________________ 200
ORL <hedef bayt>,<kaynak bayt> _____________________________________ 201
ORL C, <Kaynak Bit> _________________________________________________ 202
POP Dorudan Adres _________________________________________________ 202
PUSH Dorudan Adres _______________________________________________ 203
RET _______________________________________________________________ 203
RETI ______________________________________________________________ 203
RL A ______________________________________________________________ 204
RLC A _____________________________________________________________ 204
RR A ______________________________________________________________ 205
RRC A _____________________________________________________________ 205
SETB <bit> _________________________________________________________ 206
SJMP Bal Adres ____________________________________________________ 206
SUBB A, <Kaynak Bayt> ______________________________________________ 206
SWAP A ____________________________________________________________ 208
XCH A, <Bayt> ______________________________________________________ 208
XCHD, @Ri _________________________________________________________ 208
XRL <hedef bayt>, <kaynak bayt> _____________________________________ 209
Kaynaka ______________________________________________________ 211
VI
Mikrodenetleyiciler 8051 Uygulamalar
Dictionary _____________________________________________________ 213
Szlk ________________________________________________________ 222

Mikrodenetleyiciler 8051 Uygulamalar

Mikroilemciler ve
Mikrobilgisayarn
Geliimi

Giri
Mikroilemci (microprocessor) icat edileli ksa bir sre olmasna ramen modern
hayatn bir paras haline gelmitir. Gnlk yaamda otomobilde, televizyonda,
telefonda, kap otomatiinde, asansrde, trafik klarnda, hesap makinesinde,
mzik aletlerinde, daktilolarda, oyuncaklarda, cep telefonlarnda ve benzeri birok
cihazda farknda olmadan mikroilemcileri kullanmaktayz. Mikroilemciler daha
2 Blm 1
Mikrodenetleyiciler 8051 Uygulamalar
nce hayal edemeyeceimiz hzla mektuplarmz dnyann her noktasna
ulatrmakta, hi bir kimse ile karlatrlamayacak kadar ksa srede karmak
saysal ilemleri yapabilmektedir.
Mikroilemcinin Geliimi
lk mikroilemci 1971 ylnda 4004 adyla Intel firmas tarafndan retilmitir. 4004
ok gl bir ilemci deildi, bir admda sadece 4 bitlik verileri ileyebiliyordu, buna
ramen birok kii iin heyecan vericiydi nk tm birimler tek bir tmdevre iinde
toplanmt. Benzer teknolojiyi kullanarak Intel 1974 ylnda 8 bitlik 8080
mikroilemcisini retti. Gerek anlamda bilgisayarn boyutunu klten
mikroilemci, 8088 ise 1979 ylnda retildi ve 1982 ylnda IBM firmas bu ilemciyi
kullanarak ilk kiisel bilgisayar (PC) pazara sundu. lerleyen yllarda kiisel bilgisayar
pazarna ynelik 80286, 80386, 80486, Pentium, Pentium II, Pentium III ve Pentium
4 ilemcileri Intel tarafndan pazara sunuldu.
Ad Yl
Transistor
Adedi
Frekans Kelime Uzunluu Hz
8080 1974 6,000 2 MHz 8 64x10
4
8088 1979 29,000 5 MHz 16, 8-bit Veri Yolu 33 x10
4

80286 1982 134,000 6 MHz 16 1 x10
6

80386 1985 275,000 16 MHz 32 5 x10
6

80486 1989 1,200,000 25 MHz 32 20 x10
6

Pentium 1993 3,100,000 60 MHz 32, 64-bit Veri Yolu 100 x10
6

Pentium II 1997 7,500,000 233 MHz 32, 64-bit Veri Yolu ~300 x10
6

Pentium III 1999 9,500,000 450 MHz 32, 64-bit Veri Yolu ~510 x10
6

Pentium 4 2000 42,000,000 1.5 GHz 64 bit ~1,700 x10
6

izelge1.1 Intel firmas tarafndan retilen mikroilemcilerin geliimi ve zellikleri.
1

IBM firmasnn bilgisayar mimarisini kullanan birok firma bu ilemciler ile daha
ucuz kiisel bilgisayarlar rettiler. 8088den balayarak Pentium 4e kadar tm
ilemciler geriye doru tm ilevleri gerekletirebilmektedir. 8088de almak

1
Kaynak:www.intel.com
Mikroilemciler ve Mikrobilgisayarn Geliimi 3
Mikrodenetleyiciler 8051 Uygulamalar
zere yazlm bir program ayn zamanda Pentium 4te de almaktadr. Intel
firmas tarafndan retilen ilemcilerin geliimi izelge1.1de verilmitir. Intel
firmas dnda Motorola 6800, RCA 1801, MOS Technology 6502 ve Zilog Z80
mikroilemcilerini rettiler.

ekil1.1 Intelin rettii ilk mikroilemci 4004n grnm.
Mikrobilgisayarlar
Mikroilemcinin yararl bir ite kullanlmas kalc ve geici veri saklama belleklerinin
ve insan veya makinelerle iletiim salayan evre birimlerinin (peripheral devices)
balanmas ile mmkn olur. Elde edilen bu cihaza bilgisayar (computer) ad verilir.
Birden fazla bilgisayarn standart bir iletiim a ile birbirlerine balanmas ile elde
edilen sisteme bilgisayar a (computer network) ad verilir. Bilgisayar oluturan
elemanlara donanm (hardware), bilgisayarn ne yapacan belirleyen komutlar
zinciri olan programlara da yazlm (software) ad verilir.
ekil1.2de temel bilgisayarn blok emas gsterilmitir. Yukarda bahsedilen
birimlerin yan sra adres, veri ve denetim bilgilerini birimler aras tayan hatlarn
oluturduu adres, veri ve denetim yollar da yer almaktadr. Yollardaki hat says ve
zellikleri her mikroilemcide farkldr. evre birimleri bilgisayarn kullanlaca ie
gre farkllk gsterir. Kiisel bilgisayar olarak kullanldnda en temel evre
4 Blm 1
Mikrodenetleyiciler 8051 Uygulamalar
birimleri veri ve program saklama cihazlar ( hard disk, floppy disk driver, CD driver
gibi), grntleyici, keyboard, fare ve yazcdr. Bu birimlerin balants iin ana kart
zerinde ara birim yongalar yerletirilmitir. Balant ular standart hale gelen
soketler ile kasa zerine veya ana kart zerine yerletirilmilerdir. Endstriyel
bilgisayarlarda genellikle ana kart zerine yerletirilen genileme soketleri
kullanlarak arabirim kart taklr ve cihaza bu karttan k alnr. Baz endstriyel
cihazlar ise dorudan kasa zerinde bulunan soketlerden biri kullanlarak
bilgisayarla iletiim kurmas salanr. kinci yntem yava olan sistemlerde
kullanlabilir.

ekil1.2 Mikrobilgisayarn birimleri.
Merkezi lem Birimi
Aritmetik ve mantk ilemleri yapabilen, veri saklayabilen, yapt ilemlerin
sonucuna gre karar verebilen ve bellee veri yazp okuyabilen saysal elektronik
devrelerine ilemci (processor) ad verilir. lemciler ilk zamanlarda elektron tpleri
ile elde edildiklerinden, boyutlar ok bykt. 1970li yllarn banda transistrlerle
tek bir yongada elde edilen ilemciler elektron tpleri ile elde edilenlere oranla ok
kk olduundan ilemci kelimesinin bana kk anlamna gelen mikro kelimesi
eklenerek mikroilemci (microprocessor) kelimesi elde edilmitir. Baz kaynaklar
Mikroilemciler ve Mikrobilgisayarn Geliimi 5
Mikrodenetleyiciler 8051 Uygulamalar
ilemciyi merkezi ilem birimi ksaca MB, (central processing unit ksaca CPU)
olarak adlandrmlardr. Gnmzde her iki isim de kullanlmaktadr.
Merkezi ilem birimi bilgisayarn beynidir, bilgisayardaki aritmetik mantk ve karar
verme ilemleri ile bal birimlerin denetimi bu birim tarafndan yaplr. MB mantk
devrelerinin birleiminden oluur ve srekli yapt ilem komut getirme (fetching)
ve komut yrtmedir (executing). MB ikilik kodlar yrtme yeteneine sahiptir. Bu
kodlarn her biri basit bir ilemi temsil eder rnein toplama, karma VE, VEYA,
DEL gibi. Tm bu ikilik kod kmesine komut kmesi (instruction set) ad verilir. Her
mikroilemcinin kendine zg bir komut kmesi vardr.
ekil1.3de MBin basitletirilmi i yaps gsterilmitir. Aritmetik ve mantk ilem
birimi (arithmetic logic unit, ALU) aritmetik ve mantk ilemlerin gerekletii yerdir.
Komut kod zme ve denetim birimi gelen komutun niteliini belirler ve bu komut
iin gerekli denetim iaretlerini reterek ierideki ve dardaki birimlere gnderir.
Ana yaza aritmetik ve mantk ilem yaplrken birinci sayy ve ilem sonunda
sonucun yazld yazatr. Birok mikroilemcide bu yazaca akmlatr ad verilir.
Durum yazac her bitine ayr bir grev verilmi bir yazatr. rnein toplama
ilemlerin sonucunun ana yazaca smayan ksm durum yazacnda yer alan elde
bitinde saklanr. Bu yazataki dier bitlere ise mikroilemci reticisine gre farkl
grevler verilmitir, negatif biti, sfr biti, ondalk ilem biti gibi. Yardmc yaza
gurubu geici veri saklamak iin kullanlr. Yardmc yaza gurubunda yer alan yaza
says mikroilemci reticisine bal olarak deiir. Program sayac iletilecek
komutun adres bilgisinin oluturulduu bir ikili saycdr. Darda dorudan adres
yoluna baldr. Komut yazac program sayac tarafndan adresi belirlenen,
bellekten veri yolu ile getirilen komutun yazld yerdir. Bellee yazlacak veri yine
bu yaza yoluyla yanin veri yoluna yazmak iin yine bu yaza kullanlr.
Mikroilemcinin bir makine saykalnda ileyebilecei verinin uzunluu ALUnun bit
says ile snrldr. Akmlatrn bit says da ALUya eittir. Akmlatrdeki bit
saysna mikroilemcinin kelime uzunluu ad verilir. Kelime uzunluu 8 bit olan
mikroilemcilerde akmlatr 8 bittir ve bir makine saykalnda 8 bitlik iki sayy
toplar ve en fazla 9 bit olarak sonucu akmlatr ve durum yazacnda yer alan elde
bitine yazar. 32 bit olan mikroilemcilerde bir makine saykalnda iki 32 bitlik say
toplanabilir ve 33 bitlik sonucun 32 biti akmlatre yazlrken bir biti elde
bayrana yazlr.

6 Blm 1
Mikrodenetleyiciler 8051 Uygulamalar

ekil1.3 Merkezi ilem biriminin blok emas.
Yar letken bellekler
Bilgisayarn iletecei programlar ve ileyecei veriler ile sonu verileri bellekte
saklanr. Srekli kullanlan program paralar kalc tr belleklerde saklanr, bu
bellein ierii zel durumlar dnda bilgisayar tarafndan deitirilemez. leyecei
veriler ve ilem sonucunda elde ettii veriler geici tr belleklerde saklanr. Geici ve
kalc tr belleklerin yaps MBne dorudan balanabilecek ekilde olmaldr. Bu
zellii tayan bellekler kalc tr olan ROM, geici tr olan RAM yar iletken
belleklerdir.
ROM bellek sadece okunabilen ierii zel donanm olmadka deitirilemeyen yar
iletken belleklerdir. retim srasnda programlanan mask ROM belleklerin, sonradan
ierii zel donanm olsa bile deitirilemez. erii snrsz adet okunabilir, kullanm
mr 50 yl olarak kataloglarda verilmektedir. zel programlayc ile bir defa
programlanabilen sadece okunur belleklere ise PROM ad verilir. Bu bellein dier
zellikleri mask ROM ile ayndr. ROMlar ayn program ile daha az sayda cihaz
retilecek ise mask ROMa gre daha ekonomik olmaktadr. Dier bir ROM eidi ise
silinebilir ve tekrar programlanabilir EPROM belleklerdir. EPROM bellekler zel
programlayc ile programlanr, kullanldktan sonra ierii deitirilmek
istendiinde zerinde bulunan pencereden 15 dakika ltraviyole k uygulanarak
Mikroilemciler ve Mikrobilgisayarn Geliimi 7
Mikrodenetleyiciler 8051 Uygulamalar
silinebilir. Silme ilemi sonras tm hcrelerin ierikleri mantk 1 olacaktr. Bu tr
belleklerin programlanmas ve silinmesi zel donanm ve sre gerektirmesi yeni tr
ROM retimine sebep olmutur. Flash EPROM olarak adlandrlan belleklerin
bilgisayar sistemlerinde kullanm hzla yaygnlamtr. Flash EPROMlar birka
balant deiiklii ile kullanldklar devre zerinde silinebilir ve ayn devre zerinde
programlanabilir. Silme ilemi bellein tm hcrelerini mantk 1 yapar, silinecek
hcreyi seme sansmz yoktur. stenildiinde programn kopyalanmasn
engellemek iin ifre konabilir. Dier bir bellek tr ise elektrik ile silinebilir
EEPROMdur. EEPROM ile Flash EPROMdan zellii her satrnn zel dzenek
gerektirmeden dierlerinden bamsz siline bilmesidir. Hzl silme ilemi
kullanldnda ise Flash EPROMdan fark yoktur. Bellekler hakkndaki daha geni
bilgiyi saysal elektronik kitaplarndan elde edebilirsiniz.
Bilgisayarda ROM bellek ilk alta ilemcinin evre birimleri ile anlaabilmesi iin
gerekli altprogramlar saklamak iin kullanlr. Bu alt programlar ilk alta
ilemcinin adn, kullanlan arabirim yongalarnn numaralarn ve RAM bellein
salamlk denetimini grntleyiciye yazar. Bu ilemlerin sonunda kullancdan yeni
bir komut bekler hale gelir. RAM bellekte ise kullancnn sonradan girdii veriler ve
bu verilere ait sonular yer alr. Byk programlar ROM ve RAM bellekte
saklanamaz, bu ilem iin hard disk adn verdiimiz manyetik bellekler kullanlr.
Byk program paralar sra ile RAM bellee aktarlr ve ilemci buradan komutlar
getirir ve yrtr. lemi tamamlanan program paras bir sonraki blm ile
deitirilir. MB dorudan hard diskten ilem yapamaz.
Adres, Veri ve Denetim Yollar
Yol (bus) belli bir amala veri tamak iin kullanlan iletkenler kmesine verilen
addr. MB evresindeki birimlere adres, veri ve denetim yollar ile baldr. MB
ilem yapaca birimi adres yoluna yazd adres bilgisi ile seer. Yapaca ilemin
ne olduunu denetim yoluna yazd bilgi ile bildirirken ilemin sonucunda oluan
bilgiyi veri yolu ile sonucun yazlmas gereken birime tar.
Adres yolu adresin mikroilemci tarafndan retilmesinden dolay tek ynldr ve bu
yolda veri ak MBden bellek veya arabirim tmdevrelerine dorudur. Kk
lekli bilgisayarlar 16 veya 20 adres hattna sahiptirler. 1 hat iki bellek satrn
adresleyebilir, 16 adres hatt ise;
2
16
=65536 adet bellek satrn adresleyebilir.
8 Blm 1
Mikrodenetleyiciler 8051 Uygulamalar
2
10
=1024 Satr K ile ksaltlrsa;
2
16
=2
6
.2
10
=2
6
K=64 K
Olarak adlandrlr. 20 adres hattna sahip ilemcilerde;
2
20
=1048576 Bellek satr adreslenebilir. Ksalttmzda 1 Mega bellek satr olarak
syleyebiliriz. Forml ile ifade edecek olursak;
Belleme kapasitesi = 2
Adres Hatt Says

eklinde yazabiliriz.
Veri yolu mikroilemcinin ileyecei komutlar bellekten komut yazacna tar veya
akmlatrde oluan sonular geici bellee tar. Veri yolundaki bilgi ak ift
ynldr. Veri yolundaki hat says mikroilemcinin kelime uzunluuna eit olur.
Aratrmalar sonucuna gre, mikroilemcilerin yapt ilemlerin te ikisi kendi
yazalar ile bu birimler aras veri aktarma ilemleri olduu grlmtr.
Performans yksek ilemci elde etmek istiyorsak veri yolunun mmkn olduu
kadar hzl ve geni tutulmas gerekmektedir. Veri yolunun genilii mikroilemcinin
komut saysn belirler. Komut saysnn fazla olmas mikroilemcinin yeteneini
arttrr.
Mikroilemci komut says = 2
veri hatt says

Denetim yolu mikroilemcinin bellek ve arabirim tmdevreleri ile bilgi al veriinde
kulland eleme iaretleri ile zamanlama ve kesme iaretlerinden oluur. Veri ve
adres yolunda olduu gibi tm hatlarnn grevleri ve ynleri ayn deildir. Her
hattn grevi farkldr. Genellikle zamanlama amal olanlar MB tarafndan
retilirler. Bunlardan en nemlileri saat (clock), yazma (write), okuma (read)
hatlardr. Bunlardan oku hatt tek ynl bir hattr ve bellekten okuma ilemi
srasnda mikroilemci tarafndan retilir. Yazma hatt da ayn ynldr ve yazma
srasnda mikroilemci tarafndan yazma ilemi srasnda retilir. Kesme (interrupt)
hatt evre birimleri veya programc tarafndan retilir. Bu iaret etkin olduunda
ilemci normal program akn keser ve zel bir program iletir. Denetim yolundaki
hatlarn says ve alma ekilleri mikroilemci reticisine gre ok farkllk gsterir.


Mikroilemciler ve Mikrobilgisayarn Geliimi 9
Mikrodenetleyiciler 8051 Uygulamalar
Giri/k Aygtlar
Giri/k cihazlar veya dier adyla bilgisayar evre elemanlar MB ile gerek
dnya arasndaki iletiimi salayan birimlerdir. Bu birimler olmasayd byk bir
olaslkla bilgisayarlar kimse tarafndan kullanlmazd. eit giri/k cihaz
vardr. Bunlar, veri saklama cihazlar, insan ile iletiimi salayan cihazlar, denetim
ve gsterge cihazlardr.
Veri Saklama Aygtlar
Manyetik veri saklama cihazlar bellek teknolojisi arenasnda RAM ve ROM gibi
yariletken belleklerle birlikte anlrlar. Fakat aslnda yap olarak ok farkldr. Bu
cihazlar ok geni kapasiteye sahiptirler, fakat mekanik olduklarndan gvenirlikleri
dktr. Pazar gn getike bymesine ramen performanslarnda fazla gelime
olmamtr. RAM de olduu gibi MBe yakn balanamaz, arabirim kullanmak
zorundadr ki bu da veri iletimini yavalatr. Boyutlarnn srekli bymesine ramen
teknolojisi bu lde gelimemektedir. RAM ve ROM gibi yariletken belleklere
smayan programlarn saklanmasnda kullanlr. Bu cihazlardan MB dorudan
program iletemez, ancak paralar halinde RAM bellee tanr ve ilem bittikten
sonra tekrar bu cihazlara kaydedilir. Bu cihazlar (online) srekli hatta veya ariv
amal olmak zere iki trl kullanlabilirler. Genellikle manyetik ortamda veri
saklayan hard diskler srekli hatta alrlar. CD-ROM adn verdiimiz optik
ortamda veriyi saklayan bellekler ise ariv amal kullanlrlar. Bunlarn dnda teyp
kasetleri de veri saklama amal kullanlrlar.
nsan le letiimi Salayan Cihazlar
Bilgisayar ile insan kaynatrmak insan ile makineyi anlatran cihazlarn okluuna
baldr. En ok kullanlan arabirim video display terminal (VDT) olarak adlandrlan
klavye ve katot nl tpten oluan ekrandr. Gnmzde grntleme cihazlar
olduka eitlenmitir. LCD ekranlarn yksek renk kalitesi ve kapladklar az alan
dolaysyla kullanm yksek fiyatlarna ramen artmaktadr. Dier cihazlar ise
yazc, izici, mikrofon, hoparlr, fare, joystick, light pendir.
Denetim Ve Monitr Cihazlar
Mikroilemciler endstride de yaygn olarak kullanlmaktadr. zellikle seri retim
bantlarnda retimin hatasz ve hzl olmas iin birok ii robotlar yapmaktadr.
Robotlar ise mikroilemciler denetlemektedir. Mikroilemci denetleyecei
deikenin deerini renmek iin sensr kullanr. Deikeni denetlemek iin motor,
rle gibi elemanlar kullanr. Sensrler genellikle basn, scaklk, k, hareketi gibi
10 Blm 1
Mikrodenetleyiciler 8051 Uygulamalar
ltkleri parametreleri elektrik iaretine dntrrler. Bu analog elektrik iareti
ADC kullanlarak saysallatrlr. Bu bilgi ilendikten sonra tekrar kontrol elemanna
gnderilmeden DAC kullanlarak analog iarete dntrlr. Endstride yaygn
olarak mikroilemci yerine mikrodenetleyici kullanlmaktadr.
Yazlm
lk yllarda donanm yazlmdan daha nemliydi ve maliyeti yksekti. Son yllarda ise
yazlm daha nemli hale gelmitir. Maliyet olarak donanmn zerine kmtr.
ekil1.4te yazlm trleri basitletirilmi olarak gsterilmitir. Yazlm seviyeden
oluur: en dta uygulama program, onun iinde iletim sistemi program, en ite
giri/k alt programlar.
En iteki giri/k alt programlar dorudan donanm ile st grup yazlmlarn
balantsn salar. Alt programlar keyborddan karakter okur, gstergede karakter
grntler, hard diskten bir grup program parasn RAM bellee getirmek gibi
iletim sisteminin gereksinim duyduu altprogramlardr. Bu alt programlar
donanm tasarlayan kiiler tarafndan yazlr ve kalc tr bellekler ierisine yazlr.
IBM PClerde bu belleklere BIOS (Basic Input/Output System) ad verilir. BIOS bellei
programc tarafndan deitirilemez. Fakat saat, tarih, ifre gibi sonradan
deitirilmesi gerekli deikenlerin sakland bir pilli RAM veya EEPROM bellek
anakart zerine yerletirilir.

ekil-1.4 Yazlmn katmanlar.
Programlaycnn donanm ile daha yakn iliki kurabilmesi MBin yazalarnn
balang deerleri giri/k alt programlar tarafndan sistem RAMine kaydedilir.
LETM SSTEM (KOMUTLAR VE
YARDIMCI ALT PROGRAMLARI
UYGULAMA YAZILIMI
(KULLANICI ARABRM)
GR/IKI ALTPROGRAMLARI
(DONANIMI KULLANDIRAN
ALTPROGRAMLAR)

DONANIM
Mikroilemciler ve Mikrobilgisayarn Geliimi 11
Mikrodenetleyiciler 8051 Uygulamalar
Programc bu RAMin ieriini deitirerek kendine uygun ekilde donanma
ulaabilir. BIOS giri/k alt programlarnn yan sra sistemi balatma programn
da ierir. ROMda kaytl olduu iin balatma program bal sistemlerin test
edilmesi ve bellein balang koullarna ayarlanmas gibi sabit ilemleri ierebilir.
Bunun dnda bootstrap loader alt program diskin birinci izini okur ve program
parasn RAMe kaydeder. Bu program iletme sisteminin temelini oluturur.
letim sistemi birok programn toplamndan oluur ve bilgisayar ile birlikte gelir.
Uygulama programlarnn kullanm iin komut dili ve yardmc programlar ierir.
letim sistemi giri/k altprogramlarnn bir veya bir kan birletirerek kendine
komut oluturur. Dizin yaratma, kopyalama, silme, yeniden adlandrma gibi
komutlar buna birer rnektir. Bu komutlar uygulama programlar tarafndan komut
olarak kullanlr. Kullanc program yazan bir programc bilgisayarn
mikroilemcisinin assembler dilini bilmeden giri/k altprogramlarn rahatlkla
kullanabilir. Uygulama yazlmlar bilgisayara i yaptrmak iin yazlm
programlardr. Kelime ilemcisi, programlama dilleri izim programlar, ses ve mzik
programlar gibi.
Bilgisayarn leyii
Bilgisayara g uygulandnda veya reset tuuna basldnda mikroilemci adres
yoluna reset vektr ad verilen adres bilgisini yazar. Daha sonra okuma iaretini
reterek bellekten bu adreste yer alan komutu komut yazacna aktarr. Reset
vektr retici firma tarafndan BIOS ROMun ilk veya son adresi olarak belirlenir.
Birinci komut okunduktan sonra program sayac bir arttrlr ve bir sonraki komut
veya veri okunacak ilk bilgidir. Programn ak iletilen komutlara gre deiecektir.
Mikroilemcinin bellekten komut okumasna komut getirme saykl ad verilir.
ekil1.5te komut getirme sayklnn aamalar gsterilmitir. Komut getirme
sayklndaki olaylar sras ile yle geliir;
1. Program sayacn ierii adres yoluna aktarlr,
2. Denetim yolu hatlarndan okuma iareti etkin yaplr,
3. kilik bilgi RAM veya ROMdan veri yoluna aktarlr,
4. Veri yolundaki ikilik bilgi MB ierisindeki komut yazacna alnr,
5. Program sayac bir sonraki komut getirme ilemi iin artrlr.
12 Blm 1
Mikrodenetleyiciler 8051 Uygulamalar
Getirilen ikilik bilginin komut kodu olup olmad kod zme ve denetim birimi
tarafndan belirlenir. Eer bir komutun kodu ise bu kod geldiinde yaplmas
gereken ilemler mikroilemci ierisinde yazlrdr. Bu bilgiler mikroilemci retilirken
yazlr ve sonradan deitirilemez. Komutun kodunun zlp gerekli denetim
iaretlerinin retilmesi aamasna komut yrtme saykl ad verilir. Komut yrtme
sayklnda komut yazacna alnan komutun kodu zlerek retilmesi gereken i
denetim iaretleri retilir ve zamannda ilgili i birime gnderilir. rnein eer ilem
kodu bir toplama ilemi olduunu sylyorsa ilem iin saylar yazalardan
aritmetik ilem birimine alnr. Toplama en dk deerlikli bitten balar ve en
yksek deerlikli bite doru yaplr. Zamanlama ilemleri komut kod zme ve
denetim birimi tarafndan yaplr. Komut yrtme ilemleri komut getirme ilemleri
gibi sabit sreli deildirler. Yaplan ilemin karmaklna gre sre uzayabilir.
Anlaml bir ilem yaptrmak iin sralanm komut kmesine program ya da yazlm
ad verilir. Amalanan ilemin hatasz bir ekilde gereklenmesi yazlan programn
gln gsterir. Gl programlar girilecek tm girdileri gz nne alnarak
yazlr. ounlukla program ilettiimizde baz verilerde hatal sonular elde
ettiimizde bilgisayar sular ve bilgisayar hata yapt deriz. Aslnda bilgisayar deil
yazdmz program hatal veya eksiktir. Fakat donanm hatas var diyebiliriz. Bunu
sylemek iinde yazlmzn doruluundan emin olmalyz.

ekil1.5 Komut getirme sayklnda ilem sras.
Mikroilemciler ve Mikrobilgisayarn Geliimi 13
Mikrodenetleyiciler 8051 Uygulamalar
Mikrodenetleyiciler
lk yllarda endstride ve bilgisayarda ayn mikroilemciler kullanld. Daha sonraki
yllarda bilgisayarn daha hzl ve daha ok ilem yapan ilemcilere gereksinim
duymas, endstrinin ise yava fakat ierisinde ska kullanlan yardmc birimleri
ieren mikroilemciler istemesi nedeniyle endtrinin gereksinimi iin yeni araylara
girildi. lk denemeyi Intel irketi 1976 ylnda 8748 mikroilemcisi ile yapt. Bu
tmdevre ierisinde mikroilemciye ek olarak 1Kbayt EPROM bellek, 64 Bayt RAM,
27 I/O baca ve 8 bit zamanlayc yer almaktayd. Bu ilemciyi elde etmek iin
yaklak 17,000 transistor kullanlmtr. 8748 kontrol uygulamalarnn deimez
eleman oldu ve birok sistemin daha basit ve akll ekilde tasarlanmasn olanakl
kld. zellikle otomatik amar makineleri, trafik klar, otomobil ateleme
sistemleri gibi endstriyel cihazlarda youn olarak kullanld. Pazardan memnun
kalan Intel gelitirilmi endstri mikroilemcisini 1980 ylnda MCS51 ailesini olarak
dnyaya tantt. Bu ailenin ilk eleman 8051 olarak adlandrld. Bu tmdevre 60000
transistrden oluuyordu ve iersinde mikroilemci, 32 giri/k hatt, 2 adet 16 bit
zamanlayc, seri port, 4 Kbayt ROM bellek, 128 bayt RAM bellek barndryordu.
ekil1.6da ilk retilen 8051 Mikrodenetleyicisini blok emas gsterilmitir.

ekil1.6 Mikrodenetleyicinin blok emas.
Intelden retim izni alan yaklak 20den fazla firma MCS51 ailesini gelitirdiler,
ayn yonga ierisine kendi altklar alana uygun birimler eklediler. Gnmzn en
14 Blm 1
Mikrodenetleyiciler 8051 Uygulamalar
ok kullanlan mikrodenetleyicisi MCS51 ailesidir. Motorola ise 68HC11 serisi
mikrodenetleyicileri retti, zellikleri 8051e benzeyen bu mikrodenetleyici daha
nce 6802 ilemcisini kullananlar tarafndan tercih edildi. Microchip firmas daha
kk uygulamalara dnk olarak daha az baca olan ve d bellek balanmasna
izin vermeyen mimaride 12XX, 14XX ve 16XX serisinde PIC (Peripheral Interface
Controller) mikrodenetleyicilerini retti. Zilog firmas da PICe benzer mimaride Z8
serisi mikrodenetleyiciler retti. Thomson firmas ise tek yongada ADC ve DAC ieren
ST62XX serisi mikrodenetleyiciler reterek daha baka bir boyut getirdi. Gnmzde
birok firma mikrodenetleyiciye program bellei, veri bellei, MB, seri kanal, deiik
sayda I/O portuna ek olarak denetim uygulamalarnda ska kullanlan ADC, DAC,
sayc/zamanlayc, SPI, I2C gibi ek birimler eklemektedirler. Bu devrelerin tek bir
tmdevrede (chip) birletirilmesi tketilen enerjiyi azaltrken devrelerin uyum
probleminden doacak hatalar ortadan kaldrmaktadr.
Son yllarda tasarmclar Analog Devices, Atmel, AMD, Maxim Dallas, Hynix,
Infineon, Intel, ISSI, Micronas, Oki, Philips, SST, Winbond, Silicon Laboratories,
Hyundai, ST Microelectronics, Samsung gibi 20den fazla firmann rettii 8051
ekirdekli ve bilgisayardan dorudan programlanabilen flash bellei olan
microdenetleyicileri kullanmay tercih etmektedirler.
Mikroilemci ile mikrodenetleyicileri komut kmeleri bakmndan karlatrrsak,
kullanm amalar farkl olduu iin komut kmeleri de farkldr. Mikroilemci daha
gl uygulamalarda kullanlaca iin hz ve kelime uzunluu byk olarak
tasarlanmtr. Bunun sonucu olarak byk veri gruplarn ileyebilecek ekilde bayt,
ift bayt uzunluundaki verileri bir defada ileyebilecek komutlara sahiptir. Fakat
mikrodenetleyicilerde bit ilem yapan komutlar daha nemlidir. Birok komutu bit
adresleme kipinde kullanlr.
Mikroilemciler ve Mikrobilgisayarn Geliimi 15
Mikrodenetleyiciler 8051 Uygulamalar
Sorular
1. Yaygn olarak kullanlan ilk mikroilemci hangisidir? Hangi firma tarafndan
retilmitir?
2. Yariletken bellek trlerini yazn hangisinde veri kalc deildir?
3. Komut getirme evresinde adres ve veri yolunun ierii nedir?
4. 14 bit program sayac olan mikroilemcinin belleme kapasitesi ne kadardr?
5. Srekli hatta veri saklama cihaz ile ariv tr veri saklama cihazlar
arasnda ne gibi farkllklar vardr aklayn?
6. Nonvolatile RAM bellein zellii nedir?
7. Port adresli giri/k yntemi ile bellek adresli giri/k yntemi
arasndaki farklar nelerdir?
8. En yaygn kullanlan evre birimleri nelerdir?
9. Seri ve paralel portlarn farklar nelerdir?
10. Kesme ne demektir? Neden gereklidir?
11. Mikroilemci ile mikrodenetleyicinin fark nedir?
12. Mikrobilgisayarn blok emasn izip ksmlarnn grevlerini aklaynz.


Mikrodenetleyiciler 8051 Uygulamalar
MCS51 Ailesi
Mikrodenetleyiciler

Giri
8051 mikrodenetleyicileri ilk olarak INTEL tarafndan 1980 ylnda retilmitir. MCS
51 ailesi mikrodenetleyiciler olarak ta adlandrlan 8051in kullanm haklarn INTEL
30dan fazla fimaya satmtr. 1990l yllardan balayarak Intel 8051 retimini
kademeli olarak durdurmasna ramen kullanm hakkn alan 30dan fazla firma
ekirdek yapsna ve komut setine sadk kalarak gnnz ihtiyalarna yant verecek
ekilde gelitirerek gnmze kadar gncel kalmasn salamtr. Ayrca KEIL, IAR,
NOHAU, TASKING, RAISONANCE gibi birok firma ise geni bir donanm ve yazlm
gelitirme aralar destei sunmaktadr. Bunun sonucu olarak 8051 ailesi,
1980lerden bugne bir endstri standard olmutur.
Pek ok retici firma, orijinal 8051e eitli ek zellikler katarak trev rnler
gelitirmitir. ok deiik 8051 trev rnler bulunmasna ramen komut seti ve
ekirdek yap olarak btn rnler uyumludur. 8051 ekirdek mimarisi en basitten
en karmana kadar her trl endstriyel otomasyon uygulamalarnda kullanma
uygundur. Piyasaya ilk sunulduklar tarihte 12 MHzlik modelleri bir saniyede 1
18 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar
milyon (1 MIPS, Mega Instruction Per Second) komut yrtyorken yeni trevlerde
24 MIPS, 50 MIPS ve 100 MIPSlik hzlara ulalmtr.
8051 Ailesi rnlerin teknik ve ticari avantajlarnn yan sra eitimde de
kullanmann birok avantaj vardr. 8051 hakknda birok ders kitab, teknik
dokman, yazlm ve donanm gereleri, pek ok nternet Web Sayfas mevcuttur.
Kitabn sonunda kaynaklar ksmnda bu dkmanlar verilmitir. Dier bir kolayl
ise 8051 mikrodenetleyicisini birok elektronik para satan firmadan ucuz olarak
temin edilebilmesidir. Mikroilemci-mikrodenetleyici derslerinde her hangi bir
mimari yapnn retilmesi halinde bir baka mimari yapya sahip aileye uyum
salamak ok fazla zaman almayacaktr. Ancak olanaklar elverdiince piyasada
yaygn kullanlan bir mikrodenetleyici ailesinin seilmi olmas rencilerin i
hayatna uyumunu hzlandracaktr.
MCS51 Ailesi Mikrodenetleyiciler
MCS51 ailesi mikrodenetleyicilerin ilk yesi 8051dir. zerinde 4 Kbayt bir defa
programlanabilir (OTP) tipi ROM program bellei yer alr. Bu ilk rnn ismi ou
zaman ailenin genel ad olarak sylenir. Birok kaynak ya da kii MCS51 ailesi
mikrodenetleyiciler yerine 8051 ailesi ksaltmasn kullanmaktadr. Ailenin ilk
yesinin zelliklerini yle sralayabiliriz.
8 bit Mikroilemci,
Mantksal ilemler yapabilen ilemci,
4x8 biiminde dzenlenmi, 32 adet Giri/k hatt,
128 bayt RAM bellek,
ROM veya baz modellerinde EPROM, FLASH bellek
128 adet bit adreslenebilen bellek hcresi,
ACC ve B yazacna ek olarak 8 adet yaza (R0, R1, ...., R7),
Programlanabilir ift ynl (full-duplex) seri port,
zerinde var olan i belleklere ek olarak d bellekler ekleyebilme zellii,
ki adet 16 Bitlik zamanlayc/sayc,
ki ncelik dzeyi olan be adet kesme kayna,
MCS-51 Ailesi Mikrodenetleyiciler 19
Mikrodenetleyiciler 8051 Uygulamalar
Tmdevre zerinde osilatr ve saat iaretleri oluturma devresi.
8051in program bellei ROM bellein ieriinin deitirilememesi baz kullanclarn
iini zorlatrmtr. Bu sorun program bellei EPROM olan 8751 retilerek
giderilmitir. Bu rnn ierisinde 8051den farkl olarak 4 kbayt EPROM bellek
kullanlmtr. 8751in i program bellei zel programlayc ile programlanabir,
program deitirmek istediimizde EPROM silici ultraviyole k ile 15 dakidada
silinip tekrar programlanabilir. Programlama silme aygtlarnn pahal olmas
nedeniyle birok amatr kullanc 8751i kullanamamtr. Amatr kullanclar iin
fiyat ucuz i program bellei olmayan fakat dier zellikleri 8051ile ayn olan 8031
retilmitir. Daha sonraki yllarda program ve veri belleklerinin gereksinimi
karlamamas nedeniyle bellek miktarlar iki katna karlmtr. 8051in ROM
program bellei 8 Kbayta ve RAM veri bellei 256 Bayt karlm ve 8052, 8751
EPROM program bellei 8 Kbayta ve RAM veri bellei 256 Bayt karlm ve 8752,
8031in ise veri bellei 256 bayta karlm ve 8032 olarak adlandrlmtr. izelge
2.1de 8051 ailesi mikrodenetleyicilerin en temel yelerinin zellikleri gsterilmitir.
8051 8052 8751 8752 8031 8032
On-Chip ROM 4K 8K 4K 8 K 0 K 0 K
RAM (Bayt) 128 256 128 256 128 256
Zamanlayc 2 3 2 3 2 3
I/O Portlar 4 4 4 4 2 2
Seri Port 1 1 1 1 1 1
Kesme Kayna 5 6 5 6 5 6
izelge2,1 MCS51 ailesinin en temel elemanlar ve ierdikleri evrebirimleri.
1990l yllardan sonra tmdevre (on chip) zerinde yer alan program bellei nce
EEPROM bellekle deitirilmi bylece elektrik ile silinebilir hale gelmitir. Daha
sonraki yllarda daha ucuz retim teknolojisine sahip FLASH EEPROM retilmi ve
program bellekleri bu tr bellek kullanlarak retilmeye balanmtr. Intel ve baz
firmalar bu tr bellee sahip MCS ailesi rnleri 89FXX olarak adlandrmlardr.
FLASH EEPROM belleklerin yama silme adedi 1000 defadr, bu adet aldktan sonra
en son yaplan program bellekte kalr yeni yazma yaplamaz. Gnmzde retilen
8051 trevlerini programlamak iin zel programlaycya gereksinim yoktur. retici
firmaya bal olarak bilgisayarn seri, paralel ve USB portunu kullanarak yaplacak
basit bir devre ile hzl bir ekilde programlama yaplabilmektedir. Hatta adm
20 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar
modunda altrlarak yazalarn ierikleri okunarak program hatalar
belirlenebilmektedir. 8051in sat fiyatlar ierisinde yer alan birime bal olarak bir
ile 50 aralnda deimektedir.
1985 ylndan sonra Intel firmas MCS51 ailesi mikrodenetleyicilerin ekirdek yaps
ve komut setinin kullanm hakkn dier firmalara satmaya balam ve gnmzde
birok firma tarafndan 8051 ekirdei ve komut kmesi kullanlmaktadr. Bu
firmalar kendi kullanm alanlarna gre uygulamaya zel, her tketiciye uygun 8051
eitleri retmilerdir. Bu zelliklerin bazlarn yle yazabiliriz.
Programlanabilir sayc dizisi (PCA),
Analog saysal ve Saysal analog dntrcler,
SPI, USB, I2C ve Microwire gibi seri haberleme kanallar,
CAN denetleyici,
PWM,
LCD src birimi,
RAM, EEPROM veri bellekleri.
zellik 8051 PENTIUM Aklama
Hz 12- 60 Mhz 1 4 GHZ.
Adres Yolu 16 bit 32 bit
8051 2
16
, veya 64 Kbyte bellek.
Pentium ise 2
32
, veya 4 GBayt
bellei adresleyebilir.
Veri Yolu 8 bit 64 bit
Pentium bir defada daha fazla
veriyi aktarr.
ALU kelime
genilii
8 bit 32 bit
Pentium bir defa da daha byk
saylar toplayabilir.
Uygulama
Alan
Ev gereleri,
Endstri
Bilgisayarlar
G Tketimi 250 mW 3060 W Pentium ok snr soutma ister.
Maliyeti 12 100200
izelge2.2 8051 ile Pentium serisi ilemcilerin karlatrlmas.
MCS-51 Ailesi Mikrodenetleyiciler 21
Mikrodenetleyiciler 8051 Uygulamalar
8051 reten firmalarn Bazlar
2

Acer Labs Megawin
Actel Mentor Graphics
Aeroflex UTMC Micronas
Altium MXIC
Analog Devices Myson Technology
ASIX Nordic Semiconductor
Atmel NXP
Cast OKI
Chipcon Oregano Systems RadioPulse
CML Microcircuits Ramtron
Cybernetic Sanyo
CybraTech Sharp
Cypress Silicon Laboratories
Daewoo Siliconians
Digital Core Design SMSC
Dolphin SST
Domosys STMicroelectronics
Goal Semiconductor Teridian
Handshake Solutions Texas Instruments
Honeywell Tezzaron
Hynix Triscend
ISSI Vitesse
Infineon Winbond
Intel Zylogic
Maxim/Dallas


2
Kaynak www.keil.com ve www.iar.com
22 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar
8051 mikrodenetleyici olduu iin denetim uygulamalarnda kullanlmak zere
gelitirilmitir. Dier yandan 8051 ile ayn yllarda retime balayan 8088
mikroilemcisi bilgisayarlarda kullanlmak zere gelitirilmi ve bugn Pentium ailesi
olarak devam etmektedir. 8051 ile Pentium ailesi mikroilemcilerin zelliklerinin
karlatrlmas izelge2.2de gsterilmitir.
ekil2.1de 8051in mantk simgesi ve bacak balants verilmitir. 8051in 40 bacandan
32 tanesi I/O hattdr. Geriye kalan 8 bacak ise besleme ve denetim hatlardr. 32 I/O hatt 4
adet 8 hatl port olarak adlandrlr. Bu portlarn I/O hatt dnda ikincil grevleri vardr. Eer
d veri ve program bellei tasarlanan sistemde gerekli deilse bu hatlar serbest I/O hatt
gibi kullanlabilirler.

ekil2.1 8051in mantk simgesi ve bacak balants.
8051in ekirdek Yaps
8051 MBinin ierisinde 8 bit ALU (Arithmetic Logic Unit), 8 bit A akmlatr ve 8
bit B akmlatr yer alr. Bunlarn dnda her MBde bulunmas gereken komut
yazac, kod zme birimi, port tutucular ve srcleri, zamanlama ve kesme
ncelikleme birimleri yer alr. Bu yapnn tannmas program yazm srasnda
mikrodenetleyicinin daha etkin kullanlmasn salar. ekil2.2de 8051in
basitletirilmi yaza yaps gsterilmitir.
MCS-51 Ailesi Mikrodenetleyiciler 23
Mikrodenetleyiciler 8051 Uygulamalar
8051de mikroilemciden farkl olarak i RAM bellek birimi ile zamanlayc ve seri
port denetim birimleride ekirdek yap ierisine alnmtr. Dier birok
mikroilemciden farkl olarak A ve B yazalarnnda adresleri vardr.
Denetim Hatlar
8051in denetim hatlar osilatr girileri, reset girii ve d bellek kullanmn
salayan PSEN, ALE, EA hatlarndan olumaktadr. D bellek kullanlmadnda baz
denetim hatlar ilevsiz kalr, bu sebeple yeni trev 8051lerde bu hatlar yer
almayabilir. Bazlarnda ise programlama srasnda yaplan seimle etkin yaplabilir.
ADRES Yolu 16 bit
I-RAM
Yaza Bankalar
Bit-adreslenebilir
SFR
Geici Veri
Saklama Yazac
ALU
8-bit
V
e
r
i
Y
o
l
u
I Veri Yolu
D Bellek Adres Yazac
( P0 ve P2)
D
P
T
R
P
.
C
.
I Veri Bellegi
Komut
Yazac
Acc
Akmlatr
B
Geici Veri
Saklama Yazac
Komut Kod
zme ve
Denetleme
C
AC
F0
RS1
RS2
OV
P
PSW
Bayraklar
Port 1
Ve di gerleri...
Zamanlayc
Sayc 0
Zamanlay
Sayc 1
UART
D
e
n
e
t
i
m

H
a
t
l
a
r

RD/ WR/ PSEN/


ALE

ekil2.2 8051in i yaza yaps
24 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar
PSEN
D program belleinden okuma yapan iaret kdr, program belleinin
(EPROMun) OE giriine balanr. PSEN k d bellekten program iletilirken
komutun okunmas srasnda dk seviyeli vuru verir. Bu iaret etkin olduunda
adres yolu tarafndan seilmi bellek satrnn ierii veri yoluna aktarlr.
bellekten program iletildiinde etkin olmaz.
ALE
Bu iaret PORT 0 adres ve veri yolu olarak kullanldnda veri bilgisi ile adres
bilgisinin demultiplex edilmesini salar. D bellekten ilem yapma sayklnn ilk
yarsnda adres bilgisi PORT 0a yazlr ve bu periyodun sonunda ALE iareti etkin
yaplarak Port 0n ierii D tutucu kna aktarlr. Saykln ikinci yarsnda ALE
iareti etkin olmaz ve Port 0 bellein veri giriine bal kalr. Veri aktarm bellekten
ilem yapma sayklnn ikinci yarsnda gerekleir. ALE iareti on-chip osilatrn
1/6s hznda vuru retir. 12 MHz ile almada 2 MHZlik bir vuru k verir. Bu
kural, sadece MOVX komutu iletilirken geerli deildir, bu komut iin ALE iareti bir
saykl sresince sfr dzeyinde kalr.
EA (EXTERNAL ACESS)
EA (external acess) girii d ya da i program bellekleri arasnda seim yapmak iin
kullanlr. Bu girie mantk 1 uygulandnda (3K3lk bir diren zerinden +5Va
balanrsa) 8051 i program belleinden komut iletir. Mantk 0 uygulanrsa (GND
hattna balanarak) ise d program belleinden komut iletir. 8031/8032de i
program bellei bulunmadndan mutlaka aseye balanmaldr. program
belleinin programlama aamasnda bu girie programlama gerilimi uygulanr.
8051in EPROMlu srm olan 8751de programlama gerilimi 21 Volt, 87C52de ise
programlama gerilimi 12 volttur. Flash EPROMlu srmlerde ise 5 volttur.
Aklama: Son yllarda retilen 8051 trevlerinde yeteri kadar i program bellei (64
Kbayt) ve i veri bellei (4 Kbayt) bulunduu iin d bellee ihtiya
duyulmamaktadr. Bu tr trevlerde (yaklak %90nda) PSEN, ALE ve EA hatlar
bulunmaz. Baz trevlerde ise programlama srasnda seim yaplr. Eer d bellek
balants seilirse giri/k hatlar bu i iin grevlendirilir.
RESET
8051 RST giriine en az 2 makine saykl sresince yksek seviye uygulandktan
sonra dk seviye uygulanrsa balang konumuna gelir (resetler). RST girii bir
basmal anahtarla veya bir RC devre ile sadece g verildiinde (Power On Reset,
MCS-51 Ailesi Mikrodenetleyiciler 25
Mikrodenetleyiciler 8051 Uygulamalar
POR) etkin hale getirilir. ekil2.3te her iki devre balants gsterilmitir. 8051
resetlendiinde SFR yazalarnn ierikleri deiir ve balang durumlarn alrlar.
Bunlardan en nemlisi (PC) program sayacdr. Reset sonras program sayacnn
ierii 0000H olur ve 8051 program iletmeye bu adresten balar. Bu adrese reset
vektr denir. RAM bellein ierii reset ileminden etkilenmez. 8051in
almaya balayabilmesi iin mutlaka PORi almas gerekir, aksi halde almaya
balamaz.

ekil2.3 8051 reset balantlar.
Osilatr Girileri
ekil2.4te gsterildii gibi 8051in iki adet osilatr girii vardr. Bu girilere
ierideki osilatre kaynak olacak bir rezonans devresi balanr. Genellikle bir kristal
bu grevi yerine getirir. MSC51 ailesi mikrodenetleyicilerin yazl kristal frekanslar
12 MHzdir, fakat 8051 her 12 osilatr sayklnda 1 ilem gerekler. Piyasaya ilk
sunulduklar tarihte 12 MHzlik modelleri bir saniyede 1 milyon (1 MIPS, Mega
Instruction Per Second) komut yrtyorken yeni trevlerde 24 MIPS, 50 MIPS ve
100 MIPSlik hzlara ulalmtr.

ekil-2.4 8051in osilatr girileri ve kristal balants.
8051
C1
RST
C2
+5
V
XTAL
8.2
K
FOSC = XTAL =0.5-40 Mhz aralnda alr
C1=C2= 22-33 pF aralnda seilebilir
10u
F
8051
80C51
XTAL1
RST
XTAL2
+5V
2.2uF
Power-on ve istee bal Reset
balants
Power-on Reset
balants
26 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar
Mikroilemcilerin bir komutu yrtme sresine makine saykl denir. Her
mikroilemcinin makine saykl kendine zg formul ile hesaplanr. Osilatr
frekans bilinen 8051in makine saykl aada verilen formlle hesaplanabilir.
T
Mak. Say.
= 12 / f
OSC

Bunun anlam 8051 bir komutun ilenmesini 12 osilatr sayklnda tamamlar. Bu
durum birok kullanc tarafndan eletirilmitir. Motorola firmasnn rettii
68HC12XX ailesi mikrodenetleyiciler 1 osilatr sayklnda 1 komut ilerken PIC ailesi
mikrodenetleyiciler 4 osilatr sayklnda 1 komut iler. Yeni trev 8051lerde
istenirse programlama srasnda 6 osilatr, 4 osilatr veya 1 osilatr saykllarnda
bir komut ilemesi iin seim olana tannmtr. Tm 8051 trevleri balang
olarak 12 osilatr sayklnda 1 komut ileyecek seilde programlanmtr.
rnek 1:
f
OSC
= 11.0592 MHz olan 8051in makina saykln hesaplayn?
T
MS.
= 12 / 11059200 Hz
T
MS
. = 1.085 s

rnek 2:
f
OSC
= 12 MHz olan 8051in makina saykln hesaplayn?
T
MS.
= 12 / 12000000 Hz
T
MS
. = 1 s

rnek 3:
f
OSC
= 16 MHz olan 8051in makina saykln hesaplayn?
T
MS.
= 12 / 16000000 Hz
T
MS
. = 0.75 s

rnek 3:
f
OSC
= 500 KHz olan 8051in makina saykln hesaplayn?
MCS-51 Ailesi Mikrodenetleyiciler 27
Mikrodenetleyiciler 8051 Uygulamalar
T
MS.
= 12 / 500000 Hz
T
MS
. = 24 s

Gerilim Balantlar
8051 mikrodenetleyicisi tek bir 5 voltluk kaynaktan beslenir. V
CC
40 numaral bacak,
V
SS
ise 20 numaral bacaktr. Kaynaktan ekilen akmn miktar retim teknolojisine
ve g denetim yazac ierisinde yer alan ksk g ve aylak kip bitlerinin deerlerine
baldr. Philips CMOS 8051 mikrodenetleyicilerin ektii akm deerleri izelge
2,3de verilmitir. Tasarm srasnda bu tabloda yer alan en byk deeri dikkate
alnz.
I
CC
V
CC
Min Max Birim
Aktif mod 16 MHZ 4.5 V-5.5 V - 25 mA
Aktif mod 12 MHZ 4.5 V-5.5 V - 20 mA
Aylak mod 16 MHZ 4.5 V-5.5 V - 6.5 mA
Aylak mod 12 MHZ 4.5 V-5.5 V - 5 mA
Ksk G 16 MHZ 4.5 V-5.5 V - 75 A
Ksk G 12 MHZ 4.5 V-5.5 V - 50 A
izelge2.3 CMOS 8051in g tketimi.
3

Giri k Hatlar
8051in 4 port eklinde dzenlenmi 32 adet giri ve k olarak kullanlabilen hatt vardr.
Bu hatlara giri kn yan sra baz ikincil grevler de verilmitir. P1, P2, P0n hatlarnn
srme kapasitesi 4 adet LS (low power Schottky) TTL yktr. P3n src devresi
glendirilmi olduu iin 8 LS TTL yk srebilmektedir. Bu deerler yeni retilen trev
8051lerde farkldr. Kullanlan 8051 trevinin veri yapraklarnda en doru deer elde
edilebilir. Portlar SFR blgesinde yaza olarak yerletirilmitir. Portlar 8li olarak veya tek
hat olarak okuma ve yazma yapabiliriz. Portlarn okunmas ve yazmas yaplarnda kk
farkllklar olmasna ramen ayndr. Reset sonras portlarn klar mantk 1 deerini alr.

3
Kaynak: Philips 8051 data book.
28 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar
8051in Bellek Yaps
MCS51 ailesinde i RAM, d RAM ve d program bellei olmak zere tr bellek
yer alr. Baz kaynaklarda RAM belleklere veri bellei, program belleine ise kod
bellei ad verilir. Program bellei 8051 ve 8751de tmdevre zerinde yer alr.
program bellei yeterli olduunda d program bellei kullanmaya gerek yoktur. D
bellek kullanldnda giri k portlarnn bir ksm adres ve veri yolu olarak
kullanlacandan giri/k hatt olarak kullanlamayacaktr. 8051in bellek yaps
ekil-2.5te gsterilmitir.

8051
D
Veri
Bellei
(RAM)
D
Program
Bellei
(ROM)
I-RAM
Veri Yolu (8-bit)
Denetim Hatlar
12MHz
P1 P3
Adres Yolu (16-bit)

ekil2.5 8051in bellek yaps.
MCS51 ailesi mikrodenetleyicilerde program bellei ile veri bellekleri ayr adres
alanlarna sahiptir. Her iki bellek trnden 64 Kbayt bellek balanabilir. Bu iki bellek
satr arasndaki ayrm kullanlan komut ve denetim hatt ile yaplr. 8051 komut
okurken okuma iareti olarak PSEN hattn veri okurken RD hattn etkin yaplr. Veri
yazarken ise WR iaretini etkin yaplr, program belleine ise yazma yaplmaz. Devre
tasarm srasnda EPROMun oku giriine PSEN hatt, RAM bellein oku giriine RD
hatt, yaz giriine ise WR hatt balanmaldr. Bu ayrk bellek yapsna HARVARD
mimarisi ad verilir. Bu mimaride MBe balanabilecek bellek kapasitesi iki katna
karken, denetim hatt says ve komut says artar. ekil2.6da bellek alanlar ve
her bellek trnn kuland denetim hatlar gsterilmitir.
MCS-51 Ailesi Mikrodenetleyiciler 29
Mikrodenetleyiciler 8051 Uygulamalar

ekil - 2.6 8052in adres alanlar.
RAM Bellein Kullanm
8051de i RAM olarak adlandrlan blge MB yazalar, evre birimini denetleyen
yazalar, bit adreslenebilen bellek satrlar ve ilem sonularn geici olarak
saklamaya yarayan bellek satrlarndan oluur. RAM MB yazalar ve evre
birimlerini denetleyen yazalarn yer ald zel amal yaza blgesi, yaza
bankalar, bit adreslenebilir ve genel kullanma ak bellek satrlarnn bulunduu alt
128 bayt blgesi ve sadece genel kullanm amal bellek satrlarnn bulunduu st
128 bayt blgesi olmak zere ana blgeye ayrlmtr. ekil-2.7da i RAM
bellein kullanm blgeleri gsterilmitir.

ekil2.7 RAM bellein ksmlar.
Alt 128 Bayt
Alt 128 baytn adres aral 00h-7Fhdir ve bu ksma dorudan ve dolayl adresleme
kiplerinin her ikisi ile de ulalabilir. Bu alanda yer alan 128 bayt farkl kullanm amalarna
gre blmlendirilmitir. Bunlardan ilk 32 bayt yaza bankalar olarak adlandrlr. Bunun
hemen zerinde yer alan 16 bayt bit adreslenebilen blgedir. Geri kalan 80 bayt ise genel
kullanma ak blgedir.
30 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar
Bu blgelerin kullanm kat kurallara bal deildir, ayrlan grevde kullanmak
programcya kolaylk salar. Yaza bankasn kullanmak veya kullanmamak
programcya braklmtr. Reset sonras bank 0 olarak adlandrlan yaza gurubu
etkin olur. Programc semek istedii yaza bankas numarasn yazarak etkin yaza
bankasn deitirebilir. Kullanlmayan yaza bankasn genel amal RAM bellek
olarak kullanlabilir. Bit adresli blgenin bit adresleri 00hden balayarak 7Fhye
kadar devam eder. Bu adresler bayt adreslere benzer fakat bit adreslemenin
kullanld komut ile bayt adreslemenin kullanld komutlar fakl olduu iin
herhangi bir kargaaya sebep olmaz. ekil-2.8de alt 128 baytn kullanm alanlar
gsterilmitir.
st 128 Bayt
st 128 baytn adres aral 80h-FFh arasdr ve bu ksm sadece dolayl adresleme
kipi ile kullanlabilir. Bu ksm 8052 ve st serilerde yer alr. Bu bellek alan st
srmlerde gerek duyulan daha byk kapasiteli yna bir zm olarak
eklenmitir. MCS51 ailesi mikrodenetleyiciler ynn d veri belleinde
oluturulmasna izin vermez. Programc balangta ynn balang adresini 80H
ayarlayarak st 128 bayt yn olarak kullanabilir.
zel lev Yazalar
zel amal yazalar (SFR) ksmnn adres aral st 128 bayta olduu gibi 80H-FFH
araldr, ayn adresi iki birimin paylamas sebebiyle karkl engellemak iin
MCS51 ailesi mikrodenetleyiciler bu bellek alanna sadece dorudan adresleme kipi
ile eriime izin vermitir. zel ilev yazalar tmdevre zerinde yer alan evre
birimleri ile merkezi ilem biriminde yer almas gereken ana, yardmc ve denetleme
yazalarndan olumaktadr. evre birimlerine erimek iin bu yazalar kullanlr.
MCS51 ailesi mikrodenetleyicilerde sonraki srmleri dnlerek bu blge iin
128 baytlk yer ayrlmtr, fakat fiziksel olarak bunlarn ok az ilk srmlerinde
kullanlmtr. 8051de bu yazalarn says 21 adettir, 8052de ise 26 adettir. 8051
ierisine evre birimi eklendike zel lev Yazalarnn says artacaktr. ekil
2.10da AT89S52nin zel ilev yazalarnn yerleimi verilmitir. zel lev
Yazalarnn tmnn assemlerda kullanlan simgeleri vardr, assembly program
yazarken simgeler kullanlabilir.


MCS-51 Ailesi Mikrodenetleyiciler 31
Mikrodenetleyiciler 8051 Uygulamalar
7F
Genel Kullanm
Amal RAM

B
A
N
K

3

1F R7
1E R6
1D R5
1C R4
1B R3
1A R2
19 R1
30 18 R0
2F 7F 7E 7D 7C 7B 7A 79 78
B

T

A
D
R
E
S
L
E
N
E
B

R

B

L
G
E

B
A
N
K

2

17 R7
2E 77 76 75 74 73 72 71 70 16 R6
2D 6F 6E 6D 6C 6B 6A 69 68 15 R5
2C 67 66 65 64 63 62 61 60 14 R4
2B 5F 5E 5D 5C 5B 5A 59 58 13 R3
2A 57 56 55 54 53 52 51 50 12 R2
29 4F 4E 4D 4C 4B 4A 49 48 11 R1
28 47 46 45 44 43 42 41 40 10 R0
27 3F 3E 3D 3C 3B 3A 39 38
B
A
N
K

1

0F R7
26 37 36 35 34 33 32 31 30 0E R6
25 2F 2E 2D 2C 2B 2A 29 28 0D R5
24 27 26 25 24 23 22 21 20 0C R4
23 1F 1E 1D 1C 1B 1A 19 18 0B R3
22 17 16 15 14 13 12 11 10 0A R2
21 0F 0E 0D 0C 0B 0A 09 08 09 R1
20 07 06 05 04 03 02 01 00 08 R0
1F
Bank 3

B
A
N
K

0

07 R7
18 06 R6
17
Bank 2
05 R5
10 04 R4
0F
Bank 1
03 R3
08 02 R2
07
Bank 0
01 R1
00 00 R0
ekil2.8 Alt 128 bayt RAMin kullanm alanlar.
32 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar
F8 FF
F0 B F7
E8 EF
E0 ACC E7
D8 DF
D0 PSW D7
C8 T2CON RCAP2L RCAP2H TL2 TH2 CF
C0 C7
B8 IP BF
B0 P3 B7
A8 IE AF
A0 P2 A7
98 SCON SBUF 9F
90 P1 97
88 TCON TMOD TL0 TL1 TH0 TH1 8F
80 P0 SP DPL DPH PCON 87
ekil2.9 SFR yazalarnn bellek alanna yerleimi.
zel amal yazalarn isimleri ve SFR blgesine yerleimleri ekil2.9da
gsterilmitir. izelge2.4te ise bu yazalarn reset sonras aldklar deerler
belirtilmitir. Akmlatr ve durum yazac da bu blgede yer alr ve birer adresleri
vardr. imdi bu yazalar daha yakndan tanyalm.
Akmlatr
Ksaca A veya Acc olarak adlandrlan bu yaza aritmetik ve mantk ilemlerde ana
yaza olarak kullanlr. D veri belleinden veri al verii ve program belleinden
veri okuma ilemleri de sadece bu yazatan yaplabilir. SFR blgesinde 0E0H
adresinde yer alr, bit adreslenebilir. Kullanld birok komutta adresi op-kod
ierisinde yer aldndan ayrca adres yazlmaz. Eer adresi op-kod ierisinde
olmayan bir komut kullanlyorsa assembler programna bildirmek iin A yerine Acc
ksaltmas kullanlmaldr.

MCS-51 Ailesi Mikrodenetleyiciler 33
Mikrodenetleyiciler 8051 Uygulamalar
ADRES SMGE YAZA ADI RESET
080H P0 Paralel G/ Kaps 0 FFH
081H SP Yn Gsterici 07H
082H DPH Yksek deerli Bayt 00H
083H DPL Dk deerli Bayt 00H
087H PCON G Denetim (HMOS) 0XXXXXXXB
PCON G Denetim (CHMOS) 0XXX0000B
088H TCON Z/S Denetim 00H
089H TMOD Z/S Mod Denetim 00H
08AH TL0 Zamanlayc/Sayc 0 DDB 00H
08BH TL1 Zamanlayc/Sayc 1 DD 00H
08CH TH0 Zamanlayc/Sayc 0 YDB 00H
08DH TH1 Zamanlayc/Sayc 1 YDB 00H
090H P1 G/ portu 1 FFH
098H SCON Seri Kap Denetim 00H
099H SBUF Seri Kap Tampon 00H
0A0H P2 G/ portu 2 FFH
0A8H IE Kesme zin 0X000000B
0B0H P3 G/ portu 3 FFH
0B8H IP Kesme ncelik XXX00000B
0C8H T2CON Z/S 2 Denetim yazac 00H
0CAH RCAP2L Z/S 2 Yakalama YDB 00H
0CBH RCAP2H Z/S 2 Yakalama DDB 00H
0CCH TL2 Zamanlayc/Sayc 2 DDB 00H
0CDH TH2 Zamanlayc/Sayc 2 YDB 00H
0D0H PSW Durum yazac 00H
0E0H ACC Akmlatr 00H
0F0H B B Yazac 00H
izelge2.4 zel amal yazalarn isimleri, adresleri ve reset ile ald deerler.

34 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar
B Yazac
B yazac veya baka syleyi ile B akmlatr 0F0H adresinde yer alr, arpma ve
blme ilemlerinde yardmc akmlatr olarak kullanlr. MUL AB komutu A
akmlatr ile B akmlatrnn ieriklerini arparak 16 bitlik sonucun dk
deerli ksmn A akmlatrne, yksek deerli ksmn B akmlatrne yazar. DIV
AB komutu, A akmlatrnn ieriini (blnen) B akmlatrnn ieriine
(blen) bler. Blm A akmlatrne, kalan ise B akmlatrne yazar. Ayrca B
akmlatr A akmlatr gibi bit adreslenebilir, zel grevleri dnda genel
amal yardmc yaza olarak kullanlabilir.
Durum Yazac
Durum yazac ilemcinin yapt en son ilem hakknda bilgiler ierir. Bo kalan
bitleri denetim amacyla kullanlmtr. Bu yazaca hem durum gstermesi hem de
denetim ditleri iermesi nedeniyle durum/denetim yazac ad da verilir. D0h
adresinde yer alan durum yazacnn her bitinin grevi izelge2.5te gsterildii gibi
farkldr. imdi bu grevlerini yakndan tanyalm.
7 0
PSW CY AC F0 RS1 RS0 OV - P

BT SEMBOL BT ADRES AIKLAMA
PSW.7 CY D7H Elde bayra
PSW.6 AC D6H Yardmc elde bayra
PSW.5 F0 D5H Bayrak 0
PSW.4 RS1 D4H Bank seme biti
PSW.3 RS0 D3H Bank seme biti
PSW.2 OV D2H Tama bayra
PSW.1 --- D1H Rezerve
PSW.0 P D0H ift elik bayra
izelge2.5 Durum yazacnn ierii (PSW) ierii.
Elde bayra (C veya CY)
Elde bayra aritmetik ilemlerde kullanlr. Toplama ileminde eer toplanan
saylarn en yksek deerli bitlerinden bir elde oluur ise elde bayra kurulur.
karma ileminde ise karlan daha byk ise elde bayra kurulur. Elde bayra
MCS-51 Ailesi Mikrodenetleyiciler 35
Mikrodenetleyiciler 8051 Uygulamalar
ayrca boolean akmlatrdr. Bir bitlik ilemlere birinci ilenen elde bayranda
bulunmak zorunda ve ayrca sonuta elde bayrana yazlr.
Yardmc Elde Bayra (AC)
Yardmc elde bayra KO saylarn toplanmasnda nc bitlerin toplamndan elde
olumas durumunda veya sonucun dk deerli nible 0Ah-0Fh aralnda ise
kurulur.
Yaza Bank Seme Bitleri
Bank seme bitleri (RS0, RS1) etkin yaza bankasn belirler. Reset iareti ile bu iki bit
temizlenir ve bylece bank 0 balang olarak seilir. Dier banklarn etkin
yaplabilmesi iin yazlm ile bu bitlerin ayarlanmas gerekir. izelge2.6da
banklarn seimleri iin RS0 ve RS1 bitlerinin deerleri verilmitir.
RS1 RS0 SELEN BANK
0 0 BANK 0 (Reset ile seilir)
0 1 BANK 1
1 0 BANK 2
1 1 BANK 3
izelge2.6 Bank seme bitleri ve seilen yaza bankas.
Bayrak 0
Bayrak 0 genel amal bayraktr, herhangi bir zel grevi yoktur programc kendi
istedii grevi bu bite verebilir.
Tama Bayra
Tama bayra (OV) toplama veya karma ilemi sonras eer aritmetik tama varsa
kurulur. Yazlm bu bite bakarak sonu hakknda gerekli dzenlemeyi yapar. Bu bit iaretli
saylar ile aritmetik ilemler yapldnda kullanlr. aretsiz saylarla aritmetikte bu bayrak
ihmal edilir. Toplama sonucu +127den byk veya 128den kk ise bu bit kurulur.
Elik Biti
Elik biti her makine sayklnda otomatik olarak akmlatrdeki ift elii denetler,
eer birlerin says tek ise bu bit kurulur. Akmlatr ile bu bitin durumu srekli ift
elik oluturur. Baka bir syleyile akmlatrn ierisindeki birlerin says tek
olduunda kurulur ve akmlatr ve bu bitin ieriindeki bir saysn ift hale getirir.
Elik biti iletiim sistemlerinde hata denetlemek amac ile kullanlr.
36 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar
Port Yazalar
8051in portlarna SFR blgesinde yer alan yazalar kullanlarak eriilebilir.
portlarn yaplarnda kk farkllklar vardr. Bu farkllklar portlar okuma ve yazma
ileminde herhangi bir farkllk yaratmaz. Yaplarnn farkl olmasnn nedeni birok
port hattnn giri k ileminin dnda ikincil grevleri vardr. Port yazalar 80h,
90h, A0h, B0h adreslerinde yer alr. Eer d bellek kullanlyor ise port 0, 2 ve 3
genel amal giri/k hatt olarak kullanlamaz. Tm portlar bit adreslenebilir, bu
zellik denetim uygulamalarnda programcya kolaylk salayacaktr. Her hatt farkl
bir motor veya rle balanarak ok sayda deiken a-kapa denetimi yaplabilir.
PORT 0
Port 0n ikincil grevi d bellek kullanldnda zaman paylaml adres yolu dk
deerli bayt ve veri yolu olmasdr. Port 0n i yksee ekme direnleri veri/adres
yolu olarak kullanlmas dnda yoktur. Balanlan cihaza gre bu porta dardan
yksee ekme direnleri balanmaldr.

ekil- 2.10 Port 0n i yaps.

ekil2.10da port 0n iyaps verilmitir. Hatta balanacak R direncinin deeri
kullanlan 8051in veri yapraklarndan elde edilecek port hatlarnn sink akmna ve
bu hatta balanacak ykn deerine gre seilmelidir. Port 0n bir hattna veri
yazmak iin tutucu kna istenilen veri yazlr. Tutucu kta bulunan MOSFETi
srerek yazmak istediimiz veriyi hat kna ulatrr. Giri olarak kullanmak
istediimizde nce ka 1 yazlr ve ktaki MOSFETin yaltma gemesini
salarz ve daha sonra girii okuyan komut ile giriin seviyesi 8051 yazana
MCS-51 Ailesi Mikrodenetleyiciler 37
Mikrodenetleyiciler 8051 Uygulamalar
aktarlr. 8051 portlarn giri ve k olarak kullanlrken ynlendirme ilemi
yaplmaz. Bir anlamda otomatik giri k seimi yaplr diyebiliriz. Giri ilemi
ncesi 1 yazlmasnn nedeni nceki ilemden 0 yazl kalrsa port hatt giriine 1
uygulansada 0 uygulansa da her zaman MOSFET iletimde olaca iin srekli 0
okunur. 8051in giri k hatlar ynlendirme yaplan mikrodenetleyici giri k
hatlar ile karlatrldnda zayf bir yapya sahiptir ar akm ve gerilimlere kar
korumasz olduu iin kolay zarar grr. Gl k akmn gerek olduu
uygulamalarda transistr veya mantk geitleri kullanlarak akm olarak k hattar
glendirilmelidir.
PORT 1
Port 1 i yksee ekme direnleri olan 8 adet ift ynl alabilen Giri/k
hattndan oluur. Port 1in her bir hatt 4 adet LS ailesi TTL geidi srebilecek
kaynak/ase kapasiteye sahiptir. 8051de port 1in ikincil bir grevi yoktur, fakat
8052de zamanlayc 2nin girileri iin P1.0a sayc tetikleme, P1.1e ise
yakalama/yeniden ykleme ilemi tetikleme girii grevleri verilmitir. Seri
programlama yaplabilen 8052nin yeni srmlerinde P1.5e MOSI, P1.6ya MOSO
ve P1.7ye SCK grevleri verilmitir. Port 1in ikincil grevleri ve bit adresleri izelge
2.7de verilmitir. Port 1, 2 ve 3n i yaplar ayndr ve ekil-2.11de gsterilmitir.
PORT 2
Port 2 i yksee ekme direnleri olan 8 adet ift ynl alabilen Giri/k
hattndan oluur. Port 2nin her bir hatt 4 adet LS ailesi TTL geidi srebilecek
kaynak/ase kapasiteye sahiptir. port 2nin ikincil grevi d bellek kullanmnda
adresin yksek deerli 8 bitini tamasdr. D bellek kullanlmadnda veya 256
bayt kullanldnda yksek deerli adrese gereksinim olmayacaktr ve bu hatlar
serbest I/O hatt olarak kullanlabilirler.
PORT 3
Port 3 i yksee ekme direnleri olan 8 adet ift ynl alabilen Giri/k
hattndan oluur. Port 3in her bir hatt 4 adet LS ailesi TTL geidi srebilecek
kaynak/ase kapasiteye sahiptir. Port 3n her hattnn farkl bir ikincil grevi vardr,
ikincil grevleri ve adresleri her hat iin izelge2.7de verilmitir. zel
grevlendirildii birim kullanlmad durumlarda bu hatlar serbest giri/k (I/O)
hatt olarak kullanlabilir.
38 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar

ekil2.11 Port 1,2 ve 3n iyaps.
BT SM BT ADRES LEV
P3.0 RXD B0H Seri kanal veri girii
P3.1 TXD B1H Seri kanal veri k
P3.2 INT0 B2H D kesme 0 girii
P3.3 INT1 B3H D kesme 1 girii
P3.4 TO B4H Zamanlayc/sayc 0 d girii
P3.5 T1 B5H Zamanlayc/sayc 1 d girii
P3.6 WR B6H D bellee yazma iaret k
P3.7 RD B7H D bellekten okuma iaret k
P1.0
4
T2 90H Zamanlayc/sayc 2 d girii
P1.1 T2EX 91H Zamanlayc 2 yakalama/yenidenykleme
P1.5
5
MOSI 95H Seri programlama giri
P1.6 MISO 96H Seri programlama k
P1.7 SCK 97H Seri programlama saat
izelge2.7 PORT 3 ve PORT 1in ikincil grevleri.

4
8052de vardr.
5
AT89S52de vardr.
MCS-51 Ailesi Mikrodenetleyiciler 39
Mikrodenetleyiciler 8051 Uygulamalar
Port 3 dier portlara gre daha gl k hatlarna sahip olduu iin ikincil
grevleri olmad durumlarda tasarmda bu porta ncelik verilmelidir. Port 0da
olduu gibi bu portta da giri olarak kullanlmadan nce mutlaka ka 1
yazlmaldr. zellikle kesme ve zamanlayc girilerinde bu kurala kesinlikle
uyulmaldr.
Veri Gsterici
Veri gsterici yaza (DPTR) d veri veya program belleine ulamak iin kullanlan
16 bitlik bir yazatr. 82H ve 83H adreslerinde yer alr, 8 bitine veya bir defada 16
bitine ulaabilen komutlar vardr. Bu yazaca bir defada 16 bit say yklenebilir veya
ierii arttrlabilir ya da azaltlabilir. Yeni trev 8051lerde ikinci bir DPTR1 yazac
eklenmitir alma ekli benzerdir.
Yn aretleyici
Yn iaretleyici 81H adresinde yer alan 8 bit bir yazatr. Yna en son atlan
verinin adresini gsterir. Yna veri atma ileminde nce yn iaretleyicinin ierii
bir arttrlr ve bilgi yna atlr. Yndan bilgi ekmede ise nce bilgi akmlatre
alnr ve sonra ierik bir azaltlr. 8051de yn alt 128 baytlk i RAM ile snrldr
8052de ise i RAM bellein tamam (256 bayt) yn olarak kullanlabilir. Reset
sonras yn iaretleyici 07H adresine ayarlanr. Bu demektir ki bank 0 dndaki
banklar ve bit adreslenen blge yn olarak kullanlaca iin zel grevlerinde
kullanlamayacaklardr.
Zamanlayc Yazalar
8051 iki adet 16 bit zamanlayc/saycya sahiptir. Zamanlayc 0 ve 1in alma kipi
seme ilemleri iin TMOD denetim ve durum gsterme ilemleri iin TCON yazalar
grevlendirilmitir. Bu iki yaza 8 bitliktir ve her bitine ayr grev verilmitir.
Zamanlayc/Sayc 0 ve 16 bit bir saycdr. 8051in SFR yaza yaps ise 8 bitlik
olduu iin Zamanlayc/Sayc 0 TL0 ve TH0 olarak adlandrlm iki 8 bit yazacn
birleiminden oluur. Zamanlayc/Sayc 1 ise TL1 ve TH1 olarak adlandrlm iki 8
bit yazacn birleiminden oluur.
8052ye Zamanlayc/Sayc 2 olarak adlandrlan nc 16 bitlik bir
Zamanlayc/Sayc eklenmitir. Bu zamanlaycnn alma kipi seme bitleri, T2MOD
yazacnda denetim bitleri ve durum bitleri ise T2CON yazacnda yer alr.
Zamanlayc/Sayc 2 8er bitlik T2H ve T2L yazalarndan oluur. Zamanlayc/Sayc
2 dier zamanlayc/sayclardan farkl olarak 16 bit yeniden ykleme ve yakalama
alma kiplerinde kullanmak zere RCAP2L RCAP2H yazalarna sahiptir. izelge-
40 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar
2.8de 8052nin zamanlayclarn yazalarnn isimleri, simgeleri, grevleri ve
adresleri gsterilmitir.
Adres SM LEV
88H TCON Zamanlayc 0 ve 1 denetim
89H TMOD Zamanlayc 0 ve 1 kip seme
8AH TL0 Zamanlayc 0 DDB
8BH TL1 Zamanlayc 1 DDB
8CH TH0 Zamanlayc 0 YDB
8DH TH1 Zamanlayc 1 YDB
0C8H T2CON Zamanlayc 2 denetim
0C9H T2MOD Zamanlayc 2 kip seme
0CAH RCAP2L Zamanlayc 2 yenidenykleme/yakalama DDB
0CBH RCAP2H Zamanlayc 2 yenidenykleme/yakalama YDB
0CCH TL2 Zamanlayc 0 DDB
0CDH TH2 Zamanlayc 1 YDB
izelge2.8 8052nin zamanlayc yazalar.
Seri Port Yazalar
8051 tmdevre zerinde seri iletiim yapan cihazlarla iletiim kurmak amac ile seri porta
(UART) sahiptir. Seri port tampon yazac (SBUF) 99h adresinde yer alr. Gnderilecek olan
veriyi veya gelen veriyi ierir. alma kipi ve ilem sonular ise seri port denetim yazac
(SCON) tarafndan yaplr. Yeni trev 8051 yelerinde ikinci bir UART1 birimi, SPI haberleme
birimi ve I
2
C seri haberleme birimleri eklenmitir ve bu birimleri kullanmak ve denetlemek
iin yeni yazalar eklenmitir.
Kesme Yazalar
8051 iki nceliklime dzeyi olan 5 adet kesme kaynana sahiptir. Sistem
resetlendiinde kesmeler etkisiz hale getirilir, yazlm ile kullanlacak kesmeler
kesme izinleme (IE) yazac ile genel ve bireysel olarak etkin hale getirilebilir. Kesme
kaynaklarnn alglanmas srasnda oluacak kargaann engellenmesi iin kesme
ncelik sralama yazac (IP) yerletirilmitir. 8052de zamanlayc 2 kesmesi en dk
ncelii sahip olarak kesme kaynaklarna eklenmitir.

MCS-51 Ailesi Mikrodenetleyiciler 41
Mikrodenetleyiciler 8051 Uygulamalar
G Denetim Yazac
G denetim yazacnn grevi mikroilemcinin g tketimini azaltmaktr.
Mikroilemcinin normal almas drasnda g azaltlmas mmkn deildir. Fakat
ilemini bitiren ve yeni bir i bekleyen mikroilemci uyku moduna geerek g
tketimini azaltabilir. G denetim yazac (PCON) ierisine bu amaca hizmet
etmeyen baka birimlerin denetim bitleri de yerletirilmitir, isimleri ve grevleri
izelge2.9da gsterilmitir. SMOD biti seri kanaln iletim hzn ikiye katlar. 4, 5, 6
nolu bitler kullanlmamtr. G denetim bitleri IDL ve PD sadece CMOS
tmdevrelerde kullanlmaktadr.
BIT SMGE AIKLAMA
7 SMOD
Seri port mod 1, 2 veya 3 modlarnda alrken iletiim
hzn iki katna karr.
6 --- Kullanlmam
5 --- Kullanlmam
4 --- Kullanlmam
3 GF1 Genel kullanma ak bayrak
2 GF0 Genel kullanma ak bayrak
1
*
PD
MBni Ksk gte alma kipine sokar sadece reset ile
kar.
0
*
IDL MBi aylak alma kipine sokar reset veya kesme ile kar.
*sadece CMOS srmlerinde vardr.
izelge2.9 PCON yazacnn ierii.
Aylak alma Kipi
IDL bitini kuran komut iletilen son komut olacaktr. nk bu bit kurulduunda
MBnin saat iareti kapatlr, MB en son halini korur. Seri portu ve zamanlayclarn
almasn etkilemez. Portlarn mantk seviyeleri son durumlarn korur. ALE ve
PSEN iaretleri yksek seviyede kalrlar. IDL moddan ancak kesme veya sistem reseti
ile klabilir.
Ksk Gte alma Kipi
PD bitini kuran komut en son iletilen komut olur. PD biti kurulduktan sonra
ilemcinin saati kapatlr. Reset ile ancak ksk g almadan klabilir. Tm
42 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar
ilemler sayclar ve seri port da olmak zere durdurulur, portlar ve yazalar en son
halini korurlar. ALE ve PSEN dk seviyede kalrlar.
Program Bellei
MCS51 ailesi mikrodentleyiciler program bellei olarak tmdevre zerinde yer alan
ROM, EPROM, FLASH bellek trleri kullanlr. zerinde bellek bulunmayan yelerine
EA baca aseye balanarak dardan kalc tr program bellei balanabilir.
Gnmzde retilen MCS51 yelerinin hepsi yeteri kadar i program belleine
sahiptir, yeterli olmadnda d bellek balamak yerine daha yksek bellei olan bir
rn seilmektedir. 8051 i ve d olmak zere 65536 satr program belleini
adresleyebilir. Baz reticiler kendilerine zg yntemle program belleini
kapasitesini 512 Kbayta kadar arttrmlardr. Baz reticiler ise program belleiinin
bir ksmn veri saklamak zere alrken programlanmasna olanak salamlardr.
MCS51 ailesi mikrodentleyiciler program belleinden okuma yaparken PSEN
hattn etkin yapar. Adres yolu olarak P0 ve P2yi veri yolu olarakta yine P0 kullanr.
P0n adres ve veri yolu olarak zaman paylaml kullanmn ALE iareti salar.
D Bellek Kullanm
Mikrodenetleyicilerin sadece ierisinde bulunan birimleri ile devre tasarlamak
kullanm alanlarn kstlar. zellikle i bellein kullanm baz uygulamalarda
yetersiz kalabilir. Mikrodenetleyici reticileri devre tasarmclarn daha fazla olanak
sunmak iin i bellein yan sra dardan hem program bellei hem veri bellei
balantsnn yaplmas iin mikrodenetleyici zerinde gerekli dzenlemeleri
yapmlardr. MCS51 ailesi mikrodenetleyiciler de 64 K d program ve veri bellei
adres alanna sahiptir. bellein yetersiz kald uygulamalarda dardan 64
Kbayta kadar program bellei, 64 Kbayt veri bellei eklenebilir. Ayrca evre
arabirimi (Peripheral interface) d bellek alanna eklenebilir. D bellek
kullanldnda Port 0 giri/k ilemleri iin kullanlamaz. Bu port zaman paylaml
adresin dk deerli bayt (A0-A7) ve veri yolu (D0-D7) olarak kullanlr. D bellek
ilem sayklnn birinci yarsnda ALE iareti ile adresin dk deerli bayt tutucu
klarnda tutulur. kinci yarda veri yolu olarak kullanlr. Port 2 ise kullanldnda
adresin yksek deerli bayt olarak grevlendirilir. Kullanlan d bellek 256 baytn
altnda ise adres iin 8 bit yeterli olduundan port 2 giri k ilemleri iin
kullanlabilir. Zaman paylaml ayn portun adres ve veri yolu iin kullanlmas
MCS-51 Ailesi Mikrodenetleyiciler 43
Mikrodenetleyiciler 8051 Uygulamalar
adres ve veri yolu iin kullanlacak hat saysn azaltr. Zaman paylaml
kullanlmayan ilemcilerde 24 bacak bu ilem iin kullanlrken zaman paylaml
kullanan sistemlerde 16 bacak kullanlr. Dier bacaklar farkl ilevler iin
kullanlabilir. Bu tr ilemcilerin DIP 40 soketinde retildiini dnrsek 8 hat
olduka deerlidir. ekil2.12de zaman paylaml ve paylamsz sistemlerin
zamanlama diyagramlar verilmitir. Zaman paylaml almada ilem sayklnn
birinci yarsnda port 0 k olarak ynlendirilir ve adresin dk deerli bayt yazlr.
ALE iareti etkin yaplarak 74HHC373 veya edeer tutucuda tutulur. Port 2ye ise
adresin yksek deerli bayt yazlr. kinci yarda port 2nin ierii deimez fakat
port 0, okuma ilemi yaplyor ise giri yaplr ve veri okunur. Yazma ilemi ise k
yaplr ve veri yazlr. kinci yarda ALE iareti etkin olmaz fakat program belleinden
ilem yaplyorsa PSEN, veri belleinden ilem yaplyor ise WR veya RD iaretleri
etkin yaplr.

ekil2.12 Zaman paylamsz adres ve veri yolunun zamanlama diyagram.

ekil2.13 Zaman paylaml adres ve veri yolunun zamanlama diyagram.

A0-A15
A8-A15
D0-D7
ADRES
VER
BELLEK SAYKILI
ADRES
1
6

H
A
T

BELLEK SAYKILI
D0-D7
2
4

H
A
T

VER ADRES
44 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar
D Program Bellei
D program bellei PSEN iareti ile etkin olan sadece okunabilir tr bellektir. D EPROM
kullanldnda port 0 ve port 2 genel amal Giri/k hatt olarak kullanlamaz. Bu tr
bellein 8051e balants ekil2.14te gsterilmitir. 8051in bir makine saykl 12 osilatr
periyodundan oluur. 12 MHzlik kristal kullanldnda bir makine saykl 1 Sdir. Bir makine
saykl sresince ALE iareti iki defa etkin olur ve d program belleinden iki bayt okunur.
Eer okunan komut tek baytlk ise ikinci bayt atlr. Bu ilemin zamanlama diyagram ekil
2.15de gsterilmitir.

ekil2.14 D program bellei balants.

ekil2.15 D program belleinden okuma.
Port 0
P1
74HC373
P2
8051
S1
EA
P1
ALE
P2
PORT 2
S2
PSEN
P1
D
P2
Q
S3
G
P1
D0-D7
P2
A0-A7
S4
A8-A15
P1
EPROM
P2
OE
S5
P1 P2
S6
P1 P2
S1
P1 P2
S2
Makine saykl
Opkod
PCL
BAYT 2
PCH PCH
OSC.
ALE
Port 2
Port 0
PSEN
PCL PCL
MCS-51 Ailesi Mikrodenetleyiciler 45
Mikrodenetleyiciler 8051 Uygulamalar
D Veri Bellei
D veri bellei RD ve WR iaretleri ile etkinletirilen oku/yaz tr belleklerdir. RD ve
WR iaretleri P3.7 ve P3.6 hatlarndan MOVX komutu ile retilirler. MOVX
komutunda adres gsterici olarak DPTR kullanldnda d veri belleinin adres hatt
16 olur, R0 veya R1 yazalarndan biri kullanldnda adres hatt 8 bittir. D veri
bellei olarak 256 baytlk bellek kapasitesi yeterli ise ikinci seenek kullanlr.
ekil2.16da gsterildii gibi veri bellei balants adresin dk deerli ksm ile
veri yolu balants EPROMda olduu gibidir. Farkl ksm ise RD iaretinin RAM
bellein OE giriine ve WR iaretinin de W giriine balanmasdr. PSEN iareti d
veri bellei balantsnda kullanlmaz. Port 0 ve Port 2 kullanlarak 64 Kbayta kadar
d veri bellei balanabilir. rnek ekilde ise 1Kbaytlk RAM balants
gsterilmitir. P2 portunun bota kalan hatlar bilinli bir ekilde serbest G/ hatt
olarak kullanlabilir. 8051 bu hatlar bir yere balanmasa da MOVX A,@DPTR veya
MOVX @DPTR, A komutlar iletildiinde mantk seviyelerini deitirebilir.

MOVX A,@R0 veya MOVX @R0, A iletildiinde ise bu komutlarda sadece 8 bit
adres kullanlmas nedeniyle P2 portu etkilenmeyecektir. Bu yntemle eriilebilecek
bellek kapasitesi 256 bayttr. Daha byk kapasite gerekiyorsa P2 ya da dier bo
olan portlarn hatlar gerektii kadar RAM bellein A8, A9, A10 adres girilerine
balanr ve bu hatlarn mantk seviyeleri programc tarafndan okuma ve yazma
komutlar iletilmeden nce yaplr. Bu yntem 2 Kbayta kadar bellek balamak iin
ekil - 2.16 D veri bellei balants.

Port 0
74HC373
8051
EA
ALE
D Q
G
D0-D7
A0-A7
A8
RAM
A9
RD
WR
P2.0
P2.1
RD
WR
46 Blm 2
Mikrodenetleyiciler 8051 Uygulamalar
verimli olabilir, daha byk bellek balamak iin veri gsterici olarak DPTR kullanlr.
lem yaplacak veri belleinin adresi DPTR yazacna yklenir ve sonra okuma veya
yazma ilemi yaplr. ekil2.17de MOVX A, @DPTR komutunun ileme
zamanlamas verilmitir. Birinci makine sayklnda opkod program belleinden
okunaca iin ALE ve PSEN srasyla etkin olmutur. kinci makine sayklnda ilem
d veri belleinden yapld iin PSEN etkin deildir RD iareti etkindir. D veri
belleine yazma ilemi de okuma ile ayn olacaktr, tek fark ilemci tarafndan ikinci
makine sayklnda RD iareti yerine WR iareti etkin yaplacaktr.

S1 S2 S3
0
S4 S5 S6
Bir Makine saykl
ALE
PSEN
Port 2
Port 0
ekil2.17 MOVX komutunun zamanlama diyagram.
S1 S2 S3 S4 S5 S6
Bir Makine saykl
DPH PCH
PCL Opkod DPL
VER

RD
MCS-51 Ailesi Mikrodenetleyiciler 47
Mikrodenetleyiciler 8051 Uygulamalar
Sorular
1. MCS51 ailesi mikrodenetleyicilerin bellek yapsn aklayn?
2. RAMin ksmlarn ve her ksmn grevlerini aklayn?
3. SFR blgesinde yer alan yaza trlerini yazn?
4. MCS51 ailesi mikrodenetleyicilerde d program bellei ne zaman kullanlr?
5. Ksa ve uzun adres kullanan d veri bellek balantlar arasnda ne gibi
farkllklar vardr aklayn?
6. Osilatr frekans 24 Mhz olan 8051in makine saykln hesaplaynz.
7. 8051in P0n yapsn ve zel grevlerini ksaca aklaynz.
8. 8051in P3n yapsn ve zel grevlerini aklaynz.

Mikrodenetleyiciler 8051 Uygulamalar
MCS51 Ailesi
Mikrodenetleyicilerin
Komutlar


Giri
Mikroilemciyi yaptrmak istediimiz ilemleri onun anlayaca dilden kurallarna
gre bildirmemiz gerekir. Her mikroilemcinin temel ilemleri gerekleyen komut
kmesi vardr. Bu komutlar kurallarna gre birletirdiimizde program elde ederiz.
MCS51 ailesi ilemcilerin komut kmesi denetim uygulamalarna ynelik olarak
dzenlenmitir. Bu tr uygulamalarda 8 bit kelime uzunluu olan komutlarn yan
sra bir bitlik mantk ilemlerimi yapan komutlarda ska kullanlmaktadr. MB
ierisine yerletirilen boolean ilemcisi sayesinde 8051 bir bitlik mantk ilemlerini
yapabilmektedir. 8 bitlik komutlarn ou i veri bellei ve zel amal yazalarn
bulunduu alanda ilem yapar. Bunun yan sra program belleinden veri okuyan ve
50 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar
d veri belleinden veri okuyan ve yazan komutlarda yer almaktadr. Bu tr
komutlarn op-code (opkod)lar 8 bittir. 8 bit uzunluunda 2
8
=256 adet komut
yazlabilir. Bunlardan 255 tanesi kullanlm bir tanesi ise tanmlanmamtr. Baz
komutlar veri veya adres iin ikinci, nc bayta sahip olabilir. MCS51 ailesi
ilemcilerin komutlarndan 139 tanesi bir bayt uzunluunda iken 92 tanesi 2 bayt
uzunluunda ve 24 tanesi 3 bayt uzunluundadr. Ek-Ada tm komutlar ve
opkodlar verilmitir.
Adresleme Kipleri
Mikroilemciye istediimiz ilemi belirtmek iin kullandmz komuta ek olarak
ilemde kullanaca verinin adresini belirtmemiz gerekir. Verinin bulunduu bellee
gre adresin belirtme ekli farkldr. Adres belirme ekillerine komut adresleme
kipleri ad verilir. Adresleme kiplerini mikroilemci dilinin dilbilgisi kurallar olarak
tanmlayabiliriz. MCS51 ailesinin adresleme kiplerini 8 grupta zetleyebiliriz.
Dorudan adresleme
vedi adresleme
Yaza adresleme
Bal adresleme
Dolayl adresleme
Sral adresleme
Mutlak adresleme
Uzun adresleme
Dorudan Adresleme
Dorudan adreslemede ilem yaplacak bellein adresi komutla beraber yazlr. Bu
adresleme kipi ile i RAM blgesinde alt 128 ve SFR yazalar ksmlar adreslenebilir.
Opkodu izleyen ikinci bayt ilem yaplacak i RAM satrnn adresini ierir. Bu
adresleme kipinde tm komutlar iki bayt uzunluundadr. Birinci bayt ilem kodu
ikinci bayt adres oluturur. Dorudan adreslenen blgenin 0-7FH aralnda alt 128,
80H-FFH aralnda ise zel amal yazalar yer alr.

OPKOD DORUDAN ADRES
8051 Komut Kmesi 51
Mikrodenetleyiciler 8051 Uygulamalar

rnek:

MOV A,25H ;25H adresli i veri belleini akmlatre okur.
MOV P1, A ;Akmlatrn ieriini P1 portuna yazar.
Bu komutu makine diline dntrrsek;
10001001 birinci bayt (opkod)
10010000 ikinci bayt (P1in adresi).
vedi Adresleme
Programda gerekli sabitleri girmek iin ya da yazalarn ieriklerini istenilen deere
ayarlamak iin kullanlr. Komutlarn birinci baytlar opkod, ikinci baytlar veriyi
ierir. # iareti ivedi adreslemenin simgesidir.


MOV A, #12
Bu komut akmlatre 0CH saysn ykler. ki bayt uzunluundadr, birinci bayt
opkod ikinci bayt sabit deerdir. Bir komut dnda ivedi olarak girilebilecek deerin
uzunluu 8 bittir. Fakat bu kural DPTR yazac iin inenmitir. DPTR 16 bitlik
olduu iin veri yklemeyi kolaylatrmak amacyla 16 bit veri ykleyen komut 8051
komut kmesinde yer almtr.
MOV DPTR, #8000H
Bu komut 8000h saysn DPTRye ykler. 3 bayt uzunluundadr. Birinci bayt
opkoddan ikinci ve nc baytlar ise girilecek deerden oluur.
Akmulatr
VED VER
RAM
OPKOD
48h
47h
46h
Mov A, 47h
52 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar
MOV P1, #55H
Bu komutta birden fazla adresleme kipi kullanlmtr. Hedef adres dorudan,
kaynak adres ise ivedidir.
Makine diline dntrrsek 75h, 90h, 55h
Yaza Adresleme
Yaza bankalarnda yer alan R0,......,R7 yazalar baz komutlar tarafndan kullanlr.
Bu tr komutlar bir bayt uzunluundadr ve 3 biti yaza adresini tanmlar. Bu
adresleme kipinde adres bayt olmadndan program ierisinde yazldklarnda
daha az yer igal ederler. Opkod iin ayrlan bit says azald iin ilem says azalr.
Bu komutlar yaza bankalarndaki tm yazalarda kullanlr. Bildiiniz gibi banka
numaras PSW ierisindeki RS0 ve RS1 bayraklar ile belirlenir.

MOV A, R7 ;R7nin ieriini akmlatre ykle.
Bu komut etkin olan bankann 7 nolu yazacnn ieriini akmlatre ykler. Bir bayt
uzunluunda bir komuttur. Opcodu ise EFHdir. Baz komutlar sadece bir yazata
geerlidir. Bu tr komutlara yazaca zel komutlar ad verilir. lemin yaplaca yer
opkod ierisinde yer aldndan adres bilgisi iermezler. Genellikle bu buyruklar
akmlatr ilgilendiren buyruklar olmakla beraber dier yazaca zel buyruklar da
vardr.
CLR A ;Akmlatrn ieriini sfrlar.
Bu komut sadece akmlatrde geerlidir, bu nedenle baz kaynaklarda
akmlatre zel adresleme modu kullanr eklinde belirtilir.
Bal Adresleme
Bal adresleme dallanma komutlar ile kullanlr. Bal adres deeri veya baka
deyile kayklk (off-set) deeri 8 bit iaretli saydr. 128 ile +127 arasnda yer alr,
dallanma komutunun ilenmesi tamamlandnda program sayac bir sonraki
komutun adresini iermektedir. lem yaplacak adres ki bu adrese hedef adres ad
verilir, verilen kayklk deerinin program sayac ile toplanmasndan elde edilir. Eer
negatif kayklk verildi ise bu ilem bir karma olacaktr ve programn ak geri
ynde olacaktr.
OPK0D

n


8051 Komut Kmesi 53
Mikrodenetleyiciler 8051 Uygulamalar

Kayklk deerini hesaplamak zor olduu iin birok Assembler program etiket
kullanldnda kayklk deerlini bizim iin hesaplar. Bu adresleme kipinin arts
adresin komutun bulunduu yere bal olmamasdr. Eksisi ise etki alannn +127
satr ile -128 satrla snrl olmasdr. Aadaki formller kullanarak hedef adres belli
ise kayklk deeri, kayklk deeri belli ise hedef adres hesaplanabilir.
Bulunduu adres + Kayklk = Hedef adres
Veya;
Kayklk = Hedef adres - Bulunduu adres
Dolayl Adresleme
Bu adresleme kipinde komut veri gsterici olarak bir yazac kullanr. lem yaplacak
adres bilgisi veri gsterici olarak seilen yazaca daha nceden yklenir. Veri
gsterici olarak R0, R1, DPTR yazalar kullanlr.

8051 d veri belleine sadece dolayl adresleme kipi ile ulaabilir. D RAMin
boyutuna gre veri gsterici olarak seilen yaza deiir. Bellein boyutu byk ise
(256 bayttan daha byk) veri gsterici olarak DPTR yazac, 256 bayttan kk ise
R0 yazac seilir. bellekte st 128 baytta da sadece dolayl adresleme kipi ile
ulalabilir, veri gsterici olarak R0 ve R1 Yazalar kullanlr. Alt 128 baytlk ksma
dorudan ve dolayl adreslemenin her ikisi ile ulalabilir. Bu ksmda da R0 ve R1
yazalarnn her ikisi veri gsterici olarak kullanlabilir. Dolayl adreslemenin belirteci
@ simgesidir. Bu simge veri gsterici yazacn nne eklenir.
KAYIKLIK(OFF-SET)
OPKOD
OPKOD
i
54 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar

Mutlak Adresleme
Mutlak adresleme kipi sadece AJMP ve ACALL komutlar tarafndan kullanlr. Bu
adresleme kipinde hedef adresin 11 biti komut ierisinde belirtilir. 5 biti ise program
sayacn o anki ieriinden alnarak hedef adres elde edilir. Bu be bitin belirledii 2
Kbaytlk bir blgeye balanlabilir. Komutlar iki bayt uzunluundadr, birinci baytn
ilk be biti opkodu, son biti A10-A8 nolu adres bitleri oluturur. kinci bayt ise
adresin dk deerli bayt (A0-A7) oluturur.

Bal adreslemeden daha geni bir alana dallanabilmesi artsdr, fakat bu alan
adrese bamldr. Eksisi ise 2 Kbaytlk bir blgeye hem de adrese bal ekilde
dallanabilmesidir. Bu adresleme kipinde 5 bit sayfa adedini belirlediine gre 2
5
=32
adet sayfa seilebilir. 8051in 64 Kbayt program bellei olduuna gre her sayfann
boyutu 64/32den 2 Kbayt elde edilir. Hedef adresle kaynak adresin ilk be biti ayn
olduundan 2 Kbaytlk snrn dna dallanamaz. Sayfa snr sabittir, program
sayacnn ieriine gre deimez. ekil-3.1de sayfalarn blnmesi gsterilmitir.
Uuzun Adresleme
Uzun adresleme LJMP ve LCALL komutlarnda kullanlr. Komut 3 bayt uzunluunda
olur, birinci bayt opkod ikinci ve nc baytlar adres oluturur. Arts tm 64
Kbaytlk adres aralna dallanabilir. Eksisi ise dallanma noktasna bal olmasdr.
Program baka bir yere tandnda dallanma noktas deimediinden eski yerine
dallanma yapacaktr. Tamalarda mutlaka adres deitirilmelidir.
Mov A,@R0
OPKOD
Akmlatrr
A7-A0
R0
A10-A8
i RAM
55h
54h
53h
54h
8051 Komut Kmesi 55
Mikrodenetleyiciler 8051 Uygulamalar

ekil3.1 Mutlak adreslemede sayfa snrlar ve komut ierisindeki adres bitlerinin
grevleri.

Sral Adresleme
Sral adresleme ile sadece program belleinden okuma yaplabilir. Bu adres kipinin
kullanlma amac program belleinde yazl bavuru tablolarndan bilgi okumaktr.
16 bitlik temel adresi ieren yaza (DPTR veya program sayc olabilir) tablonun ilk
adresini gsterir, akmlatr ise tablonun ilem yaplacak satrnn numarasn
ierir. Akmlatrn ierii temel adrese eklenerek ilem yaplacak adres elde edilir.
Sral adreslemenin dier tipi de durum jump komutlarnda kullanlandr.
F7FF
OPKOD
F000
A15-A8

A7-A0

17FF
1000
0FFF
0800
07FF
0001
FFFF
F8001

32 x 2 = 64 K
2 Klk sayfa numarasn
belirler PC iinde yazldr.
2 Klk sayfa iindeki satr numarasn belirler
komut ierisinde programc tarafndan belirtilir
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0

56 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar

8051 Komut Kmesi
8051 komutlar yaptklar ilemlere gre 5 ana grupta incelenebilir. Bu ksmda ortak
zellikleri dikkate alnarak komutlar incelenecektir. EK-Ada tm komutlar alfabetik
sra ile ayrntl olarak incelenmitir. Ek-bde ise komutlar alfabetik sraya gre
ksaca aklanmtr.
Veri aktaran komutlar.
Aritmetik ilem yapan komutlar.
Mantk ilem yapan komutlar.
kilik ilem yapan komutlar.
Dallanma ve balanma komutlar.



Veri Aktarma Komutlar
Veri aktarma komutlar kaynakta yer alan veriyi hedefe kopyalarlar. Veri 8051de
bellek i RAM, D RAM ve program bellei olmak zere farkl ksma
blnmtr. Bu bellein veri, adres ve denetim yollarn kullanm ekilleri farkl
olduundan ayn ii yapan deiik veri aktarma komutu vardr. MOV komutu i
RAMde, MOVX d RAMde ve MOVC program belleinde veri aktarmak amac ile
kullanlr.

Veri Belleinde Veri Aktaran Komutlar
+
MOV
ACC
HEDEF
PC veya DPTR
KAYNAK
ETKN ADRES
=
8051 Komut Kmesi 57
Mikrodenetleyiciler 8051 Uygulamalar
Tablo3.1de i RAMde kullanlan veri aktarma buyruklar kullanldklar adres
modlar ve ilenme saykllar verilmitir. Kaynak ve hedef i RAMdeki herhangi bir
bellek satr olabilir. Birok mikroilemcide olan hedef veya kaynaktan bir tanesinin
akmlatr olmas art 8051de yoktur.

Komut

Yapt lem

D
o

r
.


D
o
l
a
y
l



Y
a
z
a

v
e
d
i

MOV A, <kaynak> A (Kaynak) X X X X
MOV <hedef>, A (Hedef) A X X X
MOV <hedef>, <kayna k> (Hedef) (Kaynak) X X X X
MOV DPTR,#VER 16 DPTR ye 16 bit sabit ykle X
PUSH <kaynak> (SP)+1 : ((SP)) kaynak X
POP <hedef> (Hedef) ((SP)) : (SP) - 1 X
XCH A, <bayt> A (bayt) X X X
XCHD A, @Ri A ve @Ri DDNlarn yer deitirir. X
izelge3.1 RAM de kullanlan veri aktarma buyruklar
8051de yn i RAMde yer alr ve dolayl adreslenen yksek deerli RAM blgesine
doru geniletilebilir. PUSH komutu nce yn gsterge yazacnn ieriini bir
arttrr ve sonra bellein ieriini yna kopyalar. POP komutu ise nce ynn en
stndeki veriyi alr ve dorudan adresle belirtilen bellee yazar, sonra yn
gsterge yazacn bir azaltr. Yksek deerli 128 baytlk RAM blgesi 8051de yoktur,
Eer yn gsterge yazac bu blgede bir adresi gsteriyorken yna veri atlrsa bu
veri kaybolur, veri ekilirse rasgele veridir. DPTR yazacnn ierii bir defada 16 bit
ivedi adresleme ile istenilen deere kurulabilir. XCH A, <bayt> komutu akmlatr
ile bellek satrnn ieriini karlkl yer deitirecektir. XCHD A, @ Ri komutu da yer
deitirme yapar fakat yalnzca dk deerli nibllarn (drtl) yerlerini deitirir.
Aktarma ileminin yaplaca ilenenlerden birisi (hedef veya kaynak) akmlatr
(A) ya da yaza (Rn) ise komut iki bayt srer. kinci bayt dier ilenenin dorudan
adresidir.
rnek 1:
MOV R2, 25H ;25H nolu bellein ieriini R2 yazacna aktar.
MOV 32H, R2 ;R2 yazacnn ierii 32H nolu bellee aktar.

58 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar
rnek 2:
MOV A, 32H ;32H nolu bellein ieriini Akmlatre ykle.
MOV 65H, A ;Akmlatrn ieriini 65H nolu bellee yaz.

Dorudan adreslenen bir bellek gzne dorudan veri deeri aktarabilmek iin
gerekli komut bayt srmektedir. Bellekten bellee aktarma yapan komutlar da
bayt uzunluktadr. nk hem hedef, hem de kaynak dorudan adreslenmektedir.
rnek 3:
MOV 25H, #55H ;25H adresli bellee 55H says yklenir.
rnek 4:
MOV 25H, 55H ;55H adresli bellein ierii 25H adresli bellee kopyalanr.

Paralel G/ kaplar (P0,P1,P2,P3) tmdevre zerindeki zel ilev yazalar
haritasnda yer almaktadrlar ve dolaysyla adreslenebilirler. Bir ok komut gibi veri
aktarma komutlar da paralel G/ kaplar zerinde dorudan lem
yapabilmektedir.
rnek 5:
P2'den 3 deer okuyunuz ve nce bellekte saklayp sonra P1'den giri srasnn tersi
srayla yazn.
BALA:
MOV 30H, P2 ;birinci deeri oku, bellekte sakla.
MOV 31H, P2 ;birinci deeri oku, bellekte sakla.
MOV 32H, P2 ;birinci deeri oku, bellekte sakla.
MOV P1, 32H ;ters srada P1e yaz.
MOV P1, 31H ;ters srada P1e yaz.
MOV P1, 30H ;ters srada P1e yaz.

rnek 6:
P1 portundan okunan veriyi 3 makine saykl geciktirip P3 portuna yazan program
yazn.

8051 Komut Kmesi 59
Mikrodenetleyiciler 8051 Uygulamalar
MOV A, P1 ;P1i oku
NOP ;1 makine saykl bekle
NOP ;1 makine saykl bekle
NOP ;1 makine saykl bekle
MOV P3 ;P3e yaz.

Komut yrtldnde P1 portunun ierii akmlatre alnr. 3 makine saykl
bekletmek iin adet NOP komutu kullanlr. Bu srenin sonunda akmlatrn
ierii P3 portuna yazlr.

rnek 7:
Aadaki komut ne yapar?
MOV DPTR, #4565h ;DPTR=4565H
Komut iletildiinde 4565h says DPTRye yklenir. DPH=45h ve DPL=65h olur.

rnek 8:
Yn iaretleyici 45h gstermektedir. RAMde 045h adresli bellek satr 34h, 044h
adresli satr bellek 77h, 43h adresli satr bellek ise 25h iermektedir. Aadaki
komutlar iletildiinde DPTRnin ierii ne olur?
POP DPH ;Ynn en st satrn DPHa aktar
POP DPL ;Ynn en st satrn DPHa aktar
POP SP ;Ynn en st satrn DPHa aktar
Komutlar yrtldkten sonra DPTR=3477h ayarlanacaktr. Yn iaretleyicinin
ierii ise 25h olacaktr.

D Veri Belleinde Veri Aktaran Komutlar
izelge-3.2 de d veri belleinde kullanlan komutlarn listesi verilmitir. Tm
komutlar dolayl adresleme kipindealr. D veri belleinden sadece okuma ve
yazma ilemleri yaplabilir. Dolayl adreslemede adres belirteci olarak R0 ve R1
yazalar ile DPTR yazac kullanlr. 256 baytlk RAM bellein yeterli olduu
uygulamalarda sadece P0 portunun adres yolu olarak kullanlmasn olanak
60 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar
salamak amacyla 8 bit adres kullanan MOVX komutuna 8051 komut kmesinde
yer verilmitir.
Adres Komut Yapt ilem
8 bit MOVX A, @Ri Ri nin gsterdii satr okur.
8 bit MOVX @Ri, A Rinin gsterdii satra yazar.
16 bit MOVX A, @DPTR DPTRnin gsterdii satr okur.
16 bit MOVX @DPTR, A DPTRnin gsterdii satra yazar.
izelge - 3.2 D RAM de kullanlan aktarma buyruklar
MOVX A, @Ri veya MOVX @Ri, A komutlar kullanldnda P2 portu serbest
giri/k hatt olarak kullanlabilir. 256 baytlk d RAM in yeterli olmad
uygulamalarda 16 bitlik veri gstericisi DPTR yazac kullanlr. MOVX A, @DPTR veya
MOVX @DPTR, A komutlar kullanldnda P2 portu adresin yksek deerlikli baytn
tad iin baka amala kullanlamaz.
rnek 9:
R1=78H olduuna gre aadaki komut yrtldnde akmlatre yklenecek
say ne olur?
MOVX A, @R1 ;R1in gsterdii bellek satrn oku.
D veri belleinin 78h numaral satrn ierii akmlatre yklenecektir.

Program Belleinden Veri Okuyan Komutlar
Program belleine alt programlar tarafndan kullanlan sabit deerler tablosu veya
kod dnm tablolar kalc bir ekilde yazlabilir. Belirli bir sraya gre yazlm bu
sabit deerlerin oluturduu tabloya bavuru tablosu ad verilir. Bu tablolar birka
alt program tarafndan snrsz olarak kullanlabilir. Program belleine yazma
yaplamadndan sadece okuma komutu vardr. izelge3.3 de program
belleinden okuma yapan komutlarn listesi verilmitir. Tablonun balang adresini
belirtmek iin DPTR veya PC kullanlr. Tablo satr numaras ise sadece akmlatr
ierisine yazlabilir. Tablodan yklenecek verinin adresi DPTR veya PC ile
Akmlatrn ierii toplanarak elde edilir. Tablo deeri Akmlatre yklenir ve
8051 Komut Kmesi 61
Mikrodenetleyiciler 8051 Uygulamalar
tablo satr numaras kaybolur. Bu durum genellikle sorun karmaz, nk veri
yklendikten sonra bir daha satr numarasna gereksinim duyulmaz. Program
belleinden bilgi okumada d RAM de olduu gibi hedef sadece Akmlatr
olabilir.
Komut Yapt ilem
MOVC A, @A+DPTR A+DPTR adresli program belleinin ieriini okur.
MOVC A, @A+PC A+PC adresli program belleinin ieriini okur.
izelge - 3.3 Program belleinden look-up tablolarn okuyan buyruklar.

ekil-3.1 Bavuru tablosunun kullanm
DPTR le Bavuru Tablosu Yapmak
MOVC A, @A+DPTR komutu bir bayt uzunluundadr. Bu komut iletildiinde 16-
bitlik DPTR yazacna 8 bitlik akmlatrn ierii toplanr ve elde edilen 16 bitlik
say program belleinden okunacak verinin adresidir. Bu adresteki veri akmlatre
okunur. lem sonunda akmlatrn ierii deiirken DPTRnin ierii korunur. Bu
komut program belleine kaydedilmi dizi veya tablo deerlerinin okunmas
amacyla kullanlr. Bunun iin tablo veya dizinin balang adresi DPTR yazacna
okunacak verinin balangtan uzakl (sra numaras) akmlatre yazlr.
PC le Bavuru Tablosu Yapmak
MOVC A, @A+PC komutu bir bayt uzunluktadr. Bu komut iletildiinde 16-bitlik PC
ile 8 bitlik akmlatrn ierii toplanr ve elde edilen 16 bitlik say program
belleinden okunacak verinin adresidir. Bu adresteki veri akmlatre okunur. lem
62 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar
sonunda akmlatrn ierii deiirken PCnin ierii korunur. MOVC komutu PC
veya DPTR ile zde ilemleri gerekletiriyor gibi grnse de PC ile yapldnda iler
bir para karmak hal almaktadr. Bunun nedeni PCye istenilen bir tablo taban
deerini yerletirmenin olanaksz olmasdr. Bu nedenle ileri dzey bir programc
deilseniz tabloya DPTR yazacn kullanarak ulamay deneyin.
rnek 10:
P1 portundan okuduu (0-9 aras) saynn karesini alp P2ye yazan program yazn.
ORG 0 ;Program buradan balar
MOV DPTR, #TAB1 ;Tablonun balang adresini belirle.
MOV P1, #0FFH ;P1i giri yapmak iin tm hatlarna 1 yaz.
L01: MOV A,P1 ;P1i oku
MOVC A,@A+DPTR ;Okunan saynn karesini al
MOV P2,A ;Karesini P2ye yaz.
SJMP L01 ;Srekli yap.
ORG 300H ; Tablo buradan balyor.
TAB1: DB 0,1,4,9,16,25,36,49,64,81
END

Aritmetik lem Komutlar
Aritmetik ilem buyruklar ve kullanldklar adres modlar izelge3.4te verilmitir.
Toplama komutu 8051de eldeli ve eldesiz olmak zere iki trdr. Eldesiz toplamada
akmlatr ve belirtilen bayt toplanr sonu akmlatre yazlr. lem sonucunda
oluan elde bayra kurar, elde kurulu ise sonu 9 bit demektir. Eldeli toplamada
akmlatr belirtilen bayt ve eldenin ieriini toplar sonucu akmlatre yazar.
Sonu 8 bitten bykse elde bayra kurulur aksi halde temizlenir. ADD A,<bayt>
komutu aadakiler gibi yazlabilir.
Ksa ad lem

D
o

r
.


D
o
l
a
y
l



Y
a
z
a

v
e
d
i

ADD A,<bayt> A=A+<bayt> X X X X
ADDC A,<bayt> A=A+<bayt>+C X X X X
SUBB A,<bayt> A=A-<bayt>-C X X X X
8051 Komut Kmesi 63
Mikrodenetleyiciler 8051 Uygulamalar
INC A A=A+1 Akmlatre zel
INC <bayt> <bayt>=<bayt>+1 X X X
INC DPTR DPTR=DPTR+1 Veri gstericisine zel
DEC A A=A-1 Akmlatre zel
DEC <bayt> <bayt>=<bayt>-1 X X X
MUL AB A.BA
7-0 ,
B
8-15
Yazaca zel
DIV AB A/B A=blm, B=kalan Yazaca zel
DA A Onlu sonuca ayarla Akmlatre zel
izelge3.4 8051 Aritmetik ilem buyruklar.
rnek 11:
Akmlatrn ierii 3Ah, R0n ierii 7Ch olduuna gre aadaki komut
iletildikten sonra akmlatr, elde, tama ve yardmc elde bayraklarnn
ieriklerini belirleyin.
ADD A, R0

Akmlatr ile R0 toplandnda 3 bitlerin toplamndan bir elde oluur ve Yardmc
El de bayra kurulur. 7 bitlerin toplamndan elde olumad iin elde bayra
temizlenir. Altnc bitlerin toplamndan elde olutuu iin Tama Bayra (OV)
kurulur. Bu saylar iaretli say olarak kabul edilirse her ikisinin iaret bitleri (yedinci
bitleri) 0 olduu iin pozitif saydr. Iki pozitif saynn toplamndan negatif say elde
edilmitir. Sonucun iaret biti doru deildir, aslnda sonu neatif deildir,
toplamn bykl 7 bite smad iin tama olmutur. Bu tamada Tama
Bayran (OV) kurmutur. Sonucun doruluu Elde Bayra (CY) ve Tama Bayra
(OV) birlikte deerlendirilerek belirlenir. Bu rnekte byklk dorudur, fakat iaret
biti hataldr.

0 0 1 1 1 0 1 0 A
0 1 1 1 1 1 0 0 R0
1 0 1 1 0 1 1 0 A
AC=1 OV=1 CY=0
64 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar
KO saylarn toplanmasnda kullanlan farkl bir komut yoktur, ayn toplama
komutlar kullanlr. Toplama komutu 3. bitlerin toplanmasnda elde oluur ise AC
bayran kurar. Eer KO toplama yaplmak isteniyor ise toplanacak 8 bit
deikenlerin KO formunda yazl olmas gerekir. Toplama yapldktan sonra DA A
komutu iletilerek akmlatrn ierii KOya dntrlr. DA A komutu AC
bayra kurulu veya dk deerli 4 bit 9dan byk ise bu ksma 6 toplar. lemin
sonunda elde oluur ise yksek deerli ksma yanstlr. Elde bayra kurulu veya
yksek deerli ksm 9dan byk ise 6 toplanr, elde oluur ise elde bayra kurulur,
olumaz ise temizleme yaplmaz. DA A komutu dier komutlar sonras dnm
doru olarak yapmaz.
rnek 12:
Akmlatrn ierii 56h, R3 yazacnn ierii 67h bu saylar KO 56 ve 67 saylarn
gstermektedirler. Bu iki sayy doru olarak toplayan program yazn.
Toplanacak saylar KO olarak kodlu olduklar iin nce toplama ilemi yaplr sonra
DA A komutu yrtlerek sonu dzenlenebilir.
ADD A, R3
DA A

nce bu iki say toplanr, toplama sonucu 10111101B olur. Elde Bayra (CY) ile
Yardmc Elde Bayra (AC) temizlenir. KOya uyarla komutu yrtldnde dk
deerli nibl 92dan byk olduu iin 6 eklenir. Akmlatrn ierii 10110011B
olur. Elde Bayra (CY) kurulur. kinci aamada hem Elde Bayra (CY) kuruludur hem
de yksek deerli nibl geersiz KO saydr, yksek deerli niblda 6 eklenerek
KOya uyarlanr. Akmlatrn yeni ierii 00100011B (23h) olur. lem sonunda
Elde Bayra (CY) kurulur, nk sonu 123tr.
0 0 1 1 1 0 1 0 A
0 1 1 1 1 1 0 0 R0
1 0 1 1 0 1 1 1 A
AC=1 OV=1 CY=0
1
CY
8051 Komut Kmesi 65
Mikrodenetleyiciler 8051 Uygulamalar
KO saylar toplama yntemi ile 01h ve 99h saylar toplanarak bir artrlabilir veya
azaltlabilir. 30H saysn 99h saysn toplar ve KOya uyarlama komutunu
yrtrsek bir azaltm oluruz.
ADD A, #99
DA A
KOya uyarlama sonras oluan elde alr. 30+99=129 elde atldnda 29 elde edilir.

rnek 13:
Akmlatrn ierii 3Ah, R0n ierii 7Ch, Elde Bayra (CY) ierii kurulu
olduuna gre aadaki komut iletildikten sonra akmlatr, elde, tama ve
yardmc elde bayraklarnn ieriklerini belirleyin.
ADD A, R0

rnek 14:
Akmlatrn ierii 0C9h, R2in ierii 54h ve Elde Bayra (CY) kurulu olduuna
gre aadaki komut iletildiinde akmlatrn ve Elde Bayra (CY) durumunu
belirleyin.
SUBB A, R2
Komut iletildiinde R2nin ierii ve elde bayra kurulu olduu iin akmlatrn
ieriinden karlr. Bit 3lerin karlmas srasnda bit 4ten bor alma gereksini
olmad iin AC bayra temizlenmitir. Bit 6larn karlmas srasnda bit 7den
bor alnmtr ve bunun sonucunda ile Tama Bayra (OV) kurulmutur. Bit 7lerin
karlmasnda bor gerekli olmamtr ve Elde Bayra (CY) temizlenmitir. lem
sonucu 74H olarak akmlatrde elde edilmitir.

1 1 0 0 1 0 0 1 A
0 1 0 1 0 1 0 0 R2
0 1 1 1 0 1 0 0 A
AC=0 OV=1 CY=0
1 CY=1
66 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar

RAMde her bellek satrnn ierii INC ve DEC komutlar ile akmlatr
kullanlmadan arttrlabilir veya azaltlabilir. Bu komutlar bayraklar etkilemez. INC
DPTR komutu ise 16 bit DPTR yazacnn ieriini bir artrr. 8051de arpma ve blme
komutlar ikier bayt girdileri yine ikier bayt sonulara dntrmektedirler. Her iki
komutta sadece A ve B akmlatrleri zerinde tanmlanmtr. 8051 komut
kmesinde tm dier komutlar 1-2 makine saykl srerken arpma ve blme
komutlar 4 makine saykl (48 osilatr periyodu) srmektedir. A*B ileminin
sonucunun dk deerli Bayt Ada, yksek deerli bayt Bde yer alr. Sonu her
zaman iki bayta yerletirilir (A ve B). arpmn bir bayttan byk olduu (B 0)
tama bayra kurularak belirtilir (0V=1). Deilse (B=0) tama bayra temizlenir
(OV=0). arpma ilemi sonucu da C her zaman sfrlanr, AC etkilemez, P ise allm
devini yapar.
rnek 15:
Akmlatr ierii 75h, B yazacnn ierii 60h olduunda aadaki komut
yrtlrse akmlatr ve B yazacnn yeni ieriklerini belirleyin. OV bayrann
durumunu belirleyin.
MUL AB
Komut yrtldnde akmlatrn ierii ile B yazacnn ierii arplr YDB B
yazacna yazlr. lem sonucu 255ten byk olduu iin OV bayra kurulur.
A=E0, B=2B, OV=1

rnek 16:
Akmlatr ierii 255, B yazacnn ierii 30 olduuna gre aadaki komut
yrtldkten sonra bu yazalarn ieriklerini belirleyin.
DIV AB
Komut yrtldnde akmlatrn ierii 08h (blm), B yazacnn ierii 0Fh
(Kalan) olacaktr.

rnek 17:
0FAH ile 05Hyi arpan program yazn.
=
8051 Komut Kmesi 67
Mikrodenetleyiciler 8051 Uygulamalar
M0V A, #0FAH ;birinci sayy Aya al.
M0V B, #05H ;ikinci sayy Bye al.
MUL AB ;arp.

8051 de blme komutu tek bir biimde gerekletirilebilmektedir. Blnecek say
Aya blen say Bye yazlmaldr. A/B ileminin sonucunda blm Aya, kalan ise
Bye yerletirilir. Saylarn iaretsiz saylar olduu varsaylmaktadr. Blm, sfra
blme dnda, bir bayt byklktedir. Sfra blme durumu 0V=1 ile belirtilmektedir.
Blme ilemi sonucunda C her zaman sfrlanr, AC etkilenmez, P ise allm devini
yapar.
rnek 18:
8CH deerini 6ya blen program yazn.
M0V A ,#8CH ;Birinci sayy Aya al.
M0V B ,#6 ;kinci sayy Aya al.
DIV AB ;Bl, blm Aya kalan Bye yazlr

rnek 19:
R1 yazac 65h, R6 yazac 77h, 65h ve 64h adresli RAM belleklerin ierikleri 00hdir.
Aadaki komutlar iletildikten sonra belleklerin ve yazalarn ieriklerini belirleyin.
DEC @R1
DEC R1
DEC @R1
DEC R6 Birinci komut yrtldnde R1in gsterdii bellein ierii bir
azaltlacaktr. 65h nolu bellek satrnn ierii 00h idi azaltma sonras FFh olacaktr.
kinci komut yrtldnde R1 yazacnn ierii 65hden 64hye azaltlacaktr.
nc komut birinci komutta olduu gibi R1in gsterdii bellek satrnn ierii bir
azaltlacaktr. R1 yazac bu defa 64h nolu bellek satrn gstermektedir, ierii
00hdir azaltldnda bu bellein ierii FFh olacaktr. Drdnc komut
yrtldnde R6nn ierii bir azaltlarak 76h olur.

68 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar
Mantk lem Buyruklar
Mantk ilem buyruklar ve kullanldklar adres modlar izelge3.5te verilmitir.
8051 4 temel boolean ilemini gerekler, birinci deikenin ayn numaral biti ile
ikinci deikenin ayn numaral biti boolen ilemine tabi tutulur ve birinci deikenin
ayn numaral bitine yazlr. lemin yaplabilmesi iin deikenlerden birinin
akmlatrde olma zorunluluu yoktur. ekil3.2de AND ileminin yapl
gsterilmitir. ANL A, <bayt> komutu aadakiler gibi yazlabilir.
Ksa ad Yapt ilem
D
o

r
.

D
o
l
a
y
l


Y
a
z
a

v
e
d
i

ANL A, <bayt> A=A A <bayt> X X X X
ANL <bayt>, A <bayt>=<bayt> A A X
ANL <bayt>, #VER <bayt>=<bayt>A VER X
ORL A, <bayt> A=A V <bayt> X X X X
ORL<bayt>, A <bayt>=<bayt>V A X
ORL<bayt>, #VER <bayt>=<bayt>V VER X
XRL A, <bayt> A=A <bayt> X X X X
XRL<bayt>, A <bayt>=<bayt> A X
XRL <bayt>, #VER <bayt>=<bayt> VER X
CLR A A=00H Aya zel
CPL A A=A Aya zel
RL A Bir bit sola dndr. Aya zel
RLC A C zerinden sola dndr. Aya zel
RR A Bir bit saa dndr. Aya zel
RRC A C zerinden saa dndr. Aya zel
SWAP A Nibblelar yer deitir. Aya zel
izelge - 3.5 8051 mantk ilem buyruklar.
ANL A, 7FH (dorudan adresleme )
ANL A, @R0 (dolayl adresleme )
ANL A, R7 (yaza adresleme)
ANL A, #127 ( ivedi adresleme )
Akmlatrde yaplan tm mantk ilem buyruklar 1 S srerken dier buyruklar 2
S srer. Boolean ilemleri akmlatr kullanlmadan da veri belleinin herhangi bir
8051 Komut Kmesi 69
Mikrodenetleyiciler 8051 Uygulamalar
satrnda gerekletirilebilir. rnein XRL P1 #veri buyruu ksa yoldan portun giri
iken ka dntrlmesini yada k iken girie dntrlmesine olanak salar.
Elde zerinden dndrme komutlar dndaki komutlar bayraklar etkilemez.

ekil3.2 mantk VE ileminin gerekletirilmesi.

rnek 20:
Akmlatrn ierii 56h R1in ierii 9Ah olduuna gre aadaki komut
iletildiinde akmlatrn ieriini belirleyin.
ANL A, R1
Aada gsterildii gibi bitler birbirinden bamsz olarak VElenmitir. Her hangi bir
bayrak ilemden etkilenmemitir.


rnek21:
Akmlatrn ierii 87h ve Elde Bayra (CY) temiz ise aadaki komut
iletildikten sonraki ieriini belirleyin. RLC A
Akmlatrn ierii

lem sonras akmlatrn ierii.

0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1
0 1 0 0 0 1 0 1
D0 D7 D0 D7
D0 D7
. . . . . .
0
1
1
0
0
0
1
0
0
0
1
1

1
1

0
1
A
1 0 0 1 1 0 1 0 R1
0 0 0 1 0 0 1 0 A
70 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar

Komut iletildiinde akmlatrn ierii bir bir sola dndrlecektir. D
7
ise D
0
a
yerleecektir ve akmlatrn yeni ierii 0Eh olacaktr ve Elde Bayra (CY)
kurulacaktr.

rnek:
Akmlatrn ierii 87h ise aadaki komut iletildikten sonraki ieriini
belirleyin. RRA
Akmlatrn ierii.
1 0 0 0 0 1 1 1
lem sonras akmlatrn ierii.

Komut iletildiinde akmlatrn ierii bir bir sola dndrlecektir. D
0
ise D
7
ye
yerleecektir ve akmlatrn yeni ierii C3h olacaktr.

rnek 22:
Akmlatrn ierii 87h ve Elde Bayra (CY) temiz ise aadaki komut
iletildikten sonraki ieriini belirleyin.
RLC A
Komut iletildiinde akmlatrn ierii bir bir sola dndrlecektir. D
7
ise D
0
a
yerleecektir ve akmlatrn yeni ierii 0Eh olacaktr ve Elde Bayra (CY)
kurulacaktr.




0
1
0
1
0
0
0
0
1
0
1

0

1

1

0
1
1
8051 Komut Kmesi 71
Mikrodenetleyiciler 8051 Uygulamalar
rnek 23:
Akmlatrn ierii 87h ise aadaki komut iletildikten sonraki ieriini
belirleyin.
RL A
Akmlatrn ierii.

lem sonras akmlatrn ierii.

RLC AKomut iletildiinde akmlatrn ierii bir bir sola dndrlecektir. D7 ise
D0a yerleecektir ve akmlatrn yeni ierii 0Fh olacaktr.

rnek 24:
Akmlatrn ierii 55h R1 yazacnn ierii AAh oluunda aadaki komut
iletildiinde Akmlatrn ieriini belirleyin.
XRL A, R1
A 0 1 0 1 0 1 0 1
R2 1 0 1 0 1 0 1 0
A 1 1 1 1 1 1 1 1

SWAP A komutu akmlatrn dk deerli 4 biti ile yksek deerli 4 bitini sral
bir ekilde yer deitirir. Kod dnm iin kullanl bir komuttur.


1
0
A
0
0
0
0
0
0
0
1
1

1

1

1

1
1
72 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar
rnek 25:
Aadaki komutlar iletildikten sonra Accnin ieriini belirleyin?
Mov A, #45h ;Accye 45h saysn ykle
Swap A ;Nibbllar yer deitir.

Birinci komut iletildiinde Accnin ierii

kinci komut iletildiinde Accnin ierii


Boolean lem Yapan Komutlar
8051 bit ilem yapan boolean ilemcisi ierir. Bit adresleme alt 128 baytlk blgede
128 adet ve SFR blgesinde 128 adet olmak zere toplam 256 adet bellek
hcresinde dorudan adresleme modunda kullanlr. Bit ilem yapan komutlarda
akmlatrn grevi elde bayrana verilmitir. Bit ilem yapan komutlar bitin
ieriini deitiren, mantk ilem yapan ve test edip karar veren komutlar olmak
zere ana guruba ayrlr. izelge3.6 da bit adreslemede kullanlan buyruklarn
listesi verilmitir.
Bitin ieriini deitiren komutlar Mov, Setb, Cpl ve Clr komutlardr. Bu
komutlardan Mov (Muv diye okunur) kaynak bitin ieriini hedef bite kopyalar, setb
komutu adresi belirtilen bitin ieriini kurar (mantk 1 yapar). Clr komutu adresi
belirtilen biti temizler (mantk 0 yapar), Cpl ise adresi belirtilen bitin 1e tmleyenini
(deilini) alr.
MOV C, bit ;Adresi belirtilen bitin ieriini Cye aktar.
MOV Bit, C ;Cnin ieriini adresi belirtilen bite aktar.
Bit ilem yapan mantk komutlar VE ile VEYA ilemleri olmak zere iki eittir fakat
iki adet VE ilemi vardr. Bunlardan birincisi elde bayrann ierii ile adresi
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
45h
54h
8051 Komut Kmesi 73
Mikrodenetleyiciler 8051 Uygulamalar
belirtilen bitin ieriini VE ilemi yapar ve sonucu elde bayrana yazar. Bit ilem
yapan mantk komutlarnda birinci ilenen ve ilem sonucu elde bayranda yer
almak zorundadr. kinci VE ilrmi yapan komut ise elde bayra ile adresi belirtilen
bitin ieriinin deilini VE ilemi yapar ve sonucunu elde bayrana yazar.
Ksa ad Yapt ilem Sresi
ANL C, bit C=C A bit 2
ANL C, /bit C=C A/ bit 2
ORL C, bit C=C V bit 2
ORL C, /bit C=C V /bit 2
MOV C, bit C=bit 1
MOV bit, C Bit=C 2
CLR C C=0 1
CLR bit Bit=0 1
SETB C C=1 1
SETB bit Bit=1 1
CPL C C=/C 1
CPL bit Bit=/bit 1
JC bal adres C=1 ise dallan 2
JNC bal adres C=0 ise dallan 2
JB bit, bal adres Bit=1 ise dallan 2
JNB bit, bal adres Bit=0 ise dallan 2
JBC bit, bal adres Bit=1 ise biti temizle ve dallan 2
Tablo3.6 Boolean buyruklar.
ANL C, bit ; C=C A bit
ANL C, /bit ; C=C A /bit
VEYA ilemi yapan ORL komutunu kullanm da ANL komutu ile ayndr. Birinci
ORL komutu elde bayrann ierii ile adresi belirtilen bitin ieriini VEYA ilemi
yapar ve sonucu elde bayrana yazar. kinci ORL komutu ise elde bayra ile adresi
belirtilen bitin ieriinin deilini VEYA ilemi yapar ve sonucunu elde bayrana
yazar.
74 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar
ORL C, bit ; C=C V bit
ORL C, /bit ; C=C V /bit
Bitin ieriini test edip karar veren komutlar be adettir. Komutlarn hepsi
adresi belirtilen birtin ieriini komutun belirttii deerele karlatrr, eer sonu
doru ise belirtilen adrese dallanma gerekleir. Eer yanl ise dallanma
gereklemez, 8051 bir sonraki komutu yrtmeye devam eder. Komut yazmnda
dallanlacak adres dorudan adres olarak deil bal adres olarak verilmelidir.
Birok assmbler program bu bal adresi kendisi hesaplar bizim etiket ile
dallanlacak adresi belirtmemiz yeterlidir. Eer belirtilen etiketin komuta olan
uzakl +127 adres veya -128 adresden fazla ise program iletilirken hata oluur.
JC son ;Eer elde bayra 1 ise dallan.
JC komutu elde bayrann 1 olup olmadn test eder. Eer sonu doru ise son
etiketinin bulunduu adrese dallanr. Yanl ise bir sonraki komuttan devam edilir.
JNC son ;eer elde bayra temiz ise dallan.
JNC son komutu, elde bayrann 0 olup olmadn test eder. Eer yant doru ise
son olarak belirtilen satra dallanr. Yanl ise bir sonraki komuttan devam edilir.
JB bit, son ;Adresi belirtilen bitin ierii 1 ise dallan.
JNB bit, geri ;Adresi belirtilen bitin ierii 0 ise dallan.
JB komutu adresi belirtilen bitin 1 olup olmadn test eder. Eer yant doru ise
son olarak belirtilen satra dallanr. Yanl ise bir sonraki komuttan devam edilir.
JNB komutu adresi belirtilen bitin 0 olup olmadn test eder. Eer yant doru ise
geri olarak belirtilen satra dallanr. Yanl ise bir sonraki komuttan devam edilir.
JBC bit, ileri ; Adresi belirtilen bitin ierii 1 ise nce bitin ieriini temizler
sonra ileri olarak belirtilen adrese dallan.
JBC bit, ileri komutu iki komutun birleik halidir. nce adresi belirtilen bitin ieriini test
eder. Eer yant doru ise bitin ieriini temizler ve ileri olarak adlandrlan satra dallanr.
Yanl ise bitin ierii deitirilmeden bir sonraki satrdan devam eder. AYRICALIKLI VEYA
ilemi yapan komut yoktur dier komutlardan tretilmelidir.
rnek 26:
Aadaki komutlar iletildiinde PC sayacnn ierii ne olur? Belirleyin.
JNB P3.2, ileri
8051 Komut Kmesi 75
Mikrodenetleyiciler 8051 Uygulamalar
JNB ACC.3, geri
Birinci komut iletildiinde eer Port 3n 2 numaral hatt 0 ise program sayacnn ierii
ileri olarak adlandrlan adresi ierir. 0 deilse ikinci komut iletilir. Bu komut iletildiinde
akmlatrn 3 numaral biti eer 0 ise PCnin ierii geri olarak adlandrlan satrn
adresini ierir.

rnek 27:
Akmlatrn ierii 10111011B olduuna gre aadaki komutlar iletildiinde
program sayacnn ierii ne olur.
JB ACC.5, LER
JB ACC.2, GER
Birinci komut iletildiinde 5 bitin durumuna gre dallanma olur veya olmaz. Beinci
bit 1 olduuna gre dallanma geekleir. Program sayacnn ieri LER olarak
adlandrlm satrn adresi olur. Beinci bit 0 olsayd, dallanma olmayacak bir alt
satrdaki komut iletilecekti. Bir alt satrda ise ikinci bite bakan bir dallanma komutu
vardr ikinci bit 0 olduu iin dallanma gereklemeyecek ve bir alt satrdaki komut
iletilmeye balanacaktr.

rnek 28:
P1.3 =1, ACC.5=0 ve OV=1 bu koullardan bir tanesi yerine gelirse elde bayran
kuran program yazn.
MOV C, P1.3
ORL C, /ACC.5
ORL C, OV
Komut yrtldnde P1.3 hattnn deeri elde bayrana alnr. kinci komutta
akmlatr 5 numaral bitinin deili ile VEYAlanr. nc komutta ise OV bayra
ile elde bayra VEYAlanr.

rnek 29:
76 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar
Akmlatrn ierii 10111011B olduuna gre aadaki komutlar iletildiinde
program sayacnn ierii ne olur.
JB ACC.5, LER
JB ACC.2, GER
Birinci komut iletildiinde 5 bitin durumuna gre dallanma olur veya olmaz. Beinci bit 1
olduuna gre nce bu bit 0 yaplr ve sonra dallanma geekleir. Program sayacnn ierii
LER olarak adlandrlm satrn adresi olur. Dallanma sonras akmlatrn ierii
10011011B olacaktr. Beinci bit 0 olsayd, dallanma olmayacak bir alt satrdaki komut
iletilecekti. Bir alt satrda ise ikinci bite bakan bir dallanma komutu vardr ikinci bit 0 olduu
iin dallanma gereklemeyecek ve bir alt satrdaki komut iletilmeye balanacaktr.

rnek 30:
Elde bayra kurulu iken aadaki komutlar iletilirse program sayacnn ierii ne
olur?
JC LER
CPL
JC GER

rnek 31:
Aadaki komutlar iletildiinde PC sayacnn ierii ne olur? Belirleyin.
JNC ileri
CPL
JNC, geri
Birinci komut iletildiinde eer elde bayra 0 ise program sayacnn ierii ileri
olarak adlandrlan adresi ierir. 0 deilse ikinci komut iletilir, bu komut elde
bayrann ieriinin 1e tmleyenini alr. Bu komut iletildiinde akmlatrn 3
numaral biti eer 0 ise PCnin ierii geri olarak adlandrlan satrn adresini ierir
bu programda ya birinci komutta dallanma olur veya nc komutta baka
seenek yoktur.

rnek 32:
Bit adres 07hnin ierii 1dir aadaki komut iletildiinde yeni ierii ne olur.
CLR 00h
8051 Komut Kmesi 77
Mikrodenetleyiciler 8051 Uygulamalar
Bitin ierii 0 olur.

rnek 33:
Aadaki birinci komut elde bayran ikinci komut Akmlatrn 5 numaral bitini
kurar.
SETB C
SETB ACC.5

Balanma Komutlar
Program akn koul gerektirmeden deitirmek iin kullanlan balanma komutu farkl adresleme
kipinde kullanlr. Balanma komutlarnn listesi izelge-3.7 verilmitir.


Ksa ad Yapt ilem
L JMP 16 adres Belirtilen uzun adrese balanr.
AJMP 11 adres Belirtilen mutlak adrese balanr.
SJMP Bal adres Belirtilen bal adrese balanr.
JMP @A+DPTR DPTR + A adresine balanr.
ACALL 11 bit adres Belirtilen adresteki alt program arr.
LCALL 16 bit adres Belirtilen adresteki alt program arr.
RET Alt programdan geri dner.
RETI Kesme alt programndan geri dner.
NOP lem yapmadan 1 makine saykl zaman geirir.
izelge3.7 Balanma komutlar.
SJMP komutunun adresi 8 bitlik bal kayklktr. 128 ile +127 arasnda deerler
alabilir. Negatif kayklk geri doru balanmaya sebep olur. Temel adres SJMP
komutundan sonraki komutun balang adresidir. Bu komut 2 bayttr. Birinci bayt
opkod ikinci bayt da kayklk deerinden oluur. LJMP komutu 16 bit uzunluunda
dorudan adres kullanr. Buyruk 3 bayt uzunluundadr, birinci bayt opkod, ikinci ve
nc bayt da adres bilgisini ierir. Buraya yazlacak olan adres program
78 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar
belleindeki 64 Kbaytlk alandan herhangi bir satr adresi olabilir. AJMP komutu 11
bit adres ierir. Buyruk 2 bayttan oluur, birinci bayt opkod ve adresin yksek
deerli 3 bitini, ikinci bayt ise adresin dk deerli ksmn gsterir. Komut
yrtldnde PCnin dk deerli 11 bitine komutun adresi yazlr yksek deerli
5 bit deimez. Bu durumda hedef adres eer program belleini 2 Kbaytlk bloklara
ayrrsak o anda bulunulan blok ierisinde olabilir. Birok assembler programlar
JMP ismini tanr ve uygun adresleme modunu kendisi belirler.
JMP @A+DPTR komutu koullu dallanma benzeri bir balanma komutudur. DPTR
balanma yaplacak yerin sfr nolu satrnn adresini ierir. Akmlatr ise
dallanlacak olan satrn bu noktaya olan uzakln belirler. Komut yrtldnde
Akmlatr ile DPTRnin ierii toplanr ve etkin adres bulunur. Bu komut sadece
yklenen sayya gre bir adrese dallanlacak ise kullanlr.
rnek 34:
MOV DPTR, #TABLO
MOV A, SIRA NUMARASI
JMP @A+DPTR

..
TABLO:
AJMP DURUM 0
AJMP DURUM 1
AJMP DURUM 2
.
.
AJMP DURUM 255

Bu program yrtldnde DPTRye balanma tablosunun adresi Akmlatre ise
sra numaras yklenecektir. Sral balanma gerekletinde program o noktadan
iletilmeye devam edecektir.
CALL komutu altprogram arma komutudur. Altprogram ska yaplan ilemlerin
kk program haline getirilmi halidir. CALL komutu mutlak ve uzun
adreslemelerde kullanlr. Uzun adreslemede 3 bayt uzunluundadr ve bellein her
adresinden altprogram arr. Mutlak adreslemede ise bulunduu 2Kbaytlk blok
bellek ierisinde yer alan altprogramlar arabilir. CALL komutu uzunadreslemede
8051 Komut Kmesi 79
Mikrodenetleyiciler 8051 Uygulamalar
LCALL, mutlak adreslemede ACALL adn alr. Birok assembler programnda CALL
yazmanz yeterlidir kendisi uygun olan adresleme modunu derleme srasnda
belirler. cretsiz datlan asssembler programlarn geerlilik deeri 2048 bayt
olduu iin LCALL komutunu derleyemez
Alt program iletildikten sonra ana programa geri dn RET komutu ile salanr.
CALL komutu ilendikten sonra o andaki PC ierii saklanarak alt programa gidilir.
Alt program iletildikten sonra alt program sonuna yerletirilen RET komutu ilenir
ve nceden saklanan geri dn adresi PC ierisine alnr ve kalnan yerden ana
program iletilmeye devam eder.
RETI komutu ise RET komutu ile benzer ilem yapar. RETI komutu kesme servis alt
programndan ana programa dn salar.
rnek 35:
Yn iaretleyici 38h ierdii durumda 38H ve 37h adresli i RAM bellek satrlar
sras ile 45h, 89h saylarn iermektedir. Aadaki komut iletildiinde program
yrtlmeye hangi adresten devam edilir?
RET
38h ve 37h satrlarnn ierikleri PCye alnacak ve program iletilmeye 8945H
adresinden devam edecektir.

rnek 36:
Yn iaretleyici 38h ierdii durumda 38H ve 37h adresli i RAM bellek satrlar
sras ile 45h, 89h saylarn iermektedir. Aadaki komut iletildiinde program
yrtlmeye hangi adresten devam edilir?
RETI
38h ve 37h satrlarnn ierikleri PCye alnacak ve program iletilmeye 8945H
adresinden devam edecektir.

Koullu Dallanma Komutlar
izelge-3.8 de koullu dallanma komutlarnn listesi verilmitir. Koullu dallanma
komutlarn tm bal adreslemede kullanlr. Bal adreslemede kullanlan kayklk
deeri -128 ile +127 aras olabilir JZ ve JNZ komutlar PSW ierisinde sfr bayra
yeralmad iin Akmlatrn ieriini denetleyerek dallanp dallanmayacan
karar veri. JZ komutu Accnin tm bitleri sfr ise belirtilen adrese dalanr, deilse bir
80 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar
sonraki satrdan devam eder. JNZ komutu ise ACCnin ierii sfrdan farkl ise
belirtilen adrese dallann aksi halde bir sonraki kumuttan devam eder.
DJNZ komutu ise nce belirtilen bellei ya da yazacn ieriini bir azaltr, eer sfr
deilse belirtilen satra dallanr, aksi halde bir sonraki kumuttan devam eder. DJNZ
komutu, olay saymak iin kullanlr. CJNE, karlatr eit deilse dallan, komutu da
dng kontrolnde kullanlan dier bir koullu dallanma komutudur. Bu komutun
dier kullanm alan ise iki saydan byk olan ile kk olan ayrma ilemidir. Eer
birinci say, ikinciden kk ise elde bayra kurulur, tersi ise elde bayra temizlenir.
Koullu dallanma komutlar yalnzca koul gereklemise yrtlmektedir. Eer
koul gereklememise bir sonraki komutun yrtlmesine geilmektedir.
CJNE A, #Say, ileri
A Say C =0
A < Say C =1

Ksa ad

Yapt ilem
D
o

r
.

D
o
l
a
y
l


Y
a
z
a


JZ bal adres A=0 ise dallan Aya zel
JNZ bal adres A = 0 ise dallan Aya zel
DJNZ <bayt>, bal adres Azalt sfr deilse dallan X X
CJNE A,<bayt>, bal adres A = <bayt> ise dallan X X
CJNE<bayt>,#veri, bal adres Veri = <bayt> ise dallan X X
izelge3,8 Koulu dallanma komutlar.
rnek 37:
Aadaki programda birinci komut iletildiinde akmlatre 01h says
yklenecektir. Sfrdan fakl olduu iin ikinci komutta dallanma gereklemez.
nc komutta akmlatrn ierii bir azaltldnda ierik sfr olacak ve
drdnc komuttaki dallanma gerekleecektir.
MOV A, #01H
JZ LER
DEC A
JZ GER


8051 Komut Kmesi 81
Mikrodenetleyiciler 8051 Uygulamalar
rnek 38:
Aadaki program, P2den okunan deer sfr olunca biter.
TKR: MOV A, P2 ;P2den oku.
MOV P1, A ;P1e yaz.
JNZ TKR ;k 0 olunca ilemi brak.
NOP

rnek 39:
Akmlatrn ierii 65h, R7nin ierii 89h olduuna gre aadaki komut
iletildiinde program hangi adresten yrtlmeye devam eder.
CJNE R7, #A8H, ESTD
................
ESTD: ................
R7 ile A8h says karlatrlacaktr, R7nin ierii 89h olduuna gre eit deildir ve
dallanma gerekleir program yrtlmeye ETD olarak adlandrlm satrdan
devam eder.


82 Blm 3
Mikrodenetleyiciler 8051 Uygulamalar
Sorular
1. Aadaki komutlardan hangilerinin geerli olduunu belirleyin? Belirtin.
MOV R3, 30H
MOV R3, #30H
MOV A, R7
MOV A, A
MOV 40, 30H
MOV 20H, A
MOV #20H, A
MOV A, #25H
MOV A, 25H
2. P1'i okuyup bank 3n R7sinde saklayan program yazn.
3. P1den okunan veriyi P3e yazan program yazn.
4. A yazac ile B yazacnn ieriklerini toplayp sonucu bank 2nin R0 ve R1inde
saklayan program yazn.
5. A yazacnn ieriinin karesini alan ve sonucu bank 2nin R2 ve R3nde
saklayan program yazn.
6. Aadaki program adm modunda iletildiinde belirtilen yaza ve belleklerin
ieriklerini her adm iin belirleyin.
A B R0 R7 (20H) (0FH)
Cpl A
Div AB
Mov R7,B
Mov R0,A
Setb 07H

7. Reset sonras aadaki program adm modunda iletildiinde belirtilen yaza
ve belleklerin ieriklerini her adm iin belirleyin. Her komut satrnda yaplan
ilemi aklayn


8051 Komut Kmesi 83
Mikrodenetleyiciler 8051 Uygulamalar
org 0 A R2 2FH 1AH Aklama
Mov A,#255
Inc A
ORL A,#0F0H
CPL A
Orl PSW,#18H
RRC A
MOV 7FH,C
Mov R2,A
End


8. A ve B yazalarnn 5 ve 3 nolu bitlerini temizleyen program yazn.
9. A ve B yazalarnn 7 nolu bitlerini kuran program yazn.
10. A ve B yazalarnn 5 nolu bitini kuran ve 3 nolu bitini temizleyen program
yazn?
11. R0 yazacnn 3 ve 4 nolu bitlerini dier bitleri deitirmeden 1e tmleyen
program yazn.
12. P0 / R2 ilemini yapan ve blm R3 yazacna ve kalan R4 yazacna yazan
program yazn.

Mikrodenetleyiciler 8051 Uygulamalar
Assembly
Programlama


Giri
Assembly dili makine dili ile yksek seviyeli dillerin arasnda kalan bir programlama
dilidir. Mikroilemci veya mikrodenetleyici programlamak iin ilk yllarda makine dili
olarak adlandrdmz onaltl say sisteminde komutlar oluturulmu komutlar
kullanlmtr. Bilgisayarn kullanmnn artmas ve mikroilemci programlayclarnn
zorlanmas nedeniyle assembly dili ortaya km ve kullanm hzla yaygnlamtr.
Hatta mikroilemci kullanmn yagnlatrmak iin baz retici firmalar BASIC dilinde
programlanabilen mikroilemciler retmilerdir. Gnmzde ise mikroilemci ve
mikrodenetleyici programlamak iin yeni renenler assembly dilini profosyoneller
ise C dilini kullanmaktadrlar.
Makine dilinde komutlar ikili saylar ile ifade edilir. Assembly dili ise ikili kodlar
hatrlamas kolay yaplan ilemi temsil eden iki, veya drt harfden oluan
ksaltmalar ile deitirir. rnein toplama komutu makine dilinde 10110011
olarak yazlrken assembly dilinde ADD olarak yazlr. Assembly dilinde yazlm
Assembler program
yaz mderle makine
diline dntr.
Makine dili programn
Mikrodenetleyiciye
kopyala.
Devre zerinde
program altr.
86 Blm 4
Mikrodenetleyiciler 8051 Uygulamalar
programlar dorudan mikroilemciler tarafndan iletilemez. Program yazm
bittikten sonra makine diline dntrlmelidir. ADD ksaltmas 10110011 haline
getirilmelidir.
Editr
Assembly dilinde program yazmak iin kullanlam programa verilen isimdir.
Standart ASCII kod reten her trl kelime ilem program editr olarak
kullanlabilir.
Assembler
Editrde yazlm Assembly programn makine diline dntren programdr.
Linker
Birden fazla dosyada yazlm ve assembly edilmi makine kodlarn dzenleyen,
birletiren programdr. Bu ilemi yapan programlara linker/relocator ad verilir.
renme aamasnda genellikle tek bir editr dosyasndan oluan programlar
yazld iin linker/relocator program kullanlmaz.
Assembly lemi
8051 mikrodenetleyiciler iin program gelitirmeye yarayan birok assembler
program ve dier gelitirme programlar ticari olarak satlmaktadr. ntelin
nerdii ASM-51 u anda satlmamaktadr. Fakat birok assembler iin standart
oluturmutur.

8051 kaynak program herhangi bir bilgisayarda bir text editrde (standart ASCII
karakter reten) yazlr. ASM-51 kullanlarak (baz kaynaklarda cross assembler
olarak adlandrlr) object kod ve list dosyas elde edilir. Assembler program
ASM51
DENE.LST
DENE.SRC
DENE.OBJ
ekil4,1 Kaynak programn assembly edilmesi.
Assembly Programlama 87
Mikrodenetleyiciler 8051 Uygulamalar
altrldnda sizden uzants ASM olan kaynak dosyann adn ister. Assembly
ilemi tamamlandktan sonra program tarafndan iki adet yeni dosya oluturulur.
Bu iki dosyann isimleri kaynak dosya ile ayn olup uzantlar ise OBJ ve LSTdir.
rnek olarak dene.asm adl kaynak dosyay assembly edelim ilem sonunda
dene.obj ve dene.lst adnda iki yeni dosya program tarafndan kaynak dosyann
bulunduu dizine kaydedilir. Baz assembler programlar OBJ ve LST dosyalar iin
isim girme seeneini kullancya verir. Bazlar ise bu seenei tanmadan kaynak
dosyann adn alr.
Birok assembler program dnm ilemini iki aamada gerekletirir, bu tr
assembler programlarna iki aamal onaylayan (two-pass assembler) assembler ad
verilir.
Birinci Aama Onay
Birinci aama onay sresince sembol tablosu oluturulur. Yer gstergesi (location
counter) 0a veya ORG ynergesi ile belirtilen yere ayarlanr. Komutlarn
uzunluklarna gre her satrda arttrlr. Rastlanlan etiket sembol tablosuna
kaydedilerek adresi belirlenir. Komutlarn bitiminde DB, DW veya DS ynergeleri iin
gerekli adres atamalar yaplr. Bu deerler kaydedildikten sonra ikinci aama
onayna geilir.
kinci Aama Onay
kinci aamada object ve liste dosyalar elde edilir. Ksa adlar (Mnemonics) ile
yazlm komutlarn ikilik karlklar yerletirilir. lenenler sembol tablolar
kullanlarak gerek adres ve veriye dntrlr. kinci aamada elde edilen liste
dosyalar ileride bu dosyay baka dosyalar ile birletirmek istediimizde referans
olarak kullanlacaktr.
LST dosyay MS-DOS ortamnda TYPE komutu ile grntleneilir. Birinci stunda
satr numaras, ikincide adres, ncde ilenenler, drdncde kaynak programn
etiket ksm, beincide komutlarn ksa adlar, altncda ilenenler, yedincide
aklama ksm yer alr. OBJ dosya ise adres ve on altl saylar ierir.
Assembly Dilinde Proram Dzeni
Assembly dilinde yazlan program u bileenleri ierir.
Makine komutlar
88 Blm 4
Mikrodenetleyiciler 8051 Uygulamalar
Assembler ynergeleri.
Assembler kontrol eden komutlar.
Aklamalar.
Makine komutlar ksa adlarla yazlm komutlardr, rnein MOV gibi. Assembler
ynergeleri makine komutu deildir. Fakat assembler programna program yapsn,
sembolleri, verileri, sabitleri oluturmada yardmc olan assembler komutlar olarak
adlandrabileceimiz komutlardr. rnein programn balang adresini belirleyen
ORG ynergesi veya bayt veri tanmlayan DB ynergesi gibi. Assemblere kontrol
eden komutlar ise assemblern akn kontrol eden komutlardr. Aklamalar
assembler program tarafndan deerlendirilmeyen program yazan veya okuyan
kiiye yardmc olmak iin yazlm yazlardr. Program satrlar her biri birbirinden
tab veya boluk ile ayrlan aada belirtilmi alanlarda yazlmaldr.
[etiket] Ksa ad [ilenen], [ilenen] [...............] [;aklamalar]
Etiket ile ksa ad ayn satrda olmayabilir, ayn ekilde ksa ad ile aklama ksm da
ayn satrda olmayabilir. Fakat ksa ad ile ilenenler ayn satrda olmak zorundadr
aralarnda sadece bir boluk veya tab karakterleri olmaldr.
Etiket Alan
Etiket bulunduu satrdaki komutun adresini belirtir, zellikle dallanma ve
balanma komutlar iin adres yazmak kaynak program yazarken ok zordur. Etiket
verilerek dallanma komutun ilenen ksmna bu etiket yazlr. Assembler program
etiketlerden yola karak doru adresi hesaplar.
rnein SJMP ATLA gibi.
Semboller veya etiketler mutlaka harfler ile veya ?, _ iaretleri ile balamaldr. 31
karaktere kadar uzunlukta olabilir iki kelimeden oluamaz. Byk veya kk harf
kullanlabilir, fakat her iki yerde ayn olmaldr. Komut ynerge ve operatr olarak
grevlendirilmi kelimeler ve Trke karakter ieren kelimeler etiket olarak
kullanlamazlar.
Ksa Ad (Mnemonic)
Etiket alann izleyen alanda yer alan ksa ad ve assembler ynerge alan nceden
belirlenmi komutlardr. Komutlara rnek olarak MUL, DIV, MOV, INC gibi.
Ynergelere rnek olarak ORG, EQU, veya DB verebiliriz.
Assembly Programlama 89
Mikrodenetleyiciler 8051 Uygulamalar
lenen (Operand) alan
Ksa ad izleyen alanda yer alan ilenen alan adres veya veri ierir. Bu alanda
etikette adresi temsilen kullanlabilir. Sembolde sabit deeri temsilen bu alanda yer
alabilir. Baz komutlarn ilenen ksm yoktur, bazlarnn bir, iki veya daha ilenen
yer alabilir.
Aklama (Comment) Alan
Bu alan noktal virgl ile balamak zorundadr. Bu alan assembler tarafndan
deerlendirilmez, sadece programc ve program okuyacak dier kiilere yardmc
olmak iin kullanlr. Birka satrdan oluan aklamalar genellikle programn genel
amacn aklar.

zel Assembler Simgeleri
zel assembler sembolleri yazaca zel adresleme kipinde kullanlan ve genellikle
yazacn adresini temsil eden sembollerdir. Bunlar A, R0, R1, R2, R3, R4, R5, R6, R7,
DPTR, PC, C, ABdir. Bunlara ek olarak $ iareti adres sayacnn mevcut deerini
belirtmek iin kullanlr.
Assembler Ynergeleri
Ynergeleri aadaki gibi gruplanabilir.
Assembler durum kontrol yapanlar. (ORG, END)
Sembol belirleyenler. (SEGMENT, EQU, SET, DATA, IDATA, XDATA, BIT,
CODE)
Saklama yeri belirleme veya ayrma yapanlar. (DS, DBIT, DW, DB)
Program birletirenler. (PUCLIC, EXTRN, NAME)
Segment seenler. (RSEG, CSEG, DSEG, ISEG,BSEG, XSEG)
Durum Denetimi Yapan Assembler Ynergeleri
ORG ynergesi yer (adres ) gstericinin ieriini deitirir. Bu ynerge ncesi etiket
kullanlamaz. Aada kullanlan iki rnei verilmitir. END ynergesi kaynak
dosyann son komutudur. Etiket kullanmna izin verilmez. Bu komuttan sonra
yazlan komutlar assembler tarafndan iletilmez. EQU ynergesi, yazalarn
90 Blm 4
Mikrodenetleyiciler 8051 Uygulamalar
ieriklerini sabit sayya kurmak ve i veya program belleinin, bit adreslenebilir
blgenin her bitine yeni bir isim vermek iin kullannr. DB ynergesi, program
belleinde bavuru tablosu oluturmak iin kullanlr.
Program Gelitirme
Program gelitirme ilemine ncelikle kullandmz mikrodenetleyiciye uygun
editr, assembler, linker/relocator ve simulatr programlarn seimli yaplr. Son
yllarda bu ilemlemlerin hepsini ve simulatr programlarn ieren birleik program
gelitirme ortamlar (IDE, Integrated Development Enviroment) yaygn ekilde
kullanlmaktadr. 8051 ailesi iin Keil, Raisonance, Tasking, IAR, Franklin Software ve
Hitex gibi firmalar IDE retmilerdir. Bu firmalarn deerlendirme srmlerini
internetten cretsiz olarak edinebilirsiniz. Birounun deerlendirme srmleri tam
srmnn zelliklerine sahiptir ancak sre veya dosya boyutu kstlamas ierirler.
renciler iin dosya boyutu kstlamas 2048 bayt olan IDEler yeterlidir.
Profesyoneller iin fiyat, performans ve kullanm kolayl gibi zellikleri
karlatrlarak seim yaplmaldr.
eilen IDE programnda yeni proje dosyas alr. Proje amak her IDEde farkllk
gsterir, proje dosyas kullancdan ilemcinin adn, program C dilindemi yoksa
assembler dilinde mi olacan renmek ister. Proje aldktan sonra editr dosyas
alr ve kurallara uygun olarak dosyann isimledirilip kaydedilmesi gerekir.
Kaydetme ileminden sonra editr dosyas proje dosyas ile ilikilendirilmedlidir.
Kaynak program yazldktan sonra assembly edilir. Yazm hatas var ise bu hatalar
eidi ve satr numaralar ile birlikte kullancya bildirilir. Hatalar dzeltildiktan sonra
tekrar assembly edilir ve simulatr altrlr. Simulatrde program adm adm
altrlarak ilgili birim ve yazalar belirlenen amaca ynelik olarak gzetlenir.
Simulatrde yazlan programn mantnn doru olup olmad programc
tarafndan belirlenir. Yazlan assembly programnn mantk hatalarn bulan bir IDE
yoktur.
Assembly Programlama 91
Mikrodenetleyiciler 8051 Uygulamalar

ekil-4.2 Program gelitirme aamalar.
Simulatr zerinde doruluu belirlenen programn makine dili dosyas hedeflenen
mikrodenetleyicinin program belleine yazlarak gerek ortamda altrlmaldr.
Aksi halde program gelitirme ilemi tamamlamam olur. ekil-4.2te program
gelitirmenin aamalar grafiksel olarak gsterilmitir. Yazma ilemi
mikrodenetleyiciye gre bir programlayc devre veya dungle kullanarak yaplr.
Programlayc devre ile bilgisayar aras balant seri port, paralel port veya USB port
zerinden yaplr. Kullanlan devre ve porta gre uygun arayz program ilgili
firmann internet sayfasndan edinilebilir. Arayz programlar assembly ileminden
sonra elde edilen bin, hex veya obj uzantl dosyalardan bir tanesi kullanarak yazma
ilemini yapar. Son yllarda firmalar mikrodenetleyicilere ISP (In Circuit Programmer)
zelliini (Mikrodenetleyiciyi devreden skmeden programlama) eklemilerdir.
Hatta baz reticiler program adm adm iletme ve yazalarn ieriklerini
okuyabilme olana salamlardr. Deneme devresini kendiniz tasarlayabileciniz
gibi hazr retici firmalar veya deneme kart reten firmalardan satn alabilirsiniz.
Gelitirilen programlar altrmak iin kullanlan tasarlanan sisteme emulator ad
verilir. retici firmalardan emulator devre emas ve yazlm edinebilirsiniz.
rnek Kaynak Program Sayfas
Kaynak programn ilk satrnda programn ad ve varsa srm numaras yazlmaldr.
kinci satrda yazld tarih ve yer ad yazlmaldr. nc satrda program yazan
kii veya kuruluun ad yazlmaldr. Drdnc satrda birden fazla satr olabilir.
Programn amac, alma ekli, kulland alt programla, kulland bellekler,
kulland yazalarn isimleri ve kullanm amalar yazlabilir.
Assembler program
yaz mderle makine
diline dntr.
Makine dili programn
Mikrodenetleyiciye
kopyala.
Devre zerinde
program altr.
92 Blm 4
Mikrodenetleyiciler 8051 Uygulamalar
;programn ad varsa srm numaras
;yazld tarih
;Yazan kiinin ad
;programn ilevini tanmlayan aklama
ORG 0H
BASLA: MOV A, #00H ;Komutun yapt ilemin aklamas
........ ;........
........ ;........















........ ;........
........ ;........
........ ;........
........ ;........
End
ekil-4.2 rnek kaynak program grnts.
ekil-4.4 program yazarken ve simulatrde altrrken ska kullanlan 8051in 8 ve
16 bit yazalar gsterilmitir.
Assembly Programlama 93
Mikrodenetleyiciler 8051 Uygulamalar

ekil-4.4 8051in ska kullanlan 8 ve 16 bit yazalar.
Altprogramlar ve Ynn Ku llanm
Altprogramlar ska yaplan ilemleri gerekleyen kk program paralardr.
Genellikle tek amaca yneliktir, tu takmnn okunmas, gstergeye bir karakter
yazlmas gibi, 16 bitlik iki saynn toplanmas gibi. Her altprogramn bir ismi ve en
sonunda da altprogramdan ana programa geri dn salayan RET komutu vardr.
Program akn ana programdan altprograma geiren komut CALL komutudur.
CALL komutu uzun adreslemede LCALL ve mutlak adreslemede ACALL adn alr.
Kullanlmak istenen altprogramn programa belleinin neresinde olduuna bal
olarak uygun adresleme kipi seilmelidir. Eer kabul ediyorsa seim ilemini
assembler programna brakarak sadece CALL olarak yazabilirsiniz.
CALL komutu ngilizcede ar anlamna geldii iin programclar altprograma
geme, balanma gibi deyimler yerine altprogram arma deyimi kullanlr.
Altprogram arldnda dn adresini bilir ve ilemi tamamladktan sonra ana
programda kald adrese geri dner. Ana programn ierisinde birden fazla yerden
arlabilir.
Altprogram kullanmak programn bellekte kaplad alan azaltrken, programn
yazan kiiler dnda baka kiiler tarafndan da kolay anlalmasn salar.
Altprogram arldnda geri dn adresini ynda saklar. Altprogram ierisinde
yn bu adresi bozmayacak ekilde kullanlmaldr. Program ierisinde CALL komutu
yrtldnde ana programa dn adresi, dk deerli bayt nce olmak zere,
D0 D1 D2 D3 D4 D5 D6 D7
DPTR
PC PC (Program counter)
DPH DPL
16 bit Yazalar
8 bitin yerleimi
R6
R5
R4
R3
R2
R1
R0
B
A
R7
94 Blm 4
Mikrodenetleyiciler 8051 Uygulamalar
iki bayt olarak, ynda saklanr. Program sayacna (PC) alt programn balama
adresi yklenir ve yrtme bu noktadan srdrlr. Alt programn sonunda RET
komutu ilendiinde, ynn en stnde yer alan dn adresi PC'ye yklenir ve Call
komutundan sonraki satrdan program iletilmeye devam eder.
Ynn Yaps Ve Kullanm
Yn, tmdevre zerindeki RAM bellekte verilerin geici olarak adres kullanlmadan
hzl bir ekilde saklanmas iin ayrlm blgedir. Yn iin ayrlan blge 8051de 0
127 8052'de ise 0255 aralndadr. Yn gsterici (SP) ynn o an iin en stnde
bulunan deikenin sakland adresi ierir. SP bir zel ilev yazacdr ve dorudan
adresi 81H'dir. Ynda bir deer saklanmak istendiinde, bu ileme yna veri
atma ad verilir, nce SP'nin deeri donanm tarafndan bir arttrlr ve bu adrese
saklanacak deer yazlr. Yndan bir baytn okunmas, bu ileme yndan veri
ekme ad verilir, en stteki bilgi okunur ve sonra yn gstericinin ierii
donanmca bir azaltlr. ekil-4.5te veri atma ve ekme ilemleri grafiksel olarak
gsterilmitir. Yn alan SP'ye verilen balang deeri ve yna depolanan
deerlerin miktar ile belirlenmektedir. SP'nin reset sonras deeri 07H' dir, yaza
bankalar kullanlacaksa yn gsterici en azndan 31H adresine ayarlanmaldr.
8052de ise yn alan olarak st 128 baytlk i RAM blgesi kullanlr.
MOV SP,#ynn balang adresi
Yn iaretleyiciye ivedi adreslemede ynn balang adresi yklenerek 8051de
yn i RAM blgesinde istenen deere ayarlanabilir.
Yn programc PUSH bayt ve POP bayt komutlar ile kullanlrken 8051
donanm altprogram arldnda veya kesme altprogramna balanldnda geri
dn adresini saklamak amacyla kullanr. Yrtlmekte olan ana programn
herhangi bir yerinde alt program arldnda ana programn kulland veri ve zel
ilev yazalarnn ierikleri altprogram dn ana program tarafndan kullanlyor
ise, bu yazalarn ierikleri altprogramn banda yedeklenmeli ve sonunda tekrar
yedekten alnmaldr. Eer arlan alt program ana programn kulland baz
yazalar ile ilem yapyorsa, bu yazalarn ierikleri ana veya altprogram tarafndan
korunmaldr.
PUSH dorudan adres" komutu yrtldnde aada belirtilen ilemler srasyla
gerekletirilir.
SP = SP+1
Assembly Programlama 95
Mikrodenetleyiciler 8051 Uygulamalar
(bayt) (SP) POP
POP dorudan adres" komutu yrtldnde aada belirtilen ilemler srasyla
gerekletirilir.
(SP) (bayt)
SP = SP1

ekil4.5 Yna veri atma ve yndan veri alma ilemleri.
rnek 4.1
Mov SP, #0x40 ; SPyi ayarla
Push 0x55 ; SP SP+1, M[SP] M[55] , M[41] M[55]
Pop B ; B M[55]

Yazlm Tabanl Zaman Geciktirme Dngleri
Mikrodenetleyicinin yava alan evre birimlerini beklemek veya bir olayn
gereklemesini beklemek amacyla yazlm tabanl zaman geciktirme dngleri
yazlr. Bu dnglerde bir yazaca veya bellee istenilen zamana uygun bir deer
atanr ve DJNZ komutu ile bu yazacn ierii 0 olana kadar geriye doru bir dng
oluturulur. Elde edilen gecikme sresi dng ierisinde yer alan komutlarn makine
saykllarna baldr.
Dng iin eer uygun ise R0-R7 yazalar kullanlr. Yazalar 8 bitlik olduu iin
ierisine yazlabilecek deer 1-255 aralndadr. Yaza ierisine 0 yazlmamaldr. En
Push
Pop
Yn (Stack)
Stack Pointer
96 Blm 4
Mikrodenetleyiciler 8051 Uygulamalar
basit zaman geciktirme dngsn (time delay loop) R7 yazacna 1 saysn
ykleyerek ve DJNZ komutu ile R7 yazcnn ieriini sfr olana kadar azaltarak
yazabiliriz. MOV komutu R7 yazacna 1 saysn ykler ve 1 makine sayklnda ilenir.
DJNZ komutu R7 ieriini bir azaltr, tekrar R7 yazacna yazar ve ieriinin sfr olup
olmadn test eder eer sfr deilse belirtilen adrese dallanr. Sfrsa dallanma
gereklemez sradaki komut iletilir. DJNZ komutunun 1 defa ilenmesi 2 sayklnda
gerekleir.
MOV R7,#1 1 makine sayklnda ilenir.
DJNZ R7,$ 2 makine sayklnda ilenir.
Dngnn ilenme adedi R7 ierisine yklenen deer 1 olduu iin toplam makine
saykl 3tr. Elde edilecek gecikmenin sresini hesaplamak iin 1 makine sayklnn
sresini belirlemek gerekir. f
OSC
= 12 MHz olduunda;
T= 12 / f
OSC
= 12 / 12.10
6
=1.10
-6
S = 1 S olarak hesaplanr.
t = T. Toplam makine saykl = 1 S . 3 = 3 S
Eer R7 yazacna olas en byk 8 bit say yklersek elde edilecek sreyi
hesaplayalm.
MOV R7,#255 1 makine sayklnda ilenir.
DJNZ R7,$ 2 makine sayklnda ilenir.
Dng 255 defa tekrarlanaca iin DJNZ komutunun ilenmesi iin 2x255 makine
saykl gereklidir. Mov komutu dngnn dnda kald iin yine 1 makine
sayklnda iletilecektir. Elde edilen toplam makine saykl 511, sre ise 511 Sdir.
Zaman geciktirme dngleri genelikle altprogram halinde program ierisinde
kullanlrlar. Dng says arttrlarak zaman geciktirme dngsnn sresi
istenildii kadar arttrlabilir. Kullanm yerine gre altprogram arma ve
altprogran dnme komutlar hatta yedekleme gerikiyorsa yedekleme ve geri alma
komutlar da hesaplamaya dhil edilmelidir.
Tek Dngl Zaman Geciktirme Altprogramlar
Hedeflenen sreye bal olarak zaman geciktirme altprogramlarnda kullanlan
dng says belirlenir. Tek dngl zaman geciktirme altprogramlarnda sadece bir
adet DJNZ komutu yer alr. Dngnn tekraralanma says yazaca yklenen say ile
belirlenir. Sreyi arttrmak iin dng ierisinde yer alan komut says artrlabilir.
Assembly Programlama 97
Mikrodenetleyiciler 8051 Uygulamalar
Tek dngl zaman gecktirme altprogramlarnn ak diyagram ekil-4.6te
gsterilmitir. Tek dngl zaman gecktirme altprogramlarnda elde edilecek sre
rnek altprogramda gsterildii gibi hesaplanr.
Komut Saykl Tekrarlanma Gecikme
Zgd_1: PUSH 07h 2 1 2 saykl
MOV R7,#X 1 1 1 saykl
DJNZ R7,$ 2 X 2X sayk
POP 07h 2 1 2 sayk
RET 2 1 2 sayk
T
MS
= 2X + 7 Saykl
1 mS
R7'yi Yedekle
R7>0
R7=Dng
Adedi
R7=R7-1
R7'yi Geri Al
1 mS
Hayr
Evet

ekil-4.6 Tek dngl zaman gecktirme altprogramlarnn ak diyagram.
Elde edilen forml kullanlarak X=1 ile X=255 aralnda istenilen gecikmeler
hesaplanr.
En dk gecikme;
T
MS
= 2.1+7=9 makine saykl.
En yksek gecikme;
98 Blm 4
Mikrodenetleyiciler 8051 Uygulamalar
T
MS
= 2.255 + 7=517 makine saykl.
Bu gecikmeler yeterli olmadnda dng ierisine DJNZ komutunun yan sra
iletildiinde program sayac dndaki yazalarn ieriini deitirmeyen NOP
komutu kullanlarak gecikme artrlabilir. Bu yntemle 1 mSlik zaman geciktirme
dngs yazabiliriz. Dng ierisine iki adet NOP komutu eklenir ve forml yeniden
yazlr.
Komut Saykl Tekrarlanma Gecikme
Zgd_1: PUSH 07h 2 1 2 saykl
MOV R7,#X 1 1 1 saykl
Z1: NOP 1 X X
NOP 1 X X
DJNZ R7, Z1 2 X 2X sayk
POP 07h 2 1 2 saykl
RET 2 1 2 saykl
T
MS
= 4X+7 Saykl

Elde edilmek istenen sre t=1 mS olduuna gre, 1 makine sayklnn sresi ve bu
sreyi elde etmek iin gerekli makine saykl hesaplanr. F
OSC
=12 MHz kabul edilirse;
T=12/12.10
6
= 1 S olarak hesaplanr.
T
MS
=t/T = 1000 S/1 S = 1000 makine saykl olarak hesaplanr.
1000 = 4.X+7
X=(1000-7)/4 = 248.25 olarak hesaplanr.
Tam say olmamas nedeniyle alta veya ste tamamlanmaldr. Alta
tamamlandnda 999 S, ste tamamlandnda 1003 S gecikme elde edilir.
Kullanld uygulama hangisini kabul ediyorsa o deer seilir. Tam deer elde
etmek isteniyorsa alta tamamlanr ve eksik kalan 1 S iin dng dna NOP
komutu yazlr.
Zgd_1:
PUSH 07h ;R7yi yedekle.
MOV R7, #248 ;1 mS iin gerekli sayy ykle
Assembly Programlama 99
Mikrodenetleyiciler 8051 Uygulamalar
Zgd_11:
NOP ;Sreyi ayarla.
NOP
DJNZ R7,Zgd_11 ;R7 sfr olana kadar tekrarla.
POP 07h ;R7yi yedekten al.
NOP ;1 S eksik tamamlanr.
RET ;ana programa dn.
ift Dngl Zaman Gecktirme Altprogramlar
Tek dngl zaman gecktirme altprogramlar ile elde edilemeyecek sreleri elde
etmek ikinci bir dng yazarak mmkndr. Yazlan ikinci dngnn her tekrarnda
birinci dng yeniden balayacak ve elde edilen sre uzayacaktr. Benzer kurala
uyularak veya daha fazla dngl zaman geciktirme altprogramlar yazlabilir.
ekil-4.7de ift dngl zaman geciktirme altprogramnn ak diyagram
gsterilmitir. kinci dng sayac olarak R6 yazac kullanlmtr. eride yer alan
birinci dng sayacna 8 bitlik x says, ikinci dng sayacna 8 bitlik y says
yklenmitir.
Komut Saykl Tekrarlanma Gecikme
Zgd_2: PUSH 07h 2 1 2 saykl
PUSH 06h 2 1 2 saykl
MOV R6,#y 1 1 1 saykl
Z2: MOV R7,#x 1 y y saykl
DJNZ R7,$ 2 x.y 2xy saykl
DJNZ R6,Z1 2 y 2y saykl
POP 06h 2 1 2 saykl
POP 07h 2 1 2 saykl
RET 2 1 2 saykl
T
MS
= 2xy+3y+11

100 Blm 4
Mikrodenetleyiciler 8051 Uygulamalar
ZGD2
R7'yi Yedekle
R7>0
R6=y
R7=R7-1
R7'yi Geri Al
1 mS
Hayr
Evet
R6'y Yedekle
R7=x
R6>0
R6=R6-1
Hayr
Evet
R6'y Geri Al

ekil-4.7 ift dngl zaman gecktirme altprogramlarnn ak diyagram.
rnek:
f
OSC
=8 MHz olan 8051 iin 100 mSli zaman geciktirme altprogramn yazn.
T = 12/8.10
6
= 1.5 S
T
MS
= t / T = 100000 S / 1.5 S = 66666.66 saykl
T
MS
= 66667 saykl alnabilir.
66667 = 2xy + 3y + 11
Assembly Programlama 101
Mikrodenetleyiciler 8051 Uygulamalar
ki bilinmeyenli bir denklemin zlebilmesi iin iki denkleme gereksinim vardr.
Fakat eldeki veriler ile ikinci bir denklem yazmak mmkn deildir. Bu denklem
iterasyon (sral yaklam ) yntemi ile zlebilir. Bu yatemde x veya yye tahmini
deer verilir dieri hesaplanr eer elde edilen zm geerli ise yaklam dorudur.
Deilse art veya eksi ynde yaklama zme ulaana kadar devam edilir. Bu
denklemde ierdeki dngnn adedini belirleyen x deeri en byk deer olan 255
yaklam yaplarak zme balanr.
66667 = 2.255.y + 3y + 11
66667-11 = 513y
y = 129.93
ste tamamlayarak 130 kabul edilebilir. Kabul edilen ve bulunan deerler
denklemde yerine konarak tekrar hesaplama yaplr.
66667 = 2.255.130 + 3.130 + 11
66667 =66701
Yaplan hata 34 makine saykldr. 1 makine saykl 1.5 S olduuna gre 51 Slik
bir sapma gerekleir. Bu deer kullanld uygulamaya bal olarak kabul edilebilir.
Bu hata yaklama devam edilerek kltlebilir.
x = 254 edilirse.
66667 = 2.254.y + 3.y + 11
y = 130.44 alta tamamlanr 130 alnr ise sapma -220 ste tamamlanrsa
+285 olur. Sapma artmtr, zme devam edilirse hata klecektir. Admlar birer
birer azaltmak yerine daha yksek deerle yaklam yaplabilir.

102 Blm 4
Mikrodenetleyiciler 8051 Uygulamalar
rnek Altprogramlar
RNEK 4.2 16 Bit Deikene 8 Bit Deiken Toplama.
/*Bu alt program Ay DPTRye toplar, tama var ise elde
bayra kurulur. letilmeden nce DPTRye ve Aya bir
deer girilmelidir.
lem sonunda;
DPTR=DPTR+A
Etkilenen yazalar;
PSW.CY, DPTR */
topla16_8:
push acc ; Ay yedekle.
add a,dpl ; Aya DPL topla.
mov dpl,a ; Sonucu DPLye yaz.
mov a,dph ; DPHyi al.
addc a,#00h ;elde var ise YDBt bir artr.
mov dph,a ; DPH yaz.
pop acc ; Ay yedekten al.
ret ; Ana programa geri dn.

RNEK 4.3: 16 Bit Deikenden 8 Bit Deiken karma.
/*Bu alt program DPTR yazacndan Accyi karr. Sonu
negatif ise elde bayran kurar. letilmeden nce
DTPRye ve Accye bir deer girilmelidir. lem sonunda;
DPTR=DPTR-Acc
Etkilenen yazalar;
PSW.CY, DPTR */
cikar16__8:
push acc ; Ay yedekle.
clr c ; Eldeyi temizle
xch a,dpl ; A ile DPLyi yer deitir.
subb a,dpl ; kar.
mov dpl,a ; DPLyi yaz
mov a,dph ; DPHyi al.
subb a,#00h ;Bor var ise YD ksm bir azalt.
mov dph,a ; DPHyi yaz.
pop acc ; Ay yedekten al
Assembly Programlama 103
Mikrodenetleyiciler 8051 Uygulamalar
ret ; Ana programa geri dn


RNEK 4.4 DPTR Yazacn Bir Bit Saa teleme.
/* Bu alt program DPTR yazacnn ieriini aritmetik bir
bit saa teler. letilmeden nce Dptr ierisine bir
deer girilmeli. */
Dptrsag:
Push acc ; Ay yedekle.
Clr c ; Eldeyi temizle.
Mov a,dph ; DPTRnin yksek ksmn al.
Rrc a ; Saa tele.
Mov dph,a ; DPHye yaz.
Mov a,dpl ; DPTRin dk ksmn al.
Rrc a ; Saa tele.
Mov dpl,a ; DPLyi yaz.
Pop acc ; Accyi tedekten al.
Ret ; Ana programa dn.

RNEK 4.5 DPTR Yazacn Bir Bit Sola teleme.
/* Bu alt program DPTR yazacnn ieriini bir bit sola
teler. letilmeden nce Dptr ierisine bir deer
girilmeli. */
Dptrsol:
Push acc ; Ay yedekle.
Clr c ; Eldeyi temizle.
Mov a,dpl ; DPTRnin DDBn al.
Rlc a ; Sola tele.
Mov dpl,a ; DPLye yaz.
Mov a,dph ; DPTRin YDBn al.
Rlc a ; Sola tele.
Mov dph,a ; DPHye yaz.
Pop acc ; Accyi tedekten al.
Ret ; Ana programa dn.


104 Blm 4
Mikrodenetleyiciler 8051 Uygulamalar
RNEK 4.6 DPTRnin 10 Katn Alma.
/* Bu alt program DPTRye 10 arpar. DPTRye ilem
ncesi bir deer yazlmaldr. lem sonunda;
DPTR = DPTR * 10
Etkilenen yazalar;
PSW.CY, DPTR */
DPTRX10:
push b ;Byi yedekle.
push acc ;Ay yedekle
mov a,dpl ;Dk ksm al
mov b,#10 ;arpan Bye yaz
mul ab ;BA = DPL * 10
mov dpl,a ;Sonucun dk ksmn DPL yaz
push b ;Sonucun yksek ksmn yedekle
mov a,dph ;Yksek ksmn al
mov b,#10 ;arpan Bye yaz
mul ab ;BA = DPH * 10
pop b ;B yedekten al
add a,b ;Dk ksmdan oluan ile topla
mov dph,a ;Sonucun yksek ksmn DPH yaz
pop acc ;Ay yedekten al
pop b ;Byi yedekten al
ret ;Ana programa dn

RNEK 4.7 DPTRyi 100 le arpma.

elde bayra kurulur. DPRTRye ilem ncesi bir deer
yazlmaldr. lem sonunda;
DPTR = DPTR * 100
Etkilenen yazalar;
PSW.CY, DPTR */

DPTRX100:
call DPTRX10 ; 10 ile arp
call DPTRX10 ; 100 ile arp
ret ; ana programa geri dn.

Assembly Programlama 105
Mikrodenetleyiciler 8051 Uygulamalar
RNEK 4.8 DPTRnin 1000 Katn Alama.
/* Bu alt program DPTRyi 1000 ile arpar. Tama olursa
elde bayra kurulur. DPRTRye ilem ncesi bir deer
yazlmaldr. lem sonunda;
DPTR = DPTR * 1000
Etkilenen yazalar;
PSW.CY, DPTR */

DPTRX1000:
call DPTRX10 ; 10 ile arp
call DPTRX10 ; 100 ile arp
call DPTRX10 ; 1000 ile arp
ret ; ana programa geri dn.

rnek 4.9 DPTRyi 4 Bit Saa tele
/* Bu Alt Program Dptryi 4 Bit Sola tele.
Etkilenen Yazalar: Psw.Cy, Dptr */

Dptrrot4:
Push Acc ; Ay Yedekle
Push 0 ; R0 Yedekle
Mov R0,#4 ; Sayac Ayarla
L1:
Clr c ;Eldeyi temizle
Mov A,Dph ;YDB Al
Rrc A ;Saa tele
Mov A,Dph ;YDB yerine yaz
Mov A,Dpl ;DDB Al
Rrc A ;Saa Dndr
Mov Dpl,A ;DDB yerine yaz
Djnz R0,L1 ;Saya Sfrlana kadar Yap
Pop 0 ;Yedekten Al
Pop Acc ;Yedekten Al
Ret ;Ana Programa Geri Dn




106 Blm 4
Mikrodenetleyiciler 8051 Uygulamalar
rnek 4.10 Dptr 4 Bit Sola teleme
/* Bu Alt Program Dptr Yazacn 4 Bit Sola teler, Dk
Deerli Bitlere sfr Yerletirir.
Etkilenen Yazalar;
Psw.Cy, Dptr */

Dptrotele_4:
Push Acc ; Ay Yedekle
Push 0 ; R0 Yedekle
Mov R0,#4 ; teleme Sayacn Kur
L1: Clr C ; teleme in Sfrla
Mov A,Dpl ; Dptrnin Dk Ksmn Al
Rlc A ; Sola tele
Mov Dpl,A ; Dplyi Yaz
Mov A,Dph ; Dptrnin Yksek Ksmn Al
Rlc A ; Sola tele
Mov Dph,A ; Dphyi Yaz
Djnz R0,L1 ; Saya Sfr Olana Kadar Devam Et
Pop 0 ; Yedekten Al
Pop Acc ; Yedekten Al
Ret ; Ana Programa Geri Dn

RNEK 4.11 16 Bitlik Toplama
/*Bu program 16 bit iki sayy toplar.

R7R6+R5R4=R3R2R1 */

topla16bit:
MOV A,R6 ;Birinci deikenin DDBn Aya al
ADD A,R4 ;kinci deikenin DDB ile topla
MOV R1,A ;Sonucun dk baytn yaz
MOV A,R7 ;Birinci deikenin YDBn Aya al
ADDC A,R5 ;kinci deikenin YDBn ile topla.
MOV R2,A ;Sonucun dk baytn yaz
MOV A,#00h ;16 bitten tama varsa sonucu 3. bayt
ADDC A,#00h ;olarak yaz
MOV R3,A ;sonucun 3. baytn yaz
RET ;ana programa geri dn
Assembly Programlama 107
Mikrodenetleyiciler 8051 Uygulamalar

RNEK 13: 16 Bitlik karma
/* Bu program 16 bit saydan 16 bit sayy karr.

R7R6-R5R4=R3R2
*/
Ckar16bit:
MOV A,R6 ;1. deikenin DDBn Aya al
CLR C ;Eldeyi temizle
SUBB A,R4 ;2.deikenin DDBn Adan kar
MOV R2,A ;Sonucun dk ksmn yaz
MOV A,R7 ;1. deikenin YDBn Aya al
SUBB A,R5 ;2. deikenin YDBn Adan kar
MOV R3,A ;Sonucun yksek ksmn yaz
RET ;sonucu R2 ve R3te ana programa gtr.

RNEK 14: 16 Bitlik arpma
/* 16 bit arpma 8 bit arpma kullanlarak yaplr.
arpm sras ve ara toplamalar dikkatli yapldnda
ilem basittir. Aadaki tabloda rnek arpma ilemi
gsterilmitir.


Bayt 4 Bayt 3 Bayt 2 Bayt 1
1. Deiken . . 62 30
2. deiken . . 43 2E
1. Ara Sonu . . 08 A0
2. Ara Sonu . 11 9C .
3. Ara Sonu . 0C 0A .
4. Ara Sonu 19 A6 . .
Sonu 19 C4 34 A0

Bu rnekte verilerin yazl olduu ve sonularn
saklanaca yaza isimleri aadaki tabloda
verilmitir.


108 Blm 4
Mikrodenetleyiciler 8051 Uygulamalar
Bayt 4 Bayt 3 Bayt 2 Bayt 1
1. Deiken R6 R7
2. deiken R4 R5
Sonu R0 R1 R2 R3

R5 ile R7yi arp, 16 bit sonucu R2 ve R3e yaz.
R5 ile R6y arp, 16 bit arpm R1 ve R2ye topla.
R4 ve R7yi arp, 16 bit arpm R1 ve R2ye topla.
R4 ve R6y arp, 16 bit arpm R0 ve R1e topla. */
Carp16bit:
; R5 ile R7yi arp, 16 bit sonucu R2 ve R3e yaz
MOV A,R5 ;R5i akmlatre al
MOV B,R7 ;R7yi B al
MUL AB ;iki deeri arp
MOV R2,B ;Bde yer alan arpmn YB R2ye yaz
MOV R3,A ;Ada yer alan arpmn DB R1e yaz
;R5 ile R6y arp, 16 bit arpm R1 ve R2ye topla.
MOV A,R5 ;R5i akmlatre tekrar al
MOV B,R6 ;R6y Bye al
MUL AB ;ki deeri arp
ADD A,R2 ;arpmn DB R2ye ekle
MOV R2,A ;Toplam R2ye yaz
MOV A,B ;arpmn YB toplama iin Aya aktar
ADDC A,#0h ;DB elde var ise yksek ksma topla
MOV R1,A ;Sonucu R1e yaz
MOV A,#0h ;Ay sfrla
ADDC A,#0h ;Elde olutu ise bir st ksma aktar
MOV R0,A ;Toplam R0a yaz.
;R4 ve R7yi arp, 16 bit arpm R1 ve R2ye topla
MOV A,R4 ;R4 arpma iin Aya al
MOV B,R7 ;R7yi Bye al
MUL AB ;ki deeri arp
ADD A,R2 ;arpmn dk ksmn R2ye ekle
MOV R2,A ;Toplam R2ye yaz
MOV A,B ;arpmn YB toplama iin Aya aktar
ADDC A,R1 ;Elde ile birlikte R1e ekle
MOV R1,A ;Sonucu R1e yaz
MOV A,#00h ;Ay sfrla
ADDC A,R0 ;Elde ile birlikte R0a ekle
MOV R0,A ;Sonucu R0a yaz.
Assembly Programlama 109
Mikrodenetleyiciler 8051 Uygulamalar
;R4 ve R6y arp, 16 bit arpm R0 ve R1e topla.
MOV A,R4 ;R4 tekrar akmlatre al
MOV B,R6 ;R6y Bye al
MUL AB ;ki deeri arp
ADD A,R1 ;arpmn dk ksmn R1e ekle
MOV R1,A ;sonucu R1e yaz
MOV A,B ;Yksek deerli ksm Aya aktar
ADDC A,R0 ;YDBa topla
MOV R0,A ;Sonucu R0a yaz
RET ;son

110 Blm 4
Mikrodenetleyiciler 8051 Uygulamalar
Sorular
1. MOV DPTR,#02FF ve INC DPTR komutlar srasyla iletildikten DPTRnin
ierii nedir?
2. Akmlatrn yedici bitini dier bitleri deitirmeden hangi komut kurar?
3. MOV PSW,#0 ve SETB PSW.5 komutlar srasyla iletildikten sonra etkin
yaza bankas hangisidir?
4. MOV A,#039H ve INC A komutlar srasyla iletildikten akmlatrn ierii
nedir?
5. MOV A,#0 ve DEC A komutlar srasyla iletildikten akmlatrn ierii ve
elde bayrann durumu nedir?
6. Akmlatrn ieriin 2 ile arpan komutlar hangisidir?
7. Reset sonras aadaki program adm modunda iletildiinde belirtilen
yaza ve belleklerin ieriklerini her adm iin belirleyin.
org 0 A B R0 R7 20H 1FH
Setb 02H
Mov B,#235
Mov A,B
Cpl A
ORL A,#F0H
Addc A,B
Div AB
Mov R0,A
Mov 20H,B
Orl PSW,#24
Mov R0,#40
Mov R7,#246
Sjmp $

8. veri belleinin 30H ile 5FH aralnda yazl saylar i veri belleinin st
128 baytlk ksmnn A0H adresinden balayarak kopyalayan program
yazn.
Assembly Programlama 111
Mikrodenetleyiciler 8051 Uygulamalar
9. 030h-040h aralnda bykten ke sral saylar ayn yerde kkten
bye sralayan program yazn.
10. Y,S,Z,V,T bir bitlik deikenler olduuna gre, Y=ZS+VS+ZT+VT mantk
ilemini yapan program 8051 mikrodenetleyicisini kullanarak yazn.;
a. Balant emasn izin.
b. Kaynak programn aklamalar ile birlikte yazn.
11. Y,S,Z,V,T bir bitlik deikenler olduuna gre, Y=(Z+V)(S+T) mantk ilemini
yapan program 8051 mikrodenetleyicisini kullanarak yazn.
a. Balant emasn izin.
b. Kaynak programn aklamalar ile birlikte yazn.

Mikrodenetleyiciler 8051 Uygulamalar
MCS-51
Sayclar
Zamanlayclar




Giri
Endstriyel denetim uygulamalarnda ska kullanlan sayclar mikrodenetleyicilere
ilk eklenen birimdir. 8051in yeni trevlerinde saylar 8e kadar kmtr.
Zamanlayc asenkron saycdan elde edilir. Asenkron sayclar bir dizi flip-flopun
ardk olarak balanmasyla oluur. lk flip-flop giriine saycnn hzn belirleyen,
saat iareti uygulanr. Her flip-flop k bir sonrakinin saat giriine balanr. Flip-
flop says n ise saycnn sayma aral 2
n
dir. En sona yerletirilen flip-flop veya
bayrak zamanlaycnn tama durumunu test eder. Saylan en byk deerden sonra
zamanlayc veya asenkron sayc tekrar en dk deere ulatnda bu bayrak veya
flip-flop kurulur. Bu bayran durumu yazlm veya kesmeye izin verildiinde
donanm tarafndan denetlenebilir. rnek olarak 16 bit zamanlaycy ele alacak
olursak, zamanlayc FFFFH deerinde 0000H deerine geite bayrak kurulur.
ekil - 5,1de 3 bitlik basit bir zamanlaycnn devresi gsterilmitir. Bayrak olarak D
tutucusu kullanlmtr. Sayc flip-floplar den kenar tetikli D flip-floplardr. Her
flip-flop Q klar kendi D giriine balanmtr. Q klar ise bir sonrakinin saat
114 Blm 5
Mikrodenetleyiciler 8051 Uygulamalar
girilerine balanmtr. ekil5.1bde bu zamanlaycya ait zamanlama diyagram
gsterilmitir. Birinci flip-flop kn her saat vurusunun den kenarnda tmler
bylece giriine uygulanan saat frekansn ikiye bler. kinci flip-flop ise Q
0
n den
kenarlarnda kn tmler, birinci flip-flopun k frekansn ikiye blm olur.
Dierleri de ayn yntemle alr.
Zamanlayclar sabit frekansl osilatr iareti ile tetiklendiinde zaman lmek
amacyla, dardan herhangibir sensrden elde edilen vuru ile tetiklenirse olay
sayma amaclla kullanlr. Bu nedenle 8051 zerindeki zamanlayclara
zamanlayc/sayc ad verilir.

(a). 3 bit zamanlayc devresi

(b). 3 bit zamanlayc zamanlama diyagram.
ekil - 5.1 3 bit zamanlayc devresi ve zamanlama diyagram.
D


Saat
Q
Q

0
C
(DDB)

Q
Q
0
1

Q
D
2

(YDB)
Q
Sayma

Bayrak
C
0

1
Q
1

2

3
D
4

5
Q
6

7
C
0

Bayrak 7den 0a geite ekilir

D Q
C
Q
b
Saat
DDB YDB
+5 V
Bayrak FF
Bayrak

Q
2

8051 Zamanlayclar 115
Mikrodenetleyiciler 8051 Uygulamalar
Zamanlayc Yazalar
8051 zamanlayclarn programlamak iin 6 adet zel amal yaza kullanlr. Bu
yazalardan drt tanesi zamanlaycnn deerinin tutulduu yazalardr, dier ikisi
ise zamanlayc alma kipini belirleme ve sonularn deerlendirmenin yapld
yazalardr. 8052de zamanlayc 2 iin bunlara ek olarak be adet yaza yer
almtr. Bu yazalarn hepsi izelge5.1de adresleri ile birlikte verilmitir.
Zamanlayclar denetleyen yazalar bit adreslenebilir yazalardr, dier yazalar ise
bayt adreslenebilir.
SFR Kullanm Amac Adres Bit Adresleme
TCON Denetim 88H Var
TMOD alma kipi belirleme 89H Yok
TL0 Zamanlayc 0 DDB 8AH Yok
TL1 Zamanlayc 1 DDB 8BH Yok
TH0 Zamanlayc 0 YDB 8CH Yok
TH1 Zamanlayc 1 YDB 8DH Yok
T2CON
*
Zamanlayc 2 denetim C8H Var
RCAP2L
*
Zamanlayc DDB yakalama CAH Yok
RCAP2H
*
Zamanlayc YDB yakalama CBH Yok
TL2
*
Zamanlayc 2 DDB CCH Yok
TH2
*
Zamanlayc 2 YDB CDH Yok
* 8051, 8751, 8031 de yoktur.
izelge - 5.1 Zamanlayc Yazalar
Zamanlayc Mod Seme Yazac
TMOD yazac zamanlayc 0 ve zamanlayc 1in alma kipini belirleyen iki adet drt
bitlik gruptan oluur. izelge5.2de bu bitlerin grevleri gsterilmitir.
Gate biti zamanlaycnn almasn dardan denetlemek istediimizde kullanlr.
Bu bit kurulduunda Zamanlayc 1de INT1, Zamanlayc 0da INT0, yksek seviye
yaplmadnda zamanlayc dier tm koullar yerine gelse bile almaz. Bu biti
ksaca d izin biti olarak adlandrabiliriz. C/T biti zamanlaycnn i saat
116 Blm 5
Mikrodenetleyiciler 8051 Uygulamalar
kaynandan m? Yoksa TX giriine uygulanan d kaynaktan m tetikleme iaretini
alacan seer. kaynaktan tetiklendiinde zaman dilimi lt iin zamanlayc
ad verilirken, d kaynaktan tetiklendiinde darda gelien olay sayd iin sayc
ad verilir. M1 ve M0 bitleri ise zamanlayclarn alma kiplerini (modlarn) seer.
izelge-5.3te alma kiplerinin seimi gsterilmitir. Kip 0 8048den kalan bugn
kullanm fazla olmayan 13 bit zamanlay olarak almasdr. Kip1 16 bit
zamanlayc almas, kip 2 8 bit yeniden yklemeli zamanlayc almas ve kip 3 8
bit ayrk zamanlayc almas olarak adlandrlmtr. alma kipleri zamanlayc ve
sayc alma bitinden bamsz alr. Bu alma kipleri T C / biti 1 olsa da 0 olsa
da ayn ekilde seilir.
BT ADI Z/S Aklama
7 GATE 1 Geit biti kurulduunda T1 sadece INT1 yksek seviyede ise
alr.
6 C/T 1 Sayc/zamanlayc seme biti, 1 sayc, 0 zamanlayc.
5 M1 1 Kip bit 1 (Baknz izelge-5.3)
4 M0 1 Kip bit 0 (Baknz izelge-5.3)
3 GATE 0 T0 geit biti.
2 C/T 0 Sayc zamanlayc seme biti, 1 sayc, 0 zamanlayc.
1 M1 0 Kip bit 1 (Baknz izelge5.3)
0 M0 0 Kip bit 0 (Baknz izelge5.3)
izelge - 5.2 TMOD yazacnn ierii ve grevleri.
M1 MO KP AIKLAMA
0 0 0 13 bit zamanlayc kipi
0 1 1 16 bit zamanlayc kipi.
1 0 2 8 bit yeniden yklemeli zamanlayc kipi.
1 1 3 Ayrk zamanlayc kipi.
izelge-5.3 Zamanlayc alma kipleri.
Zamanlayc Denetim Yazac
8051 Zamanlayclar 117
Mikrodenetleyiciler 8051 Uygulamalar
TCON yazac zamanlayc 0 ve zamanlayc 1in durum ve denetim bitlerini ierir.
izelge5,4de ierii, bitlerin isimleri ve bit adresleri gsterilmitir. Yksek deerli
drt bit zamanlayclar altrma ve kapama ilemlerini yapar TR1, TR0. Dier iki
bit ise zamanlayc altrld ise tama olutuunda kesme istenip istenmeyeceini
belirler, TF0, TF1. Dk deerli drt bitin grevi ise zamanlayclar ile ilgili deildir.
D kesme kaynaklarn altrma ve denetleme grevlerini stlenmilerdir. Bu
bitlerin almas kesmeler ksmnda aklanacaktr.
Zamanlayc alma Kipleri
Aada her iki zamanlaycnn almas aklanmtr. ki zamanlaycnn birok
ilemi benzerdir. Aklama yaplrken aklanan ilem her iki zamanlaycda da
geerli ise zamanlayc numaras yerine X iareti yerletirilmitir. ekil5.2de her
alma kipinde TLx, THx ve TFx ald grevler aklanmtr.
13 Bit Zamanlayc alma Kipi
Kip 0 8051in nceki srm olan 8048e uyumlu olabilmesi iin kullanlmtr. Yeni
tasarmlarda bu alma kipi kullanlmaz. TLxin 5 biti ile THxin 8 biti 13 biti
oluturur. TLxin dk deerli 3 biti kullanlmaz. ekil5.2de kip 0n almas
gsterilmitir. Bu alma kipinde zamanlayc 0 ile 2
13
aralnda sayar makine
saykl 1 mikro saniye olduunda en fazla 8192 mikrosaniyelik bir zaman gecikmesi
salayabilir.

ekil5.2 Kip 0 13 bit zamanlayc olarak alma.
BT ADI ADRES AIKLAMA
TCON.7 TF1 8FH T1 tama bayra. T1de tama olduunda
kurulur ve kesme ister.
TCON.6 TR1 8EH T1 altrma/durdurma biti.
TCON.5 TF0 8DH T0 tama bayra. T0da tama olduunda
kurulur ve kesme ister.
Zamanlayc saati
TLX (5 bit)

(5 bit)
D
1

THX (8 bit) TFX
118 Blm 5
Mikrodenetleyiciler 8051 Uygulamalar
TCON.4 TR0 8CH T0 altrma/durdurma biti.
TCON.3 IE1 8BH IT1 1 ise; INT1 giriinde oluan den kenarda
kurulur ve kesme ister.
TCON.2 IT1 8AH 1 den kenarda kesme alglanr.
0 dk seviye de kesme alglanr.
TCON.1 IE0 89H IT0 1 ise; INT0 giriinde oluan den kenarda
kurulur ve kesme ister.
TCON.0 IT0 88H 1 den kenarda kesme alglanr.
0 dk seviye de kesme alglanr.
izelge5.4 TCON yazacnn bitleri ve grevleri.
16 Bit Zamanlayc Kipi
Kip 1 16 bit zamanlayc alma kipidir. almas kip 0 ile ayndr fakat bu kipte 16
bitin tamam kullanlr. Saat vurusu TLxin DDBine uygulanr, TLxin 7 numaral k
THxin DDBinin tetikleme giriine uygulanr. Sayma 0000Hden balar 0001H,
0002H gibi devam eder. Tama FFFFHden 0000Hye geite gerekleir. Bu anda
bayrak kurulur sayma devam eder. TCON yazacndaki TFx bayra yazlm ile okunup
yazlabilir. ekil-5.3de bu kipin almas gsterilmitir. Saycnn en yksek deerli
biti THx yazacnn 7 numaral bitidir, en dk deerli biti ise TLxin 0 numaral
bitidir. En dk deerli bitte giri saat frekans ikiye, en yksek deerli bit knda
ise 65 536ya blnm olarak elde edilir.

ekil-5.3 Kip 1 16 bit zamanlayc olarak alma
8 Bit Yeniden Yklemeli Kip
Bu alma kipinde TLx 8 bit sayc olarak alrken THx yeniden ykleme deerini
ierir. Sayma ilemi THx iine yazlan saydan balar FFHden bir sonraki sayya
getiinde tama bayra kurulur ve THxde saklanan deer tekrar TLx yklenir ve
saymaya buradan balanr. rnek olarak THxe 5DH yklenmi olsun sayc 5DH ile
FFH aras sayar. Her FFHden 5DHye geite tama bayra kurulur. ekil-5.4de
zamanlaycnn kip 2de almas gsterilmitir. Bu alma kipinde elde edilebilen
en yksek sayma deeri 256dr. 1 Mhzlik tetikleme iareti kullanldnda elde
edilebilecek en uzun zaman dilimi 256 makine saykl olacaktr.
Zamanlayc saati TLX (8 bit)

C


THX (8 bit) TFX
8051 Zamanlayclar 119
Mikrodenetleyiciler 8051 Uygulamalar

ekil-5.4 Kip 2 Yeniden yklemeli 8 bit zamanlayc olarak alma
Ayrk Zamanlayc Kipi
Kip 3 ayrk zamanlayc kipidir. Dier zamanlayclardan farkldr. Zamanlayc 1 bu
kipte almaz. Zamanlayc 0 ise TL0 ve TH0 8er bitlik iki ayr zamanlayc olarak
alrlar. TL0 tama annda TF0 kurarken, TH0 tama annda TF1i kurar. Bu
alma kipinde 8051 nc bir zamanlaycya sahip olur. ki tanesi 8 bitlik, bir
tanesi 16 bitliktir. ekil-5.3te zamanlaycnn kip 3te almas gsterilmitir.
Zamanlayc 0 kip 3te alrken zamanlayc 1 tama bayran ihtiya duymayan
alma kipinde zellikle seri kanaln baud rateini retmek iin kullanlabilir. Hata
ile bayrak kullanlacak kip seilirse TF1 T1deki tamadan etkilenmez TH0n
tamasn gsterir.

ekil-5.5 Kip 3 ayrk iki adet 8 bit zamanlayc olarak alma
Tetikleme Kaynaklar
8051 zamanlayclar ieriden makine saykl hznda dardan ise T0 ve T1 girilerine
uygulanan tetikleme iaretinin frekansnda sayar. Eer uygulanan tetikleme iareti
periyodik ise zaman dilimi llebilir deiken ise olay saymas yaplabilir.
Zamanlayc ayarlanrken TMOD yazac ierisindeki C/T biti deitirilerek saat
iaretinin kayna belirlenebilir. Bu bit 0 olduunda i osilatrden 1 olduunda ise
d tetikleme giriinden tetiklenir.
Yeniden
ykle
TL0 (8 bit)
TLX

1

C

)
TF0
TFX
Zamanlayc saati
Zamanlayc saati
TH0 (8 bit)
THX (8 bit)
TF1
Zamanlayc saati
120 Blm 5
Mikrodenetleyiciler 8051 Uygulamalar

ekil-5.6 Zamanlaycy tetikleme kaynaklar
Eer T C / biti 1 yaplarak d tetikleme seildiyse zamanlayc sayalarn d
tetikleme giriine uygulanan vurularn den kenarlarnda bir arttrlr. Darda
oluan bir olay sayd iin bu alma ekline sayc ad verilir. D tetikleme iareti
zamanlayc 0 iin P3.4ten zamanlayc 1 iin P3.5ten yaplr. Bu hatlarn alternatif
adlar da T0 ve T1 olarak bilinir. ekil-5.6da i ve d tetikleme kaynaklarnn
balants gsterilmitir. D tetikleme girii her makine sayklnn S5 P2 faz boyunca
rneklenir. Vuru bir saykl boyunca yksekte kalr bir sonraki sayklda de
geerse sayc arttrlr. Artrma ilemi takip eden saykln S3 P1 faznda yaplr. 1den
0a d 2 makine sayklnda denetlenebildii iin girie uygulanan vurunun
frekans 12 Mhz kristal kullanldnda 500 KHzden fazla olamaz.
Zamanlayclarn Kullanm
Zamanlayclar kullanmadan nce alma kipini, tetikleme kaynan ve balang
deerini belirlememiz gerekir. Bu ayarlamalar yapldktan sonra zamanlaycy
balatma bitini kurarak ilemi balatabiliriz. Zamanlayclarn sayma yazalar
alrken okunabilir fakat yazlamaz. Yazma ilemi iin ncelikle zamanlaycnn
durdurulmas gerekir.
Zamanlayclarn ayarlama sras.
Tetikleme kayna seilir.
alma kipi seilir.
Balang deeri belirlenir.
Zamanlayc balatlr.
OSC
12
T C /
T
X
0
1
Z/S saati
8051 Zamanlayclar 121
Mikrodenetleyiciler 8051 Uygulamalar

ekil-5.7 Zamanlaycy 1in kip 1de almas
Zamanlaycy 1 altrmak iin;
SETB TR1
Komutunu, durdurmak iin;
CLR TR1
Komutunu yazma yeterlidir. Zamanlaycnn almas iin eer dardan bir
donanm onay gerekiyorsa bu ilem TMOD yazac ierisindeki GATE kurularak
yaplr. Bu bit kurulduunda d kesme girii INTxi kurulmadka dier koullar grine
gelse dahi zamanlayc almayacaktr.
ORL TMOD,#00001000B ;Zamanlayc 0n GATE bitinin kurulmas.
ORL TMOD,#10000000B ;Zamanlayc 1n GATE bitinin kurulmas.
ANL TMOD,#11110111B ;Zamanlayc 0n GATE bitinin temizlenmesi.
ANL TMOD,#01111111B ;Zamanlayc 1n GATE bitinin temizlenmesi.
Dier bitleri deitirmeden GATE bitinin kurulmas ve temizlenmesi ORL ve ANL
komutlar ile yaplr.
Zamanlayc 2
8052 ve trevlerinde yer alan zamanlayc 2 dier zamalayclar T0 ve T1e gre
gelimi alma kiplerine sahiptir. Zamanlayc 2nin kip seme bitleri, denetim biti
ve zaman am bayra T2CON yazacnda yer alr. Zamanlayc 2 yazalar ise TL2 ve
OSC

12
C/T
T1
TR1
GATE
TH1 TL1 TF1
8051
INT1
122 Blm 5
Mikrodenetleyiciler 8051 Uygulamalar
TH2 olarak adlandrlmtr. 16 bit yeniden ykleme kipinde alabildii iin yeniden
ykleme deerinin tutulmas iin iki adet 8 bit yaza ayrlmtr. RCAP2L ve RCAP2H
olarak adlandrlan bu yazalar, yakalama kipinde yakalama yazalar olarakta
kullanlr. Zamanlayc 2 denetim yazac, T2CON bit adreslenebilir, bu yazacn
bitlerinin adlar ve grevleri izelge-5.6de gsterilmitir. Zamanlayc 2 tetiklemesi
sistem saati ile veya d kaynaktan yaplabilir, seim T2CON yazacnda yer alan
C/T2 biti ile yaplr. D kaynak seildiinde T2 giriinden (P1.0) uygulanan vurunun
frekansna gre sayma yaplr. Bu tetikleme darda gelien olaylar saymak veya
sistem saati dnda bir referansa gre zaman lmek iin kullanlr.
Zamanlayc 1 ve 0dan farkl olarak Zamanlayc2de d balantda baz eklentiler
vardr. C/T2 biti ile d tetikleme kayna seildiinde iaret dier zamanlayclarda
olduu gibi, T2 giriine (P1.0) uygulanr. Bunun dnda Zamanlayc 2nin T2EX
(P1.1) olarak adlandrlan bir d girii daha vardr. Bu hattn izinlemesi EXEN2 biti ile
yaplr. Bu bit kurulduunda T2EX giriinde oluan 1den 0a geite zamanlaycnn
seilen alma kipine gre yakalama veya yeniden ykleme yaplrken, ayn
zamanda d hat gsterge bayra olan EXF2 kurulur. EXF2 kesme istei ile TF2
kesme istekleri VEYAlanak tek bir kesme istei olarak MBe iletilir.
Zamanlayc 2nin alma kipi TCLK, RCLK ve RL2 CP/ bitleri tarafndan belirlenir.
ncelik TCLK ve RCLK bitlerindedir, bu bitlerden herhangi birinin kurulmas
durumunda dier bite baklmakszn Zamanlayc 2 baud rate reteci olarak
kullanlr, bu alma kipinde TF2 bayra tama annda bile kurulmaz. EXF2
bayrann herhangi bir deeri yoktur. TCLK ve RCLK bitleri kurulu olmadnda
alma kipi RL2 CP/ biti tarafndan belirlenir. Bu bit kurulu ise Zamanlayc 2
yakalama, temizlendiinde ise yeniden ykleme kipinde kullanlr. izelge5.7de
alma kipleri gsterilmitir.
Bit Simge Adres Aklama
T2CON.7 TF2 CFH Zamanlayc 2 tama bayra, zamanlayc tatnda
kurulur.
T2CON.6 EXF2 CEH Zamanlayc 2 d gsterge bayra. EXEN2 biti
kurulduunda T2EX etkin olursa kurulur ve kesme
siteinde bulunur.
T2CON.5 RCLK CDH Bu bit kurulduunda Zamanlayc 2 seri portun alc
ksmnn iletiim hzn belirler. Verici ksmnn iletiim
8051 Zamanlayclar 123
Mikrodenetleyiciler 8051 Uygulamalar
hz zamanlayc 1 tarafndan belirlenir.
T2CON.4 TCLK CCH Bu bit kurulduunda Zamanlayc 2 seri portun verici
ksmnn iletiim hzn belirler. Alc ksmnn iletiim
hz zamanlayc 1 tarafndan belirlenir.
T2CON.3 EXEN2 CBH Zamanlayc 2 d giri izinleme biti. Bu bit
kurulduunda T2EX giriinde (P1.1) oluan 1den 0a
geite EXF2 bayra kurulur ve yeniden ykleme veya
yakalama bu iarete gre yaplr.
T2CON.2 TR2 CAH Zamanlayc 2 denetim biti. Kurulduunda Zamanlayc
2 alr, temizlendiinde durur.
T2CON.1
T2 C/
C9H Zamanlayc 2 zamanlayc/sayc seme biti.
Kurulduunda zamanlayc olay sayar. Temizlendiinde
sistem saatini kullanarak zaman aral ler.
T2CON.0 RL2 CP/ C8H Zamanlayc 2 yakalama/yeniden ykleme biti.
Kurulduunda T2EX giriinde oluan 1den 0a geite,
eer EXEN2 biti kurulu ise yakalama gerekleir.
Temizlendiinde yeniden ykleme kipi seilmi olur ve
EXEN2 kurulu ise T2EX girilinde oluan 1den 0a
geite yeniden ykleme yaplr. Aksi durumda TF2
bayra kurulduunda yeniden ykleme yaplr.
izelge5.6 T2CON yazacnn bitleri ve grevleri.
TCLK+RCLK TR2 KP
0 0 1 16 Bit yeniden yklemeli
0 1 1 16 Bit yakalama
1 X 1 Baud rate reteci
X X 0 Kapal
izelge -5.7 Zamanlayc 2 alma kipleri.
Yeniden Yklemeli Kip
T2CON yazacnda yer alan RL2 CP/ biti temizlenerek bu kip seilir. TL2 ve TH2 16
bit zamanlayc yazalar olarak kullanlrken, RCAP2L ve RCAP2H yazalar 16 bit
yeniden yklenecek deeri saklamak iin kullanlr. Zamanlayc 1 ve 0da olduu
RL2 CP/
124 Blm 5
Mikrodenetleyiciler 8051 Uygulamalar
gibi yeniden yklemeli alma kipinde 8 bitlik sayc/zamanlayc deildir, bu
alma kipinde de 16 bitlik sayma/zamanlama yapar.


ekil-5.8 Zamanlayc 2nin yeniden yklemeli kipte almas
6
.
Yeniden ykleme ilemi TH2 ve TL2in ieriinin FFFFH deerinden 0000h deerine
artrlmas srasnda gerekleir. Ayn anda TF2 tama bayra da kurulur. Kesmeye
izin verildi ise bu bayrak kendiliinden temizlenir. Eer tama yazlm ile

6
Kaynak: Atmel AT89S52 datasheets.
8051 Zamanlayclar 125
Mikrodenetleyiciler 8051 Uygulamalar
denetlendiinde ise temizleme ilemi de yazlm ile yaplmaldr. EXEN2 biti kurulu
ise yeniden ykleme ilemi T2EX giriinde oluan 1den 0a geite gerekleir. Ayn
anda EXF2 bayra da kurulur, bu bayrak yazlm ile temizlenmelidir. Zamanlayc
2nin 16 bit yeniden yklemeli kipte almas ekil5.8te gsterilmitir.
Yakalama Kipi
RL2 CP/ biti kurularak yakalama kipi seilir. Zamanlayc 2 16 bit zamanlayc
olarak alr ve TH2 ve TL2in ierii FFFFH deerinden 0000h deerine artrlmas
srasnda TF2 bayra kurulur. Yakalama kipinin izinlenmesi iin T2CONdaki EXEN2
bitinin kurulmas gerekir. Bu bit kurulu iken T2EX hattnda 1den 0a gei
gerekletiinde TH2 ve TL2in o andaki deerleri RCAP2L ve RCAP2H yazalarna
kopyalanr. Ayn anda EXF2 bayra kurulur ve kesme istei olarak MBe iletilir.
Zamanlayc 2nin yakalama kipinde almas ekil-5.9de gsterilmitir.

ekil5.9 Zamanlayc 2nin yakalama kipinde almas
7
.
Baud Rate reteci Olarak Kullanlmas
8051de zamanlayc 1in gerekletirdii iletiim hzn belirleme grevi 8052de
ksmi olarak veya tamamen zamanlayc 2ye verilebilir. zellikle alc ile vericinin

7
Kaynak: Atmel 8052 datasheets.
126 Blm 5
Mikrodenetleyiciler 8051 Uygulamalar
iletiim hzlarnn farkl olmas gereken uygulamalarda Zamanlayc 2 ve zamanlayc
1 birlikte kullanlr.
Zamanlayc 2 RCLK ve/veya TCLK bitleri kurularak baud rate reteci olarak
kullanlabilir. ekil-5.10da Zamanlayc 2nin bu alma kipinde kullanlmas
gsterilmitir. Bu kipte Zamanlayc 2nin kullanm yeniden yklemeli kipteki ile
ayndr. T2H yazacnn en byk deerine ulaldktan sonraki admda Zamanlayc 2
yazalar yeniden yklemeli yazalarda nceden yazlmla ayarlanm deerlerle
yeniden yklenecektir. Yeniden ykleme srasnda tama bayra kurulmaz ve kesme
isteme olasl yoktur.
Seri portun kip 1 ve 3te almas durumunda baud rate reteci olarak Zamanlayc
2 kullanldnda tama deeri aadaki formlden elde edilir.

Eer T2 C/ biti kurulu ise sistem saati yerine T2 giriinden uygulan iaretin den
kenarnda saycn ierii bir artacaktr. Bylece T2 giriine gelen iaret 2ye
blnm olur. Bu durumda baud rate aada verilen formlle bulmamz gerekir.

RCAP2H,RCAP2H yazalarnn ieikleri 16 bit olarak onlu sayya dntrlmelidir.
Baud rate reteci olarak kullanldnda Zamanlayc 2 yazalarnn en byk
deerden en kk deere geerken TF2 bayran kurmadn belirtmitik. Eer
EXEN2 kurulursa bu alma kipinde T2EX giriinde oluacak den kenar EXF2
bayran kuracaktr, eer kesme izinlendi ise MBden kesme isteinde bulunur.
Zamanlayc 2 bu kipte alrken T2EX girii nc d kesme girii gibi
kullanlabilir.

Kip 1 ve 3te baud rate =
Kip 1 ve 3te baud rate =
Zamanlayc 2 tama deeri
D osilatr frekans
16
32 x (65536-(RCAP2H,RCAP2H))
8051 Zamanlayclar 127
Mikrodenetleyiciler 8051 Uygulamalar

ekil-5.10 Zamanlayc 2nin baud rate reteci olarak kullanlmas
8
.
AT89S52nin Artlar
AT89C52nin Zamanlayc 2sinde T2MOD yazac yer alr, bu yaza SFR blgesinde
C9H adresinde yer alr sadece iki biti kullanlmtr. Bu iki bit sayesinde yukar aa
sayc elde edebilir veya darya iaret gnderebiliriz. DCEN biti kurulduunda
zamanlayc 2 yeniden yklemeli kipte yukar/aa sayc gibi alr. Sayma yn
T2EX giriinin seviyesine baldr eer T2EX girii yksek seviyede ise Zamanlayc 2
yukar doru sayma yapar ve tama en byk deerden sonra gerekleir. Bu hattn
seviyesi dk ise sayma aa doru olur ve alt tama T2H ve T2L yazalarnn
ierikleri RCAP2H ve RCAP2L yazalarna eit olduklarnda gerekleir. Zamanlayc 2
yazalarna tama sonras FFFFH says yklenir ve azaltmaya bu saydan devam
edilir. ekil-5.8de Zamanlayc 2nin aa/yukar sayc olarak almas
gsterilmitir. Dier alma kiplerinde bu bitin yaptrm yoktur.
T2OE biti kurulduunda Zamanlayc 2 programlanabilir saat reteci olarak
kullanlr. %50 alma oranl saat iareti P1.0dan darya verilir. Bu alma ekli
yeniden yklemeli zamanlayc ve baud rate reteci kiplerinde geerlidir. Bu alma
eklinde Zamanlayc 2 kesme retmez. Ayn anda baud rate reteci ve
programlanabilir saat reteci olarak kullanmak mmkndr. Fakat frekanslar ayn

8
Kaynak: Atmel 8052 datasheets.
128 Blm 5
Mikrodenetleyiciler 8051 Uygulamalar
olacaktr. Elde edilen saat iaretinin frekans osilatr frekansna ve yeniden ykleme
yazalarnn ieriklerine baldr. 16 Mhzlik kristal kullanldnda 61 Hz 4 Mhz
aras saat iareti retilebilir. Elde edilecek iaretin frekans aadaki formlden elde
edilebilir.

ekil5.11 Zamanlayc 2nin aa/yukar sayc olarak almas
9
.

ekil5,9da Zamanlayc 2nin programlanabilir saat reteci olarak kullanlmas
gsterilmitir. EXEN2 biti kurulu ise EXF2 bayra T2EX giriinde oluan negatif
geite kurulur ve kesme izinlendi ise MBden kesme isteinde bulunur. Bu alma
eklinde d keme gibi kullanlabilir.

9
Kaynak: Atmel 8052 datasheets.
Saat k frekans =
Osilatr frekans
4 x (65536-(RCAP2H,RCAP2H))
8051 Zamanlayclar 129
Mikrodenetleyiciler 8051 Uygulamalar

ekil-5.12 Zamanlayc 2nin programlanabilir saat reteci olarak kullanlmas
10
.

10
Kaynak: Atmel 8052 datasheets.
130 Blm 5
Mikrodenetleyiciler 8051 Uygulamalar
RNEK 5.1
8051in retebilecei en yksek frekansl iareti retme
P1.0dan mmkn olan en yksek frekansl vuruyu reten program yazn.
Frekansn ve duty saykln 12 Mhz kristalin kullanldn varsayarak hesaplayn.
zm:
YFV:
Setb P1.0 ;1 makine saykl
Clr P1.0 ;1 makine saykl
Sjmp YFV ;2 makine saykl

12 Mhzlik kristal kullanldnda 1 makine saykl 1 saniyedir. Komutlar dalga ekli
ile beraber zaman ekseninde izersek aadaki ekil elde edilir. Bir peryot 4 s
olduuna gre frekans 250 Khz olur. Bu elde edilebilecek en yksek vuru frekansdr.
Duty saykl ise;
%D=1/4=%25 olarak elde edilir.

Bu dalgann periyodu NOP komutu kullanlarak geniletilebilir her NOP komutu
periyodu 1s artrr. Arttrmalar yaplarak D=%50 yaplabilir bu zm 10 s kadar
pratiktir, daha uzun sreler iin zamanlayclar kullanlmaldr. Periyodu 256
saniyeye kadar olan vurular iin 8 bit yeniden yklemeli kipte alan zamanlayc
kullanlmaldr. 256 ile 65536 saniyeye aras periyot sreleri iin 16 bit zamanlayc
kullanlmaldr.
SETB P1.0 CLR P1.0 SJMP YFV SETB P1.0
1 makine saykl (1s)
P1.0
4 s
ekil - 5.13 rnek 1in dalga ekli.
8051 Zamanlayclar 131
Mikrodenetleyiciler 8051 Uygulamalar
RNEK 5.2
T0 kullanarak P1.5den srekli D=%50 olan kare dalga reten program (Frekans
yklenen say ile deiir.) yazn.
zm:
T0D50: mov TMOD,#01 ;T0, kip 1
tekrar: mov TL0,#XXH
mov TH0,#XXH ;Balang = XXXXH
cpl P1.5
acall ZGD
sjmp tekrar
ZGD: setb TR0 ;T0 altr.
jnb TF0,$ ;TF0 zaman am iin tara.
clr TR0 ;T0 durdur.
clr TF0 ;TF0 bayran temizle.
RET
RNEK 5.3
P3.5teki vurularn saysn P2de grntle.
zm:
Basla:
mov TMOD, #01100000B ;kip 2, C/T=1
mov TH1, #0 ;0x00 - 0xFF say.
setb P3.5 ;P3.5 giri
tekrar:
setb TR1 ;altr
geri:
mov A, TL1 ;TL1i oku.
mov P2, A ;P2de gster
jnb TF1,geri ;TF1 kuruldu mu?
clr TR1 ;Durdur.
clr TF1 ;TF1 bayran temizle.
sjmp tekrar ;srekli yap.
RNEK 5.4
P1. 6ya bir buton, P1.7ye bir buzzer balanmtr. Butona her basldnda buzzer
1 saniye ttren program yazn.
zm:
132 Blm 5
Mikrodenetleyiciler 8051 Uygulamalar
yzler EQU 100 ;yzler arpan
sayma EQU -10000 ,Zamanlayc deeri
ORG oH
MOV TMOD, #01H ;T0 16 bit zamanlayc
dolan: JNB P1.6, dolan ;tua basld m?
bekle: JB P1.6, bekle ;brakld m?
SETB P1.7 ;buzzer a.
CALL tdl ;bekle.
CLR P1.7 ;buzzer1 kapat.
SJMP dolan ;srekli yap
tdl: MOV R7,#yzler
tekrar: MOV TH0,#ydb_sayma ;YDB ykle.
MOV TL0,#ddb_sayma ;DDB ykle.
SETB TR0 ;zamanlaycy alt
bekle2: JNB TF0,bekle2 ;zaman ald m?
CLR TF0 ;evet
CLR TR0 ;T0 durdur.
DJNZ R7,tekrar
RET
END
RNEK 5.5
P3. 1den aadaki dalga eklini reten program yazn.

P3.1 hattndan verilen zelliklerde kare dalga elde edebilmek iin ncelikle istenilen
srelerde zaman geciktirme dngleri yazmak gerekir. Burada en dk sre 40
mikro saniyedir. lk olarak 40slik gecikme salayan bir alt program yazlr. Bu alt
program, ana program iinde st ste 2 kez arlrsa 80 s, st ste 3 kez
arlrsa da 120 s elde edilebilir. Zaman geciktirme dngs (ZGD) zamanlayclar
veya yazlm dngleri ile yaplabilir.
Yazlm dngs ile temel olarak Djnz komutu kullanlr, yaza veya bellein ierisine
yklenen say ile dnme adedi belirlenir ve istenilen gecikme elde edilir. Tek Djnz
8051 Zamanlayclar 133
Mikrodenetleyiciler 8051 Uygulamalar
komuttu ieren ZGDleri ile 0512 makine saykl arasnda gecikme elde etmek
mmkndr. Djnz komutunun iletimesi 2 makine saykl srer. (Komutlarn iletilme
srelerini Ek-Ada bulabilirsiniz.) Dngde yer alan dier komutlarn iletilme
sreleri 1 makine saykldr.
gecikme40us:
Mov R0,#X ; 1 makine saykl, 1 defa iletilir.
Djnz R0,$ ; 2 makine saykl, X defa iletilir.
Ret ; 1 makine saykl, 1 defa iletilir.

Toplam Makine Saykl = 1 + 2 X + 2 = 2X + 3
Xin deeri elde edilecek sreye bal olarak hesaplanan toplam makine saykl
deerinden belirlenecektir.
F
OSC
=12 Mhz olduuna gre
T
mak. Saykl
=12 / f
OSC
formlnden hesaplanabilir.
T
mak. Saykl
=12 / (12 x10
6
) =1 Saniyedir.
t = (Toplam makine saykl) x (T
mak. Saykl
)
40 S = (Toplam makine saykl) x (1 S)
Toplam makine saykl = 40 adettir.
40 = 2X + 3,
X = (40 3 ) / 2
X = 18.5 tam say olmad iin R0 yazacna yazlamaz. Kullanlan uygulamaya
bal olarak alta yada ste tam sayya tamamlanmaldr. 18 olarak alta
tamamlayabiliriz.
X = 18 aldmzda elde edeceimiz gecikme,
t =( 2X +3 ) x (T
mak. Saykl
) = ( 2 x 18 +3 ) x (1 S) = 39 S olur.
Yaplan hata 1 Sdir. Tam deeri elde etmek istiyorsak programda Ret komutu ile
Djnz komutu arasna 1 makine saykl sren ve hibir yazacn ieriini deitirmeyen
NOP komutunun eklemesi yaterlidir.
gecikme40us:
Mov R0,#X ; 1 makine saykl, 1 defa iletilir.
Djnz R0,$ ; 2 makine saykl, X defa iletilir.
Nop ; 1 makine saykl, 1 defa iletilir.
134 Blm 5
Mikrodenetleyiciler 8051 Uygulamalar
Ret ; 1 makine saykl, 1 defa iletilir.
;*******************************************************
;Bu program P3.1 ucunda istenilen zelliklere sahip kare
dalga oluturur.
;*******************************************************
ORG 00H ;programn balang adresi
karedalga:
Clr P3.1 ;p3.1 temizle
Acall gecikme40us ;40 s bekle.
Acall gecikme40us ;40 s bekle.
Setb p3.1 ;p3.1 set et.(1 yap)
Acall gecikme40us ;40 s bekle.
Clr p3.1 ;p3.1 temizle(0 yap)
Acall gecikme40us ;40 s bekle.
Acall gecikme40us ;40 s bekle.
Acall gecikme40us ;40 s bekle.
Setb p3.1 ;p3.1 set et.(1 yap)
Acall gecikme40us ;40 s bekle.
Clr p3.1 ;p3.1 temizle(0 yap)
Acall gecikme40us ;40 s bekle.
Setb p3.1 ;p3.1 kur.(1 yap)
Sjmp karedalga ;srekli yap
;******************************************************
;40s gecikme salayan alt program
;******************************************************
gecikme40us:
Mov R0,#18 ;R0= 18
Djnz R0,$ ;R0=0 olana kadar devam et.
Nop ;ilem yapmadan 1 makine saykl
Ret
end
Gecikme altprogram zamanlayc ile de yaplabilir. 40
s lik gecikme iin zamanlaycnn 40 maine saykl
sayma yapmas gerekir.
Kip 1 kullanlrsa
65536- 40= 65496= FFD8 bulunan bu deer zamanlaycya
yklenecek olan balang deeridir.
8051 Zamanlayclar 135
Mikrodenetleyiciler 8051 Uygulamalar
;******************************************************
;40s gecikme salayan alt program (zamanlayc 1, kip 1
kullanld)
;******************************************************
gecikme40us:
MOV TMOD, #10H ;Zamanlayc kip 1
MOV TL1,#0D8H ;TL1=D8H
MOV TH1,#0FFH ;TH1=FFH
SETB TR1 ;T1i balat.
bekle:
JNB TF1,bekle ;hala sre dolmadysa(40 s) bekle.
CLR TR1 ;sre doldu, zamanlayc durdur.
CLR TF1 ; tama bayran temizle.
RET ;ana programa geri dn.
Ana programda herhangi bir deiiklik yok sadece alt program deiecektir. Bu alt
programda gecikme altprogram tam olarak 40 s salamayabilir nk arada
sreyi uzatacak baka komutlarda vardr. Mov, clr, setb vb. Gerekte uygulama
yaplmak istenirse bu komutlar da gz nnde bulundurulmaldr.
RNEK 5.6
P2.1den aadaki dalga eklini reten program yazn. f
OSC
= 16 Mhzdir

P2.1 hattndan verilen zelliklerde kare dalga elde edebilmek iin ncelikle istenilen
srelerde zaman geciktirme dngleri yazmak gerekir. Burada en dk sre 20
Sdir. lk olarak 20 slik gecikme salayan bir alt program yazlr. Bu alt program,
ana program iinde st ste 2 kez arlrsa 40 s, st ste 3 kez arlrsa da 60 s
elde edilebilir.
Zaman geciktirme dngs ile 20 Slik zaman geciktirme altprogramn yazalm.
Gecikme20us:
Mov R0,#X ; 1 makine saykl, 1 defa iletilir.
Djnz R0,$ ; 2 makine saykl, X defa iletilir.
136 Blm 5
Mikrodenetleyiciler 8051 Uygulamalar
Ret ; 1 makine saykl, 1 defa iletilir.
Toplam Makine Saykl = 1 + 2 X + 2 = 2X + 3
Xin deeri elde edilecek sreye bal olarak hesaplanan toplam makine saykl
deerinden belirlenecektir.
F
OSC
=16 Mhz olduuna gre
T
mak. Saykl
=12 / f
OSC
formlnden hesaplanabilir.
T
mak. Saykl
=12 / (16 x10
6
) =0.75 Saniyedir.
t = (Toplam makine saykl) x (T
mak. Saykl
)
20 S = (Toplam makine saykl) x (0.75 S)
Toplam makine saykl = 26.67 adettir. Makine saykl tam olmak zorundadr.
ste tamamlarsak 27 olur.
27 = 2X + 3,
X = (27 3 ) / 2
X = 12, olduunda elde edeceimiz gecikme,
t =( 2X +3 ) x (T
mak. Saykl
) = ( 2 x 12 +3 ) x (0.75 S) = 20.25 S olur.
Yaplan hata 0.25 Sdir. Tam deeri elde etmek mmkn deildir.
;*******************************************************
;Bu program P3.1 ucunda istenilen zelliklere sahip kare
dalga oluturur.
;*******************************************************
ORG 00H ;programn balang adresi
karedalga:
Clr P2.1 ;p2.1 temizle
Acall gecikme20us ;20 s bekle.
Acall gecikme20us ;20 s bekle.
Setb p3.1 ;p3.1 set et.(1 yap)
Acall gecikme20us ;20 s bekle.
Clr p3.1 ;p3.1 temizle(0 yap)
Acall gecikme20us ;20 s bekle.
Acall gecikme20us ;20 s bekle.
Acall gecikme20us ;20 s bekle.
Setb p3.1 ;p3.1 set et.(1 yap)
Acall gecikme20us ;20 s bekle.
8051 Zamanlayclar 137
Mikrodenetleyiciler 8051 Uygulamalar
Clr p3.1 ;p3.1 temizle(0 yap)
Acall gecikme20us ;20 s bekle.
Setb p3.1 ; p3.1 kur.(1 yap)
Sjmp karedalga ;srekli yap
;******************************************************
;20s gecikme salayan alt program
;******************************************************
Gecikme20us:
Mov R0,#12 ;R0= 18
Djnz R0,$ ;R0 =0 olana kadar devam et.
Ret
end
Gecikme altprogram zamanlayc ile de yaplabilir. 20 s lik gecikme iin
zamanlaycnn 20 maine saykl sayma yapmas gerekir.
65536- 20= 65516= FFEC bulunan bu deer zamanlaycya yklenecek olan
balang deeridir.
;*******************************************************
;20s gecikme salayan alt program (zamanlayc1,mode1
kullanld)
;*******************************************************
gecikme20us:
MOV TMOD,#10H ;Zamanlayc1,kip1
MOV TL1,#0ECH ;TL1=ECH
MOV TH1,#0FFH ;TH1=FFH
SETB TR1 ;Zamanlaycy balat.
bekle:
JNB TF1,bekle ;hala sre dolmadysa (20s) bekle.
CLR TR1 ;sre doldu, timer durdur.
CLR TF1 ;tama bayran temizle.
RET ;ana programa geri dn.

Sorular
1. 5, 20, 50 mSlik zaman geciktirme altprogramlarn yazn.
2. 1 saniyelik zaman geciktirme altprogramlarn yazn.

Mikrodenetleyiciler 8051 Uygulamalar
Seri Haberleme ve
8051 Seri Portu

Giri
Seri veri iletimi iki bilgisayar arasnda veri iletiminin daha az sayda iletken
kullanlarak gerekletirmek amacyla gelitirilmitir. Alc ve verici bilgisayarlar
aras e gdm salamak amacyla veri hattndan ayr hat kullanlrsa senkron
kullanlmaz ise asenkron seri veri iletimi ad verilir. En yaygn kullanlan seri veri
140 Blm 6
Mikrodenetleyiciler 8051 Uygulamalar
haberleme standard RS-232dir. Her bilgisayar zerinde en az bir adet RS-232 (
COM port ) yer alr. Son yllarda benzer bir haberleme tekniini kullanan USB
standard daha yaygn bir ekilde kullanlmaya balamtr. USB RS-232 gibi
asenkron seri veri iletimi yapar fakat veri iletim hz ok daha yksektir. USB
haberleme portu son yllarda retilen mikrodenetleyicilerin zerinde de standart
olarak yer almaya balamtr.
Asenkron Seri Veri letimi
RS-232 Standard ilk olarak 1962 ylnda kullanlmaya balanm eitli deiimlere
uradktan sonra 1969 ylnda RS-232C olarak adn almtr. RS-232D standard ise
RS-232 C zerinde geniletme yapmak iin 1987 ylnda ortaya kmtr. RS232 D
standard ayn zamanda EIA232-D olarak da bilinir. RS-232 C Electronic Industries
Assosiation (EIA) tarafndan daha bilgisayarn balang evresinde tasarlanmtr.
Gelecekte RS-232 C standardnn her trl gereksinime yant verebilmesi iin ok
sayda farkl sinyal hatlar sisteme eklenmitir. Fakat gnmzde bu sinyal
hatlarnn ou kullanlmaktadr. RS-232 C ile kullanlan en yaygn konnektr ekil-
6.1de gsterilen DB-25 tipi konektrdr. Amerika Birleik Devletleri dnda DB-25
konektr V.24 ve V.28 olarak da adlandrlr. V.24 ve V.28 standartlar,
Consultative Committee On International Telegraph and Telephone (CCIT) olarak
bilinen Uluslararas standartlar grubu tarafndan kabul edilmitir. 1984 ylnda
IBM'in firmasnn AT bilgisayar kasalarnn zerinde ok yer kaplayan DB-25
konektr yerine DB-9u kullanmasyla o yldan sonra RS-232C iin ikinci bir
konektr tipi ortaya kmtr. RS-232C hatlarnn sinyal gerilim seviyeleri +12 V ve -
12V' aralndadr. Eski sistemlerde gerilim seviyeleri, +25 V ile -25 V deerlerine
kadar ulaabilir. ekil-6.2de RS-232C standard ile bir karekterin iletimi iin gerekli
iaretin ekli gerilim seviyeleri iile birlikte gsterilmitir.

ekil-6.1 RS-232Cde kullanlan DB-25 ve DB-9 konektrleri.
141 Seri Port
Mikrodenetleyiciler 8051 Uygulamalar

ekil-6.2 RS-232C veri erevesi ve sinyal seviyeleri.
RS-232C haberleme sisteminde veriyi Gderen birime DTE (Data Terminal
Equipment) ve iletiimi salayan birime ise DCE (Data Communication Equipment)
ad verilir. DTE ounlukla bilgisayardr, DCE ise modemdir. RS-232C iareti
ykseltici kullanlmadan 15 metre mesafeye tanabilir daha uzak mesafeler iin
saysal iaretler analoa dntrlerek her yerde rahatlkla eriilebilen telefon
hatlar kullanlr.
Bilgisayar ierisinde paralel olarak yer alan saysal (TTL seviyesi) veriler devreler
vastasyla seriye dntrlr ve daha sonra DC-DC dntrc kullanarak
iaretin seviyesi RS-232C seviyesine dntrlr. Alc tarafta ise RS-232C
standrnda gelen veri DC-DC dntrc kullanlarak TTL seviyesine
dntrldkten sonra seriden paralele dntren devreler kullanlarak paralele
dntrlr ve bilgisayara iletilir. Verici durumunda paralelden seriye alc
durumunda seriden paralele dntren devreler tmleik olarak retilir ve UART
(Universal Asenkrenous Recevier Transmitter) ad verilir. Bu birim bir ok
mikrodenetleyicide tmdevre rerinde retilir. TTL seviyesini RS-232Cye ve RS-232C
seviyesini TTL seviyesine dntren birimler birleik olarak tek bir tmdevre
ierisinde retilirler. Bu tmdevrelerin en yaygn kullanlanlar MAX232, ILC232,
MAX233dr. ekil-6.3te MAX232 tmdevresinin mantk simgesi gsterilmitir.
Tmdevrenin dzgn alabilmesi iin 5 V beslemeye ve 5 adet kondansatr
balanmas gerekir.
142 Blm 6
Mikrodenetleyiciler 8051 Uygulamalar

ekil6.3 MAX232 Tmdevresinin mantk simgesi ve bacak balants
11
.
8051 UART
MCS51 ailesi mikrodenetleyiciler zerinde senkron ve asenkron olarak
kullanlabilen bir adet seri port yer almaktadr. Baz gelimi srmlerinde seri port
says 2 veya daha fazla olabilmektedir. 8051 seri portunun balants P3.1 (TXD) ve
P3.0 (RXD) hatlarndan yaplr. ki zel amal yaza seri portun yazlm denetimini
yapar. SBUF yazac gderilecek verinin yazld ve gelen verinin okunduu yazatr.
Aslnda ayn adresi ve ismi paylaan iki farkl yazatr. Ayn adresi kullanmalar
ilevlerinden dolay saknca yaratmamaktadr. Verici tampona sadece yazlabilir,
alc tampon sadece okunabilir. Seri port denetim yazac (SCON) 98H adresinde yer
alr ve bit adreslenebilir. erisinde yer alan bitlerin bazlar durum ve bazlar ise
denetim bitleridir. Kontrol bitleri seri portun alma kipini belirlerken, durum bitleri
alma veya gnderme ileminin tamamlandn gsterir. Durum bitleri yazlm veya
programl kesme ile denetlenebilir. ekil6.4de 8051 seri portunun yaps
gsterilmektedir.
8051in seri portu karakter tabanl senkron veya asenkron veri iletimi yapar. Ayn
anda veri alp gnderebilir (full duplex alma). letiim hz zamanlayc kullanlarak
veya sistem osilatr kullanlarak ayarlanabilir. Asenkron veri iletiminde 8051in seri
portu 8 bit karakter verisinin bana ve sonuna alc birimi ile uyumlu alabilmesi
iin bala ve dur bitleri ekleyerek 10 bitlik bir ereve oluturur. Veri iletiminde hata

11
Kaynak http://www.maxim-ic.com
143 Seri Port
Mikrodenetleyiciler 8051 Uygulamalar
denetimi yaplmak istendiinde 10 bit ereveye bir bit elik biti eklenerek 11 bitlik
ereve elde edilir. ekil6.5te erevesiz, 10 bit ereveli ve 11 bit ereveli
karakter paketlerinin oluturulmas gsterilmitir. ekil-6.5.ada yer alan karakter
paketi 8051in senkron seri veri iletiminde kullanlr. ekil-6.5.b ve cdeki 10 ve 11
bitlik veri paketleri ise asenkron veri iletiminde kullanlr.


PC
Modem,
yazc gibi
aygtlar
RS-232 Seri Veri iletim
Balants
'A'
'B'
'C'
D7 D6 D5 D4 D3 D2 D1 D0
'C' 'A'
'B'

a. Seri port kullanarak bir karekterin erevesiz iletimi.
RXD (P3.0) TXD (P3.1)
SBUF
(sadece yazlabilir)
TELEMEL
YAZA
ALE
Q
CLK
Baud rate saati
(alc)
Q
CLK
SBUF
(sadece okunabilir)
8051 i veri ve adres yollar
Baud rate saati
(verici)
ekil-6.4 8051in seri portun yaps.
144 Blm 6
Mikrodenetleyiciler 8051 Uygulamalar
'B'
D7 D6 D5 D4 D3 D2 D1 D0
'C' 'A'
Stop
bit
Start
bit
10 bitlik bir karakter erevesi

b. Bala ve dur bitlerinin eklenmesi ile oluturulan 10 bitlik bir karakter erevesi.
'B'
D7 D6 D5 D4 D3 D2 D1 D0
'C' 'A'
Stop
bit
Start
bit
10 bitlik bir karakter erevesi

c. Bala ve dur bitlerine elik bitinin eklenmesi ile oluturulan 11 bitlik bir karakter
erevesi.
ekil-6.5 bir karakterin erevesiz, 10 bit ve 11 bit ereveli paketlenmesi.
Seri Port alma kipleri
8051in seri portu asenkron ve senkron alabilen 4 adet alma kipine sahiptir.
alma kipleri SCON yazcnn SM0 ve SM1 bitleri kullanlarak belirlenir. izelge
6.1de SCON yazacnda yer alan denetim ve durum bitlerinin grevleri belirtilmitir.
SCON yazacnda yer alan SM2 biti ise oklu ortam veri iletimi yaplmak istendiinde
kurulur dier durumlarda ise temizlenir. REN bitine alcy altrma durdurma
grevi verilmitir kurulduunda alc ilk alglad START biti ile telemeli yazaca veri
bitlerini yerletirmeye balar. Bu bit temizlendiinde alc veri almay durdurur. TB8
biti kip 2 ve kip 3te vericinin dokuzuncu biti olarak alr. RB8 biti ise ayn grevi
alc iin yapar. Bu bitlerin kip 0 ve kip 1de herhangi bir grevi yoktur. TI biti verici
kesme bayradr. Verici bufferna yazlan verinin son biti gnderildikten sonra bu
bit kurularak kesme isteinde bulunulur. RI biti alc kesme bayra olarak
grevlendirilmitir. Alc son biti aldktan sonra RI bitini kurarak kesme isteinde
bulunur. Kesme alglandktan sonra TI ve RI bayraklar yazlm ile temizlenmelidir.

145 Seri Port
Mikrodenetleyiciler 8051 Uygulamalar
BT SMGE ADRES TANIM
SCON.7 SM0 9FH Seri port kip seme biti 0
SCON.6 SM1 9EH Seri port kip seme biti 1
SCON.5 SM2 9DH Seri port kip seme biti 2
SCON.4 REN 9CH Alc izin verme, veri almak iin kurulmaldr.
SCON.3 TB8 9BH Kip1 ve 3te vericinin dokuzuncu biti olarak
kullanlr.
SCON.2 RB8 9AH Kip1 ve 3te alcnn dokuzuncu biti olarak
kullanlr.
SCON.1 TI 99H Verici kesme bayra, gnderilen karakterin
tm bitleri gnderildikten sonra donanm
tarafndan kurulur. Yazlm ile temizlenir.
SCON.0 RI 98H Alc kesme bayra, karakterin alm bittikten
sonra donanm tarafndan kurulur. Yazlm ile
temizlenir.
izelge-6.1 SCON yazacnn bitlerinin isimleri, adresleri ve grevleri.

SM1 SM0 KP TANIM BAUD RATE
0 0 0 KAYAR YAZA Sabit (f
OSC
/12)
0 1 1 8 BT UART Deiken (T1 tarafndan ayarlanr)
1 0 2 9 BT UART Sabit (f
OSC
/32 veya /64 )
1 1 3 9 BT UART Deiken ( T1 tarafndan ayarlanr)
izelge6.2 Seri port alma kipi seme bitleri.

izelge-6.2de SM0 ve SM1 bitlerinin kullanm ve seri port alma kipleri
gsterilmitir. Kip 0da 8051 senkron 8 bit veri iletimi yapar. Kip 1de 8 bit UART, 2
ve 3te ise 9 bit UART olarak alr.

146 Blm 6
Mikrodenetleyiciler 8051 Uygulamalar
Kip 0 8 Bit Kayar Yaza Kipi
Kip seme bitleri SM0 ve SM1 bitleri sfr yaplarak kayar yaza alma kipi seilir.
Kip 0, 8051in dier birimler ile senkron 8 bit erevesiz seri veri iletimi yapt tek
alma kipidir. Bu alma kipinde REN biti sfr yaplarak verici, 1 yaplarak alc
olarak almassalanr, seri veri RXD hattndan gnderilir veya alnrken, TXD hatt
saat k olarak kullanlr. 8 bitin nce en dk deerli biti gnderilir ve nce en
dk deerli biti alnr. Baud rate makine saykl hzndadr. Kayar yaza kipi
8051in giri/k hattnn says yeterli olmad durumlarda hat saysn arttrmak
iin kullanlr. ekil-6.6da rnek balant verilmitir.

ekil-6.6 Kayar yaza kipinde 8051in k port hatlarnn saysnn arttrlmas.
ekil-6.7de kip 0da verici olarak almada zamanlama diyagram gsterilmitir. Kip
0da gnderme ilemi SBUFa yazma yapan her komut ile balatlabilir. Veri RXD,
P3.0dan darya doru telenirken saat iareti de TXD P3.1 hattndan gnderilir.
Gnderilen her bit RXD hattnda bir makine saykl geerli olarak kalr. Her makine
sayklnda TXDdan gnderilen saat saykl S3 P1de dk seviyeye geer, S6 P1de
tekrar yksek seviyeye geer. ekil6.8de D3 bitinin gnderilme zamanlamas
ayrntl olarak gsterilmitir.
Kip 0da alma ilemi REN biti kurulu iken RI biti temizlendiinde balatlm olur.
Genel kural olarak nce seri port ayarlamalar srasnda REN biti kurulur, sonra RI
biti temizlenerek alma ilemi balatlr. RI temizlendiinde TXDdan saat k
gnderilir ve bir sonraki bit bu saat iareti ile RXD hattna gelir. Bylece gelen veri
TXD hattndan gnderilen saat iareti ile senkronize edilmi olur. Veri RXD hattna
saatin ykselen kenar ile aktarlr.
8 ek k
telemeli Yaza
Saat
Veri
TXD (P3.1)
RXD (P3.0)
8051
147 Seri Port
Mikrodenetleyiciler 8051 Uygulamalar

ekil-6.7 Kip 0 kayar yaza kipinde verici olarak almada zamanlama.

ekil-6.8 Kip 0 almada seri port verici zamanlamas.
Kip 1 Deiken Hzl 8 Bit UART
Kip 1de seri port 8 bit deiken baud rate UART olarak alr. Bu alma kipinde 8
veri biti bir adet bala ve 1 adet dur biti olmak zere 10 bit erevelenmi veri iletir.
Bala ve dur bitleri alc ile verici birim arasndaki e gdm salamak amacyla
eklenir. Bu bitler seri port tarafndan gnderilen veriye eklenir, gelen veriden ise
ayklanarak SBUFa sade 8 adet veri biti iletilir. 8 bit UART alma kipinde iletim hz
(baud rate) 8051de sadece zamanlayc 1 tama oranna gre belirlenir, 8052de ise
zamanlayc 2 veya 1 tarafndan veya her ikisinin birlikte kullanlmasyla belirlenir.
Biri gnderme hzn dieri ise alma hzn belirler.
D0 D1

D2
teleme Saati (TXD)
D3
D0
D4

D5
D1
D6

D7
D2
Bir makine saykl

ALE
D3
RXD

TXD
D4 D5 D6 D7
Veri k RXD
Osc.
P1 P2
S1
1 makine saykl

ALE
teleme saati
S3P1
S6P1

Geerli veri biti Veri k
P1 P2
S2
P1 P2
S3
P1 P2
S4
P1 P2
S5
P1 P2
S6
148 Blm 6
Mikrodenetleyiciler 8051 Uygulamalar
8 Veri
SBUF
8
RI
Bala biti
Dur biti
Alnan
8 bit veri
Alnan veri
hazr
10 Bit
Seri-Paralel
Dnm
Alnan seri veri
Alc Ksm
8 veri bit
Dur
biti
Bala
biti
Rx
BAUD Saati
rnek 9600

ekil6.9 Verinin gnderilmesi.
ekil-6.9da gelen seri 10 bit ereve verinin dur ve bala bitlerinden ayklanarak
paralele dntrlp SBUFa aktarlmas gsterilmiti. Seri port gelen veriyi SBUFa
aktardktan sonra RI bayran 1 yaparak kesme isteinde bulunur. SBUF
okunduktan sonra RI bayra mutlaka temizlenmelidir. ekil-6.10da SBUFa yazlan
paralel 8 bit verinin bana bala, sonuna dur bitlerinin eklenmesi ve seriye
dntrlerek TXD hattndan gnderilmesi gsterilmitir.
8 Veri
SBUF
8
BAUD Saati
rnek 9600
TI
Dur bit
Bala biti
8 Bit Veri
Gnderme
Verici Buffer
Bo
10 Bit
Paralel-Seri
Dnm
Seri Veri letimi
Verici Ksm
8 veri biti
Bala
biti
Dur
biti
Tx

ekil6.10 8bit verinin kip 1de gnderilmesi.
Seri prottan gnderme ilemi SBUFa yazma ilemini takip eden makine sayklnda
kendiliinden balar. Veri alma ileminin balayabilmesi iin REN bitinin 1 olmas ve
149 Seri Port
Mikrodenetleyiciler 8051 Uygulamalar
RXD hattnda oluacak den kenarn alglanmas ile balar. Alc yanl bala biti
alglama devresine sahiptir, ilk negatif gei alglandktan sonra sekiz sayma deeri
kadar sfr durumunda kalarak ikinci bir gei bekler eer gei gelmezse saycnn
deeri sfrlanr ve aptal konumunda beklemeye devam eder. Bu durumda alcnn
grlt tarafndan tetiklendii varsaylr. Doru tetikleme alndnda bala biti
atlanarak veri bitleri seri port yazacna srayla telenir.
Kip 2 Sabit Hzl 9-Bit UART
SM1=1 ve SM0=0 ise seri port kip 2de alr. Bu alma kipinde on bir bit iletilir ve
alnr, bir bala sekiz veri bir adet programlanabilir dokuzuncu veri biti veya elik biti
de olabilir, bir adet dur biti. Verici durumunda dokuzuncu veri biti SCON ierisindeki
TB8e yazlr. Alc durumunda bu bit RB8e yazlr. Bu alma kipinde Baud rate
sabittir, SMOD biti 0 yaplrsa osilatr frekans 32 1 yaplrsa 64e blnerek elde
edilir.
Kip 3 Deiken Hzl 9-Bit UART
Kip 3n kip 2den tek fark iletim hznn zamanlayc 1 tamas ile ayarlanabilir
olmasdr. Kip 2 ve 3te gnderilen ve alnan ereve toplamda 11 bitttir. Bunlar
bala biti, dur biti 9 veri bitidir. Bu alma kiplerinde gnderilmek istenen verinin 8
biti SBUF yazacna yazlr, dokuzuncu bit ise SCONda yer alan TB8 bitine yazlr.
8051in seri portu ekil-611de gsterildii gibi bu iki veriyi 9 bit olarak kayar
yazata birletirir bala ve dur bitlerini ekleyerek en bala bitinden baalyarak sra
ile kari tarafa gnderir. TB8in ierii gnderildikten sonra TI bayara kurularak
8051den kesme isteinde bulunulur.
Kip 2 ve 3te alcnn almas vericininkine benzerdir. RXD hattndan seri olarak
gelen veri paketi ekil6.12de gsterildii gibi sra ile 11 bit seriden paralele
dnm yapan kayar yazaca alnr. Bala ve dur bitleri ayrldktan sonraki 8 bit
SBUFa yklenirken dokuzuncu bit RB8 bitine yazlr ve RI bayra kuralarak
8051den kesme isteinde bulunur. Kip 2 ve 3 8 bit veri iletimi ve elik biti denetimi
yaplmak istenen haberleme sistemlerinde kullanlr.
Yazalarn Ayarlanmas
8051 seri portunu istenilen ekilde kullanmak iin ncelikle ayarlama ilemlerini
yaplmas gerekir. alma kipine gre ayarlanacak yazalar fakllk gsterebilir
fakat tm alma kiplerinde ayarlama ilemine SCON yazacndan balanmaldr.
150 Blm 6
Mikrodenetleyiciler 8051 Uygulamalar
alma kipi belirlendikten sonra deiken veri hz kullanlacaksa zamanlayc 1in
yeniden ykleme deeri ve eer kullanlacaksa PCON ierisinde yer alan SMOD biti
ayarlanmaldr.
8 Veri
SBUF
8
TI
Dur bit
Bala Biti
Gnderilecek 8
Bit Veri
Gnderici
Tamponu
Bo
11 Bit
Paralelden
Seriye
Dntr
c
Seri Veri gnderimi
8 data bits
Bala
Biti
Dur Biti
Tx
9. bit
TB
8
Elik Bitini
Buraya Yaz
p
Elik Biti

ekil6.11 9 bit verinin kip 2 ve 3de gnderilmesi.
8 Veri
SBUF
8
RI
Bala biti
Dur biti
Alnan
8-bit
Veri
Yeni Veri
Hazr
11 bit
Seriden
Paralel
Dnm
Seri Veri Alma
8 Veri biti
Dur
biti
Bala
biti
RxD
9. bit
p
Elik biti
RB8
9. bit buradan
okunur

ekil6.12 9 bit verinin kip 2 ve 3de alnmas.
Alcnn Etkinletirilmesi
Alc etkinletirme biti (REN) SCON ierisinde yer alr. Karakter almnn
balayabilmesi iin yazlm ile bu bitin kurulmas gerekir. Bu ilem genellikle
151 Seri Port
Mikrodenetleyiciler 8051 Uygulamalar
program banda tm yazalar ayarlanrken yaplr. ki farkl komut kullanlarak bu
bit kurulabilir.
SETB REN
Veya
ORL SCON, #00010000B
Elik Bitinin Eklenmesi
Dokuzuncu veri biti genellikle elik biti olarak kullanlr. PSW ierisindeki P bayra
akmlatr ierisinde yer alan karakterin ierisinde yer alan 1lerin says ift (even)
ise kurulur, dier durumda sfrlanr. letiim 8 veri ve bir elik biti ieriyorsa 8 bit
veri akmlatre alnr bu P bayran kuracak veya sfrlayacaktr nce P bayra
TB8e yazlr ve sonra akmlatr SBUFa yazlr.
MOV C, P ;ift elik bitini TB8e yerletir.
MOV TB8, C ;Elik biti dokuzuncu veri biti oldu.
MOV SBUF, A ;8 veri bitini SBUFa yaz.
Tek elik biti kullanlrsa;
MOV C, P ;ift elik bitini eldeye al.
CPL C ;Tek elie dntr.
MOV TB8, C ;Elik biti dokuzuncu veri biti oldu.
MOV SBUF, A ;8 veri bitini SBUFa yaz.
Elik biti kullanm sadece kip 2 ve 3 ile snrl deildir kip 1de de elik biti
kullanlabilir. 8 veri bitinden bir tanesi elik biti iin ayrlabilir. Bylece 7 veri biti ve
bir elik biti iletilir.
CLR ACC.7 ;YDBti temizle, ift elik P bayrandadr.
MOV C, P ;ift elik bitini Cye kopyala.
MOV ACC.7, C ;ift elik bitini YDBe yerletir.
MOV SBUF, A ;Karakteri gnder, 7 veri ve bir elik biti.
Kesme Bayraklar
SCON ierisindeki RI ve TI kesme bayraklar 8051in seri iletiminde nemli grevler
slenmilerdir. Bu iki bayrak donanm tarafndan kurulur fakat yazlm tarafndan
temizlenir. RI bir karakterin alndktan sonra kurulur ve SBUFn dolduunu gsterir.
Bu durum program tarafndan denetlenir veya kesmeye izin verilir. Eer 8051 seri
152 Blm 6
Mikrodenetleyiciler 8051 Uygulamalar
kanaldan veri bekliyor ise bu bayra okur ve test eder kurulu ise temizler ve SBUF
okur. Sfr ise kurulana kadar okuma ve test ilemine devam eder.
BEKLE: JNB RI, BEKLE ;RI kurulana kadar test et.
CLR RI ;RIy temizle.
MOV A, SBUF ;karakteri oku.
TI bayra gnderme ileminin bitiminde kurulur, gnderme tamponunun bo
olduunu gsterir. Yazlmn yeni bilgi gndermeden nce bu bayra test ederek
tamponun bo olup olmadn test etmesi gerekir. Aadaki komutlar akmlatr
ierisindeki veriyi gnderir.
BEKLE: JNB TI, BEKLE ;TI kurulana kadar test et.
CLR TI ;TIy temizle.
MOV SBUF, A ;karakteri YAZ.
Seri Port letiim Hznn Belirlenmesi
Seri port haberlemesin veri iletim hz baud rate olarak tanmlanr. Birim zamanda
gnderilen bit says baud rate BPS veya iletim hz olarak adlandrlr. 8051in seri
portu her alma kipinda farl iletim hzlarnda haberleme salayabilir. Kip 0da
veri iletim hz retim srasnda ekil-6.13te gsterildii gibi osilatr frekansnn
12ye blnmesi ile elde edilir. Kip 0da 8051in osilatr frekans 12 Mhz ise veri
iletim hz 1 Mhzdir. Bu kipte veri iletim hzn deitirmek iin osilatr frekansnn
deitirilmesi gerekir. Kip 2de iletim hz kip 0dakine benzerdir fakat bu alma
kipinde ekil6.14te gsterildii gibi osilatr frekans 64e blnerek iletim hz
belirlenir. Bu alma kipinde daha hzl veri iletimi yaplmak isteniyorsa SMOD biti
kurularak osilatr frekansnn 32 blnmesi salanr ve iletim iki kat hzlanr. ekil-
6.15te gsterildii gibi kip 1 ve 3te iletim hzlar ayn ekilde zamanlayc
tamasnn 32ye blnmesi ile elde edilir. letim hz arttrlmak isteniyorsa SMOD
biti 1 yaplarak iki katna karlabilir. Ayrca bu alma kiplerinde T1 tamasn
ayarlanarak iletim hz arttrlabilir.
Kip 0da iletim hz;
12
f
Rate Baud
osc
=
Kip 2de iletim hz;
153 Seri Port
Mikrodenetleyiciler 8051 Uygulamalar
Eer SMOD=0 ise
64
f
Rate Baud
osc
=
Eer SMOD=1 ise
32
f
Rate Baud
osc
=
Kip 1 ve 3te iletim hz;
Eer SMOD=0 ise
Baud rate = f
OSC
/ (384 x (256 - TH1))
Eer SMOD=1 ise
Baud rate = f
OSC
/ (192 x (256 - TH1))
PCON bit adreslenebilir olmad iin akmlatre okunur istenen bit deitirildikten
sonra tekrar yazlrveya aada gsterilen VEYA ve VE .
SMOD bitinin kurulmas;
ORL PCON,#1000000B ;SMOD=1
SMOD bitinin temizlenmesi;
ANL PCON,#01111111B ;SMOD=0

ekil-6.13 Kip 0da baud rate saatinin retilmesi.

ekil-6.14 Kip 2de baud rate saatinin retilmesi.
12
64
BAUD RATE
SAAT
32
OSLATR
SMOD=0
SMOD=1
BAUD RATE
SAAT
OSLATR
154 Blm 6
Mikrodenetleyiciler 8051 Uygulamalar

ekil-6.15 Kip 1 ve 3te baud rate saatinin retilmesi.
Baud Rate Saati Olarak T1in Kullanlmas
8051de en kolay baud rate saati zamanlayc 1 ile retilebilir. TH1e gerekli yeniden
yklenecek say yerletirilir, her tamada bu deer TL1e yeniden yklenerek
istenilen deerde saat iareti elde edilebilir. Bu ilem iin ncelikle TMOD yazacnn
T1i kip 2de altracak ekilde ayarlanmas gerekir. Ayarlama aadaki gibi
yaplabilir.
MOV TMOD, #0010XXXXB
Baud rate ayarlamann tek yolu bu deildir, zamanlayc 1de 16 bit alma kipinde
bu tr ayarlamalar yaplabilir. Tama sonras kesmeye izin verilir ve kesme alt
program her defasnda belirlenen deeri yeniden TH1 ve TL1 yazalarna ykler.
Baka bir yntemi ise zamanlayc 1e dardan tetikleme iareti uygulayarak
saymasn salamaktr. Baud rate saati elde etmek iin T1in tamas SMOD=1 ise
16ya SMOD=0 ise 32ye blnr.
Baud rate gre saycya yklenecek deer aadaki yntemle bulunur.
Kip 1 ve 3te iletim hz;
Eer SMOD=0 ise
TH1 = 256 - ((f
OSC
/ 384) / Baud rate)
Eer SMOD=1 ise
TH1 = 256 - ((f
OSC
/ 192) / Baud rate)
Fosc = 11.059Mhz ise 19,200 baud rate iin zamanlayc deeri hesaplarsak;
TH1 = 256 - ((f
OSC
/ 384) / Baud rate)
TH1 = 256 - ((11059000 / 384) / 19200)
TH1 = 256 - ((28,799) / 19200)
TH1 = 256 - 1.5 = 254.5
32
16
SMOD=0
SMOD=1
BAUD RATE
SAAT
T1 TAMASI
155 Seri Port
Mikrodenetleyiciler 8051 Uygulamalar
Alt deere tamamlandnda 254 olur ve elde edilen iletiim hz 14,400 olur. Eer
255e tamamlarsak 28,800 hzna ularz. Her iki deerde istenilenden deerden ok
uzak ise SMOD biti 1 yaplarak yeni deer hesaplanmaldr.
SMOD = 1 yapldnda;
TH1 = 256 - ((f
OSC
/ 192) / Baud rate)
TH1 = 256 - ((11059000 / 192) / 19200)
TH1 = 256 - ((57699) / 19200)
TH1 = 256 - 3 = 253
Eer 12MHz kristal kullanlrsa zamanlaycnn frekans 1000KHzdir. Zamanlaycnn
38.4 kHzde tama yapmas isteniyorsa 1000 38.4 = 26.04 saat vurusu yuvarlama
yapldnda 26 olarak alnabilir. Tama FFhden 00hye geite gerekletiine gre
zamanlaycya 25626 yklenmelidir. Ksaca 26 yazlr assembler program onu
onaltlk tabana dntrr. (E6h) bu deer TH1e yklenir.
MOV TH1, #-26 Veya
MOV TH1, #0E6H
Yazlabilir.
BAUD
RATE
f
osc
SMOD TH1
GEREK BAUD
RATE
HATA
9600 12.000MHz 1 -3 (F9H) 8923 %7
2400 12.000MHz 0 -13 (F3H) 2404 %0.16
1200 12.000MHz 0 -26 (E6H) 1202 %0.16
19200 11.059MHz 1 -3 (FDH) 19200 0
9600 11.059MHz 0 -3 (FDH) 9600 0
2400 11.059MHz 0 -12 (F4H) 2400 0
1200 11.059MHz 0 -24 (E8H) 1200 0
izelge6.3 Baud rate ve hata oranlar
Yuvarlamalardan dolay ok az bir hata oluacaktr. %5in altndaki hata oranlar
asenkron veri iletiminde kabul edilebilir. Hatasz baud rateler iin 11.059MHzlik
kristaller kullanlmaldr. izelge6,3de 12 ve 11.059MHzlik kristaller
156 Blm 6
Mikrodenetleyiciler 8051 Uygulamalar
kullanldnda kullanlmas gereken yeniden ykleme deerleri ve hata paylar
verilmitir.
Baud Rate
Fosc. (MHz)
Bit SMOD
11.0592 12 14.7456 16 20
150 40 h 30 h 00 h

0
300 A0 h 98 h 80 h 75 h 52 h 0
600 D0 h CC h C0 h BB h A9 h 0
1200 E8 h E6 h E0 h DE h D5 h 0
2400 F4 h F3 h F0 h EF h EA h 0
4800

F3 h EF h EF h

1
4800 FA h

F8 h

F5 h 0
9600 FD h

FC h

0
9600

F5 h 1
19200 FD h

FC h

1
38400

FE h

1
76800

FF h

1

rnek 6,1
Seri portu 2400 baud rate hznda 8 bit UART olarak ayarlayn. Baud rate saatini
zamanlayc 1i kullanarak elde edin.
ZM:
Bu rnekte SMOD, TCON, TMOD ve TH1 yazalarnn ierikleri aadaki gibi
dzenlenmelidir.
SM0 SM1 SM2 REN TB8 RB8 TI RI
SCON: 0 1 0 1 0 0 1 0
GTE C/T M1 M0 GTE C/T M1 M0
TMOD: 0 0 1 0 0 0 0 0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TCON: 0 1 0 0 0 0 0 0
TH1: 1 1 1 1 0 0 1 1
8 bit UART iin SM1=0, SM0=1 yaplmaldr. REN=1 yaparak veri almasna izin verilir,
ilk karakterin gnderilebilmesi iin TI=1 yaplmaldr. Zamanlayc 1 iin TMOD
157 Seri Port
Mikrodenetleyiciler 8051 Uygulamalar
ierisinde 8 bit yeniden yklemeli zamanlayc olarak alma kipinin seilebilmesi
iin M1=1, M0=0 yaplr. TCON ierisinde ise TR1=1 yaplarak zamanlayc
1altrlr. Kullanlmayan bitler 0 olarak yazlmtr.
2400 baud rate iin TH1e yklenmesi gereken deer hesaplanr
TH1 = 256 - ((f
OSC
/ 384) / Baud Rate)
=256-((12 000 000/384)/2400)
= 242.979 =243 olarak ste tamamlanr.

AYAR:
MOV SCON, #52H ;Seri port kip 1 seildi.
MOV TMOD, #20H ;Zamanlayc 1 kip 2 seildi.
MOV TH1, #243 ;2400 baud rate iin sayc deeri.
SETB TR1 ;Zamanlaycy balat.
END
rnek 6.2
Akmlatr ierisinde bulunan 7 bit ASCII karakteri seri porttan sekizinci biti tek
elik biti olarak gnderen alt program yazn. Akmlatr ieriini alt program
sonunda korusun.
ZM:
GONDER:
MOV C, P ;Elik bitini elde bayrana al.
CPL C ;ift elik bitini tek elie dntr.
MOV ACC.7, C ;Elik bitini karaktere ekle.
TKR:
JNB TI, TKR ;Bir nceki karakter gitti mi? hayr
bekle
CLR TI ;Evet, bayra temizle.
MOV SBUF, A ;Karakteri gnder.
CLR ACC.7 ;Akmlatr balang durumuna getir.
RET
END
Programn banda PSW ierisinde yer alan elik biti elde bayrana alnmtr, fakat
8051 ift elik biti kulland iin tmlenmitir. Veri iletimi 8 bit yaplaca iin
akmlatrn 7 numaral bitine yerletirilmitir. Sonraki admda daha nceki
karakterin gnderilme iinin tamamlanp tamamlanmad test edilmi ve
158 Blm 6
Mikrodenetleyiciler 8051 Uygulamalar
tamamlanmadysa beklenmi, tamamlandysa bayrak temizlenmi ve karakter seri
port tamponuna yazlmtr. Son admda ise akmlatre yerletirilen elik biti
atlm, alt program knda akmlatrn deeri balang deerine eitlenmitir.
rnek 6.3
Seri porttan 7 bit ASCII karakter alan, ald bitin sekizinci bitini tek elik biti olarak
kabul eden, eer hatal elik biti varsa elde bayra kurulu olarak alt programdan
dnen alt program yazn.
ZM:
GEL:
JNB RI, GEL ;Karakter geldi mi? Gelmediyse bekle.
CLR RI ;Geldiyse bayra temizle.
MOV A, SBUF ;Gelen karakteri tampondan oku.
MOV C, P ;Tek elik iin P=1 olmas gerekir.
CPL C ;Hata varsa bildirmek iin tmle.
CLR ACC.7 ;Elik bitini at.
RET
END
rnek 6.4
Osilatr frekans 6 Mhz olan 8051in seri portunu 900 baud rate hznda 8 bit veri
iletimi yapacak ekilde ayarlayan altprogram yazn.
TH1 = 256 - ((f
OSC
/ 384) / Baud Rate)
=256-((6 000 000/384)/900)
= 238,6=239 alnr
SERP:
MOV SCON, #52H ;Seri port kip 1 seildi.
MOV TMOD, #20H ;Zamanlayc 1 kip 1 seildi.
MOV TH1, #239 ;900 baud rate iin sayc deeri.
SETB TR1 ;Zamanlaycy balat.
End
rnek 6.5 Bcd-kili Dnm.
/* Bu alt program akmlatrn iindeki BCD deeri
ikiliye (hex) dntrr.
Etkilenen yazalar;
159 Seri Port
Mikrodenetleyiciler 8051 Uygulamalar
PSW.CY, PSW.Z, PSW.P, Acc */

BCD_ikili:
push b ; Byi yedekle
push acc ; Ay yedekle
anl a,#0f0h ; Yksek deerli 4 biti koru
swap a ; Dk ksma al
mov b,#10 ; 10lar basama
mul ab ; arp
mov b,a ; Bde sakla
pop acc ; BCD deeri yedekten al
anl a,#0fh ; dk deerli drt biti koru
add a,b ; yksek ksma ekle
pop b ; Byi yedekten al
ret ; Ana programa geri dn

Sorular
1. Osilatr frekans 24 Mhz olan 8051in seri portunu 1200 baud rate hznda 9 bit
veri iletimi yapacak ekilde ayarlayan altprogram yazn.
2. Sfrla sonlandrlm 8 bit saylarn oluturduu diziyi 2400 baud rate hznda
8051in seri portundan gnderen programn;
a. Algoritmasn yazn ve ak diyagramn izin.
b. Kaynak program aklamalaryla birlikte yaznz.

Mikrodenetleyiciler 8051 Uygulamalar
Kesme ve MCS-51
Kesmeleri


Giri
Kesme, program aknn donanm tarafndan retilen veya dardan uygulanan
iaretle deitirilmesidir. Kesme girileri her komut ileme sayklnn banda
denetlenen asenkron girileridir. Kesme girilerinin says, alglanmalar ve alma
ekilleri mikroilemcilere gre farkllk gsterir. Kesme zamana bal denetleme
ilemlerinde, mikroilemci dnda rasgele gelien olaylar denetlemek amacyla
kullanlr. Kesme kullanarak tasarlanan sistemde birden fazla denetim ilemi kout
olarak gerekletirilebilirken ayn zamanda sistem performans da ykseltilebilir.
8051de 3 adet i ve 2 adet d kesme kayna bulunur. keme kaynaklar seri
iletiim arabirimi, zamanlayc 0 ve zamanlayc 1e aittir. D kesme 0 ve d kesme 1
162 Blm 7
Mikrodenetleyiciler 8051 Uygulamalar
kaynaklarna 8051e balanan aygtlarn kesme klar balanabilir. Reset ilemi
de kesmenin tanmna uyar fakat tekrar kald noktaya kesme sonras dnmemesi
reseti, dier kemelerden ayrr. Kesme kaynaklarnn izinlenmesi ve sralanmas iin
iki adet yaza vardr. Kesme kaynaklarndan MBe gelen kesmelerin alglanmasn
denetleyen kesme izinleme (interrupt enable) yazac ile istenen kesme kaynann
izinlemesi yaplrken kesme nceliklime yazac izinlenen kesme kaynaklarnn ayn
anda kesme istemeleri durumunda alglanma sralarn belirler. Alglama ilemi
ncelii yksek olan kaynaktan balanarak yaplr.
zinlenen kesme kayna giriine kesme istei geldiinde MB istein geldii anda
iletilmekte olan komutu tamamladktan sonra kesme girilerini denetler, istek hala
devam ediyorsa kesme alglanr. Alglama sonras MB ncelikle bir sonraki komutun
adresini ynda yedekler daha sonra kesme kaynann numarasn belirler ve
numaraya bal olan adresi program sayacna ykler. Bu adrese kesme vektr ad
verilir. 8051 kesme kaynaklarnn kesme vektrleri izelge-7.1de gsterilmitir.
Kesme vektrleri birbirine yakn olduklarndan eer kesme altprogram bu alana
smayacak kadar uzun olduunda balanma komutu ile baka alana balanlr.
Kesme alt programnn sonuna ana programa dn iin RETI komutu yerletirilir.
Bu komut iletildiinde MB ynn en stnde yer alan dn adresini PCye
yerletirir ve ana program kald komuttan balanarak iletilmeye devam eder.
ekil7.1de bir sistemin program ileyii gsterilmitir. lemci (base-level) ana
dzey de ve kesme dzeyinde (interrupt-level) olmak zere iki dzeyde program
iletir, zaman her iki program iletilirken ilerleyecektir.
Kesme kayna Kesme vektr
Zamanlayc 2 002B
Seri kanal 0023
Zamanlayc 1 001B
D kesme 1 0013
Zamanlayc 0 000B
D kesme 0 0003
Reset 0000
izelge - 7.1 Kesme kaynaklar ve kesme vektrler.
8051 Kesmeleri 163
Mikrodenetleyiciler 8051 Uygulamalar
rnek olarak otomatik kumandal klimay ele alalm mikrodenetleyicinin asl grevi
klimann istenilen deerde oda scakln sabit tutmasdr. Yeni bir deer girmek
istediimizde kumanda zerinde bir tua basldnda kesme isteyecektir. Kesme
kabul edildiinde ilemci kumanda iini ksa sreli brakacak bir anlamda ikincil
grevi olan kumandadan veri okuyacaktr. Okuma iinden sonra asl grevi olan
denetleme ilemine devam eder.
Yazc, modem, keyboard ve benzeri birok evre aygtlar bir mikroilemcinin etkin
alma zamann ok kk bir blmne gerek duymaktadr. rnein; bir yazcnn
bir tek karakter yazmas iin gereken srede, MB binlerce komut yrtlebilir. Eer
8051 bu yazcy dorudan denetlerse, yazlacak her karakter iin bir ncekinin
yazlmasn bekleyecek ve zaman boa geirecektir. Eer, yazc 8051'e bir d
kesme ucu zerinde balanrsa, yazc bir sonraki karakter iin hazr oluncaya dek,
dier ileri iin zaman ayrabilecektir. 8051'e kesme geldiinde ilgili kesme
programn yrtmeye geecek ve bir karakter daha gnderdikten sonra dier
ilerini yrtmeyi srdrmek iin geldii yere geri dnecektir. Bylece yazc, ilemci
tmyle kendisine ayrlmasna hizmet grrken, ezamanl dier ilerde
yaplacaktr.
8051 tmdevre zerinde yer alan seri kanal ve zamanlayclar ilemlerini
tamamladklarn MBe kesme bayraklarn kurarak haber verirler. Seri kanal alc
tamponu dolduunda veya verici tamponu boaldnda kesme bayran kurar.
Eer kesme kayna izinlenmi ise bu istek alglanr. Seri kanal veri alrken veya
gnderirken ayn zamanda MB dier ilemleri yapabilir. Ayn durum zamanlayclar
iin de geerlidir.
ekil-7.1de kesme kullanlmayan ve kesme kullanlan programlarn zaman
dzleminde nasl yrtldkleri gsterilmitir. Kesme kullanmayan programlarda
sadece ana program vardr ve kesintisiz program yrtlr. Kesme kullanlan
programlarda ilemci ana program yrtrken gelen kesme istei ile kesme servis
altprogramna (ISR) balanr ve bu altprogram RETI komutu yrtlene kadar
devam eder. RETI komutu yrtldnde tekrar kald yerden ana program
yrtlr. Kesme istekleri asenkron gelien olay olduu iin zaman ve adedi belirli
deildir.
164 Blm 7
Mikrodenetleyiciler 8051 Uygulamalar

ekil7.1 Kesme olduunda ve olmad nda programn ileyii.
8051in Kesme Yaps
ki d, bir seri port, iki zamanlayc olmak zere be adet kesme kayna olan 8051de,
sistem reseti ile tm kesmeler alglanmaz durumdadr. Programc kullanaca kesme
kaynaklarn kesme izinleme yazacn kullanarak yazlm ile izinlenmelidir. Be kaynaktan
herhangi iki veya daha fazlas ayn anda kesme isteinde bulunabilir, ilemci ise sadece
birine yant verebilir. Bu durumda kesmenin kaynann belirlenebilmesi iin tarama (polling)
ve ncelik sralamas gerekir. Tarama ilemi sabittir ve deitirilemez, fakat ncelik dzeyi
program ile deitirilebilir.
Her kesme kayna bit adreslenebilir IEN yazacnn ilgili biti kurularak izinlenebilir
veya temizlenerek engellenebilir. Bu yazata yer alan IEN biti temizlenerek tm
kesmeler birlikte engellenebilir. ekil7.3te IEN yazacnn ierii gsterilmitir.
Kesme kaynaklarnn ncelik sras IP (interrupt priority) yazac kullanlarak
belirlenebilir. Kesme kaynaklarn iki ncelik kmesine ayrabiliriz. Eer tm kesme
kaynaklar ayn kmeye ayrlrsa doal sralamaya gre ncelenir. Ayn kmede yer
alan kesme kaynaklarnn ncelenmesi doal sralamaya gre yaplr. Doal
sralamada IP yazacnn en dk deerli biti yani d kesme 0 birinci ncelie
sahiptir,ikinci ve dier sralama ise srasyla yksek deerli bite doru devam eder.
Ana Program
Ana Ana
Ana
Ana
ISR ISR ISR
Zaman
Kesme Dzeyi
Ana
Program
Kesme (asenkron olarak meydana gelir)
Programn Kesmesiz Yrtlmesi
Kesmeden dn komutu iletilir
8051 Kesmeleri 165
Mikrodenetleyiciler 8051 Uygulamalar
INT0
0
IE0
IE1
1
0
1
TF0
INT1
TF1
RI
TI
Bireysel zinleme
Genel
zinleme
Yksek
ncelik
Dk
ncelik
Kesme
Tarama
Sras
IE Yazac IP Yazac
INT0

ekil-7.2 8051in kesme yaps.
7 0
IEN EA - ET2 ES ET1 EX1 ET0 EX0

BT SMGE TANIM
IEN.7 EA Genel kesme izin biti.
IEN.6 - Kullanlmam.
IEN.5 ET2 Zamanlayc 2 kesmesi izinleme biti.
IEN.4 ES Seri port kesme izinleme biti.
IEN.3 ET1 Zamanlayc 1 kesmesi izinleme biti.
IEN.2 EX1 D kesme 1 izinleme biti.
IEN.1 ET0 Zamanlayc 0 kesmesi izinleme biti.
IEN.0 EX0 D kesme 0 izinleme biti.
ekil-7.3 Kesme izinleme yazac IENin ierii.
Son srada 8051de seri kanal kesmesi, 8052de ise zamanlayc 2 kesmesi yer alr.
zinlenmeyen kesmeler doal sralamann dnda yer alr. Kesme istei kabul edilen
kesme kaynann vektrne balanmadan nce kendinden daha az ncelie sahip
kesme kaynaklarnn kesme isteklerini IEN yazacndaki ilgili bitlerini sfrlayarak
166 Blm 7
Mikrodenetleyiciler 8051 Uygulamalar
engeller. Kesme alt programndan dnte RETI komutu iletildikten sonra dn
adresini yndan PCye yklemeden nce IEN yazacn eski deerine getirir.
7 0
IP - - PT2 PS PT1 PX1 PT0 PX0

BT SMGE TANIM
IP.7 - Kullanlmam.
IP.6 - Kullanlmam.
IP.5 PT2 Zamanlayc 2 kesmesi sralama biti.
IP.4 PS Seri port kesme sralama biti.
IP.3 PT1 Zamanlayc 1 kesmesi sralama biti.
IP.2 PX1 D kesme 1 sralama biti.
IP.1 PT0 Zamanlayc 0 kesmesi sralama biti.
IP.0 PX0 D kesme 0 sralama biti.
ekil-7.4 IP yazacnn ierii.
ekil-7.4te 8051in kesme devresinin mantk emas gsterilmitir. Kaynaktan gelen
kesmenin MBe iletilebilmesi iin ncelikle bu kesme kaynann kendi izin
anahtarnn kapal olmas ve sonra genel izin anahtarlarnn kapal olmas gerekir.
Bu iki izin aamasn geen kesme IP yazacnda belirlenen seime gre yksek
ncelik veya dk ncelik kodlayc giriine iletilir. Eer kendinden daha byk bir
kesme istei yok ise kesme istei MBe iletilir. 8051deki kesme dzenei, gelen bir
kesme isteine eer kesme izni olan bir kaynaktan geliyorsa, kesmeyi alglar.
Program sayacnn ieriini ynda korur ve yerine ilgili kesme vektrn
yerletirerek bu vektre bir LCALL oluturur. Bu ilem baz zel durumlarda hemen
gerekletirilmez bu zel durumlar aadaki gibi zetleyebiliriz.
Kesme istei geldiinde e yada yksek ncelikli bir baka kesmeye ilikin
istek karlanyorsa yeni gelen kesme bekletilir.
Kesme isteinin sezildii makine evrimi yrtlen komutun en son evrimi
deilse son evrime kadar kesme istei bekletilir.
8051 Kesmeleri 167
Mikrodenetleyiciler 8051 Uygulamalar
Kesme istei geldiinde RETI komutu yada IE, IP kaydedicilerini deitiren
bir komut yrtlmekte ise kesme istei karlanmadan nce bir komut
daha yrtlr.

ekil-7.5 kesmenin alglanmasnda en iyi ve en kt durumlar.
Kesme dzenei, her makine sayklnn bitmesinden iki osilatr saykl nce, kesme
kaynaklarn denetler. Eer bir kesme istei belirlenmise, bunun ileme konmas, en
erken bir sonraki makine saykl sonunda gerekleecektir. Bunun iin kesme
isteinin algland andan sonra gelen makine saykl iin 12 ve en sonunda
uygulanacak LCALL iin 24 osilatr periyodu harcanr. En iyimser olarak 38 osilatr
salnm sonra (12MHZde 3.17s) kesme ileme konmu olur. ekil-7.5te bu
duruma rnek zamanlama diyagram gsterilmitir. Kesme isteinin alglanmas
gereken an geilmi ise sonraki komutta alglama gerekleir. Alglandktan sonraki
komut eer bir arpma veya blme gibi ilenmesi iin 4 makine saykl gerektiren bir
komut ise kesmeye yant verilmesi iin geen sre 86 saat saykl olacaktr.
(12Mhzde 7.17s)


ALE
INT
2 24 12 KESME ALTPROGRAMI
SONRAK
KOMUT
DANANIMSAL
CALL
INT
YMSER DURUM
38 SAAT PERYODU
24 12 48
SONRAK
KOMUT
DANANIMSAL
CALL
MUL VEYA DIV KOMUTU
KTMSER DURUM 86 SAAT PERYODU
168 Blm 7
Mikrodenetleyiciler 8051 Uygulamalar
D Kesme Girilerinin Denetimi
D kesme girilerinin yapsn denetleyen bitler TCON yazacnda yer almaktadr.
izelge-7.2de TCON yazacnn ierii ve grevleri belirilmitir. IT0 ve IT1 bitleri
kurulduunda INT0 ve INT1 girilerinde oluan den kenarlar kesme olarak
alglayarak IE0, IE1 bayraklarn kurar. Bu bitler temizlenirse d kesme girilerine
rnekleme sresince dk seviye uygulandnda kesme olarak alglanr.
BT ADI ADRES AIKLAMA
TCON.7 TF1 8FH T1 tama bayra, tama olduunda kurulur, yazlmla
veya kesme alglandnda temizlenir.
TCON.6 TR1 8EH T1 altrma/durdurma biti yazlm ile ierii deiir.
TCON.5 TF0 8DH T0 tama bayra. tama olduunda kurulur, yazlmla
veya kesme alglandnda temizlenir.
TCON.4 TR0 8CH T0 altrma/durdurma biti. yazlm ile ierii deiir.
TCON.3 IE1 8BH D kesme 1 kenar bayra. INT1 giriinde den kenar
geldiinde kurulur; yazlm ile veya MB kesme vektrne
balandnda donanm tarafndan temizlenir.
TCON.2 IT1 8AH D kesme 1 kenar bayra. Yazlm ile kurulup temizlenir.
Kurulduunda INT1de den kenarda IE1 bayra
kurulur; temizlendiinde dk seviyede kesme alglanr
ve kesme bayra kurulmaz.
TCON.1 IE0 89H D kesme 0 kenar bayra. INT0 giriinde den kenar
geldiinde kurulur; yazlm ile veya MB kesme vektrne
balandnda donanm tarafndan temizlenir.
TCON.0 IT0 88H D kesme 0 tip seme bayra. Yazlm ile kurulup
temizlenir. Kurulduunda INT0da den kenarda IE0
bayra kurulur; temizlendiinde dk seviyede kesme
alglanr ve kesme bayra kurulmaz.
izelge-7.2 TCON yazacnn bitleri ve grevleri.
Kesme Servis Altprogram
Kesme alglandktan sonra dn adresi ynda donanmca saklanr ve program
sayacna gelen kesme isteinin numarasna gre vektr adresi yklenir. Kesme
8051 Kesmeleri 169
Mikrodenetleyiciler 8051 Uygulamalar
vektrnde altprogram iin ayrlan yer 8 bayttr. Bu alan bir ok kesme altprogram
iin yeterli deildir. Bu gibi durumlarda balanma komutu ile bellein baka alanna
balanlr. Kesme servis altprogramnn alma ekli baz fakllklar olsa da
altprograma benzerdir. zellikle altprograma girmek ile kesme altprogramna
girmek arasnda farkllk vardr. Altprograma girmek iin CALL komutu adresi ile
birlikte iletilir, komutun ne zaman iletilecei nceden belirlidir. Kesme alt
programna girmek iin ise komut iletilmez ve arlaca zaman belirli deildir.
Donanm iareti kesme girilerinin birine gelir, alglanan kesme giriine bal olan
adres (kesme vektr) donanm tarafndan program sayacna yklenerek kesme
servis altprogram arlr. Her iki altprogram arlmadan nce dn adresi
donanmca ynda yedeklenir. Kesme altprogramnda ayrca kendisinden daha
dk ncelie sahip kesme isteklerinin kesme altprogramn kesmemesi iin bu
kaynaklara ait izin bitleri donanm tarafndan sfrlanr. D bir olaydan gelen bir
kesme isteinin, yrtlmekte olan programn neresinde gelecei nceden
kestirilmediinden, 'asenkron' olarak nitelenmektedir. Alt program ise programn
bilinen bir yerinde arldndan 'senkron' olarak nitelenir.
Kesme hizmet programndan ayrlmak alt programndan ayrlmaya benzemektedir.
Her ikisinde de tek Baytlk bir komutla geri dn adresi yndan geri alnp
program sayacna yklenmekte ve nceki ilemler kaldklar yerden
srdrlmektedir. Kesme hizmet programndan ayrlmann fark geri dn komutu
RETI komutunun RET komutunun yaptklarna ek olarak kendisinden daha dk
ncelie sahip kesmelerin tekrar kesme geldii andaki durumuna getirmesidir.
AT89S52nin Kesme Kaynaklar
AT89C52 ve AT89C52 mikrodenetleyicisinde 8051den farkl olarak sadece
Zamanlayc 2 kesmesi kesme kaynaklarna eklenmitir. Zamanlayc 2 kesmesi en
dk ncelie sahiptir, istendiinde dierleri gibi IP yazacndan ncelii
dzenlenebilir. Zamanlayc 2 kesmesi IEN yazacnn 5 nolu biti kurularak
izinlenebilir.
Aylak Ve Ksk Gte alma
PCON yazac ierisinde yer alan PD ve IDL bitleri kullanlarak mikrodenetleyici ii
bittikten sonra kendi kendine kapattrlabilir veya daha sonra uyandrlmak zere
170 Blm 7
Mikrodenetleyiciler 8051 Uygulamalar
uyutulabilir. Eer mikroilemci kendini kapatrsa bu alma ekline ksk gte
alma, uyutulursa aylak alma kipleri olarak adlandrlrlar.
Aylak alma Kipi
Yazlm ile IDL bitinin kurulmas ile mikrodenetleyici uyutulur uyku srasnda tm
evre birimleri almalarn srdrrler. SFR yazalarnn ierikleri ve i RAM
bellein ierikleri korunur. Portlara yazlm olan veriler korunur. Uykudan ancak
izinlenmi bir kesme veya reset ile klabilir. Reset ile kldnda mikrodenetleyici
kendisinin reset gelmeden nceki 2 makine saykl geride varsayarak program
iletmeye alr. Bu durumda i RAM blgesine ulama yasaklanmtr. Fakat
portlara ulamak mmkndr. Fakat hatal deiimlere sebebiyet vermemek iin
portlara ve d bellee yazma engellenmitir.
Ksk Gte alma Kipi
PD biti temizlendiinde ksk gte alma balam olur. Osilatr durdurulur, ksk
gce geme komutu iletilen son komut olur. Ksk gte alma yaplrken i RAM
ve portlarn ierikleri korunur. Bu alma kipinden kmann tek yolu RESETtir.
Reset sonras SFRlerin ierikleri yeniden belirlenir, fakat i RAM bellein ierii
deimez. izelge7.3de aylak ve ksk gte denetim iaretlerinin seviyeleri ve
portlarn durumlar gsterilmitir.
Kip Prg. Bel. ALE PSEN PORT0 PORT1 PORT2 PORT3
Aylak 1 1 Veri Veri Veri Veri
Aylak D 1 1 Yzer halde Veri Adres Veri
Ksk g 0 0 Veri Veri Veri Veri
Ksk g D 0 0 Yzer halde Veri Veri Veri
izelge7.3 Aylak ve ksk gte denetim iaretlerinin seviyeleri ve portlarn
durumlar.
8051 Kesmeleri 171
Mikrodenetleyiciler 8051 Uygulamalar
rnek 7.1
Zamanlayc 0 kullanarak P1e bal LED gstergedeki sayy saniyede bir arttran
program yazn.
zm:
Zamanlayc 0 kip 1de altrldnda 65536 makine saykl bir zaman dilimi
gecikme elde edilir. 1 saniyelik gecikmenin elde edilebilmesi iin yazlm ile kesme
adedi saylmaldr. Bu program ayn zamanda A ve PSW yazalarnn ieriklerini
korur. Program altrldnda P1in ierii saniyede bir artacaktr.
Org 0h
Ajmp anaprg
Org 0bh
Push Acc ;Ay yedekle
Push PSW ;Durum yazacn yedekle
Djnz R0,son ;1 sn olmad ise p1i deitirmeden k
Inc P1 ;arttr
Mov R0, #16 ;bir saniye sayacn tekrar kur
son:
Pop PSW ;durum yazacnn ierii yedekten al
Pop Acc ;Ann ierii yedekten al
Reti
anaprg:
Mov R0,#16 ;her 16 kesme bir saniye eder
Mov TMOD,#01h ;zamanlayc 0 kip 1e ayarla
Setb TR0 ;zamanlayc 0 altr
Mov IE,#10000010b ;Zamanlayc 0n kesmesini izinle
Mov P1,#0 ;P1i sfrla
Sjmp $


172 Blm 7
Mikrodenetleyiciler 8051 Uygulamalar
rnek 7.2
Kesme ve zamanlayc kullanarak buton zplamasndan kaynaklanan grltl
iaretin nlenyen program yazn.
zm:
Mikroilemcinin ilem hz insann hareket hzna gre ok hzl olduu iin butona
bir adet baslmas mikroilemci tarafndan birden fazla baslm gibi alglanr. Bu
saknca kesme ve zamanlayc birlikte kullanlarak ortadan kaldrlabilir. P3.2ye bir
buton ve P1.0a bir LED balanmtr, butona birinci defa basldnda LED yanacak
ikincide ise snecektir.
Org 0h
Ajmp ana_prg
Org 03h
Mov TH0,#0C0h ;20 mili saniye beklet
Mov TL0,#00h
Setb IE.1 ;zamanlayc kesmesini izinle
Setb TR0
Reti
Org 0bh
Clr TR0
Clr TF0 ;Zaman amn sfrla
Clr IE.1 ;sadece buton kesmesini algla
Cpl P1.0 ;LED yank ise sndr, snk ise yak
Reti
Org 020h
ana_prg:
Mov TMOD,#01h ;zamanlayc 0 kip 1e ayarla
Mov TCON,#00000001b ;Kesmeyi den kenarda algla
Mov IE,#10000001b ;D kesme 0 izinle
Sjmp $
8051 Kesmeleri 173
Mikrodenetleyiciler 8051 Uygulamalar
rnek 7.3
P1.7den 10 KHz kare dalga reten program yazn.
zm:
12 Mhzlik kiristal kullanld kabul edilirse, makine saykl 1 saniye
KHZ_10:
org 0
Ajmp 10khz_kare ;Ana programa balan
org 0bh
clr tf0 ;Zaman amn temizle
cpl p1.7 ;hatt tersle
reti
org 020h
khz_kare:
mov tmod,#00000010b ;T0 kip 2ye ayarla
mov th0,#-50 ;50 makine saykl beklet
setb tr0 ;Zamanlaycy altr
mov ie,#10000010b ;Zamanlayc kesmesini izinle
sjmp $ ;Zaman amn bekle
174 Blm 7
Mikrodenetleyiciler 8051 Uygulamalar
rnek 7.4
Oda scakln 19 ile 21 C aralnda sabit tutan program yazn.


zm:
ORG 0
LJMP ana
EX0ISR:
CLR P1.7 ;stcy kapa
RETI
ORG 13H
EX1ISR:
SETB P1.7 ;Istcy a
RETI
ORG 0030H
ana: MOV IE,#85H ;kesmeyi izinle
SETB IT0 ;den kenar kesme algla
SETB IT1
SETB P1.7 ;stcy a
JB P3.2,son2 ;eer T>21?
CLR P1.7 ;Evet, stcy kapat
Son2:
SJMP $ ;bekle
INT0
INT1
P1.7
8051
1 = Istc Ak Eer T < 19C
0 = Istc Kapal Eer T > 21C
Scak = 0 if T > 21C
Souk = 0 if T < 19C
T = 21C
T = 19C
T = 20C
Scak
Souk
P1.7
8051 Kesmeleri 175
Mikrodenetleyiciler 8051 Uygulamalar

rnek 7.5
Kap aldnda 1 saniye sra ile alarm k veren program yazn.


ORG 0
LJMP ANA
LJMP EX0ISR
ORG 0BH
LJMP T0ISR ;T0 ve R7=20 1 S iin kullan.
ORG 1BH
LJMP T1ISR ;T1i ses alarm iin kullan.
ANA: SETB IT0 ;Den kenar kesme algla
MOV TMOD,#11H ;16-bit zamanlayc
MOV IE,#81H ;EX0 izinle
L1: SJMP $ ;kesme gelene kadar bekle
EX0ISR: MOV R7,#20 ;20x50000 ms = 1 s
SETB TF0 ;T0 ISR
SETB TF1 ;T1 ISR
SETB ET0 ;T0 kesmesini izinle
SETB ET1 ;T1 kesmesini izinle
INT0
P1.7
8051
74LS04
Kap Alr
P1.7
P1.7
2.5 ms
1.25 ms
400Hz
1 S
176 Blm 7
Mikrodenetleyiciler 8051 Uygulamalar
RETI
T0ISR: CLR TR0 ;T0 durdur
DJNZ R7,L2 ;20 olmad ise zamanlayc alsn
CLR ET0 ;oldu ise zamanlayc dursun
CLR ET1 ;ses dursun
LJMP EXIT
L2: MOV TH0,#0ECh ;0.05s gecikme iin deer
MOV TL0,#77h
SETB TR0 ;T0 tekrar altr
EXIT: RETI
T1ISR: CLR TR1 ;T1i durdur
MOV TH1,#0FBh ;400 Hz iin devam et
MOV TL1,#1Dh ;ses
CPL P1.7
SETB TR1 ;zamanlaycy balat
RETI

8051 Kesmeleri 177
Mikrodenetleyiciler 8051 Uygulamalar
Sorular
1. 8052in kesme yapsn ve kesme ile ilgili yazalarn grevlerini aklayn.
2. 32. 8051i kullanarak aadaki TTL iaretin yksekte kald sreyi len ve
sonucu DPTR yazacna yazan program yazn.
a. Balant emasn izin.
b. Algoritmasn yazn.
c. Kaynak program yazn

3. 33. 8051 kullanarak, d kesme 0 geldiinde P1.0 den 7 kHz ve d kesme1
geldiinde P1.1 den 500 Hz frekanslarnda kare dalgalar zamanlayc
kesmelerini kullanarak reten program yazn.
a. Balant emasn izin.
b. Algoritmasn yazn.
c. Kaynak program yazn
4. 8051 kullanarak, d kesme 0 geldiinde P2.0 dan 5 kHz ve d kesme1
geldiinde P2.1 den 400 Hz frekanslarnda kare dalgalar zamanlayc
kesmelerini kullanarak reten program yazn.
a. Balant emasn izin.
b. Algoritmasn yazn.
c. Kaynak program yazn

Mikrodenetleyiciler 8051 Uygulamalar
MCS-51 Komut
Kmesi




KISALTMALAR
( ) .... ierii.
(( )) .... tarafndan iaret edilen veri.
rrr sekiz yazatan biri 000=R0, 001=R1, gibi.
dddddddd veri bitleri.
aaaaaaaa adres bitleri.
bbbbbbbb bit adres.
i dolayl adreslemede yaza numarasn belirtir i=1 veya i=0 olabilir.
eeeeeeee 8 bit bal adres (OFF-SET).
ACALL adr 11
lev: Mutlak altprogram arma komutu.
Aklama: ACALL komutu koul aramakszn belirtilen adresteki alt program
arr. Komut iletildiinde PC ierii bir sonraki komutun adresini belirlemek iin iki
artrr ve sonra 16 bit adres nce DDB olmak zere yna atlr. Hedef adres artrlan
PCnin yksek deerli 5 biti opkodun 7-5 nolu bitleri ve komutun ikinci baytnda yer
alan 8 bit adres birletirilerek elde edilir. Hedef adresteki komutun bulunduu 2 Klk
blok ierisinde yer alan alt program arma ii gereklemi olur. Alt program
program belleinde olmaldr. Bu komut iletildiinde bayraklar etkilemez.

180 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
Bayt 2
lem sresi: 2
Kodu: aaa10001 aaaaaaaa
Not:aaa=A10-A8 ve aaaaaaaa=A7-A0.
lem: (PC)=(PC)+2
(SP)(SP)+1
((SP)) (PC7-PC0)
(SP) (SP)+1
((SP)) (PC15-PC8)
(PC10-PC0) sayfa adresi
ADD A <kaynak-bayt>
lev: Toplama.
Aklama: ADD komutu belirtilen adresteki bayt ile akmlatr toplar, sonucu
akmlatre yazar. Elde bayra bit 7den elde oluursa kurulur, olumadnda
temizlenir. Yardmc elde bayra bit 3n toplamndan elde olursa kurulur,
olumadnda temizlenir. aretsiz saylarn toplamnda elde bayra tamay
gsterir. Tama bayra OV bit 6dan elde oluursa ve bit 7den olumaz ise veya bit
7den elde oluur fakat bit 6dan elde olumaz ise kurulur. Aksi hallerde temizlenir.
Negatif saylarn toplamnda OV bayra iki negatif saynn toplamndan pozitif say
elde edildiini veya iki pozitif saynn toplamndan negatif saynn elde edildiini
gsterir. Kaynak bayt iin drt adresleme kipi kullanlr.
ADD A, Rn
Bayt: 1
lem sresi: 1
Opkodu: 00101rrr
lem: (A)(A)+(Rn)
ADD A, dorudan adres
Bayt: 2
lem sresi: 1
Opkodu: 00100101 aaaaaaaa
lem: (A)(A)+(dorudan adres)
ADD A, @Ri
Bayt: 1
8051 Komutlar 181
Mikrodenetleyiciler 8051 Uygulamalar
lem sresi: 1
Opkodu: 0010011i
lem: (A)(A)+((Ri))
ADD A, #Veri
Bayt: 2
lem sresi: 1
Opkodu: 00100100 dddddddd
lem: (A)(A)+#Veri
ADDC A, <kaynak bayt>
lev: Elde ile birlikte topla.
Aklama: Belirtilen bayt ile akmlatr ve Elde Bayrann (CY) ieriklerini toplar,
sonucu akmlatre yazar. Elde bayra bit 7den elde oluursa kurulur,
olumadnda temizlenir. Yardmc elde bayra bit 3n toplamndan elde olursa
kurulur, olumadnda temizlenir. aretsiz saylarn toplamnda elde bayra
tamay gsterir. Tama bayra OV bit 6dan elde oluursa ve bit 7den olumaz ise
veya bit 7den elde oluur fakat bit 6dan elde olumaz ise kurulur. Aksi hallerde
temizlenir. Negatif saylarn toplamnda OV bayra iki negatif saynn toplamndan
pozitif say elde edildiini, veya iki pozitif saynn toplamndan negatif saynn elde
edildiini gsterir. Kaynak bayt iin drt adresleme kipi kullanlr.
ADDC A, Rn
Bayt: 1
lem sresi: 1
Opkodu: 00110rrr
lem: (A)(A)+(C)+(Rn)
ADDC A, dorudan adres
Bayt: 2
lem sresi: 1
Opkodu: 00110101 aaaaaaaa
lem: (A)(A)+(C)+(dorudan adres)
ADDC A, @Ri
Bayt: 1
lem sresi: 1
182 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
Opkodu: 0011011i
lem: (A)(A)+(C)+((Ri))
ADDC A, #Veri
Bayt: 2
lem sresi: 1
Opkodu: 00110100 dddddddd
lem: (A)(A)+(C)+#Veri
AJMP adr 11
lev: Mutlak balanma komutu.
Aklama: AJMP komutu koul aramakszn belirtilen adrese balanr. Komut
iletildiinde PC ierii bir sonraki komutun adresini belirlemek iin iki arttrlr.
Hedef adres artrlan PCnin yksek deerli 5 biti opkodun 7-5 nolu bitleri ve
komutun ikinci baytnda yer alan 8 bit adres birletirilerek elde edilir. Hedef
adresteki komutun bulunduu 2 Klk blok ierisindeki sayfa numaras belirtilmi
adrese balanm olur. Balanlacak adres program belleinde olmaldr. Bu komut
iletildiinde bayraklar etkilemez.

Bayt 2
lem sresi: 2
Kodu: aaa00001 aaaaaaaa
Not:aaa=A10-A8 ve aaaaaaaa=A7-A0.
lem: (PC)=(PC)+2
(PC10-PC0) sayfa adresi
ANL <HEDEF ADRES>, <KAYNAK ADRES>
lev: Bayt uzunluundaki iki deikene mantk VEler.
Aklama: ANL komutu belirtilen kaynak adres ile belirtilen hedef adresi bit bit
VEleyerek sonucu hedef adrese yazar. lemden bayraklar etkilenmez. Komutta yer
alan iki ilenen alt adres kipinde kullanlr. Hedef akmlatr ise kaynak yaza,
dorudan, dolayl veya ivedi adresli olabilir. Bu komut giri/k portlarnn ieriini
deitirmek iin kullanldnda k pinlerinin ierii okunmaz sadece k
tutucularnn ierii okunur.
ANL A, Rn
Bayt: 1
8051 Komutlar 183
Mikrodenetleyiciler 8051 Uygulamalar
lem sresi: 1
Opkodu: 01011rrr
lem: (A)(A)A(Rn)
ANL A, dorudan adres
Bayt: 2
lem sresi: 1
Opkodu: 01010101 aaaaaaaa
lem: (A)(A)A(dorudan adres)
ANL A, @Ri
Bayt: 1
lem sresi: 1
Opkodu: 0101011i
lem: (A)(A)A((Ri))
ANL A, #Veri
Bayt: 2
lem sresi: 1
Opkodu: 01010100 dddddddd
lem: (A)(A)A#Veri
ANL dorudan adres, A
Bayt: 2
lem sresi: 1
Opkodu: 01010010 aaaaaaaa
lem: (dorudan adres)(dorudan adres)A(A)
ANL dorudan adres, #Veri
Bayt: 3
lem sresi: 2
Opkodu: 01010011i
lem: (dorudan adres)(dorudan adres)A#Veri
ANL C, <Kaynak Bit>
lev: Elde Bayra (CY) ile bit deikenleri VEler.
184 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
Aklama: Kaynak biti 0 ise elde bayran temizler, 1 ise Elde Bayrann (CY)
ieriini deitirmez. Kaynak bitin nndeki / (slash) iaretinin assembly dilindeki
anlam ilem yaplrken kaynak bitin deili alnarak ilem yaplacak fakat kaynak bit
bundan etkilenmeyecektir. Kaynak bit iin sadece dorudan adresleme kullanlr.
ANL C, Bit
Bayt: 2
lem sresi: 2
Opkodu: 10000010 bbbbbbbb
lem: (C)(C)A(Bit)
ANL C, /Bit
Bayt: 2
lem sresi: 2
Opkodu: 10110000 bbbbbbbb
lem: (C)(C)ANOT(Bit)
CALL (ACALL veya LCALL komutlarna baknz.)
CJNE <Hedef Bayt>, <kaynak bayt>, kayklk
lev: Kaynak ile hedefi karlatrr ve eit deilse dallanr.
Aklama: Kaynak ile hedefin byklklerini karlatrr ve eit deilse belirtilen
bal adrese dallanr. Hedef dallanma adresi komut iletildikten sonraki PCnin
ieriine belirtilen bal adres toplanarak elde edilir. Eer hedef adresin iaretsiz
bykl kaynan iaretsiz byklnden daha kk ise Elde Bayra (CY)
kurulur. Aksi hallerde temizlenir. lemden her iki ilenenin ierikleri etkilenmez.
CJNE A, Dorudan adres, Bal adres
Bayt: 3
lem sresi: 2
Opkodu: 10110101 aaaaaaaa eeeeeeee
lem: (PC)(PC)+3
EER (A) <>(Dorudan adres)
THEN
(PC)(PC)+Bal adres
EER (A) <> (Dorudan adres)
THEN
(C)1
8051 Komutlar 185
Mikrodenetleyiciler 8051 Uygulamalar
ELSE
(C)0
CJNE A, #Veri, Bal adres
Bayt: 3
lem sresi: 2
Opkodu: 10110100 dddddddd eeeeeeee
lem: (PC)(PC)+3
EER (A) <>Veri
THEN
(PC)(PC)+Bal adres
EER (A) <> Veri
THEN
(C)1
ELSE
(C)0
CJNE Rn, #Veri, Bal adres
Bayt: 3
lem sresi: 2
Opkodu: 10111rrr dddddddd eeeeeeee
lem: (PC)(PC)+3
EER (Rn) <>Veri
THEN
(PC)(PC)+Bal adres
EER (Rn) <> Veri
THEN
(C)1
ELSE
(C)0

CJNE @Ri, #Veri, Bal adres
Bayt: 3
lem sresi: 2
Opkodu: 1011011i dddddddd eeeeeeee
lem: (PC)(PC)+3
186 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
EER (Ri) <>Veri
THEN
(PC)(PC)+Bal adres
EER (Ri) <> Veri
THEN
(C)1
ELSE
(C)0
CLR A
lev: Akmlatrn ieriini temizler.
Aklama: Akmlatrn tm bitleri 0 yaplr. Hibir bayrak bu ilemden
etkilenmez. Akmlatrn ierii 67H iken;
CLR A
Komutu iletilir ise akmlatrn ierii 00h olur.

Bayt: 1
lem sresi: 1
Opkodu: 11100100
lem: (A)0
CLR Bit
lev: Belirtilen biti 0 yapar.
Aklama: Belirtilen bitin ierii 0 yaplr. lemden bayraklar etkilenmez.
CLR C
Bayt: 1
lem sresi: 1
Opkodu: 11000011
lem: (C)0
CLR Bit
Bayt: 2
lem sresi: 1
Opkodu: 11000010 BBBBBBBB
lem: (Bit)0
CPL A
8051 Komutlar 187
Mikrodenetleyiciler 8051 Uygulamalar
lev: Akmlatrn ieriini 1e tmler.
Aklama: Her bit 1e tmlenir. lemden bayraklar etkilenmez.
Bayt: 1
lem sresi: 1
Opkodu: 11110100
lem: (A)NOT(A)
CPL Bit
lev: Belirtilen bitin deilini alr.
Aklama: Belirtilen bit deikenin ieri mantk DEL ilemine tabi tutulur. Eer
bitin ierii 1 ise ilem sonras 0, 0 ise ilem sonras 1 olur. CPL komutu Elde
Bayran (CY) deillemek iin kullanlr. Bunun dndaki bayraklar ilemden
etkilenmez. Portlarda kullanldnda giri/k bacaklarndaki veriler deil
tutuculardaki veriler esas alnr.
CPL C
Bayt: 1
lem sresi: 1
Opkodu: 10110011
lem: (C)NOT (C)
CPL Bit
Bayt: 2
lem sresi: 1
Opkodu: 10110010 bbbbbbbb
lem: (Bit)NOT (Bit)
DA A
lev: Toplama sonras akmlatrn ieriini KOya ayarlar.
Aklama: KO olarak kodlanm iki say toplandktan sonra akmlatrn ieriini
KOya dntrr. 8051de KO toplama komutu olmamas nedeniyle bu komut
kullanlr. ADD ve ADDC komutlarndan sonra kullanlabilir. Toplama sonras
akmlatrn dk deerli nibl 9dan byk ise geersiz KO say olacaktr.
Toplama sonras DA A komutu iletildiinde dk deerli nibl 9dan byk veya
Yardmc Elde Bayra (AC) kurulu ise dk deerli nibla 6 eklenir. Bu toplama
sonunu elde oluur ise Elde Bayra (CY) kurulur, aksi halde Elde Bayrann (CY)
ierii deimez. Bu elde bayra yksek deerli tm bitlere etkiletilir. Eer dk
188 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
deerli nibln ilemi sonras Elde Bayra (CY) kuruldu ise veya yksek deerli nibl
geersiz KO say ise 6 eklenir ve geerli KO say elde edilir toplama sonras eer
elde oluur ise Elde Bayra (CY) kurulur aksi halde ise Elde Bayra (CY) ierii
deitirilmez. Bylece toplama komutu sonras eer elde olutu ise bu elde birden
fazla baytdan oluan saylarn toplanmasnda kullanlr. Bu ilemlerin hepsi bir ilem
sayklnda gerekleir. Aslnda yaplan ilem karmak deildir. Yaplan ilem KO
dnmdr, dnm yaplrken nce akmlatr ve PROGRAM DURUM
GSTERGE YAZACI ierii test edilir. Test sonularna gre akmlatre 00h, 06h,
60h, 66h saylarndan biri toplanr.
Not:: DA A komutu basit olarak akmlatrn ieriini KOya dntrme yapmaz,
mutlaka toplama sonras kullanlmaldr ve toplanan iki sayda geerli KO olmaldr.
Ayrca karma ilemi sonras kullanlamaz.

Bayt: 1
lem sresi: 1
Opkodu: 11010100
lem: IF [[(A3-A0)>9] VEYA [(AC)=1]
THEN (A3-A0) (A3-A0)+6
VE
IF [[(A7-A4)>9] VEYA [(C)=1]
THEN (A7-A4) (A7-A4)+6
DEC BAYT
lev: Baytn ieriini bir azaltr.
Aklama: Belirtilen baytn ieriini bir azaltr. Eer ierik 00h ise azaltldnda
yeni ierik FFh olur. lemden bayraklar etkilenmez.
Not: Bu komut k portunun ieriini azaltmak iin kullanldnda tutucu
klarn okuyarak azaltr. Port bacaklarnda oluan deerlere bakmaz.
DEC A
Bayt: 1
lem sresi: 1
Opkodu: 00010100
lem: (A) (A)-1
DEC Rn
Bayt: 1
8051 Komutlar 189
Mikrodenetleyiciler 8051 Uygulamalar
lem sresi: 1
Opkodu: 00011rrr
lem: (Rn) (Rn)-1
DEC dorudan Adres
Bayt: 1
lem sresi: 1
Opkodu: 00010101
lem: (Dorudan Adres) (Dorudan Adres)-1
DEC Rn
Bayt: 1
lem sresi: 1
Opkodu: 0001011i
lem: ((Rn)) ((Ri))-1
DIV AB
lev: Blme
Aklama: Akmlatrn ieriini B yazacnn ieriine bler. lem sonunda
blm akmlatre kalan B yazacna yazlrken Elde Bayra (CY) ve Tama Bayra
(OV) temizlenir. Eer blen 00h ise akmlatr ve B yazacnn ierikleri deimez
Elde Bayra (CY) temizlenirken Tama Bayra (OV) kurulur.
Bayt: 1
lem sresi: 4
Opkodu: 10000100
lem: (A) (A)/(B) blm
(B) (A)/(B) Kalan
DJNZ <Bayt>, <bal adres>
lev: eriini bir azalt ve sfr deilse dallan.
Aklama: Birinci ilenenin ierii bir azaltlr eer sfr deilse ikinci ilenende
belirtilen bal adrese dallanr. Eer azaltma ncesi birinci ilenen baytn ierii 00h
ise azaltma sonras FFh olur. lemden bayraklar etkilenmez. Dallanma adresi ikinci
ilenende belirtilen bal adres ile sonraki komutun balang adresine arttrldktan
sonra toplanarak elde edilir. Bal adres iaretli saydr, eer 80h-FFh aras saylar
varsa dallanma geriye doru gerekleir. 00h-7Fh aras saylarda ise dallanma ileri
doru gerekleir.
190 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
Not: Bu komut k portunun ieriini azaltmak iin kullanldnda utucu
klarn okuyarak azaltr. Port bacaklarnda oluan deerlere bakmaz.
Bu komut basit bir dng ile 2 ilem saykl ile 512 ilem saykl arasnda gecikme
yaratr. Baka bir kullanm alan da sayl ilerin yaplmasnda ilem saymadr.
DJNZ Rn, Bal Adres
Bayt: 2
lem sresi: 2
Opkodu: 11011rrr eeeeeeee
lem: (PC) (PC)+2
(Rn) (Rn)-1
IF (Rn)=0
THEN
(PC) (PC)+Bayt 2
DJNZ Dorudan adres, Bal Adres
Bayt: 2
lem sresi: 2
Opkodu: 11011rrr eeeeeeee
lem: (PC) (PC)+2
(Dorudan Adres) (Dorudan Adres)-1
IF (Dorudan Adres)=0
THEN
(PC) (PC)+Bayt 2
INC <Bayt>
lev: Arttrma.
Aklama: Belirtilen deikenin ieriini bir arttrr. Eer nceki deer 0FFh ise
arttrma sonucu 00h olur, ilemden bayraklar etkilenmez.
Not: Bu komut k portunun ieriini arttrmak iin kullanldnda tutucu
klarn okuyarak arttrr. Port bacaklarnda oluan deerlere bakmaz.
INC A
Bayt: 1
lem sresi: 1
Opkodu: 00000100
lem: (A) (A)+1
8051 Komutlar 191
Mikrodenetleyiciler 8051 Uygulamalar
INC Rn
Bayt: 1
lem sresi: 1
Opkodu: 00001rrr
lem: (Rn) (Rn)+1
INC Dorudan Adres
Bayt: 1
lem sresi: 1
Opkodu: 00000101 aaaaaaaa
lem: (Dorudan Adres) (Dorudan Adres)+1
INC @Rn
Bayt: 1
lem sresi: 1
Opkodu: 0000011i
lem: (Ri) (Ri)+1
JB <Bayt>, bal adres
lev: Eer bit 1 ise dallanr.
Aklama: Belirtilen adresteki bit 1 ise dallanma gerekleir. Dallanlacak adres
komutun nc baytnda bal olarak verilir. Bal adres PC 3 arttrldktan sonra
PCye toplanarak hedef adres elde edilir. lemden bayraklar etkilenmez.

Bayt: 3
lem sresi: 2
Opkodu: 00010000 bbbbbbbb eeeeeeee
lem: (PC)(PC)+3
EER (bit)=1 ise
Sonra
(PC)(PC)+Bayt_2
JBC <Bayt>, bal adres
lev: Eer bit 1 ise temizler ve dallanr.
Aklama: Belirtilen adresteki bit 1 ise nce bit temizlenir sonra dallanma
gerekleir. Dallanlacak adres komutun nc baytnda bal olarak verilir. Bal
192 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
adres PC 3 arttrldktan sonra PCye toplanarak hedef adres elde edilir. Bit sfr ise
dallanma olmaz bir alt satrdaki komut iletilir. lemden bayraklar etkilenmez.

Bayt: 3
lem sresi: 2
Opkodu: 00010000 bbbbbbbb eeeeeeee
lem: (PC)(PC)+3
EER (bit)=1 ise
Sonra
(bit) 0
(PC)(PC)+Bayt_2

JC bal adres
lev: Elde varsa dallanr.
Aklama: Elde bayrann ierii 1 ise dallanma gerekleir. Dallanlacak adres
komutun nc baytnda bal olarak verilir. Bal adres PC 3 arttrldktan sonra
PCye toplanarak hedef adres elde edilir. Bit sfr ise dallanma olmaz bir alt satrdaki
komut iletilir. lemden bayraklar etkilenmez.

Bayt: 2
lem sresi: 2
Opkodu: 00010000 eeeeeeee
lem: (PC)(PC)+2
EER (C)=1 ise
THEN
(PC)(PC)+Bayt_2
JMP <Hedef> (SJMP, AJMP, LJMP Komutlarna baknz.
JMP @A+DPTR
lev: Dolayl balan.
Aklama: Akmlatrn ieriini 16 bit DPTRye ekler ve elde edilen say
program sayacna aktarlarak bu adrese balanr. Akmlatrn ierii iaretsiz 8
bit say olabilir. 16 bit ile 8 bit 16 bit toplama eklinde yaplr. 7 numaral bitlerin
toplamndan oluan elde 8 numaral bite aktarlr. Akmlatr PSW ve DPTR
yazalarnn ierikleri ilemden etkilenmez.

8051 Komutlar 193
Mikrodenetleyiciler 8051 Uygulamalar
Bayt: 1
lem sresi: 2
Opkodu: 01110011
lem: (PC)A+DPTR
JNB bit, rel
lev: Bit Kurulu deilse dallan.
Aklama: Belirtilen bit 0 ise komutun nc baytnda verilen iaretli kayklk bir
sonraki komutun adresine arttrlm PC ye toplanarak elde edilen adrese dallanr.
Test edilen bit ve bayraklar ilemden etkilenmez.

Bayt: 3
lem sresi: 2
Opkodu: 00110000 bbbbbbbb eeeeeeee
lem: (PC)(PC)+3
EER (bit)=0
SE
(PC)(PC)+BAYT_3
JNC rel
lev: Elde yoksa dallan.
Aklama: Elde bayrann ierii 0 ise komutun ikinci baytnda verilen iaretli
kayklk bir sonraki komutun adresine arttrlm PCye toplanarak elde edilen adrese
dallanr. Test edilen bayrak ve dier bayraklar ilemden etkilenmez.

Bayt: 2
lem sresi: 2
Opkodu: 01010000 eeeeeeee
lem: (PC)(PC)+2
EER C=0
SE
(PC)(PC)+BAYT_2
JNZ rel
lev: Akmlatr 00 deilse dallan.
194 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
Aklama: Akmlatrn ierii sfr deilse komutun ikinci baytnda verilen
iaretli kayklk bir sonraki komutun adresine arttrlm PCye toplanarak elde edilen
adrese dallanr. Test edilen akmlatr ve bayraklar ilemden etkilenmez.

Bayt: 2
lem sresi: 2
Opkodu: 01110000 eeeeeeee
lem: (PC)(PC)+2
EER (A)<>0
SE
(PC)(PC)+BAYT_2
JZ rel
lev: Akmlatr 00 ise dallan.
Aklama: Akmlatrn ierii sfr ise komutun ikinci baytnda verilen iaretli
kayklk bir sonraki komutun adresine arttrlm PCye toplanarak elde edilen adrese
dallanr. Test edilen akmlatr ve bayraklar ilemden etkilenmez.


Bayt: 2
lem sresi: 2
Opkodu: 01100000 eeeeeeee
lem: (PC)(PC)+2
EER (A)=0
SE
(PC)(PC)+BAYT_2
LCALL 16 Bit Adres
lev: 16 bit adresle alt program arr.
Aklama: bu komut ile YDB ikinci baytta, DDB nc baytta yer alan alt
program arlr. Komut ilenirken nce PC arttrlarak bir sonraki komutun
adresi bulunur. Bu adres yna atlr, yn iaretleyici iki arttrlr ve komutun ikinci
ve nc baytlarnda yer alan 16 bit adres PCye yklenerek bu adreste yer alan alt
program arlr. ACALL komutunda olduu gibi 2K kstlamas yoktur.

Bayt: 3
lem sresi: 2
8051 Komutlar 195
Mikrodenetleyiciler 8051 Uygulamalar
Opkodu: 00010001 aaaaaaaa, aaaaaaaa
lem: (PC)(PC)+3
(SP)(SP)+1
((SP))(PC
7-0
)+3
(SP)(SP)+1
((SP))(PC
15-8
)+3
LJMP 16 Bit Adres
lev: 16 bit adresle koulsuz balanr.
Aklama: Bu komut ile YDB ikinci baytta, DDB nc baytta yer alan adrese
balanr. Komut ilenirken her hangi bir koul aramakszn istenilen adrese balanr.
SJMP ve AJMP komutlarnda olduu gibi kstlama yoktur 64 Klk bellek alannn
tamamna dallanma gerekleir.

Bayt: 3
lem sresi: 2
Opkodu: 00010001 aaaaaaaa, aaaaaaaa
lem: (PC)(PC
15-0
)+3
MUL AB
lev: Bayt deikenleri arpar.
Aklama: Bu komut akmlatr ve B yazacnda yer alan iki iaretsiz 8 bitlik sayy
arpar sonucu yine akmlatre (DDB) ve B yazacna (YDB) yazar. arpm 255ten
byk ise OV bayra kurulur, aksi halde temizlenir.

Bayt: 1
lem sresi: 4
Opkodu: 10100100
lem: A.B(B)
15-8
, (A)
7-0

NOP
lev: lem yapma.
Aklama: PC bir arttrlarak bir sonraki komutu yrtmeye devam eder. lenmesi
1 makine saykl gecikme yaratr. PC dnda hibir yaza veya bayrak ilemden
etkilenmez.

Bayt: 1
196 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
lem sresi: 1
Opkodu: 00000000
lem: (PC)(PC)+1
MOV <Hedef Bayt>, <Kaynak bayt>
lev: Bayt deikeni aktarr.
Aklama: kinci bayta belirtilen bayt deiken birinci bayt deikenin zerine
kopyalanr. Kaynak bayt ilemden etkilenmez. Baka yaza veya bayraklar da
ilemden etkilenmez. 8051 deki tm veri aktarma komutlar MOV olarak
adlandrlmtr. Bu yzden 15 farkl yazm vardr.
MOV A, Rn
Bayt: 1
lem sresi: 1
Opkodu: 11101rrr
lem: (A) (Rn)
MOV A, Dorudan Adres
Bayt: 2
lem sresi: 1
Opkodu: 11100101 aaaaaaaa
lem: (A) (Dorudan Adres)
MOV A, @Ri
Bayt: 1
lem sresi: 1
Opkodu: 1110011i
lem: (A) ((Ri))
MOV A, vedi
Bayt: 2
lem sresi: 1
Opkodu: 01110100 dddddddd
lem: (A) #Veri
MOV Rn, A
Bayt: 1
8051 Komutlar 197
Mikrodenetleyiciler 8051 Uygulamalar
lem sresi: 1
Opkodu: 11111rrr
lem: (Rn) (A)
MOV Rn, Dorudan adres
Bayt: 2
lem sresi: 2
Opkodu: 10101rrr ddddddd
lem: (Rn)(Dorudan Adres)
MOV Rn, #Veri
Bayt: 2
lem sresi: 1
Opkodu: 01111rrr dddddddd
lem: (Rn)#Veri
MOV Dorudan adres , A
Bayt: 2
lem sresi: 1
Opkodu: 11110101 aaaaaaaa
lem: (Dorudan Adres) (A)
MOV Dorudan adres, Rn
Bayt: 2
lem sresi: 2
Opkodu: 10001rrr aaaaaaaa
lem: (Dorudan Adres) (Rn)
MOV Dorudan adres, Dorudan adres
Bayt: 3
lem sresi: 2
Opkodu: 10000101 aaaaaaaa aaaaaaaa
lem: (Dorudan Adres)(Dorudan Adres)
Not: kinci bayt hedefin adresi, nc bayt ise kaynan adresini belirtir.
MOV Dorudan adres, @Ri
Bayt: 2
198 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
lem sresi: 2
Opkodu: 1000011i aaaaaaaa
lem: (Dorudan Adres)((Ri))
MOV Dorudan adres, #Veri
Bayt: 3
lem sresi: 2
Opkodu: 10000101 aaaaaaaa dddddddd
lem: (Dorudan Adres)#Veri
MOV @Ri, A
Bayt: 1
lem sresi: 1
Opkodu: 1111011i
lem: ((Ri))(A)
MOV @Ri, Dorudan Adres
Bayt: 2
lem sresi: 2
Opkodu: 1010011i aaaaaaaa
lem: ((Ri))(Dorudan Adres)
MOV @Ri, #Veri
Bayt: 2
lem sresi: 1
Opkodu: 0111011i dddddddd
lem: ((Ri))#Veri
MOV <Hedef bit>, <Kaynak bit>
lev: Bit deikeni hedef adrese aktarr.
Aklama: nc baytta belirtilen bit deiken kinci baytta belirtilen bit adrese
aktarlr. lenenlerden birinin mutlaka elde bayra olmaldr. lemden hedef bitin
dnda bitin ierii veya bayraklar etkilenmez.
MOV C, Bit
Bayt: 2
lem sresi: 1
8051 Komutlar 199
Mikrodenetleyiciler 8051 Uygulamalar
Opkodu: 10100010 bbbbbbbb
lem: (C)(bit)
MOV Bit, C
Bayt: 2
lem sresi: 2
Opkodu: 10010010 bbbbbbbb
lem: (bit)(C)
MOV DPTR, #Veri 16
lev: DPTRye 16 bit sabit ykler.
Aklama: kinci ve nc baytta verilen 16 bit say DPTRye yklenir. kinci
bayttaki say DPHye nc bayttaki say ise DPLye yklenir.

Bayt: 3
lem sresi: 2
Opkodu: 10010000 dddddddd dddddddd
lem: (DPTR)#16 Veri
MOVC A, @A+<Temel yaza>
lev: Program belleinden sabit bayt veya komut baytn akmlatre
ykler.
Aklama: Akmlatrn ierisindeki 8 bit iaretsiz say temel 16 bitlik yazaca
toplanarak kaynak adres elde edilir. Kaynak adresteki opkod veya sabit deer
akmlatre yklenir. Temel yaza olarak PC veya DPTR kullanlabilir. PC
kullanldnda nce ierii bir sonraki komutun adresine artrlr ve sonra
akmlatrn ierii ile PC toplanarak kaynak adres elde edilir. DPTR temel yaza
olarak kullanldnda ise ilemden ierii etkilenmez. Bayraklarn ierikleri ilemden
etkilenmez.
MOVC A, @A+DPTR
Bayt: 1
lem sresi: 2
Opkodu: 10010011
lem: (A) ((A)+(DPTR))
MOVC A, @A+PC
200 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
Bayt: 1
lem sresi: 2
Opkodu: 10000011
lem: (PC) (PC)+1
(A) ((A)+(PC))
MOVX <hedef bayt>,<kaynak bayt>
lev: D veri belleinden veri baytn akmlatre ykler.
Aklama: Bu komut d veri belleinden akmlatre veya akmlatrden d
veri belleine veri aktarr. ki tr MOVX komutu vardr, bunlardan biri 8 bit adres
kullanr ve sadece 256 satrlk d veri belleinden ilem yapabilir. Dieri ise 16 bit
adres kullanr ve 64Klk bellek alanndan ilem yapabilir. Birinci tip MOVX
komutlarnda adres gsterici olarak seili bulunan R0 ve R1 yazalar kullanlr.
Adres 8 bit olduu iin P0 portu adres veri yolu multiplex olarak kullanlr. P2 portu
ise genel amal giri/k portu olarak kullanlabilir. Adreslenebilecek bellek
kapasitesi ok dk olduunda baka hatlar kullanlarak bu kapasite artrlabilir.
Yalnz bu hatlarn seviyeleri MOVX komutu ncesi programc tarafndan
belirlenmelidir. kinci tip MOVX komutlarnda 16 bit adres DPTR yazac tarafndan
belirlenir. P2 portundan adresin YDB klr (DPH), P0 portu ise adresin DDB (DPL)
ile veri yolu tarafndan zaman paylaml olarak kullanlr. Bu tip movx komutu ile 64
Klk bellek alanndan ilem yaplabilir.
MOVX A, @Ri
Bayt: 1
lem sresi: 2
Opkodu: 1110001i
lem: (A) ((Ri))
MOVX A, @DPTR
Bayt: 1
lem sresi: 2
Opkodu: 11100000
lem: (A) ((DPTR))
MOVX @Ri,A
Bayt: 1
lem sresi: 2
8051 Komutlar 201
Mikrodenetleyiciler 8051 Uygulamalar
Opkodu: 11110011
lem: ((Ri)) (A)
MOVX @DPTR,A
Bayt: 1
lem sresi: 2
Opkodu: 11110000
lem: (DPTR) (A)
ORL <hedef bayt>,<kaynak bayt>
lev: Bayt deikenleri mantk VEYAlar.
Aklama: Belirtilen bayt deikenleri ayn numaral bitlerini mantk VEYAlar.
Sonucu hedef adreste saklar, ilemden bayraklar etkilenmez. Her iki ilenende
toplam 6 deiik adresleme kipinde kullanlabilir.
Not: Bu komut k portunun ieriini baka say ile VEYAladnda tutucu
klarn okuyarak VEYAlar. Port bacaklarnda oluan deerlere bakmaz
ORL A,Rn
Bayt: 1
lem sresi: 1
Opkodu: 01001rrr
lem: (A) (A) V (Rn)
ORL A,dorudan adres
Bayt: 2
lem sresi: 1
Opkodu: 01000101 aaaaaaaa
lem: (A) (A) V (dorudan adres)
ORL A,@Ri
Bayt: 1
lem sresi: 1
Opkodu: 0100011i
lem: (A) (A) V (Ri)
ORL A,#veri
Bayt: 2
202 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
lem sresi: 1
Opkodu: 01000100 dddddddd
lem: (A) (A) V #veri
ORL dorudan adres,A
Bayt: 2
lem sresi: 1
Opkodu: 01000010 aaaaaaaa
lem: (dorudan adres) (dorudan adres) V (A)00
ORL dorudan adres, #Veri
Bayt: 3
lem sresi: 2
Opkodu: 01000011 aaaaaaaa dddddddd
lem: (dorudan adres) (dorudan adres) V Veri
ORL C, <Kaynak Bit>
lev: Bit deikeni VEYAla.
Aklama: kaynak biti 1 ise C=1 yapar, kaynak biti 0 ise Cyi olduu gibi brakr.
Kaynak biti nne / iareti konursa kaynak bitinin deili ile C VEYAlanr. Fakat bu
durumda kaynak bit deimez.
ORL C, Bit
Bayt: 2
lem sresi: 2
Opkodu: 01110010 bbbbbbbb
lem: C C V (Bit)
ORL C, /Bit
Bayt: 2
lem sresi: 2
Opkodu: 10100000 bbbbbbbb
lem: C C V /(Bit)
POP Dorudan Adres
lev: Yndan bayt eker hedefe yazar.
Aklama: Yn iaretleyicinin gsterdii yn satr okunarak belirtilen hedefe
yazlr. lem sonunda yn iaretleyici bir azaltlr. lemden bayraklar etkilenmez.
8051 Komutlar 203
Mikrodenetleyiciler 8051 Uygulamalar
Bayt: 2
lem sresi: 2
Opkodu: 11010000 aaaaaaaa
lem: (dorudan adres) ((SP))
(SP) (SP) - 1
PUSH Dorudan Adres
lev: Yna bayt atar.
Aklama: Yn iaretleyicinin ierii bir arttrlr ve belirtilen bellein ierii yna
atlr. lemden bayraklar etkilenmez.
Bayt: 2
lem sresi: 2
Opkodu: 11000000 aaaaaaaa
lem: (SP) (SP) + 1
((SP)) (dorudan adres)
RET
lev: Alt programdan geri dn.
Aklama: RET komutu yndan PCnin yksek deerli bayt ve dk deerli
baytn ekerek program yrtlmesini bu adresten devam etmesinini salar.
Genellikle bu adres ACALL veya LCALL komutundan bir sonraki komutun adresidir.
lemden bayraklar etkilenmez.
Bayt: 1
lem sresi: 2
Opkodu: 00100010
lem:
(PC
15
PC
8
) ((SP))
(SP) (SP) - 1
(PC
7
PC
0
) ((SP))
(SP) (SP) 1
RETI
lev: Kesmeden geri dn.
Aklama: RETI komutu yndan PCnin yksek deerli bayt ve dk deerli
baytn ekerek program yrtlmesini bu adresten devam etmesini salar.
PROGRAM DURUM GSTERGE YAZACI kesme ile otomatik olarak saklanmaz,
204 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
programcnn kesme servis alt program balangcnda saklamaldr ve RETI komutu
ncesi tekrar geri almaldr. lemden bayraklar etkilenmez.

Bayt: 1
lem sresi: 2
Opkodu: 00110010
lem: (PC
15
PC
8
) ((SP))
(SP) (SP) - 1
(PC
7
PC
0
) ((SP))
(SP) (SP) 1
RL A
lev: Akmlatr sola dndr.
Aklama: Akmlatr ierisindeki 8 bit bir bit sola dndrlr. Bit 7 bit sfrn
bulunduu yere gelir. Dardan bir bit girii yoktur. lemden bayraklar etkilenmez.

Bayt: 1
lem sresi: 1
Opkodu: 00100011
lem: (D
n + 1
) (D
n
), n=0 - 6
(D
0
) (D
7
)

RLC A
lev: Akmlatr elde zerinden sola dndr.
Aklama: Akmlatr ierisindeki 8 bit bir bit sola dndrlr. Bit 7 Elde
Bayrana (CY) Elde Bayrann (CY) ierii ise bit sfrn bulunduu yere gelir. Elde
Bayrandan (CY) baka bayrak ilemden etkilenmez.

Bayt: 1
lem sresi: 1
Opkodu: 00110011
lem: (A
n
+ 1 ) (A
n
), n=0 - 6
(A
0
) (C)
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0

8051 Komutlar 205
Mikrodenetleyiciler 8051 Uygulamalar
(C)(A
7
)


RR A
lev: Akmlatr saa dndr.
Aklama: Akmlatr ierisindeki 8 bit bir bit saa dndrlr. Bit 0 bit 7nin
bulunduu yere gelir. Dardan bir bit girii yoktur. lemden bayraklar etkilenmez.

Bayt: 1
lem sresi: 1
Opkodu: 00000011
lem: (A
n
) (A
n
+ 1 ), n=0 - 6
(A
7
) (A
0
)


RRC A
lev: Akmlatr elde zerinden saa dndr.
Aklama: Akmlatr ierisindeki 8 bit bir bit saa dndrlr. Bit 0 Elde
Bayrana (CY) Elde Bayrann (CY) ierii ise bit 7nin bulunduu yere gelir. Elde
Bayrandan (CY) baka bayrak ilemden etkilenmez.

Bayt: 1
lem sresi: 1
Opkodu: 00110011
lem: (A
n
) (A
n
+ 1 ) n=0 - 6
(A
7
) (C)
(C)(A
0
)

D
7

D
7

D
6

D
6

D
5

D
5

D
4

D
4

D
3

D
3

D
2
D
2
D
1
D
1
D
0

D
0

C
206 EK-A
Mikrodenetleyiciler 8051 Uygulamalar

SETB <bit>
lev: Bit deikeni kurar.
Aklama: belirtilen bit adresin ieriini 1 yapar. Elde bayranda ve dorudan
adreslenebilen bitlerin ieriini kurar. Baka bayrak ilemden etkilenmez.
SETB C
Bayt: 1
lem sresi: 1
Opkodu: 11010011
lem: C 1
SETB bit
Bayt: 1
lem sresi: 1
Opkodu: 11010010 bbbbbbbb
lem: (Bit) 1

SJMP Bal Adres
lev: Ksa balanma.
Aklama: Koulsuz olarak belirtilen adrese balanr. Balanma adresi 2 arttrlm
PC'nin ieriine opkod sonras belirtilen iaretli kayklk toplanarak elde edilir.
Balanma uzakl 127 adm ileri ve 128 adm geriye dorudur. Balanlacak uzaklk
az olduu iin ksa balanma komutu olarak adlandrlr.
Bayt: 2
lem sresi: 2
Opkodu: 10000000 eeeeeeee
lem: (PC) (PC) + 2
(PC) (PC) + Byt_2
SUBB A, <Kaynak Bayt>
lev: Elde ile birlikte kar.
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0

C
8051 Komutlar 207
Mikrodenetleyiciler 8051 Uygulamalar
Aklama: Bu komut belirtilen bayt adresin ierii ile elde bayrann ieriini
akmlatrden karr. SUBB komutu eer bit 7lerin karlmasnda bor gerekirse
elde bayran kurar aksi halde elde bayran temizler. karma ilemi ncesi elde
bayra kurulu olursa bunun anlam bundan nceki karma ileminde bor
alnmtr, bu bor bu karma ileminde akmlatrden alnacaktr. Bu ilem birden
fazla uzunluktaki saylarn karma ileminde kullanlacaktr. AC bayra ise bit
3lerin ileminde bor gerekirse kurulur dier durumda temizlenir. Tama Bayra
(OV) bit 6larn ileminde bor gerekirse kurulur eer gerekmez ise bit 7lerin
ileminde bor gerekirse kurulur. aretli saylar ile ilem yaparken Tama
Bayrann (OV) kurulu olmas pozitif saydan negatif say karld ve negatif sonu
elde edildiini veya negatif saydan pozitif karldnda pozitif saynn elde
edildiini gsterir.
SUBB A, Rn
Bayt: 1
lem sresi: 1
Opkodu: 10011rrr
lem: (A) (A) (C) (Rn)
SUBB A, Dorudan Adres
Bayt: 2
lem sresi: 1
Opkodu: 10010101 aaaaaaaa
lem: (A) (A) (C) (Dorudan Adres)
SUBB A, @Ri
Bayt: 1
lem sresi: 1
Opkodu: 1001011i
lem: (A) (A) (C) ((Ri))
SUBB A, #Veri
Bayt: 2
lem sresi: 1
Opkodu: 10010100 dddddddd
lem: (A) (A) (C) #Veri
208 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
SWAP A
lev: Akmlatrn ieriinin (nible) drtl bit gruplarn yer deitirir.
Aklama: Dk deerli drt bit ile yksek deerli drt biti karlkl yer deitirir.
Sadece akmlatrde alan bir komuttur. lemden bayraklar etkilenmez.

Bayt: 1
lem sresi: 1
Opkodu: 11000100
lem: (A
3
A
0
) (A
7
A
4
)
XCH A, <Bayt>
lev: Akmlatr ile bayt deikenin ieriini takas eder.
Aklama: Akmlatr ile belirtilen adresteki baytlar takas eder. lemden
bayraklar etkilenmez.
XCH A, Rn
Bayt: 1
lem sresi: 1
Opkodu: 11001rrr
lem: (A) (Rn)
XCH A, Dorudan Adres
Bayt: 2
lem sresi: 1
Opkodu: 11000101 aaaaaaaa
lem: (A) (Dorudan Adres)
XCH A, @Ri
Bayt: 1
lem sresi: 1
Opkodu: 1100011i
lem: (A) ((Ri))

XCHD, @Ri
lev: Akmlatr ile bayt deikenin dk deerli 4 bitlerini takas eder.
8051 Komutlar 209
Mikrodenetleyiciler 8051 Uygulamalar
Aklama: Akmlatr ile belirtilen adresin ieriklerinin dk deerli 4 bitleri
takas edilir. KO saylarn ilemlerinde bu komut kullanlabilir. lemden bayraklar
etkilenmez.

Bayt: 1
lem sresi: 1
Opkodu: 1101011i
lem: (A3 A0) ((Ri3 Ri0))
XRL <hedef bayt>, <kaynak bayt>
lev: Bayt deikenleri ZEL VEYAlar (EXOR)
Aklama: XRL komutu belirtilen kaynak ile hedef adresin ieriklerini ayn numaral
bitlerini ZEL VEYAlar ve hedefe yazar. lemden bayraklar etkilenmez.
Not: Bu komut k portunun ieriini baka say ile ZEL VEYAladnda tutucu
klarn okuyarak ZEL VEYAlar. Port bacaklarnda oluan deerlere bakmaz
XRL A, Rn
Bayt: 1
lem sresi: 1
Opkodu: 01101rrr
lem: (A) (A) (Rn)
XRL A, Dorudan Adres
Bayt: 2
lem sresi: 1
Opkodu: 01100101 aaaaaaaa
lem: (A) (A) (Dorudan Adres)
XRL A, @Ri
Bayt: 1
lem sresi: 1
Opkodu: 0110011i
lem: (A) (A) ((Ri))
XRL A, #veri
Bayt: 2
lem sresi: 1
210 EK-A
Mikrodenetleyiciler 8051 Uygulamalar
Opkodu: 01100101 dddddddd
lem: (A) (A) #veri
XRL Dorudan Adres, A
Bayt: 2
lem sresi: 1
Opkodu: 01100010 aaaaaaaa
lem: (Dorudan Adres) (Dorudan Adres) (A)
XRL Dorudan adres, #veri
Bayt: 3
lem sresi: 2
Opkodu: 01100011 aaaaaaaa dddddddd
lem: (DorudanAdres)(Dorudan Adres) #veri

Mikrodenetleyiciler 8051 Uygulamalar
Kaynaka
1. MacKenzie Scott. The 8051 Microcontroller, Prentice Hall. 3rd. Ed. 1999
2. Yeralan and Ahluwalia. Programming and Interfacing the 8051
Microcontroller. Addison-Wesley. 1995.
3. Haluk Gmkaya, Mikroilemciler ve 8051 ailesi, Alfa yaynclk,
1998,2002.
4. Jan Axelson, Her ynyle 8051/52, Biliim yaynlar, 2000 (Trke evirisi).
5. Vault Information Services firmasnn 8051 hakknda hazrlad bir sitedir.
http://www.8052.com
6. Intel 8051 mikrodenetleyici veri yapraklar.
http://developer.intel.com/design/mcs51/
7. Philips 8051 mikrodenetleyici veri yapraklar.
8. http://www-us.semiconductors.philips.com/microcontrol/
9. Infineon (eski Siemens) 8051 mikrodenetleyici veri yapraklar.
http://www.infineon.com/products/micro/micro.htm
10. Keil 8051 program gelitirme yazlm hakknda bilgi ve rnek programlar
ierir. http://www.keil.com/home.htm
11. Raisonance 8051 program gelitirme yazlm hakknda bilgi ve rnek
programlar ierir. http://www.raisonance.com
12. Analog Devices ADuC812 (8051/8052 uyumlu) ilemcilerinin veri
yapraklarn ierir. www.analog.com/microconverter

Mikrodenetleyiciler 8051 Uygulamalar
Dictionary
A
Absolute addressing Mutlak adresleme
Absolute Jump Mutlak balanma
Access time Eriim Zaman
Active High Aktif Yksek
Active Low Aktif Dk
Addition Toplama
Address Adres
Address Bus Adres Yolu
Address Decoding Adres Kod zm
Address Latch Enable Adres tutucusu izinleme
Addressing Modes Adresleme kipleri
ALE Adres tutucusu izinleme
Architecture Mimari
Arithmetic Instruction Aritmetik ilem komutu
Assembler Birletirici
Assembly Birletirme
Assembly language Birletirici dili, Assembly dili
B
Baud Rate iletiim hz
BCD, Binary Coded Decimal KO, ikilik kodlanm onlu
Bidirectional ki Ynl
Bill Of Material, BOM Malzeme Listesi
Binary kili
Binary Coded Decimal, BCD kilik Kodlanm onlu, KO
Boolean Processing Lojik Operasyonlar
Branch Prediction Dallanma Tahmini
Branching Instructions Dallanma komutlar
Buffer Tampon
214 Szlk
Mikrodenetleyiciler 8051 Uygulamalar
Bus Yol
Bus cycle Yol evrimi
Cache nbellek
Carry flag Elde bayra
Central Processing Unit, CPU Merkezi lem Birimi, MB
Check Sum Toplam ile denetleme
Chip Tmdevre
CISC, Complex Instruction Set Code Karmak komut kmesi kodu
Clock Saat
Code memory Program bellei
Column Decoder Stn Kod zc
Common ANOT Ortak Anotlu
Common Bus Ortak Yol
Common I/O Ortak Giri/k
Common KATOT Ortak Katotlu
Compile Derleme
Complement Tmleyen
Complex Instruction Set Code, CISC Karmak komut kmesi kodu
Complier Derleyici
Control Bus Kontrol Yolu
Control Word Kontrol Kelimesi
Core ekirdek
Count Sayma
Counter Sayc
D
Data Veri
Data Acquisition Veri Toplama
Data Bus Veri Yolu
Data Bus Veri Yolu
Data Flow Veri Ak
Data memory Veri bellei
Szlk 215
Mikrodenetleyiciler 8051 Uygulamalar
Data Processing Veri leme
Data Transfer Instructions Veri aktarma komutlar
Debouching Zplama
Decoder Kod zc
Destination Hedef
Development Kit Gelitirme kiti
Digit Hane
Direct addressing Dorudan adresleme
Direct Memory Access Dorudan bellek eriimi
Disabled Etkin olmayan duruma alma
DMA Dorudan bellek eriimi
Duplex Alc ve Verici birimleri olan
E
Edge Kenar
Edge triggered Kenar Tetiklemeli
EEPROM Elektrik ile programlanabilir elektrik
ile silinebilir sadece okunabilir
bellek
Electrical Programmable ROM Elektrik ile programlanabilir kla
silinebilir sadece okunabilir bellek
Embedded inde
Enable zinleme
Enabled izinlendiinde
EPROM Elektrik ile programlanabilir kla
silinebilir sadece okunabilir bellek
Evolution Kit Deerlendirme kiti
Execute Komut Yrtme
Execution Yrtme
External code memory D program bellei
External data memory D veri bellei
F
Factory-masked Fabrika Maskeli
216 Szlk
Mikrodenetleyiciler 8051 Uygulamalar
Falling Edge Den Kenar
Fetch Komut Okuma
Flag Bayrak
FLASH EEPROM Elektrik ile programlanabilir elektrik
ile silinebilir sadece okunabilir
bellek
Floating-Point Unit, FPU Kayan-Nokta Birimi
Flow chart Ak diyagram
Full Decoding Tam Kod zc
Full-Duplex Ayn anda veriyi alp vermek
G
Gate Kap
H
Half-Duplex Ayn anda alma veya verme
Hand Shake El skma
Immediate addressing vedi adresleme
In-circuit Emulator Devre stnde deneme
Indexed addressing Sral adresleme
Indirect addressing Dolayl adresleme
Input Giri
Instruction Komut
Instruction Queue Komut Sras
Instruction Register, IE Komut Saklaycs
Instruction set Komut Kmesi
Interface Arabirim
Internal RAM RAM
Interrupt Kesme
Interrupt Request Kesme stei
Interrupt Service Routine Kesme Hizmet Program

Jump backward Geri dallanma
Jump forward leri dallanma
Szlk 217
Mikrodenetleyiciler 8051 Uygulamalar
K
L
Level Seviye
Level Triggered Seviye Tetiklemeli
Linear Address Dorusal Adres
Linear Selection Dorusal Seimli
Location Yer
Logical Word Lojik Kelime
Long addressing Uzun adresleme
Look-up Table Bavuru Tablosu
M
Machine Cycle Makine evrimi
Mask-ROM retilen firma tarafndan
programlanm sadece okunabilir
bellek
Memory Bellek
Memory Hafza
Memory Address Space Bellek Adres Alan
Memory Address Space Hafza Adres Alan
Memory Array Bellek Dizisi
Memory Array Hafza Dizisi
Memory Cell Bellek Hcresi
Memory Cell Hafza Hcresi
Memory Decoder Bellek Kod zc
Memory Decoder Hafza Kod zc
Memory Management Bellek Ynetimi
Memory Management Hafza Ynetimi
Memory Map Bellek Haritas
Memory Map Hafza Haritas
Microcontroller Mikrodenetleyici
Microprocessor Mikroilemci
Multiplexed oklu seenekten Seme
218 Szlk
Mikrodenetleyiciler 8051 Uygulamalar
Multi-tasking ok amal, ok grevli
Multi-user ok kullancl
N
Negative Clock Pulse Negatif Saat Darbesi
Negative Transition Negatif Gei
Nibble Drt bit
O
On-Chip Tmdevre zeri
One Time Programmable Bir defa programlanabilir
Op-code lem kodu
Operand lem Verisi
Operation Code lem Kodu
OTP Bir defa programlanabilir
Output k
Output data bus k veri yolu
Output device k cihaz
Overflow Tama
P
Paging Sayfalama
Parity Bit Elik biti
Partial Decoding Ksmi Kod zm
Pin U
Pipelined hatl
Pointer areti, gsterici
Positive Clock Pulse Pozitif Saat Darbesi
Positive Transition Pozitif Gei
PPM, Pulse Per Minute Dakikadaki vuru says
Priority ncelik
Processor lemci
Program Control Instructions Program denetim komutlar
Program Development Environment Program Gelitirme Ortam
Szlk 219
Mikrodenetleyiciler 8051 Uygulamalar
Program Status Word, PSW Durum yazac
Programmable Read Only Memory,
PROM
Programlanabilir sadece okunabilen
bellek
PROM Programlanabilir sadece okunabilen
bellek
Protected Mode Korumal Mod
R
Random Access Rasgele Eriimli
Read Okuma
Read Only Memory, ROM Salt Okunabilir Hafza
Real-Mode Gerek mod
Real-Time Gerek Zaman
Reduced Instruction Set Code ndirgenmi komut kmesi kodu
Register Saklayc
Register Yaza
Register addressing Yaza adresleme
Register Set Bank Saklayc Kmesi
Relative addressing Bal adresleme
Relocatable Tekrar Yerletirilebilir
Reset Sfrlamak, balang konumuna
getirme
RISC ndirgenmi komut kmesi kodu
Rising Edge Ykselen Kenar
RMS, Root Mean Square Etkin deer, AC voltmetrenin lt
deer
Rotate Dndrme
Row Decoder Satr Kod zc
RPM Dakikadaki vuru says
S
Set Kurmak, 1 yapmak
Shift teleme
Simulation Benzetim
220 Szlk
Mikrodenetleyiciler 8051 Uygulamalar
Slot Yuva
Source Kaynak
Source File Kaynak Dosya
Stack Yn
Stack Pointer, SP Yn aretisi, Gstericisi
State Durum
Subroutine Altprogram
Subtract with Borrow Bor ile birlikte kar
Subtraction karma
Successive Approximation Ardl Yaklam
Synchronization Ezamanlama
System Bus Sistem Yolu
T
Target address Hedef Adres
Time delay loop Zaman geciktirme dngs
Timer Zamanlayc
Timing Zamanlama
Transmit Vermek, iletmet
Transmitter Verici
Transparent Saydam
Trigger Tetikleme
Two-level Decoding ki Seviyeli Kod zc
U
UART Universal Asenkron Reciver
Transmitter
Unconditional jump instructions Koulsuz dallanma komutlar
Unidirectional Tek Ynl
USART Universal Senkron Asenkron Reciver
Transmitter
V
Virtual Sanal
Virtual Memory Sanal bellek
Szlk 221
Mikrodenetleyiciler 8051 Uygulamalar
Wait State Bekleme Durumu
Word Kelime
Word Length Kelime Uzunluu
Write Yazma
Z
Zone Blge


222 Szlk
Mikrodenetleyiciler 8051 Uygulamalar
Szlk
A
Adres Address
Adres Kod zm Address Decoding
Adres tutucusu izinleme Address Latch Enable
Adres tutucusu izinleme ALE
Adres Yolu Address Bus
Adresleme kipleri Addressing Modes
Ak diyagram Flow chart
Aktif Dk Active Low
Aktif Yksek Active High
Alc ve Verici birimleri olan Duplex
Altprogram Subroutine
Arabirim Interface
Ardl Yaklam Successive Approximation
Aritmetik ilem komutu Arithmetic Instruction
Ayn anda alma veya verme Half-Duplex
Ayn anda veriyi alp vermek Full-Duplex
B
Bal adresleme Relative addressing
Bavuru Tablosu Look-up Table
Bayrak Flag
Bekleme Durumu Wait State
Bellek Memory
Bellek Haritas Memory Map
Bellek Adres Alan Memory Address Space
Bellek Dizisi Memory Array
Bellek Hcresi Memory Cell
Bellek Kod zc Memory Decoder
Bellek Ynetimi Memory Management
Szlk 223
Mikrodenetleyiciler 8051 Uygulamalar
Benzetim Simulation
Bir defa programlanabilir One Time Programmable
Bir defa programlanabilir OTP
Birletirici Assembler
Birletirici dili, Assembly dili Assembly language
Birletirme Assembly
Bor ile birlikte kar Subtract with Borrow
Blge Zone

ekirdek Core
karma Subtraction
k Output
k cihaz Output device
k veri yolu Output data bus
ok amal, ok grevli Multi-tasking
ok kullancl Multi-user
oklu seenekten Seme Multiplexed
D
Dakikadaki ripl says RPM
Dakikadaki vuru says PPM, Pulse Per Minute
Dallanma komutlar Branching Instructions
Dallanma Tahmini Branch Prediction
Deerlendirme kiti Evolution Kit
Derleme Compile
Derleyici Complier
Devre stnde deneme In-circuit Emulator
D program bellei External code memory
D veri bellei External data memory
Dorudan adresleme Direct addressing
Dorudan bellek eriimi Direct Memory Access
Dorudan bellek eriimi DMA
224 Szlk
Mikrodenetleyiciler 8051 Uygulamalar
Dorusal Adres Linear Address
Dorusal Seimli Linear Selection
Dolayl adresleme Indirect addressing
Dndrme Rotate
Drt bit Nibble
Durum State
Durum yazac Program Status Word, PSW
Den Kenar Falling Edge
E
El skma Hand Shake
Elde bayra Carry flag
Elektrik ile programlanabilir elektrik
ile silinebilir sadece okunabilir bellek
EEPROM
Elektrik ile programlanabilir elektrik
ile silinebilir sadece okunabilir bellek
FLASH EEPROM
Elektrik ile programlanabilir kla
silinebilir sadece okunabilir bellek
EPROM
Elektrik ile programlanabilir kla
silinebilir sadece okunabilir bellek
Electrical Programmable ROM
Eriim Zaman Access time
Elik biti Parity Bit
Ezamanlama Synchronization
Etkin deer, AC voltmetrenin lt
deer
RMS, Root Mean Square
Etkin olmayan duruma alma Disabled
F
Fabrika Maskeli Factory-masked
G
Gelitirme kiti Development Kit
Gerek mod Real-Mode
Gerek Zaman Real-Time
Geri dallanma Jump backward
Szlk 225
Mikrodenetleyiciler 8051 Uygulamalar
Giri Input
H
Hafza Memory
Hafza Adres Alan Memory Address Space
Hafza Dizisi Memory Array
Hafza Haritas Memory Map
Hafza Hcresi Memory Cell
Hafza Kod zc Memory Decoder
Hafza Ynetimi Memory Management
Hane Digit
Hedef Destination
Hedef Adres Target address

RAM Internal RAM
inde, Gml Embedded
ki Seviyeli Kod zc Two-level Decoding
ki Ynl Bidirectional
kili Binary
kilik Kodlanm onlu, KO Binary Coded Decimal, BCD
KO, ikilik kodlanm onlu BCD, Binary Coded Decimal
leri dallanma Jump forward
iletiim hz Baud Rate
ndirgenmi komut kmesi kodu Reduced Instruction Set Code
ndirgenmi komut kmesi kodu RISC
hatl Pipelined
areti, gsterici Pointer
lem Kodu Operation Code
lem kodu Op-code
lem Verisi Operand
lemci Processor
vedi adresleme Immediate addressing
226 Szlk
Mikrodenetleyiciler 8051 Uygulamalar
zinleme Enable
izinlendiinde Enabled
K
Kap Gate
Karmak komut kmesi kodu Complex Instruction Set Code, CISC
Karmak komut kmesi kodu CISC, Complex Instruction Set Code
Kayan-Nokta Birimi Floating-Point Unit, FPU
Kaynak Source
Kaynak Dosya Source File
Kelime Word
Kelime Uzunluu Word Length
Kenar Edge
Kenar Tetiklemeli Edge triggered
Kesme Interrupt
Kesme Hizmet Program Interrupt Service Routine
Kesme stei Interrupt Request
Ksmi Kod zm Partial Decoding
Kod zc Decoder
Komut Instruction
Komut Kmesi Instruction set
Komut Okuma Fetch
Komut Saklaycs Instruction Register, IE
Komut Sras Instruction Queue
Komut Yrtme Execute
Kontrol Kelimesi Control Word
Kontrol Yolu Control Bus
Korumal Mod Protected Mode
Koulsuz dallanma komutlar Unconditional jump instructions
Kurmak , 1 yapmak Set
L
Lojik Kelime Logical Word
Szlk 227
Mikrodenetleyiciler 8051 Uygulamalar
Lojik ilemler Logical Operations
M
Makine evrimi Machine Cycle
Malzeme Listesi Bill Of Material, BOM
Merkezi lem Birimi, MB Central Processing Unit, CPU
Mikrodenetleyici Microcontroller
Mikroilemci Microprocessor
Mimari Architecture
Mutlak adresleme Absolute addressing
Mutlak balanma Absolute Jump
N
Negatif Gei Negative Transition
Negatif Saat Darbesi Negative Clock Pulse
O
Okuma Read
Ortak Anotlu Common ANOT
Ortak Giri/k Common I/O
Ortak Katotlu Common KATOT
Ortak Yol Common Bus

nbellek Cache
ncelik Priority
teleme Shift
P
Pozitif Gei Positive Transition
Pozitif Saat Darbesi Positive Clock Pulse
Program bellei Code memory
Program denetim komutlar Program Control Instructions
Program Gelitirme Ortam Program Development Environment
Programlanabilir sadece okunabilen
bellek
Programmable Read Only Memory,
PROM
228 Szlk
Mikrodenetleyiciler 8051 Uygulamalar
Programlanabilir sadece okunabilen
bellek
PROM
R
Rasgele Eriimli Random Access
S
Saat Clock
Saklayc Register
Saklayc Kmesi Register Set Bank
Salt Okunabilir Hafza Read Only Memory, ROM
Sanal Virtual
Sanal bellek Virtual Memory
Satr Kod zc Row Decoder
Saydam Transparent
Sayfalama Paging
Sayc Counter
Sayma Count
Seviye Level
Seviye Tetiklemeli Level Triggered
Sfrlamak, balang konumuna
getirme
Reset
Sral adresleme Indexed addressing
Sistem Yolu System Bus
Stn Kod zc Column Decoder
T
Tam Kod zc Full Decoding
Tampon Buffer
Tama Overflow
Tek Ynl Unidirectional
Tekrar Yerletirilebilir Relocatable
Tetikleme Trigger
Toplam ile denetleme Check Sum
Toplama Addition
Szlk 229
Mikrodenetleyiciler 8051 Uygulamalar
Tmdevre Chip
Tmdevre zeri On-Chip
Tmleyen Complement
U
U Pin
Universal Asenkron Reciver
Transmitter
UART
Universal Senkron Asenkron Reciver
Transmitter
USART
Uzun adresleme Long addressing

retilen firma tarafndan
programlanm sadece okunabilir
bellek
Mask-ROM
V
Veri Data
Veri Ak Data Flow
Veri aktarma komutlar Data Transfer Instructions
Veri bellei Data memory
Veri leme Data Processing
Veri Toplama Data Acquisition
Veri Yolu Data Bus
Veri Yolu Data Bus
Verici Transmitter
Vermek, iletmet Transmit
Y
Yaza Register
Yaza adresleme Register addressing
Yazma Write
Yer Location
Yn Stack
Yn aretisi, Gstericisi Stack Pointer, SP
230 Szlk
Mikrodenetleyiciler 8051 Uygulamalar
Yol Bus
Yol evrimi Bus cycle
Yuva Slot
Ykselen Kenar Rising Edge
Yrtme Execution
Z
Zaman geciktirme dngs Time delay loop
Zamanlama Timing
Zamanlayc Timer
Zplama Debouching

Vous aimerez peut-être aussi