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
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...