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

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

  2007

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

  SANATA DHARMA UNIVERSITY YOGYAKARTA 2007

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

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

pada penulis.

  

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.

  Kata kunci: metronom ,aplikasi mikrokontroler AT 89S51

  

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 .

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 maupun material, kasih dan kesabaran yang tak pernah putus sehingga penulis dapat menyelesaikan tugas akhir ini.

  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 Penulis

  

DAFTAR ISI

HALAMAN JUDUL ...................................................................... i HALAMAN PERSETUJUAN PEMBIMBING............................. iii HALAMAN PENGESAHAN ........................................................ iv

  ................................................ v PERNYATAAN KEASLIAN KARYA

  ............................................................. vi MOTO DAN PERSEMBAHAN

  INTISARI ...................................................................................................... vii ................................................................................................. viii

  ABSTRACT ............................................................................... ix

  KATA PENGANTAR 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

  1.6 Sistematika Penulisan .......................................................................... 3

  BAB II. DASAR TEORI ........................................................................... 4 2.1 Komponen Penyusun Metronom ...................................................

  27

  40

  40 3.3 Display ......................................................................................

  3.2.6 Bunyikan Speaker ........................................................... 40 3.2.7 Reset ................................................................................

  37

  34 3.2.5 Timer ...............................................................................

  3.2.4.1 Penjumlah Cacah Tombol................................ 34 3.2.4.2 Perkalian ..........................................................

  3.2.4 Pengatur Multiplier ......................................................... 33

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

  3.2.2 Cek Tombol..................................................................... 29

  26 3.2.1 Inisialisasi........................................................................

  5

  25 3.2 Mikrokontroler ................................................................................

  BAB III PERANCANGAN ............................................................ 24 3.1 Tombol ............................................................................................

  2.1.3 Pembagi Tegangan................................................................ 23

  2.1.2 Seven Segment...................................................................... 22

  20

  19

2.1.1.4 Struktur Interupsi ...................................................

  2.1.1.2 Set Instruksi Mikrokontroler AT 89S51 ................ 12

2.1.1.3 Pewaktu CPU .........................................................

  6

  2.1.1 Mikrokontroler AT 89S51 .................................................... 5

2.1.1.1 Organisasi Memori.................................................

  

3.4 Volume ...................................................................................... 42

  BAB IV. HASIL PENGAMATAN DAN PEMBAHASAN.......... 24

  

4.1 Data Hasil Pengasmatan ................................................................ 24

  4.1.1 Bentuk Gelombang Keluaran.......................................... 27 ............................................................... 32 BAB V. Kesimpulan dan Saran 5.1 Kesimpulan ....................................................................................

  32 5.2 Saran ......................................................................................

  32 DAFTAR PUSTAKA LAMPIRAN

  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. Table 4.3 Duty Cycle tiap periode…………………………………….. 52

  

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

  

22. Gambar3.13 Seven Segment dan resistor pembatas arus ................................... 41

  

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

  

32. Gambar 4.9 Bentuk gelombang output sebesar 0,240 detik .............................. 51

  

DAFTAR LAMPIRAN

  A. Gambar Rangkaian ...................................................................................... L1

  B. Listing program Mikrokontroler AT89S51................................................. L2

  C. Data Hasil Pengamatan .............................................................................. L6

  D. Gambar Metronom Berbasis Mikrokontroler AT 89S51 ............................ L7

  E. Data Sheets .................................................................................................. L8

C.1 AT89S51............................................................................................... L8

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.

  2. Menampilkan banyaknya ketukan tiap menit melalui penampil seven segmen.

  3. Memperdengarkan banyaknya ketukan tiap menit melalui buzzer.

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.

  2. Menggunakan tombol start untuk memulai membunyikan buzzer.

  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. Bab V berisi tentang kesimpulan dan saran.

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 (beats 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 allegram ent e quick er 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:

60 T (det ik ) = ……………………………………………………(2.1)

  BPM 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 namun hanya membutuhkan ruangan yang kecil serta dapat diproduksi secara massal, sehingga harga mikrokontroller tersebut murah. Tidak

  

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

seperti ditunjukkan pada gambar 2.2.

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 RAM internal pada Mikrokontroller ATMEL ATMEL AT89S51 terdiri atas: 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.

Gambar 2.3 Peta memori RAM Internal

  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.

Gambar 2.4 Peta memori SFR ATMEL AT89S51 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 1 terletak dialamat 8BH untuk TL1 dan 8DH untuk TH1. 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 dilakukan. 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 RAM Internal maupun external dapat diakses secara tidak langsung.

  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 akumulator.

  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 disimpan di register B dan di akumulator.

Tabel 2.2 Daftar Instruksi Aritmetika ATMEL AT89S51

  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]

  4 B=mod[A/B] DA A Decimal adjust

  1

  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 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 ruang memori external menggunakan data pointer (DPTR) sebesar

  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 antara ACC dan <byte> 2

  byte

  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 MOV C,bit C=bit

  1

  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 RETI Kembali dari interupsi

  2

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

terpasang adalah 40 pF ± 10pF.

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 dipergunakan sebagai bit aktivasi interupsi port serial, sehingga bila

  

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

  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 bersamaan maka interupsi dengan prioritas yang tertinggi yang

akan dieksekusi terlebih dahulu. Namun jika muncul dua interupsi 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