• Sonuç bulunamadı

8051 Mikrodenetleyicisi için işlevsel tabanlı benzetim programı tasarımı

N/A
N/A
Protected

Academic year: 2021

Share "8051 Mikrodenetleyicisi için işlevsel tabanlı benzetim programı tasarımı"

Copied!
69
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

T.C.

SAKARYA ÜN VERS TES

FEN B L MLER ENST TÜSÜ

8051 M KRODENETLEY C S Ç N LEVSEL

TABANLI BENZET M PROGRAMI TASARIMI

YÜKSEK L SANS TEZ

Necat GÜNEY

Enstitü Anabilim Dal : ELEKTRON K B LG SAYAR E" T M Bu tez 03/08/2006 tarihinde a/a0 daki jüri taraf ndan Oybirli0i ile kabul edilmi/tir.

(2)

ii

TE EKKÜR

Tez çal malar ma ba lad m günden bugüne kadar gösterdi i destek ve anlay tan dolay tez dan man m Sn. Yard. Doç. Dr. Ahmet Turan ÖZCER&T’e, tez çal mam n olu umunda yard m ve desteklerini esirgemeyen Bolu Merkez &zzet Baysal Anadolu Teknik Lisesi okul idaresine ve Bilgisayar Bölümü’nde beraber çal t m z meslekta - lar ma te ekkür ederim.

(3)

Ç NDEK LER

TE-EKKÜR... ii

&Ç&NDEK&LER ... iii

S&MGELER VE KISALTMALAR L&STES& ... vi

-EK&LLER L&STES& ... vii

TABLOLAR L&STES&... ix

ÖZET ... x

SUMMARY... xi

BÖLÜM 1. G&R&- ... 1

BÖLÜM 2. HEDEF M&KRODENETLEY&C& VE M&MAR&S&... 7

2.1. Mikrodenetleyici ve Mikroi lemci Kar la t r lmas ... 8

2.2. MSC-51 Ailesi Mikrodenetleyicinin Tarihçesi ... 9

2.3. 8051’in Genel Yap s ve Çal ma Prensibi ... 10

2.3.1. & lemci Çekirde i (CPU) ... 11

2.3.2. Sistem Belle i ... 12

2.3.3. Çevresel Birimler (Peripherals) ... 13

2.4. Assembly Dili ve Özellikleri... 15

2.4.1. Program Format ... 16

2.4.2. Yönergeler (Directives) ... 17

2.5. Adresleme Yöntemleri ... 18

2.5.1. Kaydedici Adresleme... 19

2.5.2. Do rudan Adresleme ... 19

2.5.3. Dolayl Adresleme ... 20

2.5.4. &vedi Adresleme... 21

(4)

iv

2.5.6. Mutlak Adresleme... 22

2.5.7. Uzun Adresleme ... 23

2.5.8. S ral (index) Adresleme... 23

2.6. 8051 Komut Türleri... 24

2.6.1. Aritmetik Komutlar... 25

2.6.2. Mant ksal Komutlar ... 26

2.6.3. Veri Transfer Komutlar ... 27

2.6.3.1. Dahili Veri Belle i Veri Transfer Komutlar ... 27

2.6.3.2. Harici Veri Belle i Veri Transfer Komutlar ... 28

2.6.3.3. Prog. Bel. i Veri Belle i Veri Transfer Komutlar 29 2.6.4. Bit & lem Komutlar ... 29

2.5.5. Program Dallanma Komutlar ... 30

2.6.5.1. Ko ulsuz Dallanma Komutlar ... 30

2.6.5.2. Ko ullu Dallanma Komutlar ... 31

2.6.5.3. Alt Program Ça rma ve Dönü Komutlar ... 32

BÖLÜM 3. S&MÜLASYON KAVRAMI ... 33

3.1. Simülasyonun Tan m ... 33

3.2. Simülasyonun Genel Özellikleri ... 36

3.3. Simülasyonun Kullan m Amaçlar ... 36

3.4. Simülasyonun Avantajlar ve Dezavantajlar ... 37

3.5. Simülasyonun Uygulama Alanlar ... 38

BÖLÜM 4. &-LEVSEL S&MÜLATÖRÜN GERÇEKLE-T&R&LMES& ... 40

4.1. Simülatörün Genel Yap s ... 40

4.1.1. Kod Yaz m ve Düzenleme Penceresi... 41

4.1.2. Kod Derleme ve Hata Takip Penceresi... 42

4.1.2.1. ASM Uzant l Kaynak Dosyas n n Haz rlanmas .. 43

4.1.2.2. ASM51.EXE Assembler n n Genel Yap s ... 43

4.1.2.3. LST ve HEX Dosyas n n Olu turulmas ... 43

4.1.2.4. Hata Denetiminin Yap lmas ... 45

(5)

4.1.3. Program Çal t rma ve Takip Penceresi... 46

4.1.4. Dahili RAM Bellek... 47

4.1.5 Harici RAM Bellek... 48

4.1.6 Özel Fonksiyon Saklay c lar ... 48

4.1.7. Program Belle i ... 50

4.1.8. Giri /Ç k Ayg tlar ... 50

4.1.8.1. Giri /Ç k Ayg tlar n n Portlara Ba lanmas ... 50

4.2. Simülatörün Çal ma Prensibinin Gösterimi... 52

BÖLÜM 5. SONUÇ VE ÖNER&LER... 54

KAYNAKLAR ... 56

ÖZGEÇM&- ... 58

(6)

vi

S MGELER VE KISALTMALAR L STES

# : Sa ndaki de erin veri oldu unu gösterir

$ : Sa ndaki de erin ondal k say veya adres oldu unu gösterir

@ : Sa ndaki verinin sekiz tabanl say oldu unu gösterir O : Önündeki verinin sekiz tabanl bir say oldu unu gösterir B : Önündeki de erin ikilik say oldu unu ifade eder

H : Önündeki de erin onalt l k tabanda bir de er oldu unu gösterir

% : Sa ndaki de erin ikilik say oldu unu ifade eder D : Önündeki verinin ondal k düzende oldu unu gösterir

ACC,A : A kaydedicisi, akümülatör B : B kaydedicisi

SFR : Özel Fonksiyon Kaydedicileri PSW : Program Durum Kaydedicisi DPTR : Data Pointer-Veri & aretçisi SP : Stack Pointer-Y n & aretçisi PCON : Power Control-Güç Kontrol

IE : Interrupt Enable-Kesme Yetkilendirme IP : Interrupt Priorty-Kesme Öncelik TCON : Timer Control-Zamanlay c Kontrol TMOD : Timer Mod-Zamanlay c Mod SCON : Serial Control-Seri Kontrol SBUF : Serial Buffer-Seri Tampon

Rn R0-R7’ye kadar 8 adet kaydedici

(7)

EK LLER L STES

-ekil 2. 1. Mikrodenetleyicinin blok diyagram [1]... 7

-ekil 2.2. 8051 Blok Diyagram [1]... 11

-ekil 2. 3.Saklay c adresleme ... 19

-ekil 2. 4. Do rudan adresleme ... 19

-ekil 2. 5. Dolayl adresleme ... 20

-ekil 2. 6. Dolayl adresleme örne i ... 20

-ekil 2. 7. &vedi adresleme... 21

-ekil 2. 8. Ba l adresleme ... 21

-ekil 2. 9. Ba l adresleme yöntemi ... 22

-ekil 2.10. Mutlak adresleme... 23

-ekil 2.11. 64 kB'l k belle in sayfalara ayr lmas ... 23

-ekil 2.12. Uzun adresleme ... 23

-ekil 2. 13. S ral adresleme ... 24

-ekil 2. 14. S ral adresleme örne i ... 24

-ekil 4.1 8051 mikrodenetleyici simülatörünün genel görünü ü... 41

-ekil 4.2. Kod yaz m ve düzenleme penceresi ... 42

-ekil 4.3. 8051 assembly komutalar n n derlemesi i lemi... 42

-ekil 4.4. ASM51.EXE çevirici ile HEX ve LST dosyas n n olu turulmas ... 43

-ekil 4.5. O06.HEX dosyas n n içeri i... 44

-ekil 4.6. O06.LST dosyas n n içeri i ... 44

-ekil 4. 7. Assembly prog.n n derlenmesi ve sonucun kullan c ya bildirilmesi ... 45

-ekil 4.8. Derlenen dosyan n çal t r ld pencere ... 46

(8)

viii

-ekil 4.10. Bellek hücresindeki verilerin bit baz nda de erinin de i tirilmesi .... 48

-ekil 4.11. Özel fonksiyon saklay c lar ... 49

-ekil 4.12. SFR’deki verilerin de erinin bit baz nda de i tirilmesi... 49

-ekil 4.13. Giri /Ç k portlar n n genel yap s ... 50

-ekil 4.14. Porta ba lanana ayg tlar n ... 50

-ekil 4.15. Simülatörün çal ma yap s n n ak diyagram olarak gösterimi... 52

-ekil 4.16. Komutlar n çal t r lmas n n ak diyagram ile gösterimi ... 53

(9)

TABLOLAR L STES

Tablo 2. 1. 8051 üreten firmalar ve ürettikleri modellerin baz lar [1]... 9

Tablo 2. 2. Assembly dilinde say sistemlerinin kullan m [1] ... 17

Tablo 2. 3.Aritmetik komut kümesi [1] ... 25

Tablo 2. 4. Mant ksal i lem komutlar [1] ... 26

Tablo 2. 5. Dahili veri belle i transfer komutlar [1]... 28

Tablo 2. 6. Harici veri belle i veri transfer komutlar [1] ... 29

Tablo 2. 7. Program belle i veri transfer komutlar [1]... 29

Tablo 2. 8. Bit i lem komutlar [1] ... 30

Tablo 2. 9. Ko ulsuz dallanma komutlar [1] ... 31

Tablo 2. 10. Ko ullu dallanma komutlar [1]... 31

Tablo 2. 11. Alt program ça rma ve alt programdan dönü komutlar [1]... 32

Tablo 4.1. Derleme a amas nda olu abilecek hata mesajlar ndan baz lar ... 45

(10)

x

ÖZET

Anahtar Sözcükler: Mikrodenetleyici simülasyonu, 8051 simülatörü, fonksiyonel si- mülatör, 8051

Bu çal mada, endüstride neredeyse her alanda kullan lan 8051 mikrodenetleyicisinin, ö retiminin kolayla t r lmas n sa layan simülatör tasar m amaçlanm t r. Ö retim ve tasar m amaçl haz rlanan bu simülatörün yap m nda di er simülatörlerden farkl ola- rak, assembly kodlar n ad m ad m çal t r lmas s ras nda ilgili komutun etkiledi i yazmaçlar n ve bayraklar n takibini kolayla t ran bir yap kullan lm t r. &kinci farkl l k ise, mikrodenetleyici portlar na kolayl kla ba lanabilen (anahtar, buton, yedi parçal gösterge, led) elemanlar içeren bir araç kutusu eklenmi tir. Bu araç kutusundaki ele- manlar n portlara ba lant s assembly kodlar derlendikten sonra da yap labilmektedir.

Böylece tasarlanan simülatör bir mikrodenetleyici deneme kart gibi de kullan labil- mektedir. Haz rlanan simülatörün bu iki özelli i ile 8051 mikrodenetleyicisinin yap s - n n daha k sa sürede ve kolay anla lmas sa lanmaya çal lm t r.

.

(11)

THE DESIGN OF A FUNCTIONAL BASED SIMULATOR FOR

THE 8051 MICROCONTROLLER

SUMMARY

Key words: Microcontroller simulation, 8051 simulator, functional simulator, 8051 In this thesis, a functional based simulator has been designed to facilitate the education and engineering of 8051 microcontroller which is used widely in today's industry. In the realization of the simulator, a PC-based program is developed in a way to make easy to follow the contents of the registers and flags of the running an 8051-coded as- sembly program. Another important contribution fulfilled is a toolbox which can easily be connected to the ports of the microcontroller using as switch, button, display, etc.

The elements in this toolbox can also be connected after compilation period. With the help of this facility, the simulator can be used as a virtual microcontroller development board. These properties of the simulator make it easy to understand the internal archi- tecture of the 8051 microcontrollers.

(12)

BÖLÜM 1. G R

Mikrodenetleyici, bir bilgisayar sisteminin temel özelliklerini içeren tek bir silikon k l f içerisinde toplanm bir tümdevredir. Ço u zaman günlük ya amda kulland - m z birçok cihaz içerisinde gizlenen mikrodenetleyicilerden birço umuzun haberi dahi olmaz [1]. Mikrodenetleyiciler, ucuz maliyetleri ve programlanabilme özelli-

inden dolay endüstrinin her alan nda kullan lmaktad r. Günlük hayatta kulland - m z her cihazda neredeyse bir mikrodenetleyici vard r. Evimizdeki buzdolab , çama- r makinesi, bula k makinesi, telefonlardan tutun da bindi imiz otomobillere kadar geni bir kullan m alan olan bu tümdevre elaman ön lisans, lisans ve yüksek lisans e itimi s ras nda ders olarak okutulmaktad r.

Özellikle günümüzde elektrik-elektronik mühendisli i e itimi alan nda oldukça yay- g n olarak kullan lan tasar m araçlar ndan birisi de mikrodenetleyicilerdir. Geçmi e nazaran oldukça fazla say da olan üretici firma ve bunlar n sonucu ortaya ç kan on- larca sistem geli tirme yaz l mlar bu alanda çal an tasar mc say s n h zla art rm - t r. Daha da önemlisi, yeni teknolojilerle zenginle en ve maliyetleri son on y l içinde h zla dü en mikrodenetleyiciler, tasar mc lar için büyük bir cazibe oda haline gel- mi tir [1].

M. R. Smith, ve M. Cheng [2], “Mikroi lemci laboratuarlar nda ve çal ma ka t- lar nda sanal (simule edilmi ) donan m ayg tlar kullan m ”, adl çal mas nda, elekt- romekanik deney setlerinin; birçok elektronik malzeme kullan larak yap ld klar için yüksek maliyete sahip e itim araçlar oldu unu ve bu tür laboratuarlar n kurulumu- nun zorlu unu anlat yor. Yüksek maliyetten dolay laboratuar say s az oldu undan, ö renciler ders d ndaki bo zamanlar nda istedikleri zaman laboratuarlar kullana- mamaktad rlar. Çünkü laboratuarlar belli bir programa göre ö renci gruplar n n kul- lan m na sunulmaktad r. Bu nedenle de ö renciler yazd klar programlar deneme

ans n bulamad klar ndan bahsediyor.

(13)

Ülkemizdeki kalabal k s n flar dü ünülürse bu maliyetin daha da yükselece i kaç - n lmaz bir sonuç olarak kar m za ç kar. Bu tür laboratuarlarda en az be alt ö renci bir deney seti ile çal t ndan e itim kalitesini olumsuz yönde etkilemesi söz konu- sudur. Maliyeti dü ürmek için okullarda bilgisayar ö retimi için hali haz rda kullan - lan laboratuarlarda, bilgisayarlara ö retimi yap lacak mikroi lemci veya mikrodenet- leyici dersi için kurulacak bir simülatör program uygun bir çözüm olacakt r. Günü- müzde okullardaki genel amaçl bilgisayar laboratuarlar genelde ö rencilerin ihtiya- c n kar layacak say da oldu undan dolay ö renciler ders d nda da bu laboratuar- lar kullanabilmektedirler. Hatta günümüzde birçok ö renci kendisine ait bir dizüstü veya masaüstü bilgisayara sahiptir. Bu durum, ö rencilere neredeyse istedikleri her zaman simülatör program n kullanma imkan sunacakt r. Tasarlanan 8051 mikrode- netleyici simülatörü bu amaçla kullan labilir. Haz rlanan simülatör ücretsiz da taca- ndan dolay maliyet olarak sadece haz r bilgisayar laboratuarlar n n veya bilgisaya- r n bak m masraf kar m za ç kacakt r.

C. W. Caldwell, D. L. Andrews, ve S. S. Scott [3]’un yapt “S n f kullan m için grafiksel mikrobilgisayar simülatörü” adl çal mada, elektromekanik deney setleri birçok elektronik ve mekanik parçalar meydana geldi inden, s k ar za yapabilmekte ve bu ar zalar giderebilecek elemanlara ihtiyaç oldu undan, deney setlerinin kulla- n m n n da zor oldu undan bahsedilmi tir. Haz rlad klar simülatörle deney setlerin birçok olumsuz etkinsin ortadan kald r ld n ve mikroi lemcinin genel yap s n ve giri /ç k yap s n n ö retiminin kolayla t r ld n söylemi ler. Grafiksel simülatörün i lemcinin iç yap s n ve çal mas n gözlemleme imkan sa lad n ve ö retimi olumlu yönde etkiledi i bildirilmi tir.

W. P. Lovergrove [4] "Mikroi lemci e itim simülatörü" çal mas nda ö rencilerin laboratuar çal malar n okul d nda devam ettirmelerini amaçlayan bir simülatör ta- sarlam t r. Program yaz m için bir metin düzenleme editörü kullan lmamakta ve simülatör grafik tabanl bir i letim sisteminde yap ld halde görsellik arzu edilen seviyede de ildir. Simülatörün tasar m amaçlar ndan birisinin de deney setlerinin olmad ortamlarda da ö rencilerin bu simülatörü kullanarak kod yazabilme imka- n n sa land ndan bahsedilmi tir. Deney setlerinde program kodlar n n elle tek tek

(14)

3

girilmesi gerekti ini ve yanl l k oldu unda ba tan tekrar kodlar n girilmesin zaman kayb na yol açt n ve bu sorunun simülatör ile a ld ndan bahsedilmi tir.

Victor Giurgiutiu, Jed Lyons, David Rocheleau ve Weiping Liu [5] taraf ndan yap - lan “Güney Carolina Üniversitesi makine mühendisli i ö rencileri için mekatronik ve mikrodenetleyici e itimi” isimli projede makine mühendisli i ö rencileri mikrodenetleyiciler dersini almadan önce programlama ile ilgili herhangi bir e itim almad klar ndan yaz l m konusunun ö renciler için zorlay c oldu u belirtilmektedir.

Mikrodenetleyiciler için simülasyon yaz l m n n kullan m ö rencilerin bu zorlu u a mas nda kolayl k sa lad belirtilmektedir. Seçtikleri simülatör program n n mali- yetinin dü ük oldu unu ve bu programla 68HC11 için kod yaz labildi ini /düzenle- nebildi ini, kodlar n derlenip simülasyonunun yap labildi inden bahsedilmektedir.

Program n hata ay klama i lemlerini yapma kabiliyeti ile beraber bu simülatörün windows tabanl çal t n ve cpu, ram, rom ve giri ç k portlar n n durumunu gös- terebildi ini ve ayn zamanda simülatör üzerinde timer, adc, paralel port, seri port ve g/ç pinlerinin durumlar n da göstermektedir.

Hata ay klama yap l rken grafik arayüz sayesinde tüm kaydedicilerin bellek içerikle- rinin ve pinlerin durumu gözlenebildi ini, hatta program çal yorken bile gözlene- bilmektedir. Program çal t r l rken de harici elemanlar pinlere ba lanabilmektedir.

Bu yakla mla ö rencilerin mikrodenetleyiciler hakk ndaki bilgi seviyelerini daha da ileriye götürdüklerini ve mikrodenetleyicilerin yap s n incelemekten ziyade çe itli uygulamalarda mikrodenetleyici kullan m na yo unla t klar bildirilmektedir.

Mehrdad Reshadi, Prabhat Mishra, Nikil Dutt [6], “Komut setli derleyici simülasyon:

Esnek komut seti ve h zl bir teknik için”, adl çal mas nda, Yorumlay c Simülatör- lerle H zl Komut Simülatörü’nün avantajl yönlerini birle tirerek Komut Soyutlama Simülatörü ad nda yeni bir teknik geli tirmi tir. Yorumlay c Simülatörler, yava ça- l rlar, daha ayr nt l ve kullan m esnekli i olan simülatörlerdir. Daha çok ö retim amaçl kullan l rlar. H zl Komut Simülatörleri ise tasar m için kullan l r ve h zl ça- l t klar için çal ma an nda müdahale etmek zordur, esnek bir kullan ma sahip de-

(15)

illerdir.

Mehrdad Reshadi ve arkada lar bu iki tekni i birle tirerek hem H zl Komut Simüla- törlerinden %40 daha h zl çal an ve hem de Yorumlay c Simülatörler gibi esnek kullan ma sahip Komut Soyutlama Simülatörü ad n verdikleri bir teknik kullanm - lard r.

Bülent TÜRKEL& [7], “Intel MC8051 mikrodenetleyicisinin PC’de simülasyon ile e itimi” isimli yüksek lisans tezinde 8051 için 1995 y l nda Turbo Pascal program- lama dilini kullanarak bir simülatör haz rlam t r. Bu simülatör DOS i letim siste- minde çal makta o günün artlar na göre oldukça iyi tasarlanm t r. TÜRKEL&, mik- roi lemci ve mikrodenetleyicilerin endüstride çok s k kullan ld n ve bu yüzden elektronik-bilgisayar e itiminde ders olarak okutuldu unu, ancak bu e itimde kulla- n lacak deney setlerinin ve donan mlar n az ve pahal oldu unu belirtmektedir. Bu tür teknoloji e itiminde laboratuar yetersizli i ve uygulama zorlu u sorunlar ile kar-

la lmaktad r. Bu nedenlerden dolay mikroi lemcilerin PC tabanl sistemlerde si- mülasyon yaz l m kullan larak e itim ve laboratuar uygulamalar n n geli tirilmesi dü ünülmü tür. Böylelikle herhangi bir geli tirme setine ihtiyaç duymadan standart donan ml bir bilgisayar laboratuar , simülasyonu yaz lan farkl i lemciler için ayn zamanda mikroi lemci laboratuar olarak da kullan labilece ini belirtilmi .

&brahim Hakk SÜSLÜ [8], “8096 Mikrodenetleyicisinin PC’de simülasyon ile e i- timi”, isimli yüksek lisans tezinde 8096 için 1995 y l nda bir simülatör sunmu . SÜSLÜ, MCS-96 mikro denetleyicisinin simülatörünün daha ziyade e itim amaçl olarak geli tirildi ini belirtmektedir. E itim amaçl geli tirildi i için bu çal mada MCS-96 mikrodenetleyicisinin komutlar n n geni bir yard m bölümü haz rlam t r.

Simülatörün kullan c ara yüzü ile kullan c n n gözüne hitap etmesi ve s kmamas na özen göstermi tir. Kullan m kolay ve sistem geli tirmeden çok Intel MCS-96 mikrodenetleyicisinin PC tabanl sistemlerde simülasyonunun gerçekle tirilmesi için tasarlam t r. Bu simülatör sayesinde MCS-96 mikrodenetleyiciye sahip olmayan, fakat bu i lemciyi hem ö renmek hem de program yaz p, yaz lan program denemek isteyen kullan c lar dikkate al nm t r. MCS-96'n n komut setini ve kaydedici yap s -

(16)

5

Mustafa NARTKAYA [9], “Intel 8085 mikroi lemcisinin simülasyonu” adl yüksek lisans tez çal mada, bilgisayar n çal ma sistemini kavraman n en kolay yolunun mikroi lemci yap s n n iyice anla lmas yla olaca n belirtmi tir. Mikroi lemci e i- timinin okullarda deney setleri kullan larak verildi ini ve bu yöntemin pahal bir yöntem oldu unu aktarmaktad r. Deney setlerinin say n n ö renci say s na k yaslan- d nda yetersiz kald n ve bu yüzden de bu e itimin istenilen düzeyde olmad n belirtmektedir. Haz rlanacak mikroi lemci simülatörünün buna bir alternatif olu tu- raca vurgulanm t r.

Serdar KÜÇÜK [10], “PIC16C65 Serisi mikrokontrolörün PC’de simülasyon ile e i- timi”, adl yüksek lisans çal mas n n 1998 y l nda tasarlam ve simülatörü Turbo Pascal programlama dilinde haz rlam t r. Simülatörün maliyet aç s ndan çok ucuz oldu unu ve kullan c lara zaman kazand raca n ileri sürmü tür.

Nurettin TOPALO\LU [11], “PC Tabanl fonksiyonel mikroi lemci simülatörü tasa- r m ve gerçekle tirilmesi” isimli doktora çal mas nda 6502 mikroi lemcisi için bir simülatör tasarlam t r. Bu çal mada, teorik derslerin laboratuar deney uygulamala- r nda elektromekanik mikroi lemci setleri kullan ld n ve uygulaman n da birçok dezavantaj n göstermi tir. Bu tür deneylerin genelde pahal oldu u, deneylerin yal- n zca laboratuarda yap labildi i, programlama ve test a amalar n n genelde zaman al - c oldu unu ve bu tür sistemlerde hatalar n tespiti ve giderilmesi zor oldu u konusu üzerinde durmaktad r. Mikroi lemci simülatörlerinin genelde daha ekonomik oldu u- nu, programlama hatalar kolayca geli tirme a amas nda sezilebildi ini, bunlara ek olarak da, standart bir PC üzerinde yürütülen grafiksel mikroi lemci animasyonu sa- yesinde program yürütümünün etkilerinin gözlemlenebildi i konusunu vurgulam t r.

Tasar m yap lan mikrodenetleyici simülatörü di er mikroi lemci ve mikrodenetle- yici simülatörlerinden farkl olarak görsellik ve kullan m kolayl n n ön plana ç ka- r lmaya çal lm t r. Bu simülatör 8051’in standart yap s n ve tüm komutlar n simüle edecek ekilde tasarlam t r.

8051 simülatör sekiz ana bölümden meydana gelmektedir. Simülatör üzerindeki i -

(17)

lemler menü seçenekleri kullan larak veya bu seçeneklerin k sa yol tu bile imleri kullan larak yap lmaktad r. Bu bölümler s rayla:

Kod yaz m ve düzenleme penceresi Kod derleme ve hata takip penceresi, Program çal t rma ve takip penceresi, Dahili RAM bellek,

Harici RAM bellek,

Özel fonksiyon saklay c lar , Program belle i,

Giri /Ç k Ayg tlar ,

Bu tez çal mas be ana bölümden meydana gelmektedir. Birinci bölümde simüla- törle ilgi genel bilgiler verilmi tir. Di er simülatörlerle ilgili baz de erlendirmeler yap lm t r. &kinci bölümde, mikrodenetleyicilerin yap s ve çal ma ekli anlat lm - t r. Üçüncü bölümde, simülasyonla ilgili tan mlar verilmi tir ve simülasyonun gerek- lili ine vurgu yap lm t r. Dördüncü bölümde ise simülatörün yap s , genel kullan m

ekli ve çal ma prensibi anlat lm t r.

(18)

BÖLÜM 2. HEDEF M KRODENETLEY C VE M MAR S

Mikrodenetleyici, tek bir silikon k l f üzerinde toplanm entegre devreye denir. Bir mikrodenetleyici tümdevresinde bulunan haf za ve giri /ç k alt sistemleri, bu i lem- cilerin birçok uygulama içinde, gömülü olarak do rudan ve tek ba na, mikroi lemci- lere göre çok daha basit ve ucuz arabirim teknikleriyle, kontrol amaçl olarak kulla- n lmalar n sa lar. Günümüzde mikroi lemciler ev mikrodenetleyici teknolojinin vazgeçilmez birimleri olup, endüstride say s z alanlarda kullan lmaktad r. Bugün mikroi lemci ve mikrodenetleyici üreten pek çok firma bulunmaktad r. Bunlar n en önemlileri Philips, &ntel ve Motorola firmalar d r.

-ekil 2. 1. Mikrodenetleyicinin blok diyagram [1]

Mikrodenetleyici, otomobil sanayisinde çok yo un olarak kullan lan devre elemanla- r ndan biridir. Araç motorunun de i ik noktalar na yerle tirilen alg lay c lardan gelen sinyallerin de erlendirilip motorun çal t r lmas ndan, elektrik donan m n kontrol edilmesine kadar kontrol gerektiren her a amada kullan lmaktad r.

Mikrodenetleyiciler motor kontrolü, foto raf makineleri, robotlar, ki isel haberle me cihazlar , merkezi klima sistemleri, bilgisayar kontrollü ula m araçlar , faks, fotoko- pi makineleri ve yaz c lar, radyo, teyp, tv, vcd’ler, elektronik beyaz e yalar, lcd mo-

(19)

nitörler, fabrika otomasyonu, biyomedikal cihazlar, oyuncaklar, askeri cihazlar, elektronik bilet uygulamalar (AKB&L) gibi birçok uygulamada kullan lmaktad r.

2.1. Mikrodenetleyici ve Mikroi0lemci Kar02la0t2r2lmas2

Mikroi lemci ile mikrodenetleyici aras ndaki farklardan bahsedebilmesi için ikisinin de tan mlar n yapmam z gerekmektedir. Mikroi lemci ikili say sistemine göre çal -

an, komut dizilerini i leyen, aritmetiksel ve mant ksal i lemleri yapan ve bunlar de- netleyen sistemdir. Mikrodenetleyici ise giri ve ç k birimleri düzenleyen, program- layan ve bu devreleri içinde bulunduran mikroi lemcilere denilir. Bu bilgiler nda mikrodenetleyici ile mikroi lemci aras ndaki fark belirlemek için her ikisinin de do- nan m n , kullan ld klar uygulama alanlar n ve komut kümelerini incelemek gerekir.

-ekil 2.1’de mikrodenetleyicinin ayr nt l blok emas gösterilmi ti. Mikroi lemci, ekilden de görüldü ü üzere kontrol birimi, aritmetik/mant ksal birim ve saklay c gruplar n n tek bir k l f alt nda toplanmas ile olu maktad r. Mikrodenetleyici ise bir adet mikroi lemciye ek olarak dahili veri ve kod bellek, zamanlay c /say c , kesme denetçisi, seri/paralel ileti im arabirimi, adres yolu, veri yolu ve denetim vb. ek çevre birimlerin tek bir k l f alt nda toplanmas ile olu maktad r. K saca mikrodenetleyici bir mikroi lemci ile birlikte çevre birimlerin tek bir entegre haline getirilmi halidir.

Mikrodenetleyiciye dayal bir sistem mikroi lemci temelli sistemlerden oldukça fark- l d r. Mikroi lemcili bir sistem, büyük çapta ve çe itli kullan c programlar n yürüt- mek, çok say da veri i lemek, duyarl say sal hesaplamalar gerçekle tirmek için kul- lan ld nda yüksek verim sa layabilmektedir. Mikrodenetleyici tabanl bir sistem ise yeniden programlama gerektirmeyen sürekli sabit bir program n yürütüldü ü durum- larda çok kullan l d r.

Kullan m amaçlar farkl oldu u için komut kümeleri de farkl d r. Mikroi lemci daha karma k uygulamalarda kullan laca için h z ve kelime uzunlu u büyük olarak ta- sarlanm t r. Bunun sonucu olarak büyük veri gruplar n i leyebilecek komutlara sa- hiptir. Fakat mikrodenetleyicilerde bit i lem yapan komutlar daha önemlidir.

(20)

9

2.2. MSC-51 Ailesi Mikrodenetleyicinin Tarihçesi

Intel firmas taraf ndan 1976 y l nda piyasaya sürülen 8048 mikrodenetleyicisi dün- yada üretilen ilk mikrodenetleyicidir. Üretiminde yakla k 17.000 transistor kullan - lan 8048, k sa sürede kontrol uygulamalar n n de i mez eleman olmu tur. Artan ge- reksinimleri kar lamak üzere Intel firmas , 1980 y l nda MCS-51 mikrodenetleyici ailesinin ilk ürünü olan 8051 mikrodenetleyicisini piyasaya sürmü tür. 60.000 tran- sistor içeren 8051 mikrodenetleyicisi Intel'den üretim izni alan birçok firma taraf n- dan günümüzün ihtiyaçlar na cevap verecek ekilde gün geçtikçe geli tirilmekte ve yeni teknolojiler içermektedir.

Art k bir endüstri standard haline gelen 8051 mikrodenetleyicisinin, istenen uygu- lamalara yönelik çok geni ürün yelpazesi sunmas , ucuz ve kolay temin edilebilme- si, birçok firma taraf ndan üretilmesi ve desteklenmesi, kitap/uygulama notu ve &n- ternet dokümanlar n n rahatl kla temin edilebilmesi vb üstünlükleri nedeniyle kulla- n m gün geçtikçe yayg nla maktad r.

Tablo 2. 1. 8051 üreten firmalar ve ürettikleri modellerin baz lar [1]

Veri Belle0i Kod Belle0i Haberle/me Protokolü Model

RAM XRAM ROM EEPROM FLASH UART I2C CAN SPI Z/S WD ADC Port T80C51 128 - 4K - - Var - - - 2 - - 32 T83C51RB2 256 256 16K - - Var - - - 3 Var - 32 T89C51RC2 256 1K - - 32K Var - - Var 3 Var - 48 AT89S4D12 256 - - - 132K Var - - Var 3 - - 40

ATMEL

T89C51CC01 256 1K - 2K 32K Var - Var Var 3 Var 10-bit 53

80C31 128 - – - - Var - - - 3 - - 32 80/87C51 128 - 4K - - Var - - - 3 - - 32

INTEL

80C52 128 - 8K - - Var - - - 3 - - 32 80C528 256 256 - - - Var - - - 3 Var - 48

80C557 256 1792 - - - Var - - - 3 - 10-bit 40 87C591 256 256 - 16K - Var Var Var - 3 Var 10-bit 32 89C668 256 8K - - 64K Var Var - Var 3 - - 40

PHILIPS

8xC51RD2 256 768 - - 64K Var - - Var 3 Var - 32 DS5000(T) 128 32K - - - Var - - - 2 - - 32 DS5002(FP) 128 128K - - - Var - - - 2 - - 32 DS83C520 256 1K 16K - - Var - - - 3 Var - 32 DS80C390 256 4K - - - Var - - - 3 Var - 32

DALLAS

DS89C420 256 1K - - 16K Var - - - 3 Var - 32 C8051F005 256 2K - - 32k Var Var - Var 4 - 12-bit 64 C8051F020 256 4K - - 64K Var Var - Var 5 - 12-bit 64

Cygnal

C8051F300 256 - - - 8K Var - - Var 3 - 8-bit 32

(21)

Tablo 2.1'de baz büyük tümdevre üretici firmalar n üretmekte oldu u 8051 tabanl mikrodenetleyicilerin temel özellikleri görülmektedir.

2.3. 8051’in Genel Yap2s2 ve Çal20ma Prensibi

8051 mikrodenetleyicileri çal maya ilk ba lat ld nda Program Sayac (PC) ilk de- er olarak 0000H adresindeki koda i aret eder. Bu adresteki opcode (komut kodu) al narak program çal t r lmaya ba lan r. Kodu al nan komut çözülüp i letildikten sonra PC bir sonraki komutu i aret eder. PC’nin de erinin de i mesine sebep olacak herhangi bir komut yürütülmedi i sürece de s ral bir ekilde ayn i lemler yap lama- ya devam edecektir. PC’nin de i imi sa layan komutlar dallanma, ça rma ve kesme komutlar d r.

Dallanma komutlar bir ko ul yerine geldi inde gerçekle ebilece i gibi do rudan ba ka bir kod bölümüne atlama eklinde de gerçekle ebilir. Bu durumda program n çal mas o noktadan itibaren devam edecektir ve normal çal ma sürecinde geri dö- nülmeyecektir.

Ayr ca alt programlara eri im alt programlar ça rma eklinde de gerçekle tirilebilir.

Dallanmalardan farkl olarak alt programlar çal malar bittikten sonra RET komutu ile çal ma sürecini kendilerini ça ran programa iade ederler. [12]

Kesmelerde ise durum daha farkl d r. Kesmede i lenen kesme hizmet program , bir alt program olmas na ra men programc dan ba ms z olarak fiziksel bir ko ul ger- çekle ti inde mikroi lemci otomatik olarak bu alt program i lemeye ba lar. Alt programlardan farkl olarak RETI komutu ile dönerler. [12]

Günümüzde 8051 tabanl mikrodenetleyiciler daha dü ük güç tüketen CMOS tekno- lojisi ile üretilmektedir ve 80C51 eklinde adland r l rlar. 8051 mikrodenetleyicisinin standart özellikleri unlard r:

Kontrol uygulamalar na yönelik 8 bit CPU Mant ksal i lemci (tek-bit lojik i lemler)

(22)

11 4K ROM, (0-64K aras nda)

128 Bayt RAM, (256 bayt’a ç kabilir) 4 tane 8-bit Giri /Ç k portu (32 uç) 2 tane 16-bit zamanlay c /say c

Full duplex UART (Universal Asynchronous Receiver Transmitter)

&ki öncelik seviyesine sahip 6-kaynak/5 vektörlü kesme donan m yap s

-ekil 2.2. 8051 Blok Diyagram [1]

2.3.1. 0lemci Çekirde;i (CPU)

Her mikrodenetleyici bir mikroi lemci çekirde i bulundurmak zorundad r ve bu bi- rim Merkezi & lem Birimi (M&B) olarak da adland r l r. M&B, ROM bellekte bulunan program n çal t r lmas ndan sorumludur ve üç ana bloktan olu maktad r: ALU, program say c lar , ve çe itli saklay c lar.

CPU (Çekirdek):

• Verileri okur veya depolar

• Basit aritmetik i lemleri yapar

• Mant ksal i lemleri (VE, VEYA gibi) gerçekle tirir

Zamanlay c 0 Harici Kesme

Zamanlay c 1 RAM

128 Bayt Program Belle i SFR

ROM 0–64 KBayt

Veriyolu Denetimi 64 KBayt

Programlanabilir G/Ç Portlar

Seri Haberle me

Arayüzü 8051

M B (CPU) Kesme Kontrol

T0 T1

Osilatör ve Zamanlama

TxD RxD P0 P1 P2 P3

Kontrol Sinyalleri

(23)

• Program n ak n denetler.

Üreticiler aras nda i/lemci çekirdeklerinin farklar :

• Mimari tipleri: Harvard, Von Neuman, Hibrid

• Sözcük geni li i: 4, 8, 16, 32, 64 bit

• Komut kümeleri: RISC, CISC

• Saklay c türü ve adetleri

• Adresleme metotlar

• Kesme adetleri

• H z/güç/boyut.

2.3.2. Sistem Belle;i

Mikrodenetleyiciler bellek birimlerini üzerinde bulundururlar ve bunlar n türleri ve büyüklükleri aileden aileye de i iklik gösterir. Mikrodenetleyicinin mutlaka bir dahi- li (on-chip) ROM belle e sahip olmas gerekmeyebilir (8031 'de oldu u gibi). Ancak her mikrodenetleyici büyüklü ü farkl da olsa bir RAM bellek bulundurmak zorun- dad r. Genellikle en az 128 Byte'l k bir RAM bellek üreticiler taraf ndan standart ha- le getirilmi tir. Buna ek olarak Özel Fonksiyon Saklay c lar (SFR-Special Function Registers) isimli bir RAM bellek de bulunmaktad r. Böylelikle 256 Byte'l k bir RAM bellek 8051 mikrodenetleyicileri için minimum bellek büyüklü ü olarak kabul edile- bilir.

Program Belle0i (Kod Belle0i): Mikrodenetleyici sistemlerin çal abilmesi için ge- rekli olan bellek ROM bellektir. Bu bellekte, çal acak program n makine kodlar bu- lunmaktad r. Program depolama için kullan lan ROM bellekler farkl teknolojilerde üretilmektedirler.

Veri Belle0i (RAM): RAM bellekler ROM belleklerin aksine kendilerini besleyen güç kesildi inde muhafaza ettikleri bilgileri yitirirler. Bu bellekler sistem çal rken içerisindeki bilgilerin sürekli de i imine izin verir yap dad rlar. Geçici bellek alan

(24)

13

Statik RAM (SRAM) ve Dinamik RAM (DRAM) olmak üzere iki türde üretilirler.

DRAM bellek tümdevreleri daha az yer kaplar ancak daha yava çal rlar. Bunun nedeni muhafaza ettikleri bilgilerin süreklili ini sa lamak için belirli aral klarla taze- leme i aretlerine gerek duymalar ve bu esnada okuma yazma yapamamalar d r.

SRAM bellekleri ise tazeleme i aretlerine ihtiyaç duymadan bilgiyi saklayabilirler.

SRAM bellekler DRAM belleklere göre daha h zl çal r fakat tümdevre olarak daha fazla yer kaplarlar. Ayr ca SRAM belleklere eri im arayüzü oldukça basit olup ek bi- rimlere ihtiyaç duyulmaz. Bu yüzden mikrodenetleyicilerde bellek ihtiyac kilo byte- 'lar mertebesinde oldu undan genellikle SRAM türü bellekler kullan l r. Ancak örne- in ki isel bilgisayarlarda bu belleklerin pahal olmas ndan ve mega byte'lar merte- besinde belleklere ihtiyaç duyuldu undan dolay DRAM bellekler tercih edilir.

2.3.3. Çevresel Birimler (Peripherals)

8051 mikrodenetleyicisi standart birimlerin (RAM, ROM, ALU) yan nda uygulama- larda kullan lacak ve harici sistemlerle etkile imi sa layacak baz çevresel birimler içermektedir. Bunlar n say s ve özellikleri üreticiden üreticiye ve üretim serisine ba l olarak çe itlilik arz edebilir. Çevresel birimler olarak s kl kla saat darbesi üre- teçleri, zamanlay c /say c lar, A/D dönü türücüler veya D/A dönü türücüler, haber- le me birimleri, LCD sürücü üniteleri kar m za ç kmaktad r. Tasar mc lar için ge- rekli kriterleri sa layan mikrodenetleyici ailesini ve bu ailenin ilgili seri numaral de- netleyicisini seçmek çok önemli bir basamakt r. Bu seçimde, sadece kar lanmas ge- reken donan m kriterleri de il ba ar m (performans) ve maliyet faktörleri de göz önünde bulundurulmal d r.

Zamanlay c /Say c Birimleri: Zamanlay c lar (timer), olaylar aras ndaki süreyi ölçmek için veya belirli aral klarla i aretler üretmek amac yla kullan l rlar.

Haberle/me Birimi: Mikrodenetleyicilerde harici ortam ile ileti imde hem seri hem de paralel ileti im yöntemleri kullan labilir. Mikrodenetleyicilerin büyük bir k sm n- da UART seri haberle me ünitesinin yan s ra l2C (Inter-Integrated Circuit), SPI (Serial Peripheral Interface) veya CAN (Controller Area Network) gibi seri haber-

(25)

le me birimleri dâhili olarak bulunabilir. Seri ileti imde bilgiler, bit bit olarak ve be- lirli bir protokol dâhilinde gönderilir. USB, CAN, UART ve burada say lamayan bir- çok seri ileti im protokolleri endüstride oldu u gibi mikrodenetleyici bünyelerinde de yo un bir ekilde kullan lmaktad r.

UART, birçok çe it seri ileti im protokolüne cevap verebilecek bir seri çevresel bi- rimdir. Mikrodenetleyici i lemcisinden gelen paralel bilgileri seriye ve d ortamdan gelen seri bilgileri de paralel forma çevirir.

Giri//Ç k / Portlar : Mikrodenetleyici, üzerinde bulunan G/Ç portlar arac l yla da harici ortam ile haberle ir. Ancak bu haberle me seri haberle menin aksine bir pro- tokol dahilinde gerçekle mez. Porttaki tüm uçlar tamamen birbirinden ba ms z ve asenkron olarak harici sistemlere i aret gönderir veya al rlar. Portlar anahtar tak mla- r n okumak ya da bellek entegrelerine adres ve veri yolu olmak gibi daha birçok farkl uygulamada kullan labilirler. Paralel G/Ç bilgiyi gruplar halinde al r ve verir.

Bu tür bir ileti im, röle veya anahtar de erlerinin de i tirilmesi gibi bilgilerin s k de- i medi i durumlarda daha verimlidir.

Kesme Kontrol Birimi: Mikrodenetleyicinin mevcut çal mas n sürdürürken gelen bir kesme i areti ile o an yapmakta oldu u i i b rak p, kesme i aretinin gerektirdi i i e dallanmas ve bu i i bitirdikten sonra tekrar b rakt i e devam etmesini sa layan birimdir. Kesme birimi ile mikrodenetleyici çevre birimlerden gelen isteklere gerçek zamanl olarak yan t verebilir.

Saat Darbesi Üreteci: Dahili saat devresi, mikrodenetleyici içerisindeki i aretlerin zamanlamas n denetlemek ve düzenlemek üzere bir kare dalga i aret üretir. Saat devresi, tümdevre içerisindeki i lemlerin ad m ad m yürütülmesi için osilatör devre- sinin ana parças olan kristal eleman n kullan r. Kristal ayn zamanda mikrodenetleyicinin çal ma frekans n belirler. Osilatör devresi devaml dalga for- munda bir elektriksel i aret üretir ve bu i aret saat devresi taraf ndan ço unlukla bir PLL (Phase Locked Loop, Faz Kilitlemeli Döngü) birimi yard m yla kararl kare dal- ga biçimine çevrilir. 30 MHz'de çal an bir mikroi lemci veya mikrodenetleyici ile

(26)

15

dalga eklinde saat darbeleri üretti i anla lmal d r. Saat devresi, frekans çarp c veya bölücü de içerebilece i için tek ba na kristal frekans n n bilinmesi i lemci h z n n belirlenmesinde yan lt c olabilir.

2.4. Assembly Dili ve Özellikleri

Mikrodenetleyicilere istenilen bir i lemi icra ettirmek için bu i lemi, anlayabilecekle- ri ekilde kodlarla ifade etmek gerekir. Mikrodenetleyiciler ve mikroi lemciler sade- ce ‘1’ ve ‘0’lardan olu an ve komut (opkod) olarak adland r lan mant ksal bit dizile- rini yorumlayabilirler. Bitler seviyesinde yap lan tasar mlar n kolay anla lamamas , gerçekle tirilen tasar mlar üzerinde de i iklik yapabilmenin zorlu u gibi sebeplerden dolay kullan c lar n kolayl kla anlayabilece i ekilde uygulama geli tirmesine imkan tan yan programlama dilleri geli tirilmi tir. Ama kulland n z programlama dili ne olursa olsun, bir simgesel dildir ve mikroi lemcilerin icra edebilece i bir forma dö- nü türülmek zorundad r.

Assembly dilinde her bir komut, gerçekle tirdi i i leve kar l k gelen &ngilizce söz- cü ün k saltmas (mnemonik) ile ifade edilir. Her bir k saltma, makine dilindeki fark- l bit dizisine kar l k gelmektedir.

Örne in:

MOV A, #55 ;Akümülatöre 5510 de erini yükle

Yukar daki komut sat r nda MOV k saltmas bir verinin belirtilen yere transferi i le- vini yerine getirmektedir.

Assembly dilini kullanarak uygulama geli tirmek makine diline göre daha kolayken C, BASIC, PASCAL vb gibi yüksek düzeyli dillerde program yazmaya göre daha zordur. Çünkü assembly dilinde program yazmak için, program n kullan laca do- nan m, adresleme yöntemleri, komut kümesi hakk nda ayr nt l bilgi sahibi olmak ge- rekmektedir. Bunun yan nda yüksek düzeyli dillerde ise bu gibi teknik ayr nt y bil- meksizin uygulama geli tirmek mümkündür.

(27)

Kullan m aç s ndan assembly gibi dü ük düzeyli dillerin yüksek düzeyli dillere göre birkaç dezavantaj n n olmas n n yan nda birçok önemli avantajlar da mevcuttur. Ör- ne in; donan m hakk nda daha fazla detay bilmeyi gerektirir. Bu dezavantaj gibi gö- rülse de asl nda kullan c ya önemli bilgi birikimi sa lamaktad r. Özel donan m ihti- yaçlar üzerinde daha fazla kontrol sa lar. Yüksek seviyeli dillere göre daha küçük, daha az yer kaplayan ve daha h zl icra edilebilir kodlar üretilebilir.

2.4.1. Program Format2

Assembly dilinde program geli tirmek için bu dilin genel kodlama format n n, aç k- lama sat rlar n n, simge ve veri tan mlamalar n n bilinmesi gereklidir. A a da assembly dilinde yaz lm bir program parças ndaki k s mlar görülmektedir. Verilen örnek içerisindeki tüm k s mlar tek tek inceleyelim.

Etiket

& lem Kodu

(Komut–Opkod) & lenen (Operand) Aç klama

Basla: MOV A, #77h ;Aküye 7716 de erini yükle

Etiket alan : Komut sat r n n ilk bilgisidir ve sembolik isimlerden olu ur. Program içerisindeki belirli i levlerin gerçekle ti i bölümlerin ba lang c n göstermek amac ile kullan l r. Program içersinde istenilen k sma kolayl kla dallan lmas n sa lar. Eti- ket ismi olarak mikroi lemci komut setinde tan ml olan bir komut ismi verilemez.

Etiket isimleri bir harf ile ba lamak zorundad r.

Komut: K saltma(mnemonik) olarak da adland r lan, komut seti içerisinde mikroi - lemcinin belirli bir i i yapmas n sa layan tan mlanm sembollerdir. Komut alan na etiketten sonra 1 bo luk ya da sekme (tab) ile girilir.

/lenen: Bu alan, i lemciye i lenecek veriyi ya da verinin nerede oldu unu gösterir.

Tek ba na bir anlam ifade etmez. Genelde komutun etki edece i hedef ve kaynak bilgisini içerir. Hedef ve kaynak bilgisi birbirinden virgül (,) ile ayr l r.

& lenen (operand) k sm nda i lenecek bilgi farkl say sistemlerinde ifade edilebilir.

(28)

17

konulan özel i aretler belirler. Tablo-2.2'de 4 farkl say siteminin assembly dilindeki kullan m görülmektedir.

Tablo 2. 2. Assembly dilinde say sistemlerinin kullan m [1]

Ön Tak Son Tak Anlam Örnek

(Bo luk) D Onlu say (decimal)* 55 55D

% B &kili say (binary) %01010101 01010101B

@ O Sekizli say (octal) @33 – 33O

$ H Onalt l k say (hexadecimal) $FB – FBH

Aç klama Sat r : Assembly dili (;) ile ba layan sat rlar aç klama sat r olarak kabul eder. Bu sat rlar yorumlamaz ve makine kodu üretmez. Yaz lan uygulaman n anla - l rl n artt r r.

2.4.2. Yönergeler (Directives)

Assembly dilinde kullan lan birçok yönerge (talimat) mevcuttur.

ORG: Kod bellek içerisinde program n ba lang ç adresini belirtmek için kullan lan adres konumland rma talimat d r. Bu talimat ORG 'Adres' eklinde kullan l r. Prog- ramlar genelde belle in ba lang ç adresi olan 0000h'dan ba lar. ORG talimat ndaki adres de eri program say c ya (PC) yüklenerek program n yaz laca adres belirlenir.

Bir program içerisinde birden fazla ORG komutu kullan labilir.

Talimat Aç klama

ORG 0000h ;program 0000h adresinden ba las n PC=0000 ORG 0030h ;program 0030h adresinden ba las n PC=0030

END: Program n biti ini gösteren talimatt r.

DB (Define Bayt): Kod bellek içerisinde say ve kelime (string) dizilerinin tan m- lanmas n sa lar.

&sim DB &fadeler Aç klama

(29)

Max_sayi DB 255 ;tek bir de i ken tan mlanmas Tablo DB 0, 5, 4, 3, -10 ;dizi olarak tan mlama Yaz DB ‘8051 Ogreniyorum’ ;string olarak tan mlama

EQU: EQU (Equal = e ittir) bir say sal de erin istenilen sembol ad na atanmas i - lemini gerçekle tirir. Bu tan mlama program içerisinde bir ifadenin ya da de erin çok fazla tekrar edildi inde program n anla l rl n artt rmak için kullan l r.

&sim Talimat De er Aç klama

Pi EQU 3.14 ;sabit de er tan mlama

Bilgi EQU 55h ;55h adresindeki veriyi bilgi de i kenine ata

2.5. Adresleme Yöntemleri

Adresleme modu, bir bellek konumuna ya da bir veriye eri imin nas l olaca n belir- tir. Do rudan kullan lan komut uzunlu unu etkiler. Kullan lan komutlara ba l olarak bilginin farkl yollarla hedefe gitmesine olanak sa lar. 8051 mikrodenetleyicisinde kullan lan 8 farkl adresleme yöntemi unlard r:

Kaydedici adresleme Do rudan adresleme Dolayl adresleme

&vedi adresleme

Ba l (Ko ullu) adresleme Mutlak adresleme

Uzun adresleme

&ndisli adresleme yöntemi

(30)

19 2.5.1. Kaydedici Adresleme

8051 mikrodenetleyicisinde R0’dan R7’ye kadar 8 tane genel amaçl kaydedici var- d r. Kaydedici adreslemede komutu olu turan en yüksek de erlikli 5 bit yap lacak i - levi ve en dü ük de erlikli 3 bit ise R0 ile R7 aras ndaki hangi kaydedicinin kullan - laca n gösterir.

-ekil 2. 3.Saklay c adresleme

2.5.2. Do;rudan Adresleme

Do rudan adresleme yöntemi, dahili alt RAM (lower RAM) ve SFR alan na eri mek için kullan l r. Do rudan adresleme yönteminde komutlar 2 bayt uzunlu undad r. &lk bayt opkod’u (gerçekle tirilecek i lemi), ikinci bayt adres bilgisini gösterir. Do ru- dan adresleme yöntemi adresleri örtü en ÜST RAM ile SFR bölgeleri birbirinden ay- r lmas n sa lar. Bu iki alandan SFR bölgesine do rudan adresleme yöntemi kullan - larak eri ilebilir.

-ekil 2. 4. Do rudan adresleme

Assembly Aç klama

MOV P1,A ;Aküyü Port 1’e kopyala

MOV A,70h ;70h adresinin içeri ini Aküye kopyala

MOV A,80h ;SFR bölgesine eri ilir, 80h Port 0’ n adresidir. P0’daki bilgi Aküye kopyala

(31)

2.5.3. Dolayl2 Adresleme

Bir program n çal mas esnas nda tan mlanan bir de i kenin adresinin de i tirilme- si, hesaplanmas ya da tekrar de i tirilmesi i lemlerinde dolayl adresleme yöntemi kullan lmaktad r. Dolayl adresleme, adresleme yöntemlerinin en güçlüsüdür.

Bu adreslemede kaynak veya hedefin adresi komutun içerisinde aç k olarak verilmez.

Verinin gerçek adresini tutmak için R0 ve R1 saklay c lar "i aretçi" olarak kullan l r.

Bu saklay c lar bilginin RAM'de yaz laca veya okunaca adresi içermektedirler.

Opkodun en küçük de erlikli biti (LSB) kullan lacak olan saklay c y (R0 veya R1) belirler. R0 ve R1 saklay c lar 8 bitlik oldu undan 256 Byte'l k bir bellek alan ad- reslenebilmektedir. Ancak ÜST RAM ile örtü en adrese sahip olan SFR'ye kesinlikle eri ilemez.

-ekil 2. 5. Dolayl adresleme

8051 assembly dilinde dolayl adresleme, R0 veya R1 saklay c lar n n önüne "at" @ i areti getirilerek gerçekle tirilir. Bu adresleme yöntemi veri transfer i lemlerinde kullan l r. A a daki örnekte görüldü ü gibi dolayl adreslemeyi kullanarak alt (lower) RAM'deki 50h adres bölgesinin içeri ini akümülatöre kopyalama i leminin nas l olaca gösterilmektedir.

-ekil 2. 6. Dolayl adresleme örne i

Assembly Aç klama

MOV A,@R1 ;Alt RAM’deki 50h adresinin içeri (FFh) Aküye aktar

(32)

21 2.5.4. vedi Adresleme

Bir assembly program n n derlenme a amas nda bilinen bir sabit de erin kullan la- bilmesi için de erin komut içerisine koyulmas en h zl çözümü üretir. Bir di er önemli prensip hedefe veriyi aktarman n en kolay yolu opkod'u kaynak yapmakt r.

&vedi adresleme bu iki prensibin gerçeklenmesini sa layan bir adresleme yöntemidir.

&vedi adresleme DPTR'nin kullan ld istisnai durum d nda 2 Byte uzunlu undaki komutlardan olu ur. Bilginin geçici olarak komut içerisine yüklenmesi yüksek komut h z sa lar. Bilginin komut içerisinde yer almas , sabit derleme zaman sa lamakta- d r. Böylelikle komutlar n yakla k çal ma süreleri hesaplanabilir.

-ekil 2. 7. &vedi adresleme

Assembly dilinde ivedi adresleme yöntemi, (#) i aretinin say dan önce kullan lmas ile gerçekle tirilir.

Assembly Aç klama

MOV A,#12 ;Akü'ye 12 de erinin at lmas MOV R0,#10h ;10h bilgisini R0 saklay c sma yükle

MOV DPTR,#2000H ;2000h bilgisini DPTR'ye yükle, 3 Byte'l k komut

2.5.5. Ba;2l Adresleme

Ba l adresleme yöntemi sadece atlama komutlar ile birlikte kullan l r. Bu yöntemde komutlar 1 Byte opkod ve 1 Byte adres bilgisi olmak üzere toplam 2 Byte uzunlu-

undad r. Adres bilgisi 8-bit ile ifade edildi i için maksimum (28) 256 Byte'l k bir alanda +127 (ileri yön) ve -128 (geri yön) aral nda bir atlama i lemi gerçekle tirilir.

-ekil 2. 8. Ba l adresleme

Atlama (80h) komutunun ard ndan program say c n n (PC) adresi bir artt r l r. Böyle- likle yeni adres, atlama komut adresine de il sonraki komuta ba l d r. Adres bilgisi-

(33)

nin 1. biti ‘1’ ise eksi kabul edilir ve atlama i lemi geriye do ru gerçekle tirilir. E er 1. bit ‘0’ ise art kabul edilir ve ileriye do ru atlama i lemi gerçekle tirilir.

-ekil 2. 9. Ba l adresleme yöntemi

Assembly Aç klama

MOV A,#FFh ;Akü'ye FF16 de erinin at lmas Git: MOV Pl,A ;Akü'yü Pl portuna yükle

DEC A ;Akü'yü bir azalt SJMP Git ;Git etiketine dallan

Yukar da bir ba l adresleme örne i görülmektedir. Ko ulsuz dallanma komutu (sjmp) kullan ld ndan program sonsuz döngü eklinde FFh de erini sürekli bir azaltarak Pl portuna gönderir.

2.5.6. Mutlak Adresleme

Mutlak adresleme yöntemi sadece ACALL ve AJMP komutlar ile kullan l r. Bu komutlar 2 Byte uzunlu undad r ve kod bellek içerisinde 2 Kbyte'l k bir alan adres- leyebilirler. Maksimum 64 KByte olan kod bellek a a daki ekilde görüldü ü gibi 2 Kbyte'l k 32 bölmeye ayr labilece inden hangi bölmenin seçilece ini program sayac (PC) belirlemektedir.

-ekilde görüldü ü gibi hedef adresin yüksek de erlikli 5 biti (A15-A11), program say c n n (PC) yüksek de erlikli 5 bitidir. Böylece A15-A11 aras ndaki bitler de i ti-

(34)

23

-ekil 2.10. Mutlak adresleme

-ekil 2.11. 64 kB'l k belle in sayfalara ayr lmas

2.5.7. Uzun Adresleme

Uzun adresleme yönteminde yaln zca 3 Byte'l k LCALL ve LJMP komutlar kulla- n l r. Bu komutlarda 16-bit hedef adres bulunabilir. Bu adresleme yöntemi ile 216 = 64 Kbyte'l k adres aral nda atlama i lemi gerçekle tirilebilir.

-ekil 2.12. Uzun adresleme

Modern assembly derleyicilerinde ko ulsuz dallanma i lemi JMP, SJMP, LJMP komutlar ile gerçekle tirilebilece i gibi sadece JMP komutu ile de gerçekle tirilebi- lir. Assembler komutunu, adresler aras ndaki mesafeye göre SJMP ya da LJMP ola- rak belirleyebilir. Bu i lem tasar mc için büyük kolayl k sa lar.

2.5.8. S2ral2 (index) Adresleme

S ral adresleme, bellekte bulunan s ral bilgilere eri mek ve tablo (look-up table) ha- lindeki sabit verileri kullanmak için en elveri li adresleme yöntemidir. Bu yöntemde çok say da veriye az say da komut kullanarak eri mek olas d r. Böylelikle bellek ala- n ndan tasarruf sa lan r. S ral adresleme yönteminde, JMP ve MOVC komutlar kullan l r. Bu yöntemde program sayac (PC) veya veri i aretçisi (DPTR) ile akümü- latörün toplam , atlan lacak olan etkin adres bilgisini belirler.

(35)

-ekil 2. 13. S ral adresleme

-ekil 2. 14. S ral adresleme örne i

Yukar daki ekilde s ral adresleme yönteminin kullan ld bir örnek görülmektedir.

Program, aküye 0h de erinin at lmas ile ba lamaktad r, CALL BASLA komutu ile 50h adresinde bulunan alt programa dallan l r, BASLA alt program her ça r ld n- da tablo halindeki veriler s ra ile al nmaktad r. Tablodaki verilerin s ra ile al nmas n sa layan akünün de eri INC A komutu ile 1 artt r l r. MOVC A, @A+PC komutu çal mas gere i önce PC'nin o anda gösterdi i de eri 1 artt r r, sonra akü ile toplay p tablodan al nacak verinin yerini gösteren etkin adresi (0053h) elde eder ve bu adres- teki veriyi (33h) alarak aküye yükler.

2.6. 8051 Komut Türleri

8051’de de kullan lan komutlar 8-bit opkoda sahiptir. 8-bit opkod 28=256 farkl ko- muta imkân tan r ve 8051’de toplam 255 komut tan ml d r. 8051 komut kümesi 1, 2 ya da 3 bayt uzunlu unda komutlardan meydana gelmektedir. Komut kümesini olu - turan 255 komutun 139’u 1 bayt, 92’si 2 bayt ve 24’ü 3 baytt r. 8051 komut kümesi be ana ba l k alt nda incelenebilir:

Aritmetik komutlar

(36)

25 Veri transfer komutlar

Bit i lem komutlar

Program dallanma komutlar

2.6.1. Aritmetik Komutlar

Mikrodenetleyici uygulamalar , ço unlukla program içerisindeki eylemleri ve prog- ram ak n de i tirmek amac yla veri üzerinde matematiksel i lemlerin yap lmas n gerektirir. Uygulamalarda özellikle istenen gerçek zamanl kontrol i lemlerinin ger- çekle tirilmesidir. Bu da mikrodenetleyici ile aritmetik i lemlerin etkin olarak yap l- mas ile mümkündür.

Aritmetik i lem komutlar , toplama, ç karma, artt rma, azaltma, çarpma, bölme ve onluk tabana uyarlama komutlar ndan olu maktad r. 8051 mikrodenetleyicisinde kul- lan lan tüm aritmetik komutlar, kullan ld klar adresleme yöntemlerine, etkiledikleri bayrak türüne ve Byte olarak uzunluklar na göre a a daki tabloda verilmi tir.

Tablo 2. 3.Aritmetik komut kümesi [1]

Komut Aç klama Bayrak Bayt

ADD A, Rn Rn saklay c de erini akümülatöre ekle C,OV,AC 1 ADD A, adres Adresteki bilgiyi Aküye ekle C,OV,AC 2 ADD A, @Ri Saklay c n n gösterdi i adresteki bilgiyi aküye C,OV,AC 1

Toplama

ADD A, #bilgi Do rudan bilgiyi aküye ekle C,OV,AC 2 ADDC A, Rn Akümülatör ile saklay c de erini elde ile topla C,OV,AC 1 ADDC A, adres Elde ile aküye adresteki bilgiyi ekle C,OV,AC 2 ADDC A, @Ri Elde ile saklay c n n gösterdi i adresteki bilgiyi

aküye ekle C,OV,AC 1

EldeliToplama

ADDC A, #bilgi Elde ile do rudan bilgiyi aküye ekle C,OV,AC 2 SUBB A, Rn Borç ile Aküden saklay c n n de erini ç kart C,OV,AC 1

SUBB A, adres Borç ile aküden adresteki bilgiyi ç kart C,OV,AC 2 SUBB A, @Ri Borç ile saklay c n n gösterdi i adresteki bilgiyi

aküden ç kart C,OV,AC 1

Çkarma

SUBB A, #bilgi Borç ile Aküden bilgiyi ç kart C,OV,AC 2

(37)

INC A Akümülatörü 1 artt r 1

INC Rn Saklay c y 1 artt r 1

INC adres Adresteki bilgiyi 1 artt r 2 INC @Ri Ri saklay c n n gösterdi i adresteki bilgiyi 1 artt r 1

Arttrma

INC DPTR DPTR saklay c s n 1 artt r 1

DEC A Akümülatörü 1 azalt 1

DEC Rn Saklay c y 1 azalt – 1

DEC adres Adresteki bilgiyi 1 azalt 2

Azaltma

DEC @Ri Ri saklay c s n n gösterdi i adresteki bilgiyi 1 1

Çarpma

MUL AB

A ve B saklay c lar n n içeriklerini çarp. Çarp m sonucunda yüksek de erlikli bayt B saklay c s na, dü ük de erlikli bayt ise Akü’ye

C,OV 1

Bölme

DIV AB A’y B’ye böl. & lem sonucunda Bölüm Akü’ye,

Kalan B saklay c s na yüklenir. C,OV 1

DA A Akümülatörü onluk tabana ayarla C 1

2.6.2. Mant2ksal Komutlar

Lojik i lem komutlar VE, VEYA, Özel VEYA, sola ve sa a döndürme komutlar ile akünün 4'lüklerinin (nibble) yerini de i tirme komutundan olu maktad r. 8051 mikrodenetleyicisinde kullan lan tüm mant ksal komutlar, kullan m ekillerine, etki- ledikleri bayrak türüne ve Byte olarak uzunluklar na göre tabloda verilmektedir.

8051 mant ksal komutlar verinin Byte'lar üzerinde bit tabanl lojik i lem yapar.

Akümülatörü kullanan tüm mant ksal komutlar 1 makine çevriminde çal r. Di er komutlar ise 2 veya 3 makine çevriminde çal rlar.

Tablo 2. 4. Mant ksal i lem komutlar [1]

Komut Aç klama Bayrak Bayt

ANL A, Rn Rn saklay c s ile aküyü VE i lemine tabi tut 1 ANL A, adres Adresteki bilgi ile aküyü VE i lemine tabi tut 2 ANL A, @Ri Saklay c n n gösterdi i adresteki bilgi ile aküyü

lojik VE i lemine tabi tut

1

ANL A, #bilgi Do rudan bilgi ile aküyü VE i lemine tabi tut 2 ANL adres, A Akü ile adresteki bilgiyi VE i lemine tabi tut 2

VEi/lemi

ANL adres, #bilgi Bilgi ile adresteki veriyi VE i lemine tabi tut 3 ORL A, Rn Rn ile akümülatörü VEYA i lemine tabi tut 1 ORL A, adres Adresteki bilgi ile aküyü VEYA i lemine tabi tut 2 ORL A, @Ri Saklay c n n gösterdi i adresteki bilgi ile aküyü

VEYA i lemine tabi tut

1

ORL A, #bilgi Do rudan bilgi ile aküyü VEYA i lemine tabi tut 2 ORL adres, A Akü ile adresteki bilgiyi VEYA i lemine tabi tut 2

VEYAi/lemi

ORL adres, #bilgi Bilgi ile adresteki veriyi VEYA i lemine tabi tut 3

(38)

27

XRL A, Rn Rn ile aküyü Özel VEYA i lemine tabi tut 1 XRL A, adres Adresteki bilgi ile aküyü Özel VEYA i lemine

tabi tut

2

XRL A, @ Ri Saklay c n n gösterdi i adresteki bilgi ile aküyü Özel VEYA i lemine tabi tut

1

XRL A, #bilgi Do rudan bilgi ile aküyü Özel VEYA i lemine tabi tut

2

XRL adres, A Akü ile adresteki bilgiyi Özel VEYA i lemine tabi tut

2

ÖzelVEYAi/lemi

XRL adres, #bilgi Bilgi ile adresteki veriyi Özel VEYA i lemine tabi tut

3

RL A Akümülatörü 1 bit sola döndür 1

RR A Akümülatörü 1 bit sa a döndür – 1

RLC A Akümülatörü elde üzerinden 1 bit sola döndür C 1

Döndürme/lemi

RRC A Akümülatörü elde üzerinden 1 bit sa a döndür C 1

SWAP A Akümülatörün ilk dört biti ile son dört bitini yer

de i tir 1

2.6.3. Veri Transfer Komutlar

Veri transfer komutlar , bellekten veya G/Ç portlar ndan saklay c lara ya da saklay - c lardan belle e veri ta mak için kullan l rlar. Bir mikrodenetleyici tipik olarak bir veriyi bir yerden ba ka bir yere ta mak için di er i lemlerden daha fazla zaman har- camaktad r. Veri transfer komutlar 3 ba l k alt nda toplanabilir. Bunlar:

Dahili veri belle ine eri mek için kullan lanlar Harici veri belle ine eri mek için kullan lanlar

Program belle ine ya da bak tablolar na eri mek için kullan lanlar.

2.6.3.1. Dahili Veri Belle;i Veri Transfer Komutlar2

Dahili veri transfer komutlar ile 8051 mikrodenetleyicisinde dahili olarak bulunan alt RAM, üst RAM ve SFR bölgesinden veri yükleme, veri okuma i lemleri gerçek- le tirilebilir. Yine bu komutlar kullan larak SFR'de tan ml portlardan veri giri /ç k yap lmaktad r. Dahili veri belle ine eri mek için kullan lan veri transfer komutlar bayraklar etkilememektedir. Kullan m ekillerine ve Byte olarak uzunluklar na göre dahili veri belle i veri transfer komutlar a a daki tablodaki gibidir.

(39)

Tablo 2. 5. Dahili veri belle i transfer komutlar [1]

2.6.3.2. Harici Veri Belle;i Veri Transfer Komutlar2

Harici veri belle ine eri mek için kullan lan veri transfer komutlar , dolayl adresle- me yöntemini kullan r. Bu yöntemde harici bellek adresini tutmak için R0, R1 veya DPTR saklay c lar ndan faydalan l r. R0 ve Rl ile 00-FFh ve DPTR ile 0000-FFFFh adres aral klar na eri im sa lanmaktad r. Her zaman kaynak ya da hedef olarak akü- mülatör kullan l r. MOVX komutu harici bellek üzerinde i lem yapmak için RD, WR ve ALE uçlar n etkinle tirir. Harici bellek üzerinde çal an tüm veri transfer komut- lar 2 makine çevriminde çal r. Harici veri belle ine eri mek için kullan lan tüm ve- ri transfer komutlar a a daki tabloda görülmektedir.

Komut Aç klama Bayt

MOV A, Rn Rn saklay c s ndaki de eri akümülatöre yükle 1

MOV A, adres Adresteki bilgiyi aküye yükle 2

MOV A, @Ri Ri’nin gösterdi i adresteki bilgiyi aküye yükle 1 MOV A, #bilgi Do rudan bilgi verisini aküye yükle 2 MOV Rn, A Akümülatörü Rn saklay c s na yükle 1 MOV Rn, adres Adresteki bilgiyi Rn saklay c s na yükle 2 MOV Rn, #bilgi Do rudan bilgi verisini Rn saklay c s na yükle 2 MOV adres, A Akümülatördeki bilgiyi adrese yükle 2 MOV adres, Rn Rn saklay c s n n içeri ini adrese yükle 2 MOV adres1, adres2 adres 2’deki bilgiyi adres 1’e yükle 3 MOV adres, @Ri Ri’nin gösterdi i adresteki bilgiyi adrese yükle 2 MOV adres, #bilgi Do rudan bilgi verisini adrese yükle 3 MOV @Ri, A Akümülatörü Ri’nin gösterdi i adrese yükle 1 MOV @Ri, adres Adresteki bilgiyi Ri’nin gösterdi i adrese yükle 2 MOV @Ri, #bilgi Do rudan bilgi verisini Ri’nin gösterdi i adrese yükle 2 MOV DPTR, #bilgi16 16 bitlik bilgi verisini DPTR saklay c s na yükle 3

PUSH Adres Adresteki bilgiyi y na at 2

POP Adres Y ndaki bilgiyi adrese at 2

XCH A, Rn Rn ve akünün içeriklerini de i tir 1

XCH A, adres Adresteki bilgi ile akünün içeri ini de i tir 2

XCH A, @Ri Ri’nin gösterdi i adres ve akünün içeriklerini de i tir 1 XCHD A, @Ri Ri’nin gösterdi i adres ile akünün içeriklerinin ilk dört bitini

de i tir 1

Referanslar

Benzer Belgeler

Şirket, Veri Sahibi’ne ait kişisel verileri işbu Gizlilik Politikası ile belirlenen amaçların gerçekleştirilebilmesi için Şirket’imize hizmet sunan yurtiçi ve yurtdışında

 Bir veri kümesi içerisinde belirttiğimiz değere benzeyen verilerin olup olmadığını kontrol etmek için kullanılır..

 COUNT() fonksiyonu bir sütun içerisindeki satır sayısını bulmak için kullanılır.  Distinct ile kullanılırsa benzersiz kayıtların sayısını

 Sütunlara verilen takma isimler verilebilir fakat Group by ve Having işleminde takma isimler yazılamaz....  SELECT SUM(maas) FROM tbl_personel WHERE

Alıştırma 13: Şu ana kadarki alan deneyiminiz ve analiziniz sonucunda bir araştırma sorusu formüle edin (Ankara`da dışarıda yemek. yemek ...?) ve bu soru ile ilgili size

Büyük verinin sunduğu bilgi hazinesinden ya- rarlanmak, algoritmaları kontrol ederek görünürlüğü artırmak, paylaşım ve sosyal medya akışını belirleyerek internette daha

Ders öğesi işlevsel olarak ogr_no öğesine (birincil anahtar) bağımlı olmadığı için, bu ilişki ikinci normal formda

Bu da mevcut teknolojilerin büyük ölçekli ve karmaşık veri kümelerinde kullanımı için geliştirilmesi ve büyük verinin özelliklerine uygun yenilikçi