Anda di halaman 1dari 6

PRAKTIKUM

MIKROPROSESOR & INTERFACE I

PERCOBAAN IV
JUDUL
:
ANALISIS PROSES KERJA SISTEM MIKROPROSESOR (1):
OBSERVASI BUS CPU TMPZ84C00
OBYEKTIF :
1. Memahami prinsip hubungan kerja antara address bus, data bus, dan control bus
CPU Z80.
2. Memahami prinsip kerja CPU Z80 dalam mengambil/membaca data,
menerjemahkan dan menjalankan instruksi yang dimaksud. (fetch decode - run)
PERALATAN:
1. Modul FZ80CPU
2. DC Power Supply (regulated +5V) dengan pulsa generator
3. Dual Trace Oscilloscope / Logic analyzer (optional)
TEORI
:
Pada dasarnya Nikroprosesor membaca instruksi yang diambilnya dari memory, baik
EPROM maupun RAM, dan mengeksekusinya langkah perlangkah seperti yang
ditunjukkan pada Gambar 7-1 berikut ini.

Read/Fetch
Data
Membaca data di
alamat yang
ditunjukkan oleh

Program Counter

Decode

Men-dekode
(menerjemahkan)
Data yang di-fetch
(baca)

Execute
Mengeksekusi/mempros
es instruksi/data sesuai
hasil dekode

PC PC +1
Gambar 7-1. Flow Chart Eksekusi Langkah per Langkah
Pada dasarnya proses di atas berjalan terus-menerus tanpa keluar dari loop, kecuali
dengan perlakuan tertentu, baik secara hardware (misalnya interrupt) maupun secara
software (misalnya perlaksanaan instruksi: jump, call & ret, push & pop, dan restart).

Setiap kali melaksanakan instruksi, PC ditambah 1. Misalnya mikroprosesor menapat


instruksi:
LD
A, 0FH
Pada sistem rangkaian berbasis Z80, instruksi ini disimpan di memory dalam
(2x8)bit, atau 2byte. Kode-kode mesinnya adalah 3 E dan 0 F. dalam biner adalah
00111110B dan 00001111B.
Kode Mesin
3E
0F

Instruksi
LD
A,0FH

Pada saat CPU Z80 membaca dan mengartikan kode mesin 3E maka ia tahu bahwa
instruksi tersebut adalah Loading Value ke Register A. Instruksi ini menyebabkan CPU
Z80 menambah PC dengan 1, dan melanjutkan membaca data di alamat memory yang
ditunjukkan oleh PC yang baru. data yang ada di PC yang baru ini akan dianggap sebagai
nilai (value) yang haru sdiisikan (loading) ke register A. Selanjutnya CPU menambah lagi
PC dengan 1, dan melakukan proses membaca data berikutnya.
Menyimak bahwa sebuah instruksi dalam bahasa Assembly dapat diikuti data yang
berlaku sebagai Operand atau tidak, maka proses penambahan PC dengan 1 adalah berjalan
dengan berorientasi pada setiap lokasi memory. Jadi proses membaca dan mengeksekusi
sebuah instruksi bahasa Assembly yang lengkap dapat terdiri lebih dari sebuah loop.
Setiap mikroprosessor menggunakan metoda Stored Programming dalam
mengorganisasi penggunaan dan pengolahan data-datanya. Yang dimaksud dengan Stored
Programming adalah metoda penyimppanan sementara data-data yang sedang diolah yang
melibatkan Program Counter, Stack Pointer, dan Register-register Memory. (to Store =
menyimpan, menumpuk).
Program Counter bertugas memegang alamat dari setiap instruksi pada saat instruksi
tersebut sedang dijalankan. Setiap instruksi selesai dijalankan dan CPU melanjutkan
mengerjakan instruksi berikutnya, isi Program Counter akan berubaha ke posisi di mana
instruksi berikut itu di simpan. Program counter ini berguna untuk menunjukan sedang
berada di alamt mana CPU bekerja.
Observasi bus yang dimaksud dalam percobaan ini adalah observasi yang dilakukan
terhadap suatu operasi kontinyu yang singkat yang sedang dilakukan oleh CPU Z80.
Dipilih operasi kontinyu yang singkat dimaksudkan agar piranti monitor yang kita miliki,
yaitu oscilloscope standard, dapat digunakan untuk menunjukkan bentuk-bentuk pulsa atau
gelombang yang terjadi pada address bus, data bus, dan beberapa jalur control yang bentukbentuk gelombang ini saling berhubungan menunjukkan suatu fenomena operasi yang
sedang dijalankan.
Operasi yang dibentuk oleh CPU Z80 ini dapat dikelompokkan dalam 3 buah operasi
dasar yaitu:
1. Memory read/write (baca/tulis data pada memory)
2. I/O Device read/write (baca/tulis data pada piranti Input/Output)
3. Interrupt (Interupsi)
Gambar 7-2 di bawah memperlihatkan tiga model pewaktuan dasar (timing) dalam
operasi CPU Z80, yaitu Op-Code Fetch, Memory Read and Memory Write, yang digabung
dalam suatu grafik.
Clock
Siklus T
T1 T2

T3

Siklus
Mesin
M1
OpCode
Fetch

T4

T1

T2

T3

Siklus
Mesin
M1
Memory
Read
Siklus

T1

T2

T3

Siklus
Mesin
M1
Memory
Write

Gambar 7-2. Pewaktuan Dasar Operasi pada CPU Z80


Pada gambar di atas, sebuah periode clock dinyatakan sebagai siklus T, sedang
operasi dasar dinyatakan sebagai M (Machine Cycle). Machine Cycle terdiri dari M1, M2,
dan M3. M1 memiliki 4 buah siklus T, yaitu T1, T2, T3, dan T4. M2 memiliki 3 buah
siklus T, yaitu T1, T2, dan T3. Demikian pula M3 memerlukan waktu 3 siklus T, yaitu T1,
T2, dan T3.
Dalam operasi suatu program, Machine Cycle yang pertama (M1) dari setiap instruksi
adalah fetch cycle (pengambilan OP code un di-dekode). Siklus ini membutuhkan 4 sampai
dengan 6 siklus, terkecuali bila control WAIT diaktifkan. Machine Cycle berikutnya
biasanya adalah perpindahan data antara CPU dengan memori atau peralatan I/O, meskipun
ada pula pada instruksi-instruksi tertentu Machine Cycle berikutnya adalah Op code fetch
lagi. Siklus ini membutuhkan 3 sampai dengan 5 siklus T, terkecuali pula bila dibutuhkan
proses sinkronisasi dengan membeirkan waktu tunggu.
Selama T2 dan apada setiap siklus berikutnya siklus mesin CPU dapat diperpanjang
dengan mengaktifkan WAIT. Teknik pemberian waktu tunggu yang fleksibel ini membuat
CPU Z80 dapat di-match-kan dengan bermacam-macam komponen memori yang memiliki
waktu akses (access time) yang berbeda.
Pewaktuan OpCode Fetch
T1

T2

Siklus
M1
T3
T4

Program
Counter

Alamat
Refresh

T1
berikutnya

Clock
A15
A0

D7
D0

data
berupa Op
Code

Gambar 7-3. Pewaktuan Siklus OpCode Fetch

Gambar 7-3 memperlihatkan diagram pewaktuan Op code fetch selamam machine


cycle M1 (Op code fetch cycle). Pertama, pada siklus M1 address bus berisi data yang
tersimpan di Program Counter (PC). setengah clock cycle berikutnya sinyal

menjadi

aktif. Pada saat ini alamat yang terhubung ke memori telah menjadi stabil sehingga falling
edge dari sinyal
memori. Kontrol

ini dapat dimanfaatkan langsung sebagai control chip enable pada


juga menjadi aktif yang menunjukkan bahwa pada saat itu data bus

sedang digunakan untuk proses pembacaan data memori. CPU memngambil data dari
memori pada saat rising edge T3 dan pada waktu yang bersamaan pula CPU meng-inaktifkan sinyal

dan

. Dengan demikian data yang akan dibaca harus sudah ada dan

stabil di data bus sebelum sinyal RD menjadi inactive. Clock state T3 dan T4 dari fetch
cycle dapat digunakan untuk me-refresh memori dinamik, bila rangkaian terhubung ke
memori dinamik. Pada state ini A7 A0 dari address bus berisi alamat memeori yang direfresh dan sinyal control

menjadi aktif. CPU menggunakan waktu T3 dan T4 unutk

menjaga agar data dari segmen memori yang berbeda tidak terhubung ke data bus. Selama
refresh sinyal

juga aktif dengan selang waktu yang lebih pendek dan berada di

tengah-tengahwaktu aktif dari sinyal


sama dengan

ini biasanya juga digunakan bersama-

untuk proses me-refresh memori, karena

tidak dapat digunakan

sendirian untuk mengaktifkan proses refresh. Hal ini mengingatkan falling edge
terjadi pada saat alamat yang berada di address bus belum stabil.
Pewaktuan Memory Read/Write
Gambar 7-4 di halaman berikut ini menunjukkan suatu diagram pewaktuan dari
read/write cycle pada CPU Z80.
Pada read/write cycle juga terjadi proses membaca data seperti pada siklus OpCode
Fetch, tetapi data read/write cycle di sini adalah hanya proses membaca data dari alamat
tanpa mendekode. Sedangkan pada siklus Op Code Fetch data yang sudah dibaca didekode
dan diartikan. Read/Write cycle ini pada umumnya terdiri dari 3 buah siklus bila WAIT
diaktifkan.
Siklus M1
T1

T2

T3

T1

T2

T1
T3 berikutnya

Clock
A15 A0

D7 D0

Alamat Memory

Alamat Memory

data di CPU
bus

Gambar 7-4. Pewaktuan Siklus Read & Write


Pada prinsipnya, proses baca data dari memori ini sama dengan proses baca data pada
OP code fetch cycle. Alamat memori yang akan dituju diletakkan di address bus begitu T1
mengalami sisi pulsa naik dari 0 ke 1 (rising edge).

dan

bersama-sama aktif

begitu T1 menuju ke 0 pada sisi falling edge wait state dapat ditambahkan dengan
mengaktifkan

pada falling edge pulsa clock berikutnya, dalam hal ini adalah T2. data

yang akan dibaca berada di data bus pada saat siklus berada di T3. Data ini diambil oleh
CPU berdasarkan falling edge dari T3. berdasarkan falling edge ini pulsa sesaat kemudian
dan

menjadi inactive kembali.

Write cycle memiliki T1, T2, dan T3 juga. Alamat memori yang akan ditulis mulai
diletakkan di address bus begitu rising edge T1 terjadi. Berdasarkan falling edge T1
menjadi aktif. Begitu

aktif data bus akan diisi data oleh CPU. Data ini adalah data

yang akan dituliskan oleh CPU ke memori. Wait state dapat ditambahkan dengan
mengaktifkan

pada saat rising edge T2 telah stabil. Sinyal

aktif begitu falling edge

T2 terjadi. Pada saat inilah rangkaian memori mengambil data yang telah ada di data bus.
Berikutnya, berdasarkan falling edge T3 sinyal

dan

menjadi inactive kembali.

Prosedur Percobaan
1. Menyiapkan papan rangkaian FZ80CPU
2. Menyiapkan catu daya +5V untuk FZ80CPU ini dengan merangkai modul DC Regulator
+5V ke DC Power Supply yang diatur pada tegangan +10V.
3. Memeriksa kelengkapan komponen yang terpasang di FZ80CPU, terutama pada soket
IC1 harus terpasang RAM 62256, sedang soket IC2 kosong.
4. Mengatur posisi Jumper-jumper JP1 sampai dengan JP5 sebagai berikut pada kedudukan
2-1-2-2-2
5. Menyalakan sumber tegangan. Kemudian memasukkan suatu program ke dalam
memory RAM 62256 dengan cara seperti pada percobaan I. Pada percobaan II ini
dianggap telah paham tentang cara-cara memasukkan program dengan memanfaatkan
fasilitas DMA. Memasukkan kode mesin program berikut ini ke dalam RAM 62256,
mulai alamat 0000H.
0000 3E
5B
LOOP:
LD
A, 5BH
0002 C3
00
00
JP
LOOP
Gambar 7-5. Program Percobaan Observasi Bus CPU Z80
6225
6

OSCILLOSCOPE
Z80

CH 1 CH

Gambar 7-6. Blok Rangkaian Percobaan I

6. Bila selesai, mengatu rkeuddukan switch AUTO-STEP pada posisi AUTO, switch
STOP-RUN pada posisi RUN.
7. Menekan RESET agar CPU Z80 memulai proses kerjanya dari alamat 0000H
8. Sekarang Memperhatikan gambar 7-6. Dengan menggunakan fasilitas dual traces
oscilloscope yang tersedia, mengamati dan menggambar berturut-turut sinyal yang
tampak pada jalur-jalur: D7 s/d D0, A0, A1, A2, CLOCK, RD, M1, dan

Caranya

adalah mengamati pertama kali D7 dan D6 masing-masing dengan probe channel A dan
probe channel B. Bila sudah digambar, ganti D7 dengan D5 dengan mememindah probe
A ke D5 dan menggambar sinyalnya dengan memperhatikan timing yang sama seperti
kedudukan gambar sinyal D7 terhadap D6 tadi. Berikutnya, mengganti D6 dengan D4
dengan memindah posisi probe B ke D4. Demikian seterusnya secara bersilang. Dengan
tetap mempertahankan pengamatan pada timing yang sama setiap mengganti posisi satu
probe, sehingga di dapat semua gambar gelombang yang terjadi dari D7 sampai dengan
dengan timing yang sama. Untuk memudahkan penggambaran menggunakan
kertas millimeter.
9. Berdasarkan gambar-gambar yang telah diperoleh, menganalisa hubungan pewaktuan
tiap sinyal tersebut, menentukan di mana letak setiap instruksi program yang tampak
pada gambar sinyal. Menjelaskan hubungan fetch data. decode data dan run
program tersebut pada laporan sesuai dengan pengamatan dan analisa.