Search For This Site

Tuesday, June 21, 2011


PERTEMUAN 2
TRANSFER DAT
A

Alat dan Bahan
Microprocessor evaluator (Zilog Z80)

Tujuan
-       Membiasakan pemakai dengan fungsi tranfer data
-       Latihan menggeser nilai inisialisasi data
-       Latihan menulis program, mengisi dan menjalankan

Dasar Teori
            Kebanyakan operasi transfer data didapat dengan menggunakan instruksi LD(load). Data dapat ditransfer dalam unit-unit 8 bit atau 16 bit. Instruksi-instruksi seperti EX, EXX, PUSH dan POP juga dapat digunakan untuk mentransfer data 16 bit. Sedangkan instruksi LDI dan LDIR dapat dipakai untuk mentrasfer blok-blok data.
            Suatu instruksi LD mencakup 2 operand. Operand pertama menunjukkan lokasi destination atau tujuan dan operand kedua menunjukkan source atau sumber.
kemungkinan transfer data yang terjadi :
register ß register                contoh            LD       A,B
register ß memory               contoh            LD       A,(HL)
register ß data                     contoh            LD       A,25h
memori ß register                contoh            LD       (HL),A
memori ß memory               contoh            LDD
memori ß data                     contoh            LD       (HL),5Bh

Percobaan – Percobaan

Tulislah program dalam bahasa assembly untuk mengeset isi register-register sebagai berikut A = 00h, B = 01h, C = 02h, D = 03h, E = 04h, H = 05h, L = 06h (gunakan instruksi LD 8 bit untuk mentransfer satu byte di masing-masing register).

Langkah 1       : tulislah program dalam bahasa assembly. Instruksi terakhir RST38h akan mengembalikan kontrol uPro-1 pada program monitor setelah menjalankan seluruh program.
Langkah 2       : Dengan menggunakan tabel instruksi LD 8 bit, terjemahkan program kedalam bahasa mesin dengan 1800h sebagai alamat awal. Tuliskan alamat yang sesuai untuk tiap-tiap instruksi.
Langkah 3       : Siapkan mikrokomputer uPro-1 (mikroprossesor evaluator). Masukkan program dengan menekan tombol-tombol pada keypad. Periksa program yang tersimpan dalam memroy. Set PC(Program Counter) pada alamat awal, yaitu alamat 1800h. Dan jalankan programnya.
Langkah 4       : Tekan tombol REG dan periksalah apakah isi tiap-tiap register sudah benar. Bila masih ada kesalahan, kebalilah pada langkah 1 dan periksa lagi.
Address
Machine Code
Assembly
1800h
3E 00
LD  A,00h
……..
……..
……..
……..
……..
……..
……..
FF
RST 38h

            Tulislah program dimana bahasa assembly ntuk mengeset isi register-register sebagai berikut  B = 12h, C = 34h, D = 56h, E = 78h, H = 9h, L = A (gunakan instruksi LD 16 bit untuk mentransfer dua byte di masing-masing register)

Langkah 1       : Sama dengan percobaan1 (tulis program dengan bahasa assembly).
Langkah 2       : Dengan menggunakan tabel instruksi LD 16 bit, terjemahkan program kedalam bahasa mesin dengan alamat awal 1820h.
Langkah 3       : (sama dengan percobaan 1) Set PC(Program Counter) pada alamat awal, yaitu alamat 1800h. Dan jalankan programnya.
Langkah 4       : Periksa isi pada masing-masing register (seperti percobaan 1).

catatan  : suatu data 16 bit terdiri dari 2 byte data. Byte  berorde tinggi berada pada alamat memori yang lebih tinggi, sedangkan byte berorde rendah berada pada alamat memori yang lebih rendah.Misalkan, data 16 bit 1234h disimpan pada alamat 1820h – 1821h dengan cara sebagai berikut :

Address
Machine Code
ASSEMBLY
1820h
01 34 12
LD  BC,1234h
1823h
……..
……..
……..
……..
……..
……..
FF
RST 38h

           
Menulis program untuk menghapus isi memori pada alamat 1850h sampai 186Fh, penjelasan :
1.    Jika kita menggunakan instruksi LD 8 bit untuk mentransfer setiap data ke tujuan masing-masing, akan diperlukan 32 (20h) kali pelaksanaan transfer data. Akan lebih mdah bila kita menggunakan metoda “loop” pada program kita.
2.    Gunakan register B sbagai penghitung loop. Gnakan HL sebagai pennjuk alamat memori dan set alamat awal 1850h padaHL. HL ditambah dengan satu (incremented) dan B dikurangi dengan 1 (decremented) untuk setiap loop. Jika b=0, berarti semua loop telah dilaksanakan. Jika sebaliknya (B ≠ 0), loop diulang lagi.



3.    Programnya adalah sebagai berikut

Address
Machine Code
Label
Assembly
1820h
……..
……..
LD    B,20h
……..
……..
……..
LD    HL,1850H
……..
……..
……..
XOR   A
……..
……..
LOOP
LD    (HL),A
……..
……..
……..
INC    HL
……..
……..
……..
DEC   B
……..
……..
……..
JR     NZ,LOOP
……..
FF
……..
RST   38h

Terjemahkan program contoh diatas kedalam bahasa mesin dan isikan ke RAM evaluator. Jalankan program danperiksa apakah isi alamat 1850h -186Fh telah terhapus (= 0). Jika belum benar, periksa sekali lagi, lalu jalankan lagi.
           
Tulislah suatu program dam bahasa assembly untuk mengeset alamat memori 1840h-184Fh sebagai berikut : 0, 1, 2, ….., F. (Petunjuk : ubahlah penghitung loop dan nilai alamat awalnya. Register A ditambah dengan 1 pada loop berikutnya).

PERTEMUAN 1 PRAKTIKUM MIKROPROSSESSOR


PERTEMUAN 1
PENGENALAN ALAT DAN TOMBOL FUNGSI

Alat dan Bahan
Microprocessor evaluator (Zilog Z80)

Tujuan
-       Mengenalakan alat Microprocessor evaluator (Zilog Z80).
-       Mengenalkan tombol-tombol fungsi
-       Mengetahui register-register z80

Dasar Teori
Z80 evaluator adalah komputer mini berbasiskan mikroprosesor/prosesor 8-bit, yaitu mikroprosesor z80. Dengan rincian spesifikasi alat :
¡  Z80 CPU
CPU Z80 dari Zilog yang mempunyai 158 instruksi dan clock maksimum sebesar 2.5Mhz. Untuk uPro-1 ini menggunakan clock sebesar 1,79Mhz.
¡  ROM : EPROM 27256 (32 Kbyte)
EPROM yang digunakan dengan type 27256 yang mempunyai memori sebesar 32Kbyte. Alamat 0000h-17FFh.
¡  RAM : 6116 (2Kbyte)alamat 1800h -1FFFh
Ram yang digunakan adalah RAM dengan type 6116 yang mempunyai memory sebesar 2Kbyte, alamat 1800h -1FFFh
¡  PORT I/O : PPI (8255 ) dg jalur paralel 24, PIO z80 & CTC.
-        PPI 8255 dengan jumlah jalur I/O paralel sebanyak 24. Terdiri dari port A, port B, dan port C. Masing-masing port mempunyai 8 jalur paralel. Alamat I/O berturut-turut PORT A, B, C & Control Word adalah 00h, 01h, 02h & 03h
-        PIO z80 : dengan total jalur I/O parallel sebangyak 16. Alamat I/O berturut-turut PORT A, B, Control port A & Control port B adalah 80h, 81h, 82h, dan 83h.
-        CTC dengan 4 counter timer yang berdiri sendiri. Alamat I/O berturut-turut CTC 0, 1, 2 , & 3 adalah 40h, 41h, 42, & 43h.
¡  DISPLAY : 6 buah/baris seven segmen berwarna merah.
¡  SPEAKER : speaker dengan diameter 1,6”, daya maksimum 0,3W, dan impedansi dalam sebesar 4Ω.
¡  POWER SUPLY 5V.
¡  AUDIO TAPE INTERFACE (MIC dan EAR).
¡  KEYPAD : 19 tombol fungsi, 16 tombol hexa, dan 1 tombol user key.


Setiap pemrograman mikroprossesor, kita harus mengetahui fungsi-fungsi masing-masing kaki dan fungsi masing-masing register. Dan z80 sendiri mempunyai register-register 8 bit, dapat juga digunakan secara berpasangan sebesar 16 bit, dengan catatan harus dengan pasangan masing-masing register seperti gambar dibawah ini :
Mikroprosesor Evaluator ini mempunyai 19 tombol fungsi, 16 tombol hexa, dan 1 tombol user key, penjelasan untuk 19 tombol fungsi pada alat adalah sebagai berikut :
  • RS                 : Reset Sistem
  • ADDR           : set alamat memori
  • REG              : set nama register
  • DATA            : Memasukkan data
  • PC                 : Memanggil Program counter
  • +                    : Menambah alamat memori/Register dg satu
  • -                     : Mengurangi alamat memori/Register dg satu
  • STE P             : menjalankan program pemakai
  • SBR               : Set Break Point
  • CBR               : Menghilangkan Break Point
  • MONI            : Menghentikan Program Seketika
  • GO                 : Menjalankan program
  • INS                : Menyisipkan data ke memori (1 byte)
  • DEL               : Menghapus data dari memori (1 Byte)

  • MOVE           : Memindahkan blok data dari 1 area ke area lain
  • RELA             : Menghitung alamat relatif
  • TAPE WR      : Menyimpan data memori ke audio tape recorder
  • TAPE RD       : Mengambil data dari audio tape recorder
  • INTR             : Maskable interrupt, dihbungkan dengan kaki INT dari CPU
Dan 16 tombol hexa (tombol yang berwarna putih), setiap tombol tersusun menjadi 2 buah fungsi, . Barisan yang paling atas berfungsi untuk operasi register sedangkan barisan yang paling bawah berfungsi untuk operasi bilangan hexa.

Barisan alamat RAM dan ROM, bisa tergambarkan menjadi seperti :

ADDRESS (2 Byte)
DATA (Machine Code, 1Byte)
TAMPILAN 7 SEGMEN (6 Byte)
(‘address’ ‘data’)
0000h
XXh
ADDRESS    DATA
Rentang Alamat ROM
XXh
__.__.__.__   __.__.
XXh
__.__.__.__   __.__.
17FFh
XXh
__.__.__.__   __.__.
1800h
XXh
__.__.__.__   __.__.
Rentang Alamat RAM
XXh
__.__.__.__   __.__.
XXh
__.__.__.__   __.__.
1FFFh
XXh
__.__.__.__   __.__.

            Sedangkan representasi pada 7 segmen bisa digambarkan menjadi :
4 digit menunjukkan alamat
2 digit menunjukkan data



















Data reg A
Data reg A
Data reg B
Data reg B
Register A
Register B













Percobaan – Percobaan
            Cobalah mengisikan data(bahasa mesin) pada alamat dibawah ini :
Address
Machine Code
1820h
01h

Proses yang dilakukan adalah sebagai berikut :


Langkah
TOMBOL
TAMPILAN 7 SEGMEN (6 Byte)
(‘address’ ‘data’)
1
RS
__.__.__.__   __.__.
2
ADDR
__.__.__.__   __.__.
3
1
__.__.__.__   __.__.
4
8
__.__.__.__   __.__.
5
2
__.__.__.__   __.__.
6
0
__.__.__.__   __.__.
7
DATA
__.__.__.__   __.__.
8
0
__.__.__.__   __.__.
9
1
__.__.__.__   __.__.
  Ket : untuk keterangan fungsi tombol bisa dilihat di dasar teori

Petunjuk : lakukan langkah diatas dan tulislah karakter yang muncul di display 7 segmen pada tiap-tiap langkah.
           
Isikan alamat-alamat pada data-data sebagai berikut :
ALAMAT
DATA
TAMPILAN 7 SEGMEN (6 Byte)
(‘address’ ‘data’)
1801h
AFh
__.__.__.__   __.__.
1802h
BCh
__.__.__.__   __.__.
1803h
08h
__.__.__.__   __.__.
1804h
3Eh
__.__.__.__   __.__.
1805h
80h
__.__.__.__   __.__.
1806h
0Eh
__.__.__.__   __.__.
1807h
FFh
__.__.__.__   __.__.
  Ket : cara mengisikan alamat dan data ada di percobaan 1, untuk mengisikan data pada alamat selanjutnya hanya tinggal menekan tombol ‘+’ lalu masukkan datanya
Konversikan bahasa mnemonic dibawah ini ke dalam bahasa mesin. Lalu isikan ke dalam z80 evaluator. Dan jalankan program.
ALAMAT
Mnemonic / Machine Code
BAHASA ASSEMBLY
1801h
3E 05
LD A,05h
1802h
.… ….
INC A
1803h
.… ….
LD B,A
1804h
.… ….
INC B
1805h
.… ….
ADD A,B
1806h
.… ….
LD C,A
1807h
.… ….
RST 08
  Ket :
-       Konversi dari bahasa menemonic ke bahasa mesin gunakan tabel konversi
-       Cara menjalankan program yaitu
Masuk ke alamat awal program
Tekan tombol ‘GO’