Professional Documents
Culture Documents
Uygulamaları
BÖLÜM 3
8051’in Bellek Organizasyonu
Amaçlar
8051 mikrodenetleyicisinin bellek türlerini öğrenmek
Örnek
80H adresi hem üst RAM’in hem de SFR’nin başlangıç
adresleridir. her iki hafıza bölgesinin başlangıç adresine
FFH 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)
Çip içi hafızadaki SFR kayıtçıları 80H-FFH adresleri arasında yer
alırlar.
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ı birbirine
bölünecekse MUL AB ve DIV AB komutları kullanılır.
Zamanlayıcı/Sayıcı Kaydedicileri
TCON (Timer Control-Zamanlayıcı Kontrol) ve TMOD (Timer Mod-
Zamanlayıcı Mod) Kaydedicileri Zamanlayıcı/sayıcı birimleri için kontrol
bitlerini içerir.
TL0, TH0, TL1, TH1 kaydedicileri ise zamanlayıcı 0 ve zamanlayıcı 1’in
sayma değerlerini tutmaktadırlar.
64KB veri hafıza ve 64KB program hafıza olmak üzere toplam 128KB’lık
bir adres haritamız mevcuttur.
Örneğin elimizde iki adet 8KB’lık SRAM entegresi bulunuyor ise bu iki
entegrenin toplamı olan 16KB’lık bir bellek, 8051 mikrodenetleyicisine
bağlanarak kullanılabilir.
Bellek Birimlerinin Çoklu Kullanımları
19 39
XT AL1 P0.0/AD0
38 SRAM1 SRAM2
P0.1/AD1
37 10 11 10 11
P0.2/AD2 A0 D0 A0 D0
18 36 9
A1 D1
12 9
A1 D1
12
XT AL2 P0.3/AD3
35 8 13 8 13
P0.4/AD4 A2 D2 A2 D2
34 7 15 7 15
P0.5/AD5 A3 D3 A3 D3
6 16 6 16
33 A4 D4 A4 D4
P0.6/AD6 5 17 5 17
9 32 A5 D5 A5 D5
RST P0.7/AD7 4 18 4 18
A6 D6 A6 D6
3 19 3 19
21 A7 D7 A7 D7
P2.0/A8 25 25
22 A8 A8
P2.1/A9 24 24
23 A9 A9
P2.2/A10 21 21
A10 A10
29 24 23 23
PSEN P2.3/A11 A11 A11
30 25 2 2
ALE P2.4/A12 A12 A12
31 26
EA P2.5/A13
27 20 20
P2.6/A14 CE CE
28 26 26
P2.7/A15 CS CS
27 27
WE WE
1 10 22 22
OE OE
P1.0 P3.0/RXD
2 11
P1.1 P3.1/T XD 6264 6264
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/W R
8 17
P1.7 P3.7/RD
80C51
Bellek Birimlerinin Çoklu Kullanımları
8KB kapasiteyi sahip bellek elemanları adresleyebilmek için gerekli
olan 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
Bellek 64 32 16 8 4 2 1 512 256 128 64 32 16 8 4 2
Kapasitesi KB KB KB KB KB KB KB Bayt Bayt Bayt Bayt Bayt Bayt Bayt Bayt Bayt
8051
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Adres hattı
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şgal
edecektir
Adres
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 HEX
Hattı
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000
SRAM1 1FFF
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2000
SRAM2 3FFF
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Bellek Birimlerinin Çoklu Kullanımları
Mikrodenetleyici 0000-1FFF arasında bir adres ürettiğinde SRAM1
bellek birimi
2000-3FFF arasında bir adres üretildiğinde ise SRAM2 bellek birimi
seçilmiş olacaktır.
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.
4. Kaç adet destek birimi mevcutsa ona göre adres hattı sayısı tespit
edilir.
2. A13 adres hattı ilgili birimin alt ve üst sınırları arasında değişmediği
için seçme hattı olarak kullanılabilir.
Tasarımda başka entegre devre veya birim olmadığı için A13 adres
hattı bellek entegrelerinin seçiminde tek başına kullanılabilir.
A13 ucu ‘0’ olduğunda SRAM1 seçilir, ‘1’ olduğunda ise SRAM2
seçilir.
ADRES/VERĐ YOLU
ADRES YOLU
U1
19 39 AD0 AD0 2 19 A0 A0 10 11 AD0 A0 10 11 AD0
XT AL1 P0.0/AD0 D0 Q0 A0 D0 A0 D0
38 AD1 AD1 3 18 A1 A1 9 12 AD1 A1 9 12 AD1
P0.1/AD1 D1 Q1 A1 D1 A1 D1
37 AD2 AD2 4 17 A2 A2 8 13 AD2 A2 8 13 AD2
P0.2/AD2 D2 Q2 A2 D2 A2 D2
18 36 AD3 AD3 5 16 A3 A3 7 15 AD3 A3 7 15 AD3
XT AL2 P0.3/AD3 D3 Q3 A3 D3 A3 D3
35 AD4 AD4 6 15 A4 A4 6 16 AD4 A4 6 16 AD4
P0.4/AD4 D4 Q4 A4 D4 A4 D4
34 AD5 AD5 7 14 A5 A5 5 17 AD5 A5 5 17 AD5
P0.5/AD5 D5 Q5 A5 D5 A5 D5
33 AD6 AD6 8 13 A6 A6 4 18 AD6 A6 4 18 AD6
P0.6/AD6 D6 Q6 A6 D6 A6 D6
9 32 AD7 AD7 9 12 A7 A7 3 19 AD7 A7 3 19 AD7
RST P0.7/AD7 D7 Q7 A7 D7 A7 D7
A8 25 A8 25
A8 A8
21 A8 11 A9 24 A9 24
P2.0/A8 LE A9 A9
22 A9 1 A10 21 A10 21
P2.1/A9 OE A10 A10
23 A10 A11 23 A11 23
P2.2/A10 A11 A11
29 24 A11 74F573 A12 2 A12 2
PSEN P2.3/A11 A12 A12
30 25 A12
ALE P2.4/A12
31 26 A13 A13 20 20
EA P2.5/A13 CE CE
27 A14 26 26
P2.6/A14 CS CS
28 A15 27 27
P2.7/A15 WE WE
22 22
OE OE
1 10
P1.0 P3.0/RXD
2 11 6264 6264
P1.1 P3.1/T XD
3
P1.2 P3.2/INT0
12 SRAM2 SRAM1
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/W R
8 17
P1.7 P3.7/RD
80C51
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.