DIKTAT
SISTEM MIKROPROSESOR
Materi
Mengenal Mikroprosesor Ziloc 80 (Z-80)
SIGIT PRIYAMBODO
JURUSAN TEKNIK ELEKTRO
INSTITUT SAINS & TEKNOLOGI AKPRIND
YOGYAKARTA
DAFTAR ISI
BAB I PENDAHULUAN... 1
1.1 Pengantar... 1
1.2 Teknologi Mikroprosesor... 2
BAB II SISTEM MIKROPROSESOR... 4
2.1 Mikroprosesor ... 4
2.1.1 Bus Data... 5
2.1.2 Bus Alamat ... 9
2.1.3 Bus Kontrol... 12
2.2 Memori... 15
2.3 Mikroprosesor dalam Organisasi Komputer ... 16
2.4 Bahasa Mesin Mikroprosesor ... 18
2.4.1 Pembuatan Program Bahasa Mesin ... 18
2.4.2 Register-register... 22
2.4.3 Cara Pengalamatan ... 23
2.4.4 Operasi Penumpukan (stack) ... 24
2.4.5 Sub Routine ... 25
BAB III MIKROPROSESOR Z-80... 28
3.1 Sistem Minimal Mikroprosesor ... 28
3.1.2 Register pada Z-80 ... 32
3.2 PIO Z-80 ( Pararel Input-Output Z-80 )... 40
3.2.1 Diagram Port Logic ... 41
3.2.2 Penyusunan Interrupt control ... 43
3.2.3 Susunan Pin dari PIO Z-80... 43
3.2.4 Fungsi Pin dari PIO Z-80 ... 44
3.2.5 Pemprograman PIO Z-80 ... 49
3.3 Sistem Memori... 51
3.3.1 EPROM 2716 ... 51
3.3.2 RAM ( Random Acces Memory ) ... 53
3.4 Rangkaian Address Decoder... 54
BAB IV PERANCANGAN PROGRAM MIKROKOMPUTER Z-80 DENGAN PENAMPIL MPF-1... 55
4.1 Spesifikasi MPF-1... 55
4.1.1 Spesifikasi Perangkat Keras ... 55
4.1.2 Spesifikasi Perangkat Lunak ... 57
4.2 Gambaran Umum MPF-1 ... 59
4.2.1 Fungsi Program Monitor ... 59
4.2.2 Notasi dan Penampil Program Monitor ... 60
4.2.3 Pesan Kesalahan ... 62
4.2.4 Alamat RAM ... 62
4.3.1 Inisialisasi Sistem MPF-1... 63
4.3.2 Melihat dan Merubah Isi Memori... 63
4.3.2.1 Melihat Isi Memori ... 63
4.3.2.2 Merubah Isi Memori ... 64
4.3.3 Melihat dan Merubah Isi Register ... 69
4.3.3.1 Melihat Isi Memori ... 69
4.3.3.2 Merubah Isi Register ... 71
4.4 Dasar Perancangan Program Mikrokomputer ... 71
4.4.1 Analisa Masalah ... 72
4.4.2 Flowchart... 74
4.4.3 Perancangan Program... 75
4.4.4 Penulisan Program ... 76
4.4.5 Program Assembly ... 79
4.4.6 Memanggil Program... 80
4.4.7 Pelaksanaan Program ... 81
4.5 Instruksi Cabang dan Program Loop ... 81
4.5.1 Program Counter ... 81
4.5.2 Instruksi Cabang... 82
4.5.3 Kondisi Instruksi Cabang... 82
4.5.4 Program Loop... 83
BAB V PENERAPAN MIKROPROSESOR Z-80 SEBAGAI PENYIMPAN DAN PEMANGGIL PROGRAM PADA PITA MAGNETIK... 86
5.1 Penyimpan dan Pemanggil Program pada Pita Magnetik... 86
5.2.1 Memasukkan Program... 87
5.2.2 Menjalankan Program ... 87
5.2.3 Merekam Program ... 87
5.2.4 Memanggil Program... 87
5.3 Pembuatan Program Utama ... 87
5.3.1 Nada Telepon ... 88
5.3.1.1 Diagram Alir ... 88
5.3.1.2 Program Utama... 89
5.3.2 Display HELPUS (tidak berkedip)... 91
5.3.2.1 Listing Program ... 91
5.3.3 Display HELPUS (berkedip)... 92
5.3.3.1 Listing Program ... 92
5.3.4 Organ Mikrokomputer... 94
5.3.4.1 Flowchart... 94
5.3.4.2 Listing Program ... 95
DAFTAR GAMBAR
Gambar 2.1 Mikroprosesor ideal... 5
Gambar 2.2 Mikroprosesor 8-bit ... 6
Gambar 2.3 Suatu bus data dari mikroprosesor 8-bit ... 7
Gambar 2.4 Bus alamat ... 10
Gambar 2.5 Ruang memori mikroprosesor dengan bus alamat 16-bit ... 11
Gambar 2.6 DMA oleh suatu alat luar ... 13
Gambar 2.7 Suatu saluran alamat dan saluran bus data dua arah ... 13
Gambar 2.8 Mikroprosesor umum (generaziled) ... 14
Gambar 2.9 Diagram operasi program ... 21
Gambar 3.1 Konfigurasi PIN Z-80 CPU ... 29
Gambar 3.2 Diagram blok port logic dari PIO Z-80 ... 41
Gambar 3.3 Diagram kelompok pin pada Z-80... 44
Gambar 3.4 Susunan pin-pin dari EPROM 2716 ... 52
Gambar 3.5 Diagram blok EPROM 2716 ... 52
Gambar 3.6 Susunan pin-pin dari RAM 6116... 54
Gambar 4.1 Susunan perangkat keras MPF-1 ... 56
Gambar 4.2 Nomor tampilan (display)... 62
Gambar 4.3 Tampilan setelah menekan tombol ADDR... 63
Gambar 4.4 Tampilan setelah menekan tombol 1800 ... 64
Gambar 4.5 Tampilan merubah isi memori... 65
Gambar 4.7 Tampilan merubah isi register ... 71
Gambar 4.8 Urutan analisa perancangan program ... 74
Gambar 4.9 Simbol-simbol dalam flowchart ... 75
Gambar 5.1 Flowchart nada telepon... 88
DAFTAR TABEL
Tabel 2.1 Angka oktal ... 8
Tabel 2.2 Angka heksadesimal... 9
Tabel 2.3 Pelaksanaan dari instruksi panggil ... 27
Tabel 3.1 Konfigurasi register Z-80 ... 32
Tabel 3.2 Format program status word (register bendera) ... 33
Tabel 3.3 Arti bit-bit dari program status ... 34
Tabel 3.4 Format kata set mode ... 49
Tabel 3.5 Format kata pemilihan register I/O ... 50
Tabel 3.6 Mode kerja dari EPROM 2716... 53
BAB I PENDAHULUAN
1.1 PENGANTAR
Perkembangan teknologi elektronika dewasa ini mengalami peningkatan
yang sangat pesat. Perkembangan ini cenderung mengarah pada peningkatan
optimalisasi kecepatan kerja dan minimalisasi. Artinya peralatan dan komponen
elektronika diupayakan menggunakan materi dan ukuran yang semakin kecil
tetapi mempunyai kemampuan kecepatan maupun kerja yang lebih tinggi. Dapat
dilihat dewasa ini banyak terdapat produk rangkaian terintegrasi yang lebih
dikenal dengan nama IC ( integrated circuit). Hanya dengan satu serpih rangkaian
IC saja sudah dapat menggantikan fungsi umum dari beberapa rangkaian yang
rumit dan kompleks. Misalnya dalam bidang komputer, komponen mikro
komputer yang dapat melakukan pengolahan data yang meliputi operasi-operasi
aritmatika dan logika dalam satu serpih secara internal, dewasa ini sangat mudah
diperoleh salah satunya adalah mikroprosesor Z-80. Mikroprosesor ini relatif
murah yang beredar di pasaran jika dibandingkan dengan jenis mikroprosesor
lainnya.
Salah satu dampak positif dari perkembangan teknologi elektronika
dibidang rangkaian terintegrasi, adalah menuntut para peneliti dibidang
elektronika untuk terus berkarya dan mengembangkan ide-idenya untuk dapat
menemukan peralatan-peralatan elektronika yang semakin canggih. Hal ini sangat
elektronika hanya dengan menghubungkan rangkaian IC, tanpa mengetahui sistem
perkawatan yang ada dalam blok-bloknya.
Komponen mikroelektronika yang dibuat dengan bantuan komputer dan
selanjutnya komponen tersebut digunakan untuk membuat komputer dengan
kemampuan yang lebih canggih. Kecendrungan itu juga didukung dengan
kretivitas para peneliti dibidang elektronika yang demikian tinggi. Disamping
tuntutan masyarakat konsumen yang menginginkan semua serba otomatis dan
praktis. Perkembangan dan penerapan teknologi elektronika khususnya, mau tidak
mau akan mewarnai segala bidang kehidupan. Mula-mula dari hal-hal yang sangat
sederhana sampai kepada hal-hal yang lebih rumit dan kompleks, yang tidak
mungkin dilakukan oleh manusia.
1.2 TEKNOLOGI MIKROPROSESOR
Dalam perkembangan teknologi mikroprosesor ini menduduki tempat
yang sangat dibutuhkan oleh manusia modern. Alat elektronika modern hampir
semua menggunakan chip ini, apalagi di jaman informasi bebas seperti sekarang
ini kebutuhan akan mikro chip sangat berguna sekali baik dalam penggunaannya
yang sangat efiseien, bentuknya yang mudah dibawa, atau yang mudah
pengorperasiannya. Perancangan sistem elektronika ini ditetapkan dalam berbagai
aplikasi. Mikroprosesor telah banyak digunakan dalam kalkulator saku,
instrumen-instrumen laboratorium, barang-barang konsumer, sistem pengendali
terbang dari pesawat terbang, sistem komputer perusahaan, dll. Ke semua itu
dudukung oleh teknologi yang bernama mikrokomputer dengan mikro chip yang
Data program yang telah kita tuliskan dalam mikroprosesor akan hilang
jika catu daya yang ada pada mikroprosesor mati, dan pemprogram harus
memasukkan data program lagi agar mikroprosesor dapat bekerja lagi sesuai
dengan yang diinginkan. Mungkin ini merupakan suatu kejadian yang kurang
nyaman dan tentunya memerlukan suatu solusi untuk mengatasinya, agar data
yang telah di-program tidak perlu lagi dimasukkan dalam mikroprosesor jika
tiba-tiba catu daya mati. Fenomena seperti ini tentunya memerlukan suatu pemecahan
yang tepat, penggunaan pita magnetik untuk memanggil dan menyimpan data
merupakan solusi terbaik untuk mengatasi permasalahan seperti di atas, dimana
BAB II
SISTEM MIKROPROSESOR
2.1 Mikroprosesor
Dalam beberapa tipe mikroprosesor yang ada selama ini, banyak memiliki
ciri yang sama. Perkembangan desainnya mendekati pada CPU dalam satu chip
yang ideal dan lengkap, komputer yang demikian terdiri dari beberapa rangkaian
yang terpadu yang disebut dengan IC. IC ini dapat melakukan penyimpanan
program dan dirancang pula untuk melakukan perantaraan (interface) dengan
mudah pada alat-alat yang ada diluar.
Dalam pembuatannya mikroprosesor mempunyai batasan kualitas ideal
seperti pada gambar 2.1, suatu mikroprosesor mempunyai N saluran masukan dan
keluaran. Karena mikroprosesor merupakan piranti digital maka hanya ada dua
tingkatan tegangan yang dipasang pada salurana masukan dan juga akan muncul
dua tingkatan tegangan pada keluaran. Kedua tegangan tersebut dinamakan
dengan logika Nol dan logika Satu (bilangan bit).
Sinyal-sinyal pada saluran masukan adalah data masukan ke
mikroprosesor, data-data tersebut dapat berasal dari saklar, sensor, papan tombol,
atau peralatan lainnya. Didalam mikroprosesor yang ideal disimpan program
mikroprosesor program tersebut adalah suatu kumpulan dari serangkaian perintah
berurutan yang menentukan bagaimana program masukan diproses dan informasi
Maka secara konseptual mikroprosesor adalah suatu alat digital yang
menerima data dari sejumlah saluran masukan, memproses atau menurut
ketentuan-ketentuan program yang disimpan dan menghasilkan sebuah sinyal
keluaran sebagai akibat dari pemprosesan data tersebut. Tingkatan-tingkatan
logika pada saluran keluaran mikroprosesor ditentukan oleh dua faktor :
1. Data yang lengkap dari sinyal masukan ke mikroprosesor.
2. Program mikroprosesor yang disimpan.
N 4 3 2 1
M 4 3 2 1
Gambar 2.1. Mikroprosesor Ideal
Kunci dari keserbagunaan dari mikroprosesor adalah bahwa bagi
perangkat keras (hardware) yang sama atau yang sangat mirip, program-program
dapat didesain untuk sejumlah besar pemakaian yang berbeda.
2.1.1 Bus Data
Mikroprosesor-mikroprosor yang riil tidak mampu mendapatkan
kemewahan dari N saluran masukan dan M saluran keluaraan dengan bilangan –
bilangan N dan M yang sangat besar, untuk kebanyakan mikroprosesor , N sama
dengan M. Bilangan ini didefinisikan sebagai lebar jejak data atau ukuran kata
(word size) dari mikroprosesor yang bersangkutan. Satu parameter yang paling
lazim digunakan dalam klasifikasi mikroprosesor adalah lebar jejak data.
Saluran-saluran digunakan untuk mengangkut data dari mikroprosesor dan ke
mikoprosesor secara kolektif disebut bus data. Gambar 2.2. memperlihatkan suatu
mikroprosesor yang mempunyai lebar jarak data 8-bit (yaitu M = N = 8).
Mikroprosesor ini hanya beroperasi pada data 8-bit, satu kata data dari 8-bit
didefinisikan sebagai satu byte. Dalam hal mikroprosesor 8-bit yang diperlihatkan
pada gambar 2.3, kata data tersebut dibangun oleh 8 angka biner D0sampai D7. D0
disebut bit yang paling tidak berarti (Least Signification Bit disingkat LSB).
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
1
Gambar 2.3. Suatu Bus Data dari Mikroprosesor 8-bit
D7 disebut bit yang paling berarti (Most Signifacant Bit) atau MSB kata
data dalam bus dapat dinyatakan secara numerik dengan berbagai cara. Cara
paling sederhana adalah dinyatakan sebagai notasi biner dalam bilangan biner.
Dalam notasi ini kata data 8-bit ditunjukkan pada gambar 2.3. ditulis sebagai
11101011. Untuk menunjukkan bahwa bilangan ini suatu bilangan biner, bilangan
tersebut dapat diberi akhiran dengan huruf B atau indek 2 sebagai berikut :
11101011 B atau 11101011 2
Kata data ini juga dapat dinyatakan sebagai suatu bilangan oktal. Dalam
suatu oktal setiap kelompok dari tiga angka biner ditunjukkan satu bilangan antara
0 sampai 7 menurut tabel 2.1. Tabel ini dapat digunakan untuk mencari ekwivalen
oktalnya dari kata biner :
1 1 1 0 1 0 1 1 biner
3 5 3 oktal
353 adalah ekwivalen oktal dari bilangan biner 11 101 011. Untuk
menunjukkan bahwa bilangan tersebut notasi oktal, bilangan tersebut dapat diberi
akhiran dengan huruf Q atau indek 8 sebagai berikut :
353 Q atau 3538
Cara yang ketiga untuk menyatakan kata data (dan merupakan cara yang
paling banyak digunakan sehubungan dengan mikroprosesor) adalah sebagai suatu
bilangan heksadesimal, setiap gugusan dari 4-bit ditunjuk satu huruf, menurut
tabel 2.2. Ekwivalen heksadesimal untuk bilangan biner diatas dapat diperoleh
sebagai berikut :
Tabel 2.1.Angka oktal
Bilangan Biner Angka oktal
000 0
001 1
010 2
011 3
100 4
101 5
110 6
Tabel 2.2.Angka Heksadesimal
EB adalah ekivalen heksadesimal dari bilangan biner 1110 1011 dari
bilangan-bilangan oktal 353 kata heksadesimal biasanya disingkat dengan Hex.
Bilangan Hex dapat diakhiri dengan huruf H atau dengan indek 16.
2.1.2 Bus Alamat
Untuk mikroprosesor ideal data keluaran dapat merupakan fungsi dari
seluruh data dari seluruh masukan, sifat dari fungsi ini ditentukan oleh program
mikroprosesor. Apabila mikroprosesor ideal dianggap mempunyai memori
internal yang terbatas, mikroprosesor yang riil jumlah memori internal yang
tersedia, untuk meyimpan data harus dibatasi, proses penyimpanan informasi
dalam penyimpanan dalam memori tersebut penulisan memori, proses mengambil
informasi dari memori tersebut pembacaan memori.
Bilangan Biner Heksadesimal
Informasi disimpan dalam memori pada kumpulan lokasi memori, suatu
lokasi memori mempunyai alamat memori yang ditentukan dengan menggunakan
notasi heksadesimal sebelum membaca dan menulis mikroprosesor harus memilih
alamat memori yang dikehendaki dan mengeluarkan informasi ini pada bus
alamat, kebanyakan mikroprosesor mempunyai bus alamat yang terpisah
diperlihatkan pada gambar 2.4. bus alamat dapat pada logika 1 maupun pada
logika 0 karena masing-masing mikroprosesor dengan p saluran alamat dapat
berhubungan dengan 2palamat tertentu.
Memori
Bua alamat
Saluran bus dua arah
Gambar 2.4. Bus Alamat
Kata alamat dari mikroprosesor dapat dinyatakan dalam notasi
heksadesimal dengan cara yang sama dengan kata data. Dalam penulisan alamat
1 2 3 4 5 . . p
mikroprosesor
I/0
pada mikroprosesor bilangan heksadesimal sering digunakan daripada bilangan
biner karena penulisannya yang lebih ringkas.
Seluruh kumpulan dari lokasi memori suatu mikroprosesor yang dapat
dihubungi disebut ruang memori. Notasi heksadesimal digunakan untuk
menyatakan alamat dari masing-masing lokasi dalam ruang memori. Untuk
mikroprosesor dengan bus alamat 16-bit, lokasi memori yang paling rendah
berada pada alamat 0000 sedangkan yang paling tinggi berada pada alamat FFFF
FFFF
64 K
0002
0001
0000
Gambar 2.5. Ruang Memori untuk Mikroprosesor dengan bus alamat 16-bit
Ukuran dari ruang memori dinyatakan dalam satuan kilokata (kiloword),
dimana satu kilo kata sama dengan 210 atau 1024 kata-kata dalam hal satu kata
dengan 8-bit, satuannya adalah kilobyte yang sama dengan 1024 byte. Walaupun
awalan kilo biasanya menunjukkan 1000 satuan, cara pemakaian yang agak
suatu mikroprosesor 8-bit dengan bus alamat 16-bit dapat berhubungan dengan
ruang memori 64 kilobyte atau 64K.
2.1.3 Bus Kontrol
Selain bus data dan bus alamat mikroprosesor harus memiliki saluran
pengendali untuk saluran masukan dan keluaran yang dapat digunakan untuk
menyerempakkan operasi mikroprosesor dengan operasi luar. Saluaran pengendali
ini yaitu berupa bus pengendali.
Dalam mikroprosesor disediakan suatu pengendali masukan khusus yang
memungkinkan operasi DMA (direct memory access) masukan ini ditandai
dengan masukan HOLD pada gambar 2.6, suatu sinyal “ 1 “ pada saluran HOLD
suatu alat diluar meminta pengendali dari bus data dan alamat maka keadaannya
ditempat pada tri state, pada gambar 2.7. dan keadaan ini secara efektif
memutuskan bus data dan alamat pada mikroprosesor. Dan mikroprosesor akan
memberi tanggapan pada permintaan HOLD dan mengeluarkan sinyal pengakuan
HOLD pada saluran HLDA yang diperlihatkan pada gambar 2.7.
Sinyal pengendali dari bus pengendali yang diberikan dapat aktif tinggi
atau rendah dalam contoh diatas (DBIN, HOLD, dan HLDA) sinyalnya yang
disebut aktif tinggi karena isyarat logika 1 digunakan untuk menunjukkan isyarat
dari isyarat aktif, apabila logika 0 menunjukkan bahwa bus data berada dalam
modus masukan suatu garis diatas nama sinyal dan menunjukkna bahwa sinyal
tersebut sinyal aktif rendah dan keluaran pengendali akan ditandai dengan DBIN
menunjukkan dalam suatu pandangan sinyal-sinyal kontrol yang mana aktif
tinggi dan yang mana aktif rendah.
1
Bus alamat
Bus data dua arah
Gambar 2.6. DMA Oleh Suatu Alat Luar
‘1’ ‘1’
Saluran alamat
Saluran bus data dua arah
Gambar 2.7.Suatu Saluran Alamat dan Saluran Bus Data dua Arah
Hold Alat
Memori
Masukan
Pengendali Bus alamat Bus
pengendali
Keluaran pengendali
Saluran bus catu daya data dua arah
Gambar 2.8. Mikroprosesor Umum (Generaziled)
Mikroprosesor merupakan suatu alat digital dengan :
1. Bus data.
2. Bus alamat.
3. Bus pengendali.
Mikroprosesor dapat memasukkan informasi sinyal digital, memproses
informasi menurut suatu program disimpan dan mengeluarkan informasi dalam
bentuk sinyal digital program yang disimpan berada dalam memori yang ada di
mikroprosesor dalam hal yang lain program tersebut disimpan dalam memori luar
mikroprosesor.
Disamping ketiga bus diatas mikroprosesor memerlukan satu atau lebih
tegangan catu daya untuk menjalankan rangkaian-rangkaian yang ada didalamnya
2.2 Memori
Dalam prosesnya mikroprosesor membutuhkan sebuah memori untuk
dapat berfungsi. Program dan data yang diperlukan disimpan dalam
mikrokomputer. Dua jenis memori dapat digunakan dalam suatu sistem
mikroprosesor adalah Volatoil (mudah menguap) dan Nonvolatoil (tidak mudah
menguap).
Memori volatoil mempunyai ciri bahwa sekali daya diambil maka data
yang tersimpan akan hilang sedangkan memori non-volatoil data tidak akan hilang
bila daya diambil. ROM (memori yang hanya untuk membaca) adalah salah satu
dari memori non-volatoil yang mengandung informasi tetap yang tidak berubah
atau susah untuk dirubah, sedangkan RAM (Random Access Memory) adalah
salah satu dari contoh dari memori volatoil.
ROM dapat diprogram oleh pabrik maupun pemakai, ROM yang
diprogram pabrik diberi suatu pola memori pada saat pembuatannya yang
ditentukan oleh suatu proses (perisai metalisasi IC). ROM yang dapat diprogram
oleh pemakai (EPROM) terdiri dari dua jenis. PROM yang disambung dengan
pelelehan (fuse link) hanya dapat diprogram sekali dan erasable programmable
ROM (EPROM) hanya dapat dihapus oleh pemakai dan diprogram kembali. Ada
dua jenis EPROM yaitu : UV PROM (dihapus dengan penyinaran ultraviolet yang
kuat), jenis EPROM yang lainnya adalah EAROM (Electrically alterable ROM)
artinya ROM yang dapat dihapus secara elektronis. RAM digolongkan menjadi
Di dalam RAM dinamik informasi disimpan sebagai urutan dan memori
ini akan hilang jika tidak di refresh, suatu rangkaian penyegar diluar memori
diperlukan jika mengandung RAM dinamik. Memori statik tidak memerlukan
rangkaian penyegar, karena informasi yang disimpan dalam flip-flop yang ditahan
(latched flip-flop).
2.3 Mikroprosesor dalam Organisasi Komputer
Bersamaan dengan komponen LSI lainnya, mikroprosesor dipakai untuk
membuat sebuah komputer, mikroprosesor melaksanakan sebagian besar fungsi
atau kerja unit pemproses sedangkan komponen lainnya melaksanakan fungsi
memori, masukan/keluaran, dan fungsi lain yang diperlukan.
Semua komputer mempunyai organisasi logika yang sama dengan
beberapa unit dasar. Fungsi utama unit pengendali adalah mengambil, mengkode,
melaksanakan urutan instruksi sebuah program yang tersimpan dalam memori.
Unit pengendali mengatur urutan operasi sebuah sistem khususnya untuk
menghasilkan dan mengatur sinyal yang ada pada bus pengendali. Bus adalah
sarana untuk sinyal ketiga bus standar yang digunakan untuk menghubungkan
sistem mikroprosesor adalah bus data, bus alamat, dan bus pengendali.
Unit pengendali umumnya dihubungkan dengan ALU (Arit Metic and
Logical Unit). Kombinasi unit pengendali dan ALU dinamakan unit pemproses
pusat (CPU). Jadi pada dasarnya mikroprosesor adalah CPU pada suatu serpih.
Dalam mendesain sebuah komputer, CPU tidak harus diimplementasikan
Modul memori digunakan untuk menyimpan informasi secara fungsional,
memori berisi dua jenis informasi yaitu program dan data. Program adalah
serangkaian instruksi yang telah disandikan dalam bentuk biner sehingga dapat
menetap dalam memori elektronik.
Program menetapkan urutan langkah yang harus dilakukan oleh komputer
dibawah pengawasan unit pengendali, masing-masing instruksi berurutan dalam
suatu program diambil dan disimpan dalam sebuah register khusus unit
pengendali, dimana instruksi-instruksi tersebut akan dikode dan dilaksanakan.
Data yang terdapat dalam memori diproses oleh ALU, biasanya data
berupa angka atau huruf yang dipresentasikan dalam sistem biner.
Istilah memori biasanya berbagai jenis memori yang mencakup memori
utama (main memori). Memori utama digunakan untuk menyimpan program yang
sedang dilaksanakan dan data yang diperlukan atau dihasilkan sewaktu
pelaksanaannya. Memori utama yang khas adalah rangkaian terpadu LSI jenis
MOS dan inti Magnetik. Waktu siklus yang khas untuk memori utama adalah
dalam orde ratus nano detik. Memori massal dipakai untuk menyimpan program
dan data. Dua modul lainnya adalah modul masukan dan keluaran kedua modul
ini digunakan untuk komunikasi dengan dunia luar, modul masukan menyediakan
informasi bagi ALU atau memori separti alat masukan keyboard. Modul keluaran
menyajikan data yang datang dari ALU atau melaksanakan perintah-perintah.
Modul keluaran yang khas adalah pencetak, lampu atau mekanisme (motor atau
2.4 Bahasa Mesin Mikroprosesor
Operasi mikroprosesor dikendalikan oleh suatu program, dan program ini
terdiri dari sekumpulan instruksi. Instruksi-instruksi ini disimpan sebagai barisan
logika 1 dan logika 0 di dalam memori dan membentuk bahasa mesin dari
mikroprosesor.
Mikroprosesor-mikroprosesor yang berbeda mempunyai perangkat
instruksi yang berbeda yang dapat digunakan untuk menyusun program.
Instruksi-instruksi dari mikroprosesor 8748 misalnya berbeda dengan Instruksi-instruksi-Instruksi-instruksi
yang ada pada mikroprosesor 8080.
Apabila bekerja dengan suatu mikroprosesor sangat penting untuk
memahami perangkat instruksi dan dapat menggunakan instruksi dalam menyusun
program.
2.4.1 Pembuatan Program Bahasa Mesin
Walaupun kumpulan bahasa mesin berbeda dari satu prosesor yang lain.
Pabrik dari 8080 dan 8085 menggunakan kumpulan numeric (singkatan untuk
memudahkan untuk mempermudah dihafal) yang berbeda dengan pabrik Z-80
untuk masing-masing instruksi tersebut.
Untuk memberikan bagaimana instruksi dapat digunakan untuk menyusun
suatu program mikroprosesor, suatu program yang sangat sederhana untuk
menerima data 8-bit dari suatu pintu masukan, kemudian mengeluarkan data dari
8-bit ini keluar dari suatu pintu keluaran. Instruksi pertama yang diperlukan oleh
11011011
Instruksi ini harus diikuti dengan byte kedua dari informasi untuk
menentukan salah satu dari 257 pintu masukan yang mungkin. Untuk masukan ke
pintu 1, misalnya, memerlukan kode.
1101 1011
0000 0000
Instruksi kedua dalam contoh program ini, adalah instruksi output, untuk
pengeluaran data dari pintu 3 akan memerlukan kode sebagai berikut :
1101 0011
0000 0011
Untuk ringkasnya, dengan mempergunakan notasi hex, seluruh program sekarang
dapat dituliskan sebagai :
DB
01
D3
03
Masing-masing byte dari program 4-byte memerlukan satu lokasi memori.
Apabila program dimulai dari lokasi 0000H dalam memori, masing-masing byte
LOKASI MEMORI ISI MEMORI
0000H DB
0001H 01
0001H D3
0003H 03
Sekarang misalkan pintu keluar terus-menerus diperbaharui dengan data
muktahir dari pintu masuk. Untuk melakukan hal ini, suatu loop program (sinyal
program) diciptakan dengan menambahkan instruksi jump (loncat) pada program
tersebut. Sekarang program menjadi :
LOKASI INSTRUKSI KETERANGAN
MEMORI
0001H DB Masukan
0002H 01 dari pintu 1
0003H D3 Keluaran
0004H 03 ke pintu 3
0005H C3 Loncat ke
0006H 00 lokasi 00 (8-bit tingkat rendah)
0007H 00 00 (8-bit tingkat tinggi)
Instruksi yang pertama meminta data dimasukkan dari pintu 1, data ini
disimpan dalam mikroprosesor dalam register yang disebut akumulator.
Selanjutnya, mikroprosesor membaca instruksi yang berikut dalam memori, dan
melaksanakan instruksi ini dengan mengeluarkan informasi yang ada di
akumulator, ke pintu keluaran 3. Instruksi yang ketiga menyebabkan program
Waktu yang diperlukan untuk melaksanakan satu loop dalam contoh
program tersebut dapat dihitung dengan mudah. Banyaknya siklus pewaktu (status
mesin = machine status) yang diperlukan untuk, melaksanakan masing-masing
instruksi. Untuk suatu 8080 dengan pewaktu 2 MHz masing-masing siklus
pewaktu memerlukan 0,5 µs masing-masing dari ketiga instruksi dalam contoh program memerlukan 10 siklus pewaktu. Waktu seluruhnya yang diperlukan
untuk satu loop menjalani program adalah :
(10 + 10 + 10) x 0,5µs = 15µs
Apabila pewaktu yang digunakan 4MHz maka waktu yang diperlukan
akan separuh dari yang digunakan dengan pewaktu 2 MHz.
8
4
2 3 8
bus data
5 8
6 8
Gambar 2.9. Diagram Operasi Program
Accum
ROM
Masuk
an
Keluaran 8080
Reset
2.4.2 Register-register
RAM dalam mikroprosesor disusun dalam register-register. Satu register
yang demikian adalah akumulator. Sebagian besar dari instruksi bahasa mesin
didesain untuk memindahkan data dari dan ke register-register atau untuk
memanipulasi data yang disimpan dalam register-register tersebut. Dalam suatu
mikroprosesor seringkali terdapat register bendera yang terdiri dari satu kumpulan
bit-bit bendera (flag bits). Bit-bit ini dipasang (set) dan direset selama program
mikroprosesor mencatat kondisi-kondisi khusus dalam pelaksanaan instruksi.
Informasi yang disimpan sebagai bit bendera mengandung informasi yang
bermanfaat yang dapat ditanyakan oleh program mikroprosesor.
Bit-bit bendera dari mikroprosesor 8080 merupakan contoh-contoh dari
bit-bit bendera yang terdapat dalam mikroprosesor-mikropsoesor yang lain. Bit-bit
bendera ini adalah :
1. Nol.
2. Tanda.
3. Parity (paritas).
4. Carry (pindahan).
5. auxiliary (pembantu) carry.
Bendera nol dipasang pada logika 1, apabila hasil suatu instruksi sama
dengan nol, kalau tidak bendera nol dipasang kembali pada logika nol. Bendera
tanda dipasang apabila MSB dari hasil suatu instruksi adalah satu, kalau tidak bit
Bendera paritas di reset apabila hasil instruksi adalah suatu bilangan yang
paritasnya genap, kalau tidak ia di reset. Bendera carry dipasang bila suatu
instruksi menghasilkan suatu carry (pindahan dari penjumlahan) atau suatu
pinjaman (dari suatu pengurangan), kalau tidak bit tersebut di reset. Bit carry
pembantu diset apabila suatu instruksi menghasilkan suatu carry (pindahan) dari
bit 3 dan bit 4. Bendera ini digunakan dalam hitungan BCD.
2.4.3 Cara Pengalamatan ( Addresing Mode )
Satu ukuran keefektifan perangkat instruksi dari suatu mikroprosesor
ditentukan oleh banyaknya modus pengalamatan (adderessing mode). Lokasi
memori dalam suatu instruksi mikroprosesor dapat ditentukan dengan beberapa
cara dan masing-masing cara ini adalah modus pengalamatan yang berbeda.
Cara yang paling mudah untuk menentukan alamat dalam suatu instruksi
adalah memasukkan seluruh alamat 16-bit sebagai dua byte instruksi. Cara ini
disebut pengalamatan langsung. Cara pengalamatan lain terjadi bila sebuah
register penunjuk 16-bit (seperti HLO mengandung alamat dari lokasi memori
yang diinginkan). Cara ini disebut pengalamatan register tak langsung. Suatu
lokasi memori mungkin pula ditentukan dalam suatu instruksi relatif terhadap
register indeks, dimana pergeseran dari register-indeks-alamat diberikan dalam
instruksi. Cara ini disebut pengalamatan diindekskan. Suatu instruksi dapat pula
menentukan lokasi memori terhadap lokasi instruksi itu sendiri dalam memori
modus, ini disebut pengalamatan relatif. Kita dapat mengalamatkan pada data
register.Akhirnya suatu instruksi dapat menunjuk pada data yang langsung
mengikuti op-kode dari instruksi tersebut, ini disebut pengalamatan segera.
Semua modus pengalamatan diatas, digunakan oleh berbagai instruksi dari
mikroprosesor-mikroprosesor Z-80 dan 8748. Semua modus tersebut digunakan
dalam mikroprosesor 8080, kecuali pengalamatan diindekskan dan pengalamatan
relatif.
2.4.4 Operasi Penumpukan ( Stack )
Pada umumnya, informasi dapat disimpan dan dikeluaran dari RAM,
dalam urutan yang sembarang. Akan tetapi, suatu cara yang khususnya sangat
bermanfaat adalah mengatur informasi dalam memori sebagai “Last in first out”
(LIFO) atau struktur penumpukan.informasi yang terakhir disimpan dalam
memori penumpukan adalah yang pertama kali dikeluarkan. Apabila suatu
informasi dilepaskan dari tumpukan, dikatakan bahwa informasi tersebut
disembulkan (popped) dari memori.
Beberapa mikroprosesor mempunyai informasi didalamnya khusus
digunakan untuk penumpukan informasi. Mikroprosesor-mikroprosesor yang lain
menggunakan sebagian dari memori luar untuk penumpukan ini. Apabila memori
diluar digunakan untuk penumpukan ini, sebuah register dari mikroprosesor yang
disebut penunjuk penumpukan penyimpanan alamat yang paling atas dari
tumpukan. Tumpukan biasanya disimpan terbalik didalam memori. Apabila data
di dorong ke dalam tumpukan data tersebut disimpan dalam memori yang
mempunyai memori semakin rendah. Akibatnya puncak dari tumpukan
Memori tumpukan biasanya dipakai untuk menyimpan informasi tentang
keadaan mikroprosesor tepat sebelum terjadi pencabangan ke suatu subroutine.
Informasi dapat dikeluarkan dari tumpukan dengan diselesaikannya subroutine
untuk mengembalikan mikroprosesor pada keadaan tepat sebelum pencabangan ke
subroutine.
Sebelum penulisan program-program mikroprosesor seperti Z-80 atau
8080 yang mempergunakan tumpukan, sangatlah penting bahwa nilai dari stack
pointer dipasang oleh program mikroprosesor sebelum adanya operasi
penumpukan. Memang mengisi petunjuk tumpukan (stack pointer) sebagai
instruksi yang pertama dari program mikroprosesor adalah suatu kebiasaan yang
baik dalam pembuatan program. Nilai dari register penunjuk penumpukan
selanjutnya secara otomatis dikurangi setiap operasi penulisan penumpukan dan
dinaikkan mengikuti setiap operasi pembacaan penumpukan.
2.4.5 Subroutine
Subroutine adalah suatu bagian dari program mikroprosesor yang
merupakan pencabangan atau dapat dipanggil oleh bagian lain dari program
tersebut. Subroutine dipanggil dalam instruksi call (panggil) yang diikuti dengan
alamat permulaan dari subroutine. Suatu subroutine diakhiri dengan instruksi
RET. Apabila suatu subroutine dipanggil, alamat dari instruksi berikutnya dari
instruksi CALL di dorong ke dalam tumpukan sebagai alamat kembali. Instruksi
RET menyebabkan alamat kembali disembulkan dari tumpukan dan dilanjutkan
pembuatan sarang subroutine, subroutine dapat dipanggil dari dalam
subroutine-subroutine yang selanjutnya dapat memanggil subroutine-subroutine-subroutine-subroutine yang lain dan
seterusnya.
Untuk melukiskan operasi dari instruksi CALL akan dibahas perinciannya
siklus demi siklus seperti yang telah dilakukan untuk instruksi-instruksi diatas.
Sebagai ilustrasi, misalkan bahwa penumpukan disimpan diujung ruang memori
4K dan alamat dari subroutine yang dipanggil adalah 0002H. program yang
berikut digunakan untuk mengisi register penunjuk tumpukan dan memanggil
subroutine-subroutine (semua bilangan adalah heksadesimal) yang berikut :
ALAMAT MEMORI INSTRUKSI KETERANGAN
0000 31 Isi SP
0001 00 Byte rendah
0002 10 Byte tinggi
0003 CD Call (panggil)
0004 00 Byte rendah
0005 02 Byte tinggi
Perhatikan bahwa alamat kembali adalah 0006, oleh karena itu merupakan
alamat dari instruksi berikut sesudah instruksi CALL. M1 digunakan untuk
mengambil op-code instruksi. M2 dan M3 digunakan untuk membaca byte kedua
dan ketiga dari instruksi yang memberikan alamat dari permulaan subroutine yang
dipanggil M4 dam M5 digunakan untuk operasi menulis tumpukan untuk
Tabel 2.3. Pelaksanaan dari Instruksi Panggil
T1 T2 T3 T4 T5
M1 Alamat = 0003 Ready? Data = CD Pengkodean Instruksi
M2 Alamat = 0004 Ready? Data = 00
M3 Alamat = 0005 Ready? Data = 02
M4 Alamat = 0FFF Ready? Data = 00
M5 Alamat = 0FFE Ready? Data = C6
M1 Alamat = 0200 ….
Gambaran diatas menunjukkan pelaksanaan dari instruksi panggil
memerlukan lima siklus alat dan tujuh belas keadaan alat. M1 adalah pengambil
upkode. M2 dan M3 digunakan untuk membaca byte kedua dan byte ketiga
(alamat subroutine). M4 dan M5 digunakan untuk mendorong alamat kembali
keatas tumpukan. Setelah selesai instruksi call, operasi yang berikut adalah suatu
siklus M1 pada permulaan dari subroutine.
Instruksi Restart (RST) serupa dengan instruksi CALL, hanya RST
panjangnya hanya satu byte. Instruksi restart mempunyai bentuk yang umum
11ZYZ11 dan dapat menentukan satu dari delapan lokasi subroutine yang
bergantung nilai-nilai ZY dan Z. Instruksi ini ekwivalen dengan instruksi call
3-byte yang berikut :
11001101
00XYZ000
00000000
Instruksi RST biasanya digunakan mengikiuti suatu interupsi untuk bercabang ke
BAB III
MIKROPROSESOR Z – 80
3.1 Sistem Minimal Mikroprosesor
Mikroprosesor pertama kali diperkenalkan pada tahun 1976. Dengan
menggunakan proses pembuatan CMOS kanal – N, dengan menggunAkan beban
tegangan ± 5 Volt. Sinyal tambahan yang ada pada mikroprosesor Z - 80
meniadakan keperluan untuk memultiplekskan informasi status pada bus data
seperti yang ada pada 8080. Mikroprosesor Z - 80 dikemas dalam DIP (Dual In
Package). Dengan 40 pin konfigurasi, seperti pada gambar 3.1.
3.1.1 Pin pada Z - 80
Z - 80 mempunyai 16 saluran alamat yaitu A0 - A15 yang dapat
mengeluarkan alamat memori data masukan dan keluaran (I/O). Salauran ini
bersifat tri-state, artinya ia mudah dibuat mengambang (float) oleh CPU. Dengan
demikian bua alamat ini dapat dikontrol oleh logika dari luar, yang lazim disebut
external logic.
Bus data 8 - bit, yaitu dari D0 - D7, mentransmisikan data secara dua arah
(bidirectional), dari atau kedalam CPU. Saluran-saluran dasar ini juga bersifat
tri-state, sehingga dapat dikontrol oleh external logic. Bus data Z - 80 dapat
beroperasi pada level TTL normal.
Sinyal kontrol yang terdapat pada mikroprosesor Z - 80 dapat dibagi menjadi
tiga kelompok, yaitu : Sinyal kontrol, CPU kontrol, dan bus kontrol.
27 30
Gambar 3.1. Konfigurasi PIN Z-80 CPU
a. M1 : Menandakan suatu siklus perintah yang dibawa oleh
prosesor dari suatu eksekusi instruksi.
b. MREQ : Menandakan pelaksanaan suatu operasi memori
sedang berlangsung.
c. IOREQ : Menandakan suatu operasi masukan dan keluaran
sedang berlangsung. Ketika IOREQ rendah, A0 – A6
berisi alamat I/O yang siap digunakan. IOREQ juga
dapat berfungsi sebagai interrupt acknowledge, yaitu
interrupt yang akan diketahui jika IOREQ dan M1
rendah.
d. WRITE : Adalah sinyal tri-state yang menandakan bahwa CPU
siap menulis data, baik ke memoi maupun ke media
I/O.
e. READ : Adalah sinyal tri-state yang menandakan bahwa CPU
siap membaca baik dari memori maupun dari media
I/O sebagaimana ditunjuk oleh MREQ dan IOREQ.
f. RFES : adalah sebuah sinyal kontrol yang digunakan untuk
menyegarkan (refresh) memori dinamik. Ketika
RFES rendah, MREQ yang ada dapat digunakan
untuk menyegarkan memori dinamik sebagaimana
ditunjuk oleh alamat A0 - A6.
Sinyal kontrol untuk mengendalikan CPU ada lima buah, sedangkan
a. HLT
Akan mengeluarkan sinyal aktif rendah apabila CPU Z - 80 mengeksekusi
perintah HLT. Pada saat ini CPU berada pada keadaan HLT, yaitu
terjadinya eksekusi perintah NOP (no opertation) berulang-ulang untuk
mempertahankan kondisi-kondisi refresh memori dinamik. HLT hanya
dapat dihentikan oleh sebuah instruksi biasa lainnya.
b. WAIT
Menyebabkan perpanjangan waktu pelaksanaan perintah, jika CPU
berjalan terlalu cepat. Suatu memori atau perangkat I/O biasanya
mempunyai instruksi (acess) tertentu. Jika waktu acessnya lebih lama dari
periode clock CPU, maka kondisi WAIT ini harus dilaksanakan.
c. INT dan NMI
Merupakan masukan-masukan untuk melakukan inrerupsi. Perbedaannya
adalah bahwa NMI memiliki prioritas lebih tinggi dan tidak dapat
dimatikan oleh suatu instruksi.
d. RESET
Adalah sinyal kontrol bus yang melakukan beberapa hal, yaitu
mengenolkan isi program counter, interup vector dan register R. Jika
RESET sedang berjalan, maka permintaan inrerupsi melalui INT tidak
akan dilayani dan semua sinyal tri-state dalam keadaan mengambang.
e. BURSQ dan BUSAK
Merupakan sinyal bus reques dan bus acknowlegdge. Untuk melakukan
sistem dari mikroprosesor. Hal ini dapat dilaksanakan dengan cara
memberikan masukan rendah pada BUSRQ, sehingga CPU akan membuat
semua jalur tri-state mengambang dan memberikan tanda dengan
merendahkan taraf logika di terminal BUSAK.
3.1.2 Register pada Z - 80
Mikroprosesor Z - 80 memiliki dua set register yang dapat diprogram dan
dua buah program status word. Pada satu saat, hanya satu set programmable
register dan satu program status word yang dapat diakses. Di dalam CPU Z - 80
terdapat sebuah program counter 16-bit,(IX dan IY), sebuah interrupt vector 8-bit,
dan sebuah refresh memori 8-bit. Tabel 3.1.memperlihatkan pengorganisasian
register-register tersebut.
Terdapat dua set progam status word dalam prosesor Z - 80 yaitu utama
(F) dan pilihan (F’), beserta register-register A,B,C,D,E,H,dan L. suatu instruksi
tunggal pada CPU Z - 80 dapat menukar penggunaan atau isi dari kedua register
tersebut.
Tabel 3.1. Konfigurasi Register Z - 80
Int. Vektor
I
Ref. Vektor
R
INDEX REGISTER IX
INDEX REGISTER IY
STACK POINTER SP
PROGRAM COUNTER PC
Pada saat hanya satu instruksi tunggal yang dapat diakses. Dua buah
register yaitu IX dan IY, yang besarnya 16-bit digunakan sebagai base register.
Instruksi-instruksi tunggal tersebut adalah EX (SP),HL,EX (SP),IX, EX (SP),HL,
EX AF,AF’, EX DE, HL.
Program status word ini juga dikenal dengan register bendera (flag
register). Register ini sangat berperan dalam operasi-operasi aritmatika, logika dan
juga sebagai kondisi untuk syarat program (jump dan branch). Format dari
program status word tersebut dapat digambarkan seperti pada tabel 3.2. dibawah.
setelah operasi logika atau aritmatika selesai dilaksanakan, hasilnya akan
disimpan di register A yang juga akan mempengaruhi kedudukan register bendera
(register F).
Tabel 3.2. Format Program Status Word (Register Bendera)
7 6 5 4 3 2 1 0
Isi register juga dapat dipindahkan ke memori dengan instruksi khusus
(PUSH instruksion). Tidak semua status dari register bendera ini sering digunakan
dalam suatu operasi umum. Adapun status-status yang sering digunakan adalah
sebagai berikut :
a. Carry flag
Carry flag digunakan untuk menguji apakah suatu operasi penjumlahan/
pengurangan menghasilkan carry/borrow. Selain itu, digunakan sebagai bit
ke-19 bagi operasi instruksi Shiff dan Rotate. Carry flag juga dapat
digunakan sabagai kondisi untuk instruksi jump, return, dan call.
b. Over flow/Parity flag
Merupakan dua buah flag yang mempunyai dua fungsi yang berbeda. Parity
(P) = 0, bila jumlah bit benilai 1 (high) ganjil, dan P = 1, bila bila jumlah bit
bernilai 1 (high) genap.
Over flow digunakan untuk mendeteksi pada operasi penjumlahan/
pengurangan, apakah telah terjadi over flow setelah mencapai bilangan
positif terbesar (+ 127) atau mengalami over flow setelah mencapai bilangan
negatif terbesar (- 128). Over flow bernilai V = 1, bila terjadi over flow atau
sebaliknya.
Tabel 3.3. Arti bit-bit dari program status
Bit Nama flag Logika Katerangan
0 C : Carry
0
1
Operasi tanpa carry
1 N : Non carry
Parity even tidak terjadi over flow
Parity odd tidak terjadi over flow
3 Tidak digunkan - ---
4 H : Half carry
0
1
Tidak terjadi carry pada bit 4 register A
Terjadi carry pada bit 4 register A
5 Tidak digunakan - ---
6 Z : Zero
0
1
Hasil operasi bukan 0
Hasil operasi 0
Adalah flag yang menunjukkan apakah harga bit yang tengah dihitung atau
sedang ditransfer adalah 0. Bila ‘ya’ maka nilai flag ini akan bernilai Z = 1.
Selain itu juga sering dipakai untuk mendeteksi apakah nilai yang
dibandingkan sama besarnya.
d. Sigh flag
Adalah flag yang mencerminkan nilai bit yang paling signifikan (bit 7).
complemnts = 0, bila bilangan ALU adalah positif dan sebaliknya. Pada
tabel 3.1. diatas diberikan sebuah gambaran secara umum tentang arti dari
bit-bit pada program status word setelah suatu operasi.
Dilihat dari segi pemprograman, mikroprosesor Z - 80 memiliki dua set
register yang dapat diprogram dan dua buah program status word (PSW). Pada
suatu saat, hanya dapat diprogram satu set register serta sebuah PSW. Selain itu,
Z - 80 juga memiliki sebuah program counter 16-bit. Stack pointer 16-bit, dua
buah indeks register, interrupt vector register 8-bit, dan refresh memori register
8-bit. Pada gambar 2.3. diatas diperlihatkan susunan register dari Z-80. Sedangkan
kegunaan umum dari register-register tersebut adalah sebagai berikut :
a. Fungsi Umum dari Register-Register pada Z-80
1. Akumulator
Merupakan pusat dari pemproses data yang juga merupakan tempat salah
satu operand dan tempat tujuan dari hasil operasi aritmatika, logika dan
operasi lainnya.
2. Register HL
Merupakan register dari alamat memori utama. Beberapa instruksi
seringkali merujuk pada data yang alamatnya ditunjuk oleh register ini,
yang dilambangkan dengan HL.
3. Register DE
Pasangan register DE adalah merupakan register dari alamat memori
sekunder. Pemrogram, dapat menukar isi register HL dengan
4. Register B ,C dan BC
Register-register ini merupakan register serbaguna (multi purpose) yang
fungsi utamanya adalah sebagai penghitung (counter) dan sebagai
penyimpan data sementara. Register B sering digunakan sebagai
penghitung loop, karena memiliki fungsi khusus pada instruksi DJNZ.
5. Register Index dan IY
Register index digunakan apabila pemprogram menunjuk alamat memori
dengan suatu offset atau pemindahan yang tetap dari suatu referensi
variable. Register ini dapat pula membantu register GHL jika pasangan
register HL telah terisi.
b. Fungsi Khusus Register-Register pada Z-80
Fungsi-fungsi khusus yang dapat dilaksanakan oleh masing-masing
register pada Z-80 adalah sebagai berikut:
1. Akumulator
Register ini adalah satu-satunya register yang dapat diisi dan
dipindahkan isinya secara langsung melalui masukan dan keluaran port.
Akumulator juga merupakan satu-satunya register yang isinya dapat
digeser, dikomplement, diatur letak desimalnya, atau dinegasi dengan
instruksi satu byte. Selain itu akumulator dapat diisi dan dipindahkan
dari atau ke memori yang alamatnya ditunjuk pada pasangan register BC
atau DE. Register ini juga merupakan tempat asal dan tujuan dari semua
2. Register HL
Register ini dapat digunakan secara tidak langsung pada
instruksi-instruksi ADC, ADD, AND, CMP, DEC, INC, OR, SUB, dan XOR.
Register HL merupakan tempat dan tujuan bagi instruksi-instruksi ADD
HL, ADC HL, dan SBC HL. Pasangan register ini dapat ditukar isinya
dengan pasangan register DE atau dengan isi register stack teratas. Isi
register HL dapat dipindahkan ke dalam stack pointer dengan instruksi
LD SP, HL atau kedalam program counter dengan instruksi JP (HL).
Register HL dapat juga digeser isinya dengn instruksi satu byte, yaitu
dengan instruksi ADD HL. Pasangan register HL dengan otomatis akan
digunakan sebagai register alamat asal dari data dalam operasi
pemindahan blok, pembanding blok dan pengeluaran data satu blok.
3. Register DE
Pasangan register DE adalah merupakan satu-satunya pasangan register
yang isinya dapat saling menggantiakn dengan isi register HL melalui
perintah EX DE, HL. Register ini secara otomatis akan berfungsi sebagai
register dari alamat tujuan operasi pada operasi pemindahan blok.
4. Register BC
Pasangan register BC secara otomatis akan berfungsi sebagai penghitung
pada operasi pemindahan blok dan pembanding blok seperti pada
instruksi CPIR atau LDIR.
5. Register B
Register B secara otomatis akan berfungsi sebagai penghitung pada
6. Register C
Register ini merupakan satu-satunya register yang dapat berfungsi
sebagai alamat port pada operasi pemasukan dan pengeluaran data, yaitu
dengan instruksi IN reg (C) atau OUT (C), reg.
7. Register Index IX dan IY
Register IX dan IY merupakan register yang berfungsi pada
pengalamatan index (index addersing) dengan (IX + d). Artinya alamat
memori ditunjuk oleh IX dan d, atau oleh IT dan d (d = displacent).
Selain itu register IX dan IY juga berfungsi sebagai alamat asal data dan
alamat hasil dari operasi ADD IX, rp atau ADD IY,rp dimana rp adalah
pasangan register. Isi register IX dan IY dapat ditukar dengan isi stack
teratas, dipindahkan ke dalam stack pointer atau program counter.
8. Stack pointer
Stack pointer secara otomatis akan bertambah satu jika terjadi operasi
pengambilan data dari stack dan berkurang satu sebelum instruksi
penyimpanan data ke stack dijalankan. Stack pointer adalah satu-satunya
register alamat yang dapat digunakan untuk trasfer pasangan register lain
dari atau kedalam memori melalui instruksi POP dan PUSH. Dapat pula
mentransfer progam counter dari atau kedalam memori dengan
9. Program Counter (PC)
Sebelum program dijalankan, program counter (register PC) harus
mencatat alamat awal letak kode instruksi pertama suatu program.
Secara otomatis bertahap satu persatu PC mencatat laju ke alamat
berikutnya.
Selain diketahui fungsi-fungsi umum dan khusus dari setiap register dan
pasangan-pasangan register yang terdapat dalam CPU Z-80, untuk dapat
melakukan penyusunan suatu program maka perlu untuk mengetahui bahasa
mesin dari Z-80 yang lazim dipakai pada kebanyakan mikroprosesor keluaran
zilog inc.
3.2 PIO Z-80 ( Pararel Input Output Z-80 )
Sebuah chip Z-80 adalah sebuah perangkat antar muka yang dapat
diprogram, mempunyai dua buah port yaitu port A dan port B, dalam satu serpih.
Dibawah program kontrol, CPU 80 akan dapat memvariasi fungsi dari PIO
Z-80 secara luas, tanpa membutuhkan external logic tambahan. Pentransferan data
dapat dilakukan dengan teknik interrupt controlled yang memungkinkan peralatan
I/O luar (diluar sistem) menuntut pentransferan tersebut, sesuai dengan prioritas
interrupt yang diberikan.
PIO Z-80 adalah sebuah generasi chip ketiga yang menggunakan kanal N,
power supply + 5 Volt ± 5 %, dan sebuah clock phase tunggal pada level TTL
yang dapat diperoleh dari rangkaian clock tersendiri. PIO Z-80 ini mampu
beroperasi pada 00C sampai 700C. kedua portnya yaitu A port A dan port B dapat
berdiri sendiri tanpa ada keterikatan satu dengan yang lainnya, namun port A
mempunyai prioritas yang lebih tinggi jika digunakan secara bersama-sama.
3.2.1 Diagram Port Logic
Gambar 3.2. adalah sebuah diagram blok dari blok yang berlabel port A
dan port B pada diagram blok PIO Z-80 secara umum pada gambar 3.2. diatas.
Internal bus (8) Data/kontrol bus (8)
Gambar 3.2. Diagram Blok Port Logic dari PIO Z-80
Gambar ini memperlihatkan 6 buah register blok logic untuk kontrol
handshake. Mode kontrol register adalah yang pertama dimuat oleh
CPU dengan dua kode bit yang memilih satu dari empat mode yang
ada (mode 0,1,2, dan 3). Kode ini akan mengadakan konfigurasi logika
untuk mode operasi PIO Z-80 yang diinginkan. Register data output
3-bit menerima byte dari CPU dan mengirimnya keluar dari CPU Z-80
ke peralatan I/O lewat data/kontriol bus. Begitu juga register data input
8-bit menerima bit masukan dari peralatan I/O lewat data/kontrol bus,
dan mengirinnya ke CPU lewat internal bus. Pentrasferan data antara
CPU (ready and strobe) lewat handshake kontrol logic, agar data
masuk dan keluar tidak saling bertabrakan. I/O select logisc hanya
digunakan pada mode 3 (birt kobntrol mode). Register ini pertama
akan dimuat oleh CPU dengan sebuah kontrol kata (word control).
Kata ini akan menunjuk 8 garis dari data/bus kontrol I/O secara
individual menjadi garis masukan atau garis keluaran. Begitu juga
mask register 8-bit hanya digunakan pada mode 3 (bit control mode).
Ini digunakan untuk sebuah ciri interrupt yang sangat khusus dari
sistem Z-80. Kemudian register ini dimuat sebelumnya dengan sebuah
kata dari CPU. Kata dalam register ini secara efektif akan
menyembunyikan pemilihan pin-pin I/O dari bus/data kontrol I/O. 2 bit
keadaan aktif yang diinginkan (tinggi atau rendah) dari bit-bit mask
register.
3.2.2 Penyusunan Interrupt Kontrol
Sejak teknologi daisy chain digunakan, prioritas kerja dari tiap-tiap
peralatan I/O mulai diperhitungkan oleh CPU. Diusahakan peralatan yang paling
dekat dengan CPU mempunyai prioritas yang paling tinggi. Pada PIO Z-80, portA
mempunyai prioritas yang paling tinggi dari port B. Ketika PIO dioperasikan pada
mode 0,1,2, sebuah interrupt request dikirim ke PIO ketika peralatan I/O siap
untuk menstransfer sebuah data. Ketika PIO dioperasikan pada mode 3 (bit
kontrol mode), sebuah interrupt hanya dapat dihasilkan ketika tingkat dari sebuah
peralatan I/O menyamai sebuah nilai yang ditentukan. Peralatan I/O dengan
sebuah prioritas yang lebih rendah pada daisy chain tidak dapat menyela ketika
sebuah peralatan I/O yang mempunyai prioritas yang lebih tinggi sedang
melaksanakan suatu subroutine. Sebuah peralatan I/O yang mempunyai prioritas
yang lebih tinggi dapat menginterrupsi selama eksekusi sebuah subroutine dari
sebuah peralatan I/O yang mempunyai prioritas yang lebih rendah pada daisy
chain.
3.2.3 Susunan Pin dari PIO Z-80
PIO Z-80 dibuat dalam standart 40 pin, dual in package (DIP), dengan
pin-pin yang bervariasi dalam fungsi-fungsinya yang dibuat berurutan. Secara
diperlihatkan dalam gambar 3.3. catatan bahwa sebagian garis diperlihatkan
sebagai unidirectional (satu arah) dan yang lain sebagai bidirectional (dua arah).
CPU DATA BUS I/O DATA BUS
Gambar 3.3. Diagram Kelompok Pin pada Z-80
Ada juga beberapa garis yang menunjukkan signal yang mengalir dalam
satu arah dan yang lain dalam arah yang berlawanan. Secara umum dapat
dijelaskan sebagai berikut :
PIO Menunjukkan signal yang mengalir dari PIO (output)
PIO Menunjukkan signal yang mengalir ke PIO (input)
PIO Menunjukkan signal yang mengalir pada garis yang sama
(bidirectional).
3.2.4 Fungsi Pin dari PIO Z-80
PIO Z-80 disajikan dalam 40 pin. Adapun fungsi dari masing-masing pin
tersebut adalah sebagai berikut :
1. D0-D7 adalah bus data 8-bit aktif tinggi yang bersifat dua arah, ini
digunakan sebagai saluran data dan perintah pentransferan antara
PIO dan CPU.
2. A0-A7 adalah saluran untuk mentransfer data atau status-status dan
signal-signal kontrol antara peralatan I/O dan port A dari PIO, aktif
tinggi yang bersifat dua arah.
3. B0-B7 adalah saluran untuk mentransfer data atau status-status dan
signal-signal kontrol antara peralatan I/O dan port A dari PIO, aktif
tinggi yang bersifat satu arah.
b. kelompok kontrol PIO
1. B/A Sel adalah port select signal yang menentukan port untuk
dipilih selama pengoperasian pentransferan data. Merupakan signal
aktif rendah untuk memilih port A dan signal aktif tinggi untuk
port B. Kadang-kadang untuk pemilihan ini digunakan alamat bit
AO dari CPU. Merupakan signal satu arah ke PIO.
2. C/D Sel adalah signal kontrol atau pemilih data yang menentukan
apakah data atau informasi kontrol yang ditransfer antara CPU dan
port, oleh signal B/A sel. Sebuah signal aktif rendah menunjukkan
bahwa data yang ditransfer antara CPU dan PIO. Sedang sebuah
signal aktif tinggi menunjukkan bahwa sebuah perintah atau
kontrol yang dikirim ke port oleh signal B/A sel. Kadang-kadang
fungsi ini digunakan alamat bit A1 dari CPU. Merupakan signal
3. CE adalah sebuah signal aktif rendah yang menginformasikan
kepada PIO untuk mengirimkan kata data ke CPU, selama CPU
dalam siklus membaca. Selama CPU dalam siklus menulis, signal
ini menginformasikan PIO untukmenerima kontrol atau kata data
dari CPU ketika ditentukan oleh signal C/D sel.
4. M1 adalah sebuah signal aktif rendah yang masuk ke PIO dari
CPU, untuk mengsinkronkan kerja interrupt logic dari PIO. Ketika
M1 dan READ terus-menerus aktif, CPU membawa sebuah
instruksi dari memori ketika M1 dan IORQ terus-menerus aktif,
CPU memberitahukan sebuah interrupt.
5. IORQ adalah signal I/O request yang aktif rendah digunakan
untuk mentransfer perintah-perintah dan data antara CPU dan PIO.
Ketika CE, RD, IORQ adalah aktif, alamat port mengirim data ke
CPU. Ketika CE dan IORQ aktif dan RD tidak aktif, lalu CPU
menulis data atau sebuah perintah ke dalam alamat port.
6. READ adalah signal yang aktif rendah yang menuju PIO, yang
menunjukkan bahwa CPU membaca sebuah kata dari I/O atau
memori. Ketika digunakan hubungan dengan CE, I/O, signal B/A
sel dan C/D sel, RD mentransfer data dari PIO ke CPU.
c. Kelompok kontrol interrupt
1. INT adalah signal interrupt respons yang merupakan keluaran aktif
rendah yang menunjukkan PIO meminta sebuah interrupt dari
2. IEI adalah signal interrupt enable input yang merupakan masukan
aktif tinggi, digunakan untuk menentukan prioritas interrupt. Jika
signal ini aktif menunjukkan bahwa tidak ada peralatan I/O lain
dengan prioritas yang lebih tinggi dari yang sedang dilayani.
3. IEO adalah signal interrupt enable output yang merupakan signal
keluaran aktif tinggi, yang digunakan juga untuk menentukan
prioritas interrupt. Ini hanya aktif, ketika IEI aktif dan tidak
melayani sebuah interrupt dari PIO.
d. kelompok status dan kontrol port
1. A STB adalah signal strobe port A, aktif rendah yang diinputkan
ke PIO dari peralatan I/O. Operasinya tergantung pada mode
operasi yang dipilih sebagai berikut :
Mode 0 (output byte mode), menunjukan bahwa peralatan
I/O telah menerima data yang terkirim oleh PIO.
Mode 1 (input byte mode), peralatan mengeluarkan
signal, ini menunjukkan bahwa data telah terkirim ke
register input dari port yang telah dipilih.
Mode 2 (bidirectional mode), ketika aktif menunjukan
bahwa data dari register output pada port A diletakkan
pada bus data dua arah, dan kemudian menunjukkan
bahwa data telah diterima oleh peralatan I/O.
Mode 3 (control mode), pulsa ini secara internal ditahan
2. A RDY adalah signal ready untuk port A yang aktif tinggi,
operasinya tergantung pada mode operasi yang dipilih sebagai
berikut:
Mode 0 (output byte mode), ketika aktif menunjukkan
bahwa register output port A berisi data word, dan data
bus telah siap mentransfer ke peralatan I/O.
Mode 1 (input byte mode), ketika aktif menunjukkan
bahwa register input port A kosong dan siap menerima
kata berikutnya dari peralatan I/O.
Mode 2 (bidirectional mode), ketika aktif menunjukkan
bahwa register output port A mempunyai data word untuk
mentransfer ke peralatan I/O. Tetapi data tidak
dikeluarkan ke data bus jika STB tidak aktif.
Mode 3 (control mode), signal ini secara internal ditahan
oleh PIO.
3. B STB adalah signal masukan strobe port B yang aktif rendah,
dimana operasinya sama dengan A STB, tetapi hanya berlaku pada
port B.
4. B RDY adalah signal keluran ready port B, yang aktif tinggi yang
operasinya juga sama dengan A RDY, hanya berlaku bagi port B.
signal ini aktf jika register input dari port A kosong dan siap untuk
3.2.5 Pemprograman PIO Z-80
Di atas telah dibicarakan tentang chip PIO Z-80 dan bagaimana cara
pengoperasiannya. Selanjutnya akan dibicarakan tentang cara pemprogramannya.
PIO Z-80 adalah sebuah antar-muka yang dapat diprogram, yang berarti bahwa
dibawah program kontrol, pemakai dapat memanfaatkan sifat dan ciri-cirinya
yang bervariasi untuk sebuah sistem pengantar-mukan. PIO juga dapat digunakan
lebih dari satu secara bersama-sama secara pararel atau seri dengan sebuah pusat
kendali CPU. Namun untuk ini perlu digunakan sebuah sub sistem yang disebut
interrupt priority daisy chain yang biasanya dengan standart TTL, yakni yang
mengontrol dari rangkaian PIO atau peralatan I/O sesuai dengan yang telah
ditentukan.
Program inisialisai adalah sebuah program yang hanya terdiri dari
beberapa byte saja, yang dimaksudkan sebagai program permulaaan yakni untuk
mengadakan suatu pilihan mode kerja dari sebuah peripheral input output baik itu
PPI, PIO, CTC ataupun yang lainnya. PIO Z-80 dapat dioperasikan pada 1
diantara 4 mode operasi yang ada. Program inisialisasi harus dapat
mengidentifikasikan yang mana dari keempat mode yang dipilih untuk
mengantar-mukakan sebuah sistem. Kata pertama harus dapat melakukan hal ini secara jelas.
Format dari byta tersebut diperlihatkan pada tabel 3.4.
Tebel 3.4. Format Kata Set Mode
D7 D6 D5 D4 D3 D2 D1 D0
Pada tabel diatas terlihat pada bit-bit dari D0-D3 adalah selalu mempunyai
logika 1, sedang bit-bit pada posisi D4 dan D5 adalah tidak tentu (down care),
artinya PIO Z-80 tidak peduli apapun keadaannya baik 0 maupun 1. Kode untuk
pemilihan mode operasi PIO diberikan pada bit-bit D7 dan D6, yang dapat
memberikan 4 pilihan mode sebagai berikut :
M1 M0 Mode Mode selected Keterangan
0 0 0 output byte sebagai port output
0 1 1 input byte sebagai port input
1 0 1 bidirectional byte dapat dua arah
1 1 3 bit control sebagai kontrol bit
Jika digunakan mode 3 (bit kontrol mode), maka byte berikutnya setelah
pemilihan mode operasi PIO, harus dapat mengadakan pemilihan terhadap register
I/O. Format dari byte ini diberikan pada tabel 3.5. sebagai berikut :
Tabel 3.5. Format Kata Pemilihan Register I/O
D7 D6 D5 D4 D3 D2 D1 D0
I/O 7 I/O 6 I/O 5 I/O 4 I/O 3 I/O 2 I/O 1 I/O 0
Fungsi dari kata ini adalah untuk membuat tiap-tiap garis pada I/O
data/kontrol bus secara individual sebagai sebuah garis masukan atau garis
keluaran. Jika diberi logika 1 berarti masukan, dan jika diberi logika 0 berarti
3.3 Sistem Memori
Dalam dunia mikroprosesor dikenal istilah sistem memori. Setiap orang
yang pernah mempelajari mikroprosesor pasti mengenal istilah tersebut. Istilah ini
tidak jauh berbeda dengan istilah memori yang sering dipakai sehari-hari. Pada
mikroprosesor memori dikelompokkam menjadi dua jenis yaitu votatile dan
nonvotatile memory. EPROM (Erasable Programmable Read Only Memory),
termasuk jenis nonvotalite memori yang berarti bahwa informasi yang tersimpan
tidak akan terhapus meskipun catu dayanya putus. Berbeda dengan RAM
(Random Acces Memoy), informasi yang tersimpan akan hilang jika catu dayanya
dimatikan, bahkan ada jenis RAM dinamik akan kehilangan informasinya yang
semula tersimpan jika operasi refresh-nya dihentikan walaupun catu dayanya tidak
dimatikan. Oleh karena itu banyak orang menggunakan EPROM sebagai
penyimpan informasi awal untuk melakukan pekerjaan awal dari setiap
mikroprosesor.
3.3.1 EPROM 2716 (Erasable Programmable Read Only Memory)
EPROM merupakan satu jenis ROM (Read Only Memory) yang dapat
dihapus dengan menyinari lembar silikonnya dengan sinar ultra violet dengan
panjang gelombang tertentu. Gambar 3.4 adalah gambar susunan pin-pin dari
EPROM 2716, dan gambar 3.5. adalah gambar diagram blok dari EPROM 2716
A7 Vcc
Gambar 3.4. Susunan Pin-pin dari EPROM 2716
Data Output (D0-D7)
Gambar 3.5. Diagram Blok EPROM 2716
EPROM 2716 ini mempunyai kapasitas memori sebesar 2 kilo byte,
dengan waktu akses maksimal 350 nS. Tegangan supply yang diperlukan sebesar
5 Volt dengan disipasi daya 525 mW pada waktu aktif dan 132 mW pada waktu
Tabel 3.6. Mode Kerja dari EPROM 2716
Dari tabel dan gambar diatas dapat diketahui bahwa dengan memberi pin
20 dengan tegangan sebesar Vpp (Programming voltage) dan membuat pin CE
berlogika rendah, maka pemprograman EPROM dapat dilaksanakan. Tegangan
pemprogramman ini berbeda-beda besarnya tergantung dari tipe dan pabrik
pembuatnya. EPROM generasi pertaman memiliki Vpp sebesar 25 Volt, bahkan
ada yang 12,5 Volt untuk tipe yang terbaru. Dalam memprogram EPROM ini,
yang perlu diperhatikan adalah mode-mode pemprogrammannya seperti pada
tabel 3.6. diatas.
3.3.2 RAM (Random Access Memory)
RAM (Random Access Memory) adalah jenis votalite memori atau jenis
memori yang isinya dapat hilang jika catu dayanya dimatikan. RAM 6116 adalah
jenis RAM statis yang mempunyai kapasitas sebesar 2 kilo byte (211 = 2048
masukan dan keluaran 8 bit secara bersama-sama. Konfigurasi pin-pin pada RAM
ini kompotibel dengan EPROM 2716. Pada mode baca, ia akan aktif jika pin CS
dan EO diaktifkan rendah dan pin WE aktif tinggi. Sedangkan pada mode tulis, ia
akan aktif jika pin CS dan WE diaktifkan rendah dan OE aktif tinggi. Susunan
pin-pin RAM 6116 akan diperlihatkan pada gambar 3.6.
A7 Vcc A6 A8 A5 A9 A4 WE A3 OE A2 A10 A1 CS A0 D7 D0 D6 D1 D5 D2 D4 GND D3
Gambar 3.6. Susunan Pin-pin dari RAM 6116
3.4 Rangkaian Address Decoder
Dalam suatu sistem komputer, bahkan pada sistem yang paling minimal
sekalipun pasti dikenal dengan adanya memori, serta unit masukan dan keluaran
(I/O unit). Agar sistem memori dan unit masukan dan keluaran tersebut dapat
terdefinisi dengan baik, sehingga prosesor dapat melakukan dengan unit memori
serta dengan unit I/O secara tepat, maka dibutuhkan sebuah rangkaian pengkode
alamat, atau yang lebih dikenal dengan address decoder.
BAB IV
PERANCANGAN PROGRAM MIKROKOMPUTER Z-80
DENGAN PENAMPIL MPF-1
4.1 SPESIFIKASI MPF-1
Peralatan Mikroprofesor adalah Mikroprosesor yang mempunyai
rangkaian hardware sederhana yang diatur oleh suatu sistem yang disebut dengan
program monitor. Dengan spesifikasi yang diterangkan sebagai berikut ini,
peralatan ini mudah dikembangkan dan dipakai untuk mengendalikan peralatan
hardware lainnya. sistem mikroprosesor ini akan membantu memahami
pemprograman mikrokomputer yang menggunakan bahasa mesin dan bahasa
assembly.
4.1.1 Spesifikasi Perangkat Keras
1. CPU (Central Prosesing Unit):
Menggunakan Z-80 dengan 158 instruksi dan kecepatan clock
maksimum 2,5 Mhz.
2. Memori :
a. ROM (Read Only Memory)
b. RAM (Random Access Memory)
3. Peralatan Input/Output
a. Display.
c. Speaker dan rangkaian speaker.
d. Audio tape interface.
Gambar 4.1. Susunan Perangkat Keras MPF-1 P1
74LS74 74LS14 74LS90