ervan efendi _ 080200_ ed 10 _ modul 4_ hardiansya

27
LAPORAN PRAKTIKUM DASAR MIKROPROSESOR MODUL IV NAMA : ERVAN EFENDI NPM : 080200 REKAN : ZALDI I DAVID M TGL.PERCOBAAN : 29 DESEMBER 2010 ASISTEN : HARDIANSYAH LABORATORIUM ELEKTRONIKA & PENGUKURAN TEKNIK ELEKTRO UNIVERSITAS SULTAN AGENG TIRTAYASA 2010

Upload: dibaca

Post on 27-Jun-2015

181 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

LAPORAN PRAKTIKUM DASAR MIKROPROSESOR

MODUL IV

NAMA : ERVAN EFENDI

NPM : 080200

REKAN : ZALDI I

DAVID M

TGL.PERCOBAAN : 29 DESEMBER 2010

ASISTEN : HARDIANSYAH

LABORATORIUM ELEKTRONIKA & PENGUKURAN TEKNIK ELEKTRO

UNIVERSITAS SULTAN AGENG TIRTAYASA

2010

Page 2: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

KATA PENGANTAR

Puji dan syukur kehadirat Allah Subhanahu wa ta’ala yang mana masih

memberikan kita nikmat hidup yang masih bisa kita rasakan sampai saat ini.

Selayaknya kita selaku umat-Nya bersyukur atas apa yang di berikan kepada kita.

Shalawat serta salam tak lupa kita curahkan kepada junjungan suri tauladan kita

dimana beliau membawa manusia dari zaman jahiliyah sampai ke zaman yang

terang benerang, dialah Rosulullah Muhammad Shallallahu ‘alaihi wasallam.

Kami mengucapkan banyak terimakasih kepada semua ASLAB

Mikrokontroler yang telah membimbing kami. Dan Kami selaku praktikan ingin

mencoba untuk membuat laporan dengan semaksimal mungkin.

Kami meminta maaf , apabila dalam pembuatan laporan yang kami buat

ini masih belum sempurna,karena kami masih dalam taraf pembelajaran. Maka

dari itu saran dan kritik yang membangun sangat kami harapkan untuk kemajuan

kami .

Sekian kata pengantar dari kami semoga program yang kami buat bisa

bermanfaat khususnya diri kami pribadi dan umumnya bagi para pemakai.

Cilegon, Desember 2010

Penulis

ii

Page 3: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

DAFTAR ISI

hal

HalamanJudul ………………………………………………………………. i

Kata Pengantar……………………………………………………………… ii

Daftar Isi……………………………………………………………………. iii

BAB I PENDAHULUAN

1.1 TujuanPercobaan……………………………………………………….. 1

1.2 DasarTeori………………………………………………………,…....... 1

BAB II JAWABAN PERTANYAAN

2.1 Jawaban Pertanyaan……………………………………………………. 13

BAB III ANALISA DAN FLOWCHART

3.1 Analisa Percobaan………………………………………………………. 15

BAB IV KESIMPULAN

4.1 Kesimpulan……………………………………………………............... 23

DAFTAR PUSTAKA

iii

Page 4: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

BAB I

PENDAHULUAN

1.1 Tujuan

1.1.1 DeringTelepon

a. Untuk mensimulasikan bunyi dering telepon.

b. Terbiasa membaca aplikasi tone subroutine.

1.1.2 MicrocomputerOrgan

a. Membuktikan mikroprosessor untuk simulasi organ elektronik.

b. Terbiasamembacaaplikasikeyboard scaning routine.

1.2 DasarTeori

Conditional Jump lainnya

Ringkasan dari conditional jump pada 8051 dapat kita lihat pada table 3-1.

Penjelasan lebih mendetil dapat kita lihat pada lampiran A. Harap dicatat bahwa

semua perintah conditional jump ini, seperti JZ (lompat jika A=0), atau JC

(lompat jika CY=1), akan membuat program melompat pada lokasi yang ditunjuk

hanya sekali lagi, kondisi yang diminta terpenuhi. Selanjutnya kita akan

membahas beberepa instruksi jump tersebut agar lebih mudah dipahami.

JZ (jump if A=0)(lompat jika A=0)

Instruksi ini akan memeriksa isi A. Jika dia 00, maka program akan

melompat ke alamat yang ditunjuk. Misalnya seperti ini.

MOV A,R2 ;A=R2

Page 5: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

JZ LABEL1 ;lompat jika A = 0

MOV A,R1 ;A=R1

JZ LABEL1 ;lompat jika A = 0

JNC (jump if no carry, jump if CY=1)(lompat jika CY=1)

Instruksi ini, menggunakan bendera Carry sebagai menentu keputusan

dalam jump. Saat mengeksekusi "JNC LABEL", CPU akan memeriksa status

bendera Carry(CY). Jika CY=1, maka program akan melompat ke alamat yang

ditunjuk. Namun jika CY=0, maka program akan mengeksekusi instruksi

selanjutnya dibawah JNC tersebut.Bagaimana dengan Bit yang lain selain carry

Instruksi-instyruksi Lompat tidak beryarat

UnConditional Jump adalah memindahkan kontrol program ke tempat lain

tanpa syarat kondisi apapun. Pada 8051 ada tiga instruksi untuk Unconditional

Jump ini, yaitu LJMP (long Jump / lompat jauh), AJMP (Absolute Jump), dan

SJMP (short Jump /lompat pendek).

LJMP (long Jump)

LJMP adalah lompat jarak jauh tanpa syarat kondisi. Disebut juga sebagai

Jump 16-bit. Ini adalah instruksi 3-byte, di mana byte pertama adalah opcode,

sedang dua byte yang lain adalah representasi dari alamat 16-bit yang dituju.

2

Page 6: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

Dengan 2 byte ini kontrol program dapat dipindahkan ke semua alamat memory

program yang bisa dijangkau 8051 yakni alamat 16-bit, mulai dari alamat 0000

s/d FFFFh.

Seperti yang kita tahu bahwa Program Counter (PC) adalah register khusus

16-bit juga. Dua byte dibelakang opcode langsung disalin ke PC. Namun dalam

prakteknya tidak semua alamat-alamat tersebut digunakan Chip 8051 untuk

menyimpan memory program. Misalnya AT89C51 (buatan ATMEL) yang hanya

memiliki memory program sebesar 4 kb, yang diletakkan pada lokasi memory

program 0000 s/d 0FFFh. Sehingga dalam membuat program kita sebaiknya

memperhatikan dengan seksama alamat yang dituju saat menggunakan instruksi

LJMP ini, jangan sampai progam melompat ke alamat kosong.

Namun 8051 juga memiliki Unconditional Jump lain yang lebih efisien,

yaitu SJMP dan AJMP, dimana instruksi-instruksi ini hanya membutuhkan 2 byte.

Sehingga dapat menghemat penggunaan memory jauh lebih baik dari pada LJMP.

AJMP (Absolute JUMP)

AJMP ini adalah lompat tidak bersyarat jarak menengah. Disebut juga

sebagai Jump 11-bit. Ini adalah instruksi 2-byte. Prosesnya adalah mirip dengan

LJMP namum hanya dibatasi pada blok 2 kb yang sama dari nilai PC setelah

instruksi AJMP. Maksudnya alamat instruksi tepat di bawah AJMP, dan alamat

label yang dituju, harus berada pada blok 2 KB yang sama. Misalnya jika setelah

alamat instruksi di bawah instruksi AJMP berada di antara 0000 s/d 07FFh maka

alamat yang dituju juga harus di antara alamat tersebut (blok 2 KB yang sama).

11-bit dalam instruksi ini langsung disalin ke PC. Instruksi ini sama efisiennya

dengan SJMP dalam penggunakan memory, karena hanya menggunakan 2-byte.

SJMP (short Jump)

SJMP adalah lompat tanpa syarat jarak pendek. Disebut juga sebagai Jump

relatif 8-bit. Ini adalah instruksi 2 byte. Byte pertama adalah opcode, sedang byte

lainnya adalah alamat relatif yang dituju. Ya alamat relatif, sehingga nilai pada

byte ke dua ini bukan representasi dari alamat yang dituju, melainkan nilai relatif

terhadap nilai PC saat itu. Sangat berbeda dengan LJMP (atau juga AJMP) yang

byte dibelakang opcode adalah benar-benar nilai dari alamat yang dituju. Apa

maksudnya relatif ? jika nilai dari byte kedua (byte tujuan) adalah lebih kecil dari

80h, maka alamat tujuan adalah nilai PC setelah instruksi SJMP, ditambah byte

ini. Namun jika nilai byte ini sama atau lebih besar dari 80h maka alamat tujuan

adalah nilai PC saat setelah instruksi SJMP dikurangi nilai 2's complement dari

3

Page 7: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

byte tujuan (Lihat BAB 6 untuk bahasan 2's Complement dan bilangan bertanda).

Atau dengan kata lain, byte ke dua ini seperti bilangan bertanda, memiliki nilai

positif atau negatif antara -128 s/d +128. Dengan demikian alamat tujuan

harusnya sama atau diantara, minimal -128 dari nilai PC, atau maksimal +128 dari

nilai PC.

Sama seperti AJMP, instruksi SJMP ini adalah instruksi 2-byte, sehingga

dalam penggunaan memory program menjadi lebih hemat 1-byte dibanding

LJMP. Dalam penulisan program dengan bahasa Assembler, kita akan diberitahu

jika ternyata alamat tujuan di luar jangkauan. Jika ini terjadi maka instruksi dapat

digantikan dengan instruksi AJMP atau LJMP.

Menghitung alamat SJMP

Selain Instruksi SJMP, semua conditional Jump semacam JNC, JZ dan

DJNZ juga menggunakan mekanisme yang sama dalam menentukan alamat

tujuan. Alamat tujuan adalah relatif terhadap nilai PC setelah instruksi yang

berkaitan. Untuk menghitung alamat tujuan, byte alamat dari instruksi akan

langsung ditambahkan pada PC. Byte alamat ini seperti bilangan bertanda,

sehingga jika nilainya positif maka program akan melompat dibawah instruksi

Jump. Namun jika nilainya negatif maka program akan melompat di atas instruksi

Jump. Untuk bilangan bertanda akan dibahas pada BAB 6. Untuk lebih jelas akan

SJMP silahkan lihat contoh 3-6.

Software di bagi dalam beberapa Kelompok :

• Programming languages

• Routines

• Aplication Package

• Input/Output Control system

• Operating System

• PROGRAM LANGUAGES Adalah bahasa-bahasa yang di pakai oleh

programmer untuk menuliskan kumpulan-kumpulan instruksi program

PROGRAM LANGUAGE SEMASA KG 1

CIRI CIRI :

• Kebanyakan dibuat oleh ahli matematika yang tertarik menggunakan

komputer untuk menyelesaikan masalah dibidangnya

4

Page 8: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

• Program yang dibuat dilakukan dengan menghubungkan beberapa sirkuit

di dalam komputer atau dengan membuat program dalam machine

language yang disimpan didalam komputer secara permanen

• Biasanya digunakan untuk suatu aplikasiitertentu saja

• Apabila digunakan untuk aplikasi lain terpaksa harus memprogram sirkuit

kembali atau menulis kembali program didalam bahasa mesin .

Program language tingkat tinggi

• Fortran (FORmula TRANslator – 1957

software tingkat tinggi yang pertama, untuk teknik dan

matematika. FORTRAN 1 diterapkan pada komputer IBM 704.

• LISP (List processor/List Programming)-1958

John Mc Carthy menemukan software ini yang digunakan oleh

peneliti peneliti artificial intelligence.

• ALGOL ( ALGoritmic Language)-1958

digunakan untuk memecahkan masalah-masalah secara umum

(general purpose). Populer di Eropa

• COBOL (Common Business Language)-1959

dikembangkan untuk memecahkan persoalan program yang standar

(program yang ditulis pada satu komputer dimungkinkan untuk dijalankan pada

komputer dengan model yang berbeda

• LOGO -1960

merupakan perkembangan dari LISP yang diterapkan pada

komputer mainframe. Software ini ditujukan untuk bidang pendidikan.

• RPG (Report Program Generator) – 1961

dikembangkan untuk aplikasi komersil, digunakan pada komputer

IBM 1041,IBM System/3, IBM System/38

• APL (A Programming Language) – 1962

5

Page 9: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

dikembangkan untuk aplikasi teknik. Digunakan oleh komputer

IBM S360

• BASIC -1964

bahasa tingkat tinggi yang berbentuk interpreter, memungkinkan

untuk mengoperasikan komputer secara interaktif, program dapat ditulis,

dijalankan, dirubah, dan dijalankan lagi tanpa harus melalui tahap kompilasi.

versi dari bahas BASIC antara lain :

MBASIC, SBASIC, CBSIC, APPLESOFT, BASIC, QBASIC,

HBASIC, KBASIC, BASIC-86, BASICA, Z-BASIC, QUICK BASIC.

• PL/1 (Programming Language Version 1) -1966

merupakan gabungan dari FOTRAN< COBOL dan ALGOL.

Diterapkan pada komputer S360 untuk aplikasi bisnis dan teknik

• PILOT (Programmed Inquiry, Learning or Teaching) – 1968

dikembangkan oleh John A.Starkweather untuk mereka yang

belum berpengalaman dalam menulis program

• FORTH – 1958

dikembangkan oleh Charles H.Moore ditujukan untuk

menyelesaikan permasalahan perbintangan

• PASCAL – 1970

dikembangkan oleh Nickelaus Wirth. Versi dari PASCAL

diantaranya : USCSD, Standard Pascal, Apple Pascal, KMMM Pascal,

MT+PASCAL, Turbo Pascal

• SHRDLU – 1971

digunakan untuk menganalisa percakapan yang ditulis dalam

bahasa mmnusia secara manual

• SAM76 – 1971

6

Page 10: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

gabungan dari LISP dan FORTH digunakan untuk komputer

multiuser dengan SO UNIX

• PROLOG – 1972

digunakan sebagai suatu bahasa untuk operasi artificial intelligence

yang merupakan penyaing LSIP

• SMALLTALK – 1972

dikembangkan oleh XEROX’s Palo Alto Research Center

• C – 1974

dikembangkan di Ingris dengan nama BCPL. Bahasa ini digunakan untuk

menulis SO UNIX

DTMF (Dual Tone Multi Frequency)

Setelah beralih ke teknologi digital, cara meminta nomor sambungan telepon tidak

lagi dengan cara memutar piringan angka, tetapi dengan cara menekan tombol-

tombol angka. Cara ini dikenal sebagai touch tone dialing sering juga disebut

sebagai DTMF (Dual Tone Multi Frequency).

DTMF adalah teknik mengirimkan angka membentuk nomor telepon yang

dikodekan dengan dua nada yang dipilih dari delapan buah frekuensi yang sudah

7

Page 11: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

ditentukan.frekuensi tersebut adalah : 697 Hz, 770 Hz, 852 Hz, 941 Hz, 1209 Hz,

1336 Hz, 1477 Hz, dan 1633 Hz, seperti yang terlihat dalam tabel 2.2 simbol

angka 1 dikodekan dengan 697 Hz dan 1209 Hz, simbol angka 9 dikodekan

dengan 852 Hz dan 1477 Hz dan seterusnya. Kombinasi dari 8 frekuensi tersebut

bisa dipakai untuk mengkodekan 16 tanda, tetapi pada pesawat telepon biasanya

simbol ‘A’, ’B’, ‘C’, dan ‘D’ tidak dipakai. Sedangkan simbol “*” biasanya

disebut star atau asterisk dan simbol “#” disebut pagar. Walaupun banyak

pemakai telepon tidak mempergunakan digit ini, tetapi biasanya dalam dialing

nomor telepon kedua simbol tersebut digunakan untuk keperluan control seperti

pada mesin penjawab telepon, control repeater, elektronik banking dan lain-lain.

Standar dial DTMF adalah saat dimana nada selama tombol telepon ditekan, tak

perduli berapa lamanya, nada dikodekan sebagai satu digit. Pengiriman digit

dalam durasi yang pendek ± 100 ms dapat juga dilakukan, tapi tidak oleh tangan

manusia karena hal tersbut tidak mungkin, dan hanya dilakukan dengan cara

otomatis. Teknik DTMF mempunyai banyak keuntungan dibanding dengan

memutar piringan angka, tetapi secara teknis lebih sulit. Alat pengirim kode

DTMF merupakan 8 rangkaian oscilator yang masing-masing membangkitkan

frekuensi diatas, ditambah dengan rangkaian pencampur frekuensi untuk

mengirimkan 2 nada yang terpilih. Sedangkan penerima kode lebih rumit lagi,

dibentuk dari 8 filter yang tidak sederhana dan rangkaian tambahan lainnya.

Subroutine

Subroutine atau procedure adalahsuatublok program terpisah yang

digunakanuntukmengerjakansuatupekerjaantertentu. Kegunaan yang

umumdarisubroutine adalahmenghematkode program bilaterjadi proses yang

samadiulangberkali-kali. Salah satubentuk subroutine di dalam visual basic

dikenaldengan event darikomponenPadabab-

babsebelumnyasudahbanyakdigunakan subroutine ini.Penulisan subroutine di

dalam Visual Basic dibedakanmenjadi 3 macam:

(1) Subroutine yang bersifat event darikomponentertentu (subroutine

inisudahtersediadalam library Visual Basic sebagaimodul OOP dalam

Visual Basic) dituliskandengan:

Private Sub Komponen_Event(Input)

<blokprogramdalam subroutine>

End Sub

(2) Subroutine yang bersifatmetode private

8

Page 12: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

dimanapemanggilansubroutinenyahanyaditulisdengannama subroutine

(Subroutine iniadalahsubroutine yang dibuatsendiri), dituliskandengan:

Private Sub Nama_Fungsi (Input)

<blok program dalam subroutine>

End Sub

(3) Subroutine yang bukan event ataumetode,

dimanapemanggilannyamenggunakancall NamaSubroutine,

dituliskandengan:

Sub Komponen_Event (Input)

<blok program dalam subroutine>

End Sub

Pemakaian Subroutine semacaminibanyakditemuipadapemrograman game

dalam Visual Basic.

ContohAplikasi 7.1:

Membuat subroutine pilihan option yang dipilihketika option di-click

sepertigambar7.1 berikut:

Gambar 7.1.Tampilanlatihan subroutine 7.1

Lakukanlangkah-langkahberikut:

(1) Buat project barudenganstandardEXE. Pada form, isi property [Name]

denganformLatihan7 1.

(2) Tambahkan label, isi property [Appereance] dengan 0-Flat, isi property

9

Page 13: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

[Font] size dengan 18 bold.

(3) Tambahkan 4 komponen option menggunakan control array, isi [Caption]

darimasing-masing option dengan {“Komputer”, ”Monitor”, “Printer”,

“Assesoris”}. Aturposisinyasepertigambar 7.1.

(4) Padalayar code, tambahkan subroutine berupa event ketika option dipilih:

Private Sub Option1 _Click(Index As Integer)

Label1 = Option1(Index) .Caption

End Sub

(5) Simpan project dengannamaproj ectLatihan7 1.

Subroutine selainberupa event yang sudahdisediakanoleh Visual Basic,

bisajugaberupa subroutine yang

dibuatsendiriuntukkeperluankhusus.Misalkanuntukmenampilkanhasil proses

kedalamlistbox yang merupakanhasildari proses yang berulang.

ContohAplikasi 7.2:

Membuat program untukmenyimpannama,

alamatdannomorhandphonedalamarray saat Form dipanggil,

nama= {“Basuki”, ”Widya”, ”Teguh”, “Dian”},

alamat={“Semolowaru Utara Surabaya”, “SemolowaruElok Surabaya”,

“MulyosariSelatan Surabaya”, “Kompleks Laguna Surabaya”},

danhandphone={“081331344000”, ”0315912190”, “0315997878”, “0811

1562145”}

Biladipilihtombolalamatakanditampilkanalamatnya,

danbiladipilihtombolnomorhandphonemakaakanditampilannomorhandphones

epertigambar 7.2 berikut:

Gambar 7.2.Tampilanlatihan 7.2

Langkah-langkahpembuatansebagaiberikut:

10

Page 14: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

(1) Buat project barudenganStandardExe. Pada form1, isi property [Name]

denganformLatihan72

(2) Tambahkankomponen-komponen label, comboboxdan command button.

Aturposisinyasepertigambar 7.2 dan property setiapkomponensepertitabel

di bawahini

Komponen Property Nilai

Label1 Caption MasukkanNama

Label2 Appereance

Font

0 – Flat

size 18 Bold

Command 1 Caption Alamat

Command2 Caption No. Handphone

Combo 1 Text

List

Basuki

Buatsamnadengannama:

Basuki

WidyaT

eguhDia

n

Penundaan, selang, penundaan suatu proses. Adalah masa atau selang

waktu yang terjadi terutama dalam penundaan suatu proses ke proses berikutnya.

Misalnya penundaan pengerjaan, pengiriman data, dsb. Pada satelit, delay ini bisa

terjadi pada saat pengiriman data dari station bumi, ke satellite, biasanya sekitar

seperempat detik.

Tanga Nada Barat yg kita kenal, sebenarnya ada 2 pendekatan, yg

beda tipis bgt. Yg pertama diciptakan oleh Phytagoras.

Ini menggunakan perbandingan bilangan bulat sederhana.

11

Page 15: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

DO tinggi frekuensinya 2x lipat DO rendah. (2:1)

SOL frekuensinya 3/2 nada DO. (3:2)

FA frekuensinya 4/3 nada DO. (4:3)

MI frekuensinya 5/4 nada DO. (5:4)

Dari situ bisa dicari nada yang lain.

Kelebihan dari tuning dengan cara ini:

Jika dituning untuk nada dasar A, akan terasa sangat pas kalau kita maen di

nada dasar tersebut. (Perbandingannya berupa bilangan bulat)

Kekurangannya:

Kalau dipakai untuk maen di nada dasar yang lain, agak sedikit kurang pas.

Cara yang lain, menggunakan rumus matematika LOGARITMIK.

Dasarnya, satu oktaf terdiri dari 12 nada.

Perbandingan nada satu oktaf itu 2 x lipat.

Jadi perbandingan 2 : 1 dibagi menjadi 12 bagian.

Cuman pembagian ini tidak LINEAR tapi LOGARITMIK. (Kaya potensio aja)

Jadi rumusnya: Frek = 2 pangkat (N/12) x Frek nada acuan.

N: jarak interval 1/2 nada (= jumlah fret)

Contoh:

Nada A frekuensinya 440 Hz. (Nada acuan/referensi).

Frekuensi nada C adalah:

Jarak nada A ke C: 3 fret

Frek nada C

= 2 pangkat (3/12) x 440 Hz

= 2 pangkat 0,25 x 440 Hz

= 523,25 Hz

(Silahkan check di tabel frekuensi).

http://www.phy.mtu.edu/~suits/notefreqs.html

Cara ini dipake pada instrument elektronik dan komputer.

Kelebihan cara ini:

Untuk setiap nada dasar sama, tidak ada yang lebih pas dari yang lain.

Kekurangan:

Tuning cara yg pertama (Phytagorian) bisa lebih PAS (enak) untuk nada dasar

tertentu.

Cuman ini hanya bisa dirasakan oleh mereka yang telinganya betul2

peka/terlatih.

12

Page 16: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

BAB II

JAWABAN PERTANYAAN

2.1 Tugas

1. Tujuan Percobaan :

Tujuan

DeringTelepon

c. Untuk mensimulasikan bunyi dering telepon.

d. Terbiasa membaca aplikasi tone subroutine.

MicrocomputerOrgan

c. Membuktikan mikroprosessor untuk simulasi organ elektronik.

Terbiasamembacaaplikasikeyboard scaning routine.

2. Apa yang dimaksuddengan ROUTINE dan SUBROUTINE?

Jawab:

a. ROUTINE : Program utamadarisuatumikroprosessor.

b. SUBROUTINE : Program lain di luarsistem yang di

panggilolehsebuah program utama.

3. Apafungsi TONE, TONE 1K dan TONE 2K besertaalamatnya!

Jawab:

a. TONE

Fungsi : Mengeluarkanbunyidenganfrekuensidandurasiterprogram.

Alamat : 05E4H

b. TONE1K

Fungsi : Mengeluarkan nada denganfrekuensi 1 KHz.

Alamat : 05DEH

c. TONE2K

Fungsi : Mengeluarkan nada denganfrekensi 2 KHz dandurasiseperti

di program di dalam HL.

Alamat : 0552H

4. Apa pengertian frekuensi dan periode?

Jawab:

a. Frekuensi (F)

Frekuensi adalah banyaknya gelombang yang terjadi persatuan waktu atau

detik, dimana lambangnya adalah f dan satuannya adalah Hz.

Page 17: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

b. Periode

Periode adalah waktu yang dibutuhkan untuk melakukan atau mengahasilkan

satu gelombang, dimana lambangnya adalah T dan satuannya adalah s (detik).

Berikut ini hubungan antara frekuensi dengan periode

f = n/t sedangkan T = t/n. Bila kedua persamaan ini digabungkan

maka akan diperoleh persamaan baru yaitu f = 1/T atau T = 1/f.

bila frekuensi besar maka periodenya akan kecil, begitu juga

sebaliknya bila periodenya besar maka frekuensinya akan kecil.

5. Cari konversi di bawah:

-20(10)= 20:16= 1 sisa 4= 14 (16)

-211 (10)= 211:16 =13 sisa 3 = D3 (16)

- 8 (10)= 8 (16)

- 140 (10)= 140:16= 8 SISA 12= 8 C(16)

- 12 (10) = C (16)

- 50000 (10) = 50000: 16 =3125 SISA 0

3125:16= 195 SISA 5

195: 16= 12 SISA 3 = C350 (16)

JADI 50000 (10)= C350 (16)

- 1100000 (2) = C0 (16)

6. Apa yang anda dapatkan dari praktikum ini ?

Jawab:

Alhamdulillah, saya bisa mengerti tentang mikro ini walaupun

banyak yang masih kurang pada diri saya yang kurang

menangkap apa yang telah di sampaikan oleh asisten.

Namun setidaknya ada sedikit banyaknya materi yang nyantol

atau di terima pada diri saya.

Trimakasih.

14

Page 18: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

BAB III

ANALISA DAN FLOWCHART

3.1 Percobaan I

Latihan 1 Dering Telepon

PROGRAM

LABEL MNEMONIC OPERAND

ORG 1800H

RINGBK LD A.20

RING EX AF.AF

LD C.2H

LD HI.8

CALL TONE

LD C.140

LD HL.12

CALL TONE

EX AE.AE

DEC A

JR NZ.RING

LD BC.50000

CALL DELAY

JR RINGBK

DELAY EX (SP).HL

EX (SP).HL

CPI

RET PO

JR DELAY

TONE EQU 05E4H

END

Sebelum kita melakukan percobaan terlebih dahulu kita harus

melakukan mengkonversinya dimana hasil konversiannya bisa kita lihat

di bawah ini.. namun sebelum di konversi kita merubah bilangan

decimal yang ada pada modul dengan menjadikan dia hexsadesimal.

Dimana yang di rubah adalah 20, 211,8, 140, 12,50000, dimana

perubahan dari decimal itu adalah 20=14, 211=D3, 8=8, 140=8C,

12=0C, 50000=C350.

Page 19: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

ADDRESS

OP.

CODE MNEMONIC OPERAND

KOMENTAR

1800 3E LD A.14 Isikan 14 ke Reg. A

1801 14

1802 08 EX AF.AF

1803 0E LD C.D3 Isikan D3 ke Reg. C

1804 D3

1805 21 LD HL.8 set HL = 8

1806 08

1807 00

1808 CD CALL TONE memanggil Tone

1809 E4

180A 05

180B 0E LD C.8C Isikan 8c ke Reg. C

180C 8C

180D 21 LD HL.0C set HL = 0c

180E 0C

180F 00

1810 CD CALL TONE memanggil Tone

1811 E4

1812 05

1813 O8 EX AF.AF

1814 3D DEC A

kurangi A dengan 1 jika A

tidak = 0

1815 20 JR NZ.RING

Loncat Jika tidak sama

dengan nol

1816 EB

1817 01 LD BC.C350 Isikan c350 ke reg BC

1818 50

1819 C3

181A CD CALL DELAY memanggil delay

181B IF

181C 18

181D 18 E1 JR RINGBK loncat kembali ke RINGBK

181F E3 EX (SP).HL

1820 E3 EX (SP).HL

1821 ED CP1

1822 A1

1823 30 RET PO kembali bila paritas ganjil

16

Page 20: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

1824 18 JR DELAY loncat ke delay

1825 F9

1826 TONE EQU 05E4H

END

Pada percobaan pertama ini adalah membuat bunyi dering

telepon dengan mengggunakan mikroprosesor Z80 pada MPT-1. Bunyi

yang dihasilkan dari percobaan pertama yaitu 20 ketukan atau dalam

heksanya adalah 3E14. Untuk membuat waktu ketukannya lama yaitu

dengan mengubah Routine dari input yaitu dengan merubah 3E14

dengan ketukan yang kita inginkan. Sebagai contoh pada percobaan ini

yaitu dengan merubahnya menjadi 3E8C.

Pada percobaan ini juga kita mencoba bunyi telepon pada

Tone1K, cara merubahnya adalah dengan merubah call tone yaitu dari

CDE405 menjadi CDDE05, sehingga di hasilkan bunyi yang lebih tinggi

di karenakan frekuensinya juga tinggi sehingga periodenya kecil. Untuk

percobaan dengan bunyi dengan frekuensi sebesar 2kHz yaitu merubah

CDDE05 menjadi CD5205 sehingga dihasilkan bunyi yang lebih tinggi

dari bunyi sebelumnya.

Dimana flowchartnya ada di bawah ini:

17

Page 21: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

FLOWCHART

start

Set 20 Hz shiftrat

Check for 2second

Set low frequency = 320 Hz

Set high frequency = 479 Hz

Check 1second

finish

18

Page 22: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

Latihan 2 Microcomputer Organ

PROGRAM

LABEL MNEMONIC OPERAND

ORG 1800H

START;

LD IX.BLANK

CALL CSAN

LD HL.FREQTAB

ADD A,L

LD L,A

LD A,11000000B

HALF PERIOD;

OUT (DIGIT),A

LD B,(HL)

DELAY; NOP

NOP

NOP

DINZ DELAY

XOR 80H

LD C,A

IN A,(KIN)

OR 11000000B

INC A

LD A,C

JR Z,START

FREQTAB;

DEFB 0B2H

DEFB 0A8H

DEFB 096H

DEFB 085H

DEFB 07EH

DEFB 070H

DEFB 064H

DEFB 059H

DEFB 054H

DEFB 04AH

DEFB 042H

DEFB 03EH

19

Page 23: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

DEFB 037H

DEFB 031H

DEFB 031H

DEFB 02CH

DEFB 029H

BLANK EQU 07A5H

SCAN EQU 05FEH

DIGIT EQU 2

KIN EQU 0

END

Sebelum kita melakukan percobaan terlebih dahulu kita harus

melakukan konversi menjadi bahasa assembly, namun sebelum kita

konversi kita perlu menggantikan bilangan biner menjdi bilangan

hexsadesimal. untuk lebih jelasnya kita lihat tabel di bawah ini untuk

melihat hasil konversiannya.

ADDRESSOP.

CODEMNEMONIC OPERAND KOMENTAR

1800 DD LD IX.BLANK

1801 21

1802 A5

1803 07

1804 DC CALL SCAN memanggil scan

1805 FE

1806 05

1807 21 LD HL.FREQTABIsi segera pasangan

register H dan L

1808 23

1809 18

180A 85 ADD A.Ltambahkan Reg A + Reg

L

180B 6F LD L.A kutip reg A ke Reg L

180C 3E LD A.C0Isikan 11000000 ke Reg.

A

180D C0

180E D3 OUT (DIGIT).A KELUARAN DARI

20

Page 24: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

PINTU A

180F 02

1810 46 LD B.(HL) ISI B langsung

1811 OO NOP not operation

1812 OO NOP not operation

1813 OO NOP not operation

1814 10 DNZ DELAY delay jika = 0

1815 FB

1816 EE 80 XOR 80H set 80H = 0

1818 4F LD C.A kutip reg A ke Reg C

1819 DB IN A,(KIN)

181A 00

181B F6 OR C0 H Memori dengan C0

181C C0

181D 3C INC A Penambahan register A

181E 79 LD A.C kutip reg c ke Reg A

181F 28 JR Z,START loncat ke start

1820 DF

1821 18 EB JRHALF

PERIODE

1823 B2 DETB 0B2H key o

1824 A8 DETB 0A8H key 1

1825 96 DETB 096H key 2

1826 85 DETB 085H key 3

1827 7E DETB 07EH key 4

1828 70 DETB 070H key 5

1829 64 DETB 064H key 6

182A 59 DETB 059H key 7

182B 54 DETB 054H key 8

182C 4A DETB 04AH key 9

182D 42 DETB 042H key A

182E 3E DETB 03EH key B

182F 37 DETB 037H key C

1830 31 DETB 031H key D

1831 2C DETB 0C2H key E

1832 29 DETB 029H key F

21

Page 25: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

BLANK EQU 0705H

SCAN EQU 05FEH

DIGIT EQU 2

Pada Percobaan yang kedua yaitu membuat sebuah

microcomputer organ yaitu dengan membuat sebuah tangga nada yang

berbeda-beda dimana hasil outputan bisa seperti piano yang kita pencet

atau kita tekan yang menghasilkan bentuk suara not-not dalam lagu.

Flowchart program 2

Finish

22

Page 26: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

BAB IV

KESIMPULAN

Setelah melakukan percobaan 1 dapat di ambil kesimpulan bahwa

bunyi pada setiap tone berbeda-beda tergantung pada nilai

frekuensinya.

Pada percobaan 2 kita dapat mengambil kesimpulan bahwa kitab

bisa membuat nada pada setiap tombol yang ada pada MPT-1

ROUTINE : Program utamadarisuatumikroprosessor.

SUBROUTINE : Program lain di luarsistem yang di panggilolehsebuah

Fungsi dari masing-masing Tone

TONE1K

Fungsi : Mengeluarkan nada denganfrekuensi 1 KHz.

Alamat : 05DEH

TONE2K

Fungsi : Mengeluarkan nada denganfrekensi 2 KHz dandurasiseperti

di program di dalam HL.

Alamat : 0552H

TONE

Fungsi : Mengeluarkanbunyidenganfrekuensidandurasiterprogram.

Alamat : 05E4H

Page 27: Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya

DAFTAR PUSTAKA

http://mikroprosesor.lecture.ub.ac.id/files/2010/08/4A-Set-Instruksi-

Mikroprosesor.pdf

Asisten.2010.Modul praktikum mikroprosesor. Cilegon : FT.Elektro.