Anda di halaman 1dari 37

MODUL PRAKTIKUM

SISTEM MIKROPROSESOR

NAMA :..............................................................

KELAS :.............................................................

SEKOLAH MENENGAH KEJURUAN NEGERI


SMKN 53 JAKARTA
TEKNIK AUDIO VIDEO
2018
SMK NEGERI 53 JAKARTA
Jobsheet 1 Praktikum Kelompok Fungsi dari Tombol Semester 3 Teknik
Mikroprosessor. dan Register MPF Z-80 Audio
Video

I. Tujuan Praktikum :
Setelah siswa melakukan praktikum diharapkan dapat :
1. Menyebutkan fungsi pelayanan tombol MPF-1 Z-80.
2. Menyebutkan fungsi tombol Hexa dan register MPF-1 Z-80.

II. Alat dan Bahan praktikum :


1. Piranti MPF-1 Z-80.
2. Lembar Tugas / Kerja (job sheet 1).

III. Mengenal Kelompok Fungsi


A. Kelompok Fungsi dari tombol MPF Z-80.
Label Fungsi Pelayanan
RS : Reset pada Z-80 CPU sehingga sistem disiapkan dari awal lagi.
ADDR : Melaksanakan kesiapan pembacaan address dan isi memorinya.
REG : Melaksanakan kesiapan pembacaan isi register.
DATA : Melaksanakan kesiapan mengubah isi memori / menyimpan
data.
PC : Melaksanakan kesiapan pembacaan program counter.
+ : Maju satu lokasi ke memori berikutnya (address memori +1).
 : Mundur satu lokasi ke memori berikutnya (address memori 1).
STEP : Menjalankan / mengeksekusi untuk untuk tiap satu instruksi jika
ditekan satu kali.
SBR : Memberi tempat berhenti suatu program / mengeksekusi blok.
CBR : Menghapus tempat berhenti karena perintah “SBR” pada suatu
program.
MONI : Menghentikan program yang baru sedang dijalankan /
dieksekusi dan berhenti pada address dimana program itu
diberhentikan.
GO : Mengeksekusi seluruh instruksi dari suatu program.
INS : Menyisipkan satu byte lokasi pada memori, letak lokasi memori
sisipan itu lebih tinggi satu address terhadap address yang
tampak pada display.
MOVE : Mengutip data satu blok memori ke satu blok memori lainnya /
transfer blok.
RELA : Melaksanakan kesiapan menghitung loncatan relatif dari satu
memori ke memori lainnya.
TAPE WR : Melaksanakan kesiapan merekam program ke pita cassette.
TAPE RD : Melaksanakan kesiapan membaca program dari pita cassette.
INTR : Tombol Maskable Interrupt ke Z-80 CPU (tidak digunakan).
Boleh memberikan interrupt sesudah program selesai / tidak
boleh pada saat program sedang berjalan.
USER KEY : Tombol yang dapat didefinisikan oleh pemakai.
B. Kelompok tombol Hexa dan Nama Register
Label
Kegunaan
(Register / Hexadecimal)
AF
0 Tombol angka 0H atau register A dan register F.
BC
1 Tombol angka 1H atau register B dan register C.
DE
2 Tombol angka 2H atau register D dan register E.
HL
3 Tombol angka 3H atau register H dan register L.
AF’
4 Tombol angka 4H atau register A’ dan register F’.
HL’
5 Tombol angka 5H atau register H’ dan register L’.
BC’
6 Tombol angka 6H atau register B’ dan register C’.
DE’
7 Tombol angka 7H atau register D’ dan register E’.
IX
8 Tombol angka 8H atau register IX.
IY
9 Tombol angka 9H atau register IY.
SP
A Tombol angka AH atau register SP.
I*IF
B Tombol angka BH atau interrupt register flag.
SZ*H
C Tombol angka CH
PNC
D Tombol angka DH
SZ*H
E Tombol angka EH
PNC
F Tombol angka FH

C. Pengenalan Register-register pada MPF Z-80.


Register dapat dibayangkan sebagai suatu wadah / lokasi tempat menyimpan
data. Register mempunyai sifat yang sama dengan RAM. Dalam sistem mikroprose-
sor ada berbagai jenis register, yaitu :
- Register 8 bit
Ini berarti kemampuan untuk menyimpan data 8 bit atau 1 byte.
- Register 16 bit
Ini berarti kemampuan untuk menyimpan data 16 bit atau 2 byte atau 1 word.
Data yang tersimpan dalam register setiap saat dapat diubah dan dibaca. Berdasarkan
penggunaannya maka register-register 8 bit tersebut secara umum dipisahkan menjadi
dua kelompok, yaitu :
- Kelompok register utama (main register set)
- Kelompok register alternatif (alternatif register set), cirinya terdapat tanda aksen (‘).

Kelompok register utama bersifat identik dengan kelompok register alternatif, akan
tetapi setiap saat yang boleh digunakan hanya salah satu kelompok saja dengan kata
lain bahwa kelompok register itu tidak boleh digunakan bersama-sama. Kelompok
register utama (main register set), terdiri dari :
- Accumullator 8 bit disebut juga register A.
- Register flag 8 bit disebut juga register F.
- Register untuk penggunaan umum atau general purpose register, yang terdiri dari :
~ Register B (8 bit) dan register C (8 bit) yang dapat berpasangan menjadi register
BC (16 bit).
~ Register D (8 bit) dan register E (8 bit) yang dapat berpasangan menjadi register
DE (16 bit).
~ Register H (8 bit) dan register L (8 bit) yang dapat berpasangan menjadi register
HL (16 bit).
Register B, C, D, E, H dan L dapat digunakan secara umum, masing-masing berupa
register 8 bit yang bebas dioperasikan sendiri-sendiri. Isi register itu dapat
dioperasikan aritmatik atau logika terhadap register A. Di samping itu register-register
tersebut dapat dioperasikan berpasangan seperti di atas dan tidak boleh membentuk
pasangan lain. Selain register tersebut di atas ada beberapa register 8 bit untuk
penggunaan khusus, yaitu :
- Register I (Interrupt), register khusus untuk melayani keperluan operasi interupsi.
- Register R (memory refresh), register khusus untuk melayani keperluan operasi
dynamic memory refresh.
Selain register 8 bit ada 4 buah register yang berbentuk register 16 bit, yaitu :
- Register IX atau Index register IX.
- Register IY atau Index register IY.
- Register SP atau Stack pointer.
- Register PC atau Program counter.

D. Penjelasan Register secara Terperinci


1. Register A (Akumulator)
Sifat register A (Akumulator)
- Sekedar untuk menyimpan data 2 byte.
- Data register A dapat dikenakan operasi aritmatik.
- Data register A dapat dikenakan operasi logika.
- Lintas data antar komponen penunjang harus disinggahkan terlebih dahulu di
register A, baru kemudian dikirim.

2. Register F (Flag Register)


Register F merupakan register pembantu terhadap operasi aritmatika atau
operasi logika. Pada register ini disimpan tanda keadaan jika terjadi carry, non-
carry, borrow, zero, parity / overflow, halfcarry dan sign.
Register F (Flag) dapat dilukiskan sebagai berikut :
Bit7 Bit 6 Bit 5 Bit4 Bit3 Bit2 Bit1

S Z - H - P/O N
(sign) (zero) (blank) (halfcarry) (parity/overflow) (non-
carry)

3. Register Umum
Sifat dari register umum adalah sebagai berikut :
- Sekedar untuk menyimpan data 1 byte.
- Isinya dapat dikutipkan dari register yang satu ke register yang lainnya.
- Isinya dapat dioperasikan aritmatik atau logika terhadap isi register A (terha-
dap isi Akumulator)
- Dapat dioperasikan dalam register berpasangan yang mempunyai kemampuan
16 bit.
- Menyimpan data 16 bit.
- Sebagai pencatat address.
- Register HL dapat berfungsi sebagai akumulator untuk operasi aritmatik 16
bit.

4. Register Penunjuk Stack (Stack Pointer)


Stack adalah memori tempat simpan isi register 16 bit yang hanya
berkaitan dengan operasi penyimpanan PUSH dan operasi pengambilan POP.
Register SP adalah pencacat address stack dan memiliki sifat menunjuk ke
address memori, akan tetapi berbeda dengan sifat register penunjuk address
lainnya.

*****
SMK NEGERI 53 JAKARTA
Jobsheet 2 Praktikum Deskripsi Fungsi Semester 3
Mikroprosessor. Tombol-tombol pada MPF-1 2 x 60”)

I. Tujuan Praktikum :
Setelah siswa melakukan praktikum diharapkan dapat :
1. Menyebutkan notasi pada setiap tombol MPF-1 Z-80.
2. Menyebutkan fungsi masing-masing tombol beserta contoh pemakaiannya.

II. Alat dan Bahan praktikum :


1. Piranti MPF-1 Z-80.
2. Lembar Tugas / Kerja (job sheet 2).

III.Mengenal Fungsi Tombol.


Berikut uraian mengenai notasi pada tombol dan fungsi masing-masing key-pad MPF-1
beserta contoh pemakaiannya.
1. Tombol ‘RS’ (Reset)
Tombol reset digunakan untuk me-reset keseluruhan sistem. Dengan menekan
tombol ‘RS (Reset)’ maka pada display akan muncul UPF-1.
2. Tombol ‘PC’ (Program Counter)
Tombol ‘PC’ digunakan untuk kembali ke address awal yang digunakan oleh
pemrogram atau kembali ke address awal memori pada program yang belum
dieksekusi (RUN).
1800 XX
Keterangan : 1800H adalah address yang disediakan MPF-1 untuk memulai
membuat program.
3. Tombol 0 sampai dengan F
Tombol ini merupakan tombol simbol bilangan hexadecimal yang berguna untuk
memasukan kode dari data, instruksi, maupun address yang berupa bilangan
hexadecimal.
4. Tombol ‘+’
Tombol ‘+’ digunakan untuk maju ke address berikutnya (penunjukkan address
memori bertambah satu).
Contoh :
Keadaan awal Keadaan setelah menekan ‘+’
1800 XX 1801 XX
5. Tombol ‘’
Tombol ‘’ digunakan untuk mengurangi satu dari penunjukan address memori.
Dengan menekan tombol ‘’ maka penunjukkan address memori pada display akan
berkurang satu.
Contoh :
Keadaan awal Keadaan setelah menekan ‘’
1802 XX 1801 XX
6. Tombol ‘INS’ (Insert)
Tombol ‘INS’ digunakan untuk menyisipkan 1 byte data / instruksi pada address
memori tertentu. Setelah menekan tombol ‘INS’ maka penunjukkan address pada
display akan bertambah satu dan pada display data adalah 00H. Jadi perintah ‘INS’
menyisipkan address setelah address yang tampak di display.
Contoh :
Keadaan awal Keadaan setelah menekan ‘INS’
1800 XX 1801 XX
Keterangan : Data yang berada di atas address pada saat ditekan ‘INS’ maka
address-nya akan bertambah satu.
7. Tombol ‘DEL’ (Delete)
Tombol ‘DEL’ digunakan untuk menghapus 1 byte data atau 1 byte instruksi pada
address tertentu. Dengan menekan tombol ‘DEL’ data yang ada pada address yang
tampak di display akan terhapus, lalu diganti dengan data atau instruksi yang berada
di address sesudahnya.
8. Tombol ‘ADDR’ (Address)
Tombol ‘ADDR’ digunakan untuk menuju ke address tertentu. Dengan menekan
‘ADDR’ kita dapat menuju ke address tertentu yang diinginkan.
Contoh : Tekan tombol : ADDR,1,9,0,0 berturut-turut maka pada display akan
tampak 1900 XX
9. Tombol ‘REG’
Tombol ‘REG’ digunakan untuk menuju / melihat isi dari register yang diinginkan.
Dengan menekan tombol ‘REG’ kita dapat melihat isi dari isi register yang
diinginkan.
Contoh :
Tekan tombol : REG, AF berturut-turut maka pada dislpay akan tampak:
XX YY AF
----- ---- ---- Register
YY : Isi register F
XX : Isi register A
10. Tombol ‘DATA’
Tombol ‘DATA’ digunakan untuk mengeset data, instruksi pada address tertentu
atau isi dari suatu register tertentu.
Contoh :
- Tekan tombol : REG, AF, DATA, 00, +, 00
berturut-turut maka pada display akan tampak : 0000 AF
- Tekan tombol : ADDR, 1, 9, 0, 0, DATA, A, B
berturut-turut maka pada display akan tampak : 1900 AB
11. Tombol ‘MOVE’
Tombol ‘MOVE’ digunakan untuk menyalin beberapa data atau instruksi pada
address tertentu ke address yang diinginkan (copy block).
Contoh :
- Tekan tombol ‘MOVE’ maka pada display akan tampak :
XXXX S S: Start (awal address)
- Tekan tombol : 1, 8, 0, 0 akan tampak :
1800 S
- Tekan tombol : 1, 8, 0, 5 akan tampak :
1805 E E : End (akhir address)
- Tekan tombol : ‘+‘ akan tempak :
XXXX D D : Destination (address tujuan)
- Tekan tombol : 1, 8, 0, 6 akan tampak :
1806 D
- Tekan tombol : ‘GO’
Bandingkan data yang berada pada address :
1800 dengan 1806
1801 dengan 1807
1802 dengan 1808
1803 dengan 1809
1804 dengan 180A
1805 dengan 180B
Dari hasil perbandingan itu akan didapat data yang sama pada masing-masing
address yang dibandingkan.
12. Tombol ‘RELA’ (Relatif)
Tombol ‘RELA’ digunakan untuk melakukan instruksi lompatan relatif dari suatu
address ke address tertentu. Lompatan tersebut dapat ke address yang lebih tinggi
atau ke address yang lebih rendah. Dengan memakai perintah ini banyaknya
lompatan tidak perlu kita hitung lagi.
Contoh :
- Tekan tombol : RELA
XXXX S
- Tekan tombol : 1, 8, 0, 0 akan tampak :
1800 S
- Tekan tombol : ‘+’
XXXX D
- Tekan tombol : 1, 8, 1, 0 akan tampak :
1810 D
- Tekan tombol : ‘GO’
13. Tombol : ‘GO’
Tombol : ‘GO’ berguna untuk mengeksekusi program / me-RUN program pada
MPF-1.
14. Tombol ‘MONI’ (Monitor)
Tombol ‘MONI’ berguna untuk menghentikan program yang masih berjalan dan
display kembali ke address memori di mana program tersebut berhenti.
15. Tombol ‘STEP’
Tombol ‘STEP’ berguna untuk menjalankan satu instruksi pada program tersebut.
16. Tombol ‘SBR’ (Set Break Run)
Tombol ‘SBR’ berguna untuk memberi set point pada program. Dengan menekan
tombol ‘SBR’ pada address tertentu pada program, maka pada saat program
dijalankan akan berhenti pada address yang diberi tanda set point.
17. Tombol ‘CBR’ (Clear Break Run)
Tombol ‘CBR’ berguna untuk menghapus set break point yang diberikan sewaktu
menekan tombol ‘SBR’ pada address tertentu.
18. Tombol ‘TAPE WR’ (Tape Write)
Tombol ‘TAPE WR’ berguna untuk menulis program ke pita kaset dengan cara jack
MIC pada MPF-1 board dihubungkan dengan jack MIC pada Tape Recorder.
Contoh :
- Tekan ‘TAPE WR’ , akan tampak di display :
XXXX F F : File (nama file dalam bilangan hexadecimal)
- Tekan : 1, 1, 1, 1
1111 F
- Tekan ‘+’
XXXX S S : Start address yang akan disimpan pada pita kaset.
- Tekan : 1, 8, 0, 0
1800 E E : akhir address yang akan disimpan pada pita kaset.
- Tekan : misal 1, 8, 5, 0
1850 E
Hidupkan Tape Recorder pada posisi rekam, kemudian tekan ‘GO’.
19. Tombol ‘TAPE RD’ (Tape Read)
Tombol ‘TAPE RD’ digunakan untuk membaca program yang disimpan dalam di
pita kaset ke dalam MPF-1 dengan cara menghubungkan jack EAR pada MPF-1
dengan jack EAR pada Tape Recorder. Jika volume dari Tape Recorder cukup keras
maka pada saat terjadi pembacaan program oleh MPF-1 akan terdengar bunyi sesuai
dengan kode bilangan heksadesimal yang dibaca.
Contoh :
- Tekan ‘TAPE RD’
XXXX F F: nama file
- Tekan : misal 1, 1, 1, 1
1111 F
- Tekan : ‘GO’, kemudian hidupkan Tape Recorder pada posisi ‘play’
20. Tombol ‘INTR’ dan ‘USERKEY’ tidak didefinisikan.


SMK NEGERI 53 JAKARTA

Jobsheet 3 Praktikum Modus Pengalamatan dan Isi Semester 3


Mikroprosesosr. Memori Data 2 x 60”)

I. Tujuan Praktikum : Setelah siswa melakukan praktikum diharapkan dapat :


1. Mengoperasikan program dengan modus pengalamatan tersirat, pengalamatan dekat,
pengalamatan tidak langsung, dan pengalamatan berindeks.
2. Melihat atau mengecek isi memori pada lintas data untuk setiap program.

II. Alat dan Bahan praktikum :


1. Piranti MPF-1 Z-80.
2. Lembar Tugas / Kerja (Job sheet 3).
3. Unit Address Decoder.

III. Teori Dasar


Dalam pembuatan suatu program pada mikroprosesor ini hal-hal yang sangat
penting untuk diperhatikan, yaitu :
- Pemeriksaan isi memori agar program dapat dijalankan sesuai dengan diagram alir
yang dibuat oleh programer.
- Cara addressing seperti :
A. Modus Pengalamatan Tersirat
Address data tidak perlu disebutkan, karena sudah tersirat pada instruksi tersebut.
Contoh pada Mnemonic : NEG : ubah isi register A agar menjadi negatif.
B. Modus Pengalamatan Dekat
Di sini data disebutkan dalam instruksi, contoh :
LD A, 05H : Isikan bilangan 05H ke register A.
LD BC, 1200H : Isikan bilangan 1200H ke pasangan register BC
(dimana 1200H adalah sebagai data).
C. Modus Pengalamatan Tidak Langsung
Di sini data terletak pada alamat yang tersimpan pada suatu pasangan register.
Contoh :
LD HL, 1200H : Isikan address 1200H ke register HL.
LD B, (HL) : Salin data yang ditunjuk oleh address pada register HL
ke dalam register B.
Keterangan :
- Instruksi pertama meminta register HL diisi dengan address 1200H.
Instruksi kedua menyatakan isi memori yang ditunjukkan oleh address
yang ada pada register HL agar disalin ke register B.
D. Modus Pengalamatan Berindeks
Pada mikroprosesor Z-80 ada dua register berindeks yaitu register IX dan IY,
masing-masing besarnya 16 bit. Keduanya berguna untu menunjukan suatu data
yang berada pada address tertentu, contoh :
LD IX, 1810H : Isikan address memori 1810H ke register IX.
LD (IX+5),02H : Isikan bilangan 02H ke lokasi memori IX + 5H, berarti
lokasi memori IX + 5H = 1810H + 5H = 1815H diisi
dengan bilangan 02H.
IV. Langkah Kerja
Modus Pengalamatan
Ketikkan program berikut ke MPF-1:
Program I :
Address Op-Code Mnemonic Keterangan
1800 3E LD A, 05H Isikan 05H ke reg. A
1801 05
1802 06 LD B, 02H Isikan 02H ke reg. B
1803 02
1804 0E LD C, 03H Isikan 03H ke reg. C
1805 03
1806 16 LD D, 07H Isikan 07H ke reg. D
1807 07
1808 1E LD E, 09H Isikan 09H ke reg. E
1809 09
180A 26 LD H, 0AH Isikan 0AH ke reg. H
180B 0A
180C 2E LD L, 0BH Isikan 0BH ke reg. L
180D 0B
180E FF RST 38H Kembali ke display
1807 07
1808 1E LD E, 09H Isikan 09H ke reg. E

Setelah selesai mengetikan program pada MPF-1 lakukan perintah sebagai berikut
berturut-turut dan periksa isi register :

Tekan : PC, STEP, REG. AF maka pada display akan terlihat :


| 05 XXAF | Reg. A adalah : 05
Tekan : PC, STEP, REG. BC maka pada display akan terlihat :
| 02 XXBC | Reg. B adalah : 02
Tekan : PC, STEP, REG. BC maka pada display akan terlihat :
| 02 03BC | Reg. BC adalah : 0203
Tekan : PC, STEP, REG. DE maka pada display akan terlihat :
| 07 XXDE | Reg. D adalah : 07
Tekan : PC, STEP, REG. DE maka pada display akan terlihat :
| 07 09DE | Reg. DE adalah : 0709
Tekan : PC, STEP, REG. HL maka pada display akan terlihat :
| 0A XXHL | Reg. H adalah : 0A
Tekan : PC, STEP, REG. HL maka pada display akan terlihat :
| 0A OBHL | Reg. HL adalah : 0AOB

Ulangi program di atas dengan memasukkan data sebagai berikut dan mulai dari
address 1800H:
Register :
A = 20H B = 85H C = 31H D = 51H
E = 34H H = 31H L = 65H
Susunan programnya !
Program II :
Address Op-Code Mnemonic Keterangan
1800 3E LD A, 05H Isikan 05H ke reg. A
1801 05
1802 47 LD B, A Kutip isi reg. A ke reg. B
1803 0E LD C, FFH Isikan FFH ke reg. C
1804 FF
1805 59 LD E, C Kutip isi reg C ke reg. E
1806 63 LD H, E Kutip isi reg E ke reg. H
1807 FF RST 38H Kembali ke display.

Setelah selesai mengetikkan pada MPF-1, lakukan langkah-langkah seperti pada


program I. Lakukan lagi Program II di atas dengan memasukkan data-data sebagai
berikut :
A = 20H C = DEH
Susun programnya !

Program III :
Address Op-Code Mnemonic Keterangan
1800 06 LD B, 19H Isikan 19H ke reg. B
1801 19
1802 CE LD C, 00H Isikan 00H ke reg. C
1803 00
1804 50 LD D, B Kutip isi reg B ke reg. D
1805 0A LD A, (BC) Kutip isi memori yang
ditunjukkan oleh address
pada reg. BC ke dalam
reg. A.
1806 21 LD HL, 1910H Isikan address memori
1910H pada reg. HL.
1807 10
1808 19
1809 5E LD E, (HL) Kutip isi memori yang
ditunjukkan oleh address
pada reg. HL ke dalam
reg. E.
180A DD LD IX, 1915H Isikan address memori
1915H pada reg. IX.
180B 21
180C 15
180D 19
180E DD LD B, (IX + 0) Kutip isi memori yang
ditunjukkan oleh address
pada reg. (IX + 0) =
1915H ke reg. B.
180F 46
1810 00
1811 DD LD C, (IX + 5) Kutip isi memori yang
ditunjukkan oleh address
pada reg. (IX + 5) =
191AH ke reg. C.
1812 4E
1813 05
1814 FF RST 38 Kembali ke display.
1900 0A
1910 12
1915 45
191A 65

Setelah selesai mengetikkan pada MPF-1, maka lakukan langkah-langkah serta


perintah-perintah untuk memeriksa register-register yang digunakan, seperti pada
Program I dan Program II.

Ulangi Program III tersebut dengan mengganti data-data yang lain sebagai berikut :
Register :
B = 18H C = 50H HL = 1900H IX = 1905H
Address :
1850H = 05H 1900H = 50H 1905H = AEH 190A = 03H

Pada modul pratikum sekarang rancang program pada MPF-1 dengan ketentuan
sebagai berikut :
Data-data address :
1900H = 12H 1905H = 05H 1910H = 0BH
1915H = 02H 1920H = ABH
Setelah program dijalankan maka akan didapat hasil sebagai berikut :
Register : IX = 1900H BC = 1915H HL = 1920H
D = 12H E = 05H A = 0BH
IY = 1930H
Address : 1925H = 02H 1930H = ABH


SMK NEGERI 53 JAKARTA

Jobsheet 4 Praktikum Operasi Aritmatika Semester 3


Mikroprosesosr. dan Operasi Logika 2 x 60”)

A. Operasi Aritmatika
I. Tujuan Praktikum : Setelah siswa melakukan praktikum diharapkan dapat :
1. Menjalankan program operasi aritmatika serta mengecek isi setiap register yang
digunakan.
2. Menjalankan program operasi logika serta mengecek isi setiap register yang
digunakan.

III. Alat dan Bahan praktikum :


1. Piranti MPF-1 Z-80.
2. Lembar Tugas / Kerja (Job sheet 4).
3. Unit Address Decoder.

III. Teori Dasar


Pada dasarnya hanya terdapat 5 macam operasi aritmatik yang dapat dilaksana-
kan oleh mikroprosesor Z-80. Operasi aritmatik tersebut adalah penjumlahan,
pengurangan, tambah satu, kurang satu dan membandingkan.
Operasi penjumlahan itu ada dua macam yaitu ADD dan ADC (penjumlahan
dengan carry-nya). Operasi pengurangan juga ada dua macam yaitu SUB dan SBC
(pengurangan dengan carry-nya). Selain itu dapat dibedakan dibedakan operasi 8 bit
dengan operasi 16 bit. Untuk operasi 8 bit salah satu datanya harus berada pada register
A (Akumulator).
Mnemonic dan arti simbolnya pada operasi 8 bit adalah sebagai berikut :
Mnemonic Arti simbol / Simbol operasi
ADD A, S A A + s
ADC A, S A  A + s + cy
SUB A, S A A - s
SBC A, S A  A - s - cy
INC s s  s + 1
DEC s s  s - 1
CP s A - s (dimana harga A tetap).
Keterangan :
S : register A, B, C, D, E, H, L, n, (HL), (IX + d), (IY + d)
n : data 8 bit langsung
cy : carry

Mnemonic dan arti simbolnya pada operasi 16 bit adalah sebagai berikut :
Mnemonic Arti simbol / Simbol operasi
ADD A, S HL  HL + ss
ADC A, S HL  HL + ss + cy
SBC A, S HL  HL - ss – cy
ADD IX, pp IX  IX + pp
ADD IY, rr IY  IY + rr
INC tt tt  tt + 1
DEC tt tt  tt - 1
Keterangan :
ss : untuk BC, DE, SP, HL
pp : untuk BC, DE, SP, HL
rr : untuk BC, DE, SP, HL
tt : untuk semua register 16 bit

B. Operasi Logika
Operasi logika itu terdiri dari AND, OR, NOT, EXOR. Adapun tabel kebenaran dari
operasi logika, sbb :
AND OR EXOR
P Q (P x Q) P Q (P + Q) P Q (P  Q)
0 0 0 0 0 0 0 0 0
0 1 0 0 1 1 0 1 1
1 0 0 1 0 1 1 0 1
1 1 1 1 1 1 1 1 0

Contoh :
P = 10110010B = B2H P = 10110010B = B2H P = 10110010B = B2H
Q = 01101010B = 6AH Q = 01101010B = 6AH Q = 01101010B = 6AH
------------------------- AND ------------------------ OR -----------------------EXOR
00100010B = 22H 11111010B = FAH 11011000B = D8H

C. Register Flag
Register flag merupakan register pembantu terhadap operasi aritmatik dan operasi
logika. Bentuk bentuannya berupa menyimpan tanda keadaan bilamana terjadi carry, non-
carry, borrow, zero, parity / overflow. Letak difinisi simpan keadaan flag pada register F
dapat dilukiskan sebagai berikut :
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
S Z - H - P/V N C
Keterangan : S : sign P/V : parity / overflow
Z : zero N : non-carry
H : halfcarry C : carry

Dengan adanya operasi aritmatik atau logika maka kejadian dari register F dapat dibuat tabel
sebagai berikut :
Bit Nama Flag Keterangan
0 C 0 : operasi aritmatik/logika tidak terjadi carry
1 : operasi aritmatik/logika terjadi carry
1 N 0 : operasi yang telah terjadi bukan substract
1 : operasi yang telah terjadi adalah substract
2 P/V 0 : parity even (genap) atau tidak terjadi overflow
1 : parity odd (ganjil) atau terjadi overflow
3 - Tidak digunakan.
4 H 0 : adisi / substract non-carry di bit 4 reg. A
1 : adisi / substract ada carry di bit 4 reg. A
5 - Tidak digunakan.
6 Z 0 : hasil operasi aritmatik / logik tidak nol
1 : hasil operasi aritmatik / logik = nol
7 S 0 : hasil operasi aritmatik / logik adalah positif
1 : hasil operasi aritmatik / logik adalah negatif

Program I :
Address Op-Code Mnemonic Keterangan
1800 3A 20 18 LD A(1820H) A  (1820H)
1803 06 09 LD B, 09H B  09H
1805 0E 0A LD C, 0AH C  0AH
1807 16 03 LD D, 03H D  03H
1809 1E 04 LD E, 04H E  04H
180B 80 ADD A, B A A+B
180C 3E 00 LD A, 00H
A  00H
180E CE 00 ADC A, 00H
A  A + 00H + cy
1810 A0 AND A, B
1811 3A 21 18 LD A, (1821) A  A AND B
1814 B0 OR A, B A  (1821)
1815 AF XOR A A  A OR B
1816 1C INC E A  A XOR A
1817 15 DEC D EE+1
1818 B8 CP B DD–1
1819 D6 02 SUB A, 02H A  B, A TETAP
181B DE 01 SBC A, 01H A  A – 02H
181D ED 44 NEG A  A – 01 – cy
181F 2F CPL A  negatif A
1820 FF RST 38H A  komplemen A
1821 0A DEFB 0AH KEMBALI KE DISPLAY

Ketikkanlah program tersebut pada MPF-1 dan cek isi dari setiap register yang digunakan
dan terangkan mengenai masing-masing register flagnya yaitu dengan melihat isi dari
register flag setelah terjadi operasi aritmatik / logik jika setelah perintah STEP.

Program II : Program penjumlahan bilangan heksadesimal satu byte.


Address Op-Code Mnemonic Keterangan
1800 1E 05 LD E, 05H E  05H
1802 16 06 LD D, 06H D  06H
1804 7B LD A, E A E
1805 82 ADD A, D A A+D
1806 6F LD L, A LA
1807 3E 00 LD A, 00H
1809 CE 00 ADC A, 00H A  00H
180B 67 LD H, A A  A + 00H + cy
180C 22 10 18 LD (1810H), HL HA
180F FF RST 38H (1810H)  HL
1810 00 00 00

Ketikkan program tersebut pada MPF-1 kemudian cek masing-masing register yang
digunakan dan register F setelah terjadi operasi aritmatik. Cek juga isi dari register HL dan
isi dari address 1810H (bandingkan isinya).
Ubah data pada register E dengan BFH dan isi register D dengan 62H seperti program di
atas.

Program III :
Address Op-Code Mnemonic Keterangan
1800 1E 0A LD E, 0AH E  0AH
1802 16 06 LD D, 06H D  06H
1804 AF XOR A A  A XOR A
1805 7B LD A, E A E
1806 9A SBC A, D A  A – D – cy
1807 6F LD L, A LA
1808 26 00 LD H, 00H
H 00H
180A 22 0E 18 LD (180EH), HL
(180EH)  HL
180D FF RST 38H
KEMBALIKE DISPLAY

Ketikkan program tersebut pada MPF-1 kemudian cek masing-masing register yang
digunakan dan register flagnya. Cek juga isi dari register HL dan isi dari address 180EH.
Ubah isi register E = 08H dan register D = 03H.

Program IV :
Tugas : Buatlah program penjumlahan 2 byte dengan ketentuan sebagai berikut :
- data 1 berada pada address 1850H yaitu 1324H
- data 2 berada pada address 1853H yaitu 2415H
Setelah mencoba dengan data tersebut maka ubah datanya dengan yang lainnya !


SMK NEGERI 53 JAKARTA

Jobsheet 5 Praktikum Pemrograman Semester 3


Mikroprosesosr. dengan Stack Pointer 2 x 60”)
(Instruksi PUSH dan POP)

I. Tujuan Praktikum : Setelah siswa melakukan praktikum diharapkan dapat :


1. Menjalankan program operasi aritmatika dengan instruksi PUSH dan POP serta
melihat isi dari register SP maupun address yang bersangkutan.

II. Alat dan Bahan praktikum :


1. Piranti MPF-1 Z-80.
2. Lembar Tugas / Kerja (Job sheet 5).
3. Unit Address Decoder.

III. Teori Dasar


Stack pointer adalah memori tempat simpan isi register 16 bit yang hanya
berkaitan dengan operasi penyimpanan PUSH dan operasi pengambilan POP. Register
SP (stack pointer) adalah pencatat address stack dan memiliki sifat menunjuk ke address
memori dan memounyai sifat yang berbeda dengan penunjuk address memori lainnya.
Operasi register SP selalu berkaitan dengan operasi PUSH dan POP, dimana operasi ini
khusus menyimpan dan mengambil isi register BC, DE, HL, IX, IY dan register AF di
stack. Instruksi tersebut dapat dijabarkan sebagai berikut :
- Instruksi PUSH qq :
(SP – 1) ---- qq (high)
(SP – 2) ---- qq (low) sehingga setelah instruksi PUSH qq maka address register SP
(stack pointer) itu adalah : SP --- SP – 2
- Instruksi POP qq :
qq (low) ---- (SP)
qq (high) ---- (SP + 1) sehingga setelah instruksi POP qq maka address register SP
(stack pointer) itu adalah : SP --- SP + 2

Jadi, instruksi PUSH dan POP itu harus digunakan berpasangan. Agar lebih jelas
perhatikan program di bawah ini.

LD SP, 1980H : register SP mencacat address 1980, yaitu address awal stack pointer.
LD DE, 1850H : register DE diisi angka 1850H
LD BC, AAFEH : register BC diisi angka AAFEH
PUSH DE : simpan isi register DE ke stack
PUSH BC : simpan isi register BC ke stack
POP HL : isi stack terakhir dimasukkan ke register HL
POP IX : isi stack terakhir dimasukkan ke register IX

Keterangan program :
i). Sebelum dilakukan instruksi PSH dan POP isi register SP adalah 1980H.
ii). Setelah PUSH DE berlangsung, isi register D tersimpan di memori dengan address
197FH dan isi register E tersimpan di memori dengan address 197EH. Register SP
menggeser isi catatannya sebanyak 2 kali ke bawah sehingga isi register SP menjadi
197EH.
Jadi hasil dari PUSH DE adalah :
- memori yang address-nya 197FH berisi 18H
- memori yang address-nya 197EH berisi 50H
- register SP menjadi berisi 197EH
iii). Setelah PUSH BC berlangsung, isi register B tersimpan di memori dengan address
197DH dan isi register C tersimpan di memori dengan address 197CH. Register SP
menggeser isi catatannya sebanyak 2 kali ke bawah sehingga isi register SP menjadi
197CH.
Jadi hasil dari PUSH BC adalah :
- memori yang address-nya 197DH berisi AAH
- memori yang address-nya 197CH berisi FEH
- register SP menjadi berisi 197CH
iv). Setelah POP HL berlangsung, maka isi register L menjadi FEH dan isi register H
menjadi AAH. Register SP menggeser isi catatannya sebanyak 2 kali ke atas,
sehingga isi register SP menjadi 197FH. Isi memori yang address-nya 197CH dan
197DH sudah berubah dan bukan FEH maupun AAH.
- register HL menjadi berisi AAFEH
- register SP menjadi berisi 197EH
- isi address memori 197FH dan 197EH buan lagi 18H dan 50H
- isi address memori 197DH dan 197CH buan lagi AAH dan FEH
v). Setelah POP IX berlangsung, maka isi register IX menjadi berisi 1850H dan register
SP menggeser catatan kembali berisi 1980H.
Pada MPF Z-80 register SP tidak harus disetm karena pada MPF Z-80 register SP
sudah diset oleh program ROM yang ada pada address 1F9FH.

IV. Langkah Kerja


Program I :
Address Op-Code Mnemonic Keterangan
1800 31 00 19 LD SP, 1900H Set register SP pada 1900H
1803 01 10 19 LD BC, 1910H BC  1910H
1806 DD 21 20 19 LD IX, 1920H IX  1920H
180A C5 PUSH BC SP – BC
180B DD E5 PUSH IX SP – IX
180D E1 POP HL HL – SP
180E FD E1 POP IY IY – SP
1810 FF RST 38H Kembali le display

Setelah mengetikkan program pada MPF-1 maka periksa isi dari register-register dan
address-address yang terlibat pada program di atas dengan instruksi STEP.
Ubah isi dari register SP = 1820H, BC = 1900H, IX = BCDAH dan periksa register-
register maupun address yang bersangutan.
Program II :
Program mengalikan semua data pada address 1900H sampai dengan 1905H
dengan angka 8.
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 06 05 LD B, 05H B  05H
1802 21 00 19 LD HL, 1900H HL  1900H
1805 C5 Loop PUSH BC SP  BC
1806 7E LD A, (HL) A  (HL)
1807 06 03 LD B, 03H B  03H
1809 87 Perkalian ADD A, A AA+A
180A 10 FD DJNZ PERKALIAN
180C 77 LD (HL), A (HL)  A
180D 23 INC HL HL  HL + 1
180E C1 POP BC BC  SP
180F 10 F4 DJNZ LOOP
Kembali ke display
1811 FF RST 38H
ORG. 1900H
1900 01 DEFB 01H
1901 02 DEFB 02H
1902 03 DEFB 03H
1903 04 DEFB 04H
1904 05 DEFB 05H

Setelah mengetikkan program pada MPF-1 maka periksa isi masing-masing register
dan address-address yang terlibat pada program di atas dengan instruksi STEP.
Setelah itu ubah data pada address 1900H sampai dengan 1904H dan jalankan
program tersebut dan periksa isi masing-maisng register dan addres yang terlibat.

Program III :
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 01 20 18 LD BC, 1820H BC – 1820H
1803 11 26 18 LD DE, 1826H DE – 1826H
1806 DD 21 2C 18 LD IX, 182CH IX – 182CH
180A C5 Loop PUSH BC P – BC
180B DD E5 PUSH IX SP – IX
180D D5 PUSH DE SP – DE
180E 06 64 LD B, 64H B – 64H
1820 DD E1 POP IX IX – SP
1822 CD 24 06 Tamp CALL SCAN 1 Menampilkan
1825 10 FB DJNZ TAMP
1827 C1 POP BC BC – SP
1828 D1 POP DE DE – SP
1829 C3 0A 18 JP Loop
ORG. 1830H
1830 30 02 02 UPF – 1
1833 0F 1F 85
1836 3F 6F 85 FISIKA
1839 AE 89 0F
183C 00 00 A7 ITB
183F 87 89 00

Setelah pengetikan program pada MPF-1, maka periksa register-register yang


digunakan beserta address-nya. Setelah memeriksa register serta address-nya maka
ubah data tampilan dengan sembarang data dan perhatikan register-register yang
digunakan beserta address-nya.


SMK NEGERI 53 JAKARTA

Jobsheet 6 Praktikum Program Pelayanan Subroutine-1 Semester 3


Mikroprosesosr. pada MPF Z-80 2 x 60”)

I. Tujuan Praktikum : Setelah siswa melakukan praktikum diharapkan dapat :


1. Menjalankan program dengan layanan subroutine guna menampilkan nyala lampu
LED berganti-ganti dengan tetapan waktu.

II. Alat dan Bahan praktikum :


1. Piranti MPF-1 Z-80.
2. Lembar Tugas / Kerja (Job sheet 6).
3. Unit Address Decoder (8 buah LED).

III. Teori Dasar


Pada MPF-1 terdapat subroutine- subroutine yang sangat bermanfaat untuk
mencapai tujuan pemrograman. Subroutine-subroutine itu adalah :

A. Subroutine Scan1 dengan address awal 062411


Fungsi : Menyajikan nyala tuliasan di LED secara multiplex dan melakukan scanning
tombol satu siklus, meliputi 6 buah LED dan 36 tombol
Jangka waktu : 9,97 mdetik.
Input : Data angka atau data huruf pelayanan LED berjumlah 6 byte dan harus ter-
simpan berurutan dalam memori yang ditunjukkan oleh register IX. Untuk
LED yang paling kanan datanya harus berada pada address paling tinggi,
sedangkan untuk LED yang paling kiri harus berada pada address yang
paling rendah.
Output : Jika tombol tidak ditekan, bit carry flag tetap satu. Jika tombol ditekan maka
carry flag akan menjadi nol dan memberikan kode posisi tombol yang
tersimpan pada register A.

B. Subroutine Scan dengan address awal 05FEH


Fungsi : Menyajikan nyala tuliasan di LED secara multiplex dan melakukan scanning
tombol, meliputi 6 buah LED dan 36 tombol dalam satu siklus.
Jangka waktu : Terus-menerus sampai ada salah satu tombol yang ditekan.
Input : Data harus disimpan berurutan di memori dengan urut nyala LED paling
kanan harus berada pada address paling tinggi, sedangkan untuk LED yang
paling kiri harus berada pada address yang paling rendah.
Output : Jika tombol tidak ditekan, bit carry flag tetap satu. Jika tombol ditekan maka
carry flag akan menjadi nol dan memberi internal tombol yang tersimpan
pada register A.

C. Subroutine HEX7 dengan address awal 0689H


Fungsi : Mengubah data 4 bit terendah di register A menjadi data nyala angka LED.
Output : Berada pada register A.

D. Subroutine HEX7SG dengan address awal 0678H


Fungsi : Mengubah data 8 bit (1 byte) di register A menjadi 2 nyala LED.
Output : Berada di memori yang address awal harus dicatat oleh register HL. Data
nyala LED berasal dari nible rendah register A berada di HL dan nible tinggi berada
pada (HL + 1).

IV. Langkah Kerja


Program I :
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 21 50 18 LD HL, 1850H HL  1850H
1803 97 SUB A AA-A
1804 16 00 LD D, 00H D  00H
1806 46 LD B, (HL) B  (HL)
1807 23 COUNT. INC HL HL  HL + 1
1808 86 ADD A, (HL) A  A + (HL)
1809 5F LD E, A EA
180A 3E 00 LD A, 00H A  00H
180C CE 00 ADC A, 00H A  A + 00H + CY
180E 82 ADD A, D A A+D
180F 57 LD D, A DA
1810 78 LD A, E A E
1811 10 F4 DJNZ COUNT.
1813 21 00 19 LD HL, 1900H HL  1900H
1816 CD 78 06 CALL HEX7SG ROUT. HEX7SG
1819 AF XOR A A  A XOR A
181A 7A LD A, D AD
181B CD 78 06 CALL HEX7SG ROUT. HEX7SG
181E DD 21 00 19 LD IX, 1900H IX  1900H
1822 CD FE 05 CALL SCAN ROUT.SCAN
1825 76 HALT
ORG. 1850H
1850 04 DEFB 04H JML. DATA
1851 05 DEFB 05H DATA 1
1852 04 DEFB 04H DATA 2
1853 02 DEFB 02H DATA 3
1854 06 DEFB 06H DATA 4
ORG. 1900H
1900 00 00 00 BUFFER
1903 00 00 00

Setelah mengetikkan program pada MPF-1 maka perhatikan hasil pada tampilan di
display, dan ubah beberapa kali data yang ada pada address 1850 sampai dengan address
1854.

Program II :
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 0E 08 LD C, 08H C  08H
1802 DD 21 29 18 LD IX, 1820H IX  1820H
1806 11 06 00 LD DE, 0006H DE  0006H
1809 D6 64 LOOP LD B, 64H B  64H
180B CD 24 06 TAMP CALL SCAN1 ROUT. SCAN1
180E 10 FB DJNZ TAMP
1810 DD 19 ADD IX, DE IX  IX + DE
1812 0D DEC C CC–1
1813 20 F4 JRNZ LOOP
1815 C3 09 18 JP LOOP
ORG. 1820
1820 C7 AE 8F 2B 8F AE DEFW SEMEST
1826 9B 97 3F 8F 03 A7 DEFW BREAK2
1832 30 02 02 0F 1F B5 DEFW UPF-1
1838 00 40 A7 3F 85 00 DEFW LAB.
183E 00 3F 97 85 8F 00 DEFW ELKA
1844 3F A7 05 AE 05 0F DEFW FISIA
184A 00 00 A7 67 05 00 DEFW ITB
1850 00 9B BE BE 03 00 DEFW 1992

Setelah mengetikan program pada MPF-1 maka perhatikan tampilan pada display dan
bandingkan dengan program pada instruksi PUSH / POP program sebelumnya.

Program III :
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 DE 53 LD C, 53H C  53H
1802 DD 21 20 18 LD IX, 1820H IX  1820H
1806 06 64 LOOP LD B, 64H
1808 CD 24 06 TAMP. CALL SCAN1 ROUT.SCAN1
180B 10 FB DJNZ TAMP
180D DD 23 INC IX IX  IX + 1
180F 0D DEC C CC–1
1810 20 F4 JRNZ LOOP
1812 C3 00 18 JP 1800H
ORG. 1820H
1820 00 03 8F 87 AE DEFW SEMEST ER
1825 8F 2B 8F AE
1829 00 9B 02 97 DEFW BREAK- 2
182D 3F 8F 03 A7
1831 00 03 A3 AE 8F AE DEFW MIKROP ROSESOR
1837 A3 03 1F A3 03 97
183D 89 2B 00
1840 37 8F 85 A3 00 DEFW OLEH
1844 2B B5 89 03 A3 87 DEFW LABOR ATORIUM
184A 3F 85 A3 A7 3F 85
1850 00 3F 97 89 23 A3 DEFW ELEKTR ONIKA
1856 03 87 97 8F 85 8F
185C 00 3F 97 89 AE 89 0F DEFW FISIKA
1863 00 A7 87 89 00 DEFW ITB
1868 9B BE BE 30 DEFW 1992

Setelah mengetikan program ini maka periksalah tampilan pada display. Setelah
mengerti logika program maka ubah sedikit program di atas agar data yang ditampilkan
itu bergeser ke kanan.


SMK NEGERI 53 JAKARTA

Jobsheet 7 Praktikum Program Pelayanan Subroutine-2 Semester 3


Mikroprosesosr. pada MPF Z-80 2 x 60”)

I. Tujuan Praktikum : Setelah siswa melakukan praktikum diharapkan dapat :


1. Menjalankan program dengan layanan subroutine guna membunyikan nada dengan
frekuensi yang berbeda-beda.

II. Alat dan Bahan praktikum :


1. Piranti MPF-1 Z-80.
2. Lembar Tugas / Kerja (Job sheet 7).
3. Unit Address Decoder (untuk speaker).

III. Teori Dasar


- SUBRUOTINE TONE dengan address awal 05E4H
Fungsi : Memberikan nada di mana frekunsi dan lamanya dapat kita pilih.
Input : Register C sebagai input untuk menentukan frekuensi nada dengan rumus :
f = 200 /{10 + 3 (isi register C)} kHz
T = {44 + 13 (isi register C)} x 2 x 0,56 mikrodetik
Register HL diisi dengan bilangan 16 bit dari 0000H sampai maksimum
7FFFH dan isi HL ini menentukan lama suara yang timbul pada loudspeaker.
Output : Nada loudspeaker

- SUBRUOTINE TONE1k dengan address awal 05DEH


Fungsi : Memberikan nada pada frekuensi 1 KHz dengan lama suara dapat kita pilih.
Input : Register HL diisi dengan bilangan 0000H hingga 7FFFH untuk menentukan
lama suara.
Ouput : Nada loudspeaker

- SUBRUOTINE TONE2k dengan address awal 05E2H


Untuk subroutine TONE2K sebenarnya sama dengan subroutine TONE1K hanya
berbeda pada frekuensi yang dihasilkan. Frekuensi yang dihasilkan oleh subroutine
TONE2K adalah 2 KHz.

- SUBRUOTINE RAMCHK dengan address awal 05F6H


Fungsi : Untuk memeriksa adanya RAM pada suatu address dengan menguji pelaksa-
naan simpannya.
Output : Jika RAM ada dan pelaksanaan simpannya baik bit zero flag akan menjadi
satu. Jika pada address tersebut pelaksanaan simpannya jelek atau tidak ada
RAM-nya maka bit zero flag-nya menjadi nol.

Cara menggunakan RAMCHK :


LD HL, address awal RAM yang akan diperiksa.
LD BC, jumlah address RAM yang akan diperiksa.

Check RAM : CALL RAMCHK ; atau call 06F6H


JR Z, Check
HALT
Check : CPI
JP PE, Check RAM
RST 00H

IV. Langkah Kerja


Program I :
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 06 0B LD B, 0BH B  0BH
1802 C5 LOOP PUSH BC SP  BC
1803 0E D3 LD C, D3H C  D3H
1805 21 08 00 LD HL, 0008H HL  0000H
1808 CD E4 05 CALL TONE SUBR. TONE
180B 0E 8C LD C, 8CH C  8CH
180D 21 12 00 LD HL, 0012H HL  0012H
1810 CD E4 05 CALL TONE SBR. TONE
1813 C1 POP BC BC  SP
1814 10 EC DJNZ LOOP
1816 16 FF LD D, FFH D  FFH
1818 DD 21 00 19 LD IX, 1900H IX  1900H
181C CD 24 06 TAMP. CALL SCAN1 SBR. SCAN1
181F 15 DEC D DD-1
1820 20 FA JRNZ TAMP.
1822 C3 00 18 JP 1800H KEMBALI KE
AWAL
ORG. 1900H
1900 00 8F 23 DEFW PONE
1903 A3 1F 00

Pada program di atas frekuensi bunyi pertama adalah adalah 320 Hz dan lamanya 25
msec, sedangkan bunyi kedua frekuensinya 480 Hz dan lamanya 25 msec.

Program II :
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 CD 3A 18 CALL CLEAR SBR. CLEAR
1803 0E 06 LD C, 0AH C  0AH
1805 11 00 00 LD BC, 0000H BC  0000H
1808 21 50 18 LD HL, 1850H HL  1850H
180B DD 21 00 19 LD IX, 1900H IX  1900H
180F 7E LOOP1 LD A, (HL) A  (HL)
1810 E5 PUSH HL SP  HL
1811 DD 77 00 LD (IX + 0), A (IX)  A
1814 DD 21 00 19 LD IX, 1900H IX  1900H
1818 CD 2A 18 CALL TAMPILAN SBR. TAMPILAN
181B CD 3A 18 CALL CLEAR SBR. CLEAR
181E E1 POP HL HL - SP
181F 23 INC HL HL  HL + 1
1820 13 INC DE DE  DE + 1
1821 DD 19 ADD IX, DE IX  IX + DE
1823 0D DEC C CC-1
1824 20 E9 RNZ LOOP1
1826 C3 00 18 JP 1800H

SUBROUTINE TAMPILAN
ORG. 182AH
182A 06 64 LD B, 64H B  64H
182C CD 24 06 TAMP. CALL SCAN1 SBR. SCAN1
182F 10 FB DJNZ TAMP.
1831 C9 RETI KEMNALI KE PRO-
GRAM INDUK.

SUBROUTINE CLEAR
ORG. 183AH
183A 06 10 LD B, 10H B  10H
183C 21 00 19 LD HL, 1900H HL  1900H
183F AF XOR A A  A XOR A
1840 77 CLEAR LD (HL), A (HL)  A
1841 23 INC HL HL  HL + 1
1842 10 FC DJNZ CLEAR
1844 C9 RET KEMNALI KE PRO-
GRAM INDUK.
1850 A7 A7 A7 A7 A7 A7 DEFB DATA

Program di atas adalah menampilkan karakter pada buffer yang address awalnya adalah
1900H. Sebelum menampilkan maka pada address tersebut di clear setelah itu isikan
data yang ada pada register HL ke register IX untuk ditampilkan, lalu dari address
1900H di clear, kemudian reg. IX dan reg. HL di increment, begitu seterusnya.


SMK NEGERI 53 JAKARTA

Jobsheet 8 Praktikum Program Pelayanan Subroutine-3 Semester 3


Mikroprosesosr. pada MPF Z-80 2 x 60”)

I. Tujuan Praktikum : Setelah siswa melakukan praktikum diharapkan dapat :


1. Menjalankan program dengan layanan subroutine guna penjumlahan, pengurangan,
dan perkalian.

II. Alat dan Bahan praktikum :


1. Piranti MPF-1 Z-80.
2. Lembar Tugas / Kerja (Job sheet 8).
3. Unit Address Decoder.

III. Langkah Kerja


Program I :
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 26 02 LD H, data1 H  Data1
1802 1E 05 LD B, data2 B  Data2
1804 16 10 LD D, tanda D  Tanda
1806 7A LD A, D A D
1807 FE 10 CP 10H Tand=penj.
1809 C2 12 18 JPNZ 1812H (Loop1)
180C CD 30 18 CALL Penjumlahan Sbr.Penjml.
180F CD 50 18 CALL Tampilan Sbr.Tamp.
1812 FE 05 LOOP1 CP 05H Tand=Pengr.
1814 C2 1D 18 JPNZ 181DH (Loop2)
1817 CD 39 18 CALL Pengurangan Sbr.Pengr.
181A CD 50 18 CALL Tampilan Sbr.Tamp.
181D FE 01 LOOP2 CP 01H Tand=Perkl.
181F C2 28 18 JPNZ 1828H (Loop3)
1822 CD 42 18 CALL Perkalian Sbr.Perkl.
1825 CD 50 18 CALL Tampilan Sbr.Tamp.
1828 DD 21 10 19 LOOP3 LD IX, 1910H Jika salah tanda
182C CD FE 05 CALL Scan
182F 76 HALT

SUBROUTINE PENJUMLAHAN
ORG. 1830H
1830 7B LD A, E
1831 84 ADD A, E
1832 4F LD C, A
1833 3E 00 LD A, 00
1835 CE 00 ADC A, 00
1837 47 LD B, A
1838 C9 RET
SUBROUTINE PENGURANGAN
ORG. 1839H
1839 7B LD A, E
183A 94 SUB A, H
183B 4F LD C, A
183C 3E 00 LD A, 00
183E DE 00 SBC A, 00
1840 47 LD B, A
1841 C9 RET

SUBROUTINE PERKALIAN
ORG. 1842H
1842 06 00 LD B, 00H
1844 7B LD A, E
1845 83 LOOP4 ADD A, E
1846 4F LD C, A
1847 3E 00 LD A, 00
1849 88 ADC A, B
184A 47 LD B, A
184B 79 LD A, C
184C 25 DEC H
184D 20 F6 JRNZ loop 4
184F C9 RET

SUBROUTINE TAMPILAN
ORG. 1850H
1850 ED 43 00 19 LD (1900), BC
1854 21 00 19 LD HL, 1900
1857 3A 00 19 LD A, (1900)
185A CD 78 06 CALL Hex7SG
185D DD 21 00 19 LD IX, 1900H
1861 CD FE 05 CALL SCAN
1864 76 HALT

ORG. 1900H
1900 00 00 00 00 DEFW Temp. Hasil
1910 B3 23 87 DEFW Slh. Tnd.
1913 77 85 AE DEFW

Program di atas adalah program untuk penjumlahan, pengurangan dan perkalian yang
hasilnya dikonversi ke desimal. Dimana data dimasukkan register H, data 2 dimasukkan
register B dan tanda dimasukkan register D. Jika dalam memasukkan tanda selain
penjumlahan (10H), pengurangan (05H) dan perkalian (01H) maka pada tampilan akan
tampak SLH.TND.
Program II :
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 AF XOR A A  A XOR A
1801 06 24 LD B, 24 B  24H
1803 21 71 18 LD HL, data HL  addr.data
1806 36 00 LOOP LD (HL), 00H (HL)  00H
1808 23 INC HL HL  HL + 1
1809 10 FB DJNZ Loop
180B AUGEND
180B FD 21 71 18 LD IY, AUGEND IY  AUGEND
180F DD 21 7D 18 LD IX, NULL IX  NULL
1813 CD FE 05 DISPL1 CALL Scan
1816 FD 77 00 LD (IY + 00H), A (IY + 00H)  A
1819 CD 5E 18 CALL Konversi Sbr.Konversi
181C DD 21 7D 18 LD IX, NULL IX  NULL
1820 CD FE 05 CALL Scan
1823 FE 10 CP 10H Bandingkan dg.10H
1825 20 F9 JRNZ Displ1
1827 ADDENT
1827 AF XOR A A  A XOR A
1828 FD 21 77 18 LD IY, ADDENT IY  ADDENT
182C DD 21 7D 18 LD IX, NULL IX  NULL
1830 CD FE 05 DISPL2 CALL Scan
1833 FD 77 00 LD (IY + 00H), A (IY + 00H)  A
1836 CD 5E 18 CALL Konversi Sbr.Konversi
1839 DD 21 7D 18 LD IX, NULL IX  NULL
183D CD FE 05 CALL Scan
1840 FE 12 CP 12H
1842 20 F9 JRNZ Displ2 Bandingkan dg.12H
1844 Kalkulasi
1844 AF XOR A A  A XOR A
1845 21 71 18 LD HL, AUGEND HL  AUGEND
1848 11 77 18 LD DE, ADDENT DE  ADDENT
184B DD 21 83 18 LD IX, SUM1 IX  SUM1
184F FD 21 89 18 LD IY, SUM2 IY  SUM2
1853 1A LD A, (DE) A  (DE)
1854 86 ADD A, (HL) A  A + (HL)
1855 DD 77 00 LD (IX + 00H), A (IX + 00H)  A
1858 FD 77 00 LD (IY + 00H), A (IY + 00H)  A
185B CD 5E 18 CALL Konversi Sbr.Konversi
185E SBR. KONVERSI
185E AF XOR A A  A XOR A
185F 21 8F 18 LD HL, Result HL  Result
1862 FD 7E 00 LD A, (IY + 00H) A (IY + 00H)
1865 CD 78 06 CALL Hex7SG
1868 DD 21 8F 18 LD IX, Result IX  Result
186C CD FE 05 CALL Scan
1970 C9 RET
1871
1871 00 00 00 AUGEND
1877 00 00 00 ADDENT
187D 00 00 00 NULL
1883 00 00 00 SUM1
1889 00 00 00 SUM2
188F 00 00 00 RESULT

Program di atas data1 dan data2 yang akan dijumlahkan dimasukkan langsung dari
display yaitu dengan cara memasukkan data1 lalu tekan (+) dua kali masukkan data2
kemudian tekan GO dua kali maka akan tampak hasilnya. Apabila ingin melakukan
lagi langsung dengan cara yang sama seperti di atas.


SMK NEGERI 53 JAKARTA

Jobsheet 9 Praktikum Program Menyalakan LED Semester 3


Mikroprosesosr. dengan Address Decoder 2 x 60”)

I. Tujuan Praktikum : Setelah siswa melakukan praktikum diharapkan dapat :


1. Menjalankan program untuk menunjukkan akses dari address decoder melalui nyala
LED dan / atau suara.

II. Alat dan Bahan praktikum :


1. Piranti MPF-1 Z-80.
2. Lembar Tugas / Kerja (Job sheet 9).
3. Unit Address Decoder.
4. Unit LED.

III. Langkah Kerja


Program I : Tujuannya untuk menunjukkan akses dari address decoder. Untuk
melakukan praktikum, hubungkan kabel pelangi dari MPF-1 ke konektor yang sesuai
pada board praktikum. Hubungkan catu daya +5 volt ke board MPF-1.

Address Op-Code Label Mnemonic Keterangan

0000 ASEG
00C0 ADDE_LED_1 EQU 0C0H
00C1 ADDE_LED_2 EQU 0C1H
00C2 ADDE_LED_3 EQU 0C2H
00C3 ADDE_LED_4 EQU 0C3H
00C4 ADDE_LED_5 EQU 0C4H
00C5 ADDE_LED_6 EQU 0C5H
00C6 ADDE_LED_7 EQU 0C6H
00C7 ADDE_LED_8 EQU 0C7H
1850 DELAY EQU 1850H
ORG. 1800H
1800 AF XOR A
1801 D3 C0 OUT(ADDR_LED_1), A
1803 CD 1850 CALL DELAY ; set lamanya nyala
1806 D3 C1 OUT(ADDR_LED_2), A
1808 CD 1850 CALL DELAY ; set lamanya nyala
180B D3 C2 OUT(ADDR_LED_3), A
180D CD 1850 CALL DELAY ; set lamanya nyala
1810 D3 C3 OUT(ADDR_LED_4), A
1812 CD 1850 CALL DELAY ; set lamanya nyala
1815 D3 C4 OUT(ADDR_LED_5), A
1817 CD 1850 CALL DELAY ; set lamanya nyala
181A D3 C5 OUT(ADDR_LED_6), A
181C CD 1850 CALL DELAY ; set lamanya nyala
181F D3 C6 OUT(ADDR_LED_7), A
1821 CD 1850 CALL DELAY ; set lamanya nyala
1824 D3 C7 OUT(ADDR_LED_8), A
1826 CD 1850 CALL DELAY ; set lamanya nyala
1829 CD 1800 JP 1800 ; kembali ke awal
program.
Subroutin delay
ORG. 1850H
1850 16 FF LD D, 0FFH
1852 06 FB LOOP1: LD B, 0FFH
1854 10 FE LOOP2: DJNZ LOOP2
1856 15 DEC D
1857 20 F9 JRNZ, LOOP1
1859 C9 RET
END

Program II : Tujuannya untuk menunjukkan akses dari address decoder sebelum


menyalakan LED akan membunyikan suara dulu kemudian mengakses address decoder,
setelah mengakses address decoder akan menampilkan address decoder yang diakses.
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
0000 ASEG
00C0 ADDR_LED EQU 0C0H
0624 SCAN_1 EQU 0624H
0678 HEX_7SG EQU 0678H
05E4 TONE EQU 05E4H
1800 ADDR_AWAL_PROG EQ U 1800H
1900 BUFF_DATA EQU 1900H
1900 BUFF_TAMP EQU 1900H
1850 DELAY EQU 1850H
ORG.1800H
1800 26 08 LD H,08H
1802 2E C0 LD L, ADDR_LED
1804 E5 LOOP1: PUSH HL
; Untuk menimbulkan bunyi dengan frek = 365 Hz dan lama nya 0,73 detik.
1805 0E 0C LD C, 0CH
1807 21 00AA LD HL, 00AAH
180A CD 05E4 CALL TONE
; Untuk me ngakses address decoder c0h s/d C7H.
180D E1 POP HL
180E 4D LD C, L
180F ED 79 OUT (C), A
1811 E5 PUSH HL
1812 CD 1850 CALL DELAY
1815 E1 POP HL
1816 2C INC L
1817 25 DEC H
1818 20 EA JRNZ, LOOP1
181A C3 1800 JP ADDR_AWAL_PROG

; Subroutine delay:
ORG. 1850H
1850 16 FF LD D, 0FFH
1852 06 FF LOOPA: LD B, 0FFH
1854 10 FE LOOPB: DJNZ LOOPB
1856 15 DEC D
1857 20 F9 JRNZ, LOOPA
1859 16 02 LD D, 02H
185B 7D LD A, L
185C 21 1900 LD HL, BUFF_DATA
185F DD 21 1900 LD IX, BUFF_TAMP
1863 DD 0678 CALL HEX_7SG
1866 06 64 LOOP2: LD B, 64H
1868 CD 0624 CALL SCAN_1
186B 10 FB LOOP3: DJNZ LOOP3
186D 15 DEC D
186E 20 F6 JRNZ, LOOP2
186F C9 RET
; Buffer data dan buffer tampilan
1900 00 00 DEFB 00H, 00H
1902 00 00 00 00 DEFB 00H, 00H, 00H, 00H
END



SMK NEGERI 53 JAKARTA

Jobsheet 10 Praktikum Menentukan hasil Kuadrat dari Semester 3


Mikroprosesosr. suatu Bilangan melalui Buffer 2 x 60”)
Memori.

I. Tujuan Praktikum : Setelah siswa melakukan praktikum diharapkan dapat :


1. Menjalankan program untuk menentukan hasil kuadrat dari suatu bilangan pada tabel
yang dimasukkan pada buffer memori.

II. Alat dan Bahan praktikum :


1. Piranti MPF-1 Z-80.
2. Lembar Tugas / Kerja (Job sheet 10).
3. Unit Address Decoder.

III. Langkah Kerja


Program I :
Address Op-Code Label Mnemonic Keterangan
;
Z80
0000 ASEG
;
1819 BUFFER_DATA EQU 1819H
1821 BUFFER_TABEL EQU 1821H
1900 BUFFER_TAMPILAN EQU 1900H
067B XEX7SG EQU 0678H
05FE SCAN EQU 05FEH
;
ORG 1800H
1800 3A 1819 LD A, (BUFFER_DATA)
1803 6F LD L, A
1804 26 00 LD H, 00H
1806 11 1821 LD DE, BUFFER_TABEL
1809 19 ADD HL, DE
180A 7E LD A, (HL)
180B 21 1900 LD HL, BUFFER_TAMPILAN
180E DD 21 1900 LD IX, BUFFER_TAMPILAN
1812 CD 0678 CALL HEX7SG
1815 05FE CALL SCAN
1818 76 HALT
;
ORG 1819H
1819 03 DEFB 03H
181A 00 01 04 09 DEFB 00H, 01H, 04H, 09H
181E 16 25 36 49 DEFB 16H, 25H, 36H, 49H
;
ORG 1900H
1900 00 00 00 00 DEFB 00H, 00H, 00H, 00H
1904 00 00 00 00 DEFB 00H, 00H, 00H, 00H
END
Program II :
Address Op-Code Label Mnemonic Keterangan
1840 TAMPIL EQU 1840H
1880 BUFF_TAMP EQU 1880H
0678 HEX7SG EQU 0678H
0624 SCAN EQU 0624H
1860 BUFF_DATA EQU 1860H
1870 BUFF_HASIL EQU 1870H
;
Z80
0000 ASEG
ORG. 1800H
1800 21 1860 LD HL, BUFF_DATA
1803 46 LD B, (HL)
1804 97 SUB A
1805 23 LOOP1: INC HL
1806 30 01 JR NC, LOOP2
1808 7E LD A, HL
1809 10 FA LOOP2: DJNZ LOOP1
180B 32 1870 LD (BUFF_HASIL), A
180E CD 1840 CALL TAMPIL
1811 76 HALT

ORG. 1840H
1840 21 1880 LD HL, BUFF_TAMP
1843 CD 0678 CALL HEX7SG
1846 DD 21 1880 LD IX, BUFF_TAMP
184A CD 0624 CALL SCAN
184D C9 RET

ORG. 1860
1860 0A 02 04 03 DEFB 0AH, 02H, 03H, 04H
1864 05 0B 07 C3 DEFB 05H, 0BH, 07H, 0C3H
1868 AA 01 05 DEFB 0AAH, 01H, 05H

ORG. 1870H
1870 00 00 00 00 DEFB 00H, 00H, 00H, 00H

ORG. 1880H
1880 00 00 00 00 DEFB 00H, 00H, 00H, 00H
1884 00 00 00 00H, 00H, 00H
END

--ooo0000ooo--

Anda mungkin juga menyukai