tc inönü üniversitesi mühendislik fakültesi elektrik elektronik
Transkript
tc inönü üniversitesi mühendislik fakültesi elektrik elektronik
T.C. İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİ (Z80) KONTROLLÜ SES KAYDI (Bitirme Tezi) Hazırlayan A. HAYRETTİN YÜZER Danışman Yrd. Doç. Dr. Ömer Faruk ÖZGÜVEN MALATYA - 1999 T.C. İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİ (Z80) KONTROLLÜ SES KAYDI (Bitirme Tezi) Hazırlayan A. HAYRETTİN YÜZER Danışman Yrd. Doç. Dr. Ömer Faruk ÖZGÜVEN MALATYA - 1999 Bana olan sevgi ve güvenleri ile benim bu seviyeye gelmemde büyük katkıları olan sevgili annem, babam ve kardeşlerime teşekkür eder, Bitirme Tezimi onlara ithaf ederim. Elektrik Elektronik Mühendisliği Bölüm Başkanlığına, Burada sunulan çalışma, tarafımdan yönlendirilmiş olup Elektrik Elektronik Mühendisliği Bölümü'nde BİTİRME TEZİ çalışması olarak kabul edilmiştir. Danışman: Yrd. Doç. Dr. Ömer Faruk ÖZGÜVEN ........................ ..... / .... / 1999 Onay Burada sunulan çalışmanın, Elektrik Elektronik Mühendisliği Bölümü'nde BİTİRME TEZİ çalışması olarak kabul edildiğini onaylarım. ...... / ...... / 1999 .................. Yrd. Doç. Dr. Saadettin HERDEM Elektrik Elektronik Mühendisliği Bölüm Başkanı GİRİŞ Ses kaydı ve sesin tanınması, günümüzde bilim adamlarının ve araştırmacıların en çok ilgisini çeken konular arasındadır. Yakın gelecekte de birçok sistem sesle kontrol edilir hale gelecektir. Çok kompleks bir yapıya sahip sesin tanınması elbette ki zordur. Hatta sesten öte kelimelerin tanınması ise asıl amaçtır. Günümüzde bazı güvenlik sistemlerinde sesin sahibi tanınabilmektedir. Ses üzerinde bazı analizler yapabilmek için ise öncelikle ses ve sese ait özelliklerin kaydedilmesi gerekmektedir. Sesin bozulmaması için saniyede minimum 3000 örnek alınarak ses sinyallerinin dijitale çevrilmesi gerekmektedir. Ses kalitesinin artması için ise saniyede 10000 örnek alınmalıdır. Bu yüzden ses sinyalleri dijitale çevrilerek saklanmak istendiğinde çok büyük kapasiteye sahip hafıza sistemleri kullanılması gerekmektedir. Bu şartlar altında endüstride yaygın olarak kullanılan 8 Kbyte’lık 6264 RAM’ a minimum ses kalitesinde maksimum 2.73 sn ses kaydı yapılabilmektedir. Halbuki sesi dijitale çevirmeden analog olarak saklamak için çok daha az hafıza bölümüne ihtiyaç duyulur. Bitirme tezimde kullandığım ISD- 4003-05MP entegresi de sesi analog olarak kaydetmektedir. Böylece 5 dakikaya kadar ses kaydı yapabilmektedir. Bu ise ses tanıma işlemleri için iyi bir emel yapı oluşturmaktadır. ISDS-4003 entegresi dijital kontrollü analog hafıza birimi olarak eşsiz bir entegredir. ISD-4003 entegresini kontrol etmek için bu bitirme çalışmasında Z80 mikroişlemcili bir devre kullanılmıştır. Günümüz teknolojisinde birçok sistemin aynı anda tek bir mikroişlemci tarafından kontrol edilebilmesi bu entegrenin (ISD) gerekli yazılım (software) bilgileri ile hazır kurulu bir sisteme eklenebilmesi yönünden büyük bir avantajdır. Yazılımda yapılacak küçük değişiklikler ile bu entegre her türlü mikroişlemcili-mikrodenetleyicili-sisteme bağlanarak otomatik olarak kontrol edilebilir. Bu bitirme tezi için kurulan mikroişlemcili devrede; microişlemci olarak Z80, ROM olarak 27C64, RAM olarak 6264, Giriş/Çıkış portu olarak 8255 kullanılmıştır. Devrede kullanılan display yardımıyla hangi mesaj üzerinde ne işlem yapıldığı hakkında bilgi verilerek kullanıcıya kolaylık sağlanmaktadır. Ayrıca “HELP” butonu vasıtasıyla kullanıcıya devre hakkında sesli olarak gerekli kullanım bilgisi verilmektedir. Bazı gerekli aşamalarda ise sesli uyarılarla kullanıcıya yardımda bulunulmaktadır. Devrenin nasıl çalıştığı kullanılan elemanların tanıtımından sonra anlatılmaktadır. TEŞEKKÜR Bitirme tezi projesi çalışmam süresince yardımlarından dolayı Sayın Yrd. Doc. Dr. Ömer Faruk ÖZGÜVEN hocama, tezimin başından sonuna kadar her an teknik yardım, neşe ve moral desteklerinden dolayı Sayın Sevinç TOSUN hocama, çalışmam boyunca yanımda olan arkadaşlarım Sayın Necati ERGİN, Sayın Seyfettin YILDIZ, Sayın Alparslan TATAR, Sayın M. Akif ERGENÇ ve Sayın Furkan UZUNOĞLU’na teşekkür ederim. İÇİNDEKİLER 1 ISD 4003 SERİLERİ TEK ENTEGREDE 4-5-6- VE 8 DAKİKALIK SES KAYDI/GERİÇALMA .............................................................................................................................. 1 2 3 1.1 GENEL TANITIM...................................................................... ERROR! BOOKMARK NOT DEFINED. 1.2 BACAK TANIMLAMALARI ............................................................................................................... 2 1.2.1 Voltaj Girişleri ..................................................................................................................... 2 1.1.2 Toprak Girişleri (VSSA, VSSD)................................................................................................. 2 1.1.3 Terslemeyen Analog Giriş (ANA IN +) ................................................................................ 3 1.1.4 Tersleyen Analog Giriş (ANA IN −) ..................................................................................... 3 1.1.5 Ses Çıkışı (AUD OUT) ......................................................................................................... 3 1.1.6 Slave Select ( SS )................................................................................................................. 4 1.1.7 Master Out Slave In (MOSI)................................................................................................. 4 1.1.8 Master In Slave Out( MISO )................................................................................................ 4 1.1.9 Serial Clock (SCLK)............................................................................................................. 4 1.1.10 Interrupt ( INT )................................................................................................................... 4 1.1.11 Row Address Clock (RAC) ................................................................................................... 5 1.1.12 External Clock Input (XCLK)............................................................................................... 5 1.1.13 Serial Peripheral İnterface ( SPI ) Description.................................................................... 5 1.1.14 Mesaj Cueing (Mesaj Çağırma) ........................................................................................... 6 ZİLOG Z80 MİKROİŞLEMCİSİ ................................................................................................. 11 2.1 Z80 MİMARİSİ .............................................................................................................................. 11 2.2 MİKROİŞLEMCİ YE AİT KAYDEDİCİ BİRİMLER (REGİSTERLER) ..................................................... 11 2.2.1 Özel Amaçlı Kaydediciler................................................................................................... 12 2.2.2 Akümülatör Ve Bayrak Kaydedicileri................................................................................. 14 2.2.3 Genel Amaçlı Kaydediciler................................................................................................. 16 2.3 ARİTMETİK VE MANTIK BİRİMİ (ALU) ........................................................................................ 17 2.4 KOMUT KAYDEDİCİSİ VE MİKROİŞLEMCİ DENETİMİ .................................................................... 17 2.5 Z80-MİKROİŞLEMCİNİN BACAK TANIMLARI ................................................................................ 18 8255A PROGRAMLANABİLEN PARELEL GİRİŞ/ ÇIKIŞ ENTEGRESİ ............................ 22 3.1 4 8255 İLE KLAVYE VE EKRAN MODÜLÜ ........................................................................................ 25 HAFIZA........................................................................................................................................... 26 4.1 HAFIZA HARİTASI (MEMORY MAP ) ............................................................................................. 26 5 4.2 HAFIZA ÇEŞİTLERİ ........................................................................................................................ 27 4.3 YAZ/OKU HAFIZA (READ/WRITE MEMORY, R/WM, RAM) .......................................................... 28 4.4 YALNIZCA OKUNABİLEN HAFIZA (READ ONLY MEMORY, ROM ) ................................................ 28 4.5 PROGRAMLANABİLEN OKU-YAZ HAFIZA (PROGRAMMABLE ROM, PROM)................................... 28 4.6 SİLİNEBİLEN PROM (ERASABLE PROM, EPROM) ........................................................................... 29 4.7 ELEKTRİKSEL SİLİNEBİLEN PROM (EEPROM) ................................................................................ 29 SES KAYDI İÇİN YAPILMASI GEREKEN İŞLEMLER VE DEVREDE GERÇEKLEŞEN OLAYLAR................................................................................................................................................ 30 6 MİKROİŞLEMCİNİN, SES KAYDINDA YAPACAĞI İŞLEMLERİ YÖNLENDİREN Z80 PROGRAMI ............................................................................................................................................. 32 7 SONUÇ ............................................................................................................................................ 44 8 KAYNAKLAR ................................................................................................................................ 45 9 EK .................................................................................................................................................... 46 ŞEKİLLER ŞEKİL 1 ISD 4003 SERİES BLOCK DİAGRAM ................................................................................................. 7 ŞEKİL 2 SPI PORT ......................................................................................................................................... 8 ŞEKİL 3 ISD 4003 SERİES ANA IN MODES................................................................................................... 8 ŞEKİL 4 TİMİNG DİAGRAM ............................................................................................................................ 9 ŞEKİL 5 8-BİT COMMAND FORMAT ............................................................................................................... 9 ŞEKİL 6 16-BİT COMMAND FORMAT ........................................................................................................... 10 ŞEKİL 7 PLAYBACK/RECORD AND STOP CYCLE .......................................................................................... 10 ŞEKİL 8 Z80 MİKROİŞLEMCİ BLOK DİYAGRAMI ......................................................................................... 11 ŞEKİL 9 Z80 MİKROİŞLEMCİ REGİSTER DÜZENİ .......................................................................................... 14 ŞEKİL 10 F BAYRAK KAYDEDİCİSİNİN YAPISINDA BULUNAN BAYRAKLAR ................................................ 15 ŞEKİL 11 Z80 BACAK BAĞLANTILARI ......................................................................................................... 18 ŞEKİL 12 8255 BACAK BAĞLANTISI ............................................................................................................ 22 ŞEKİL 13 8255 COMMAND REGİSTER YAPISI .............................................................................................. 24 ŞEKİL 14 HAFIZA HARİTASI ........................................................................................................................ 27 TABLOLAR TABLO 1 OPCODE SUMMARY ........................................................................................................................ 6 TABLO 2 SPI CONTROL REGİSTER ................................................................................................................ 7 TABLO 3 KOMUT BAŞLANGIÇ ADRESLERİ .................................................................................................. 32 TABLO 4 SAYI KARŞILIĞI SEGMENT BİLGİLERİ ........................................................................................... 33 TABLO 5 KAYDEDİLEN MESAJLARIN BAŞLANGIÇ ADRESLERİ .................................................................... 33 TABLO 6 ETİKET ADRESLERİ ...................................................................................................................... 43 ISD 4003 SERİLERİ TEK ENTEGREDE 4-5-6- VE 8 DAKİKALIK SES KAYDI/GERİÇALMA Genel Tanıtım ISD 4003 yüksek kaliteli ürünler olup +3 V besleme ile tek bir entegrede 4- 8 dakikalık mesaj kayıt/geri çalma uygulaması, hücreli telefonlar ve diğer taşınabilir elemanlar için idealdir. CMOS yapılı entegreler üzerinde, osilatör, düzleştirici filtre, otomatik susma özelliği, ses amplifikatörü ve yüksek kapasite çok seviyeli flash hafıza sıraları bulundururlar. ISD 4003, mikroişlemcili veya microdenetleyicili sistemde seri olarak kullanılacak şekilde düzenlenmiştir. Kaydedilirken bilgiler entegredeki silinmez hafıza hücrelerine depolanır, mesajlar saklı tutulurken sıfır güç harcanır. Bu eşsiz entegre, ISD’nin patentli çok seviyeli hafıza teknolojisi ile üretilmiştir. Ses ve ses sinyallerini doğal hallerinde direkt olarak depolar, yüksek kaliteli, katı halli ses kopyaları üretilmesini sağlar. Özellikler ¾ Tek entegrede kayıt/geri çalma ¾ Yalnız +3 V’ luk besleme ¾ Düşük güç tüketimi İşlem akımları: Æ ICC Play: 25 mA (tipik) Æ ICC Rec: 30 mA (tipik) Standby akımı: 1µA (tipik) ¾ 4, 5, 6 ve 8 dakika sürekli işlem ¾ Yüksek kaliteli doğal ses kopyalarını üretme ¾ Geri etkenlerin gürültüsü azalarak sessizlik durumu sağlanana kadar otomatik susma özelliği. ¾ Algoritma gerektirmemesi ¾ Mikrodenetleyici SPI veya Mikroişlemci seri arabirimi ¾ Çok yollu mesajda tamamen adreslenebilme ¾ Saklanmış (depolanmış) mesajların silinmemesi ¾ SPI veya Mikroişlemci kontrol register'ı ile güç tüketim kontrolü ¾ 100 yıl mesaj saklama (tipik) ¾ 100K kayıt periyotları (tipik) ¾ Entegre üzerinde clock kaynağı ¾ Sıcaklık yayabilme (-20 °C ∼70 °C) ve endüstriyel sıcaklık (-40 °C∼85 °C) çeşitleri mevcuttur. Bacak Tanımlamaları Voltaj Girişleri ISD 4003' teki analog ve dijital devrelere ayrı güç hattı bağlanmasıyla gürültü önemsenmeyecek seviyeye düşer. +3V' luk besleme hatları mümkün olduğu kadar besleme kaynağına yakın bir yerde birleştirilmeli. Buna ek olarak, bu devreler mümkün olduğu kadar empedansı önleyen devreler (empedans oluşturmayan) devreler olmalıdır. Toprak Girişleri (VSSA, VSSD) ISD 4003 seri elemanı ayrı ayrı analog ve dijital toprak hatları kullanır. Analog toprak bacakları (VSSA) mümkün olduğu kadar hep birlikte kılıfa yakın bir şekilde bağlanmalı ve bağlantıdan dolayı oluşan empedans güç besleme toprağı ile küçük yüzeyli olmalıdır. Dijital toprak bacağı (VSSD), güç besleme toprağı ile bağlantıdan dolayı oluşturduğu empedans küçük yüzeyli olmalıdır. Bu toprak hatlarının yüzeyi VSSD, ve VSSA bacakları arası empedansı 3Ω’ dan küçük olacak şekilde yeter derecede büyük olmalıdır. Kalıbın geri yüzeyi VSS’in bağlanmasından dolayı dirençli tabakaya sahiptir. Entegre üzeri dizaynında kılıfa yapılan VSS bağlantıları kılıf yüzeyi ile ilişkili olmalı veya solda olmalıdır. Terslemeyen Analog Giriş (ANA IN +) Bu bacak, kayıt için entegreye sinyal aktarımını terslemeden yapar. Analog giriş amplifikatörü, Single-Ended Input Mode (tek fazlı) veya Differential Input Mode (diferansiyelleme) ile sürülebilir. Single-Ended Input Mode’ de optimum sinyal kalitesi için bu bacağa max. Tepeden tepeye 32 mV’ luk girişe izin verecek kapasite bağlanmalıdır. Bu kapasitansın değeri, beraber bağlandığı ANA IN + bacağının giriş empedansı 3 KΩ ile birlikte, ses geçirme bandının en düşük frekansında kesilecek (devreyi ayıracak) şekilde seçilmiştir. Differential-Input Mode’ de, optimum ses kalitesi için ANA IN+ ya max. 16 mVP-P’lik giriş sinyali uygulanmalıdır. Her iki mod için devre bağlantıları “ISD Series ANA IN MODES“ şeklinde gösterilmiştir. Tersleyen Analog Giriş (ANA IN −) Bu bacak differential-Input Mode’ de kayıt için entegreye analog sinyal aktarımını tersleyerek yapar. Bu differential-Input Mode’ de optimum sinyal kalitesi için max. Giriş sinyali 16 mVP-P olan, ANA IN- kapasite bağlanmalı. Bu kapasitansın değeri, ANA IN+ bacağında olan kapasitansa eşit olmalıdır. Bu ANA IN- bacağının giriş empedansı nominal değeri 56 KΩ‘ dur. Single-Ended Input Mode’ de ANA INbacağı ANA IN+ girişinde kullanılan kapasitans değerine eşit olacak şekilde kapasitans üzerinden VSSA’ ya bağlanmalıdır. Ses Çıkışı (AUD OUT) Bu bacak kullanıcı için ses çıkışı sağlar. 5 KΩ‘ luk empedansları sürebilir. Bu bacaktan AC çıkış verilir. Not: AUDOUT bacağı entegrede enerji olduğu zaman daima 1,2 Volttadır. Geri çalma zamanı bu bacaktaki çıkış sürücü bağlantıları 5 KΩ‘ dan küçük yükleri sürebilir. Kayıt yaparken AUDOUT bir dirençle içeriden 1,2 V’luk analog toprak beslemesine bağlanır. Bu direnç tahminen 850 KΩ‘dur, fakat entegrenin örnekleme oranına göre biraz değişir. Bu bağımlı yüksek empedans izin verir ki, bu bacak ses hattının yüklenmesini düşürmeyecek şekilde bağlanabilir. Slave Select ( SS ) Bu giriş LOW olduğu zaman ISD 4003 entegresi yetkilendirilir. Master Out Slave In (MOSI) Bu, ISD 4003’ ün seri girişidir. Mikrodenetleyici, clock sinyalinin yükselen kenarından yarım saykıl önce bilgileri ISD 4003’ ün MOSI hattı üzerine yerleştirmelidir Master In Slave Out( MISO ) Bu, ISD 4003’ ün seri çıkışıdır. Bu çıkış, eğer entegre yetkilendirilmezse yüksek empedans durumuna gider. Serial Clock (SCLK) ISD 4003’ün clock girişidir. Bu clock mikrodenetleyici tarafından oluşturulur ve senkron bilgi girişinde ve MOSI ile MISO hatlarının entegreden çıkışında kullanılır. Bilgi ISD 4003’te SCLK’nın yükselen kenarında tutulur (kaydedilir) ve SCLK’nın düşen kenarında çıkışa kaydırılır. Interrupt ( INT ) ISD 4003’ ün interrupt bacağı Overflow (OVF) veya Mesaj Bitimi (EOM) işaretleri ortaya çıktığında sıfıra düşer ve orada kalır. Bu bir açık akaç bacağıdır. Her operasyon OVF veya EOM’ın mesaj işaretlerini içeren interrupt oluşturmasıyla son bulur. İnterrupt sonraki zamanda SPI saykıllarının başlamasıyla silinir. İnterruptın durumu “RINT“ komutu ile okunabilir. Overflow Flag (OVF) − Overflow flag'i ISD 4003’ün analog hafızasının geriçalma veya kaydederken bittiğini gösterir. End of Message (EOM) − End of Message flag'i herhangi bir EOM bulunana kadar sadece geri çalma işlemi boyunca set olur. Her bir dizi ayarı için EOM flag'inin sekiz durumu vardır. Row Address Clock (RAC) Bu açık akaç çıkış bacağı 8 KHz’lik örnekleme frekansında 200 ms’lik periyotlarla sinyallerin oluşmasını sağlar (Bu hafızanın tek sıra dizelerini gösterir ve ISD 4003 serilerinde 1200 memory dizisi vardır). Bu sinyal dizinin sonuna ulaşana kadar 175 ms HIGH durumunda ve 25 ms LOW durumunda kalır. Bu bacak mesaj yürürlüğe koyma teknikleri için kullanılabilir. RAC bacağı mesaj çağırma modunda 218,75 µs HIGH durumunda ve 31,25 µs LOW durumunda kalır (Mesaj çağırmanın ayrıntılı tanıtımı için "Opcode Summary " isimli tabloya bakınız). Diğer örnekleme oranına sahip ürünler için RAC’ın zamanlama diyagramı AC parametreler tablusunda belirtilmiştir. External Clock Input (XCLK) Eğer XCLK kullanılmayacaksa, bu giriş toprağa bağlanmalıdır. Serial Peripheral İnterface ( SPI ) Description ISD 4003 operasyonları SPI seri arabiriminden belirlenir. SPI arabirimi operasyonları sıraya göre işleme koyar. Varsayılan bilgi transfer protokolü (kuralları) şöyledir ki; mikrocontrollerin kaydırmalı kaydedicinin sinyalleri SCLK’nın düşen kenarında olur. ISD 4003’te bilgi sinyalleri clock’un düşen kenarında MISO bacağından çıkar. 1. Tüm seri bilgi iletimi SS bacağının (sinyallerinin) düşen kenarı ile başlar. 2. SS tüm seri haberleşme sırasında LOW ve komutlar arası zamanlarda ise HIGH olur. 3. Bilgi sinyal girişleri Clock’un yükselen kenarında ve bilgi sinyal çıkışları clock’un düşen kenarında olur. 4. Dinleme ve kayıt işlemlerinin başlamasına SS bacağının LOW olmasıyla izin verilir, opcode ve adres durumuna göre sürülür. (Opcode tablosu devam eden sayfadadır.) 5. Opcode ve adreslerin durumu 5 bit ve 11 bittir. 6. Mesaj çağırma saykıllarını içeren her operasyon EOM veya OVF’ un interrupt oluşturmasıyla sonlanır. 7. İnterrupt bilgisi ISD 4003’ün MISO bacağından çıktığında aynı anda kontrol ve adres bilgileri MOSI bacağından girmeye başlar. Dikkat ederek devre sistem operasyonları ile uyumlu bilgiler gönderilmelidir. İnterrupt bilgisinin durumu okunabilir ve aynı SPI saykılı içersinde yeni işlem başlatılabilir. 8. Operasyonlar RUN bitinin set olmasıyla başlar ve reset olmasıyla biter. 9. Her operasyon SS bacağının yükselen kenarıyla başlar. Mesaj Cueing (Mesaj Çağırma) Gerçek fiziksel yerini bilmese de kullanıcının mesaj atlayarak mesaj çağırmasına izin verir. Bu modda mesajlar normal geri çalma modundan 1600 kat daha hızlı çağrılır. EOM işaretleyicisi ortaya çıkıncaya kadar devam eder. Bundan sonra, dahili adres sayıcı sonraki mesajın adresini gösterecektir. Tablo 1 Opcode Summary Komut Opcode <5_ bits> Adress <11_bits> POWERUP 00100 <XXX> SETPLAY 11100 <A10–A0> PLAY 11110 <XXX> SETREC REC SETMC MC STOP 10100 <A10–A0> 10110 <XXX> 11101 <A10–A0> 11111 <XXX> 0X110 <XXX> STOPPWRDN 0X01X <XXX> RINT 0X110 <XXX> Operasyon Özeti Powerup: Aygıtın TPUD süresinden sonra operasyon için hazır duruma gelmesi <A10–A0> adresinden itibaren geri çalmanın başlatılması EOM veya OVF işaretleyicisi gelene kadar o anki adresten itibaren geri çalma <A10–A0> adresinden itibaren kayıt yapma OVF olana kadar o anki adresten itibaren kayıt yapma <A10–A0> adresinden mesaj çalmanın başlatılması Mesaj çalmanın işleme konması Devre operasyonlarının durdurulması Devre operasyonlarının durdurulması ve stand-by (düşük güç) modunda bekleme İnterrupt bitinin durumunun okunması: OVF ve EOM Tablo 2 SPI Control Register Control Register RUN Bit Device Fonction 1 0 Enable or Disable operation Start Stop Selects Play or Record operation Play Record 1 0 Enable or disable message cueing Enable mesage cueing Disable message cueing 1 0 P/R MC Control Register PU Bit Device Function 1 0 IAB 1 0 Master Power control Power-Up Power-Down Ignore Address control bit Ignore input address register (A10-A0) Use the input address register contents for an operation (A10-A0) P10-P0 Output of the row pointer register A10-A0 Input address register Şekil 1 ISD 4003 Series Block Diagram MISO ← OVF EOM P0 P2 P3 P4 MOSI → C2 C1 C0 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 C4 C3 P1 P5 P6 P7 P8 P9 P10 Message Cueing (MC) Ignore Address Bit (IAB) Powerup (PU) Play/Record (P/R) RUN Şekil 2 SPI Port Şekil 3 ISD 4003 Series ANA IN Modes 0 0 0 Şekil 4 Timing Diagram Şekil 5 8-Bit Command Format Şekil 6 16-Bit Command Format Şekil 7 Playback/Record and Stop Cycle ZİLOG Z80 MİKROİŞLEMCİSİ Z80 Mimarisi Z80 mikroişlemcisinin iç mimarisinin blok diyagramı Şekil 8’te gösterilmiştir. Bu diyagram mikroişlemci biriminin ana elemanlarını göstermektedir ve aşağıda verilen şema anlatımın başından sonuna kadar referans olarak kullanılacaktır. 8 Bitlik Veri Yolu Veri Yolu Denetimi Komut Kayd. Komut Kod Çözücü ve MİB Denetimi ALU MİB Kaydedicileri MİB Denetimi Adres Denetimi Mikroişlemci ve Sistem Denetim Sinyalleri 16 Bitlik Adres Yolu Şekil 8 Z80 Mikroişlemci Blok Diyagramı Mikroişlemci ye Ait Kaydedici Birimler (Registerler) Z80 mikroişlemci, programcı tarafından erişilmesi mümkün olan 208 bitlik R/W bellek içerir. Bu belleğin 18 tane 8 bitlik kaydedici ve 4 tane 16 bitlik kaydedici halinde nasıl düzenlendiği Şekil 4’te gösterilmiştir. Z80'in tüm kaydedicileri, statik RAM kullanılarak gerçekleştirilmiştir. Bu kaydediciler, 8 bitlik kaydedici olarak tek başlarına yada 16 bitlik kaydedici olarak çiftler halinde kullanılabilecek olan 6 adet genel amaçlı kaydediciden oluşan 2 takım içerir. Ayrıca akümülatör ve bayrak kaydedicilerinden oluşan iki takım daha mevcuttur. Özel Amaçlı Kaydediciler a) Program Sayıcı (Program Counter-PC): Program sayıcı bellekten okunacak olan komutun 16 bitlik adresini içerir. PC içeriğinin adres hatlarına aktarılmasından sonra otomatik olarak arttırılır. Herhangi bir program atlama komutu yürütüldüğünde, arttırıcı aşılarak, yeni değer PC’ ye otomatik olarak yerleştirilir. Mikroişlemci komutları okurken ilgili komutu hangi bellek gözünden aldığına dair adresi saklaması gerekir. Çünkü bir sonraki komutu bu adresi bir arttırarak alır. İşte mikroişlemcinin hangi adresten komut aldığını gösteren registere PC denir ve bu register 16 bitliktir. b) Yığın İşaretçisi (Stack Pointer-SP): SP, dış sistemde bulunan RAM belleğindeki herhangi bir yere yerleştirilmiş olan bir yığının tepesinin 16 bitlik adresini tutar. Dış yığın belleği, son kaydedilen ilk okunur (LIFO) düzeninde bir dosya şeklinde düzenlenir. PUSH ve POP komutlarının yürütülmesi yoluyla, yığına belirli mikroişlemci kaydedicilerinden veri itilebilir, yada yığından belli mikroişlemci kaydedicilerine veri çekilebilir. Yığından çekilen veri her zaman yığına daha önce itilmiş olan son veridir. Yığın çok düzeyli kesmelerin kolayca gerçeklenmesini, sınırsız sayıda alt programın iç içe geçirilebilmesini ve birçok veri işleme türlerinin basitleştirilmesini sağlar. Mikroişlemcinin ana programdan alt programa gittiği zaman ana programa geri döneceği adresi sakladığı adres gözünün adresini içerir. Ana programdan alt programa gidildiği zaman PC’ de o anda ana program komut satırının adresi vardır. Stack pointere bir defa 16 bitlik bir adres yüklendikten sonra, örneğin 2099H stack’a bilgi depolama bir sonraki stack adresinden başlar. SP-1 (yani 2098) ve azalarak gider. Bir register çiftinin içeriğini (16 bitlik) SP-1 ve SP-2 (2098ve 2097) adreslerine depolanır. SP 2 azaltılarak 2099H’ den 2097H olur. Stack pointerden bilgilerin geri alınması işlemi de depolama işleminin tersidir. POP komutunun her çalıştırılmasında stack‘ın gösterdiği adresten başlayarak 2 byte bilgi geri alınır. Stack toplamı da iki arttırılır. Stack proğramcı ve mikroişlemci tarafından paylaşılır. c) İndeks Kaydedicileri (IX ve IY): Birbirinden bağımsız iki adet indeks kaydedicisi, indekslenmiş adresleme modlarında kullanılan 16 bitlik bir taban adresini tutar. Bu adresleme modunda indeks kaydedicilerinden biri verinin bellekte saklanacağı yada geri alınacağı bölgeyi işaret etmek için bir taban olarak kullanılır. Bu tabandan itibaren olan kaymayı belirtmek için indekslenmiş komutlarda ilave bir byte içerir. Bu kayma 2’nin tümleyeni halindeki işaretli bir tamsayı olarak belirtilir. Bu adresleme modu, özellikle veri tablolarının kullanıldığı bir çok program türlerini büyük ölçüde basitleştirir. d) Kesme Sayfası Adres Kaydedicisi (Interrupt): Z80 mikroişlemcisi, herhangi bir kesmeye cevap olarak herhangi bir bellek konumuna dolaylı bir çağrının gerçekleştirilebileceği bir modda çalıştırılabilir. Bu amaçla I kaydedicisi dolaylı adresin üst sıralı 8 bitini saklamak için kullanılır, adresin alt 8 bitini ise kesme yapan birim aracılığı ile Adres Bus'tan alır. e) Bellek Tazeleme Kaydedicisi (Refrech): Z80 mikroişlemcisi, statik belleklerle aynı kolaylıkla kullanılan dinamik bellekleri yetkilendirebilmek için bir bellek tazeleme sayıcısını içermektedir. Bu 8 bitlik kaydedici her komut getirme saykılından sonra otomatik olarak arttırılır. Mikroişlemci getirilen komutun kodunu çözerken ve yürütürken tazeleme sayıcısındaki veri bir tazeleme denetim sinyaliyle birlikte adres yolunun alt yarısı üzerinden dışarıya gönderilir. Bu tazeleme modu programcıya bütünüyle açıktır ve mikroişlemcinin çalışmasını yavaşlatmaz. Programcı R (tazeleme) kaydedicisini test etmek amacı için yükleyebilir, fakat bu kaydedici normalde programcı tarafından kullanılamaz. f) PUSH: Bu 1 veya 2 byte‘lık komut olup belirtilen registeri (16 bitlik) veya indeks registerinin içeriklerini stack‘a şöyle kaydeder. Bu komut önce SP’yi bir eksiltir ve register çiftinin veya indeks registerinin üst byte’ını SP-1 adresine kopyalar. Sonra SP’ yi tekrar bir azaltır ve alt byte’ı SP-2 adresine kopyalar. g) POP: Bu 1 vaya2 byte’lık komut olup stack‘in en üst iki adresindeki bilgiler belirtilen register çiftine kopyalanır. Önce stack‘in SP ile gösterilen adresindeki bilgi register çiftinin alt baytı’na kopyalanır (BC registerinin C registerine veya IX registerinin alt baytına) sonrada SP+1 deki bilgi üst registere kopyalanır. h) EXCHANGE: Z80 mikroişlemci, bayraklar, akümülatör ve genel amaçlı registerlerin birer de yedeğine sahiptir. Değiş komutları ile bu yazaçların içerikleri kaydedilebilir. Bu yedek yazaçlar yığına benzer görev yaparlar. Ana Kaydedici Takımı (Register) Akümülatör Bayraklar A F B C D E H L Yedek Kaydedici Takımı (Register) Akümülatör Bayraklar A' F' B' C' D' E' H' L' Kesme Vektörü Bellek Tazeleme I R İndeks Kaydedicisi IX İndeks Kaydedicisi IY Yığın İşaretçisi SP Program Sayıcısı PC Şekil 9 Z80 Mikroişlemci Register Düzeni Akümülatör Ve Bayrak Kaydedicileri Mikroişlemci birimi birbirinden bağımsız iki adet 8 bitlik akümülatörü ve bunlarla birleştirilmiş 8 bitlik bayrak kaydedicilerini içermektedir. Bayrak kaydedicisi 8 yada 16 bitlik işlemler için ,örneğin bir işlemin sonucunun sıfıra eşit olup olmadığının belirtilmesi gibi özel koşulları gösterirken, akümülatör 8 bitlik aritmetik veya mantıksal işlemlerin sonuçlarını tutar. Programcı, çalışmak istediği akümülatör ve bayrak çiftinin tek bir değiş tokuş komutu ile seçer. Bu suretle, programcının herhangi biri ile kolaylıkla çalışması mümkündür. a) Akümülatör: Akümülatör mikroişlemcinin bir parçası olan 8 bitlik bir kaydedicidir. A kaydedicisi Z80 ‘de akümülatör görevini görür. Bu kaydedici, aritmetik ve mantık işleme tabi tutulacak 8 bitlik datanın depolanması,mikroişlemci de yapılan işlem sonuçlarının depolanması, sonuçların çıkışa aktarılması görevini yürütür. Örneğin toplama işlemi yaptıran ADD komutu, toplama işlemine giren iki sayıdan birini daima A akümülatöründe bulunan sayı olarak kabul eder. Toplama işleminin sonucu da akümülatördeki bir önceki sayı ile yer değiştirilerek saklanır. Akümülatörün dışındaki registerlara direkt olarak data yüklenemez ve mikroişlemci işlemlerinin sonuçları da depolanamaz. Sadece A akümülatörünün içeriği ile yer değişimi yapılarak kullanılabilir. b) Bayrak Kaydedicisi (Flag Registeri): Bir futbol maçında yan hakemlerin oyunun kurallarına göre bazen ellerindeki bayrakları kaldırdıkları ve böylece orta hakeme bilgi verdikleri görülür. Benzer şekilde mikroişlemci de yapılan bir işlemden sonra data sonuçlarının durumlarını gösteren mikroişlemci de bulunan 6 flip-flop’tan her biri mikroişlemciye bilgi verir ve bunların her birine de bayrak adı verilir. Flip-flop’ların durumları,istenildiğinde 8 bitlik bayrak kaydedicisinde görülebilmektedir. Şekil 5’te F bayrak kaydedicinin bitlerindeki bayrakların yerleri görülmektedir. Bu bayrak kaydedicisindeki D3 ve D5 bitleri ise kullanılmamaktadır. D7 S D6 Z D5 S: Sign Z: Zero H: Half Cary D4 H D3 D2 P/V D1 N D0 C P/V: Parity/Over flow N: Add/Substract C: Carry Şekil 10 F Bayrak Kaydedicisinin Yapısında Bulunan Bayraklar 6 bayrak içindeki H (half carry) ve N (Add/subtract) bayrakları mikroişlemci tarafından BCD (Binary Coded Decimal) sayı işlemlerinde kullanılır. Bu iki bayrağın içeriği herhangi bir komut tarafından test edilemez ve programcı tarafından kullanılamazlar. Geriye kalan 4 bayrak Jump ve Call komutları ile kontrol edilebilir. 1) Elde Bayrağı (Carry Flag-C): Bu bayrak akümülatörün en yüksek sıralı bitinde çıkan eldedir. Bir aritmetik işlemde, örneğin bir toplama sonucu elde (carry) üretilmişse veya bir çıkarma işleminde bir borç alma (borrow) olmuşsa elde bayrağı set olur. Aksi takdirde reset olur. Ayrıca bu bayrak bazı mantık ve kaydırma komutları tarafından da etkilenir. 2) Sıfır Bayrağı (Zero Flag-Z): Bu bayrak, yapılan işlemin sonucu sıfır ise set olur. Aksi takdirde reset olur. İki sayıyı karşılaştırırken bu sayılar eşitse veya bir bitin sıfır olup olmadığı kontrol edilmek isteniyorsa ve bu bit sıfırsa Z bayrağı set olur. 3) İşaret Bayrağı (Sign Flag-S): Bu bayrak, yapılan işlemin sonucu negatif olduğunda set olur. Bu bayrak, sayının işaretini 7. bit (EDB) gösterdiğinden dolayı (negatif bir sayının 7. biti birdir), akümülatördeki 7. bitin bir kopyasını içerir. 4) Eşlik/Taşma Bayrağı (Parity/Over Flow Flag-P/V): Bu çift amaçlı bayrak, mantıksal işlemler (örneğin AND A,B gibi) yapıldığında akümülatördeki sonucun eşliğini belirtir,ikiye tümleyeni ile işaretli aritmetik işlemler yerine getirildiğinde ise taşmayı gösterir. Z80 taşma bayrağı, akümülatördeki ikiye tümleyen halindeki sayının, ikiye tümleyeni notasyonunda gösterilebilen maksimum sayıyı (+127) aşması yada minimum sayıdan (-128) daha küçük olması halinde, hatalı olduğunu belirtir. Genel Amaçlı Kaydediciler Z80 mikroişlemcisi’nde genel amaçlı kaydedicilerden oluşan, eşleştirilmiş iki kaydedici takımı mevcuttur. Bu takımların her ikisi de, programcı tarafından 8 bitlik kaydedici olarak tek başına yada 16 bitlik kaydedici olarak çiftler halinde kullanılabilecek olan 6 adet 8 bitlik kaydedici içermektedir. Takımlardan birincisindeki kaydedici çiftleri, BC, DE, HL ile adlandırılır. Eşlenik takımdakiler ise BC’, DE’,HL’ ile adlandırılır. Programcı, çalışacağı kaydedici takımını, bütün takım için tek bir değiş tokuş komutu yardımıyla seçebilir. Hızlı kesme cevabının gerekli olduğu sistemlerde, genel amaçlı kaydediciler ile akümülatör/bayrak kaydedicisinden oluşan takımlardan birisi, bu çok hızlı programın işletilmesine ayrılabilir. Programdan programa geçiş için sadece tek bir değiş tokuş komutunun yürütülmesi gerekir. Bu özellik, kesme yada alt program işlemleri sırasında kaydedici içeriklerinin dış yığına saklama ve geri alma gereksinimlerini ortadan kaldırmak suretiyle, kesmeye cevap verme süresini büyük ölçüde azaltır. Bu genel amaçlı kaydediciler, programcı tarafından çok geniş aralıktaki uygulamalar için kullanılır. Ayrıca, dış belleğinin mevcut olduğu ROM tabanlı sistemlerde programlamayı da basitleştirirler. Aritmetik Ve Mantık Birimi (ALU) Z80 mikroişlemcinin 8 bitlik aritmetik ve mantıksal komutları, ALU‘da yürütülürler. ALU, mikroişlemcinin içerisinde iç veri yolu üzerinden, kaydediciler ve dış veri yoluyla iletişimde bulunurlar. ALU tarafından yerine getirilen işlevlerin türleri şöyledir. Toplama Çıkartma Mantıksal VE Mantıksal VEYA Mantıksal özel VEYA Karşılaştırma Sola ya da sağa kaydırma ya da döndürme Arttırma Azaltma Bit kurma Bit sıfırlama Bit test etme Komut Kaydedicisi Ve Mikroişlemci Denetimi Bellekten her komut getirme işleminde, getirilen komut ,komut kaydedicisine yerleştirilerek kodu çözülür. Bu işlevi denetim bölümü yerine getirir ve sonra kaydedicilerden veri okumak ya da kaydedicilere veri yazmak için gerekli olan bütün denetim sinyallerini üretir ve sürer, ALU ’yu denetler ve gerekli olan bütün dış denetim sinyallerini sağlar. Z80-Mikroişlemcinin Bacak Tanımları Z80 mikroişlemcisi, 40 bacaklı bir endüstri standardı olan Çift-sıralı (DIL) Paket içinde paketlenmiştir. Giriş/Çıkış bacakları Şekil 11’da gösterilmiş ve bu bacakların her birinin işlevleri şeklin altında tanımlanmıştır. 27 19 20 22 21 28 18 24 16 17 26 25 23 6 M1 MREQ IORQ WR RD REFSH HALT WAIT INT NMI A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 RESET BUSRQ BUSAK CLK D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39 40 1 2 3 4 5 14 15 12 8 7 9 10 13 Z80-CPU Şekil 11 Z80 Bacak Bağlantıları A0-A15: Tristate durumunda olabilen high'ta etkin çıkış A0-A15, (Adres Bus) 16 bitlik bir adres yolu oluşturur. Adres yolu, (64 Kbyte kadar) bellek veri değiş-tokuşları ve Giriş/Çıkış birimleri veri değiş tokuşları için gerekli adresi sağlar. Giriş/Çıkış adreslemesi, kullanıcının 256 adete kadar giriş yada çıkış portunu doğrudan doğruya seçebilmesini sağlamak üzere alt sıralı 8 adres bitini kullanır. A0 en küçük değerlikli adres bitidir. Tazeleme süresi sırasında, alt sıralı 7 bitin geçerli bir tazeleme adresini içerir. D0-D7: Tristate durumunda olabilen high'ta etkin Giriş/Çıkış. D0-D7, (Data Bus) 8 bitlik iki yönlü veri yolu oluşturur. M 1 : Alçakta etkin çıkış. M 1 yürürlükteki makine (Birinci makine saykılı) saykılının, bir komutun yürütümünün opkodu getirme saykılı olduğunu belirtir. 2 byte ’lık opkodlarının yürütümü sırasında, M 1 ’in her iki opkodu byte’nın getirilmesi sırasında da üretilir. Bu iki byte ’lık opkodları her zaman CBH, DDH, EDH ya da FDH ile başlar. M 1 ayrıca, kesme alındı saykılını belirtmek için IORQ ile de ortaya çıkar. IORQ : Tristate durumunda olabilen low da etkin çıkış. IORQ sinyali,(Giriş /Çıkış isteği) adres yolunun 8 bitinin, Giriş/Çıkış okuma ya da yazma işlemi için geçerli bir Giriş/Çıkış adresini tutmakta olduğunu belirtir. IORQ sinyali ayrıca, herhangi bir kesme isteği alındığında da, veri yoluna kesme yanıt vektörünün yerleştirilebileceğini belirtmek için M 1 sinyali ile birlikte üretilir. RD : Tristate durumunda olabilen low da etkin çıkış. RD , bu sinyal mikroişlemci tarafından veri okunmaya çalışıldığında oluşur. Bellek ya da bir Giriş/Çıkış biriminden veri okunmak istediğini belirtir. WR : Tristate durumunda olabilen low da etkin çıkış. WR , mikroişlemci tarafından hafızaya bilgi saklamak veya Giriş/Çıkış biriminden çıkış yapılmak istendiğinde oluşur. RFSH : Low da etkin çıkış. RFSH , adres yolunun alt (tazele) sıralı 7 bitinin, dinamik bellekler için bir tazeleme adresi içerdiğini ve yürürlükteki MREQ sinyalinin, tüm dinamik bellekler için tazeleme amaçlı bir okuma işlemi yapmak amacıyla kullanılması gerektiğini belirtir. Tazeleme sırasında, A7 adres hattı mantıksal sıfırdır ve adres yolunun üst sıralı 8 biti, I. Kaydedicisini içerir. HALT : Low da etkin çıkış. Bir şey yapma bekle demektir. HALT , mikroişlemcinin bir HALT (Durdurma durumu) yazılım komutunu yürütmüş olduğunu ve işlemin geri alınabileceği hale gelinmeden önce, maskelenemez ya da maskelenebilir bir kesme için hazır beklediğini belirtir. Durdurma durumuna alınmış iken mikroişlemcinin, bellek tazeleme etkinliğini sürdürmek için sürekli olarak NOP komutları yürütülür. WAIT : Low da etkin çıkış. WAIT (Bekle) girişi Z80 mikroişlemcinin, adreslenen bellek ya da Giriş/Çıkış biriminin veri aktarma için hazır olmadığını belirtir. Mikroişlemci, bu sinyal etkin olduğu sürece hiçbir işlem yapmaz. Bu sinyal, her hangi bir hızdaki bellek ya da Giriş/Çıkış birimlerinin mikroişlemci ile senkronize edilmesini sağlar. INT : Low da etkin çıkış. Kesme istek sinyali, Giriş/Çıkış (kesme isteği) birimleri tarafından üretilir. Kesme isteği, eğer yazılım denetimli iç kesme yetkilendirme flip-flobu (IFF) yetkilendirilmişse ve BUSRQ sinyali aktif değilse, yürürlükteki komutun sonunda dikkate alınır. Mikroişlemci kesmeyi aldığında, bir sonraki komut saykılının başlangıcında, dışarıya bir alındı sinyali ( IORQ ) gönderir. Mikroişlemci, bir kesmeyi, üç ayrı modda yanıtlayabilir. (IM0, IM1, IM2) NMI : Pozitif kenar tetiklemeli giriş. Maskelenemez kesme isteği girişi, INT ’den daha yüksek bir önceliğe sahiptir ve kesme yetkilendirme flip-flop’unun durumundan bağımsız olarak her zaman için yürürlükteki komutun sonunda tanınır. NMI , mikroişlemciyi otomatik olarak 0066H konumundan tekrar başlatır. Program sayıcı, kullanıcının kesilen programa geri dönebilmesi için otomatik olarak dış yığında saklanır. Ardarda girilen WAIT (bekle) saykıllarının yürürlükteki komutun sonlanmasını engelleyebileceğine ve herhangi bir dikkat edilmelidir. BUSRQ ‘un NMI ‘yı aşacağına RESET : Alçakta etkin giriş. RESET , program sayıcısına sıfır yükler ve mikroişlemciyi başlangıç durumuna getirme işlemi aşağıdaki aşamaları kapsar. 1) Kesme yetkilendirme flip -flobunun yetkisiz kılınması 2) I kaydedicisinin 00H’ e kurulması 3) R kaydedicisinin 00H’ e kurulması 4) 0’ncı kesme modunun kurulması Sıfırlama süresi sırasında, adres ve veri yolları yüksek empedans durumuna girerler ve tüm denetim çıkış sinyalleri de etkisiz duruma gider. Bu sırada, tazeleme işlemi de yapılamaz. BUSRQ : Low da etkin çıkış. Yol isteği sinyali. Mikroişlemcinin adres yolu, veri yolu ve üç durumlu çıkış denetim sinyallerinin yüksek empedans durumuna geçmesi için dış ünite tarafından kullanılır, böylece diğer birimlerin bu yolları denetlemesi mümkün olur. BUSRQ aktif duruma getirildiğinde, Mikroişlemci, yürürlükteki mikroişlemci makine saykılı sonlandırılır sonlandırılmaz bu yolları yüksek empedans durumuna getirir ve BUSAK 'tan sinyal çıkar. BUSAK : Low da etkin çıkış. Yol alındısı, istek yapan birime, mikroişlemcinin adres yolu veri yolu üç konumlu denetim yolu sinyallerinin yüksek empedans durumlarına geçirildiklerini ve artık dış birimin bu sinyalleri denetleyebileceğini belirtmek için kullanılır. CLK: Mikroişlemcinin komutları yürürlüğe koyması için saat darbesi giriş ucu (Tek fazlı sistem saati). Z80 için 4 MHZ frekansındaki kare dalga osilatöründen gelir. 8255A PROGRAMLANABİLEN PARELEL GİRİŞ/ ÇIKIŞ ENTEGRESİ 8255A yaygın olarak kullanılan, oldukça hızlı, genel amaçlı kullanımlarda karşılaşılacak her duruma uygun özellikleri sağlayan bir entegredir. Esnek, kullanışlı ve ucuz olmasına rağmen, bazı kullanıcılar kullanımını çok karışık bulmaktadır. Bu entegre genel amaçlı paralel Giriş/Çıkış (I/O) cihazıdır ve neredeyse tüm mikroişlemcilerle beraber kullanılabilir. 8255A’nın 24 tane Giriş/Çıkış ucu vardır. 24 bit giriş çıkış yapılabilmektedir. Bu 24 bit 8 bitlik gruplar halinde gruplanmıştır ve ilk 8 bit A portu, ikinci 8 bit B portu ve üçüncü 8 bit C portu, olarak adlandırılır. C portu ayrıca 4 bitlik iki küçük grup olarak kullanılabilir. (CU ve CL) (Şekil 13). Tüm portların hangi fonksiyonları sağlayacağı kontrol kaydedicisine (Command register) yazılacak sayı ile belirlenir. 34 33 32 31 30 29 28 27 5 36 9 8 35 6 D0 D1 D2 D3 D4 D5 D6 D7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 RD WR A0 A1 RESET CS PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 8255 Şekil 12 8255 Bacak Bağlantısı Temel olarak iki mod mevcuttur. Bunlar bit boyutlu işlemler yapmak veya Giriş/Çıkış modlu yani 4-8 bitlik gruplar boyutunda işlemler yapmaktır. Bu ikinci modda kendi içerisinde 3 ayrı işletim moduna ayrılarak incelenir. Bu karmaşık işletim modlarında temel olarak sadece Giriş/Çıkış mod sıfır tercih edilir ve yaygın olarak kullanılır. Diğer modlarda belirli ihtiyaçlara cevap vermek üzere hazırlanmış özel fonksiyonları kolayca elde etmemizi sağlar. Örneğin Giriş/Çıkış Mode1 fonksiyon olarak bir mikroişlemcinin (yazıcı) printer amacı ile de kullanılabilir. Mod2’de ise A port çift yönlü data aktarımı amacıyla kullanılır. C port ise bu haberleşme sistemi içinde karşılıklı onaylama ve diğer gerekli haberleşmeleri içeren tokalaşma (Handshake) sinyallerini sağlar. 8255 Blok diyagramı: Şekil 7’de 8255A‘nın blok diyagramı görülmektedir. Kontrol uçlarını ayrıca ele alalım. RD Oku (Read): Bu kontrol sinyali ile okuma işlemi yapılır. Bu uç 0 (low) yapıldığında istenilen porttan okuma yapılır ve porttaki bilgi Adres Bus'a aktarılır. WR Yaz (Write): Yazma işlemi için bu sinyal kullanılır. Bu uç sıfıra çekildiğinde seçilen porta veya command kaydedicisine bir sayının yazılması mümkün olur. RESET: Bu, high konumunda aktif olan sinyal girişi olup uygulandığında, 8255A başlangıç konumuna gelir, command registerları sıfırlanır. CS A0 ve A1: Entegre ve port seçme sinyalleri. Bu sinyaller ile entegre seçme ve entegrede port seçme işlemleri yapılır. Eğer entegre seçilmiş ise gelen datanın entegredeki dört porttan hangisi ile ilgili olduğu sinyalleri A0 ve A1 adres seçme uçlarına gelen adres bilgileri ile belirlenir. D7 D6 MODE SET FLAG 1 Active D5 D4 D3 D2 D1 D0 GRUP B Port C (Lower) 1→İnput 0→Output Port B 1→İnput 0→Output Mode Selection 0→Mode 0 1→Mode 1 GRUP A Port C (Upper) 1→İnput 0→Output Port A 1→İnput 0→Output Mode 00→Mode 0 01→Mode 1 1×→Mode 2 Şekil 13 8255 Command Register Yapısı 8255 İle Klavye Ve Ekran Modülü 8255 devreye, tuşlardaki bilgiyi µp’ ye ve µp’ den gelen kayıt işlemine ait bilgileri display de gösterecek şekilde iki yönlü olarak yerleştirilmiştir. A portuna bağlı butonlardan yapılacak işlem komutu belirlenir. Bu işlemin ne olduğu B portuna bağlı display de gösterilerek C portundan ISD 4003’e seri bilgi gönderilir ve seri bilgi alınır. Portlarla yapılan bu işlemler hazır yazılı programa göre işleyen µp tarafından kontrol edilir. Dolayısıyla bu işlemler programcıya bağlıdır. Tuşlardaki gürültüyü önleme işi yine programcıya aittir. HAFIZA Hafıza, bir mikroişlemci sisteminin en önemli parçalarından biridir. Görevi, mikroişlemci için komut datalarını saklamak. Çeşitli hafıza tipleri 2 ana grupta toplanabilir. Bunlar ana hafıza ve depolama hafızasıdır. ROM hafıza kalıcı bilgi depolayan FET’lerden yapılmıştır. RAM hafıza ise bilgiyi geçici olarak depolar. Bir hafıza engellemesinde tüm yazaçlar bir sıra halindedir ve ikili sayılardan oluşan adreslerde tanımlanırlar. Hafıza Haritası (Memory Map ) Bitirme tezimde kullandığım Z80 mikroişlemcisinin 16 bitlik adres belirleme sistemi vardır. Mikroişlemci (µp) bu 16 bit ile 0000H’ten FFFFH’e kadar 65536 byte’lık bölgeyi kullanır. Bu bölge sabit kalıcı hafıza (ROM), kısa süreli hafıza (RAM), Giriş/Çıkış portu (8255) ve ses kaydedicisi (ISD)‘yi içine alır. Her birinin ayrı ayrı adres bölgeleri vardır. Bu bölge hafıza işlemleri ve Giriş/Çıkış işlemleri için ayrı ayrı olacak şekilde paylaştırılır. Bölgelere ayırma işlemi ile kastedilen her entegrenin belirli bölgelerde aktif duruma gelecek şekilde bağlantısının yapılması demektir. Her entegrenin ayrı ayrı bölgelerde seçilmesi ise µp tarafından yapılan okuma veya yazma işlemi sırasında işlem yapılacak adres bölgelerinin çakışmaması içindir. µp dışında kullanılan diğer entegreler genelde 64 Kbyte’tan daha küçük hafıza bölümüne sahip oldukları için onlarda adresleme yaparken 16 bitten daha az adres biti kullanılır. Arta kalan adres bitleri ise entegrenin farklı bölgelerde yetkilendirilmesi için kullanılmaktadır. Bu işlemler sırasında bir bitin boşta kalması, yani ister LOW ister HIGH olsun hiçbir entegrenin yetkilendirilmesini etkilememesi, yansıma dediğimiz olayı ortaya çıkarır. Bu ise entegrenin iki farklı bölgede yetkilendirilmesini sağlar. Benim projeme göre hafıza işlemleri için 0000H’ten 1FFFH’e kadar 8 Kbyte’lık bölgede ROM (27C64) yetkilendirilir. A13 bitinin boşta kalmasından dolayı 2000H’ ten 3FFFH’ e kadar ki bölgede yine ROM yetkilendirilir. 4000H’ten 5FFFH’e ve 6000H’ten 7FFFH’e kadar ki bölgede ise RAM (6264) yetkilendirilir. Giriş/Çıkış işlemleri için ise 00H’ ten 3FH’ e kadar ki bölgede 8255 yetkilendirilir. FFFFH FFH 8000H 7FFFH RAM 6000H 5FFFH RAM 4000H 3FFFH ROM 2000H 1FFFH ROM 40H 3FH 8255 0000H 00H Şekil 14 Hafıza Haritası Bu yetkilendirme işlemi, içinde iki adet demultiplexer bulunan 74LS139 entegresi ile gerçekleştirilir. Hafıza Çeşitleri Hafıza öncelikle ana ve depolama hafızası olarak iki gruba ayrılır. RAM ve ROM hafızalar ana hafızadır. Mikroişlemci bu hafızaları, programları çalıştırmakta ve depolamakta kullanılır. Bu hafızalar mikroişlemcinin çalışma hızına yeteri kadar ayak uydurmalıdır. Bunlar RAM (Rasgele Erişilebilen Hafıza) ve mikroişlemci bilgiye zaman kaybetmeksizin herhangi bir yazaçtan erişebilir. Depolama hafızaları ise manyetik diskler, teyp bantlarıdır. Bu hafızalar mikrobilgisayar sisteminin bir parçası olmayıp ihtiyaç halinde takılıp kullanılırlar ve mikrobilgisayar sisteminin enerjisi kesilse dahi bu hafızadaki bilgiler kaybolmazlar. Mikroişlemci bu hafızada depolanan bilgileri direk olarak işleyemez ve programları çalıştıramaz, bunun için programlar önce ana hafızaya kopya edilir. Bu yüzden sistemin ana hafızası (64 K, 128 K, 2M, 4M gibi), ne kadar büyüklükte bir programın çalıştırılabileceği bilgisini de vermektedir. Yaz/Oku Hafıza (Read/Wrıte Memory, R/WM, Ram) İsminden de anlaşıldığı gibi mikroişlemci bu hafızaya yazar veya okur. Popüler olarak RAM hafıza olarak adlandırılırlar.(Random Access Memory). Statik ve Dinamik olarak iki şekli bulunan bu hafızanın, sistemin enerjisi kesilince üzerindeki bilgiler de silinir. Statik hafıza flip-floplardan yapılmış olup bilgiyi flip-floplarda gerilim olarak, dinamik hafıza ise MOS transistor kapılarından yapılmış olup bilgiyi kapasitanslarda elektrik yükü olarak depolarlar. Dinamik hafızanın avantajı, ucuz,yüksek yoğunluklu, az güç tüketiyor olması; dezavantajı ise yükün (bit bilgisi) zayıflamasından dolayı bilginin birkaç milisaniyede bir okunup tekrar yazılması zorunluluğudur. Hafıza tazeleme olarak adlandırılan bu işlem için ek devrelere ihtiyaç duyulduğundan dolayı fiyatının da artmasına yol açmaktadır. Ekonomik olarak, küçük sistemler için statik hafıza, 16K‘dan büyük sistemler için ise dinamik hafıza kullanmak uygundur. Yalnızca Okunabilen Hafıza (Read Only Memory, Rom ) Enerjisi kesilse dahi bilgilerini koruyan bu hafızaya yüklenen programların değiştirilmeye ihtiyacı yoktur. Çünkü bir bit yapısı depolandıktan sonra sadece okunabilir, yani kalıcı veya yarı kalıcıdırlar. Kalıcı grup MASKED ROM ve PROM olmak üzere iki tip hafıza, yarı kalıcı grup ise EPROM ve EEPROM olmak üzere iki tip hafıza içerir. Programlanabilen Oku-Yaz Hafıza (Programmable Rom, Prom) Bu hafızada nikrom veya polisilikon adında teller bulunur ve özel bir PROM programlayıcı ile bit yapıları hafızaya yazılırken karşılık gelen bu teller birer sigorta gibi yanarak girilen bit yapısının kalıcı olmasını sağlarlar. Silinebilen Prom (Erasable Prom, Eprom) Bu hafıza çipinde de, bir EPROM programlayıcı kullanılarak içinde bulunan FET‘lerin kapı girişlerine yüksek gerilimler tatbik edilip yüklenmesi ile depolama işlemi yapılır. Hafızanın üzerinde bulunan quartz pencereye ultraviyole ışığın tutulması ile de bu bilgiler silinebilir. Böylece hafızaya yeni programların yüklenebilmesi mümkün olur. Elektriksel Silinebilen Prom (Eeprom) Bu hafıza tipi EPROM‘a bezemektedir, fakat içindeki bilgilerin hepsinin silinmesinden ziyade uygulanan elektriksel sinyaller vasıtasıyla yazaç seviyesinde bilgilerin değiştirilmesi ile fark göstermektedir. Elektriksel gerilimler uygulayarak hafıza bilgilerinin değiştirilebilmesi bu EE-PROM‘a uzaktan kumanda uygulamalarında büyük avantaj sağlamaktadır. SES KAYDI İÇİN YAPILMASI GEREKEN İŞLEMLER VE DEVREDE GERÇEKLEŞEN OLAYLAR Mikroişlemci açıldığı anda 8255 entegresinin Giriş/Çıkış portlarının belirlenmesi için command registerine bilgi gönderiyor. Yani 8255’ in portları şartlanıyor. Sonra ise POWERUP alt programı ile ISD 4003 entegresine power işareti göndererek ISD’nin hazır hale gelmesini sağlıyor. ISD hazır olduktan sonra 3×FF H defa tuştaranıp bir defa DONDER alt programını çağırıyor. DONDER alt programı displayın dış çevre segmentlerinde sırayla kayarak yanan bir görüntü oluşturuyor. Eğer herhangi bir tuşa basılırsa KOMADR alt programı bu tuşun yapması gereken işlevi gerçekleştirecek alt programın başlangıç adresini Tablo 2’den belirleyerek HL registerine yerleştirir. KJ alt programı ise bu program akışını HL registerinde belirlenen adresten devam edecek şekilde değiştirir. Tuşların gerçekleştirmesi gereken işlevler şunlardır: 1. Help 2. Stop 3. Message no 4. Play 5. Record 1. Help: Sesli olarak bu mikroişlemci kontrollü devrenin nasıl kullanılacağını anlatır veya diğer bir deyişle kısa bir tanıtım yapar 2. Stop: ISD’ye stop komutu göndererek uygulamada olan tüm fonksiyonları durdurur. 3. Message No: Bu tuş basılı olduğu sürece display de 1’den F’e kadar sayılar sırasıyla artarak görüntülenir ve sıfıra dönüp tekrar eder. Buton bırakıldığı anda display hangi sayıyı gösteriyorsa o mesajın adresi MESAJAD alt programı tarafından belirlenir. Eğer bu program Play tarafından çağrılmışsa belirlenen mesaj çalınır. Eğer RECORD tarafından çağrılmışsa belirlenen mesajın üzerine yeni mesaj kaydetmeye başlar. 4. Play: İstenirse MESS_NO programı yardımıyla belirlenen mesajın dinlenmesini, istenirse de en son kaydedilen mesajın dinlenmesini sağlar. 5. Record: Ana işlevi mesaj kaydetmeyi sağlamaktır. MESS_NO programı yardımıyla kaydedilecek yeri değiştirebiliriz. Yalnız kayıt işlemi başlamadan önce KONT programı kaydın başlayacağı adresin tanıtımın bitiminden sonra olup olmadığını kontrol eder. Eğer tanıtımın üzerine yazılmak istenirse kaydın başlayacağı adresi otomatik olarak tanıtımın son adresi olarak belirler. Bu kadar program arasında kullanılan register'larda bir karışıklık olmaması için RAM' in hafızaları 5F00H adresinden itibaren indekslemeli olarak kullanılmıştır. RAM' in beslemesine pil takılarak devrenin enerjisi kesilse bile RAM' deki (kaydedilen mesaja ait) bilgilerinin kaybolmaması sağlanmıştır. Bu indeksli adreslerin neyi belirttiği ve sesli uyarıların deşifre edilmiş hali programın başlangıcına ilave edilmiştir. MİKROİŞLEMCİNİN, SES KAYDINDA YAPACAĞI İŞLEMLERİ YÖNLENDİREN Z80 PROGRAMI Uyarı 1 : "Dinlemek istediğiniz mesaj numarasını ekranda görene kadar bırakmaksızın mesaj numarası yazan tuşa sonra da Play tuşuna basınız" Uyarı 2 : " Bir daha yanlış tuşa basarsanız sistem kapatılacaktır." Uyarı 3 : "Tekrar Record tuşuna basarsanız mesajınız en son kaydedilen mesajın devamına kaydedilecektir ve mesaj numarasını ekranda göreceksiniz. İstediğiniz bir mesajın yerine kaydetmek için mesaj numarası yazan tuşa basınız ekranda 'r' harfi görüntülendiği andan itibaren kayıt başlar ve herhangi bir tuşa basılana kadar devam eder. Tablo 3 Komut Başlangıç Adresleri TANITIM STOP MESS_NO PLAY RECORD Tanıtımın bitim adresi 00H 03H 01H 18H 10H 48H 10H 90H 10H D2H 00H D6H 1ED1H 1ED2H 1ED3H 1ED4H 1ED5H 1ED6H 1ED7H 1ED8H 1ED9H 1EDAH 1EDBH 1EDCH Tablo 4 Sayı Karşılığı Segment Bilgileri 6FH 41H 76H 73H 59H 3BH 3FH 61H 7FH 7BH 7CH 1FH 2EH 57H 3EH 3CH 1FD0H : : : : : : : : : : : : : : 1FDFH Tablo 5 Kaydedilen Mesajların Başlangıç Adresleri Mesaj 1 Mesaj 2 : : LB HB LB HB : : 5ED1H 5ED2H 5ED3H 5ED4H : : 0000H 0003H C37000 C9 0070H 0073H 0077H 0079H 007BH 007EH 0082H 0085H 0089H 008DH 0090H 0093H 0095H 0098H 009AH 009CH 009EH 00A1H 00A3H 00A4H 00A6H 00A9H 00ABH 00AEH 00AFH 00B2H 00B5H 00B7H 00B9H 00BCH 00BFH 00C1H 00C3H 00C6H 00C8H 00CCH 00D0H 00D4H 00D5H 00D8H 00DBH 00DCH 00DDH 00DEH 31005D DD21005F 3E98 D303 CDAF00 DD361320 CDFC00 DD3617FF DD3618FF CD0010 DD3518 20F8 DD3517 20F3 38E6 1E70 CD0010 30F9 1D 20F8 CDAB00 18D7 CD1910 E9 210020 CD4B11 3E7C D301 32095F CDC110 3EFF D302 DDAE0D 200C DD360D01 FD2ADB1E FD220A5F C9 210020 CD4B11 C9 C9 C9 C9 ANAPROG: 1000H 1003H 1005H 1007H 1009H 100AH 100CH 21005F 0605 0E01 DB00 57 3E01 CB0A TUSTARA: TANITIM: TKONT: TT: TTARA: TDEV: KJ: POWER: GEC3: POWERUP: UYARI1: UYARI2: UYARI3: KAYDIR: CPU "Z80.TBL" JP ANAPROG RET ORG 0070H LD SP, 5D00H LD IX, 5F00H LD A, 98H OUT (03H), A CALL POWER LD (IX+13H), 20H CALL DONDER LD (IX+17H), FFH LD (IX+18H), FFH CALL TUSTARA DEC (IX+18H) JR NZ, TT DEC (IX+17H) JR NZ, TT JR C, TKONT LD E, 70H CALL TUSTARA JR NC, TTARA DEC E JR NZ, TDEV CALL KJ JR TKONT CALL KOMADR JP (HL) LD HL, 2000H CALL SERICIK LD A, 7CH OUT (01H), A LD (5F09H), A CALL BEKLE LD A, FFH OUT (02H), A XOR (IX+0DH) JR NZ, GEC3 LD (IX+0DH), 1 LD IY, (1EDBH) LD (5F0AH), IY RET LD HL, 2000H CALL SERICIK RET RET RET RET ORG 1000H LD HL, 5F00H LD B, 5H LD C, 1H IN A, (00H) LD D, A LD A, 01 RRC D 100EH 1010H 1011H 1013 H 1014H 1016H 1018H 1019H 101CH 101EH 1020H 1022H 1023H 1024H 1025H 1026H 1027H 1028H 1029H 102CH 102FH 1031H 1034H 1036H 1039H 103CH 103FH 1041H 1044H 1047H 1048H 104CH 104EH 1050H 1052H 1054H 1056H 1059H 105CH 105EH 1061H 1064H 106BH 106FH 1071H 1072H 1075H 1078H 107AH 107DH 107EH 1081H 1083H 1085H 1086H 1087H 108AH 3803 71 3E00 0C 10F6 CB0F C9 DD7E00 CB07 C6D0 161E 5F 1A 67 1B 1A 6F C9 3ADC1E DDBE11 2805 FA4110 1811 3ADB1E DBE10 FA4110 1806 2ADB1E 22105F C9 DD360908 0E00 0602 DB00 EEFB 2815 CDDD00 CDC110 100D 210030 CD4B11 DD360903 DB00 2009 0C DD7108 CDB010 18F1 CD7E10 C9 DD7E08 CB07 265E 6F 7E DD7711 2B GEC2: KOMADR: KONT: DIGER: KUCUK: BITR: MESS_NO: ATLA: BITIR: MESAJAD: JR C, GEC2 LD (HL), C LD A, 0 INC C DJNZ KAYDIR RRC A RET LD A, (IX+00H) RLC A ADD A, 0D0H LD D, 1EH LD E, A LD A, (DE) LD H, A DEC DE LD A, (DE) LD L, A RET LD A, (1EDCH) CP (IX+11H) JR Z, DIGER JP M, KUCUK JR BITR LD A, (1EDBH) CP (IX+10H) JP M, KUCUK JR BITR LD HL, (1EDBH) LD (5F10H), HL RET LD (IX+09H), 8H LD C, 00 LD B, 2H IN A, (00H) XOR 0FBH JR Z, ATLA CALL UYARI2 CALL BEKLE DJNZ ATLA LD HL, 3000H CALL SERICIK LD (IX+09H), 3 IN A, (00H) JR NZ, BITIR INC C LD (IX+08H), C CALL DISP_GOS JR ATLA CALL MESAJAD RET LD A, (IX+08H) RLC A LD H, 5EH LD L, A LD A, (HL) LD (IX+11H), A DEC HL 108BH 108CH 108FH 1090H 1093H 1096H 1099H 109CH 109FH 10A2H 10A5H 10A8H 10AAH 10ACH 10AFH 10B0H 10B3H 10B5H 10B7H 10B8H 10BAH 10BBH 10BDH 10C0H 10C1H 10C2H 10C5H 10C8H 10C9H 10CAH 10CBH 10CDH 10CEH 10D0H 10D1H 10D2H 10D5H 10D8H 10DBH 10DEH 10E1H 10E4H 10E7H 10E9H 10EBH 10EEH 10EFH 10EFH 10F2H 10F5H 10F7H 10F9H 10FCH 10FEH 10FFH 1101H 1104H 7E DD7710 C9 CDD500 CDDC00 CD4810 21000E CD4B11 CDC110 21F000 CD4B11 3E7C D301 CDC110 C9 DD7E08 E60F C6D0 6F 261F 7E D301 CDC110 C9 D9 DD5609 21FFFF 2B 7D B4 20FB 15 20F8 D9 C9 CDD500 CDEF10 2100A0 CD4B11 CDC110 2100B0 CD4B11 3E2C D301 CD2211 C9 PLAY: DISP_GOS: BEKLE: AZALT: REC: LD A, (HL) LD (IX+10H), A RET CALL POWERUP CALL UYARI1 CALL MESS_NO LD HL, 0E00H CALL SERICIK CALL BEKLE LD HL, F0H CALL SERICIK LD A, 7CH OUT (01H), A CALL BEKLE RET LD A, (IX+08H) AND 0FH ADD A, 0D0H LD L, A LD H, 1FH LD A, (HL) OUT (01H), A CALL BEKLE RET EXX LD D, (IX+09H) LD HL, FFFFH DEC HL LD A, L OR H JR NZ, AZALT DEC D JR NZ, AZALT EXX RET CALL POWERUP CALL REC1 LD HL, A000H CALL SERICIK CALL BEKLE LD HL, B000H CALL SERICIK LD A, 2CH OUT (01H), A CALL KAY_SON_IS RET REC1: CDDE00 CD0010 30FB 1E80 CD0010 38F9 1D 20F8 CD0511 C9 CALL UYARI3 TKONT1: CALL TUSTARA JR NC, TKONT1 TTARA1: LD E, 80H TDEV1: CALL TUSTARA JR C, TTARA1 DEC E JR NZ, TDEV1 CALL SEC RET 1105H 1108H 110AH 110CH 110FH 1110H 1114H 1118H 111BH 111EH 1121H 1122H 1122H 1125H 1127H 1129H 112CH 112EH 112FH 1131H 1134H 1136H 1139H 113CH 113DH 113FH 1142H 1144H 1147H 114AH 114BH 114DH 114FH 1151H 1153H 1155H 1157H 1159H 115BH 115EH 1161H 1163H 1165H 1167H 1168H 1169H 116BH 116DH 116FH 1172H 1173H 1174H 1176H 1177H 1179H 117BH 117FH DD7E00 EE03 2004 CD4810 C9 FD2A0A5F FD22105F DD7E0D DD7708 CDB010 C9 CD0010 38FB 1E80 CD0010 30F9 1D 20F8 CD1801 0E0D CDE000 CDEF00 0D 20F7 DD7E16 E607 DD7716 CD2A01 C9 3E00 D301 D302 0610 CB3C CB1D CB17 D302 CDC110 CDE000 10F0 3EFF D302 C9 C5 0E02 3E80 D301 CDC110 AF 0D 20F7 C1 DB02 CB27 DDCB1516 DDCB1616 SEC: LD A, (IX+00H) XOR 3 JR NZ, GEC1 CALL MESS_NO RET GEC1: LD IY, (5F0AH) LD (5F10H), IY LD A, (IX+0DH) LD (IX+08H), A CALL DISP_GOS RET KAY_SON_IS: TKONT2: CALL TUSTARA JR C, TKONT2 TTARA2: LD E, 80H TDEV2: CALL TUSTARA JR NC, TTARA2 DEC E JR NZ, TDEV2 CALL STOP LD C, 0DH GIRDEV: CALL SCLK CALL GIR DEC C JR NZ, GIRDEV LD A, (IX+16H) AND 07H LD (IX+16H), A CALL EKLEMELER RET SERICIK: LD A, 00H OUT (01H), A OUT (02H), A LD B, 16 GON: SRL H RR L RL A OUT (02H), A CALL BEKLE CALL SCLK DJNZ GON LD A, FFH OUT (02H), A RET SCLK: PUSH BC LD C,02H LD A,80H KARE: OUT (01H),A CALL BEKLE XOR A DEC C JR NZ, KARE POP BC GIR: IN A, (02H) SLA A RL (IX+15H) RL (IX+16H) 1183H 1184H 1188H 118AH 118EH 1190H 1192H 1196H 1199H 119BH 119FH 11A0H 11A3H 11A6H 11A8H 11AA 11AE 11B1H 11B2H 11B5H 11B7H 11B8H 11BBH 11BE 11C2H 11C6H C9 DDCB1366 2008 DDCB137E 2002 1804 DDCB1306 DD7E13 D301 DDCB1306 C9 210030 CD4B11 3E3B D301 DD360905 CDC110 C9 3A085F D301 3C 320D5F CDC110 FD2A155F FD220A5F C9 1FD0H 1FD3H 1FD6 1FD9 1FDC 1FDF 6F4176 73593B 3F617F 7B7C1F 2E573E 3C 1ED1H 1ED3H 1ED5H 1ED7H 1ED9H 0000 0118 1048 1090 10D2 RET DONDER: BIT 4, (IX+13H) JR NZ, GEC BIT 7, (IX+13H) JR NZ, GEC JR NORM GEC: RLC (IX+13H) NORM: LD A, (IX+13H) OUT (01H), A RLC (IX+13H) RET STOP: LD HL, 3000H CALL SERICIK LD A, 3BH OUT (01H), A LD (IX+09H), 5 CALL BEKLE RET EKLEMELER: LD A, (5F08H) OUT (01H), A INC A LD (5F0DH), A CALL BEKLE LD IY, (5F15H) LD (5F0AH), IY RET ORG 1FD0H DFB 6FH, 41H, 76H, DFB 73H, 59H 3BH DFB 3FH, 61H, 7FH DFB 7BH, 7CH, 1FH DFB 2EH, 57H, 3EH DFB 3CH ORG 1ED1H DWM TANITIM DWM STOP DWM MESS_NO DWM PLAY DWM REC END Tablo 6 Etiket Adresleri 0000H 0082H 008DH 009CH 009EH 00ABH 00AFH 00D4H 00D5H 00DCH 00DDH 00DEH 00E0H 00E5H 00EFH 00FCH 010AH 010EH 0118H 012AH 013FH 1000H 100CH 1013H 1019H 1029H TANITIM TKONT TT TTARA TDEV KJ POWER GEC3 POWERUP UYARI1 UYARI2 UYARI3 SCLK KARE GIR DONDER GEC NORM STOP EKLEMELER ANAPROG TUSTARA KAYDIR GEC2 KOMADR KONT 1036H 1041H 1047H 1048H 106BH 107AH 107EH 1090H 10C1H 10B0H 10C8H 10D2H 10EFH 10F2H 10F7H 10F9H 1105H 1110H 1122H 1122H 1127H 1129H 1136H 114BH 1153H DIGER KUCUK BITR MESS_NO ATLA BITIR MESAJAD PLAY BEKLE DISP_GOS AZALT REC REC1 TKONT1 TTARA1 TDEV1 SEC GEC1 TKONT2 KAY_SON_IS TTARA2 TDEV2 GIRDEV SERICIK GON SONUÇ İnsanın dış dünya ile ilişki kurmasında en önemli özelliğinden birisi olan ses yani istediği kelimeleri bir araya getirerek cümle oluşturma ona benzer robotlar üretmede şu an için büyük bir engel olarak karşımıza çıkmaktadır. Bunun yanında dışarıdan gelen seslerin anlaşılması ise cabası. Bu devre ve program yardımı ile daha önceden kaydedilen kelimeler istenilen sıraya göre çağrılarak cümle yapısı oluşturulabilmektedir. Devrede kullanılan mikroişlemcinin hızına bağlı olarak bu işlem daha seri bir şekilde yapılabilir. Birkaç entegrenin seri bağlanması ile hafıza büyütülerek günlük hayatta kullanılan kelimelerin bir çoğu kaydedilebilir. Böylece konuşma özürlülerin dolaylı olarak konuşması sağlanmış olur. Ayrıca kullanmadığı kelimelerin yerine yeni kelimeler kaydederek kelime haznesini değiştirebilir. Bu devreyi laboratuarlarda yaygın olarak kullandığımız osilaskopların girişine bağlanmak suretiyle osilaskoplarımızı hafızalı hale getirebiliriz. Geçici süre için oluşan sinyal ISD' ye analog olarak kaydedildiğinden sinyalde bozulma meydana gelmez. Sinyalin uygulama süresi mikroişlemci tarafından ölçülerek tekrarlanmak suretiyle daimi sinyal girişi varmış gibi osilaskop'un ekranında sinyalin görüntülenmesi sağlanır. KAYNAKLAR 1) 2) 3) 4) 5) 6) 7) 8) 9) POTTON, A. ,Mikroişlemci tabanlı sistemler 4 ANKARA-1994 BOYLESTAT, R., NASHELSKY, L., Elektronik elemanlar ve devre teorisi GÖKKAYA, K., UZUN. Ö., Mikroişlemciler ve Assembler programlama İSTANBUL-1994. Z80 PROGRAMMING MANUEL ISD 4003 SERIES, ChirCorder ISD WEBSİTE(www.isd.com) HITACHI Data Book M..ORRİS MANO,Sayısal Tasarım, ŞABAN KURTULDU, MEHMETY ALİ GÜLER, Mikroişlemciler EK
Benzer belgeler
Tam Sayfa Görünüm
ISDS-4003 entegresi dijital kontrollü analog hafıza birimi olarak eşsiz bir
entegredir. ISD-4003 entegresini kontrol etmek için bu bitirme çalışmasında Z80
mikroişlemcili bir devre kullanılmıştır. ...