Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ELN 3104 MKROLEMCLER DERS NOTLARI
YAZ OKULU 2014 1
ERK ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Say ve Kodlama Sistemi Mantk Devreleri Mikroilemciler
2
SAYILAR VE KODLAMA SSTEMLER
Ondalk ve kili Say Sistemleri ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
nsanolu aritmetik ilemlerde ondalk saylar kullanr. (Decimal number systems) Burada 10 farkl say sembol bulunur: 0, 1, 2, 3, ,9 Bilgisayarlar ise ikili saylar kullanr. (Binary number system) kili saylar sadece 0 ve 1 saylarn ierir. kili saylara genel olarak bit denir. 3
SAYILAR VE KODLAMA SSTEMLER
Ondalk Saydan kili Sayya evirme ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Ondalk sayy ardarda 2 ile blnr. Kalan sa tarafa yazlr. Blm < 1 olana kadar bu ileme devam edilir. Kalanlar aadan yukarya doru (ters srada) okunup soldan saa yazlr. rnek: 25 10 ondalk saysn ikili sayya eviriniz. Blm Kalan 25/2 = 12 1 LSB (en kk anlaml bit) 12/2 = 6 0 6/2 = 3 0 3/2 = 1 1 1/2 => 0 1 MSB (en byk anlaml bit) Sonu olarak 25 10 = 11001 2 bulunur 4
SAYILAR VE KODLAMA SSTEMLER
kili Saydan Ondalk Sayya evirme ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Her bit kendi arl ile arplr. Ondalk sayy elde etmek iin bunlar birbiri ile toplanr. rnek: 11001 2 saysn ondalk sayya eviriniz. Arlk: 2 4 2 3 2 2 2 1 2 0 Hane: 1 1 0 0 1 Topl: 16+ 8+ 0+ 0+ 1+ = 25 10
Onaltlk Say Sistemi ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Onaltlk (Hexadecimal) say sistemi ikili saylarla kolayca alabilmek iin kullanlan bir say sistemidir. rnek: 100010010110 ikili says yerine 896H onaltlk edeerini kullanmak daha kolaydr. 1000 = 8 1001 = 9 0110 = 6 -> 896H Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
6
SAYILAR VE KODLAMA SSTEMLER
Onaltlk ve kili Saylar Birbirine evirme ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
kili sayy onaltlk sayya evirmek iin kili say sadan balayarak 4 bitlik gruplara ayrlr, her 4 bitlik ikili sayya ait onaltlk (hex) karl yazlr. rnek: 100111110101 ikili saysnn onaltlk karln yaznz. 1001 1111 0101 = 9 F 5 Onaltlk saydan ikili sayya evirmek iin Her onaltlk say hanesinin karlna ikili say karl yazlr. rnek: 29BH saysn ikili sayya eviriniz. 2 9 B = 0010 1001 1011 7
SAYILAR VE KODLAMA SSTEMLER
Ondalk Saydan Onaltlk Sayya evirme ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
nce ondalk saydan ikili sayya sonra onaltlk sayya evrilir. Dorudan ondalk saydan onaltlk sayya evirmek iin art arda 16 blme ilemi yaplrken kalanlar sa tarafa yazlr. Bu ilem blm<1 oluncaya kadar devam eder. rnek: 45 10 saysn onaltlk sayya eviriniz 32 16 8 4 2 1 1 0 1 1 0 1 32 + 8 + 4 + 1 = 45 45 10 = 0010 1101 2 = 2D 16
Onaltlk Saylarla Toplama ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Haneler en kk anlaml haneden balayarak toplanr Hane toplamnn sonucu 16 dan az ise deer dorudan ilgili hanesine yazlr. Eer sonu 16 dan bykse sonutan 16 karlr, kalan ilgili haneye yazlr ve bir sonraki haneye 1 eklenir. rnek: 23D9 16 +94BE 16 toplamn hesaplaynz. 23D9 LSD: 9 + 14 =23 23-16 = 7 + elde +94BE 1+13+11 = 25 25-16 = 9 + elde B897 1+3+4 = 8 MSD: 2 + 9 = B 11
SAYILAR VE KODLAMA SSTEMLER
Onaltlk Saylarla kartma ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ASCII (aski diye okunur) kodu 0 ila 9 saylarna ngilizce alfabenin byk ve kk harflerine Birok kontrol kodu ve noktalama iaretlerine karlk gelen ikili say dizisinden oluan bir karakter tablosu veya listesidir. ASCII sistemi her sembol iin 7 bitlik bir ikili say dizisi kullanr. Hex Sembol Hex Sembol 41 A 61 a 42 B 62 b 43 C 63 c
59 Y 79 y 5A Z 7A z Seilmi ASCII kodlar 13
MANTIK DEVRELER
Lojik Seviyeler ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ki farkl gerilim seviyesi 0 ve 1 olarak gsterilebilir. Saysal devrelerdeki iaretler, gerilim seviyelerindeki deiimlere (dalgalanmalara) kar belirlenmi toleranslar olan iki farkl gerilim seviyesine sahiptir. Geerli saysal iaret aadaki diyagramda gsterilen glgelendirilmi alanlar (bantlar) iinde olmak zorundadr. 14
MANTIK DEVRELER
Lojik Kaplar
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM VEYA kaps (OR gate) Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
VE kaps (AND gate) 15
MANTIK DEVRELER
Lojik Kaplar
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM DILAYAN VEYA kaps (XOR gate) Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM VEYA DEL kaps (NOR gate) Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
VE DEL kaps (NAND gate)
MANTIK DEVRELER
Lojik Kaplar Kullanarak Devre Tasarm
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
kili say toplama devreleri
MANTIK DEVRELER
Lojik Kaplar Kullanarak Devre Tasarm
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
4 bit toplayc 4-Bitlik A ve B ikili saylarna ait 4-Bit toplayc ile toplama rnekleri
MANTIK DEVRELER
Lojik Kaplar Kullanarak Devre Tasarm
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM 9 adresi iin kod 5 adresi iin kod zm zm Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Kod zcler Kod zcler adres zmlemesi iin oka kullanlrlar
MANTIK DEVRELER
Lojik Kaplar Kullanarak Devre Tasarm
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Flip-flop devreleri Sklkla veri saklama iin kullanlrlar
MKROLEMC YAPISI
nemli Tanmlar
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Veri byklne ilikin tanmlar Bit: Bir ikili rakama (hanesine) verilen ad, 0 veya 1 deerini alabilir. Bayt (Byte): 8 bitten oluur Yarm bayt (Nibble) : 4 bitten oluur Kelime(Word): ki bayttr, 16 bit ierir Bir bilgisayar belleinin bykln gstermek zere kullanlan birimler Kilobayt (KB): 2 10 bayt, 1024 bayt Megabayt (MB): 2 20 bayt, 1.048.576 bayt Gigabayt (GB): 2 30 bayt, 1.073.741.824 bayt Terabayt (TB): 2 40 bayt, 1.099.511.627.776 bayt
MKROLEMC YAPISI
Mikroilemcinin i Organizasyonu
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
MB (CPU) Merkezi ilemci birimi Bellekte saklanan veriyi iler G/ (I/O) Giri/k birimi Merkezi ilemci birimine veri tar, d dnyaya almn salar Bellek RAM (Random Access Memory) Rastgele ulalabilir bellek, mikroilemci alrken gerekli olan anlk verileri saklar Enerji kesilince veriler kaybolur ROM (Read Only Memory) Salt okunabilir bellek, mikroilemci alrken gerekli olan program kodlar ve deimeyen veriler burada saklanr Kullanm esnasnda kaytl veriler deitirilemez ve enerji kesildiinde bu veriler kaybolmaz (Nonvolatile)
MKROLEMC YAPISI
Mikroilemcinin i Organizasyonu
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
MKROLEMC YAPISI
Mikroilemcinin i Organizasyonu
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
MB (CPU), bellek ve G/ arayzne bus (yol) ad verilen eritler (iletken demetleri) ile baldr Bir yerden bir yere veri tarlar Adres yolu (Address bus) Veri yolu (Data bus) Kontrol yolu (Control bus)
MKROLEMC YAPISI
Mikroilemcinin i Organizasyonu
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Adres yolu (Address Bus) Bellek veya G/ birimlerinin mikroilemci tarafndan tannabilmesi iin bunlara bir adres atanmaldr. Belirli bir birim iin atanan adres tek (bir tane) olmaldr CPU (MB) adres yoluna adresi yazar ve kod zc istenilen birimi bulur Veri yolu CPU, veri yolunu kullanarak bellek ve G/ birimlerinden veri alverii yapar Kontrol yolu CPU Birimlerle veri alverii yaparken yazma veya okuma ilemlerine ait iaretleri kontrol yolu zerinden iletir
MKROLEMC YAPISI
Veri Yolu Hakknda Daha Fazla Bilgi
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
CPU ne kadar ok veri yoluna sahip olursa o kadar verimli alr Veri yolunu geni otoyollara benzetebilirsiniz ok veri yolu demek daha pahal mikroilemci demektir CPU iindeki veri yollarnn ortalama genilii 8 ile 64 bit arasnda deiir Veri yollar iki ynldr Ayni yoldan veri hem gnderilip hem de alnabilir Mikroilemcinin ilem gc yollarn genilii ile ilikilidir. 16 bit veri yoluna sahip bir mikroilemci 8 bit veri yoluna sahip ilemciden ayni sre iinde ok daha fazla ilem yapabilir
MKROLEMC YAPISI
Adres Yolu Hakknda Daha Fazla Bilgi
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Adres yolu geniledike daha fazla bellek alan adreslenebilir. Bu da daha fazla evre biriminin adreslenebilmesi demektir CPU nun veri alveriinde bulunabilecei bellek alannn says 2 n olur. Burada n says adres hatlarnn (iletkenlerinin) saysdr 16 adres ve 8 veri hatt olan mikroilemci 2 16 = 65536 = 64 KB adreslenebilir bellee sahiptir Mikroilemciler genel olarak bayt adreslenebilir olduundan her veri alan en fazla 1 bayt veri ierir Adres yolu tek ynldr, sadece evre biriminin adresi iaret edilir.
MKROLEMC YAPISI
Mikroilemci RAM ve ROM
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
CPU nun bilgiyi ileyebilmesi iin veri her ikiside birincil bellek olarak adlandrlan RAM ya da ROM da saklanmaldr. ROM sabit ve kalc olan veriyi saklar. Tablolar veya balang programlar letim sisteminin (OS) ve uygulama paketlerini saklar. RAM kalc olmayan ve zamanla deien veriyi (bilgi = information) saklar. CPU ilenecek bilgiyi, nce RAM veya ROM dan Burada yoksa ikincil bellek olarak adlandrlan yn bellekten (mass storage) RAM a tayarak elde eder. letim sisteminin (OS) deiik srmleri (version) ve uygulama paketleri yn bellekte de saklanabilir.
MKROLEMC YAPISI
Mikroilemci indeki Kaytlar
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Kaytlar (Registers) CPU anlk veriyi saklamak iin kaytlar kullanr. Bunlar, lenecek deikenler (deiken veriler) Bellekten alnacak deikenlerin adresleridir Genel olarak kaytlar ne kadar ok ve bykse CPU o kadar iyi ve esnek yapya sahip demektir. Kaytlar 8, 16, 32 ve 64 bit uzunluunda olabilirler. Mikrodenetleyici aileleri genelde 8 bitlik kaytlara sahiptir. Kaytlarn saysnn ve bit uzunluunun byk olduu ilemciler pahaldrlar.
MKROLEMC YAPISI
Mikroilemcinin i Organizasyonu
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Program sayac, Komut kayts, Komut kod zc, zamanlama ve kontrol, genel kaytlar, Aritmetik Lojik Birim, Bayrak kayts
MKROLEMC YAPISI
Mikroilemcinin i Organizasyonu
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ALU (arithmetic/logic unit) aritmetik/lojik birimi Toplama, karma, arpma ve blme gibi aritmetik ilemler ile VE, VEYA, DEL gibi lojik ilemleri gerekler. Program sayac (Program counter) cra edilecek yeni komutun adresini gsterir. Her bir komut icra edilirken program sayac bir sonra icra edilecek komutun adresini gsterecek ekilde arttrlr. Komut kodu zc (Instruction decoder) Bellekten CPU ya getirilen komutu zer. CPU nun ok sayda komutu zebilmesi iin tasarmnda kullanlan transistor saysnn o lde arttrlmas gerekir.
MKROLEMC YAPISI
Mikroilemcinin alma ekli
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Mikroilemcinin alma ekli rnek: Bir ilemcinin 8-bit veri yolu, 16-bit adres yolu, A, B, C ve D kaytlar (8-bit) olsun. CPU 0000 FFFFH arasndaki bellek adreslerine ulaabilir Bir deeri A kaytsna yazma komutu B0H ve baka bir deeri A kaytsndaki deerle toplama komutu da 04H olsun. CPU tarafndan icra edilecek eylem 21H deerini A kaytsna yazmak ve buna 42H ve 12H deerlerini toplamaktr.
MKROLEMC YAPISI
Mikroilemcinin alma ekli
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
nceki slayttan devam,
Eylem Kod Veri 21H -> reg.A B0H 21H Top 42H -> reg.A 04H 42H Top 12H -> reg.A 04H 12H
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Devam CPU tarafndan icra edilen eylem aadaki gibidir: 1. Program sayac icra edilecek ilk komut kodunun adresini gstermek zere 1400H deerine kurulur. 2. CPU 1400 H deerini adres yoluna koyar. Bellek i devresi adresi bulur. CPU bellekte 1400H adresindeki veriyi okumak iin OKU (READ) iaretini aktifletirir Bu eylem 1400H adresindeki B0H olan veriyi veri yoluna kartr ve CPU ya getirir.
MKROLEMC YAPISI
Mikroilemcinin alma ekli
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek devam ediyor, 3. CPU B0H komutunu zer CPU kontrol devresine bir sonraki adresteki veriyi A kaytsna getirmek iin komut verir. Program sayac arttrlarak bir sonra icra edilecek komutun adresine (1402H) kurulur. 1402H adresi adres yoluna konur ve yeni komut bellekten okunur
MKROLEMC YAPISI
Mikroilemcinin alma ekli
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek devam ediyor 4. 1402H Bellek adresinden 04H kodu alnr Kod zlr ve sonraki adreste (1403H) bulunan deeri (42H) A kaytsna toplama ilemi yaplaca belli olur CPU (42H) deerini bellekten okuduktan sonra bu deerle birlikte A kaytsnn ieriini toplama ilemi yapmak zere ALU giriine getirir Alu kna gelen toplama ilemi sonu deeri A kaytsna yazlr Program sayac ierii bir sonraki komutun adresi olan1404H olur
MKROLEMC YAPISI
Mikroilemcinin alma ekli
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Devam 5. 1404H adres yoluna konur ve komut bellekten CPU ya alnr, kodu zlr ve icra edilir Bu komut kodu da A kaytsna bir deer ilave eder Program sayac 1406H deerine arttrlr 6. 1406H adresinin ierii alnr ve icra edilir DUR (HALT) komutu CPU program sayacnn arttrlmasn ve yeni komutlarn getirilmesini durdurur
8051 MKRODENETLEYC
ERK
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Mikrodenetleyiciler ve gml ilemciler 8051 Ailesine bak
MKRODENETLEYC VE GML LEMCLER
Mikrodenetleyiciler ile Mikroilemcilerin Karlatrlmas
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Genel kullanm mikroilemciler RAM ROM G/ kaplar iermezler Mikrodenetleyiciler (Microcontrollers) CPU (microilemci) RAM ROM G/ kaplar Zamanlayc (hatta hzl sayclar) ADC ve dier evre birimlerini ierirler
MKRODENETLEYC VE GML LEMCLER
Mikrodenetleyiciler ile Mikroilemcilerin Karlatrlmas
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Mikrodenetleyici Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Genel kullanm mikroilemci
MKRODENETLEYC VE GML LEMCLER
Mikrodenetleyiciler ile Mikroilemcilerin Karlatrlmas
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Genel kullanm mikroilemciler Fonksiyonunu yerine getirebilmesi iin RAM, ROM, G/ birimleri ve zamanlayclar dardan balanmak zorundadr Bu sistemi bytr ve olduka pahal yapar Ancak RAM, ROM ve G/ birimlerini istenildii gibi seme imkan gibi avantajlar vardr Mikrodenetleyici Krmk zerindeki sabit miktarda ROM, RAM ve belli sayda G/ kaps maliyetin ve yerin kstl olduu uygulamalarda ok uygundurlar. ou uygulamalarda harcanan elektriksel g, kaplanan yer ve birim bana maliyet ilemci gcnden ok daha nemlidir.
MKRODENETLEYC VE GML LEMCLER
Gml Sistemler iin Mikrodenetleyiciler
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Gml bir rn sadece ve sadece bir grevi yerine getirmek iin bir mikroilemci (veya mikrodenetleyici) kullanr Burada ROM ierisine kaydedilmi sadece bir uygulama yazlm vardr. Gml sisteme kar bir kiisel bilgisayar (PC) birok uygulamay altrmak iin kullanlabilir PC nin RAM bellei ve eitli uygulamalar RAM bellee ykleyip altrabilen iletim sistemi vardr Bir PC eitli gml sistemleri ihtiva eder veya bunlara balanabilir Her evre birimi iinde bir mikrodenetleyici vardr ve sadece bir i yapar.
MKRODENETLEYC VE GML LEMCLER
Gml Sistemler iin Mikrodenetleyiciler
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Evde Ev aletleri, telefon, dofon, emniyet sistemleri, faks, telefon cevaplama ve kaydetme sistemleri, bilgisayarlar, televizyonlar, uzaktan kumanda, cep telefonlar, elektronik mzik aletleri, buzdolab, diki makineleri, amar makineleri, kou bantlar gibi eksersiz aletleri Ofiste Telefon, faks, bilgisayar, fotokopi makineleri, laser yazclar, personel takip sistemleri, kamera izleme sistemleri, havalandrma-stma-soutma sistemi Otomotivde Motor kontrol nitesi (powertrain control module), ABS fren, anzuman kontrol, enstrmantasyon, yol bilgisayar, navigasyon, klima kontrol, anahtarsz giri kilit sistemi vb.
MKRODENETLEYC VE GML LEMCLER
x86 PC Gml Uygulamalar
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ou reticilerin genel kullanma sunduu mikroilemciler gml ilemciler pazarnn yksek segmentine yneliktir. Bazen bu mikroilemcilerin ie uygun olmad durumlar olmutur. Bu nedenle gml ilemci pazarna ynelik mikroilemci hedefleyen reticiler ilemciyi bu i iin optimize etmek durumundadrlar. ou zaman gml ilemci ile mikrodenetleyici terimleri birbiri yerine kullanlmaktadr
MKRODENETLEYC VE GML LEMCLER
x86 PC Gml Uygulamalar
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Gml sistemler iin en nemli ihtiyalar hacmi daraltmak ve g sarfiyatn azaltmaktr. Yksek performansl gml ilemcilerde gidiat, CPU ipine daha fazla fonksiyonun ilave edilmesi ve tasarmcya kullanmak istedii fonksiyonlara karar verme imkan tanmaktr. ou durumlarda, yksek teknolojili gml uygulamalar iin x86 PC leri kullanmak gelitirme sresini ksaltr ve paradan tasarruf salar. Geni bir yazlm ktphanesi hazr yazlmtr. Windows geni bir alanda kullanlmakta olan iyi anlalm bir platformdur.
MKRODENETLEYC VE GML LEMCLER
Mikrodenetleyici Seimi
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8-Bit mikrodenetleyiciler Motorola 6811 Intel 8051 Zilog Z80 Microchip PIC serisi Ayrca piyasada eitli ip (krmk) imalatlarnn 16-Bit ve 32-Bit mikrodenetleyicileri bulunmaktadr.
MKRODENETLEYC VE GML LEMCLER
Mikrodenetleyici Seim Kriterleri
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Yaplacak i iin gerekli ilem yetenekleri kolay ve ucuz olarak elde edilmeli Hz Klf G sarfiyat ip zerindeki RAM ve ROM bellek miktar ip zerindeki G/ ularnn ve zamanlayclarn says Daha iyi performansl ve dk g harcayan yeni tipleri ile kolayca deime imkan Birim bana maliyet
MKRODENETLEYC VE GML LEMCLER
Mikrodenetleyici Seim Kriterleri
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Derleyici, assembler ve debugger gibi yazlm gelitirme aralarnn kolay bulunabilmesi Mikrodenetleyicinin geni ve gvenli kaynaklardan temini imkan 8051 ailesi eitli kaynaklardan tedarik edilebilir Intel (orijinal) Atmel Philips/Signetics AMD Infineon (nceden Siemens idi) Matra Dallas Semiconductor/Maxim
8051 Ailesine Genel Bak
8051 Mikrodenetleyici
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Intel firmas MCS 51 olarak atfta bulunulan 8051 i 1981 ylnda tantt 8051 8-Bitlik bir ilemcidir 8051 128 baytlk RAM ip zerinde 4K baytlk ROM ki zamanlayc Bir seri port Her biri 8 bit olan drt G/ portu 6 kesme (interrupt sources) 8051 ilemcisi dier reticiler 8051 ile kod uygunluu olan eitli tipte mikrodenetleyiciler retmeye balaynca piyasada olduka tannr oldu.
8051 Ailesine Genel Bak
8051 Mikrodenetleyici
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8051 Mimarisi
8051 Ailesine Genel Bak
8051 Mikrodenetleyici
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8051, 8052 nin bir alt setidir. 8031 zerinde ROM olmayan 8051 dir. Dardan ROM balamak gereklidir G/ lardan iki port kaybedilir ve G/ ilemleri iin sadece 2 port kalr.
8051 Ailesine Genel Bak
8051 Mikrodenetleyici
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8751 mikrodenetleyicisi UV-EPROM u var PROM yazc gerekir Prom un UV-EPROM silici ile tamamen silinmesi iin 20 dakika gerekir AT89C51 (Atmel Corp.) Flash (yazmadan nce sil) Flash destekleyen ROM yazc Ayrca bir siliciye gerek yok DS89C4x0 (Dallas Semiconductor/Maxim) Flash ip zerinde program ykleyici ile gelir, program PC COM portundan dorudan ipe yklenir.
8051 Ailesine Genel Bak
8051 Mikrodenetleyici
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
DS5000 (Dallas Semiconductor/Maxim) NV-RAM (Her seferinde bir bayt deitirilebilir), RTC (gerek zaman saati) ip zerinde ykleyici (programlayc) ile gelir OTP (8051 in bir defa programlanabilir tipi) Philips firmasnn 8051 ailesi ADC, DAC, geniletilmi G/, hem OTP hem Flash tipi
8051 Mikrodenetleyici
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8051 ASSEMBLY DL LE PROGRAMLAMA
8051 YAPISI
Kaytlar
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Anlk veriyi saklamak iin kaytlar kullanlr. Buradaki veri, lenecek bir veri bayt veya Alnacak veriye ilikin bir adres iaretisi olabilir. 8051 kaytlarnn ounluu 8-Bit kaytlardr Burada sadece 8-bitlik veri tipi vardr.
8051 YAPISI
Kaytlar
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Kaytlarn 8 biti soldan saa MSB D7 den LSB D0 a aada grlmektedir. 8-Bitlik veri tipinde, 8 bitten byk veri ilenmeden nce 8-Bitlik veri paralar haline indirgenmelidir.
8051 YAPISI
Kaytlar
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
En ok kullanlan kaytlar A (Akmlatr) Aritmetik ve lojik ilem komutlar iin kullanlr B, R0, R1, R2, R3, R4, R5, R6, R7 DPTR (veri iaretisi) ve PC (program sayac)
8051 YAPISI
MOV Komutu
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM 59 Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
MOV hedef, kaynak ;kayna hedefe kopyalar Bu komut CPU ya kaynak operandnn hedef operandna tanmasn (aslnda kopyalanmasn) syler
8051 YAPISI
MOV Komutu
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Programlama notlar Deer (nnde # iareti olan) dorudan A, B veya R0 R7 kaytlarna yklenebilir MOV A, #23H ;# olmazsa adres olur MOV R5, #0F9H ;0 olmazsa harf olur Eer 0 ila F deerleri 8-bitlik bir kaytya tanrsa geri kalan bitlerin tm 0 addedilir. MOV A, #5 , sonu A=00000101 yani A=05 ok byk bir deeri kaytya tamak hataya neden olur (8 bitten byk say) MOV A, #7F2H ;GEERSZ: 7F2H>FFH 60
8051 YAPISI
ADD Komutu
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ADD A, kaynak ; Kaynak operand akmlatre topla ADD komutu, kaynak operandn akmlatrle toplar ve sonucu akmlatrde tutar. Kaynak operand bir hazr deer veya kaytdaki bir deer olabilir ancak hedef daima A kaytsdr (Akmlatr) ADD R4, A ve ADD R2, #12H komutlar geersizdir. nk herhangi bir aritmetik ilemin hedef kayts A olmaldr.
8051 ASSEMBLY PROGRAMLAMA
Assembly Dilinin Yaps
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Mikroilemcilerin ilk zamanlarnda programclar program kodunu 0 ve 1 lerden oluan makine dilinde yazarlard. Skc yava ve hata yapmaya ak bir metot Makine komut kodlar iin ksa anmsatclar kullanan Assembly dili ve dier zellikleri gelitirildi. Bir Assembly dili program bir sr Assembly dili komut satrlarndan oluur. Assembly dili dk seviye dillerdendir. Dorudan CPU nun i yaps ile ilgilenir ve ondan faydalanr.
8051 ASSEMBLY PROGRAMLAMA
Assembly Dilinin Yaps
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Assembly dili komutlar aadakileri ierir: Bir anmsatc (mnemonic)(kolay hatrlanacak bir ksaltma) ve Seenek olarak komuttan sonra bir veya iki operand (ellelenecek veri eleri) Assembly dili program, ifadelerin bir dizisi veya CPU nun ne yapacan belirten Assembly dili komutlar ile Assembler ynlendiren Direktiflerden (veya sahte- komutlardan) oluan satrlar eklinde verilir.
8051 ASSEMBLY PROGRAMLAMA
Assembly Dilinin Yaps
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Bir Assembly dili komutu drt alandan oluur [label:] Mnemonic [operands] [;comments]
8051 ASSEMBLY PROGRAMLAMA
Bir 8051 Programn Assembler ile Derleyip altrmak
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Assembly dili program admlarnn ana hatlar aadadr: 1. ncelikle program yazmak iin bir editr program kullanlr. Program oluturmak ve/veya dzenlemek iin mkemmel birok editr program veya kelime ilemci mevcuttur. Editr program bir ASCII dosyas kts retebilmelidir. ou assembler iin dosya ismi allageldik DOS kurallarna uyar fakat kaynak dosya kullanlan, assembly diline gre asm veya src uzantsna sahiptir.
8051 ASSEMBLY PROGRAMLAMA
Bir 8051 Programn Assembler ile Derleyip altrmak
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
2. Birinci admda oluturulan ve program kodunu ieren asm kaynak dosyas bir 8051 assemblerine yklenir. Assembler, komutlar makine koduna evirir Assembler bir nesne ve liste (object and list files) dosyas retir Nesne dosyasnn uzants obj ve liste dosyasnn uzants lst dir. 3. Assembler balama (linking) diye anlan nc bir adma gereksinim duyar. Balayc (linker) program bir veya daha fazla nesne kodu dosyasn alp uzants abs olan mutlak nesne dosyas (absolute object file) retir. Bu abs dosyas monitr program olan 8051 kitleri ile kullanlabilir.
8051 ASSEMBLY PROGRAMLAMA
Bir 8051 Programn Assembler ile Derleyip altrmak
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
4. Sonra abs dosyas, ROM iine yazlmaya hazr hex uzantl bir dosya oluturmak zere OH denilen, nesneden onaltlya eviren (object to hex converter) bir eviriciden geirilir. Bu program btn 8051 assemblerleri ile birlikte gelir. En son kan Windows-temelli assemblerlar 2. admdan 4. adma kadar yaplanlar tek adm altnda birletirmitir.
8051 ASSEMBLY PROGRAMLAMA
Bir 8051 Programn Assembler ile Derleyip altrmak
Program Oluturma Admlar ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8051 ASSEMBLY PROGRAMLAMA
Bir 8051 Programn Assembler ile Derleyip altrmak
lst Dosyas ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Seime bal olan lst (liste) dosyas kullanc iin ok kullanldr. Btn ilem kodlar (opcode) ve adresleri ve hatta Assemblerin yakalad hatalar da listeler. Kullanc (programc) hata ayklama veya sentaks hatalarn bulmak iin liste dosyasn kullanr.
8051 ASSEMBLY PROGRAMLAMA
Bir 8051 Programn Assembler ile Derleyip altrmak
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
PROGRAM SAYACI VE ROM ALANI
Program Sayac ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Program sayac icra edilecek sonraki komutun adresini gsterir. CPU ROMprogram belleinden ilem kodunu (opcode) alrken program sayac artarak sonraki komutun yerini gsterir. Program sayac 16 bitliktir. Bunun anlam CPU 0000 ile FFFFH program adresleri arasndaki toplam 64 K baytlk kod adresine ulaabiliyor demektir.
PROGRAM SAYACI VE ROM ALANI
Devreye Besleme Gerilimi Veriliyor ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8051 ailesinin btn yeleri gerilim verildiinde 0000 bellek adresinden balarlar. Program sayac 0000 deerindedir. 8051 boot olduunda ilk komutu iin bakt adres 0000H olduundan ilk ilem kodu (opcode) ROM bellekte bu adrese yazlr. Kaynak programnda bu ORG ifadesi (terimi) (statement) ile belirtilir.
PROGRAM SAYACI VE ROM ALANI
ROM Bellee Kodu Yazma ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Liste dosyasn inceleyin ve kodun ROM bellekte nasl yeraldn grn
PROGRAM SAYACI VE ROM ALANI
ROM Bellee Kodu Yazma ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Program ROM bellee yazldktan sonra, ilem kodu ve operand ROM bellekte 0000 dan balayarak yerlemi olur.
PROGRAM SAYACI VE ROM ALANI
Programn cra Edilmesi ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8051 e gerilim uyguladktan sonraki eylemlerin adm adm aklamas: 1. 8051 e gerilim verildiinde program Sayac (PC) 0000 adresinden balar ve ilk ilem kodunu ROM bellein 0000 adresinden alr. 7D ilem kodunu icra ederken CPU 25 deerini alr ve bunu R5 kaytsna yazar. Bir komut bitmitir ve imdi PC bir artarak ilem kodu 7F yi ieren 0002 adresini iaret eder. 2. 7F ilem kodu icra edilirken34H deeri R7 kaytsna tanr. PC (program sayac) 0004 deerine arttrlr.
PROGRAM SAYACI VE ROM ALANI
Programn cra Edilmesi ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
(devam) 3. 0004 adresindeki komut icra edilir. imdi PC = 0006 deerini alr. 4. 0006 adresindeki 1-Baytlk komut icra edildikten sonra PC =0007 olur. 5. 0007 adresindeki 1-Baytlk komut icra edilirken PC = 0008 saysna arttrlr. Bu sre btn komutlar alnp ilenene kadar devam eder. Aslnda bir sonra ilenecek komutu gsteren program sayac baz mikroilemciler iin komut iaretisi olarak adlandrlr
PROGRAM SAYACI VE ROM ALANI
8051 Ailesinde ROM Bellek Haritas ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8051 ailesinin hibir yesi 64K bayttan fazla ilem koduna ulaamaz. Program sayac 16-bitlik bir kaytdr.
8051 VER TPLER VE YNERGELER
Veri Tipleri ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8051 mikroilemcide sadece 8-bitlik veri tipleri mevcuttur. Her kayt (register) 8-bit uzunluundadr. Programcnn ii 8 bitten daha uzun verileri 8 bitlik verilere blerek ilemektir (00 ila FFH veya 0 ila 255 ondalk) Veri tipleri pozitif veya negatif olabilir.
8051 VER TPLER VE YNERGELER
Assembler Ynergeleri (Directives) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
DB ynergesi assembler iinde en ok kullanlan veri ynergesidir. 8-bitlik veriyi tanmlamak iin kullanlr. Veriyi tanmlamak iin DB kullanldnda saylar ondalk, ikili, onaltl ve ASCII formatnda olabilir.
8051 VER TPLER VE YNERGELER
Assembler Ynergeleri (devam) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ORG (orijin, kken) ORG ynergesi balang adresini belirtmek iin kullanlr, ORG ynergesinden sonra gelen say onaltl (hex) veya ondalk (decimal) olabilir. Say sonunda H harfi yoksa ondalktr ve assembler bu sayy onaltla evirir. END Bu ynerge assembler kaynak (asm) dosyasnn sonunu belirler. END ynergesi 8051 programnn son satrdr. Bunun anlam END ynergesinden sonra gelen herhangi bir kod geersizdir.
8051 VER TPLER VE YNERGELER
Assembler Ynergeleri (devam) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
EQU (equate) (atama) Bu ynerge bellekte bir yer igal etmeyen bir sabiti tanmlar. EQU ynergesi bellekte bir veri parasna yer ayrmaz ancak sabit deeri bir veri etiketi ile ilikilendirir. Etiket programda belirdiinde sabit deer etiketin yerini alr.
8051 VER TPLER VE YNERGELER
Assembler Ynergeleri (devam) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
EQU Program iinde eitli noktalarda kullanlacak bir sabit olsun ve programcda bunun deerini deitirmek istesin EQU ynergesi kullanlrken bir kere deitirildiinde assembler her seferinde onu deitirir.
BAYRAK BTLER VE PSW KAYITISI
Program Durum Kelimesi (Word) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Bayrak kayts olarak ta anlan program durum kayts (PSW) 8-bitlik bir kaytdr. Sadece 6 biti kullanlr Bunlardan drd CY (carry, elde biti), AC (auxiliary carry, yardmc elde biti) ve OV (overflow, tama biti) Bunlar komut icra edilmesi sonucunda oluan baz durumlar gsterdiinden koullu bayraklar olarak ta isimlendirilir. PSW3 ve PSW4 bitleri RS0 ve RS1 olarak tasarlanmtr ve kayt kmesini (register bank) semek iin kullanlr. Geriye kalan iki bit kullanc tarafndan tanmlanabilir.
BAYRAK BTLER VE PSW KAYITISI
Program Durum Kelimesi (Word)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
CY PSW.7 Elde (tama) bayra (biti) Carry flag AC PSW.6 Yardmc elde bayra Auxiliary carry flag F0 PSW.5 Genel kullanma ak bit General purpose bit RS1 PSW.4 Kayt kmesi seim biti 1 Register bank sel.1 RS0 PSW.3 Kayt kmesi seim biti 1 Register bank sel.0 OV PSW.2 Tama bayra Overflow flag -- PSW.1 Genel kullanma ak bit General purpose bit P PSW.0 Parite bayra Parity flag Akmlatrdeki 1 lerin says tek ise bu bit 1 dir CY AC F0 RS1 RS0 OV -- P D3 den D4 e Y. Elde bayra D7 den oluan Elde bayra RS1 RS0 Kayt Kmesi Adres 0 0 0 00H - 07H 0 1 1 08H - 0FH 1 0 2 10H - 17H 1 1 3 18H - 1FH PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0
BAYRAK BTLER VE PSW KAYITISI
Bayrak Bitlerine Etki Eden Komutlar ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Bayrak Bitlerine Etki Eden Komutlar
BAYRAK BTLER VE PSW KAYITISI
ADD (topla) Komutu ve PSW ELN3104 MKROLEMCLER r. Gr. Bayezit DRM rnek 2-2: Aadaki komut ile 38H ve 2FH saylar toplandktan sonra CY, AC, ve P bayraklarnn durumunu gsteriniz. MOV A, #38H ADD A, #2FH ;toplamadan sonra A=67H, CY=0 zm: 38 00111000 + 2F 00101111 67 01100111 CY = 0 D7 bitinden sonra elde olmadndan sfrdr. AC = 1 D3 - > D4 arasnda elde olduu iin 1 dir. P = 1 Akmlatrdeki 1 lerin says tek olduundan (5 tane 1 var) 1 dir. EdSim51DI kullanarak, komutlar assembler de yazp koturarak sonular dorulaynz. (ADD-PSW.asm) Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ADD komutundan etkilenen bayraklar CY, P, AC ve OV dir xx
BAYRAK BTLER VE PSW KAYITISI
ADD (topla) Komutu ve PSW ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 2-3: Aadaki komut ile 9CH ve 64H saylar toplandktan sonra CY, AC, ve P bayraklarnn durumunu gsteriniz. MOV A, #9CH ADD A, #64H ;toplamadan sonra A=00H, CY=1 zm: 9C 10011100 + 64 01100100 1 00 00000000 CY = 1 D7 bitinden sonra elde olduundan 1 dir. AC = 1 D3 - > D4 arasnda elde olduu iin 1 dir. P = 0 Akmlatrdeki 1 lerin says ift olduundan (0 tane 1 var) 0 dir. EdSim51DI kullanarak, komutlar assembler de yazp koturarak sonular dorulaynz. (ADD-PSW.asm)
BAYRAK BTLER VE PSW KAYITISI
ADD (topla) Komutu ve PSW ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 2-4: Aadaki komut ile 88H ve 93H saylar toplandktan sonra CY, AC, ve P bayraklarnn durumunu gsteriniz. MOV A, #88H ADD A, #93H ;toplamadan sonra A=1BH, CY=1 zm: 88 10001000 + 93 10010011 1 1B 00011011 CY = 1 D7 bitinden sonra elde olduundan 1 dir. AC = 0 D3 - > D4 arasnda elde olmad iin 0 dir. P = 0 Akmlatrdeki 1 lerin says ift olduundan (4 tane 1 var) 0 dir. EdSim51DI kullanarak, komutlar assembler de yazp koturarak sonular dorulaynz. (ADD-PSW.asm)
BAYRAK BTLER VE PSW KAYITISI
ADD (topla) Komutu ve PSW ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
KAYITI KMELER VE YIIN
RAM Bellek Alan Yerleimi ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8051 iinde 128 baytlk bir RAM bellek mevcuttur. Bu alana atanan adresler 00H dan 7Fh ya kadardr. 128 baytlk bu alan farkl gruba blnmtr: 1. 00H 1F aras 32 bayttr ve kayt kmeleri ile yna ayrlmtr. 2. 20H 2FH arasndaki 16 baytlk alan, bit olarak adreslenebilen oku/yaz (read write = R/W) bellek olarak ayrlmtr. 3. 30H 7FH arasndaki 80 baytlk alan da yazboz tahtas (scratch pad) adyla oku/yaz (R/W) bellek olarak ayrlmtr.
8051 KAYITI KMELER VE YIIN
RAM Bellek Alan Yerleimi ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8051 KAYITI KMELER VE YIIN
RAM Bellek Alan Yerleimi ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8051 KAYITI KMELER VE YIIN
Kayt Kmeleri (Registry Bank) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Bu 32 baytlk alan her biri R0 dan R7 ye 8 kayt ieren 4 kmeye ayrlmtr. 0 ile 7 arasndaki RAM blgesi R0 R7 yi ieren kme 0 iin ayrlmtr. RAM bellein 00H adresi R0 kaytsna , 01H adresi R1 kaytsna,, 07H adresi R7 iin ayrlmtr. Operand olarak Bu RAM alanlarn 00H, 01H,,07H adresleri yerine R0, R1,,R7 eklinde adlandrmak daha kolaydr. 8051 enerjilendiinde kayt kmesi 0 varsaylan (default) kayt kmesidir.
8051 KAYITI KMELER VE YIIN
Kayt Kmeleri (Registry Bank) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Kayt kmeleri ve RAM adresleri
8051 KAYITI KMELER VE YIIN
Kayt Kmeleri (Registry Bank) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Dier kayt kmeleri PSW kaytsn kullanarak seilebilir. PSW.4 ve PSW.3 bitleri kullanlarak istenilen kayt kmesi seilebilir. Bit adresleyebilen SETB ve CLR komutlar ile PSW.4 ve PSW.3 bitleri set ve reset edilerek istenilen kme seilir.
8051 KAYITI KMELER VE YIIN
Kayt Kmeleri (Registry Bank) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 2-5:
MOV R0, #99H ;R0 kaytsn 99H ile ykle MOV R1, #85H ;R1 kaytsn 85H ile ykle rnek 2-6:
MOV 00, #99H ;00 RAM adresini 99H ile ykle MOV 01, #85H ;01 RAM adresini 85H ile ykle
rnek 2-6:
SET PSW.4 ;Kme 2 yi se MOV R0, #99H ;R0 kaytsn 99H ile ykle MOV R1, #85H ;R1 kaytsn 85H ile ykle
EdSim51DI kullanarak, komutlar assembler de yazp koturarak sonular dorulaynz. (PSW-REG.asm)
8051 KAYITI KMELER VE YIIN
Yn (Stack) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Yn CPU nun geici olarak bilgi saklad RAM bellek alandr. Bu bilgi veri veya adres olabilir. Yn adresine ulamak iin kullanlan kaytya Yn aretisi SP (stack pointer) denir. 8051 yn iaretisi sadece 8 bit uzunluundadr. 00H dan FFH ya kadar deer alabilir demektir. 8051 enerjilendiinde yn iaretisi SP 07H deerini ierir. RAM 08H alan 8051 tarafndan yn kayts iin kullanlacak ilk baytn adresidir.
8051 KAYITI KMELER VE YIIN
Yn (Stack) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
CPU nun bir kaytsn yn iinde saklamak iin yaplan ileme PUSH (itme) ad verilir. SP, ynn en son kullanlan adresini gsterir. Yn zerine veri itme ilemi (data push) yapldka SP bir arttrlr. Bu alma ekli ou mikroilemcilerden farkldr. Ynn ieriini CPU ya geri ykleme ilemi POP (kartma) ad verilir. Her pop ilemiyle ynn en stndeki bayt komutla belirlenen kaytya alnr ve yn iaretisi bir azaltlr.
8051 KAYITI KMELER VE YIIN
Yna tme (Pushing to Stack) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 2-8:
Aadaki rnekte yn ve yn iaretisini gsteriniz. Varsaylan yn kullannz. MOV R6, #25H MOV R1, #12H MOV R4, #0F3H PUSH 6 PUSH 1 PUSH 4 zm:
8051 KAYITI KMELER VE YIIN
Yndan karma (Popping from Stack) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Push_Pop.asm Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 2-9:
Yn inceleyiniz, aadaki komutlar icra edildikten sonra kayt ve SP ieriini gsteriniz. Btn deerler onaltldr (hex).
POP 3 ;Yndan kar, R3 e ykle POP 5 ;Yndan kar, R5 e ykle POP 2 ;Yndan kar, R2 ye ykle
zm: 20-2FH adresleri bit adreslenebilen bellek blgeleri olduundan MOV SP, #XX komutunu kullanarak SP yi bunun dnda dier RAM blgelerine gnderebiliriz.
8051 KAYITI KMELER VE YIIN
CALL Komutu ve Yn (Stack) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
CPU CALL komutunun hemen altndaki komutun adresini saklamak iin yn kullanr. Bu CPU nun arlan alt programdan geriye dnerken nereden devam edeceini bilmesi iin gereklidir.
8051 KAYITI KMELER VE YIIN
Yn aretisini Bir Arttrmak (Incrementing Stack Pointer) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
SP yi PUSH komutundan sonra bir attrmann nedeni udur: Ynn RAM blgesi 7FH ya aadan yukarya doru ilerlediine emin olmak (artan adres). Ynn RAM tabanna erimediine ve yn alannn tkenmemesini garantiye almak. Eer yn iaretisi push dan sonra azaltlsayd o zaman kme 0 a ait R7-R0 varsaylan kaytlara ait RAM 7, 6, 5, vb. blgelerini kullanm olurduk.
8051 KAYITI KMELER VE YIIN
Kme 1 ve Yn akmas (Stack and Bank 1 Conflict) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8051 enerjilendiinde kayt kmesi 1 ve yn ayni bellek alann kullanr. Yn RAM bellein baka bir blgesine yerletirebiliriz.
8051 KAYITI KMELER VE YIIN
Kme 1 ve Yn akmas (Stack and Bank 1 Conflict) ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 2-10:
Yn inceleyiniz, aadaki komutlar icra edildikten sonra kayt ve SP ieriini gsteriniz. Btn deerler onaltldr (hex). MOV SP, #5FH ;ilk yn RAM adresini 60H yap MOV R2, #25H MOV R1, #12H MOV R4, #0F3H PUSH 2 PUSH 1 PUSH 4 zm:
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
JUMP, LOOP VE CALL KOMUTLARI
DNG VE SIRAMA KOMUTLARI (LOOP AND JUMP INSTRUCTIONS)
Dng (Looping)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Komutlar dizisinin belirli bir sayda tekrarna dng denir. Dng eylemi aadaki komut tarafndan icra edilir: DJNZ kayt, Etiket Kayt bir azaltlr Sfr deilse, etiket tarafndan gsterilen hedef adrese srar Dng balamadan nce kayt (saya) tekrar says ile yklenir. Saya R0 R7 veya herhangi bir RAM adresi olabilir. R2 FFH olduunda en fazla 255 dng yaplr
DNG VE SIRAMA KOMUTLARI (LOOP AND JUMP INSTRUCTIONS)
Yuvalanm Dng (Nested Loop)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Eer 256 dan fazla dng yaplmas istenirse, yuvalanm dng denilen, dng iinde dng kullanlr. Sayma ilemi iin birden fazla kayt kullanrz.
Akmlatr 55H deeri ile ykleyen ve bunun eleniini 700 kere alan bir program yaznz.
MOV A, #55H ;A=55H MOV R3, #10 ;R3=10, d dng says YEN: MOV R2, #70 ;R2=70, i dng says TEKR: CPL A ; A nn tmleyenini al DJNZ R2, TEKR ;70 defa tekrarla DJNZ R3, YEN
DNG VE SIRAMA KOMUTLARI (LOOP AND JUMP INSTRUCTIONS)
artl Sra (Conditional Jump)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Sadece belirli artlar olutuunda sra komutu icra edilir. JZ Etiket ;A=0 ise sra
DNG VE SIRAMA KOMUTLARI (LOOP AND JUMP INSTRUCTIONS)
artl Sra (Conditional Jump)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
(devam) JNC Etiket ;elde yoksa sra CY=0 CY=0 ise CPU Etiket ile gsterilen adresten veriyi alr. CY=1 ise etikete dallanmaz (sramaz) ama JNC komutundan hemen sonraki komutu icra eder.
DNG VE SIRAMA KOMUTLARI (LOOP AND JUMP INSTRUCTIONS)
artl Sra (Conditional Jump)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Btn artl srama (dallanma) komutlar ksa srama komutlardr. Hedef adresi program sayac ieriinin -128 ila + 127 bayt tesine kadardr.
DNG VE SIRAMA KOMUTLARI (LOOP AND JUMP INSTRUCTIONS)
artsz Sra (Unconditional Jump)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
artsz srama komutu icra edildii anda herhangi bir art aranmadan hedef adrese dallanlr. LJMP ;uzun sra 3-baytlk bir komuttur. lk bayt ilem kodudur (opcode). kinci ve nc baytlar 16 bit hedef adresini gsterir. 0000 dan FFFFH ya kadar herhangi bir bellek adresi SJMP ;ksa sra 2-baytlk bir komuttur. lk bayt ilem kodudur. kinci bayt hedefin bal adresidir. 00 dan FFH ya kadar (PC ieriinden artan ynde +127 ve azalan ynde -128 bayt tesine kadar).
DNG VE SIRAMA KOMUTLARI (LOOP AND JUMP INSTRUCTIONS)
Ksa Srama Adresinin Hesaplanmas (Calculating Short Jump Adres)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Ksa srama hedef adresini hesaplamak iin kinci bayt, sra komutunun hemen altndaki adresi gsteren program sayacna eklenir (toplanr). Hedef adresi ksa sra komutunun hemen altndaki adresten -128 veya +127 bayt daha uzakta ise, Assembler sramann snr dnda (out of range) olduuna ilikin bir hata verir.
DNG VE SIRAMA KOMUTLARI (LOOP AND JUMP INSTRUCTIONS)
Ksa Srama Adresinin Hesaplanmas (Calculating Short Jump Adres)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ARI KOMUTLARI (CALL INSTRUCTIONS)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ar komutu (call instruction) alt programlar armakta kullanlr. Alt programlar ska icra edilmesi gereken grevlerin yerine getirilmesi iin kullanlr. Bu ekildeki yapsal programlama bellekten kazan salar. LCALL ;uzak ar(long call) 3-baytlk komuttur. lk bayt ilem kodudur. kinci ve nc baytlar hedef altprogramn adresi iin kullanlr. Alt program 64K lk adres alannn herhangi bir yerinde bulunabilir. ACALL ;mutlak ar (absolute call) 2-baytlk komuttur. 2K-baytlk alan iinde adress iin 11 bit kullanlr.
ARI KOMUTLARI (CALL INSTRUCTIONS)
LCALL ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Bir alt program arldnda programn kontrol bu alt programdadr. CPU, LCALL komutundan hemen sonraki adresi yna saklar ve Alt programn balad yeni adresten komutlar almaya balar. Alt programn icras bitirildiinde RET komutu ile programn kontrol ana programa dner Bunun iin yndaki adres yndan karlr ve program sayacna yklenir. Her alt programn en son satr RET (return) komutu ile biter
ARI KOMUTLARI (CALL INSTRUCTIONS)
LCALL ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ARI KOMUTLARI (CALL INSTRUCTIONS)
LCALL ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ORG 0 BACK: MOV A, #55H ;Aya 55H ykle MOV P1, A ;Port1e 55H gnder LCALL DELAY ;gecikme sresi MOV A, #0AAH ;Aya AAH ykle MOV P1, A ;Port1e AAH gnder LCALL DELAY ; SJMP BACK ;Bunu sonsuza kadar yap
;------------------- Bu bir zamanlama (delay) altprogramdr --------------------- ORG 300H ; Altprogram 300H adresinde DELAY: MOV R5, #0FFH ;R5=255 yaz AGAIN: DJNZ R5, AGAIN ;R5 sfr olana kadar say RET ;sonra ana programa dn END Gecikme sresinin deeri 8051 saat frekansna baldr DELAY altprogram arlrken hemen alt sradaki MOV A, #0AAH komutuna ait adres yna itilir ve CPU program icraya 300H adresinden devam eder R5 sfr olduunda RET komutu ilenir ve yndaki adres kartlp program sayacna yazlr ve ana programda kalnan yerden devam edilir Sayc olarak kullanlan R5 kaytsna FFH yazlr, dng 255 defa yaplr
ARI KOMUTLARI (CALL INSTRUCTIONS)
CALL Komutu ve Yn ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ARI KOMUTLARI (CALL INSTRUCTIONS)
PUSH/POP Komutlarnn Altprogramda Kullanlmas ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ARI KOMUTLARI (CALL INSTRUCTIONS)
Altprogramlar arma ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ARI KOMUTLARI (CALL INSTRUCTIONS)
ACALL ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ACALL komutu ile LCALL komutu arasndaki yegane fark LCALL komutundaki hedef adres 64K baytlk adres alannda herhangi bir yerde olabilir. ACALL komutundaki hedef adres 2K baytlk bir alan iinde olmak zorundadr LCALL yerine ACALL komutu kullanlmas program kodunun yazld ROM alannda yer kazanlmasn salar
ARI KOMUTLARI (CALL INSTRUCTIONS)
ACALL ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ETL 8051 PLER N GECKME SRES (TIME DELAY FOR VARIOUS 8051 CHIPS)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
CPUnun icra ettii komut belirli sayda saat evrimini (periyodunu) kullanr. Bunlara makine evrimi ad verilir. Makine evrimlerinin uzunluu 8051 osilatrne bal kristal frekansna baldr. Orijinal 8051 de bir makine evrimi 12 osilatr periyodu boyunca srer. 11.0592 MHz kristal frekans iin bir makine evrim periyodunu bulunuz.
zm: 11.0592 / 12 = 921.6 kHz Makine evrim periyodu ise 1 / 921.6 = 1.085 s
ETL 8051 PLER N GECKME SRES (TIME DELAY FOR VARIOUS 8051 CHIPS)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ETL 8051 PLER N GECKME SRES (TIME DELAY FOR VARIOUS 8051 CHIPS)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ETL 8051 PLER N GECKME SRES (TIME DELAY FOR VARIOUS 8051 CHIPS)
NOP Komutu Kullanarak Gecikme Sresini Arttrma ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ETL 8051 PLER N GECKME SRES
Yuvalanm NOP Komutu Kullanarak Gecikme Sresini Arttrma
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ETL 8051 PLER N GECKME SRES
Dier 8051 ler iin gecikme sresi hesab
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Gecikme sresinin doruluuna iki etkenin etkisi vardr: Kristal frekans, Makine evriminin periyod aral kristal frekansnn fonksiyonudur. 8051 tasarm, Orijinal makine evrim sresi 12 saat darbesine ayarlanmt. Entegre devre teknolojisi ve CPU tasarmndaki ilerlemeler makine evrimini 1-saat darbesine indirdi. Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ETL 8051 PLER N GECKME SRES
Dier 8051 ler iin gecikme sresi hesab
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ETL 8051 PLER N GECKME SRES
Dier 8051 ler iin gecikme sresi hesab
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
G/ KAPILARINI PROGRAMLAMA
G/ PROGRAMLAMA (I/O PROGRAMMING)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8051 u diyagram (pin diagram) +Vcc = + 5V besleme ucu Her biri 8-bit olan drt adet P0, P1, P2, P3 portlar toplam 32 u (pin) ile d ortama alr Toprak ucu 0V
G/ PROGRAMLAMA (I/O PROGRAMMING)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Drt adet (P0, P1, P2, P3) G/ portunun her biri 8-bitliktir. RESET olunca btn portlar giri olarak konfigre edilir (yaplandrlr), giri olarak kullanmaya hazr hale gelir. Porta nce 0 yazlrsa port k olarak yaplandrlm olur. Tekrar giri olarak yaplandrmak iin porta 1 gnderilmelidir. Bu portlardan herhangi birini giri portu olarak kullanabilmek iin port program ile yaplandrlmaldr.
G/ PROGRAMLAMA (I/O PROGRAMMING)
Port 0
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Port 0 giri veya k olarak kullanlabilir. Her u (pin) 10 k luk direnle +Vcc gerilimine balanmaldr (pull-up). P0 portu dierlerinin aksine ak savakldr (open drain). Ak savak mosfet devresi iin kullanlan bir terimdir. Ayni ekilde bipolar tranzistor iin ak kollektr terimi kullanlr.
G/ PROGRAMLAMA (I/O PROGRAMMING)
Port 0
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Aada yazl program kodu Port 0 a artarda 55H ve AAH deerlerini gnderir. Program yazlp hata vermeden assemble edilebilmesi iin DELAY altprogramnn da editrde yazlmas gereklidir. DELAY altprogramnn belli bir adrese yerletirilmesi iin ORG ynergesi (direktifi) kullanlarak altprogram balang adresi iaretlenmelidir.
G/ PROGRAMLAMA (I/O PROGRAMMING)
Giri Olarak Port 0
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Port 0 ularn giri yapmak iin btn bitlerine 1 yazlmas gereklidir.
G/ PROGRAMLAMA (I/O PROGRAMMING)
Port 0 n Adres Portu olarak da Kullanm
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Port 0 ayrca adres ve veri portu olarak da tasarlanmtr. 8051/31 bir harici bellee balanacak olursa Port 0 hem adres hem de veriyi yolunu salar.
G/ PROGRAMLAMA (I/O PROGRAMMING)
Port 1
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Port 1 de hem giri hem de k olarak kullanlabilir. Port 0 a karlk bu porta herhangi bir pull-up direnci balanmasna gerek yoktur, nk bu direnler entegre iinde baldr. Reset olunca Port 1 giri portu olarak yaplandrlr. Aadaki program kodu Port 1 e artarda 55H ve AAH deerlerini gnderir.
MOV A, #55H BACK: MOV P1, A ACALL DELAY CPL A SJMP BACK
Program code Port1_55_AA.asm
G/ PROGRAMLAMA (I/O PROGRAMMING)
Giri Olarak Port 1
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Port 1 i giri portu yapmak iin btn bitlerine 1 yazlmaldr.
G/ PROGRAMLAMA (I/O PROGRAMMING)
Port 2
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Port 2 giri veya k olarak kullanlabilir. Ayni P1 portunda olduu gibi P2 de entegre iinde mevcut olduundan pull-up direnleri gerektirmez. Reset uygulandktan sonra Port 2 giri olarak yaplandrlm olur.
G/ PROGRAMLAMA (I/O PROGRAMMING)
Port 2 nin ift Fonksiyonu
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Port 2 yi giri portu olarak yaplandrmak iin btn bitlerine 1 yazmak yeterlidir. ou 8051 tabanl sistemlerde P2 basit G/ portu olarak kullanlr. 8031 tabanl sistemlerde P2, P1 ile birlikte harici bellek iin 16-bitlik adres yolu olarak kullanlmak zorundadr. Port 2, A8 A15 olarak ift fonksiyonlu olarak tasarlanmtr. Port 0 adres yolunun dk 8-bitlik A0 A7 adres bitlerini salar.
G/ PROGRAMLAMA (I/O PROGRAMMING)
Port 3
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Port 3 giri veya k olarak kullanlr. Port 3, pull-up direnleri gerektirmez. Port 3, reset uygulandktan sonra giri olarak yaplanr. Reset kullanarak portu giri yapmak genel olarak tercih edilen bir yol deildir.
G/ PROGRAMLAMA (I/O PROGRAMMING)
Port 3
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Port 3, ilave fonksiyonlar ile baz ok nemli iaretleri salar.
G/ PROGRAMLAMA (I/O PROGRAMMING)
Port 3
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
DSC89C420 iin P0, P1, P2 nin tm bitlerini her saniyede tersini alan program yaznz.
G/ PROGRAMLAMA (I/O PROGRAMMING)
Tm 8-bite Ulamann Farkl Yollar
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
G/ BTLERN PROGRAMLAMA (I/O BIT MANIPULATION PROGRAMMING)
G/ Portlar ve Bit Olarak Adresleme
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Baz durumlarda portun sadece 1 veya 2 bitine ulalmak istenir.
G/ BTLERN PROGRAMLAMA (I/O BIT MANIPULATION PROGRAMMING)
G/ Portlar ve Bit Olarak Adresleme
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Square_P1_0.asm Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 4-2: %50 darbe/periyot oran (duty cycle) olan kare dalgay port 1 bit 0 knda retiniz. zm: %50 darbe/periyot oran demek darbe sresi boluk sresine eit demektir. Bu nedenle P1.0 biti ayni gecikme sresi ile artarda 1 ve 0 yaplacak (toggle) demektir. LBL1: SETB P1.0 ;P1.0 1 yaplr LCALL DELAY ;DELAY altproramn ar CLR P1.0 ;P1.0 = 0 LCALL DELAY SJMP LBL1 ;ayni ii srekli yap Bu program yazmann dier bir yolu: LBL1: CPL P1.0 ;P1.0 bitinin tmleyeni LCALL DELAY ;altprogram ar SJMP LBL1 ;ayni ii srekli yap
G/ BTLERN PROGRAMLAMA (I/O BIT MANIPULATION PROGRAMMING)
G/ Portlar ve Bit Olarak Adresleme
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Bit ilemleri iin kullanlan komutlar aadadr:
Komut Fonksiyon SETB bit Biti kur (bit = 1) CLR bit Biti sfrla (bir = 0) CPL bit Bitin tmleyeni (bit = bitin deili) JB bit, hedef Bit=1 ise hedefe sra JNB bit, hedef Bit=0 ise hedefe sra JBC bit, hedef Bit=1 ise hedefe sra ve biti sfrla Tek Bitlik Komutlar
G/ BTLERN PROGRAMLAMA (I/O BIT MANIPULATION PROGRAMMING)
Giri Bitini Yoklamak (Checking an Input Bit)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
JNB ve JB komutlar tek bitlik komutlar iinde ok kullanlr. Bitin deerinin 0 veya 1 olmasna bal olarak karar verme imkan salar Bu iki komut P0, P1, P2 ve P3 G/ portlarnn herhangi bir biti iin kullanlabilir. Port 3 tipik olarak bit olsun bayt olsun herhangi bir G/ iin kullanlmaz
G/ BTLERN PROGRAMLAMA (I/O BIT MANIPULATION PROGRAMMING)
Giri Bitini Yoklamak (Checking an Input Bit)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 4-3:
Aadakileri icra eden bir program yaznz: a) P1.2 bitini 1 oluncaya kadar izle b) P1.2 1 olduunda 45H deerini port 0 a yaz c) P2.3 bitini 1 den 0 a deitir.
zm:
SETB P1.2 ;P1.2 yi giri yap MOV A, #45H ;A=45H AGAIN: JNB P1.2, AGAIN ;P1.2 1 olunca MOV P0, A ;A y P0 a yaz SETB P2.3 ;P2.3 e 1 yaz CLR P2.3 ;P2.3 e 0 yaz
G/ BTLERN PROGRAMLAMA (I/O BIT MANIPULATION PROGRAMMING)
Giri Bitini Yoklamak (Checking an Input Bit)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 4-4: P2.3 bitinin giri olduunu ve bir frnn durumunu gsterdiini varsayalm. Bu biti srekli gzleyelim ve 1 olursa frnn scak olduunu belirtsin. 1 olursa bir sesli uyar iin port P1.5 i 1 den 0 a drsn.
zm:
HERE: JNB P2.3, HERE ;biti 1 iin izle SETB P1.5 ;P1.5=1 yap CLR P1.5 ;P1.5 i sfr yap SJMP HERE ;Bu dngy tekrarla
G/ BTLERN PROGRAMLAMA (I/O BIT MANIPULATION PROGRAMMING)
Giri Bitini Yoklamak (Checking an Input Bit)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 4-5:
zm: SETB P1.7 ;P1.7 yi giri yap AGAIN: JB P1.2, OVER ;P1.7=1 ise sra MOV P2, #N ;SW=0 ise P2 ye N yaz SJMP AGAIN ;Yoklamaya devam et OVER: MOV P2 #Y ;SW=1 ise P2 ye Y yaz SJMP AGAIN ;Yoklamaya devam et
G/ BTLERN PROGRAMLAMA (I/O BIT MANIPULATION PROGRAMMING)
Biti Okuyup Elde Bayrana Yazmak (Reading Single Bit into Carry Flag)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 4-6: P1.7 ucuna bir anahtar baldr. Bu SW anahtarnn durumunu yoklayan ve aadakileri gerekleyen bir program yaznz. a) Eer SW=0 ise P2 ye N harfini gnder b) Eer SW=1 ise P2 ye Y harfini gnder Elde bayran anahtarn durumunu yoklamak iin kullan.
zm: SETB P1.7 ;P1.7 yi giri yap AGAIN: MOV C, P1.7 ;Durumu oku JC OVER ;SW=1 ise sra MOV P2, #N ;SW=0 ise P2 ye N yaz SJMP AGAIN ;Yoklamaya devam et OVER: MOV P2 #Y ;SW=1 ise P2 ye Y yaz SJMP AGAIN ;Yoklamaya devam et
G/ BTLERN PROGRAMLAMA (I/O BIT MANIPULATION PROGRAMMING)
Biti Okuyup Elde Bayrana Yazmak (Reading Single Bit into Carry Flag)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 4-7 Bir anahtar pin P1.0 ye ve bir LED pin P2.7 ye baldr. Anahtarn durumunu okuyan ve bunu LED in bal olduu uca gnderen bir program yazn.
zm: SETB P1.7 ;make P1.7 an input AGAIN: MOV C, P1.0 ;read SW status into CF MOV P2.7, C ;send SW status to LED SJMP AGAIN ;keep repeating
MOV P1.0, P2.7 komutu geersizdir nk byle bir komut tanml deildir Bununla birlikte MOV P2, P1 komutu tanml ve geerlidir.
G/ BTLERN PROGRAMLAMA (I/O BIT MANIPULATION PROGRAMMING)
Port Latcha Karlk Giri Ucunu Okuma (Reading Input Pins vs. Port Latch)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Portu okuma Baz komutlar port ularnn durumlarn okumak iin kullanlr. Dierleri de ierideki port kaytsnn (latch) durumunu okumak iin kullanlr. Bu nedenle port okumak iin iki tr imkan vardr: Giri ucunun durumunu okumak k portunun ierideki kaytsnn durumunu okumak zellikle d donanm gz nne alndnda, bunlar kartrmak 8051 programlarken yaplan nemli hata kaynaklarndan biridir.
PORT KAYITISI VE GR ULARINI OKUMA (READING INPUT PINS VS. PORT LATCH)
k Portu Kaytsn Okumak (Reading Latch for Output Port)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Baz komutlar d ularn yerine ierideki port kaytsnn durumunu okurlar. rnein, ANL P1, A komutunun ne ekilde ilendiine bakalm: 1. Komut i kayty okur ve veriyi CPU (MB) ya getirir. 2. Bu veri A akmlatrnn ierii ile AND ilemine tabi tutulur. 3. Sonu port kaytsna geri yazlr. 4. Port ularna ait durum deiir ve port kaytsnn ieriindeki deer port ularna yazlm olur.
PORT KAYITISI VE GR ULARINI OKUMA (READING INPUT PINS VS. PORT LATCH)
k Portu Kaytsn Okumak (Reading Latch for Output Port)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Yaz Deitir Oku Komut port kaytsndan deeri okur, bir ilem gerekletirir sonra bunu porta geri yazar.
G/ BTLERN PROGRAMLAMA (I/O BIT MANIPULATION PROGRAMMING)
Oku Deitir Yaz zellii (Read Modify Write Feature)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
8051 in portlarna Yaz Deitir Oku teknii ile ulalabilir. Bu zellik eylemi de tek bir komutla yerine getirdiinden kod yazmnda satrlarn azalmasn salar. 1. Portu okuma 2. Okunan deeri deitirmek 3. Sonucu porta geri yazmak
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ADRESLEME MODLARI
ADRESLEME MODLARI (ADDRESSING MODES)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
CPU veriye adresleme modlar olarak adlandrlan eitli ekillerde ular: Annda adresleme(immediate) Kayt ile adresleme Dorudan adresleme Kayt zerinden dolayl adresleme Dizinli adresleme (indexed addressing) Bellee ulama
ANINDA ADRESLEME MODU (IMMEDIATE ADRESSING MODE)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Kaynak operand bir sabit deerdir. Annda veri nnde bir # (kare, hash) iareti ile betimlenir. 16-bitlik DPTR kayts dahil herhangi bir kaytya bu bilgi yklenebilir. DPTR kaytsna 8-bitlik kaytlar eklinde ulalabilir. Anlaml bayt DPH ve anlamsz bayt DPL dir.
ANINDA ADRESLEME MODU (IMMEDIATE ADRESSING MODE)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
KAYITI LE ADRESLEME MODU (REGISTER ADDRESSING MODE)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Kaytlar arasnda veri aktarmaya izin verilmez MOV R4, R7 geersizdir. Kaytlar ilenecek verileri saklamak iin kullanlr Hedef ve kaynak kaytlarn bit uzunluu ayni olmaldr
BELLEE ULAIM (ACCESSING MEMORY)
Dorudan Adresleme Modu (Direct Addressing Mode)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
RAM bellein 30H 7FH alanna ulamak iin sklkla dorudan adresleme modu kullanlr. RAM bellein btn 128 baytna bu ekilde ulalabilir. Kayt kmeleri alanna kayt isimleri ile ulalabilir. MOV A, 4 ;dorudan adresleme MOV A, R4 ;kayt ile adresleme Annda adresleme moduna karlk dorudan adresleme modunda operand nnde # simgesi yoktur.
MOV R0, 40H ;40H adr. eriini R0 a yaz MOV 56H, A ;A ieriini 56H adr. yaz
BELLEE ULAIM (ACCESSING MEMORY)
SFR Kaytlar ve Adresleri (SFR Registers and Their Addresses)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
SFR (zel Fonksiyon) kaytlarna bunlarn isimleri veya adresleri ile ulalabilir.
MOV 0E0H, #55H ;Bu iki komutta MOV A, #55H ;birbirinin ayndr
SFR kaytlarnn adresleri 80H ile FFH arasndaki alandadr. 80H ile FFH arasndaki btn baytlar SFR ler tarafndan kullanlmaz. Bu aralkta kullanlmayan baytlar rezerve olup 8051 programlaycs tarafndan kullanlmamaldr.
BELLEE ULAIM (ACCESSING MEMORY)
SFR Kaytlar ve Adresleri (SFR Registers and Their Addresses)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM * Bit adreslenebilir Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
BELLEE ULAIM (ACCESSING MEMORY)
SFR Kaytlar ve Adresleri (SFR Registers and Their Addresses)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
* Bit adreslenebilir
BELLEE ULAIM (ACCESSING MEMORY)
SFR Kaytlar ve Adresleri (SFR Registers and Their Addresses)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
zel Fonksiyon Kaytlar SFR (special function registers) bellek haritas
BELLEE ULAIM (ACCESSING MEMORY)
SFR Kaytlar ve Adresleri (SFR Registers and Their Addresses)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 5-1 (a) simlerini (b) adreslerini kullanarak, P1 ve P2 portlarna 55H deerini gnderecek program kodunu yaznz.
zm: (a) MOV A, #55H ;A=55H MOV P1, A ;P1=55H MOV P2, A ;P2=55H
(b) Tablo 5-1 den, P1 adresi=80H; P2 adresi=A0H
MOV A, #55H ;A=55H MOV 80H, A ;P1=55H MOV 0A0H, A ;P2=55H
BELLEE ULAIM (ACCESSING MEMORY)
Yn ve Dorudan Adresleme Modu (Stack and Direct Addressing Mode)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Yna veri atlrken veya kartlrken sadece dorudan adresleme moduna izin verilir. PUSH A geersizdir. Akmlatrn ieriini yna atmak iin PUSH 0E0H yazmak gerekir. rnek 5-2 R5 ve A y yna itecek ve sonra onlar B = A ve R2 = R5 olacak ekilde R2 ve B ye karacak program kodunu yaznz. zm: PUSH 05 ;R5 i yna it PUSH 0E0H ;Akmlatr yna it POP 0F0H ;Yn tepesini B ye kar ;imdi B = A olur POP 02 ;Yn tepesini R2 ye kar ;imdi R2=R5 olur
BELLEE ULAIM (ACCESSING MEMORY)
Kayt ile Dolayl Adresleme Modu (Register Indirect Addressing Mode)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Bir kayt veri iaretleyicisi olarak kullanlr. Sadece R0 ve R1 bu amala kullanlr. Geri kalan R2 R7 kaytlar RAM bellekteki veri adreslerini tutmak iin kullanlamazlar. R0 ve R1 de RAM bellek adresleri varsa bu kaytlarn isimlerinin nne @ simgesi konmaldr. MOV A,@R0 ;adresi R0 da olan RAM bellek ;verisini akmlatre yaz MOV @R1,B ;adresi R1 de olan RAM bellek ;ieriine B deki veriyi yaz
BELLEE ULAIM (ACCESSING MEMORY)
Kayt ile Dolayl Adresleme Modu (Register Indirect Addressing Mode)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 5-3: (a) Dorudan adresleme, (b) dngsz olarak kayt ile dolayl adresleme ile ve (c) dng kullanarak 55H deerini, 40H ve 41H RAM bellek adreslerine kopyalayan program kodunu yaznz.
zm: (a) MOV A, #55H ;load A with value 55H MOV 40H, A ;copy A to RAM location 40H MOV 41H. A ;copy A to RAM location 41H (b) MOV A, #55H ;load A with value 55H MOV R0, #40H ;load the pointer. R0=40H MOV @R0, A ;copy A to RAM R0 points to INC R0 ;increment pointer. Now R0=41h MOV @R0, A ;copy A to RAM R0 points to (c) MOV A,#55H ;A=55H MOV R0,#40H ;load pointer.R0=40H, MOV R2,#02 ;load counter, R2=3 AGAIN: MOV @R0,A ;copy 55 to RAM R0 points to INC R0 ;increment R0 pointer DJNZ R2, AGAIN ;loop until counter = zero
BELLEE ULAIM (ACCESSING MEMORY)
Kayt ile Dolayl Adresleme Modu (Register Indirect Addressing Mode)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Dorudan eriime gre dolayl eriimin avantaj daha dinamik oluudur. Dorudan adresleme modunda dng kurulamaz. rnek 5-4 RAM adresi 60H dan balayan 16 RAM alann silmek iin bir program kodu yaznz. zm: CLR A ;A=0 MOV R1, #60H ;iareti. R1=60H MOV R7, #16 ;saya, R7=16 AGAIN: MOV @R1, A ;R1 in gsterdii adresleri INC R1 ;R1 iaretisini arttrarak DJNZ R7, AGAIN ;saya=0 olana kadar sil.
BELLEE ULAIM (ACCESSING MEMORY)
Kayt ile Dolayl Adresleme Modu (Register Indirect Addressing Mode)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 5-5 35H adresinden balayan 10 baytlk bir veri blounu 60H adresinden balayarak kopyalayan program kodunu yaznz. zm: MOV R0, #35H ;kaynak iaretisi MOV R1, #60H ;hedef iaretisi MOV R3, #10 ;saya BACK: MOV A, @R0 ;kaynaktan bayt al MOV @R1, A ;hedefe kopyala INC R0 ;kaynak ia. bir arttr INC R1 ;hedef ia. bir arttr DJNZ R3, BACK ;10 bayt iin devam et
BELLEE ULAIM (ACCESSING MEMORY)
Kayt ile Dolayl Adresleme Modu (Register Indirect Addressing Mode)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
R0 ve R1 kayt ile dolayl adresleme yapmak inin kullanlabilen yegane iaretilerdir. R0 ve R1 8-bit uzunluunda olduundan bunlar kullanlarak ancak i RAM bellee ulalabilir. ip zerindeki ROM veya d RAM bellee ulam iin 16-bitlik iaretiye ihtiya vardr. Bu durumda DPTR (data pointer) veri iaretisi kullanlr.
BELLEE ULAIM (ACCESSING MEMORY)
Dizinli Adresleme Modu ve ipteki ROM Bellee Ulam (Indexed Addressing Mode and On-chip ROM Access)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Dizinli adresleme modu, program ROM belleinde yerleik bavuru (taramal) tablo veri eleman girilerine ulamak iin oka kullanlr. Bu ama iin kullanlacak komut MOVC A, @A+DPTR MOVC komutu kullanlr, C kod anlamndadr. Gerekli verinin adresini elde etmek iin akmlatr ierii 16-bit DPTR kayts ile toplanr.
BELLEE ULAIM (ACCESSING MEMORY)
Dizinli Adresleme Modu ve ipteki ROM Bellee Ulam (Indexed Addressing Mode and On-chip ROM Access)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
rnek 5-6 Bu programda 200H adresinden balayarak ROM bellee CAN yazld varsaylsn. Program da ROM bellee 0 adresinden balayarak yazlsn. Program analiz ederek CAN kelimesinin nereye yazldn belirleyiniz.
zm: ORG 0000H ;Programn ROM balang adresi 0 MOV DPTR,#200H ;DPTR=200H taramal tablo adresi CLR A ;A y sfrla (A=0) MOVC A,@A+DPTR ;kod alanndan karakteri al MOV R0,A ;R0 kaytsna sakla INC DPTR ;DPTR=201 yeni karakteri iaret eder CLR A ;A y sfrla (A=0) MOVC A,@A+DPTR ;yeni karakteri al MOV R1,A ;R1 kaytsna sakla INC DPTR ;DPTR=202 yeni karakteri iaret eder CLR A ;A y sfrla (A=0) MOVC A,@A+DPTR ; yeni karakteri al MOV R2,A ;R2 kaytsna sakla HERE: SJMP HERE ;burada kal ;Veri kod alanna 200H adresinden balayarak yazlr ORG 200H MYDATA: DB CAN END ;program sonu R0=43H R0=41H R0=4EH DPTR=200H, A=0 DPTR=200H, A=43H DPTR=201H, A=43H DPTR=201H, A=0 DPTR=201H, A=41H DPTR=202H, A=41H
BELLEE ULAIM (ACCESSING MEMORY)
Taramal Tablo (Look-up Table)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Taramal tablo sklkla kullanlan tablo elemanlarna en az ilemle ulamaya imkan tanr. rnek 5-8 P1 portundan okunan x deerinin karesini alp srekli P2 ye gnderen program kodunu yaznz.
zm: ORG 0 MOV DPTR, #300H ;LOAD TABLE ADDRESS MOV A, #0FFH ;A=FF MOV P1, A ;CONFIGURE P1 INPUT PORT BACK: MOV A, P1 ;GET X MOV A, @A+DPTR ;GET X SQUARE FROM TABLE MOV P2, A ;ISSUE IT TO P2 SJMP BACK ;KEEP DOING IT ORG 300H XSQR_TABLE: DB 0,1,4,9,16,25,36,49,64,81 END
BELLEE ULAIM (ACCESSING MEMORY)
Dizinli Adresleme Modu ve MOVX (Indexed Addressing Mode and MOVX)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
Baz uygulamalarda program kodu 64K- bayt kod alannda veri ile paylalacak bir alan brakmaz. 8051 veri saklamak iin zel olarak ikinci bir 64K-baytlk harici bellek daha kullanr. Bu veri bellek alanna harici bellek denir ve sadece MOVX komutu ile ulalabilir. 8051 toplamda 128K-baytlk bellek alanna sahiptir. 64K program kod alan, 64K veri bellek alandr. Veri bellek alan hem program kodu ve hem de veri alan olarak kullanlamaz.
BELLEE ULAIM (ACCESSING MEMORY)
Yaz-Boz Tahtas Olarak 30H-7FH RAM Bellek Alanlar (RAM Locations 30H-7FH as Scratch Pad)
ELN3104 MKROLEMCLER r. Gr. Bayezit DRM
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ou uygulamalarda 30H-7FH RAM bellek alanlar yaz-boz tahtas olarak kullanlr. Kme 0 n R0 R7 kaytlar kullanlr. 08H-1FH alan yn iin kullanlr. Daha ok kaytya ihtiya duyulursa 30H-7FH RAM alan kullanlr. Example 5-10 P1 in 200 defa tmleyenini alan bir program yaz. RAM Alan 32H adresini saya olarak R0 R7 kaytlar yerine kullan.
Uluda niversitesi Mhendislik Fakltesi Elektrik Elektronik Mhendislii Blm
ou mikroilemciler kaytlara ve G/ portlarna bit baznda ulama imkan verirler. Genellikle ou uygulamalarda tek bir bit yoklanr. 8051 in yegane ve ok gl zellii tek bitlik ilemlerdir. Tek bitlik ilemler programcya bir portun, bellein veya kaytnn bitlerinin teker teker kurulmas, sfrlanmas, tanmas ve tmleyeninin alnmas imkann verir. Kaytlarn RAM bellein ve G/ portlarnn bit adreslenebilir olmasna ihtiya vardr. Program kodunu ieren ROM bellek bit adreslenebilir deildir.
Grafik İşlem Birimlerinde Genel Amaçlı Hesaplama: Normalde CPU tarafından gerçekleştirilen hesaplamaları gerçekleştirmek için Grafik İşlem Biriminin (GPU) kullanılması
Semantic Web: Veriler üzerinde akıl yürütme ve heterojen veri kaynaklarıyla çalışma gibi önemli avantajlar sunmak için internet verilerini makine tarafından okunabilir hale getirmek için World Wide Web'i genişletmek
Manyetolojik Akışkan: Demir Adam kostümü bir bilim kurgu eseridir ve bugün henüz mümkün olmayan fütüristik bir mühendislik harikası gibi görünmektedir. Yoksa öyle mi?
Seyir Füzesi: Ses altı, süpersonik veya hipersonik hızlar; kendi kendine navigasyon; balistik olmayan ve son derece alçak irtifa yörüngesi; yüksek hassasiyetli imha