Ervan Efendi _ 080200_ Ed 10 _ Modul 4_ Hardiansya
Transcript of 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
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
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
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
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
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
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
• 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
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
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
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
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
[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
(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
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
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.
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
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.
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
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
FLOWCHART
start
Set 20 Hz shiftrat
Check for 2second
Set low frequency = 320 Hz
Set high frequency = 479 Hz
Check 1second
finish
18
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
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
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
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
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
DAFTAR PUSTAKA
http://mikroprosesor.lecture.ub.ac.id/files/2010/08/4A-Set-Instruksi-
Mikroprosesor.pdf
Asisten.2010.Modul praktikum mikroprosesor. Cilegon : FT.Elektro.