LAPORAN SISTEM MIKROPROSESSOR PERCOBAAN. docx

LAPORAN

KELAS PTIK 04
2013

SISTEM MIKROPROSESSOR
PERCOBAAN 7
ANTAR MUKA PIO Z80 (INPUT)

FIRSAN BAHARUDDIN
1229042018
PTIK 04/2013

LABORATORIUM
PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER
JURUSAN PENDIDIKAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS NEGERI MAKASSAR
2014

PERCOBAAN 7

A. TUJUAN
1. Mahasiswa dapat mengetahui apa yang dimaksud dengan antarmuka PIO
Z80 (input).
2. Mahasiswa dapat menjalankan program untuk antarmuka PIO Z80 (input).
B. BAHAN DAN ALAT
1. Lembar tugas
2. Softwate Z80 Simulator IDE Oshonsoft

C. TEORI DASAR
Input Output (I/O) merupakan komponen pokok dari sistem
mikroprosesor. Informasi di luar CPU harus dikumpulkan dan diproses. Begitu
diproses informasi harus disajikan dan dikirim untuk mengendalikan berbagai
alat Input Output. Perkembangan mikroelektronika telah mendukung
perkembangan I/O dari unprogrammable ke programmable sistem. Input
Output (I/O) terbagi menjadi dua macam yaitu I/O Paralel dan I/O Serial.
Beberapa komponen I/O paralel terprogram yang sangat populer dalam sistem
mikroprosesor adalah Z-80 PIO (Programable Input Output) dan (Programable
Peripheral Interface) PPI 8255. Namun pada pertemuan kelima untuk sesi
sistem mikroprosesor kali ini kita hanya membahas tentang I/O Paralel Z-80
PIO, sedangkan yang lainnya akan kita bahas pada pertemuan selanjutnya.

IC Z-80 PIO adalah IC I/O paralel terprogram yang perilakunya dapat
disetel menggunakan program. Z-80 PIO adalah salah satu chip yang
diproduksi untuk fasilitas antar muka dengan Z-80 CPU. Z-80 PIO memiliki
kelengkapan :

 Dua periperal port antar muka paralel 8 bit independent dengan kendali
jabat tangan.
 Penggerak I/O terinterupsi.
 Empat mode operasi, yaitu :
1) Mode 0 : Byte Output dengan jabat tangan
2) Mode 1 : Byte Input dengan jabat tangan
3) Mode 2 : Byte Bidirectional dengan jabat tangan (hanya untuk Port A)
4) Mode 3 : untuk Bit Control
 Logika interupsi dengan prioritas daisy chain.
 Semua input dan output kompatibel dengan TTL.
 Susunan pin IC Z-80 PIO dilukiskan seperti Gambar 1 dan 2 berikut ini.

Diagram Mode Kerja Z-80 PIO

Susunan Pin Z-80 PIO

Z-80 PIO terdiri dari dua port yaitu Port A dan Port B. Masing-masing
port dilengkapi dengan pena-pena jabat tangan. Dengan 40 pin dalam dua lajur
fungsi masing-masing pin dapat dikelompokkan dalam empat kelompok yaitu:
a. Kelompok Bus Data


D0 – D7 adalah bus data 8 bit dua arah digunakan sebagai saluran data
dan kata perintah.



A0 - A7 adalah saluran dua arah untuk transfer data atau status dan
sinyal kontrol antara peralatan I/O dan Port A.



B0 – B7 merupakan saluran dua arah untuk transfer data atau status
dan sinyal kontrol antara I/O dan Port B.

b. Kelompok Kontrol



B/A* sel adalah pin saluran sinyal pemilih port. Pada kondisi rendah
(0) yang aktif adalah Port A, dan Port B aktif jika pin ini berkondisi
tinggi (1).



C/D* sel adalah pin saluran sinyal pemilih register kontrol atau
register data. Jika C/D* = 0 register yang aktif adalah register data
dan C/D* = 1 register yang aktif adalah register perintah.



CE* adalah sinyal aktif rendah yang berfungsi sebagai pin pengaktif
chip Z-80 PIO.



M1* adalah sinyal aktif rendah bekerja mensinkronkan kerja interrupt

logic. Pada saat M1* dan RD* aktif, Z-80 CPU melakukan fetching
sebuah instruksi ke memori. Sebaliknya pada saat M1* dan IORQ*
aktif, CPU melakukan pengenalan interupsi. Dan jika M1* aktif tanpa
IORQ* atau RD*, Z-80 PIO ada dalam keadaan reset.



IORQ* adalah sinyal Input Output Request aktif rendah bekerja pada
saat CPU mentransfer perintah atau data ke Z-80 CPU.



READ* adalah sinyal aktif rendah yang menunjukkan CPU membaca
data dari I/O.

c. Kelompok Interrupt


INT* adalah sinyal interrupt aktif rendah yang digunakan oleh PIO
untuk memintan layanan interupsi.




IEI adalah sinyal Interrupt Enable Input aktif tinggi yang
menunjukkan PIO siap menerima layanan interupsi.



IEO adalah sinyal Interrupt Enable Output aktif tinggi yang
menunjukkan PIO telah melayani interupsi.

d. Kelompok Status Kontrol Port
1) ASTB* adalah sinyal strobe Port A, aktif rendah yang operasinya
tergantung pada mode operasi yang dipilih.



Mode 0 : menunjukkan keadaan peralatan I/O telah menerima data
yang dikirim oleh PIO.




Mode 1 : menunjukkan keadaan data telah dikirim ke register Port
A oleh peralatan I/O.



Mode 2 : menunjukkan keadaan data dari register Port A telah
diletakkan pada bus data dan kemudian data telah diterima oleh
peralatan I/O.



Mode 3 : pulsa ini secara internal ditahan oleh PIO (tidak
dimanfaatkan).

2) A RDY adalah sinyal ready aktif tinggi untuk Port A bekerja
tergantung mode operasi sebagai berikut:



Mode 0 : menunjukkan register Port A berisi data byte dan telah
disiapkan pada saluran bus data untuk ditransfer ke peralatan I/O.



Mode 1 : menunjukkan keadaan register data Port A kosong dan
siap menerima data word berikutnya.



Mode 2 : menunjukkan keadaan register data Port A telah siap
untuk diambil oleh peralatan I/O. Data akan dikeluarkan jika ada
sinyal STB*.



Mode 3 : tidak dimanfaatkan

3) B STB* adalah sinyal masukan strobe untuk Port B aktif rendah
dimana operasinya sama dengan sinyal A STB.


4) B RDY adalah sinyak keluaran ready aktif tinggi untuk Port B dengan
operasi kerja sama dengan A RDY.0
Masing-masing Port dilengkapi dengan dua register, yaitu register data
dan register perintah. Selengkapnya register pada Z-80 PIO terdapat empat
buah register yaitu :


Register Data A



Register Data B



Register Perintah A




Register Perintah B
Register data digunakan untuk memegang data dan register perintah

digunakan untuk mengatur mode kerja dan perilaku masing-masing port.
Pemilihan register-register pada Z-80 CPU dikerjakan melalui pena port B/A
dan pena Control/Data seperti Tabel 1 berikut ini :
Tabel Data Pemilihan Register pada Z-80 PIO

D. LANGKAH KERJA

Program 1
1. Jalankan aplikasi Z80 Simulator IDE terlebih dahulu

2. Lalu kita pilih tools lalu klik assembler atau tekan ctrl+A pada keyboard.

3. Akan muncul window assembler yang masih kosong seperti dibawah ini.

4. Kemudian kita ketikan program pada assembler, ingat untuk memulai
dengan tombol Tab.


5. Setelah kita selesai mengetik programnya kemudian kita lanjutkan dengan
mengkompile program tersebut untuk mengetahui apakah ada kesalahan
atau tidak dengan klik tools lalu klik assemble.

6. Sehingga akan muncul jendela save as. Kita simpan dahulu file tersebut
dengan file name sesuai keinginan kita lalu save

7. Setelah selesai, akan muncul pesan kesalahannya.

8. Lalu kita lanjutkan dengan klik tools lalu klik assembler & load untuk
memuat program ke simulator.

9. Hilangkan tanda centang pada Prompt For Value Before IN Instruction.

10. Dan centang pada Enable IN/OUT Instruction Logging.

11. Masuk ke tab menu Tools lalu pilih Peripheral Devices atau tekan Ctrl+P.

12. Klik OFF pada device 1.

13. Masukkan angka 01 lalu tekan OK.

14. Maka Device 1 akan menjadi ON serta pastikan juga bahwa I/O port
dalam keadaan IN.

15. Jalankan program dengan memilih Start pada menu Simulation.

16. Kita masukkan dari peripheral devices ke dalam register A.

17. Set register IX dengan 1900H.

18. Kemudian kita isikan alamat yang ditujukan register IX + 00H dari isi
register A.

19. Selanjutnya kita melakukan jump ke label LOOP.

20. Kita coba berikan data pada peripheral devices. Kemudian kita masukkan
ke register A.

21. Maka tampilan pada jendela Memory Editor akan seperti berikut.

22. Lakukan lagi perulangan da nisi peripheral devices sesuai yang kita
inginkan dan amati perubahannya.

E. ANALISA DATA
Pada percobaan kali ini kita kita akan membuat sebuah program. Di
praktikum ini kita membahas tentang antar muka PIO Z80 (input), kita juga
menggunakan instruksi IN untuk menampilkan data pada peripheral devices.
Yang kita perlukan pada praktikum kali ini yaitu aplikasi Z80 Simulator IDE
dan lab sheet microprocessor.
Pertama kita jalankan aplikasi Z80 Simulator IDE, lalu masuk ke
jendela Assembler dan ketikkan perintah untuk program pertama. Saat
pengetikan perintah, terlebih dahulu harus dimulai dengan menekan tombol
tab terlebih dahulu untuk menghindari kesalahan dalam pengetikan perintah.
Selanjutnya kita save perintah tersebut dengan memilih tools lalu
Assemble, kemudian isi nama untuk program kita dan save dengan format
*.asm setelah selesai, maka akan muncul pesan kesalahan pada program kita,
jika error sama dengan 0 maka tidak terdapat kesalahan pada program kita,
sebaliknya jika terdapat angka yang lain maka terdapat kesalahan pada
program kita.
Sekarang kita lanjut dengan memilih kecepatan atau laju simulasi
sesuai keinginan kita, ada beberapa pilihan diantaranya : step by step, slow,
normal, fast, extremel fast, dan ultimate. Kemudian jangan lupa untuk
mencetang pada enable logging yang terdapat pada tan options, dimana enable
logging berfungsi untuk menampilkan isi dari file log.txt yang menunjukkan
perubahan isi register dan status flag Z80 setelah program dieksekusi, karena
jika kita lupa untuk mencentangnya, maka tidak akan keluar jendela file
log.txt dan juga kita tidak dapat mengetahui perubahan yang terjadi pada
register.
Pada tab menu Options, kita hilangkan tanda centang pada Prompt For
Value Before IN Instruction. Sedangkan pada Enable IN/OUT Instruction
Logging kita beri tanda centang.
Selanjutnya pada pada tab menu Tools, kita pilih peripheral devices
atau bisa mnggunakan tombol Ctrl+P. Pada jendela peripheral device kita klik
OFF yang ada pada Device 1, dan akan muncul jendela baru, ketikkan 01 lalu
klik OK. Pastikan bahwa I/O port dalam keadaan IN.

Langkah yang terakhir yaitu tahap dimana saatnya kita menjalankan
atau mengoperasikan simulasinya. Dengan klik simulation lalu start. Untuk
program satu, yang pertama kita lakukan adalah mengatur lampu LED atau
data pada jendela Peripheral Devices, data tersebut yang nanti akan kita
pindahkan ke Memory Editor.
Instruksi yang pertama adalah kita masukkan data dari peripheral
device ke dalam register A dengan menggunakan instruksi LD A, (01H).
(01H) merupakan alamat dari peripheral device.
Selanjutnya kita set register IX dengan 1900H. Alamat inilah yang
kemudian akan kita isikan data dari peripheral device. Setelah register IX telah
ter-set, kita isi alamat memory tersebut dengan data dari register A.
Kemudian akan terjadi looping/percabangan ke awal program sesuai
dengan label LOOP. Ubahlah isi peripheral device sehingga data yang muncul
pada memory editor akan berubah pula.
Setiap langkah-langkah yang terjadi kita perlu untuk memperhatikan
setiap perubahan yang terjadi, baik yang terjadi pada setiap register maupun
pada setiap flag register. Program tidak akan berhenti kecuali kita
menghentikannya secara manual karena terdapat instruksi JP L1 dimana
instruksi tersebut akan melakukan jump/percabangan secara terus-menerus.
F. KESIMPULAN
Pada praktikum ini kita mengoperasikan program simulator Z80 dan
kita juga dapat melihat/mengecek isi memori pada lintas data untuk setiap
program. Serta melakukan operasi logika. Kita membuat dua program yang
memiliki perintah mnemonic yang berbeda-beda.
Dipraktikum ini kita membuat program dimana kita mengatur isi
peripheral device yang kemudian akan kita pindahkan ke dalam register dan
selanjutnya di tampilkan pada memory editor.
Pada praktikum ini tujuan telah tercapai karena mahasiswa telah
mengetahui dan mempu menjalankan program antar muka PIO Z80.