of 35 /35
C ile 8051 Mikrodenetleyici C ile 8051 Mikrodenetleyici Uygulamaları Uygulamaları C ile 8051 Mikrodenetleyici C ile 8051 Mikrodenetleyici Uygulamaları Uygulamaları BÖLÜM 3 8051’in Bellek Organizasyonu Uygulamaları Uygulamaları Uygulamaları Uygulamaları

C ile 8051 Mikrodenetleyici Uygulamalarıkampus.beykent.edu.tr/Paylasim/Dosyalar/Bolum3_129790355532343750.pdf · Standart 8051’de 128bayt olan hafıza birimi bazı 8051 türevlerinde

  • Author
    others

  • View
    7

  • Download
    0

Embed Size (px)

Text of C ile 8051 Mikrodenetleyici...

  • C ile 8051 Mikrodenetleyici C ile 8051 Mikrodenetleyici UygulamalarıUygulamaları

    C ile 8051 Mikrodenetleyici C ile 8051 Mikrodenetleyici UygulamalarıUygulamaları

    BÖLÜM 38051’in Bellek Organizasyonu

    UygulamalarıUygulamalarıUygulamalarıUygulamaları

  • AmaçlarAmaçlar

    � 8051 mikrodenetleyicisinin bellek türlerini öğrenmek

    � Dahili veri belleği (Internal RAM) hakkında bilgi sahibiolmak

    � Özel işlev kaydedicilerini tanımak� Özel işlev kaydedicilerini tanımak

    � Harici program hafıza bağlantılarını kavramak

    � Harici veri hafıza bağlantılarını kavramak

    � Bellek haritalama ve hafıza organizasyonu tasarımınıkavramak

  • 8051 Hafıza Yapısı8051 Hafıza Yapısı

  • Program (Kod) HafızasıProgram (Kod) Hafızası

    � Mikrodenetleyicinin çalıştıracağı programın makinekodlarını bulunduran bellek birimidir.

    � Standard 8051 mikrodenetleyicisinde 4KBayt kod hafızabulunmaktadır.

    � Dahili Kod hafızanın bulunmadığı ya da yetersiz kaldığıdurumlarda harici kod hafıza kullanmak mümkündür.

    � Harici ya da dahili kod hafızadan hangisinin kullanılacağını8051’in EA (External Access) belirlemektedir.

  • Program (Kod) HafızasıProgram (Kod) Hafızası

    � Harici kod hafıza bağlantısı

  • Veri HafızasıVeri Hafızası

    � 8051 mikrodenetleyicisi dahili (çip içi) veri hafıza birimi içermektedir.

    � Standart 8051’de 128 bayt olan hafıza birimi bazı 8051 türevlerinde256 bayt büyüklüğünde olabilmektedir.

    � Dahili veri hafızanın yetmediği durumlarda harici veri hafızakullanmak mümkündür.

    � 8051 mikrodenetleyicisindeki veri bellek türleri� Dahili Veri belleği

    � Alt (Lower) RAM� Üst (Upper) RAM� Özel Fonksiyon Kaydedicileri

    � Harici veri belleği

    � XRAM (Genişletilmiş RAM Bellek)

  • Dahili RAM Belleği (IRAM)Dahili RAM Belleği (IRAM)

    � 3 bölümden meydana gelir.

  • Alt RAM (Lower RAM)Alt RAM (Lower RAM)

  • Alt RAM (Lower RAM)Alt RAM (Lower RAM)

    Bit Adreslenebilir alan

  • Üst RAM (Upper RAM)Üst RAM (Upper RAM)

    � Bütün 8051 ailelerinde mevcut olmayabilir (80C31 gibi).

    � Bu bölge daha çok genel amaçlı olarak kullanılır ve 80hadresinden başlar, FFh adresinde son bulur.

    � Bu alana sadece dolaylı (indirect) yolla erişilebilir.

  • Üst RAM (Upper RAM)Üst RAM (Upper RAM)

    Örnek

    � 80H adresi hem üst RAM’in hem de SFR’nin başlangıçadresleridir. her iki hafıza bölgesinin başlangıç adresineFFH değerini yükleyelim.

    � SFR�MOV $80h,#0FFh ;SFR’deki 80h adresine 0FFh

    değerini at� Üst RAM

    �MOV R0,#80h ;R0 kaydedicisine 80h değerini at�MOV @R0,#0FFh ;R0’ın gösterdiği adrese(Üst RAM’deki

    80h’a FFh değerini at)

  • Özel Fonksiyon Kaydedicileri (SFR)Özel Fonksiyon Kaydedicileri (SFR)

    � Çip içi hafızadaki SFR kayıtçıları 80H-FFH adresleri arasında yeralırlar.

    � Fonksiyonel birimlere ait kayıtçıları içerir� Đşlemci çekirdeğine� Kesme birimi� Giriş-çıkış portları� Zamanlayıcı/sayıcı birimi� Zamanlayıcı/sayıcı birimi� Haberleşme birimleri ve diğer birimler

    � SFR alanında her mikrodenetleyici aynı kayıtçı sayısına sahip olmakzorunda değildir

    � Bu yüzden mikrodenetleyicilerin SFR belleğini oluşturan 128 baytkapasitenin tamamı dolu değildir. Hatta bazı adresler ileridekullanılmak üzere boş bırakılmıştır.

  • Özel Fonksiyon Kaydedicileri (SFR)Özel Fonksiyon Kaydedicileri (SFR)

  • Özel Fonksiyon Kaydedicileri (SFR)Özel Fonksiyon Kaydedicileri (SFR)

    P0, P1,P2, P3 kaydedicileri� 8051 mikrodenetleyicisinde bulunan dört adet port’a yüklenen çıkış

    değerlerinin ve porttan okunan giriş değerlerinin saklandığıkaydedicilerdir

    � Portlar hem bit hem de bayt olarak işlem yapmaya imkânsağlamaktadırlar.

    � Eğer harici hafıza birimleri ve seri haberleşme işlemi kullanılmıyorsakullanıcı dört portu da giriş/çıkış olarak kullanabilir.

  • Özel Fonksiyon Kaydedicileri (SFR)Özel Fonksiyon Kaydedicileri (SFR)

    ACC (Akümülatör)� Çalışma esnasındaki sonuçların tutulduğu genel amaçlı kaydedicidir.

    � Herhangi bir işlem gerçekleştirilmeden önce o işlemin ne olduğunugösteren operand’ın (komut) aküye yüklenmesi gerekir.

    � ALU tarafından yürütülen işlemlerin sonuçları da akümülatörde saklanır.

    � Bir kaydediciden bir diğerine veri transferi yine akümülatör üzerindengerçekleştirilebilir.

    � Çok amaçlı olan Akümülatör hemen hemen bütün mikrodenetleyicilerinen önemli kaydedicilerindendir.

  • Özel Fonksiyon Kaydedicileri (SFR)Özel Fonksiyon Kaydedicileri (SFR)

    B kaydedicisi� B kaydedicisi 8 bitlik bir kaydedicidir ve sadece çarpma ve bölme

    işlemlerinde kullanılmaktadır.

    � Bir sayı ile başka bir sayı çarpılacaksa veya iki sayı birbirinebölünecekse MUL AB ve DIV AB komutları kullanılır.

    � Bu komutlardaki B kaydedicisi, çarpılacak ikinci sayıyı veya bölümsayısını saklar.

    � Bunun yanında B kaydedicisi geçici işlem kaydedicisi olarak dakullanılabilir.

  • Özel Fonksiyon Kaydedicileri (SFR)Özel Fonksiyon Kaydedicileri (SFR)

    Program Durum Kaydedicisi (PSW)� SFR alanında bulunan önemli kaydedicilerden birisidir

    � Mikrodenetleyicinin çalıştırdığı programların kontrolünü yürütür.

    � ALU’daki işlemlerin sonucunda PSW’nin ilgili bitleri otomatik olarakdeğiştirilir.

    � RS1 ve RS0 olarak adlandırılan iki bitin alacağı değere göre kayıtçıdepolarının hangisinin kullanılacağı belirlenir.

  • Özel Fonksiyon Kaydedicileri (SFR)Özel Fonksiyon Kaydedicileri (SFR)

    DPTR (Data Pointer-Veri Đşaretçisi)� Veri işaretçisi, sadece kullanıcı tarafından erişilebilen 16-bitlik (2 bayt)

    bir kaydedicidir.

    � Adından da anlaşılacağı üzere veriyi işaret etmek (göstermek) içinkullanılır.

    � 8051 mikrodenetleyicisinin harici hafıza birimlerine erişimini sağlayan� 8051 mikrodenetleyicisinin harici hafıza birimlerine erişimini sağlayanbazı komutlarda kullanılmaktadır.

    � Harici hafıza kullanımında 8051 mikrodenetleyicisi, DPTRkaydedicisinin gösterdiği adrese erişmektedir.

  • Özel Fonksiyon Kaydedicileri (SFR)Özel Fonksiyon Kaydedicileri (SFR)

    SP (Stack Pointer-Yığın Đşaretçisi)� Yığın işaretçisi, yığından kaldırılacak veya yığına eklenecek bir sonraki

    değerin bellekteki konumunu ya da adresini belirtmek amacıylakullanılır.

    � Mikrodenetleyicinin RESET işlemine tabi tutulmasından sonra yığınişaretçisine (SP, Stack Pointer) Bank 0’daki R7’nin adresi (07H) atanır.

  • Özel Fonksiyon Kaydedicileri (SFR)Özel Fonksiyon Kaydedicileri (SFR)

    PCON (Power Control-Güç Kontrol)� 8051 mikrodenetleyicisinin güç modlarının belirlenmesinde kullanılır.

  • Özel Fonksiyon Kaydedicileri (SFR)Özel Fonksiyon Kaydedicileri (SFR)

    IE ve IP Kaydedicileri� IE (Interrupt Enable-Kesme Yetkilendirme) ve IP (Interrupt Priorty-

    Kesme Öncelik) Kaydedicileri Kesme Rutinleriyle ilgili kontrol bitleriniiçermektedir.

    Zamanlayıcı/Sayıcı Kaydedicileri� TCON (Timer Control-Zamanlayıcı Kontrol) ve TMOD (Timer Mod-� TCON (Timer Control-Zamanlayıcı Kontrol) ve TMOD (Timer Mod-

    Zamanlayıcı Mod) Kaydedicileri Zamanlayıcı/sayıcı birimleri için kontrolbitlerini içerir.

    � TL0, TH0, TL1, TH1 kaydedicileri ise zamanlayıcı 0 ve zamanlayıcı 1’insayma değerlerini tutmaktadırlar.

    SCON, SBUF Kaydedicileri� SCON (Serial Control-Seri Kontrol) ve SBUF (Serial Buffer-Seri

    Tampon) kaydedicileri seri iletişimde kullanılan kontrol kaydedicileridir.

  • Harici Veri Belleği (Harici Veri Belleği (ExternalExternal RAM)RAM)

  • Hafıza Organizasyonu TasarımıHafıza Organizasyonu Tasarımı

    � 8051, A/D-D/A çeviricileri, LCD veya LED göstergeler v.b. birimlervasıtasıyla dış dünya ile haberleşebilmektedir.

    � Çevre birimler ve ek bellek birimleri ile iletişim kurulabilmesi için8051’e ait port pinleri belli bir program denetimi altındakullanılmalıdır.

    � Ancak pinlerin harici birimlere bağlanması, mikrodenetleyicinin diğer� Ancak pinlerin harici birimlere bağlanması, mikrodenetleyicinin diğeryapması gereken kontrol hizmetlerini kısıtlar.

    � Çözüm olarak, kullanılacak tüm elemanlar, özelliklerine göre ya veri(data) yada program (code) hafızası üzerine yerleştirilerek portpinleri her harici eleman için ortak kullanılır.

    � Farklı çevre birimlerin kullanacakları adres uçlarını tablo yardımıylatespit etme işlemine bellek haritası tasarımı denilmektedir.

  • Bellek Birimlerinin Çoklu Kullanımları Bellek Birimlerinin Çoklu Kullanımları

    � Harici bellek olarak kullanılacak elemanlar birden fazla ise bu belleklerilgili hafıza alanı içine yerleştirilir.

    � 64KB veri hafıza ve 64KB program hafıza olmak üzere toplam 128KB’lıkbir adres haritamız mevcuttur.

    � Örneğin elimizde iki adet 8KB’lık SRAM entegresi bulunuyor ise bu ikientegrenin toplamı olan 16KB’lık bir bellek, 8051 mikrodenetleyicisineentegrenin toplamı olan 16KB’lık bir bellek, 8051 mikrodenetleyicisinebağlanarak kullanılabilir.

  • Bellek Birimlerinin Çoklu Kullanımları Bellek Birimlerinin Çoklu Kullanımları

    XT AL218

    XT AL119

    RST9

    P0.0/AD039

    P0.1/AD138

    P0.2/AD2 37

    P0.3/AD3 36

    P0.4/AD435

    P0.5/AD534

    P0.6/AD633

    P0.7/AD7 32

    P2.0/A821

    A010

    A19

    A28

    A37

    A46

    A55

    A64

    A73

    A825

    D011

    D1 12

    D2 13

    D315

    D416

    D5 17

    D618

    D719

    SRAM1 SRAM2A0

    10

    A19

    A28

    A37

    A46

    A55

    A64

    A73

    A825

    D011

    D1 12

    D2 13

    D315

    D416

    D5 17

    D618

    D719

    ALE30

    EA31

    PSEN29

    P2.7/A15 28

    P2.0/A8P2.1/A9

    22

    P2.2/A10 23

    P2.3/A11 24

    P2.4/A12 25

    P2.5/A1326

    P2.6/A1427

    P1.01

    P1.12

    P1.23

    P1.34

    P1.45

    P1.56

    P1.67

    P1.78

    P3.0/RXD 10

    P3.1/T XD11

    P3.2/INT012

    P3.3/INT1 13

    P3.4/T0 14

    P3.7/RD17

    P3.6/WR16

    P3.5/T115

    80C51

    A825

    A924

    A1021

    A1123

    A122

    CE20

    CS26

    WE27

    OE22

    6264

    A825

    A924

    A1021

    A1123

    A122

    CE20

    CS26

    WE27

    OE22

    6264

  • Bellek Birimlerinin Çoklu Kullanımları Bellek Birimlerinin Çoklu Kullanımları

    � 8KB kapasiteyi sahip bellek elemanları adresleyebilmek için gerekliolan minimum adres hattı 13’dür.

    Bit Sayısı 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

    BellekKapasitesi

    64KB

    32 KB

    16 KB

    8 KB

    4 KB

    2KB

    1KB

    512Bayt

    256Bayt

    128Bayt

    64Bayt

    32Bayt

    16Bayt

    8Bayt

    4Bayt

    2Bayt

    8051 Adres hattı

    A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

  • Bellek Birimlerinin Çoklu Kullanımları Bellek Birimlerinin Çoklu Kullanımları

    � 8KB’lık bir bellek 13 adres hattı ile adreslenebilir.

    � Birinci bellek 000016 adresinden 1FFF16 adresine kadar olan alanı işgaledecektir

    � Diğer 8KB’lık bellek de (ilk bellek birimini takiben) 200016 adresinden3FFF16 adresine kadar devam edecektir.

    AdresHattı

    A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 HEX

    SRAM10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000

    1FFF0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1

    SRAM20 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2000

    3FFF0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1

  • Bellek Birimlerinin Çoklu Kullanımları Bellek Birimlerinin Çoklu Kullanımları

    � Mikrodenetleyici 0000-1FFF arasında bir adres ürettiğinde SRAM1bellek birimi

    � 2000-3FFF arasında bir adres üretildiğinde ise SRAM2 bellek birimiseçilmiş olacaktır.

  • Bellek Birimlerinin Çoklu Kullanımları Bellek Birimlerinin Çoklu Kullanımları

    Adres çözmede kullanılacak uçların tespitinde önemli

    Kıstaslar:1. Tüm elemanlarda aynı değere sahip (0 veya 1) bir adres hattı kod

    çözmede kullanılamaz.

    2. Herhangi bir birim için kullanılacak adres hattı o birimin adressınırları içerisinde değişmemelidir.sınırları içerisinde değişmemelidir.

    3. Gruplandırma için birimler arası değişen ve birim içerisindedeğişmeyen adres hatları seçilir

    4. Kaç adet destek birimi mevcutsa ona göre adres hattı sayısı tespitedilir.

    5. Adres alanları 2 ve 2’nin katları şeklinde bellek büyüklüğüne göreseçilirse kod çözme kolaylaşır

  • Bellek Birimlerinin Çoklu Kullanımları Bellek Birimlerinin Çoklu Kullanımları

    Adres çözmede kullanılacak uçların tespitinde önemli Kıstaslar:1. A15 ve A14 SRAM1 ve SRAM 2 adres alanlarında sürekli sıfır (0)

    olduğundan kod çözme işleminde kullanılamaz.

    2. A13 adres hattı ilgili birimin alt ve üst sınırları arasında değişmediğiiçin seçme hattı olarak kullanılabilir.için seçme hattı olarak kullanılabilir.

    3. A13 adres hattı hem birim içerisinde değişmediğinden hem debirimler arası değiştiğinden gruplandırma için seçilebilir.

    4. Birim sayımız örneğimizde iki adet (SRAM1 ve SRAM2) olduğundantek bir adres hattı iki adet birimi yetkilendirmede kullanılabiliriz.

  • Bellek Birimlerinin Çoklu Kullanımları Bellek Birimlerinin Çoklu Kullanımları

    Adres çözmede kullanılacak uçların tespitinde önemli

    Kıstaslar:� SRAM 1 için A13 her zaman ‘0’, SRAM2 içinse A14 her zaman ‘1’ dir.

    � Tasarımda başka entegre devre veya birim olmadığı için A13 adreshattı bellek entegrelerinin seçiminde tek başına kullanılabilir.

    � A13 ucu ‘0’ olduğunda SRAM1 seçilir, ‘1’ olduğunda ise SRAM2seçilir.

    � A13 adres hattı SRAM’lardan birine olduğu gibi, diğerine de birDEĞĐL kapısı (7404) üzerinden uygulanırsa seçme işlemi donanımsalolarak gerçekleştirilmiş olur.

  • Bellek Birimlerinin Çoklu Kullanımları Bellek Birimlerinin Çoklu Kullanımları

    Adres çözmede kullanılacak uçların tespitinde önemli Kıstaslar:

    AD0 AD0AD1 AD1AD2 AD2AD3 AD3AD4 AD4AD5 AD5AD6 AD6

    AD0AD1AD2AD3AD4AD5AD6

    A0 A0A1 A1

    A2A2A3A3A4A4A5A5A6A6

    A0A1A2A3A4A5A6

    AD0AD1AD2AD3AD4AD5AD6

    XT AL218

    XT AL119 P0.0/AD0 39

    P0.1/AD1 38

    P0.2/AD2 37

    P0.3/AD3 36

    P0.4/AD4 35

    P0.5/AD5 34

    P0.6/AD6 33

    U1A010

    A19

    A28

    A37

    A46

    A55

    A64

    D0 11

    D1 12

    D2 13

    D3 15

    D4 16

    D5 17

    D6 18

    A010

    A19

    A28

    A37

    A46

    A55

    A64

    D0 11

    D1 12

    D2 13

    D3 15

    D4 16

    D5 17

    D6 18

    D02

    D13

    D24

    D35

    D46

    D57

    D68

    Q0 19

    Q1 18

    Q2 17

    Q3 16

    Q4 15

    Q5 14

    Q6 13

    ADRES/VERĐ YOLU

    ADRES YOLU

    AD7 AD7

    A8A9

    A10A11

    A13A14A15

    A12

    AD7

    A12A11A10A9A8A7A7 A7

    A8A9A10A11A12

    AD7

    A13ALE30

    EA31

    PSEN29

    RST9P0.6/AD6 33

    P0.7/AD7 32

    P2.7/A15 28

    P2.0/A8 21

    P2.1/A9 22

    P2.2/A10 23

    P2.3/A11 24

    P2.4/A12 25

    P2.5/A13 26

    P2.6/A14 27

    P1.01

    P1.12

    P1.23

    P1.34

    P1.45

    P1.56

    P1.67

    P1.78

    P3.0/RXD 10

    P3.1/T XD 11

    P3.2/INT0 12

    P3.3/INT1 13

    P3.4/T0 14

    P3.7/RD 17P3.6/WR 16

    P3.5/T1 15

    80C51

    A64

    A73

    A825

    A924

    A1021

    A1123

    A122

    CE20

    CS26

    WE27

    OE22

    D6 18

    D7 19

    6264

    A64

    A73

    A825

    A924

    A1021

    A1123

    A122

    CE20

    CS26

    WE27

    OE22

    D6 18

    D7 19

    6264

    D68

    D79Q6 13

    Q7 12

    LE11

    OE1

    74F573

    SRAM1SRAM2

  • Bellek Birimlerinin Çoklu Kullanımları Bellek Birimlerinin Çoklu Kullanımları

    Adres çözümü için ek donanım

    � Harici RAM veya ROM belleği oluşturan entegreler birden fazla ise,her bellek entegresinin kendine ait kapladığı adres bölgesindeçalışması istenecektir.

    � Bu durumda 8051’in P0 ve P2 portlarından üretilen adres bilgisiçözülerek hangi bellek entegresinin hangi sınırlar arasında aktif veyaçözülerek hangi bellek entegresinin hangi sınırlar arasında aktif veyapasif yapılacağı belirlenebilir.

    � Bu amaç için 74138 kod çözücü entegresi piyasada yaygın olarakkullanılmaktadır.

  • Bellek Birimlerinin Çoklu Kullanımları Bellek Birimlerinin Çoklu Kullanımları

    Adres çözümü için ek donanım

    A1 Y0 15

    Yetkilendirme Giriş Kodu Çıkışlar

    E1 E2 E3 C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7

    x x 1 x x x 1 1 1 1 1 1 1 1

    x 1 x x X x 1 1 1 1 1 1 1 1AB2

    C3

    E16

    E24

    E35

    Y0Y1 14

    Y2 13

    Y3 12

    Y411

    Y5 10

    Y6 9

    Y7 7

    74LS138

    x 1 x x X x 1 1 1 1 1 1 1 1

    0 x x x X x 1 1 1 1 1 1 1 1

    1 0 0 0 0 0 0 1 1 1 1 1 1 1

    1 0 0 0 0 1 1 0 1 1 1 1 1 1

    1 0 0 0 1 0 1 1 0 1 1 1 1 1

    1 0 0 0 1 1 1 1 1 0 1 1 1 1

    1 0 0 1 0 0 1 1 1 1 0 1 1 1

    1 0 0 1 0 1 1 1 1 1 1 0 1 1

    1 0 0 1 1 0 1 1 1 1 1 1 0 1

    1 0 0 1 1 1 1 1 1 1 1 1 1 0

  • Bellek Organizasyonun Metodolojik TasarımıBellek Organizasyonun Metodolojik Tasarımı

    Bellek organizasyonunu metodik bir şekilde gerçekleştirmek içinizlenmesi gereken adımlar

    1. Elemanların bellek alanını (Program-Veri) belirle.

    2. Elemanların adres sınırlarını belirle.

    3. Adres çözümleme için gerekli adres hatlarını belirle.

    4. Kod çözücü çıkışlarının, hangi elemanların CS uçlarına bağlanacağınıbelirle.