Anda di halaman 1dari 36

PENUNTUN PRAKTIKUM

MIKROPROSESOR DAN APLIKASI

Disusun oleh;

IR. A.MUH.SAAD,MT

TEAM ASISTEN LAB

LABORATORIUM TEKNIK DIGITAL


FAKULTAS TEKNIK JURUSAN ELEKTRO
UNIVERSITAS MUSLIM INDONESIA
MAKASSAR
KATA PENGANTAR
Assalamu Alaikum Wr. Wb
Alhamdulillahi rabbil alarnin, kita panjatkan puji
syukur ke hadirat Allah SWT sehingga penyusun dapat
menyelesaikan penuntun praktikum ini. Sholawat dan
salam semoga tetap tercurah atas Rasulullah SAW. .
Percobaan-percobaan yang dilakukan di Laboratorium
sangat bermanfaat bagi mahasiswa karena ;
 Dengan percobaan, maka pengertian teori lebih muda
diresapi dan dipahami.
 Percobaan mengajarkan untuk bekerja secara
sistematis dan teliti, dengan rnenggunakan piranti
peralatan yang tepat
 Percobaan rnembantu mempercepat pembiasan diri
menghadapi masalam-masalah dalam praktek penerapan.
 Dengan melakukan percobaan berarti kita mencoba
menkombinasikan antara teori dan praktek I
penerapannya.
Percobaan-percobaan yang disajikan dalam buku
penuntun ini masih sangatlah sederhana dan masih
membutuhkan penyernpurnaan. Namun demikian, diharapkan
sudah dapat menjadi acuan untuk menambah wawasan
bagi mahasiswa dan lebih mernperkaya diri i
rneningkatkan daya kreatifitas dan keterampilannya.
Penyusun menyadari bahwa buku penuntun ini masih jauh
dari kesempumaan. Karena ini akan dilakukan penyempumaan
terus-rnenerus pada waktu-waktu mendatang.
Wallahu Waaliyyu taufiqwal hidayah.

Makassar, November 2018

Tim Penyusun
PERATURAN UMUM LABORATORIUM

TEKNIK DIGITAL
UNIVERSITAS MUSLIM INDONESIA
I. TATA TERTIB DI LINGKUNGAN LABORATORIUM
A. Peserta peraktikum wajib memenuhi ketentuan
sebagai berikut;
1. Berpakaian rapi sesuai dengan busana bersepatu,
sopan dan tertib dengan menggunakan baju praktikum,
“Bagi Peserta Praktikum Laki-Laki Rambut Harus Rapi
(Tidak Boleh Gondrong)”.
2. Wanita tidak diperkenankan memakai celana panjang
Jeans
3. Sementara praktikum berlangsung tidak
diperkenankan merokok, makan dan minum.
4. Tidak diperkenankan membawa masuk ke ruang
Laboratorium alat yang tidak diperlukan selama
peraktikum berlangsung.
5. Dilarang mengganggu peralatan lainya.
6. Mematuhi petunjuk asisten
B. Praktikum diizinkan masuk berada dalam ruangan
Laboratorium bila telah dinyatakan siap.
C. Mahasiswa yang tidak siap peraktikum tidak
diperkenankan masuk ke ruangan praktikum
II. SYARAT-SYARAT PERAKTIKUM
A. Praktikan harus hadir 15 menit sebelum praktikum
berlangsung.
B. Sebelum melakukan praktikum, praktikan harus
mempersiapkan diri dengan berdoa serta mempelajari
penuntun praktikurn, litaratur yang berhubungan
dengan praktikum yang akan dilakukan
C. Setiap praktikan, harus memiliki buku penuntun
praktikum, kartu kontrol praktikum, alat tulis
menulis untuk pengambilan data dan buku asistensi.
D. Sebelum praktikum dimulai diadakan Tes pendahuluan
mengenai teori yang berhubungan dengan praktikum
(Responsi)yang akan dilakukan. Bagi peraktikan yang
tidak mampu menjawab tes pendahuluan dinyatakan tidak
dapat mengikuti peraktikum (Gugur)pada percobaan yang
akan dilakukan.
E. Tugas pendahuluan ketik manual/tulis tangan
F. Praktikan yang mengancam asisten, berlaku tidak sopan,
atau memalsukan tanda tangan asisten, akan diberikan
sangsi berupa larangan mengikuti praktikurn
kegiatan praktikum dalam hal dianggap gugur, selama
praktikan tidak memohon maaf kepada asisten yang
bersangkutan. Atau sangsi yang lebih berat sesuai
dengan peraturan yang berlaku dalam lingkungan
Laboratorium
G. Setelah selesai melakukan percobaan, matikan switch
panelkontrol pada meja praktikurn, rapikan kembali
peralatan yang digunakan serta mengembalikannya kepada
bagian peralatan seperti semula.
H. Menyerahkan hasil pengambilan data pengamatan kepada
asisten.
III. KERUSAKAN ALAT-ALAT
A. Untuk mencegah hal-hal yang tidak diinginkan atau
Merugikan jalannya praktikum, maka harus diperhatikan
hal-hal sebagai berikut
 Praktikan harus yakin akan kemarnpuannya dan tahu
persis dalarn pengoperasian alat-alat praktikum
 Jika mengalami kesulitan dalam melakukan percobaan,
peserta praktikum harus bertanya pada asisten
B. Bila terjadi kerusakan alat-alat akibat kesalahan
atau kelalaian asisten maka seluruh kerusaknan
merupakan tanggung jawab laboratorium.
C. Apabila terjadi kerusakan alat akibat kelalaian
praktikan, maka kelompok yang bersangkutan dapat
dikenakan sangsi sebagai berikut;
 Menanggun biaya perbaikan

 Bila tidak mungkin diperbaiki lagi, maka kelompok


yang bersangkutan diwajibkan mengganti dengan alat
yang baru.
 Tidak diperkenankan melanjutkan kegiatan praktikum
selama alat tersebut belum baik
Peraturan ini ditetapkan untuk dilaksanakan dan
dipatuhi oleh setiap mahasiswa yang akan mengikuti praktikum
pada laboratorium TEKNIK DIGITAL UMI Makassar.

Makassar, November 2018


Kepala Laboratorium

Ir.A.MUH SAAD,MT
IV. PEMBUATAN LAPORAN

1. Laporan ditulis Tangan pada kertas putih ukuran A4,


harus rapi dan bersih serta tidak timbal balik
2. Laporan percobaan disusun menurut sistematika ;
BAB I. PENDAHULUAN
1.1. LATAR BELAKANG MASALAH
1.2. TUJUAN PERCOBAAN
1.3. WAKTU DAN TEMPAT PRAKTIKUM
1.4. TUGAS PENDAHULUAN
BAB II. TEORI DASAR
BAB III. METODE PELAKSANAAN PRAKTIKUM
3.1. ALAT YANG DIGUNAKAN
3.2. BLOK DIAGRAM PERCOBAAN
3.3. PROSEDUR PERCOBAAN
BAB IV. HASIL PRAKTIKUM DAN PEMBAHASAN
4.1. ANALISA SECARA TEORI
4.2. ANALISA SECARA PERAKTEK
BAB V. PENUTUP
5.1. KESIMPULAN
5.2. SARAN
5.3. AYAT AL-QUR’AN YANG BERHUBUNGAN DENGAN PERCOBAAN
SERTA JELASKAN
DAFTAR PUSTAKA
Ket ;
 Format 4 4 3 3
 Spasi 1,5
 Bab IV, & V, (Font = Times New Roman, Font Size = 12)
3. Laporan lengkap disusun menurut sistematika;

HALAMAN JUDUL
LEMBAR PENGESAHAN
KARTU KONTROL
KETERANGAN NILAI
KATA PENGANTAR
DAFTAR ISI
BAB I. PENDAHULUAN
I.1. LATAR BELAKANG MASALAH
I.2. TUJUAN UMUM PERCOBAAN
I.3. TEORI UMUM PERCOBAAN
I.4. WAKTU DAN TEMPAT PRAKTIKUM
BAB II. MATERI TIAP PERCOBAAN
BAB III. PENUTUP
DAFTAR PUSTAKA
LAMPIRAN
KARTU ASISTENSI
PERCOBAAN (Mikrokontroler Dasar/Lanjutan)

PEMOGRAMAN MIKIROKONTROLER ATMEGA 8535/32


1. Tujuan Percobaan
a. Mengenal Mikrokontroler AVR Atmega 8535/32
serta mengetahui dan memahami prinsip kerja
mikrokontroler
b. Mengenal prinsip menguasai program
mikrokontroler AVR Atmega 8535/32 dengan
menggunakan sofware bahasa C
c. Mengetahui dan membuat aplokasi mikrokontroler
sebagai control suatu sistem
2. Alat dan Bahan
a. System minimun AVR ATMEGA8535 dan downlodernya
b. Satu unit PC dengan dilengkapi sofware bahasa
C
c. Mikrokontroler training board
d. Power supply
e. Download USB
3. Blok Diagram
PEMOGRAMAN BAHASA C UNTUK MIKROKONTROLER
Bahasa C luas digunakan untuk pemograman berbagai jenis
perangkat, termasuk mikrokontroler. Bahasa ini sudah
merupakan high level languange, dimana memudahkan programer
menuangkan alogaritmanya, untuk mengetahui dasar bahasa
Cdapat dipelajari sebagai berikut,
Struktur penulisan program
Struktur penulisan bahasa C ssecara umum terdiri atas
empat blok, yaitu8 header, deklarasi konstanta global dan
varibel, fungsi dan atau prosedur (dapat dibawah programan
utamanya), dan program utama.
STRUKTUR PENULISAN CONTOH
/*HEADER untuk memanggil library yang
akan digunakan*/
#include<[library1.h]>//opsional #include<mega8535.h>
#include<[library2.h]>//opsional #include<[studio.h>

#define[nama1][nilai];//opsional Unsigned char dt,xx;


#define[nama2][nilai];//opsional Char buf[33]
/*deklarasi konstanta dan atau
variable gobal*/ Unsigned char lampu (unsigned char
[global variables]//opsional bitn)
{
/*deklarasi fungsidan atau prosedur*/ PORTA=bitn&0×3C;
[funtions]//opsional }
Void main (void);
/*program utama*/ {char data;
Void main(void)
{ PORTA=0×00;
/*deklarasi konstanta dan atau variable DDRA=0×F0;
lokal*/ While(1)
[deklarasi local variable/constanta] {
[isi program utama] .....
} };
}

TIPE DATA
TIPE Size(bit) Range
Bit1 1 0,1
Char 8 -128 to 127
Unsigned char 8 0 to 255
Signrd char 8 -128 to 127
Int 16 -32768 to 32767
Short int 16 -32768 to 32767
Unsigneg int 16 0 to 65535
Signeg int 16 -32768 to 32767
-2147483648 to
Long int 32
2147483647
Unsigned long int 32 0 to 4294967292
-2147483648 to
Signed long int 32
2147483647
±1.175e-38 to
Float 32
±3.402e38
±1.175e-38 to
Double 32
±3.402e38

Deklarasi variable dan konstanta


Variable adalah memori penyimpanan data yang dinilainya
dapat diubah-ubah.
Penulisan : [tipe data] [nama]= [nilai];
Konstanta adalah memori penyimpanan data yang nilainya tidak
dapat diubah
Penulisan : const [nama]= [nialai];
Tambahan :
Global variable/konstanta yang dapat diakses diseluruh
bagian program.
Local variable/konstanta yang hanya dapat diakses oleh
fungsi oleh fungsi tempat dideklarasikannya.
Identifikasi label, variable dan fungsi dapat berupa
huruf (A...Z, a...z) dan angka (0-9), juga karakter
underscore(_). Meskipun begitu identifikasi hanya bisa
dimulai dengan huruf atau karakter underscore. Yang lebih
penting lagi, identifikasi ini casesensitivi, yaitu huruf
besar dan huruf kecil berbeda misalnya, variable tidak sama
dengan variable1. Identifikasi bisa membuat sebanyak 32
karakter.

Penulisan konstanta adalah sebagai berikut:


 Integer atau long integer dapat ditulis dengan
format decimal ( contoh 1234 ), biner dengan
awalan Ob ( contoh Ob IO l 00 l ), heksadesimal dengan
awalan Ox (contoh Oxff) atau octal dengan awalan O
( contoh 0777).
 Unsigned integer ditulis dengan diakhiri U ( contoh
I OOOOU)
 Long integer ditulis dengan diakhiri L (contoh
99L)
 Unsigned long integer ditulis dengan diakhiri UL
(contoh 99UL)
 Floating point ditulis dengan diakhiri F (contoh
l.234F) Karakter hams dituliskan dalam tanda kutip
(contoh 'a') String harus dalam tanda kutip dua (
contoh "Saya Belajar C").

 Komentar
Komentar diawali dengan tanda I* dan diakhiri dengan
*I
Contoh:
/*ini komentar*/
/*ini komentar
Multi baris*/
Sedangkan komentar satu baris bias dengan tanda//
Contoh;
//ini juga komentar//

 Reserved Keywoards
Berikut ini adalah kata baku yang tidak bias
dipakai (reserved keywords)untuk label, identifikasi
atau variable ;

break Flash signed


bit Float sizeof
case For Sfrb
char Funcued Sfrw
const Goto static
continue If struct
default inline switch
do Int typeded
double interruptunion
eeprom Long unsigned
else register void
enum return vulatile
extern short while

 Percabangan
STRUKTUR CONTOH
if (kondisi) { IF(A<0×50){
//pernyataan PORTC=0×55;
}; }

 if-then-else
Struktur penulisan Contoh
If(kondisi){ If (a<0×50){
//pernyataan a PORTC=0×55;
} }
Else{ Else{
//pernyataan b PORTC=0×AA
}; };

 Switch-case
Struktur penulisan Contoh
... ....
Switch (ekspresi){ Switch (a){
Case konstanta 1 : Case1 :
Peryataan 1 PORTC=0×01;
Break; Break;
Case konstanta2: Case2 :
Pernyataan2 PORTC=0×02;
Break; Break;
..... Case3 :
Case konstantaN PORTC=0×03;
pernyataanN Break;
break; }
} .....
....

 Switch-case default
... ...
Switch (ekspresi){ Switch(a)
Case konstanta 1 : Case1 :
Peryataan 1 PORTC=0×01;
Break; Break;
Case konstanta2: Case2 :
Pernyataan2 PORTC=0×02;
Break; Break;
..... Case3 :
Case konstantaN PORTC=0×03;
pernyataanN Break;
break; Default;
default: PORTC=0×FF;
pernyataan-pernyataan; }
} .....
....
 Perulanagan
For
..... ....
For (mulai; kondisi; A=1;
penambahan atau For (i=1;i<50i++){
pengurangan){ A=a*2;
Pernyataan-pernyataan PORTC=a;;
}; };
....
 While
While (kondisi){ ...
Pernyataan-pernyataan; I=1;
} A=1;
While(i<50){
A=a*2;
PORTC=a;;
I++;
};
....
 Do –While
Do{ .....
Pernyataan-pernyataan I=1;
} A=1;
While(kondisi); Do{
A=a*2;
PORTC=a;;
I++;
}
While(i<50);
 Operasi logika dan biner
Logika
AND:&&
NOT:!
OR||
Biner
AND:&
OR:|
XOR:^
Shift right:>>
Shift left:<<
Komplomen:~
 Operasi rasional (perbandingan)
Sama dengan :=
Tidak sama dengan: !=
Lebih besar :>
Lebih besar sama dengan: >=
Lebih kecil : <
Lebih kecil sama dengan :<=
 Operasi aritmaika
+,-,*,/: tambah,kurang,kali,bagi
+=, -=, *=, /= : nilai di sebelah kiri operator
ditambah/kurang/kali/bagi dengan nilai disebelah
kanan operator.
% : sisa bagi
++, -- : tambah satu (increment), kurang satu
(decrement)
Contoh
a=5*6+2/2-1; maka nilai a adalah 30
a*=5; jika nilai awal a adalah 30, maka nilai a =
30x5=150.
a+=3; jika nilai awal a adalah 30, maka nilai a =
30+3=33.
a++=; jika nilai awal adalah 5, maka nilai a = 5+1 =
6.
a--=; jika nilai awal adalah 5, maka nilai a = 5-1 =
4.

Masukkan bahasa Assembly (in line assembly)


Dalam pemrograman dengan bahasa C, bahasa assembly
masih dapat dimasukkan ke dalam program bahasa C.
Struktur penulisannya juga mudah, yaitu:
#asm // dimulai dengan #as,
nop // blok bahasa assembly
nop
#endasm // diakhiri dengan endasm
Atau hanya dengan beberapa instruksi maka bisa
dituliskan dengan;
...
#asm(“nop’nop’nop”)
...
Statement
Statement adalah setiap operasi dalam pemrograman,
harus diakhiri dengan [;] atau [}]. Statement tidak
akan dieksekusi bila diawali dengan tanda [//] untuk
satu baris. Lebih dari satu baris digunakan pasangan
[/*] dan [*/]. Statement yang tidak dieskusi disebut
juga comments/komentar.
Contoh: suhu=adc/255*100; //contoh rumus perhitungan
suhu
Function
Function adalah bagian program yang dapat dipanggil
oleh program utam.
Penulisan : [tipe data hasil] [nama function]([tipe
data input 1],[tipe data input])
{
[statement];
}

Pengenalan CodeVision AVR


Mikrokontroler merupakan perangkat elektronik yang
membutuhkan perintah dalam menjalankan fungsinya.
Perintah ini diberikan melalui list program baik
menggunakn bahasa Assembler, C maupun C++. Untuk
memprogram mikrokontroller keluarga AVR digunakan
bahasa C atau C++ agar mikrokontroler dapat
menjalankan perintah yang diberikan. Software yang
banyak digunakan adalah CodeVision AVR. CodeVision
AVR merupakan software untuk membuat code program
mikrokontroler AVR. Programmer memakai software ini
karena fasilitas-fasilitas yang disediakan CodeVision
AVR memudahkan programmer dalam membuat code.
Kesulitan-kesulitan yang biasa ditemui saat
memprogram yaitu belum menggunakan menu-menu di
CodeVision AVR, karena belum familiar. Dalam buku
penuntun asisten coba memberi gambaran singkat
bagaimana cara menulis program di CodeVision AVR,
merubah konfugarasi Compiler dan cara mendownload
program ke dalam mikrokontroler
1. Membuat Project
a. Buka aplikasi CodeVision AVR, pilih menu:
fileNew
b. Akan muncul message box Create New File, pilih
Project lalu klik OK

c. Setelah itu akan muncul message box Confirm,


pilih NO. Message box ini menanyakan apakah kita
akan menggunakan CodeWizardAVR?

2. Mensetting Halaman

a. Setelah langkah pertama telah selesai.


Berikutnya akan muncul box Create New Project,
pada kotak file nama ketikan nama file. Sebagai
contoh beri nama: Zuki1
b. Lalu muncul box Configure Project, pada box iini
terdapat files, C compiler dan After Make
c. Tab files digunakan untuk menyertakan file
source code akan digunakan dalam project. File
source merupakan file bahasa C yang kita tulis.
d. Biarkan dulu setting awal files ini.
e. Tampilkan tab C Compiler
f. Menu Chip untuk menentukan chip yang digunakan.
Ubah chip ke Atmega8535, jika kita menggunakan
Atmega 8535.
g. Menu clock untuk menentukan frekuensi xtal yang
digunakan mikrokontroler. Pastikan nilainya
sesuai.
h. Menu (s)printf features: untuk menentukan
konfigurasi funsi printf dan sprintf.
i. Menu (s)scanf features: untuk menentukan
konfigurasi funsi scanf dan sscanf.
j. Tab After Make digunakan untuk menentukan
aplikasi yang dijalankan CodeVision AVR setelah
program di compile
k. Pilih (centang) program the chip, ini berarti
CodeVision akanmemprogram chip(mikro)setelah
program di Compile
l. Lalu klik OK

3. Menulis program

a. Setelah langkah ke dua selesai dilakukan, maka


akan muncul jendela
b. Setelah itu tinggal menulis program yang akan
diperintahkan
c. RUN program yang sudah di ketik

PERCOBAAN Interface

TUJUAN PERCOBAAN
1. Untuk mengetahui apa itu arduino.
2. Untuk mengetahui dan menguasai pemrograman arduino.
3. Untuk mengetahui penggunaan modul bluetooth HC-05 pada
arduino

TEORI DASAR
Arduino merupakan program mikrokontroler yang sedang
naik daun dalam dunia program elektronika. Arduino lebih
mudah diterima karena kesederhanaan tampilan program dan
penulisan source code yang sederhana sehingga pemrograman
dengan arduino sangat mudah dipelajari oleh pemula.

Uno arduino adalah board berbasis mikrokontroler atmega


328. Board ini memiliki 14 pin digital input/output (dimana
6 pin dapat digunakan sebagai output PWM), 6 pin analog
16MHz osilator kristal, koneksi USB, jack listrik tombol
reset.
Pin-pin ini berisi semua yang diperlukan untuk
mendukung sebuah mikrokontroler, hanya terhubung ke komputer
dengan kabel USB atau sumber tegangan bias didapat dari AC-
DC atau menggunakan baterai

Kegunaan arduino sangat bergam yaitu dapat digunakan


untuk mengembangkan obyek interaktif, mengambil sebuah
masukan dari berbagai switch atau sensor, dengan
mengendalikan berbagai lampu, motor dan output fisik
lainnya.

MIT App Inventor adalah aplikasi inovatif yang


dikembangan Google dan MIT untuk mengenalkan dan
mengembangkan pemrograman android dengan mentrasformasikan
bahasa pemrograman yang kompleks berbasis teks menjadi
berbasis visual (drag and drop) berbentuk blok-blok.

Untuk Perancangan aplikasi Mit App Inventor memiliki


beberapa bagain yaitu

1. Designer View
Design View terdiri dari lima komponen dasar: Palette, Viewer , Component,
Media, Properties.
Palette terdiri dari objek apa saja yang bisa anda gunakan ke dalam aplikasi
anda. Palette terdiri dari beberapa grup, semuanya dikelompokkan ke dalam satu
grup jika memiliki tema/fungsi yang sama.
Viewer Terdiri dari tampilan telepon selular dan komponen–komponen yang
bisa di klik.

Component, Terdiri dari daftar komponen apa saja yang telah ditambahkan ke
dalam projek. Tampilannya berupa susunan atau daftar yang memudahkan kita
untuk mengatur komponen atau melihat apa saja yang berbentuk seperti direktori.

Miedia Digunakan untuk mengatur semua media komponen untuk mendukung


aplikasi, gambar, clip art, musik, dan video. Tidak boleh melebihi 5 MB.
Property, Mengatur komponen bagaimana dia berinteraksi dengan pengguna
maupun dengan komponen lain, atau bagaimana tampilannya. Setiap komponen
memiliki kolom properties yang berbeda-beda.

2. Code Block
Code block pada App Inventor digunakan untuk melakukan atau mengatur
jalannya program. Code block terdiri dari beberapa grup yang memilki fungsi
berbedabeda. Grup yang ada pada Code block Antara lain:
a. Control blocks
Code blocks pada pada grup ini digunakan untuk mengatur bagaimana alur aplikasi yang kita
buat itu berjalan.
b. Logic blocks
logic block biasanya berhubungan dengan if else dan while yang berada dalam control blocks.
Digunakan untuk memanipulasi nilai boolean
c. Math blocks
Block ini digunakan untuk memanipulasi angka dan memasukkan angka
d. Text blocks
Block yang berada dalam grup ini digunakan untuk memanipulasi, mengolah, dan menyeleksi
argumen dalam bentuk text.
e. List blocks
Block yang berada dalam grup ini digunakan untuk memanipulasi, mengolah, dan menyeleksi list
atau kumpulan dari nilai (variabel).
f. Colors blocks
Block yang berada dalam grup ini digunakan untuk memanipulasi dan mengolah warna.
g. Variables blocks
Block yang berada dalam grup ini digunakan untuk memanipulasi dan mengolah variabel.
h. Procedure blocks
Block yang berada dalam grup ini digunakan untuk membuat dan memanggil procedure, jadi kita
tidak akan menulis ulang kode yang sama.
ALAT-ALAT YANG DIGUNAKAN
1. Modul Arduino.
2. Aplikasi windows Arduino 10.5
3. Satu unit Laptop/PC
4. Kabel USB Board Arduino Uno
5. Modul HC-05
MIKROPROSESOR EVALUATOR (ZILOG Z80)

PENDAHULUAN
Dalam sitem mikroprosesor perangkat lunak dan perangkat
keras keduanya sangat penting. Yang satu tidak akan bekerja
tanpa yang lain. System mikroprosesor akan menjadi keajaiban
teknologi seperti yang sering didegungkan jika perangkat
keras dan perangkat lunak dapat bejalan bersama.
Mikroprosesor Z80 merupakan dasar dalam mempelajari
suatu system mikroprosesor. Dengan adanya MICROPROSESOR
EVALUATOR (ZILOG Z80)ini diharapkan anda dapat mempelajari
cara kerja dan bahasa pemograman dari mikroprosesor Z80
sehingga dapat megembangkannya lebih lanjut pada
mikroprosesor lainnya. Pengoperasian buku MICROPROSESOR
EVALUATOR (ZILOG Z80)ini dilakukan secara bertahap dan
disertai contoh-contoh pemogramannya. Bahasa pemograman yang
digunakan disini adalah bahasa assembly.
Pembaca dianggap telah memiliki pengetahuan dasar
tentang
 Bilangan hexadecimal
 Diagram alir (flowchart) program serta
penggunaannya
 Dasar-dasar rangkaian logika

Untuk lebih mudah dalam mempelajari system


mikroprosesor Z80 maka MICROPROSESOR EVALUATOR (ZILOG
Z80)juga dilengkapi dengan modul-modul aplikasi seperti pada
pengkuran suhu, pengontrol stepper motor dan lain-lain.
Dengan adanya modul-modul aplikasi ini diharapkan anda dapat
dengan mudah memahami dan langsung mempraktekannya.
KONFIGURASI FISIK

Z80 Z80 Eprom


272556
MH Ram
MH EAR MIC
Cpu 6116
cpu 6116
bus POWER

PIC Z80
CTC PIO
8255
I/O
BUS Z80
CTC

L1 L2 L3 L4 L5 L6 TONE SPEAKER

HALT

RS MOV INS SBR PC SZ-H PNC SZ- PNC’


E C D H’ F
E

MONI REL DEL CBR REG IX IY SP I-IF


A 8 9 A B

INT TAPE STE _ DAT AF’ BC’ DE’ HL’


WAR A 4 5 6 7
R P

USE TAP GO + ADD AF BC DE HL


R E R 0 1 2 3
KEY RD

SPESIFIKASI HARDWARE
 Z80 CPU
CPU Z-80 dari Zilog mempunyai 158 instruksi dan
clock maximum sebesar 2,5 Mhz untuk uPro-1 ini
clock yang digunakan adalah 1,79 Mhz.
 ROM (read only memory)
EPROM yang digunakan dengan tipe 27256 yang
mempunyai memori sebesar 32 K byte. Alamat ;
0000H-1FFFH
 RAM (random acces memory)
Ram digunakan adalah RAM dengan tipe 6116 yang
mempunyai memori sebesar 2 K Byte. Alamat ; 0000H-
1FFFH
 PORT I/O
o PPI 8255 dengan jumlah jalur I/O parallel
sebanyak 24. Terdiri dari port A, port B, dan
Port C. masing-masing Port mempunyai 8 jalur
parallel.
Alamat I/O ; Port A = 00H, Port B =01H, Port
C = 02H, Control word= 03H
o PIO Z80 dengan total jalur I/O parallel
sebanyak 16. Alamat I/O : Port A= 80H, Port B
81H, Control port A=82H, Control port B=83H
o CTC dengan 4 counter timer yang berdiri
sendiri.
Alamat I/O : CTC 0= 40H, CTC 1= 41H, CTC2=
42H, CTC 3= 43H.
 Display
Display menggunakan 6 buah 7 segman berwarna merah
 Speaker
Speaker dengan menggunakan diameter 1,6 inci, daya
max 0,3 W, dan impedansi dalam sebesar 4ohm
 Power
Catu daya yang digunakan adalah 5V DC dan arus
sebesar 500 mA
 Audio tape interface (MIC dan EAR)
Digunakan untuk menghubungkan antara uPro-1 dengan
audio tape recorder.
 Keyboard
Terdiri dari 36 tombol yaitu 19 tombol fungsi, 16
tombol hexadecimal, dan 1 tombol yang dapat
ditentukan sendiri oleh pemakai.

Spesifikasi Software
Tombol-tombol pada keyboard
 Tombol fungsi
RS : reset system
ADDR : Set alamat memori
REG : Set nama register
DATA : memasukkan data memori atau register
PC : mewmanggil program counter
+ : menambah alamat memori atau register dengan satu
- : mengurangi alamat memori atau register dengan satu
STEP : menjalankan program pemakai
SBR : Set break point dari program pemakai
CBR : Menghilangkan ‘break point’ dari program pemakai
MONI : menghentikan program pemakai seketika
GO : menjalankan program
INS : menyelipkan 1 byte data ke memori
DEL : menghapus satu byte data dari memori
MOVE : memindahkan blok data dari satu area ke area lain
RELA : menghitung alamat relative
TAPE
WR : menyimpan data memori ke audio tape recorder
TAPE
RD : mengambil data dari audio tape recorder
INTR : maskable interrupt, dihubungkan dengan kaki INT dan
CPU USER : tombol yang dapat ditentukan sendiri
fungsinya oleh pemakai, dihubungkan dengan PORT00, bit
6
 Tombol heksadesimal
Heksa digit atau nama register

Operasi Dasar
Reset Sistem-tombol (RS)
Jika tombol RS ditekan maka system akan di-reset.
Jika system di-reset maka:
a. Diasable Interrupt (IFF di-set padea 0)
b. Register I-IF berisi 0000.
c. PC pemakai di-set pada 1800H.
d. SP pemakai di-set pada IF9FH.
e. Break point menjadi disble.
f. uPro-1 ditampilkan secara serentak
Pertukaran Memori-tombol ADDR dan DATA
ADDR berarti addres (alamat). Setelah tombol ini
ditekan maka display akan berada pada format standar yaitu 4
digit sebelah kiri untuk alamat, sedangkan dua digit sebelah
kanan untuk data. Daerah alamat ditadai dengan 4 titik yang
terletak pada setiap digit. Jika kita memasukkan lebih dari
4 digit maka hanya 4 digit terakhir yang akan diterima. Jika
kurang 4 digit maka digit-digit pertama yang diterima.
Jika tombol data ditekan, titik-titik indeks akan
berpindah ke 2 digit sebelah kanan. Pemakai boleh memasukkan
data. Isi RAM akan digantikan oleh data-data yang akan
dimasukkan. Tombol + dan tombol – berguna untuk menaikkan
dan menurunkan angka ‘program counter’ (penghitung alamat).
Jika titik indeks sudah berasda pada daerah data, anda tidak
perlu lagi menekan tombol DATA. Anda bisa langsung
memasukkan datanya. Setelah itu tekan + untuk memasukkan
data pada alamat berikutnya atau – untuk data pada alamat
sebelumnya.
Jika pemakai bermaksud untuk mengubah isi ROM (alamat
0000-17FFH), display akan mati. Seteolah tombol dilepas,
display akan kembali seperti sebelumnya.
Contoh 1: Melihat isi alamat 0000-0003H

TOMBOL DISPLAY KETERANGAN

4 titik indeks berada didaerah alamat,


ADDR X.X.X.X.XX
masukkan alamat yang anda maksud

AF Tekan tombol [AF 0] (alamat yang


0.0.0.0.06 dimaksud) isinya adalah 6 (lihat pada
0 daerah data)

Dengan menekan [+], petunjuk alamat naik


+ 0.0.0.1.00 1 tingkat, jadi sekarang menunjuk alamat
0001, yang isinya adalah 0.

Demikian seterusnya, sampai pada alamat


+ 0.0.0.2.10
0003

+ 0.0.0.3.FE Yang isinya ternyata FE

Contoh 2: Melihat isi alamat 1800 dengan AB, dan alamat 1801
dengan DC

TOMBOL DISPLAY KETERANGAN

Anda berada pada daerah


ADDR X.X.X.X.XX
alamat.

Masukkan alamat yang


[BC 1] [IX 8] [AF0] [AF0] 1.8.0.0 XX
anda maksud.

Dengan memnekan tombol


DATA titik indeks berada
DATA 1800 X.X
pada daerah data, anda
siap memasukkan datanya.

Penunjuk alamat naik


satu angka, kini berada
[SP A] [I-IF B] 1800 A.B. pada daerah data, jadi
anda tinggal memasukkan
datanya

Anda telah memasukkan


[SZ-H C] [PNC D] 1801 C.D data (CD) pada alamat
1801.
Contoh 3: Mengubah isi alamat 0000

TOMBOL DISPLAY KETERANGAN

[ADDR] [AF 0] 0.0.0.0. 06 Alamat 0000

DATA 0000 0.6. Masukkan alamat yang anda maksud.

Isi ROM tidak dapat diubah, pada


[]
[BC 5] saat [BC 5]
[0000 0.6.]
Ditekan display mati

Memeriksa Dan Mengubah Isi Register-tombol [REG] dan Data


[DATA]
Bila tombol REG ditekan, display akan menunujukkan
[rEG-]. Anda siap memasukkan nama refister yang anda maksud.
Pemasukan nama register cukup dengan menekan satu tombol
saja. Misalnya [SP A] untuk register SP, [HL 3] untuk
register HL dan seterusnya.
Nama register berada pada 2 digit sebelah kanan,
sedangkan isi register berada pada 4 digit sebelah kiri,
yang masih dibagi lagi menjadi dua bagian. Untuik lebih
jelasnya lihat gambar di bawah ini (kita ambil contoh dengan
register AF).
Display menunjukkan:
Contoh 1: Melihat isi Register SP dan HL

TOMBOL DISPLAY KETERANGAN

REG rEG- Mengeset uPro-1 untuk register

SP Tekan 1 tombol yang memuat nama register


XXXXSP yang dimaksud (SP). Isi register dapat
A anda lihat pada 4 digit sebelah kiri.

HL Tekan tombol register HL, anda dapat


XXXXHL melihat tombol register HL
3
Contoh 2: Mengubah register A dengan 12, register F dengan
34.

TOMBOL DISPLAY KETERANGAN

REG rEG- Mengeset uPro-1 untuk register

AF Memasukka nama register yang


XXXXAF dimaksud
0

Dengan menekan tombol DATA titik


DATA XXX.X.AF indeks akan berpindah ke 2 digit di
tengah untuk pengisian register F.

[HL 3] [AF 4] XX3.4.AF Masukkan isi register F (3 dan 4).

Dengan menekan +, titik indeks akan


- X.X.34.AF bergeser ke kirisiap untuk
memasukkan isi register A.

Memasukkan isi register A dengan 12.


(catatan : bila anda ingin titik
[BC 1] [DE 2] 1.2.34AF
indeks bergeser lagi ke kanan maka
tombol -)

Berikut ini adalah beberapa mnemonic register khusus:


1. AF’, BC’, DE’, HL’, flag’ ditandai dengan tanda kutip
tunggal di atasnya.
2. IX dan IY ditampilkan sebagai
3. Register I ionterrupt IFF2 dinyatakan dengan IF.
4. Khusus untuk register F dan F’, tiap-tiap bit mempunyai
arti yang dapat dilihat pada gambar di bawah ini.

C = carry flag
N = add/subtract flag
P/V = parity/overflow flag
H = half-carry flag
Z = zero flag
S = sign flag
X = tidak berarti

Dengan menekan tombol [PNC D] anda dapt meminta uPro-1


menampilkan bit 0,1,2,3 dari register F (atau tombol [PNC’
D] untuk register F’). Bila Anda menekan [SZ-H E], bit
4,5,6,7 akan ditampilkan (atau tomboil [SZ-H’ E] untuk F’).
Anda dapat merubah bit-bit tersebut dengan menekan tombol
DATA.
Contoh : Memeriksa bit carry (bit 0) dan merubahnya:

TOMBOL DISPLAY KETERANGAN

[REG] [AF 0] XX29AF Isi register dF dengan 29

[PNC D] 1001FL Memeriksa bit carry

Dengan menekan tombol DATA titik


indeks berada pada 2 digit di
DATA 100.1.FL
tengah, anda dapat merubah bit carry
dari 1 menjadi 0

[AF 0] 100.0.FL Bit carry = 0

Isi register F telah berubah dari 9


[REG] [AF 0] XX28AF
(=1001) menjadi 8 (=1000)

Program Counter – tombol [PC]

Mereset program counter pemakai. RAM uPro-1 adalah 2k


byte, tetapi dapat diperluas hingga 4K byte. Jika monitor
di-reset, maka PC akan mencari alamat RAM yang paling rendah
(1800H) dan mengeset program counter pemakai pada alamat
ini. Jika PC ditekan setelah RS, maka 4 digit kiri dari
disply (daerah alamat) akan menunjukkan 1800H (alamat RAM
yang paling rendah)
Tombol Disply Keterangan

RS uPro-1

PC 1800XX Alamat RAM yang


paling rendah.

PEMERIKSAAN PROGRAM

Menjalankan program tombol GO

Tombol ini hanya berlaku bila display berada dalam


format standar Addr-Data. Setelah penekanan tombol ini, CPU
meloncat ke alamat yang ditampilkan pada disply. Sebelum
memindahkan control ke program pemakai, CPU menyimpan
terlebih dahulu semua register pemakai. Register-register
pemakai dapat di-set terlebih dahulu dengan menekan REG.
Contoh menjalankan program
TOMBOL
YANG DISPLY KETERANGAN
DITEKAN

GO I F A F S P 4 digit sebelah kiri disply


bukanlah alamat

I F A F S P Disply kembali pada keadaan semula

PC 1800XX 4 digit sebelah kiri sekarang


merupakan alamat

GO XXXX XX CPU mulai menjalankan program


mulai dari alamat 1800

Singgle Step – tombol STEP

Selama halnya dengan tombol GO., tombol STEP ini hanya


berlaku bila display berada pada posisi Addr-Data. Penekanan
pada tombol ini menyebabkan CPU menjalankan satu langkah
instruksi menurut program counter pemakai. Setelah itu,
monitor mengambil alih kontrol dan menampilkan program
counter yang baru beserta isinya. Pemakai dapat memeriksa
dan mengubah isi register dan memori pada setiap langkah.
Contoh: menyimpan program dalam RAM dan menjalankannya
dengan single step, sambil memeriksa isi registernya.

Bentuk programnya adalah sebagai berikut:

Address: Kode mesin: Instruksi

1800 3E00 LD A,0

1802 3C INC A

1803 47 LD B,A

dst.

TOMBOL DISPLY KETERANGAN

RS uPro-1 Reset sistem

PC 1800X.X. Program mulai dari alamat 1800


(instruksi Z80)

HL SZ-H’ 18003.E.
E
3

[+] [AF 0] 18010.0. LD A,0

[+] [HL 3] [SZ-


18023.C. INC A
H C]

[+][AF’4][HL’7] 18034.7. LD B,A

Display berada pada posisi format


[PC] 18003.E.
Addr-Data, alamat 1800.

Langkah pertama, Program Counter


[STEP] 18023.C.
(PC) menjadi 1802

[REG][AF 0] 00XXAF Register A adalah 0


[PC][STEP] 18034.7 Langkah ke-dua, PC menjadi 1803

[REG][AF 0] 01XXAF Register A bertamah

[PC][STEP] 1804X.X. Langkah ke-tiga, PC 1804

[REG][AF 0] 01XXBC Register B menjadi 01

Catatan:

1. Jika menjalankan program dengan single step, monitor


menggunakan user stack untuk menyimpan alamat
‘interrupt return’. Stack Pointer pemakai harus
menunjuki ke RAM. Jika tidak, pada display akan terlhat
[SLH-SP].

2. Jika stack pointer pemakai menunjuk pada daerah stack


yang digunakan oleh system, pada display akan terlihat
[SYS-SP].

3. Stack yang tumpang tindih akan menyebabkan kesalahn


apabila instruksi ‘RET’ dijalankan. Pada kasus-kasus
ini, anda harus mengubah stack pointer atau menekan
tombol [RS]. Setelah sistem di-reset, sistem akan
mengeset SP (Stack Pointer) pemakai pada nilai yang
telah ada (default value), sehingga pemakai tidak perlu
lagi mengkhawatirkan stack pointer-nya.

Set Break Point – tombol [SBR]

Jika anda membuat suatu program yang panjang,


menjalankannya dengan single step akan memakan waktu yang
lama. Mengeset break point menghasilkan efek yang sama tapi
membutuhkan waktu yang lebih sedikit untuk menjalankannya.
Monitor mengambil alih control bilamana Program Counter (PC)
pemakai melewati suatu alamat tertentu dimana kita telah
menentukan break point-nya. Pemakai dapat memeriksa atau
merubah memori dan register bila programnya sampai pada
alamat tersebut.

[SBR] berarti mengeset break point. Jika display berada


bentuk Addr-Data yang menunjuk pada area RAM, penekanan
tombol ini menyebabkan alamat yang berada pada display di-
set sebagai break point.
Contoh: Menyimpan suatu program di dalam RAM. Menggunakan
[SBR] untuk melihat hasilnya.

Address: Kode mesin: Instruksi

1800 3E00 LD A,0

1802 3C INC A

1803 47 LD B,A

1804 04 INC B

1805 48 LD C,B

1806 FN EI

TOMBOL DISPLY KETERANGAN

RS uPro-1 Reset

[ADDR] [BC 1]
[IX 8] [AF 0] 1.8.0.0.XX. Mengeset alamat awal
[AF 0]

[DATA] 1800X.X. Inisialisasi daerah data

HL SZ-H’
E 18003.E. Memasukkan data 3E
3

[+][AF 0] [AF0] 18010.0. Memasukkan data 00

[+][HL3][SZ-H C] 18023.C. Memasukkan data 3C

[+][AF’4][HL’7] 18034.7. Memasukkan data 47

[+][AF 0][AF’4] 18040.4. Memasukkan data 04

[+][AF’4][IX 8] 18054.8. Memasukkan data 48


[+][PNC’F][I-
1806F.B. Memasukkan data FB
IF’B]

Mengeset break point pada


[SBR] 1.8.0.6.F.B.
1806

[ADDR] [BC 1] 1.8.0.0.3E.


[IX 8] [AF 0] Program mulai pada 1800
[AF 0]

Program dijalankan dari 1800-


1806. Program berhenti pada
[GO] 1807X.x
1807. Ini adalah alamat dari
instruksi berikutnya.

Untuk memeriksa hasilnya


[REG] rEG-
digunakan tombol REG

[AF 0] 01XXAF Isi register A benar

[BC 1] 0202BC Isi register B benar

Interrupt flip-flop di-set.


[I-IF B] 00011F Ini adalah hasil dari EI
(Enable Interrupt).

Hendak mengganti instruksi


dari EI ke DI (Disable
[PC][-] 1.8.0.6.F.B.
Interrupt), instruksi DI = F3
(dalam kode mesin).

Memasukkan data F3 pada


[PNC’ F][HL 3] 1.8.0.6.F.3.
daerah data.

[ADDR][BC1][IX8]
1.8.0.0.3.B. Mengeset alamat awal program.
[AF0][AF0]

[GO] 1807X.X Menjalankan

Memeriksa IFF. Hasil dari


[REG] [I-IF B] 0000IF instruksi DI. Bit telah di-
reset.
Interrupt

CPU Z-80 mempunyai 2 input interrupt, yaitu maskable


interrupt dan non maskable interrupt.

Nonmaskable interrupt (NMI) tidak dapat diubah-ubah


oleh programmer, dia hanya berlaku bila peripheral device
membutuhkannya. Hal ini dimaksudkan untuk menyelamatkan
fungsi-fungsi yang sangat penting yang harus dilaksanakan
ketika daya utama terputuskan.

Maskable interrupt (INT) dapat ditentukan sendiri oleh


programmer, apakah suatu interrupt dapat berlaku (enable)
atau tidak (disable). Jadi programmer dapat membuat sesuatu
gangguan tidak dapat masuk(disable) selama pemogramannya
tidak boleh diganggu

Pada CPU Z-80 ada suatu enable flip-flop (IFF)yang


dapat diset atau direset oleh programmer dengan menggunakan
intruksi Enable Interrupt tidak dapat diterimaoleh CPU.

Menghilangkan Break Point-tombol CBR

Jika pemakai tidak mau programnya di-break, dia dapat


menekan CBR untuk menghilangkan break point. Penekanan
tombol ini bias dilakukan setiap saat. Setelah menekan
tombol ini, disply akan menjadi F.F.F.F. F.F(break Point di-
set pada F F F F

Berhenti segera (Immediately Break)- tombol MONI

Dalam menjalankan suatu program, banyak kesalahan yang


bias terjadi. Contohnya suatu program akan kehilangan
control bila CPU menjalankan opcode yang tidak ada, atau
bila suatu program berputar terus tanpa akhir pada alamat-
alamat tertentu.

MONI berarti monitor. Bila anada menekan tombol ini,


mekanisme yang sama seperti yang digunakan pada single step
akan memindahkan control pada monitor. Lalu program counter
pemakai dan isinya akan ditampilkan.

Ketika intruksi HALT dijalankan penekanan tombol MONI


akan mengembalaikan control pada monitor dan memperbaiki ini
PC (program Counter)yang baru.
Setelah tombol MONI ditekan, monitor akan memeriksa SP
(stack point)pemakai. Aturan yang lain sama dengan single
step atau break point.

Anda mungkin juga menyukai