Deney 01 : Mikrobilgisayar Donanımı (DIGIAC 2000 / PAT 80286) 7

Transkript

Deney 01 : Mikrobilgisayar Donanımı (DIGIAC 2000 / PAT 80286) 7
Deney 01 : Mikrobilgisayar Donanımı (DIGIAC 2000 / PAT 80286)
1
1. Deney Düzeneğinin Tanıtımı
5. Tuş Takımı Kullanımı
DIGIAC 2000 deney kitinde üç kart vardır. İşlemci kartı, tuş takımı
ve gösterge kartı ve DT36 uygulama kartı. Bunların dışında program
yazmayı sağlayacak ve deney kartı ile haberleşmeyi sağlayacak bir
bilgisayar (PC) vardır. Bilgisayar üzerinde ayrıca asembler dilinde
kod yazabilmek ve bu kodu makine diline dönüştürüp, çalışabilir
object kod üretebilen bir assembler (as86) çalışacaktır. Ayrıca PC
üzerinde yazılan programları DIGIAC 2000 sisteminde bulunan PAT
programına aktaran bir de LJTERM.EXE programı bulunmaktadır. Bu
programlara PC nin c:\d2k dizininden kolayca erişilebilir.
Sistemi ilk açtığınızda veya her reset ten sonra tuş takımının üstündeki göstergede
önce “ready” ardından da M tuşuna basarak bir adres girmek istersek varsayım olarak
adr 0100 gösterilir. Adr address manasındadır ve 0100 de offset numarasıdır. Burada
şu unutulmamalıdır ki bu offsetin segment numarası 0080 dir. Bu offset değerini ya
tuş takımından yeni değerler girerek ya da + ve – tuşlarını kullanarak değiştirmek
mümkündür.
2. PAT 80286 - İşlemci Kartının Tanıtımı
 Kartta işlemci olarak 10MHz saat frekansına sahip 80286 işlemci
kullanılmaktadır.
 İki adet 32K boyutunda EPROM vardır. Bu 64K’lık alanda PAT
monitör programı, küçük bir öğretici uygulama yazılımı ve sistem
test yazılımı yüklüdür. Ayrıca kartta 2 tane daha 32K’lık EPROM
takabilmek için yer ayrılmıştır.
Segment numarasını değiştirmek için S tuşuna basarak yine offsette olduğu gibi değiştirebiliriz. Bir adres belirledikten sonra, bu adresin içeriğini değiştirmek istenildiğinde M tuşuna basılmalıdır. Sonra adresin ofset değeri ve adresteki veri gösterilecektir.
Bu şekilde bir kod parçası girdikten sonra bunu çalıştırmak içinse G tuşuna basıp kodun başlangıç adresi girilmelidir. Daha sonra tekrar G tuşuna basıldığında ise artık kod
çalışacaktır.
P tuşu ise port içeriklerini görmede ve değiştirmede kullanılır. P tuşuna basıldığında
prt default_port_adresi şeklinde bir görüntü belirir göstergede. Varsayım port adresi
0080H dir. Siz bu adres yerine başka adres girerek ve daha sonra tekrar P tuşuna basarak istediğiniz portun içeriğini öğrenebilir veya değiştirebilirsiniz.
 İki adet 32K’lık RAM kullanıcı programları ve yığınları için 62K’lık
bir bellek alanı sağlamaktadır. Diğer 2K ‘lık alan ise sistem değişkenleri ve yığınları için kullanılmaktadır.
 Sistem kullanıcı giriş/çıkışı için 2 adet 8256 MUART kullanır. Biri
sistem tarafından, diğeri kullanıcı programları tarafından kullanılır. Kullanıcı MUART’ı harici cihazların kontrolü için 16 tane TTL
uyumlu giriş/çıkış hattı içerir.
 Kullanıcı MUART’ı onboard beş adet sayıcı/zamanlayıcı içerir.
 Sistem iki adet RS232 arayüzü içerir; Kanal A (Channel A) ve
Kanal B (channel B). Her ikiside iki yönlüdür ve sistem MUART’ıdan gelirler.
 Sistem MUART tarafından üretilen veya harici bir cihaz tarafından üretilen kesmelerin öncelikleri için bir adet 8259 kesme
kontrol devresi içerir.
 Kartta yer alan 8 anahtar, çeşitli hata testlerinde kullanılırlar.
6. Giriş/Çıkış İşlemleri
80286 işlemcisi yalıtılmış bir I/O sisteme sahiptir. Dolayısıyla I/O için farklı komutlara
sahiptir. 80286 da IN ve OUT komutları giriş ve çıkış için kullanılmaktadır. I/O sırasında
adres yolunda 16 bitlik adresler dolaşır. Dolayısıyla sizde I/O işlemleri için 16 bitlik
adreslerden yararlanacaksınız. Yani belleğe erişir gibi 24 bitlik adresler şeklinde değil.
Çünkü I/O yalıtılmış ve tüm I/O cihazları veri yolunun düşük 16bitlik kısmına bağlanmışlardır.
Veriler mikrobilgisayara portlar aracılığıyla girer ve çıkar. PAT’ta 2 tane 8256 MUART
(Mutifunctional Universal Asynchronous Receiver Transmitter) bulunmaktadır, bunlardan biri kullanıcı için biri de sistem için ayrılmıştır. Kullanıcı arabirimi 2 tane 8 bitlik
porta sahiptir. Ayrıca sayıcı/zamanlayıcı saklayıcı sistemine ve seri iletişim yapabilme
kapasitesine sahiptir.
3. PAT 80286 Monitör Yazılımı
7. Soru / Cevap
PAT monitör programı işlemler için sistemi başlatmada, tuş takımını
okumada ve göstergeyi sürmede kullanılan pek çok yeteneği olan
bir yazılımdır. Hem terminal modunda, hem de tuş takımı modunda
çalışabilir. Tuş takımı modunda, kullanıcı sisteme 24 adet tuş içeren
bir karttan erişebilmektedir. Terminal modda ise, kullanıcı PAT’e
RS232 portu üzerinden uygun bir terminalden veya bir terminal
simülasyon yazılımından terminal klavyesiyle erişebilmektedir. Bu
iki modda da birbirine hiçbir saklayıcı veya bellek gözü etkilenmeden geçiş yapmak mümkün olmaktadır.
Soru 1 : 80286 işlemcisinin adres uç sayısı nedir? İşlemci kaç bitliktir? Toplam bellek
uzayının boyutu nedir?
Terminal modda çalışılırken “ PAT: “ şeklinde bir promptta çalışılır.
Bu prompttu gördükten sonra yazacağınız her satır PAT’e bir komut
olarak gönderilecektir.
Soru 2 : PAT nedir? Kaç adres ucu kullanmaktadır?
Soru 3. 20 adres ucu ne kadar bellek adresler?
Soru 4. 20 adres ucu bilgisi 16 bitlik saklayıcılarda hangi teknikle saklanır?
Soru 5. Segman (segment) ve kayıklık (offset) ne demektir?
Soru 6. 0080 segman ve 0100 kayıklık değeri hangi adrese denk gelir?
Soru 7. 80286'daki giriş/çıkış portları yönleri (Giriş mi çıkış mı) nelerdir?
4. 80286 Adresleme Mekanizması
80286 işlemcisi 24 adres hattına sahiptir. Bunlardan 20 tanesi PAT tarafından kullanılmaktadır. Böylece PAT 1MB’lık bir belleği adresleyebilir. 80286 16 bitlik
bir işlemcidir. Dolayısıyla 20 bitlik bir adres üretebilmesi için birden fazla saklayıcının birleştirilmesi gerekmektedir. Bu birleştirme işlemi de, ilk saklayıcının 16
(10H) ile çarpılmasıyla sağlanır. Mesela belirtmek istediğimiz adres bellekte F000 segmanında yer alsın. Ayrıca belleğin bu segmanı içinde 8000 nolu gözde yer
alsın. Bu durumda bu adresi 80286 da şöyle ifade edebiliriz. Önce segman no’yu 10H ile çarpacağız;
F000H * 10H = F0000 olarak bulunur.
Şimdi bu segment değeri içinde offset kadar ilerleyeceğiz ;
F0000 + 8000 = F8000 adresi aranılan adrestir.
Burada ilk saklayıcıya segman saklayıcısı, diğer saklayıcıda offset saklayıcısı denilir.
2
Deney 01 : Mikrobilgisayar Donanımı (DIGIAC 2000 / PAT 80286)
8. Portların Yönlendirilmesi ve Programlanması
Kullanıcı MUART ‘ı 8256
DIGIAC 2000 deney kitinde kullanıcıya açılmış iki adet 8 bitlik port vardır.
Terminal modda I/O portların içeriklerini görmek veya değiştirmek
için CP komutu kullanılır. Tuş takımında ise P ile yapılabilir bunlar.
Port1(portb)’ in her bir biti ayrı ayrı giriş/çıkış olarak yönlendirilebilir. Port2
(porta)’nin ise alçak anlamlı 4 biti ve yüksek anlamlı 4 biti bir bütün olarak
giriş/çıkış olarak yönlendirilebilir. Port1 adresi 90H Port2 adresi ise 92H ‘dir.
İki özel giriş/çıkış komutu vardır:
Read Saklayıcısı
Write Saklayıcısı
I/O adresi
Mode
Mode
0086
Port1 Kontrol
Port1 Kontrol
0088
Port1
Port1
0090
Port2
Port2
0092
Timer1
Timer1
0094
Timer2
Timer2
0096
IN : Giriş portunun içeriğini akümülatöre yükler. Örn: IN AL,90H
OUT : Akümülatör içeriğini çıkış portuna yükler. Örn: OUT 90H,AL
Yönlendirmelerde port1 için port1 control register’a giriş olacak bit için 0 ve
çıkış olacak bit için 1 şeklinde kodlanmış veri yazılır. Port1 control register
adresi 88H’dir. Mesela; Port1’in 7,5,4,0 bitleri çıkış 6,3,2,1 bitleri giriş olarak
yönlendirmek için
MOV AL,B1H
OUT 88H,AL program parçası yazılmalıdır.
Port2’nin yönlendirilmesi için mod saklayıcısının düşük anlamlı 3 biti kullanılır.
4lü olacak şekilde ikiye ayrıldığı için bu portun koşullanması için 3 bit yeterlidir. Mod saklayıcısının adresi 86H’dir. Mesela; Port2’yi YAB giriş ve DAB çıkış
olacak şekilde yönlendirmek için:
MOV AL,01H
Port 2’nin Yönlendirilmesi
P2C2
P2C1
P2C0
YAB*
DAB**
0
0
0
giriş
giriş
0
0
1
giriş
çıkış
0
1
0
çıkış
giriş
0
1
1
çıkış
çıkış
* Yüksek anlamlı bit
OUT 86H,AL yazılmalıdır.
** Düşük anlamlı bit
Genel Amaçlı Saklayıcılar
9. 80286 Saklayıcı (Yazmaç) Kümesi
80286 da yer alan saklayıcılar 16 bit liktir. Bunlardan AX, BX,CX ve DX ‘e 8 bit erişim söz konusudur. Bu
yüzden bu saklayıcılar iki kısımdan oluşmuş şekilde gösterilmektedirler.
F saklayıcısı mikroişlemciler dersinde görülen klasik işlemci tipindeki durum-denetim saklayıcısının
içerdiği bayrakları içeren bir saklayıcıdır. IP saklayıcısı komutun offsetini tutar. CS ise segment numarasını. Dolayısıyla CS-IP saklayıcı çifti 80286 için program sayacı yapısını oluşturmuş olurlar.
EPROM Programının Çalıştırılması
1 READY gör
2 R --> bas
3 R.CS görene kadar +'ya bas
4 R.CS : F000 yaz ve G'ye bas
5 Adr. 6000 yaz ve G'ye bas
6 EPROM'dasınız, +/- ile gezinerek programları çalıştır
Program çalıştırmak ve durdurmak için G tuşu kullanılır
PAT - PC Bağlantısı ve Program Gönderme
1 >> Ljterm tuşla
2 Gerekirse İşlemci kartından RESET düğmesine tıkla
3 >> PAT : gör
4 >> PAT : L --> enter
5 0 kanalını seçmek için 0 bas
6 Alt + S
7 xxx.obj yaz
8 Dosya yüklendi, başlangıç adresi 0100 olsun
9 G 0100 yazarak çalıştırabilirsin.
Tuş Takımı
R Register
P Port
M Memory
+/- Gezinme
S Serial
G Go / Run
AX=
AH (8 bit)
AL (8 bit)
BX=
BH (8 bit)
BL (8 bit)
CX=
CH (8 bit)
CL (8 bit)
DX=
DH (8 bit)
DL (8 bit)
SP
Yığın göstergesi
BP
Taban göstergesi
SI
Kaynak sıra saklayıcısı
DI
Hedef sıra saklayıcısı
Segman Saklayıcıları
CS
Kod segmanı
DS
Veri segmanı
SS
Yığın segmanı
ES
Ekstra segman
Durum - Denetim Saklayıcıları
IP
Komut göstergesi
F
Bayraklar
MSW
Makine durum sözcüğü
Kaynak Dosyanın Derlenmesi
Kaynak dosya xxx.asm olsun
as86 xxx.asm /Zi /IINCLUDE
Deney 01 : Mikrobilgisayar Donanımı (DIGIAC 2000 / PAT 80286)
; Dosya
: count.asm
; Yazar
: Zafer YAVUZ
; Tarih
: 20.09.2013 Cuma
; Güncelleme
: 27.09.2013 Cuma
UYGULAMA
;
; Program PORT A uzerinde artan sekilde saymaktadr.
;
INCLUDE PATCALLS.INC
ORG 0100H
START:
MOV AL,3
; Port A yonlendirme - tum portlar cikis
OUT UMODEREG,AL
; Mode yazmacna yaz
XOR AL,AL
LOOPS:
OUT UPORT2,AL
; AL'yi PORT A ya yaz
CALL DELAY
INC AL
; PORT A'yi arttir
JMP LOOPS
; sonsuz dongu
; Bekleme Altyordami
DELAY:
PUSH CX
; CS yazmacini sakla
MOV CX,4000H
DWAIT:
NOP
; Kisa bekleme
LOOP DWAIT
; CX degeri kadar bekle
POP CX
RET
10. Örnek Programın Derlenmesi ve Çalıştırılması
1.
>> as86 count.asm /Zi /IINCLUDE
2.
(count.obj oluştu)
3.
>> ljterm + enter
4.
Gerekirse işlemci kartının RESET düğmesine bas, PAT : | prompt unu gör
5.
L (load) + enter
6.
0 (Kanal A yı seçmek için)
7.
Alt + S (Send = göndermek için)
8.
Count.obj yaz
9.
Dosya yüklendi, başlangıç adresi 0100
10. G 0100 (çalıştırmak için)
3

Benzer belgeler

İTÜ-Eğit Tanıtım

İTÜ-Eğit Tanıtım bir işlemcidir. Dolayısıyla 20 bitlik bir adres üretebilmesi için birden fazla saklayıcının birleştirilmesi gerekmektedir. Bu birleştirme işlemi de, ilk saklayıcının 16 (10H) ile çarpılmasıyla sağl...

Detaylı