• Tidak ada hasil yang ditemukan

TUGAS AKHIR Diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik Program Studi Teknik Elektro

N/A
N/A
Protected

Academic year: 2019

Membagikan "TUGAS AKHIR Diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik Program Studi Teknik Elektro"

Copied!
107
0
0

Teks penuh

(1)

METRONOM BERBASIS MIKROKONTROLER

AT 89S51

TUGAS AKHIR

Diajukan untuk memenuhi salah satu syarat

memperoleh gelar Sarjana Teknik

Program Studi Teknik Elektro

disusun oleh :

ARI WIBOWO

NIM : 025114035

PROGRAM STUDI TEKNIK ELEKTRO

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(2)

METRONOME BASED ONAT 89S51

MICROCONTROLER

FINAL PROJECT

Presented as Partial Fulfillment of the Requirements

to Obtain the SARJANA TEKNIK Degree

in Electrical Engineering

by :

ARI WIBOWO

STUDENT NUMBER : 025114035

ELECTRICAL ENGINEERING DEPARTMENT

SCIENCE and TECHNOLOGY FACULTY

(3)
(4)
(5)

LEMBAR PERNYATAAN KEASLIAN KARYA

“Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini

tidak memuat karya atau bagian karya orang lain,

kecuali yang telah disebutkan dalam kutipan dan daftar pustaka,

sebagaimana layaknya karya ilmiah.”

Yogyakarta, 17 September 2007

(6)

MOTO DAN PERSEMBAHAN

Jenius adalah 1 % inspirasi dan 99 % keringat. Tidak ada yang

dapat menggantikan kerja keras. Keberuntungan adalah sesuatu

yang terjadi ketika kesempatan bertemu dengan kesiapan

.

Thomas A. Edison

Ketika satu pintu tertutup, pintu lain terbuka; namun terkadang

kita melihat dan menyesali pintu tertutup tersebut terlalu lama

hingga kita tidak melihat pintu lain yang telah terbuka. -

Alexander Graham Bell

Kupersembahkan Karya ini :

Untuk Ayah dan Ibuku tercinta

Untuk Segenap Keluargaku

Untuk Semua teman dan sahabatku

Terimakasih atas segala dukungan, kasih dan cinta yang selalu diberikan

(7)

INTISARI

Metronom merupakan alat untuk mengatur banyaknya ketukan tiap menit pada

komposisi suatu musik.Metronom yang biasanya dipakai adalah metronome mekanis

yang besar sehingga agak sulit untuk dibawa.Untuk itu akan dibuat metronom yang

berbasis mikrokontroler sehingga bentuk dan ukurannya menjadi lebih kecil.

Metronom berbasis mikrokontroler ini menggunakan lima buah tombol yaitu

tombol satuan,puluhan,ratusan,start dan reset selain itu juga menggunakan tiga buah

seven segment sebagai penampil dari banyaknya ketukan tiap menit(BPM).Ketika

tombol ditekan maka mikrokontroler akan mendiskripsikan tombol tersebut sebagai

tombol tertentu(satuan,puluhan atau ratusan) kemudian akan diolah untuk ditampilkan

pada seven segment dan digunakan untuk mengatur timer pada mikrokontroler yang

digunakan untuk membunyikan buzzer.

Pada tugas akhir ini,perangkat keras dapat menampilkan dan membunyikan

buzzer.Ketukan tiap menit yang dihasilkan berbeda dengan yang diinginkan.

Banyaknya ketukan tiap menit yang dihasilkan adalah antara 30 BPM sampai dengan

250 BPM.

(8)

ABSTRACT

Metronome is a device to producing number of the beats per minute at musical

composition. Musicians usually using the mechanical metronome that cannot easily

brought it any where. Solution of these problem is metronome based of

microcontroller to reduce the size and shape.

This metronome is used five push buttons .There are unity, tens, hundred ,start

and reset buttons. It used three digits seven segment to display number of beats per

minute(BPM). When the button pressed, microcontroller will describe that button as

specific button (unity , tens or hundred)then it will processed to displayed in seven

segments and to control microcontroller’s timer to sound the buzzer.

In these final project hardware displayed arranging beats per minute and

sounding buzzer .In spite of beat per minute is yielded are different with the project

plan because of the microcontroller unable to divide the number. The result of this

device can beats from 30 BPM up to 250 BPM

Key word :

metronome, AT 89s51 microcontroller application

(9)

KATA PENGANTAR

Puji syukur penulis panjatkan kepada Allah Bapa disurga, yang telah

memberikan kasih karunia, anugerah, dan berkat-Nya, sehingga penulis dapat

menyelesaikan penulisan tugas akhir dengan baik.

Penulis menyadari bahwa dalam penulisan tugas akhir ini, penilis

mendapatkan banyak bantuan dan dorongan dari berbagai pihak. Oleh karena itu,

pada kesempatan ini perkenankanlah dengan segala kerendahan hati dan penuh

hormat, penulis mengucapkan terima kasih yang sebesar-besarnya kepada:

1.

Romo Ir. Greg. Heliarko SJ.,SS.,BST.,MA.,MSC Selaku Dekan Fakultas

Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.

2.

Bapak A. Bayu Primawan, S.T., M.Eng selaku Ketua Jurusan Teknik

Elektro Universitas Sanata Dharma Yogyakarta dan selaku pembimbing II

yang membimbing dan mengarahkan dalam penyusunan tugas akhir ini.

3.

Bapak B. Djoko Untoro Suwarno,SSi,MT selaku pembimbing I atas segala

pemikiran dalam membimbing dan mengarahkan penulis dari awal hingga

akhir.

4.

Seluruh dosen di Fakultas Teknik Elektro yang tidak dapat di sebutkan

satu persatu, yang telah mendidik penulis untuk mengetahui lebih dalam

tentang Teknik Elektronika.

5.

Seluruh Staf Perpustakaan Universitas Sanata Dharma yang sudah

memberikan layanan dan bantuan selama proses pencarian referensi.

6.

Kedua orang tua penulis yang telah memberikan doa, dorongan moril

(10)

7.

Mbak Esti yang telah memberikan doa dan kesabaran karena ke-Betean

ku selama penyusunan tugas akhir ini.

8.

Bagas yang selalu mengganguku dalam pembuatan karya ini.

9.

Teman-teman teknik Elekro yang sudah membantu :

Alex,Rina,Andy’s,Ericdan lainya yang tidak dapat disebutkan satu persatu

10.

Teman-teman kost T-KIP : Briatma, Dedik, Agung Bawono, S.T, Dody

Prasetyo P, S.T terima kasih atas ide untuk timer mikronya

11.

Laboran teknik elektro : mas Suryono makasih sudah meminjamkan

computer dan downloader , mas Mardi untuk membantu cara memakai

oscilloscope digital, mas Broto yang membantu dalam pengambilan data.

12.

Kamar kecil 3 x 3 di Pomahan , di tempat ini kutulis semua pemikiran dan

harapan hidupku.

13.

Teman-teman mahasiswa jurusan Teknik Elekro dan semua pihak yang

tidak dapat disebutkan satu persatu atas setiap bantuannya.

Penulis menyadari bahwa masih banyak kelemahan dan kekurangan dari

penulisan tugas akhir ini. Oleh karena itu segala kritik dan saran yang bersifat

membangun sangat penulis harapkan.

Akhir kata penulis berharap agar skripsi ini dapat bermanfaat bagi

penulis maupun pembaca semuanya.

Yogyakarta,

26

Juli

2007

(11)

DAFTAR ISI

HALAMAN JUDUL ... i

HALAMAN PERSETUJUAN PEMBIMBING... iii

HALAMAN PENGESAHAN ... iv

PERNYATAAN KEASLIAN KARYA... v

MOTO DAN PERSEMBAHAN... vi

INTISARI... vii

ABSTRACT

... viii

KATA PENGANTAR

... ix

DAFTAR ISI

... xii

DAFTAR TABEL... xiv

DAFTAR GAMBAR ... xv

DAFTAR LAMPIRAN... xvii

BAB I. PENDAHULUAN... 1

1.1

Latar Belakang ... 1

1.2

Tujuan Penelitian ... 1

1.3

Manfaat Penelitian ... 2

1.4

Prumusan Masalah ... 2

1.5

Pembatasan Masalah... 2

(12)

BAB II. DASAR TEORI... 4

2.1

Komponen

Penyusun

Metronom ...

5

2.1.1 Mikrokontroler AT 89S51 ... 5

2.1.1.1

Organisasi

Memori...

6

2.1.1.2 Set Instruksi Mikrokontroler AT 89S51 ... 12

2.1.1.3

Pewaktu

CPU ...

19

2.1.1.4

Struktur

Interupsi ...

20

2.1.2 Seven Segment... 22

2.1.3 Pembagi Tegangan... 23

BAB III PERANCANGAN ... 24

3.1

Tombol ...

25

3.2

Mikrokontroler ...

26

3.2.1

Inisialisasi...

27

3.2.2 Cek Tombol... 29

3.2.3 Tampilkan Data (Beat Per Minute) ... 31

3.2.4 Pengatur Multiplier ... 33

3.2.4.1 Penjumlah Cacah Tombol... 34

3.2.4.2

Perkalian ...

34

3.2.5

Timer ...

37

3.2.6 Bunyikan Speaker ... 40

3.2.7

Reset ...

40

3.3

Display

...

40

(13)

BAB IV. HASIL PENGAMATAN DAN PEMBAHASAN... 24

4.1 Data Hasil Pengasmatan ... 24

4.1.1 Bentuk Gelombang Keluaran... 27

BAB V. Kesimpulan dan Saran... 32

5.1

Kesimpulan ...

32

5.2

Saran

...

32

DAFTAR PUSTAKA

(14)

DAFTAR TABEL

1.

Tabel 2.1 Banyaknya Ketukan yang Biasa Digunakan... 4

2.

Tabel 2.2 Daftar Instruksi Aritmetika ATMEL AT89S51... 15

3.

Tabel 2.3 Daftar Instruksi Logika... 16

4.

Tabel 2.4 Instruksi Transfer Data ATMEL AT89S51 ... 17

5.

Tabel 2.5 Instruksi-Instruksi Boolean... 17

6.

Tabel 2.6 Instruksi Lompatan Tak Bersyarat... 18

7.

Tabel 2.7 Instruksi Lompatan Bersyarat... 19

8.

Tabel 2.7 register IE... 21

9.

Tabel 2.8 Prioritas Interupsi... 22

10.

Tabel 3.1. Daftar Bilangan heksa untuk tampilan angka pada 7’segment 31

11.

Tabel 3.2 Tabel perhitungan nilai perkalian ... 35

12.

Tabel 3.2 Tabel perhitungan nilai perkalian pada mikrokontroler ... 36

13.

Tabel 4.1 Hasil pengamatan... 43

14.

Tabel 4.2 Perbandingan faktor perkalian……… 44

(15)

DAFTAR GAMBAR

1.

Gambar 2.1 Blok Diagram inti ATMEL AT89S51 ... 6

2.

Gambar 2.2 Alamat RAM

Internal

dan

Flash

PEROM ATMEL AT89S51... 7

3.

Gambar 2.3 Peta memori RAM

Internal

... 8

4.

Gambar 2.4 Peta memori SFR ATMEL AT89S51... 9

5.

Gambar 2.5 Program Status Word ... 10

6.

Gambar 2.6 Menghubungkan kristal sumber clock ... 20

7.

Gambar 2.7 Register Interrupt Enable ATMEL AT 89S51... 20

8.

Gambar 2.7 Rangkaian Pembagi Tegangan... 23

9.

Gambar 2.8 Lambang buzzer dengan diberi sumber tegangan... 24

10.

Gambar 3.1 Blok diagram metronome... 24

11.

Gambar 3.2 Blok diagram pemrogaman pada mikrokontroler ... 25

12.

Gambar 3.3 Letak tombol pada mikrokontroler ... 26

13.

Gambar 3.4 Diagram alir pemrograman mikrokontroler ... 27

14.

Gambar 3.5 Diagram alir routine cek tombol ... 30

15.

Gambar 3.6.Diagram alir

Routine

tampilkan data ... 32

16.

Gambar 3.7 Letak penampil

seven segment

pada mikrokontroler ... 33

17.

Gambar 3.8 Diagram blok dari pengatur multiplier... 33

18.

Gambar 3.9. Diagram alir routine adder ... 34

19.

Gambar 3.10 Diagram alir perkalian ... 37

20.

Gambar 3.11 Diagram alir timer ... 39

21.

Gambar 3.12 Konfigurasi tombol reset... 40

(16)

23.

Gambar 3.14 Rangkaian volume untuk

buzzer

... 42

24.

Gambar 4.1 Grafik periode ideal dengan pengamatan... 46

25.

Gambar 4.2 Bentuk gelombang output sebesar 1,9 detik ... 47

26.

Gambar 4.3 Bentuk gelombang output sebesar 1,7 detik ... 48

27.

Gambar 4.4 Bentuk gelombang output sebesar 1,4 detik ... 48

28.

Gambar 4.5 Bentuk gelombang output sebesar 1,2 detik ... 49

29.

Gambar 4.6 Bentuk gelombang output sebesar 0,960 detik ... 49

30.

Gambar 4.7 Bentuk gelombang output sebesar 0,720 detik ... 50

31.

Gambar 4.8 Bentuk gelombang output sebesar 0,480 detik ... 50

(17)

DAFTAR LAMPIRAN

(18)

BAB I

PENDAHULUAN

1.1 LATAR BELAKANG MASALAH

Metronom merupakan suatu alat yang menghasilkan suatu pulsa yang

dapat diatur, pada umumnya digunakan untuk membuat suatu ketukan yang standart

pada komposisi suatu musik.

Metronom yang biasa digunakan adalah metronom mekanis,ukuran

metronom ini besar dan berat sehingga akan sangat merepotkan apabila akan hendak

dibawa bepergian.Dengan metronom berbasis mikroprosessor ATMEL AT89S51

ukurannya menjadi lebih kecil dan menjadi lebih ringan.

1.2 TUJUAN dan MANFAAT

Tujuan penelitian ini, peneliti mempunyai beberapa tujuan yang ingin

dicapai, yaitu :

1.

Membuat peralatan yang dapat digunakan untuk mengatur banyaknya ketukan

tiap menit pada suatu komposisi musik.

(19)

1.3 Manfaat Penelitian

Mengacu pada beberapa tujuan yang akan dicapai, diharapkan peneliti

dapat memberikan beberapa manfaat :

1.

Mebuat metronome menjadi mudah dibawa bagi pengguna.

2.

Mempermudah penggunaan metronom bagi pengguna.

1.4 Perumusan Masalah

Mikrokontroler AT89S51 dipakai sebagai timer yang tergantung pada

tombol yang ditekan,apabila tombol ditekan maka akan terjadi penjumlahan ketukan

tiap menitnya.Hasil dari proses ditampilkan pada

seven segment

dan hasil suara

diperdengarkan melewati speaker.

Dari uraian tersebut maka masalah yang didapat adalah :

1.

Bagaimana membuat diagram alir .

2.

Bagaimana membuat perangkat lunak pada AT89S51 dengan bahasa asembler

dari perangkat lunak Pinacle.

3.

Bagaimana mengatur besarnya

delay timer

pada mikrokontroler.

4.

Bagaimana membuat rangkaian metronom berbasis mikrokontroler AT89S51.

1.5 Pembatasan Masalah

Pembatasan masalah ruang lingkup yang akan dieliti, diberikan batasan

pada alat yang dibuat, yaitu :

1.

Tombol yang digunakan hanya tiga yaitu untuk ratusan,puluhan dan satuan.

(20)

3.

Besar ketukan maksimal 200 ketukan per menit.

4.

Menggunakan tiga buah seven segmen sebagai penampil banyaknya ketukan .

5.

Menggunakan buzzer sebagai penghasil suara.

1.6 Sistematika Penulisan

Tugas akhir ini berdasarkan sumber buku dan

data sheet

. Sistematika penulisan

terdiri dari lima bab, yaitu :

Bab I membahas tentang pendahuluan yang berisi latar belakang, tujuan

penelitian, pembatasan masalah, perumusan masalah dan sistematika penulisan.

Bab II membahas tentang dasar teori yang mendukung penelitian yaitu tentang

metronom dan mikrokontroler AT89S51.

Bab III membahas tentang perancangan perangkat lunak berupa pemrograman

mikrokontroler dan perangkat keras.

Bab IV membahas tentang pengamatan kerja dari perangkat keras dan perangkat

lunak yang telah dibuat dan dibandingkan dengan perancangan.

(21)

BAB II

DASAR TEORI

Metronom merupakan alat penghasil pulsa yang mengatur dan menjaga

ketukan pada komposisi musik.Ketukan (tempo) dijaga supaya lagu yang dimainkan

selalu tetap temponya.Banyaknya ketukan dihitung dalam setiap menit (b

eats per

Minute

),besarnya antara 40 sampai dengan 200

beats per minute

Tabel 2.1 Banyaknya ketukan yang biasa digunakan pada komposisi musik.

(1)

Tem po Mark ings Definit ion Beat s per m inut e

I t alian

set t ing t he t em po

grave very slow and solem n 40 bpm or slower

larghissim o ex t rem ely slow 40 bpm or slower

lent issim o

ex t rem ely slow , but not as slow as

larghissim o

adagissim o ex t rem ely slow , but slow er t han largo

largo broad, very slow and dignified 42- 66 bpm

larghet t o less slow t han largo 60- 66 bpm

largam ent e broadly

adagio slow , but not as slow as largo

58- 97 bpm ( som e sources suggest 66- 76 bpm )

adagiet t o slow , but less slow t han adagio

lent o slow 52- 108 bpm

lent am ent e slow ly

andant ino

a lit t le slow er t han andant e but som et im es a

lit t le fast er t han adagio

andant e m oving along - walk ing pace

56- 88 bpm ( som e sources suggest 76- 108 bpm )

con m ot o w it h m ovem ent , or a cert ain quick ness

m oderat o m oderat e speed

66- 126 bpm ( som e sources suggest 120- 168 bpm )

allegret t o pret t y liv ely

vivace quick and lively ~ 140 bpm

allegro quick , liv ely and bright 84- 144 bpm

(22)

Lanjutan Tabel 2.1 Banyaknya ketukan yang biasa digunakan pada komposisi musik.

(1)

Tem po Mark ings Definit ion Beat s per m inut e

I t alian

set t ing t he t em po

prest o very quick 100- 152 bpm

allegrissim o very quick , bet ween pr est o and v ivacissim o

v ivacissim o very quick , fast er t han v iv ace

prest issim o very quick - as quick ly as possible

rapido rapid

v eloce w it h velocit y, speedily

Untuk menghitung waktu yang dibutuhkan pada tiap detiknya digunakan rumusan

sebagai berikut:

BPM

ik

T

(det

)

=

60

………(2.1)

T (detik) = waktu yang dibutuhkan untuk satu ketukan

60

= banyaknya detik dalam tiap menit.

BPM = Ketukan tiap menit (Beats Per Minute)

2.1

Komponen penyusun metronom ini dapat dijelaskan sebagai

berikut.

2.1.1 Mikrokontroller ATMEL AT89S51

Mikrokontroller merupakan terobosan teknologi miroprosessor

yang dibuat untuk memenuhi kebutuhan pasar dan teknologi baru, yaitu

teknologi semikonduktor dengan kandungan transistor yang lebih banyak

(23)

seperti komputer yang dapat menangani banyak pekerjaan, tetapi

Mikrokontroller

hanya dapat dipakai untuk satu macam aplikasi saja yang

disimpan di ROM. Besar RAM jauh lebih kecil dibandingkan dengan besar

ROM.

Mikrokontroller

ATMEL AT89S51 merupakan

Mikrokontroller

yang kompatibel dengan

Mikrokontroller

8051 buatan

Intel. Perintah-perintah yang digunakan pada Mikrokontroller ATMEL

AT89S51 dapat digunakan pula pada Mikrokontroller 8051. blok diagram

inti dari ATMEL AT89S51 dapat dilihat pada gambar 2.1 sebagai berikut.

Gambar 2.1 Blok Diagram inti ATMEL AT89S51

2.1.1.1 Organisasi Memory

Semua produk ATMEL memiliki ruang alamat memori data dan

program yang terpisah. Pemisahan penyimpanan memori data dan

program dapat diakses menggunakan metode pengaksesan alamat 8 bit.

Alamat RAM

Internal

dan

Flash

PEROM ATMEL ATMEL AT89S51

(24)

Gambar 2.2 Alamat RAM

Internal

dan

Flash

PEROM ATMEL

AT89S51

ATMEL AT89S51 mempunyai struktur memori yang terdiri atas :

1.

RAM

Internal

, memorinya sebesar 128

byte

yang biasanya

digunakan untuk menyimpan variabel atau data yang bersifat

sementara.

2.

Register Fungsi Khusus (

Special Function Register

), memori yang

memiliki fungsi khusus untuk menunjang kerja dari Mikrokontroller

tersebut, seperti :

Timer, Program Status Word

(PSW) dan lain-lain.

3.

Flash

PEROM, memori yang digunakan oleh Mikrokontroller untuk

menyimpan instruksi-instruksi ATMEL AT89S51.

Mikrokontroller ATMEL AT89S51 mempunyai struktur memori

yang terpisah antara RAM

Internal

dan

Flash

PEROM. RAM

Internal

dialamati oleh RAM

Address Register

(Register Alamat RAM)

sedangkan

Flash

PEROM dialamati oleh Program

Address Register

(Register Alamat Program). Ram

Internal

dan

Flash

PEROM waluapun

memiliki alamat memori yang sama yaitu 000H, namun secara fisik

kedua memori tersebut tidak saling berhubungan.

1)

RAM

Internal

(25)

a.

Register Bank, Mikrokontroller ini memiliki 8 buah register

yang terdiri atas R0 sampai dengan R7 dapat dibuah ke bank 1,

bank 2, bank 3 dengan cara mengubah kondisi nilai RS0 dan

RS1 pada register PSW.

b.

Bit

Addressable

RAM, RAM ini terletak dialamat 20H sampai

2FH yang dapat diakses secara pengalamatan bit sehingga

dapat mengerjakan fungsi-fungsi

boolean

.

c.

RAM keperluan umum, RAM ini dimulai dari alamat 30H

hingga 7F dan dapat diakses dengan pengalamatan langsung

dan tak langsung. Pengalamatan langsung dilakukan ketika

salah satu operan merupakan bilangan yang menunjukkan

lokasi yang dialamati.

Lokasi RAM

Internal

dapat dilihat pada gambar 2.3 dibawah

ini.

(26)

2)

Register Fungsi Khusus (

Special Function Register

)

AT 89S51 mempunyai 21

Special Function Register

yang terletak dialamat 80H sampai dengan FFH. Beberapa register

ini dapat dialamati secara bit. Gambar 2.4 menunjukkkan peta

Register Fungsi Khusus.

a.

Akumulator, register ini terletak dialamat E0H dan dapat

dialamati secara bit, akumulator digunakan untuk hampir

semua operasi logika dan aritmatika.

b.

Port, ATMEL AT89S51 mempunyai 4 buah port : yaitu Port 0,

Port 1, Port 2 dan Port 3 yang terletak dialamat 80H, 90H, A0H

dan B0H. Semua port tersebut dapat dialamati secara bit

sehinga dapat dilakukan perubahan salah satu pin port tersebut

tanpa mengganggu pin yang lain.

(27)

c.

PSW,

Program Status Word

atau PSW terletak dialamat D0H,

terdiri atas beberapa bit seperti terlihat pada gambar 2.5. PSW

berisi dari data bit hasil eksekusi program seperti hasil

aritmatika dan logika.

Gambar 2.5 Program Status Word

d.

Register B, register ini digunakan bersama akumulator untuk

proses aritmatik selain digunakan untuk register biasa dan dapat

dialamati secara bit.

e.

Stack

Pointer

, merupakan register 8 bit yang terletak dialamat

81H. Isi dari

stack

pointer

merupakan alamat dari data yang

disimpan di-

stack

. Proses yang berhubungan dengan

stack

ini

biasa dilakukan oleh instruksi-instruksi

Push, Pop, Acall

dll.

f.

Data

pointer

, data

pointer

atau DPTR merupakan register 16 bit

dan terletak pada alamat 82H untuk DPL dan 83H untuk DPH.

DPTR bisa digunakan untuk mengakses

source code

ataupun data

yang terletak di memori

external

.

g.

Register

Timer

, AT89S51 mempunyai dua buah, 16 bit

Timer/Counter

yaitu :

timer

0 dan

timer

1.

Timer

0 terletak

dialamat 84H untuk TL0 dan 8CH untuk TH0, sedangkan

Timer

(28)

h.

Register Port

Serial

, port ini merupakan

on chip serial port

yang

digunakan untuk melakukan komunikasi dengan peralatan yang

menggunakan

serial

port.

i.

Register interupsi, Mikrokontroller ini memiliki 5 buah interupsi

dengan dua level prioritas interupsi, interupsi secara otomatis

akan dimatikan bila sistem di-reset. Register yang behubungan

dengan interupsi adalah

Interrupt Enable Register

(IE) pada

alamat A8H dan Interupsi

Priority Register

(IP) pada alamat

B8H.

3)

Flash

PEROM

AT89S51 mempunyai 4 Kb

Flash

PEROM yang dapat

ditulis dan dihapus menggunakan sebuah perangkat

programmer

.

Program yang terdapat pada

Flash

PEROM akan dieksekusi jika

sistem di-reset, pin EA/VPP berlogika satu sehingga

Mikrokontroller aktif berdasarkan program yang ada di

Flash

PEROM, sedang bila berlogika nol maka Mikrokontroller aktif

berdasarkan program yang ada pada memori

external.

Pengalamatan data yang terdapat pada ATMEL AT89S51

mempunyai fasilitas yaitu :

Lock bit Protection

yang terdiri :

a.

Lock bit 1, instruksi MOVC yang dieksekusi dari memori

ekstenal untuk membaca sistem

Flash

PEROM tidak dapat

(29)

b.

Lock bit 2, isi

Flash

PEROM tidak dapat di-

verifi

oleh

programmer.

c.

Lock bit 3, akses ke memori

external

tidak dapat dilakukan.

2.1.1.2

Set Instruksi Mikrokontroller AT89S51

Semua anggota keluarga Mikrokontroller ATMEL

mengeksekusi set instruksi yang sama. Set instruksi ini telah

dioptimasi untuk aplikasi kontrol 8 bit, serta menyediakan berbagai

macam mode pengalamatan yang cepat untuk mengakses RAM

internal

dan RAM

external

.

a.

Mode-mode Pengalamatan

Mode-mode pengalamatan dapat dikelompokkan menjadi seperti

berikut ini :

1.)

Pengalamatan langsung (

direct Addressing

)

Dalam pengalamatan langsung operan-operan ditentukan

berdasarkan alamat 8 bit (1

byte

) dalam suatu instruksi. Hanya

RAM

internal

dan SFR yang dapat diakses secara langsung.

2.) Pengalamatan Tak Langsung (

Indirect Addressing

)

Dalam pengalamatan tak langsung instruksi menentukan suatu

register yang digunakan untuk menyimpan alamat operan. Baik

(30)

Register alamat untuk alamat-alamat 8 bit bisa menggunakan

stack

pointer

R1 atau R0 dari bank yang dipilih, sedangkan

untuk alamat 16 bit dapat menggunakan DPTR.

3.) Instruksi-Instruksi

Register

Bank-bank register yang masing-masing berisi R0-R7 dapat

diakses dengan menggunakan instruksi yang memiliki kode

operasi 3 bit. Pengaksesan dengan cara demikian dapat

menghemat penggunaan kode instruksi, karena tidak

menggunakan sebuah

byte

untuk alamat. Pada saat instruksi

tersebut dijalankan maka salah satu bank register yang telah

dipilih yang akan diakses.

4.)

Instruksi-instruksi register khusus

Beberapa instruksi hanya dikhususkan untuk suatu register

tertentu. Misalnya suatu instruksi yang hanya bekerja pada

akumulator saja, sehingga tidak memerlukan satu

byte

untuk

menunjukkan alamat akumulator tersebut. Instruksi mengacu

akumulator sebagai A akan dikodekan dengan

op-code

spesifikasi akumulator.

5.)

Konstanta segera (

Immediate constant

)

Nilai dari suatu konstanta dapat segera menyatu dengan

op-code

dalam memori program. Misalnya, instruksi : MOV

A,#50, yang akan menyimpan konstanta 50 (desimal) ke dalam

(31)

6.)

Pengalamatan Terindeks(

Indexed Addressing

)

Memori program hanya dapat diakses melalui pengalamatan

terindeks. Mode pengalamatan ini ditunjukkan untuk membaca

tabel tengok (

Look up table

) yang tersimpan dalam memori

program. Sebuah register 16 bit menunjuk ke awal atau dasar

tabel dan akumulator diset dengan angka indeks tabel yang

akan diakses. Alamat dari entri tabel memori program dibentuk

dengan menjumlahkan data akumulator dengan petunjuk ke

tabel. Tipe lain dari pengalamatan terindeks digunakan dalam

instruksi-instruksi “lompat bersyarat”. Dalam hal ini, alamat

tujuan dari instruksi lompat (

jump

) dihitung sebagai jumlah dari

petunjuk dasar dengan data ke akumulator.

b.

Instruksi Aritmatika

Tabel 2.2 memuat daftar instruksi-instruksi aritmatika

dan waktu instruksi. Jika sistem mengguakan frekuensi

clock

12 MHz, terlihat semua instruksi dilakukan selama 1 µs kecuali

INC DPTR. Perintah ini beroperasi pada petunjuk data

pointer

16 bit, sedangkan hasilnya adalah 16 bit alamat untuk memori

external

. Instruksi MUL AB digunakan untuk melakukan

perkalian antara akumulator dengan register B dan hasilnya

(32)

Tabel 2.2 Daftar Instruksi Aritmetika ATMEL AT89S51

c.

Instruksi Logika

Instruksi logika digunakan untuk melakukan operasi

boolean

(AND, OR, XOR dan NOT) pada suatu

byte

dan beroperasi pada

masing-masing bit. Jika suatu operasi ditunda karena interupsi,

dengan tidak menggunakan akumulator akan menghemat waktu yang

dibutuhkan untuk menyimpan isi akumulator ke dalam

stack

didalam

rutin pelayanan interupsi yang bersangkutan.

Instruksi putar atau

rotate

(RL A, RLC A dan lainnya) akan

menggeser isi akumulator 1 bit kekanan atau kekiri. Untuk putar

kekiri, bit MSB akan berputar ke kiri dan menggantikan posisi bit

Mnemonis Operasi Waktu Eksekusi (µd)

ADD A,<byte> A=A+<byte> 1

ADDC A,<byte> A=A+<byte>+C 1

SUBB A,<byte> A=A-<byte>-C 1

INC A A=A+1 1

INC<byte> <byte>=<byte>+1 1

INC DPTR DPTR=DPTR+1 2

DEC A A=A-1 1

DEC<byte> <byte>=<byte>-1 1

MUL AB B:A=BxA 4

DIV AB A=int[A/B]

B=mod[A/B]

4

(33)

LSB, dan bila berputar kekanan maka bit LSB akan menempati

posisi bit MSB.

Tabel 2.3 Daftar Instruksi Logika

Mnemonic Operasi Waktu Eksekusi

ANL A,<byte> A=A.and.<byte> 1

ANL <byte>,A <byte>=<byte>.and.A 1

ANL <byte>,#data <byte>=<byte>.and.#data 2

ORL A,<byte> A=A.or.<byte> 1

ORL <byte>,A <byte>=<byte>.or.A 1

ORL <byte>,#data <byte>=<byte>.or.#data 2

XRL A,<byte> A=A.xor.<byte> 1

XRL <byte>,A <byte>=<byte>.xor.A 1

XRL <byte>,#data <byte>=<byte>.xor.#data 2

CLR A A=00 H 1

CPL A A=.not.A 1

RL A Putar ACC kekiri 1 bit 1

RLC A Putar ACC kiri lewat carry 1

RR A Putar kanan ACC 1

RRC A Putar kanan ACC lewat carry 1

d.

Instruksi Transfer Data

Instruksi trasfer data dapat dibagi menjadi 2 macam yaitu

instruksi transfer data yang mengakses ruang memori

internal

dan

transfer data yang mengakases ruang memori

external

. Pengaksesan

(34)

16 bit. Pengeksekusian perintah trasnfer data tidak mempengaruhi

Program Status Word

.

Tabel 2.4 Instruksi Transfer Data ATMEL AT89S51

Mnemonic Operasi Waktu eks. (µd)

MOV A,<sumber> A=<sumber> 1

MOV <tujuan>,A <tujuan>=A 1

MOV <tjn>,<sbr> <tujuan>=<sumber> 2

MOV DPTR,#data16bit DPTR=konstanta 16 bit 2

PUSH <sumber> INC SP MOV “@SP”,<sumber> 2

POP <tujuan> MOV <tujuan>,”@SP”DEC SP 2

XCH A,<byte> Tukar data byte antara ACC dan <byte> 2

e.

Instruksi Boolean

Mikrokontroller ATMEL AT89S51 memiliki sebuah prosesor

boolean yang cukup lengkap. Tabel 2.5 memperlihatkan instruksi

boolean pada Mikrokontroller ATMEL AT89S51. Semua jalur port

merupakan bit yang dapat dialamati dan dapat dilakukan sebagai port

yang terpisah.

Tabel 2.5 Instruksi-Instruksi Boolean

Instruksi Fungsi Waktu eksekusi (µd)

ANL C,bit C=C.and.bit 2

ANL C,/bit C=C.and. .not. bit 2

ORL C,bit C=C .or. bit 2

ORL C,/bit C=C .or. not. bit 2

(35)

Instruksi Fungsi Waktu eksekusi (µd)

MOV bit,C Bit=C 2

CLR bit Bit=0 1

CLR C C=0 1

f.

Instruksi Lompat (

jump

)

Instruksi lompatan (

jump

) merupakan perintah yang digunakan

pada Mikrokontroller ATMEL AT89S51 untuk melakukan

perpindahan alamat perintah yang akan dieksekusi oleh CPU.

Instruksi lompatan ini dapat dibagi menjadi dua macam yaitu

instruksi lompatan tak bersyarat dan instruksi lompatan bersyarat.

Tabel 2.6 menunjukkan instruksi lompatan tak bersyarat pada

Mikrokontroller ATMEL AT89S51 dan pada tabel 2.7 menunjukkan

instruksi lompatan bersyarat.

Tabel 2.6 Instruksi Lompatan Tak Bersyarat

Instruksi Fungsi Waktu Eksekusi

JMP alamat Lompat ke alamat 2

JMP @A+DPTR Lompat ke A+DPTR 2

CALL alamat Panggil subrutin alamat 2

RET Kembali ke subrutin 2

(36)

Tabel 2.7 Instruksi Lompatan Bersyarat

Instruksi Fungsi Waktu Eksekusi (µd)

JZ rel Lompat jika A=0 2

JNZ rel Lompat jika A tidak 0 2

DJNZ <byte>,rel Lompat jika tidak 0 2

CJNE A,<byte>,rel Lompat jika A’<byte> 2

CJNE <byte>,#data,rel Lompat jika <byte>”#data 2

Semua instruksi bersyarat tersebut menentukan alamat tujuan

menggunakan metode

offset

relatif dan terbatas pada jarak lompatan antara

-128 hingga +127 dari istruksi lompatan tersebut.

2.1.1.3

Pewaktu CPU

Mikrokontroller ATMEL AT89S51 memiliki osilator yang

tersedia pada kemasan IC tersebut (

on chip

) sebagai sumber detak

(

clock

). Bila menggunakan kaki XTAL 1 dan XTAL 2 pada

Mikrokontroller ATMEL AT89S51 dihubungkan dengan sebuah

kristal keramik dan kapasitor yang dihubungkan ke

ground

. Gambar

2.6 menunjukkkan cara menghubungkan kristal sumber detak dengan

Mikrokontroller AT89S51. Besar kapasitor yang terhubung dengan

sumber detak tergantung dari jenis sumber detak yang dipasangkan.

Bila sumber clock berupa kristal maka besar kapasitor yang terpasang

adalah 30 pF ± 10 pF dan bila jenis keramik besar kapasitor yang

(37)

Gambar 2.6 Menghubungkan kristal sumber clock

2.1.1.4

Struktur Interupsi

Mikrokontroller ATMEL AT89S51 menyediakan 5 sumber

interupsi, yaitu : 2 interupsi

eksternal

, 2 interupsi pewaktu dan sebuah

interupsi

serial

. Setiap sumber interupsi dapat dimatikan dan

dihidupkan secara individual dengan cara meresetkan bit-bit IE dalam

SFR. Pada bit IE ini terkandung juga sebuah bit aktivasi interupsi

secara global. Gambar 2.7 menunjukkkan IE pada Mikrokontroller

ATMEL AT89S51.

Gambar 2.7 Register Interrupt Enable ATMEL AT 89S51

Fungsi-fungsi pin IE dapat dilihat pada tabel 2.7. Pin IE7

digunakan sebagai kontrol utama bagi interupsi-interupsi yang lain.

Bila pin ini bernilai 1 maka semua pin interupsi akan dapat digunakan

(

enable

), sedangkan bila bernilai 0 maka semua pin interupsi akan

tidak dapat digunakan (

Disable

).

Pin IE6 dan IE5 sebagai cadangan bagi pembuat

Mikrokontroller AT89S51 , sebagai cadangan masa depan. IE4

(38)

diinginkan interupsi menggunakan port

serial

pin IE4 ini harus diberi

nilai tinggi atau 1.

Pin IE3 dan IE1 digunakan untuk

timer

0 dan

timer

1, bila

timer

digunakan dan telah mencapai nilai yang diharapkan maka

interupsi ini akan bernilai tinggi atau 1.

Pin IE2 dan IE0 dipergunakan sebagai masukan interupsi

yang berasal dari luar, sebagai contoh pin ini dihubungkan dengan

saklar

external

.

Tabel 2.7 register IE

Simbol Posisi Fungsi

EA IE.7 Untuk mematikan dan menghidupkan seluruh

interupsi secara serentak.

- IE.6 Cadangan

- IE.5 Cadangan

ES IE.4 Bit aktivasi interupsi Port Serial

ET1 IE.3 Bit aktivasi interupsi timer 1 overflow

EX1 IE.2 Bit aktivasi interupsi external 1

ET0 IE.1 Bit aktivasi interupsi timer 0 overflow

EX0 IE.0 Bit aktivasi interupsi external 0

Sebuah interupsi yang berprioritas rendah dapat

diinterupsi oleh yang berprioritas lebih tinggi, sedangkan interupsi

dengan prioritas tinggi tidak dapat diinterupsi oleh prioritas yang

lebih rendah. Bila kedua prioritas muncul pada saat yang

(39)

yang mempunyai prioritas yang sama maka CPU akan melakukan

metode pengecekan secara kontinyu untuk menentukan interupsi

mana yang akan dilayani pertama kali. Prioritas interupsi dapat

dilihat pada tabel 2.8

Tabel 2.8 Prioritas Interupsi

Simbol Posisi Fungsi

- 1P.7 Cadangan

- IP.6 Cadangan

- IP.5 Cadangan

PS IP.4 Bit prioritas untuk Interupsi Port Serial

PT1 IP.3 Bit prioritas untuk Interupsi timer 1

PX1 IP.2 Bit prioritas untuk Interupsi external 1

PT0 IP.1 Bit prioritas untuk Interupsi timer 0

PX0 IP.0 Bit prioritas untuk Interupsi external 0

2.1.2 Seven Segment

Seven segment merupakan tampilan berupa LED yang disusun

membentuk sebuah angka 8.Arus masukan pada masing – masing LED adalah

sebesar 10mA.Sehingga jika menggunakan komponen ini harus dipasangai

pembatas arus.Pembatas arus yang sederhana adalah resistor,untuk menghitung

besarnya resistor ini digunakan hukum

Kirchhoff

arus yaitu:

R

Vcc

I

=

……….(2.2)

dengan : I = Arus yang mengalir (Ampere).

Vcc = Tegangan sumber (Volt).

(40)

2.1.3 Pembagi Tegangan

Rangkaian pembagi tegangan digunakan pada rangkaian

buzzer.Tegangan yang dibutuhkan pada buzzer antara 6 – 12 volt.Untuk dapat

merubah besarnya tegangan ini maka dibutuhkan rangkaian pembagi tegangan.

Rangkaian pembagi tegangan dibangun dari dua buah resistor yang

disusun secara seri.rangkaian pembagi tegangan seperti pada gambar 2.8

menggunakan hokum ohm sehingga besarnya tegangan pada masing masing

resistor adalah:

2

1

2

2

2

2

1

2

2

1

R

R

R

VCC

VR

R

I

VR

R

R

VCC

I

VR

VR

VCC

×

+

=

×

=

+

=

+

=

………(2.3)

VCC

1

2

R2 R1

(41)

2.1.4

Buzzer

Buzzer

merupakan sebuah alat yang menghasilkan bunyi (

tone

).Pada

buzzer

terdapat oscillator yang berfungsi untuk menghasilkan bunyi.untuk dapat

membunyikannya,buzzer diberi tegangan DC sesuai dengan besarnya tegangan

yang tewrtera pada labelnya,biasanya besarnya tegangan ini adalah 12 volt DC

LS2 BUZZER

1

2

BT1 12v

1

2

(42)

BAB III

PERANCANGAN ALAT

Pada metronom yang dirancang ini terdiri atas tiga bagian yaitu bagian

tombol,bagian mikrokontroler dan bagian

display seven segment

.Untuk lebih jelasnya

bagian – bagian tersebut disusun seperti pada gambar 3.1.

Gambar 3.1 Blok diagram metronom.

Mikrokontroler

digunakan sebagai pengatur jalannya alat ini,sehingga

pada mikrokontroler terdapat program yang mengatur tombol,pengatur tampilan,pengatur

(43)

Gambar 3.2 Blok diagram pemrogaman pada mikrokontroler.

3.1 Tombol

Tombol

merupakan

bagian

yang

mengendalikan banyaknya ketukan tiap

menit yang dihasilkan oleh mikrokontroler. Banyaknya tombol yang digunakan adalah

empat buah tombol yaitu tombol start,tombol satuan,tombol puluhan dan tombol

ratusan.Tombol start digunakan untuk memulai membunyikan

buzzer

.

Tombol satuan

akan mengatur banyaknya ketukan satuan dalam tiap menit,tombol puluhan mengatur

banyaknya jumlah ketukan puluhan dalam tiap menit dan tombol ratusan mengatur

banyaknya ketukan ratusan dalam setiap menitnya.

Tombol ini berada pada port 1 mikrokontroler.Port 1 pada mikrokontroler

digunakan karena pada port 1,port 2,port 3 didalamnya sudah ada resistor

pull-up

.Tombol

ratusan berada pada port 1.0 ,tombol puluhan berada pada port 1.1 ,dan tombol satuan

berada pada port 1.2. Tombol start berada pada port 1.3.Sedangkan tombol reset berada

(44)

5V SW1 RATUSAN 1 2 SW3 SATUAN 1 2 SW5 RESET 1 2 C1 30pF C2 30pF R23 10K SW2 PULUHAN 1 2 Y 1 12MHz 5V C3 10uF U3 AT89S51 9 18 19 20 29 30 31 40 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 RST XTAL2 XTAL1 GN D PSEN ALE/PROG EA/VPP VC C P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 SW4 START 1 2

Gambar 3.3 Letak tombol pada mikrokontroler.

3.2 Mikrokontroler

Mikrokontroler digunakan sebagai pengendali banyaknya ketukan tiap

menit yang didapatkan dari perintah masukkan dari tombol dan juga sebagai pengatur

penampil keluaran.Gambar 3.4 memperlihatkan blok diagram dari pemrograman pada

(45)

Gambar 3.4 Diagram alir pemrograman mikrokontroler.

3.2.1 Inisialisasi

Bagian ini berfungsi sebagai program yang mendefinisikan berbagai nilai

yang digunakan pada pemrograman mikrokontroler tersebut.Nilai tersebut antara lain

adalah nilai

timer

(pewaktu) sebesar 240 mili detik,port yang digunakan sebagai

masukkan maupun keluaran,alamat yang digunakan kemudian mode pewaktu yang

(46)

Timer 240 mili detik dipilih karena adanya keterbatasan pada

mikrokontroler.Periode yang akan dihasilkan oleh mikrokontroler berasal dari timer,timer

mikrokontroler sangat terbatas sampai dengan 65536 mili detik,sedangkan nilai maksimal

timer yang dibutuhkan adalah 2 detik sehingga dibutuhkan suatu

multiplier

(pengkali)

agar timer dapat mencapai nilai 2 detik.Mikrokontroler yang hanya bisa melakukan

pembagian pada pengatur multiplier dengan nilai terbesar FF heksadesimal (255 desimal)

sehingga jika nilai maksimal pembaginya adalah 200 desimal dan nilai maksimal

perkalian adalah 250 dengan asumsi nilai BPM =1 maka :

24

.

0

250

60

60

250

1

=

=

×

=

×

=

timer

timer

timer

BPM

Detik

Timer

BPM

Menit

Perkalian

………(2.1)

Port yang digunakan adalah port 1.0 sebagai masukan tombol ratusan,port

1.1 sebagai masukan tombol puluhan,port 1.2 sebagai masukan tombol satuan dan port

1.3 sebagai masukan tombol start.Selain itu pada inisialisasi juga menyatakan alamat

pengali berada pada alamat 39 heksadesimal,dan mode timer yang digunakan adalah

(47)

3.2.2 Cek Tombol

Cek tombol berfungsi sebagai pemeriksa keadaan apabila tombol

ditekan,selain itu juga berfungsi sebagai cacah tombol yaitu sebagai penghitung

banyaknya tombol yang ditekan.

Apabila ada tombol yang ditekan maka akan menuju

sub routine

cacah

tombol.Cacah tombol merupakan

subroutine

yang akan menghitung berapa kali masing

masing tombol yang ditekan.Tombol 1 dan 2 akan berubah nilainya dari 0 sampai dengan

9 kecuali pada tombol 3 nilai dari 0 sampai dengan 1.Apabila nilai dari tombol 1 dan 2

(tombol satuan dan tombol puluhan) sudah bernilai 10 maka nilai dari tombol tersebut

akan dirubah (

reset

) menjadi nilai 0 kembali.Hasil dari cacah tombol tersebut akan

disimpan pada alamat data 35h,36h dan 37h.

Pada routine cek tombol ini ada sub routine program delay.Delay

bertujuan supaya tidak terjadi bouncing pada saat penekanan tombol.

Bouncing

adalah

suatu kesalahan baca pada suatu alat yang disebabkan oleh ketidak stabilan suatu

masukkan.Ketidakstabilan suatu masukan sebagai contoh adalah apabila kita menekan

tombol satu kali tetapi system membacanya masukan beberapa kali,sehingga untuk

mengatasinya dibuatlah delay.Delay pada umumnya sebesar 50 mili detik,pada program

(48)
(49)

3.2.3 Tampilkan Data (Beat per Minute)

Bagian ini digunakan untuk menampilkan besarnya ketukan tiap menitnya.

Data yang ditampilkan adalah banyaknya ketukan tiap menitnya,data tersebut berupa

angka 0 sampai dengan 9 yang berasal dari cacah tombol pada

routine

cek tombol.

Penampil data menampilkan data ratusan ,puluhan dan satuan. Program akan

menampilkan data yang tersimpan kemudian dibaca dan dikirim pada port 0 untuk

tampilan satuan , port 2 untuk tampilan puluhan dan port 3 untuk tampilan ratusan.

Untuk menampilkan data ini digunakan

seven segment display

(7’S)

common anode

.Dengan demikian untuk menyalakannya diperlukan logika 0.Jika akan

ditampilkan angka 0 maka LED a,b,c,d,e dan f harus dinyalakan pada bit port 0 yang

terkait P0.0,P0.1,P0.2,P0.3,P0.4 dan P0.5,sehingga data yang terkirim adalah 11000000

atau C0h untuk lebih lengkapnya pada tabel 3.1

Tabel 3.1. Daftar bilangan heksa untuk tampilan angka pada 7’segment.

Tampilan P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 Heksadesimal

Angka dp g f e d c b A

0 1 1 0 0 0 0 0 0 C0

1 1 1 1 1 1 0 0 1 F9

2 1 0 1 0 0 1 0 0 A4

3 1 0 1 1 0 0 0 0 B0

4 1 0 0 1 1 0 0 1 99

5 1 0 0 1 0 0 1 0 92

6 1 0 0 0 0 0 1 0 82

7 1 1 1 1 1 0 0 0 F8

8 1 0 0 0 0 0 0 0 80

9 1 0 0 1 0 0 0 0 90

Untuk selanjutnya data diatas menjadi data

look up table

.Data

look up table

merupakan

data yang nantinya bias dipanggil untuk ditampilkan pada penampil.Data 1 dan Data 2

terdiri dari angka 0 sampai 9 atau C0 sampai 90,data 2 terdiri atas angka 0 dan 1 atau C0

(50)
(51)

R13 1k R14 1k R10 1k 5V C1 30pF C2 30pF R11 1k 5V R17 1k SW5 RESET 1 2 R23 10K O a b c d e f g U2 Ratusan 1 2 10 4 5 6 7 9 8 e d g c dot b a f VC C R19 1k R5 1k R3 1k R12 1k R4 1k R22 1k 5V O a b c d e f g U4 Puluhan 1 2 10 4 5 6 7 9 8 e d g c dot b a f VC C R8 1k U3 AT89S51 9 18 19 20 29 30 31 40 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 RST XTAL2 XTAL1 GN D PSEN ALE/PROG EA/VPP VC C P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 R21 1k R20 1k C3 10uF R15 1k R2 1k R7 1k O a b c d e f g U5 Satuan 1 2 10 4 5 6 7 9 8 e d g c dot b a f VC C Y 1 12MHz R16 1k R6 1k R9 1k R18 1k

Gambar 3.7 Letak penampil

seven segment

pada mikrokontroler

3.2.4 Pengatur Multiplier

Untuk mengatur banyaknya ketukan tiap menit yang berbeda – beda maka

waktu yang dibutuhkan untuk timer juga berbeda.Pengaturan waktu yang berbeda

ini dipengaruhi oleh tombol yang ditekan.Pengatur multiplier berisi sub routine

program penjumlah cacah tombol dan juga sub routine program pembagian.

Gambar 3.5 menjelaskan diagram blok dari pengatur multiplier ini.

(52)

3.2.4.1 Penjumlah Cacah Tombol

Penjumlah cacah tombol (

Adder

) berfungsi untuk menjumlahkan banyaknya

ketukan dari cacah tombol ratusan, tombol puluhan dan tombol ratusan.

Banyaknya ketukan berasal dari data pada

register

yang dipergunakan pada cacah

tombol yaitu

register

1 untuk cacah tombol satuan,

register

2 untuk cacah tombol

ratusan dan

register

3 untuk cacah tombol ratusan.

Adder

sebanding dengan

banyaknya ketukan tiap menit (Beat per Minute).

Gambar 3.9. Diagram alir routine adder.

(53)

dibagi lagi dengan besarnya timer pada mikrokontroler yang digunakan

sehingga didapatkan nilai perkalian. Nilai perkalian jika dikalikan dengan

timer akan sama dengan besar ketukan tiap menit. Perkalian digunakan

pada pengulangan timer agar tundaan waktunya bisa menjadi lebih panjang.

Tabel 3.2 Tabel perhitungan nilai perkalian.

BPM Periode (detik) Timer PERKALIAN

(60/BPM) 240 mili detik

Periode / Timer

30 2 0.24 8.33

35 1.714285714 0.24 7.14

40 1.5 0.24 6.25

45 1.333333333 0.24 5.56

50 1.2 0.24 5.00

55 1.090909091 0.24 4.55

60 1 0.24 4.17

65 0.923076923 0.24 3.85

70 0.857142857 0.24 3.57

75 0.8 0.24 3.33

80 0.75 0.24 3.13

85 0.705882353 0.24 2.94

90 0.666666667 0.24 2.78

95 0.631578947 0.24 2.63

100 0.6 0.24 2.50

105 0.571428571 0.24 2.38

110 0.545454545 0.24 2.27

115 0.52173913 0.24 2.17

120 0.5 0.24 2.08

125 0.48 0.24 2.00

130 0.461538462 0.24 1.92

135 0.444444444 0.24 1.85

140 0.428571429 0.24 1.79

145 0.413793103 0.24 1.72

150 0.4 0.24 1.67

155 0.387096774 0.24 1.61

160 0.375 0.24 1.56

165 0.363636364 0.24 1.52

170 0.352941176 0.24 1.47

175 0.342857143 0.24 1.43

180 0.333333333 0.24 1.39

185 0.324324324 0.24 1.35

190 0.315789474 0.24 1.32

195 0.307692308 0.24 1.28

(54)

Dari tabel diatas perhitungan untuk perkalian adalah :

BPM Perkalian Detik BPM Detik Perkalian Timer BPM Menit Perkalian 250 24 . 0 60 1 = × = × =

Dengan:

BPM =

Beats Per Minute

(Ketukan tiap menit)

Karena disebabkan oleh terbatasnya mikokontroler AT 89S51,yaitu hanya

dapat melakukan intruksi arimetik yang terbatas pada bilangan

heksadesimal dan nilai maksimal adalah FF hex.Disebabkan oleh

keterbatasan ini maka perhitungan nilai berubah menjadi seperti dibawah

ini.

Tabel 3.2 Tabel perhitungan nilai perkalian pada mikrokontroler

BPM

Periode

(detik) Timer PERKALIAN PERKALIAN PERIODE

(60/BPM) 240 mili detik Periode / Timer pada mikrokontroler output mikrokontroler

30 2.00 0.24 8.33 8 1.92

35 1.71 0.24 7.14 7 1.68

40 1.50 0.24 6.25 6 1.44

45 1.33 0.24 5.56 5 1.2

50 1.20 0.24 5.00 5 1.2

55 1.09 0.24 4.55 4 0.96

60 1.00 0.24 4.17 4 0.96

65 0.92 0.24 3.85 3 0.72

70 0.86 0.24 3.57 3 0.72

75 0.80 0.24 3.33 3 0.72

80 0.75 0.24 3.13 3 0.72

85 0.71 0.24 2.94 2 0.48

90 0.67 0.24 2.78 2 0.48

95 0.63 0.24 2.63 2 0.48

100 0.60 0.24 2.50 2 0.48

105 0.57 0.24 2.38 2 0.48

(55)

BPM

Periode (detik) (60/BPM)

Timer 240 mili

detik

PERKALIAN Periode /

Timer

PERKALIAN pada mikrokontroler

PERIODE output mikrokontroler

130 0.46 0.24 1.92 1 0.24

135 0.44 0.24 1.85 1 0.24

140 0.43 0.24 1.79 1 0.24

145 0.41 0.24 1.72 1 0.24

150 0.40 0.24 1.67 1 0.24

155 0.39 0.24 1.61 1 0.24

160 0.38 0.24 1.56 1 0.24

165 0.36 0.24 1.52 1 0.24

170 0.35 0.24 1.47 1 0.24

175 0.34 0.24 1.43 1 0.24

180 0.33 0.24 1.39 1 0.24

185 0.32 0.24 1.35 1 0.24

190 0.32 0.24 1.32 1 0.24

195 0.31 0.24 1.28 1 0.24

200 0.30 0.24 1.25 1 0.24

(56)

3.2.5 Timer

Timer atau pewaktu merupakan inti dari program metronom ini.Mode

yang digunakan untuk program metronom ini adalah mode 1. Mode 1 dipilih karena

mempunyai tundaan maksimum 65536 µd. Tundaan yang dipergunakan untuk program

ini adalah bervariasi sesuai dengan yang diinginkan oleh pengguna. Karena tundaan pada

mikrokontroler terbatas yaitu sebesar 65536 µd,apabila timer untuk pengulangan adalah

sebesar 240000 µd,maka pada timer diatur tundaan sebesar 40000 µd sehingga akan

terjadi pengulangan sebesar 6 kali agar mencapai tundaan 240000 µd,jika tundaan sudah

mencapai 240000 µd maka yang terjadi selanjutnya adalah mengulangi hingga mencapai

tundaan yang diinginkan sesuai dengan perkalian pada tabel 3.2

Inti dari timer adalah

overflow flag

(flag limpahan).Limpahan terjadi saat

transisi dari FFFFh ke 0000h untuk demikian agar limpahan terjadi setiap 40000 µd

register

timer diisi dengan konstanta -20000,sehingga TL0 dan TH0 masing – masing

menyimpan 20000 µd yaitu untuk LOW 20000 µd dan HIGH 20000 µd,kemudian

menunggu hingga di-nol-kan secara manual begitu juga dengan timer 0 dimatikan secara

manual proses ini akan berulan hingga 6 kali kemudian akan diulang lagi sesuai dengan

yang diinginkan seperti pada tabel 3.2 Pada perancangan ini timer akan hidup jika tombol

(57)
(58)

3.2.6 Bunyikan speaker

Pada bagian ini berfungsi untuk membuat speaker bekerja.Speaker bekerja

apabila diberi sumber tegangan,dalam hal ini speaker yang digunakan adalah buzzer.Jika

pada saat sebelum bekerja port 1.7 bernilai “1” maka apabila buzzer dibunyikan maka

port 1.7 harus bernilai “0” sehingga yang terjadi adalah mengkomplemenkan port 1.7.

3.2.7

Reset

Gambar 3.9 menunjukkan konfigurasi tombol reset. Reset akan aktif bila pin RST

diberikan logika

high

selama 2 µs.

C2 30pF C4 30pF SW5 RESET 4 2 5V R23 10K 5V 5V U3 AT89S51 9 18 19 20 29 30 31 40 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 RST XTAL2 XTAL1 GN D PSEN ALE/PROG EA/VPP VC C P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 Y 1 12MHz C3 10uF

Gambar 3.12 Konfigurasi tombol reset

(59)

3.3Display

Display

atau tampilan menggunakan 3 buah

seven segment

.Setiap

seven

segment

terdiri atas 7 buah dioda led yang disusun membentuk angka.8.Arus yang

mengalir pada masing –masing led maksimal adalah 10 mA sehingga dibutuhkan resistor

untuk membatasi arus yang mengalir pada masing-masing led tersebut.

Besarnya nilai resistor dihitungh menggunakan rumus seperti dibawah:

=

=

=

500

10

5

R

mA

R

I

Vcc

R

……….(2.2)

Dengan:

R = Resistor (ohm)

Vcc = Sumber Tegangan (Volt)

I = Arus yang mengalir (Ampere)

Supaya nilai resistor tersebut sesuai dengan yang ada dipasaran maka nilai

resistor tersebut diganti dengan 470 ohm.

O

a

b

c

d

e

f

g

U2

1

2

10

4

5

6

7

9

8

e

d

g

c

dot

b

a

f

VC

C

R6 500

R7 500

R4 500

R5 500

R8 500

R3 500

R2 500

(60)

3.4 Volume

Pengaturan volume suara adalah sama dengan pengaturan amplitudo.

Pengaturan amplitudo suara yang akan dihasilkan oleh

buzzer

menggunakan rangkaian

pembagi tegangan..

Besarnya tegangan pada buzzer adalah 6 – 9 volt.Rangkaian pembagi

tegangan dapat dibangun dari sebuah potensiometer seperti gambar 3.11.Untuk mencari

besarnya nilai resistor 24 terlebih dahulu ditentukan nilai potensiometer yaitu sebesar 10k

ohm dan tegangan sumber sebesar 9 volt sehingga :

Kohm

R

Kohm

R

Rpot

R

Rpot

R

R

R

Rpot

R

R

Rpot

R

R

Rpot

R

R

Rpot

R

R

Rpot

R

Vsumber

Vbuzzer

100

24

50

2

24

.

2

24

.

2

24

.

2

24

.

3

24

.

2

.

2

24

3

24

2

24

3

24

6

24

9

24

24

9

6

24

24

=

×

=

=

=

+

=

+

=

+

=

+

=

+

=

……….(2.3)

VCC LS1 BUZZER 1 2 R1 POT 10K 1 3 2 R24 100K
(61)

BAB IV

HASIL PENGAMATAN DAN PEMBAHASAN

Bab ini membahas perihal pengamatan atas rancangan metronom berbasis

mikrokontroler AT89S51. Pengujian ini berupa berupa pengujian perioda yang dihasilkan

oleh perangkat keras.Pengujian, pengamatan dan pengambilan data dengan menggunakan

osiloskop digital.Pengujian periode digunakan sebab hal ini yang akan menggatur

banyaknya ketukan tiap menitnya.

4.1 Data Hasil Pengamatan

Pengamatan akan dilakukan nilai input BPM setiap kelipatan 5 mulai 30 BPM

sampai dengan 200 BPM dan mengamati hasil BPM yang terjadi serta periode sinyal

dengan oscilloscope.Masing – masing sinyal diamati sebanyak 3 kali.Hasil pengamatan

seperti terdapat pada tabel 4.1

Tabel 4.1 Hasil pengamatan

BPM

Periode (detik)

Periode (detik)

BPM

Galat(%)

yang diinginkan

perhitungan

Rerata Pengamatan

yang terjadi

30 2.00

1.91 31.41

4.50

35 1.71

1.69 35.50

1.42

40 1.50

1.45 41.38

3.33

45 1.33

1.2 50.00

10.00

50 1.20

1.2 50.00

0.00

55 1.09

0.97 61.86

11.08

60 1.00

0.97 61.86

3.00

65 0.92

0.72 83.33

22.00

70 0.86

0.72 83.33

16.00

75 0.80

0.72 83.33

10.00

80 0.75

0.72 83.33

4.00

85 0.71

0.48 125

32.00

90 0.67

0.48 125

28.00

95 0.63

0.48 125

24.00

100 0.60

0.48 125

20.00

105 0.57

0.48 125

16.00

110 0.55

0.48 125

12.00

115 0.52

0.48 125

8.00

(62)

Lanjutan Tabel 4.1 Hasil pengamatan

BPM

Periode (detik)

Periode (detik)

BPM

Galat(%)

yang diinginkan

perhitungan

Rerata Pengamatan

yang terjadi

125 0.48

0.48 125

0.00

130 0.46

0.24 250

48.00

135 0.44

0.24 250

46.00

140 0.43

0.24 250

44.00

145 0.41

0.24 250

42.00

150 0.40

0.24 250

40.00

155 0.39

0.24 250

38.00

160 0.38

0.24 250

36.00

165 0.36

0.24 250

34.00

170 0.35

0.24 250

32.00

175 0.34

0.24 250

30.00

180 0.33

0.24 250

28.00

185 0.32

0.24 250

26.00

190 0.32

0.24 250

24.00

195 0.31

0.24 250

22.00

200 0.30

0.24 250

20.00

Dari tabel 4.1 terjadi kesalahan (

error

) pada semua data hal ini disebabkan karena

ketidakmampuan mikrokontroler dalam menjalankan sub program pembagian.Sub

program pembagian digunakan untuk mencari faktor perkalian.Kesalahan ini dapat

dinalisis seperti pada table 4.2,nilai factor perkalian dihitung menggunakan persamaan

2.1.

Tabel 4.2 Perbandingan faktor perkalian

BPM Faktor Perkalian Faktor Perkalian BPM

Berdasar Perhitungan yang digunakan mikrokontroler yang terjadi

30 8.33 8 31.25

35 7.14 7 35.71

40 6.25 6 41.67

45 5.56 5 50.00

50 5 5 50.00

(63)

Lanjutan Tabel 4.2 Perbandingan faktor perkalian

BPM Faktor Perkalian Faktor Perkalian BPM

Berdasar Perhitungan yang digunakan mikrokontroler yang terjadi

65 3.85 3 83.33

70 3.57 3 83.33

75 3.33 3 83.33

80 3.13 3 83.33

85 2.94 2 125

90 2.78 2 125

95 2.63 2 125

100 2.5 2 125

105 2.38 2 125

110 2.27 2 125

115 2.17 2 125

120 2.08 2 125

125 2 2 125

135 1.85 1 250

140 1.79 1 250

145 1.72 1 250

150 1.67 1 250

155 1.61 1 250

160 1.56 1 250

165 1.52 1 250

170 1.47 1 250

175 1.43 1 250

180 1.39 1 250

185 1.35 1 250

190 1.32 1 250

195 1.28 1 250

200 1.25 1 250

Pada table 4.2 ,hasil pembagian pada mikrokontroler hanya menampilkan angka

di depan koma saja atau dapat dikatakan sisa pembagian tersebut tidak

ditampilkan.Karena tidak ditampilkannya angka sisa pembagian maka faktor perkalian

(64)

Berdasar atas hasil pengamatan seperti pada tabel 4.1, maka hasil ketukan tiap

menit yang masih bisa dikategorikan sebagai tempo andante (60BPM) adalah pada input

sebesar 60 BPM.Sedangkan untuk tempo moderato (66 - 126 BPM) pada input 65 BPM –

80 BPM.Kemudian tempo allegro (120BPM) diwakili oleh input 120 BPM.

Dari tabel 4.1 dapat dibuat grafik

error

seperti pada gambar 4.1. Dari gambar 4.1

terlihat bahwa

error

periode terjadi paling besar pada 130 BPM.

Error

ini terjadi karena

faktor perkalian yang tidak tepat .Periode yang tidak tepat inilah yang menyebabkan

perbedaan jumlah ketukan tiap menit dengan yang diinginkan.

0.00 10.00 20.00 30.00 40.00 50.00 60.00

0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200

BPM

E

R

RO

R (

%

)

Gambar 4.1 Grafik error

Dengan kesalahan (error) yang terjadi seperti pada gambar 4.1 maka untuk

memperbaikinya dipakai look up table.Kesalahan pada sub program pembagian untuk

mendapatkan faktor perkalian menghasilkan kesalahan yang menyebabkan hasil ketukan

tiap menit berbeda dengan yang diinginkan.Untuk memperbaiki kesalahan tersebut sub

program pembagian diganti dengan sub program look up table sehingga dapat

menghasilkan ketukan tiap menit yang sesuai.Sebagai contoh jika ketukan yang

diinginkan adalah sebesar 30 ketukan tiap menit maka dengan melihat tabel pada

(65)

4.1.1 Bentuk Gelombang Keluaran

Bentuk gelombang keluaran pada perangkat keras ini berupa gelombang

kotak.Gelombang keluaran ini berasal dari timer mikrokontroler,mikrokontroler akan

mengeluarkan sinyal

high

atau

low

,sinyal

high

inilah yang akan menyalakan

buzzer

.Besarnya periode dipengaruhi oleh banyaknya ketukan tiap menit(BPM) yang

diinginkan oleh pengguna.

Gambar 4.2 merupakan gambar periode sebesar 1.9 detik,periode ini

dihasilkan oleh perangkat keras untuk ketukan 30BPM.

Gambar 4.2 Bentuk gelombang output sebesar 1,9 detik.

Gambar 4.3 menyatakan bentuk gelombang untuk periode sebesar 1,7

detik.Periode ini terjadi untuk banyaknya ketukan 35 BPM,periode ini dihasilkan dari

(66)

Gambar 4.3 Bentuk gelombang output sebesar 1,7 detik.

Gambar 4.4 memperlihatkan bentuk gelombang sebesar 1,4 detik,yang dihasilkan

oleh banyaknya ketukan sebesar 40 BPM, periode ini dihasilkan dari pengulangan timer

sebanyak 6 kali dari 6,25 yang diinginkan.

(67)

Gambar 4.5 Bentuk gelombang output sebesar 1,2 detik.

Gambar 4.5 memperlihatkan periode sebesar 1,2 detik,periode ini dihasilkan oleh

45 BPM sampai dengan 50 BPM,periode yang dihasilkan dari pengulangan 5 dari 5,56

dan 5 kali pengulangan.

Gambar 4.6 Bentuk gelombang output sebesar 0,960 detik.

Gambar 4.6 dihasilkan oleh banyaknya ketukan sebesar 55 BPM dan 60

BPM,periode merupakan hasil pengulangan dari timer sebanyak 4 kali dari 4,55 dan 4,17

(68)

Gambar 4.7 adalah gambar dari periode sebesar 0,72 detik yang dihasilkan oleh

pengulangan timer sebanyak 3 kali dari yang diinginkan yaitu sebesar 3,13 sampai 3,85,

periode ini dihasilkan oleh 65 BPM sampai 80 BPM.

Gambar 4.7 Bentuk gelombang output sebesar 0,720 detik.

Gambar 4.8 adalah gambar dari periode sebesar 0,48 detik pada saat banyaknya

ketukan 85 BPM sampai 125 BPM,periode ini dihasilkan oleh pengulangan dari timer

(69)

Gambar 4.9 merupakan gambar periode yang dihasilkan oleh ketukan sebanyak

130 BPM sampai 199 BPM,banyaknya

Gambar

Tabel 2.1 Banyaknya ketukan yang biasa digunakan pada komposisi musik.(1)
Gambar 2.6 Menghubungkan kristal sumber clock
Gambar 3.3 Letak tombol pada mikrokontroler.
Tabel 3.2 Tabel perhitungan nilai perkalian.
+7

Referensi

Dokumen terkait

Pada kelompok status ekonomi rendah dengan kondisi rumah sehat yang sama, terlihat persentase ISPA dan Diare lebih tinggi dibandingkan kelompok ekonomi tinggi.. Peran status

Selanjutnya, Pasal 6 memberikan pengecualian berkenaan dengan wewenang Pengadilan HAM, sebagai berikut: “Pengadilan HAM tidak berwenang memeriksa dan memutus perkara

Berdasarkan hasil penelitian dan setelah dilakukan tabulasi data maka diperoleh nilai indeks kepuasan masyarakat per unsur pelayanan pada Puskesmas Kalicacing Kota

Prinsip dasar sistem PLH PV-Diesel ini adalah dengan mengoperasikan sumber energi dari tenaga surya untuk memenuhi kebutuhan beban dasar melalui penggunaan sistem

setelah kami pelajari dengan saksama Dokumen PRAKUALIFIKASI tersebut, dengan ini kami mengajukan Dokumen Administrasi Kualifikasi dan Dokumen Teknis Kualifikasi untuk pengadaan

Dalam hal Pelaksanaan Kerja Praktek penulis di berikan Intruksi atau arahan terlebih dahulu sebelum melaksanakan Tugas – Tugas yang akan di berikan penulis adalah sistem

133 pendapatan akan meningkatkan daya beli riii masyarakat sehingga permintaan terhadap barang dan jasa juga akan mengalami peningkatan. Peningkatan permintaan barang

efektivitas peroksidase yang diperoleh dari kulit batang ubi kayu dan menentukan persentase penurunan kadar fenol dengan penambahan peroksidase dari kulit batang ubi kayu