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

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

Detaylı