TUGAS AKHIR - Kalkulator berbasis mikrokontroler - USD Repository
Kalkulator Berbasis Mikrokontroler TUGAS AKHIR
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro Disusun oleh:
YAKOBUS PRIAMBODO NIM: 035114032 PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA
Calculator Based on Microcontroller
FINAL PROJECT
Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Teknik Degree
In Electrical Engineering Study Program By:
YAKOBUS PRIAMBODO
Student Number: 035114032
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTMENT
SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2007
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
Kupersembahkan tugas akhir ini kepada kedua orang tuaku dan diriku sendiri
“ plan your work and work your plan ”
KALKULATOR BERBASIS MIKROKONTROLER
Yakobus Priambodo
035114032
INTISARI
Kalkulator adalah alat untuk mempermudah dan mempercepat proses perhitungan. Dewasa ini kalkukator sudah mendukung perhitungan bilangan desimal, heksadesimal dan biner tetapi terbatas pada operasi perkalian, pembagian, penambahan dan pengurangan. Untuk pengembangan teknologi dibuat kalkulator berbasis mikrokontroler yang dapat mendukung perhitungan bilangan heksadesimal, desimal, biner dan BCD untuk operasi kuadrat, akar kuadrat, perkalian, pembagian, penjumlahan.
Unit masukan dari kalkulator adalah matriks keypad yang terdiri dari tombol- tombol angka dan tombol-tombol operasi. Masukan ini akan diproses oleh unit pengolah data. Pada bagian ini data masukan akan disimpan untuk kemudian dihitung sesuai dengan operasi yang dipilih dan hasilnya akan ditampilkan. Algoritma perhitungan yang digunakan adalah algoritma perhitungan dalam bentuk bit. Pengolah data yang digunakan adalah mikrokontroler AT89S52 dan sebagai unit penampilnya adalah LCD.
Kalkulator ini sudah dicoba dan dapat bekerja dengan baik. Kemampuan maksimum kalkulator adalah 15 angka. Hasil perhitungan yang ditampilkan pada LCD telah sesuai dengan hasil perhitungan teori dan kalkulator pembanding.
Kata kunci: kalkulator, aplikasi mikrokontroler
CALCULATOR BASED ON MICROCONTROLLER
Yakobus Priambodo
035114032
ABSTRACT
Calculator is a instrument to make easier and to speed up the calculation process. At the present time the calculator support the hexadecimal, decimal and binary code calculation but limited in multiplication, division, addition and subtraction operation. To improve technology a calculator based on microcontroller which can support the hexadecimal, decimal, binary and BCD code calculation for the square, square root, multiplication, division, addition and subtraction operation.
The calculator input unit is a keypad which is consist of digit and operation buttons. This input will be proceed by the data process unit. In this part the input data will be saved and then calculate according to operator input and the result will be displayed. The calculation algorithm which is use called bit form calculation algorithm. The data process unit is an AT89S52 microcontroller and LCD as a display unit.
This calculator has been tested and it works well. A calculator maximum capacity is 15 digits. The calculation result which displayed on the LCD is appropriate with the theory calculation and another calculator result.
Keywords: calculator, microcontroller application
KATA PENGANTAR
Kuliah selesai, satu lagi langkah menuju tujuan hidup terlampaui.Kemungkinan semakin luas. Satu lagi karya Tuhan tercipta melalui tangan – tangan ulet dan jiwa pejuang.
Puji syukur dan terima kasih penulis panjatkan kepada Allah Bapa atas segala kasih karunia-Nya sehingga tugas akhir dengan judul “Kalkulator Berbasis
Mikrokontroler” ini dapat diselesaikan dengan baik. Tugas akhir ini merupakan
salah satu syarat untuk memperoleh gelar Sarjana pada program studi Teknik Elektro Universitas Sanata Dharma Yogyakarta.
Penulis ingin menghargai mereka yang telah memberikan sumbangsih baik secara langsung maupun tidak, sehingga laporan ini dapat diselesaikan.
1. Berkat yang melimpah dari Tuhan.
2. Kedua orang tuaku tercinta Ignatius Sukiman dan Yuliana Sudiyati atas segala doa dan aliran dana segar tiap bulannya.
3. Bapak Martanto, S.T, M.T dosen pembimbing I yang telah banyak meluangkan waktu untuk memberikan bimbingan dan saran. Penulis selalu ingat pesan beliau ”ambil data sebanyak-sebanyaknya !”.
4. Bapak Ir. Tjendro dosen pembimbing II yang selalu rela diganggu untuk bimbingan walupun bukan jadwal bimbingannya.
5. Mas Mardi, mas Sur dan mas Ucup atas perhatiannya dikala pusing dengan TA.
6. Rekan-rekan lulusan Teknik Elektro USD, Merryana, S.T, Suryo, S.T dan
7. Rekan-rekan TE ’03 khususnya Inggit Suminggit (alias Nobita), Denis si batosai, Jo imut dan Om Rony makasih penghiburan dan solusinya.
8. Teman seperjuangan, Gigih alias Amoh yang selalu bimbingan bersama, makasih atas tempat singgah untuk tidur sehabis bimbingan dan kepada adiknya Veda (TI 05), makasih bantuannya buat box kalkulator.
9. Kepada Andreas Marso Wibowo, S.T the hobbit and my annoying brother makasih atas ”sindirannya” yang membuat semangat menyelesaikan skripsi.
10. Kepada Thomas Ricky SeptifAnus, S.T yang selalu heboh dalam memberikan saran. Pokoke Ngangkat Tenan !!.
11. Teman-teman di Jakarta, Jublek, Puput, Dewi, Asri dan alm. Tri “Gembul” Tuhan memberkati kalian semua. Untuk Ajenk “Tembem” makasih doa dan pertanyaan tiap hari “kapan pulangnya?”. Tunggulah aku di Jakarta.
12. Semua orang yang telah membantu dalam penyusunan karya tulis ini.
Penulis mengakui bahwa karya tulis ini masih jauh dari sempurna. Segala kritik dan saran yang membangun akan penulis terima dengan senang hati.
Yogyakarta, Oktober 2007 Penulis
DAFTAR ISI
Halaman Judul .........................................................................................................1
8
8
7
6
5
5
4
4
3
3
2
2
1
2.6 Algoritma Perkalian …………………………………………………. i iii iv v vi vii viii ix xi xvi xix
Lembar Pengesahan oleh Pembimbing ................................................................... Lembar Pengesahan oleh Penguji ....... ................................................................... Lembar Pernyataan Keaslian Karya ........................................................................ Halaman Persembahan dan Motto Hidup ...............................................................
2.5 Algoritma Pengurangan ..................…………………………………..
2.3 Kode BCD .............…………………………………………………… 2.4 Algoritma Penambahan ...................…………………………………..
2.2 Kode Heksadesimal …...……………………………………………...
2.1 Kode Biner ............................................................................................
BAB II DASAR TEORI ........................................................................................
1.7 Sistematika Penulisan ...........................................................................
1.6 Metodologi Penelitian ...……………………………………………....
1.5 Perumusan Masalah ..............................................................................
1.4 Batasan Masalah ...................................................................................
1.3 Manfaat .................................................................................................
1.2 Tujuan ...................................................................................................
1.1 Latar Belakang Masalah ........................................................................
BAB I PENDAHULUAN .....................................................................................
INTISARI ................................................................................................................ ABSTRACT ............................................................................................................ Kata Pengantar ........................................................................................................ Daftar Isi ................................................................................................................. Daftar Gambar......................................................................................................... Daftar Tabel ............................................................................................................
8
2.7 Algoritma Pembagian .......................…………………………………
9 2.8 Algoritma Kuadrat ................................................................................
11 2.9 Algoritma Akar Kuadrat ........………………………………………...
11
2.10 Bilangan 2’S Komplemen ..............…………………………………
12 2.11 Algoritma Bilangan Bertanda ............................................................
12 2.12 Konversi Biner dan BCD ke Heksadesimal........................................
13 2.13 Konversi Desimal ke Heksadesimal ..................................................
13 2.14 Thyristor .............................................................................................
14 2.15 Matriks Keypad ..................................................................................
15 2.16 LCD ....................................................................................................
16 2.17 Mikrokontroler AT89S52 ..................................................................
17 2.17.1 Konfigurasi Pin Mikrokontroler AT89S52.............................
17 2.17.2 RAM Internal .........................................................................
19 2.17.3 Flash PEROM ........................................................................
20 2.17.4 PSW (Program Status Word) .................................................
20 2.17.5 Rangkaian Osilator Mikrokontroler .......................................
21 2.17.6 Rangkaian Reset Mikrokontroler ...........................................
22 BAB III PERANCANGAN ALAT ........................................................................
23 3.1 Bentuk Fisik Kalkulator ...........……………………………………….
24 3.2 Rangkaian Matriks Keypad ...................................................................
24 3.3 Rangkaian LCD ..................................………………………………..
27 3.4 Rangkaian Mikrokontroler AT89S52 ...................................................
27 3.4.1 Rangkaian Osilator Mikrokontroler AT89S52 ............................
28 3.4.2 Rangkaian Reset Mikrokontroler AT89S52 ................................
28 3.5 Rangkaian Pengunci ON/OFF ..............................................................
29 3.6 Pemograman Mikrokontroler ................................................................
31 3.6.1 Subrutin Mode ..............................................................................
32 3.6.2 Subrutin Masukan Data 1 .............................................................
33
3.6.3 Subrutin Operator .........................................................................
55
44
45
46
47
48
49
50
51
52
53
55
41
57
59
62
64
67
68
68
69
71
72
73
42
38
3.6.4 Subrutin Masukan Data 2 .............................................................
3.6.16 Algoritma Tampilan Bilangan Negatif .....................................
3.6.5 Subrutin Hasil ..............................................................................
3.6.6 Subrutin Menampilkan Karakter ke LCD ....................................
3.6.7 Subrutin Penambahan ..................................................................
3.6.8 Subrutin Pengurangan ..................................................................
3.6.9 Subrutin Perkalian ........................................................................
3.6.10 Subrutin Pembagian ..................................................................
3.6.11 Subrutin Kuadrat .......................................................................
3.6.12 Subrutin Akar Kuadrat ..............................................................
3.6.13 Konversi Biner ke Heksadesimal ..............................................
3.6.14 Konversi BCD ke Heksadeimal ................................................
3.6.15 Konversi Desimal ke Heksadesimal .........................................
BAB IV HASIL DAN PEMBAHASAN …………...……………………………
36
4.1 Bentuk Fisik Kalkulator ……………………………………………… 4.2 Penggunaan Alat ……………………………………………………...
4.2.1 Pemilihan MODE Kalkulator …………………………………..
4.2.2 Tampilan Bilangan Negatif ……………………………………..
4.2.3 Tampilan Sisa Perhitungan ……………………………………..
4.2.4 Tampilan Pesan ERROR! ……………………………………… 4.3 Data Pengamatan ……………………………………………………...
4.3.1 Konversi Heksadesimal ke Biner …………..…………………...
4.3.2 Konversi Biner ke Heksadesimal ……………………………….
4.3.3 Konversi Heksadesimal ke BCD ...……………………………...
4.3.4 Konversi BCD ke Heksadesimal …………………………...…...
4.3.5 Konversi Heksadesimal ke Desimal ……………………………
4.3.6 Konversi Desimal ke Heksadesimal ……………………………
74
4.3.7 Operasi Kuadrat ………………………………………………...
87
78
79
81
81
82
83
84
85
86
86
88
76
89
89
90
91
92
93
93
95
96
97
99
77
76
4.3.7.1 Operasi Kuadrat Mode Heksadesimal ……………...…...
4.3.9.2 Operasi Pembagian Mode Biner ………………………..
4.3.7.2 Operasi Kuadrat Mode Biner ……………………..…….
4.3.7.3 Operasi Kuadrat Mode Desimal ………………………...
4.3.7.4 Operasi Kuadrat Mode BCD …………………………....
4.3.8 Operasi Perkalian ……………………………………………….
4.3.8.1 Operasi Perkalian Mode Heksadesimal ………………...
4.3.8.2 Operasi Perkalian Mode Biner ………………………….
4.3.8.3 Operasi Perkalian Mode Desimal …………………........
4.3.8.4 Operasi Perkalian Mode BCD ………………………….
4.3.9 Operasi Pembagian ……………………………………………..
4.3.9.1 Operasi Pembagian Mode Heksadesimal ……………….
4.3.9.3 Operasi Pembagian Mode Desimal ……………………..
4.3.12.2 Operasi Akar Kuadrat Mode Biner ………………........
4.3.9.4 Operasi Pembagian Mode BCD ………………………...
4.3.10 Operasi Penambahan …………………………………………..
4.3.10.1 Operasi Penambahan Mode Heksadesimal ………........
4.3.10.2 Operasi Penambahan Mode Biner …………………..…
4.3.10.3 Operasi Penambahan Mode Desimal ……………….… 4.3.10.4 Operasi Penambahan Mode BCD ……………………..
4.3.11 Operasi Pengurangan ………………………………………….
4.3.11.1 Operasi Pengurangan Mode Heksadesimal …………....
4.3.11.2 Operasi Pengurangan Mode Biner …………………….
4.3.11.3 Operasi Pengurangan Mode Desimal ………………….
4.3.11.4 Operasi Pengurangan Mode BCD ……………………..
4.3.12 Operasi Akar Kuadrat ………………………………………… 4.3.12.1 Operasi Akar Kuadrat Mode Heksadesimal …………...
99 100
4.3.12.3 Operasi Akar Kuadrat Mode Desimal ………………… 101
4.3.12.4 Operasi Akar Kuadrat Mode BCD ……………………. 102
4.3.13 Perhitungan Berulang Kali ……………………………………. 103
4.3.14 Konversi Berulang Kali ………………………………………. 104
BAB V KESIMPULAN DAN SARAN …………………………………………. 106
5.1 Kesimpulan …………………………………………………………... 106
5.2 Saran …………………………………………………………………. 106
DAFTAR PUSTAKA ............................................................................................. 107 LAMPIRAN ............................................................................................................ 108
DAFTAR GAMBAR
25 Gambar 3.4. Konfigurasi Mikrokontroler, Keypad dan LCD …...……...
35 Gambar 3.9. Flowchart Subrutin Operator …….......................................
34 Gambar 3.8. Flowchart Subrutin Masukan Data 1 (lanjutan) …...……...
33 Gambar 3.8. Flowchart Subrutin Masukan Data 1 (lanjutan) .………….
32 Gambar 3.8. Flowchart Subrutin Masukan Data 1 …………………….
31 Gambar 3.7. Flowchart Subrutin Mode …………………………….......
29 Gambar 3.6. Flowchart Program Utama …………………………..........
28 Gambar 3.5. Rangkaian Pengunci ON/OFF ……………………............
24 Gambar 3.3. Konfigurasi Matriks Keypad ………..…………………….
Halaman
23 Gambar 3.2. Perancangan Bentuk Fisik Kalkulator …...………………..
22 Gambar 3.1. Diagram Blok Kalkulator Berbasis Mikrokontroler ...……
21 Gambar 2.6. Rangkaian Reset Mikrokontroler ……...………………….
19 Gambar 2.5. Rangkaian Osilator Mikrokontroler ….…………………...
17 Gambar 2.4. Lokasi RAM Internal …………………...……..………….
15 Gambar 2.3. Konfigurasi Pin Mikrokontroler AT89S52 ...……………..
14 Gambar 2.2. Rangkaian Matriks Keypad ……………...….…………….
Gambar 2.1. Simbol Thyristor ………………. ………………………37
Gambar 3.10. Flowchart Subrutin Masukan Data 2 ……….....................49 Gambar 3.19. Konversi Biner ke Heksadesimal ……...………………...
58 Gambar 4.5. Tampilan data masukan kedua ……………………………
57 Gambar 4.4. Tampilan data masukan data pertama …………………….
56 Gambar 4.3. Tampilan awal setelah penekanan tombol ON ……………
55 Gambar 4.2. Bagian dalam kalkulator ………………………………….
53 Gambar 4.1. Bentuk fisik kalkulator ……...…………………………….
52 Gambar 3.22. Tampilan Bilangan Negatif ……………………………...
51 Gambar 3.21. Konversi Desimal ke Heksadesimal ...…...………………
50 Gambar 3.20. Konversi BCD ke Heksadesimal …………………..…….
48 Gambar 3.18. Subrutin Akar Kuadrat ………………………..................
38 Gambar 3.10. Flowchart Subrutin Masukan Data 2 (lanjutan) ................
47 Gambar 3.17. Subrutin Kuadrat ………………………….……………..
46 Gambar 3.16. Subrutin Pembagian …………………………….……….
45 Gambar 3.15. Subrutin Perkalian ……………………………………….
44 Gambar 3.14. Subrutin Pengurangan ……………………… ..................
43 Gambar 3.13. Subrutin Penambahan ……...…………………………….
42 Gambar 3.12. Subrutin Tampilan LCD ……………...………………….
41 Gambar 3.11. Flowchart Subrutin Hasil (lanjutan) ……………………..
40 Gambar 3.11. Flowchart Subrutin Hasil …………………….………….
39 Gambar 3.10. Flowchart Subrutin Masukan Data 2 (lanjutan) ……........
58
Gambar 4.6. Tampilan hasil perhitungan ……………………………….63 Gambar 4.15 Tampilan negatif sandi desimal ………………………….
66 Gambar 4.21 Tampilan pesan ERROR! ………………………………...
66 Gambar 4.20 Tampilan hasil dan sisa pembagian ………………………
65 Gambar 4.19 Tampilan data pembagi …………………………………..
65 Gambar 4.18 Tampilan simbol operator pembagian ……………………
64 Gambar 4.17 Data masukan pertama yang akan dibagi ………………...
64 Gambar 4.16 Tampilan negatif sandi BCD ………. ……………………
63 Gambar 4.14 Tampilan negatif sandi biner ……………………………..
59 Gambar 4.7. Tampilan data yang akan dikonversi …………………...…
63 Gambar 4.13. Tampilan negatif sandi heksedesimal …………………...
62 Gambar 4.12. Data positif yang akan diubah kedalam bentuk negatif …
61 Gambar 4.11. Hasil konversi ke dalam bentuk BCD ...…………………
61 Gambar 4.10. Hasil konversi ke dalam bentuk desimal ………………...
60 Gambar 4.9. Hasil konversi ke dalam sandi biner ……………………...
60 Gambar 4.8. Tampilan MODE ………………………………………….
67
DAFTAR TABEL
32 Tabel 3.4. Kode untuk masing-masing Operator ……………...………..
75 Tabel 4.8. Data operasi kuadrat bilangan heksadesimal ………………..
73 Tabel 4.6. Data konversi desimal ke heksadesimal …………...………..
72 Tabel 4.5. Data konversi heksadesimal ke desimal …………...………..
71 Tabel 4.4. Data konversi BCD ke desimal …………………..…………
70 Tabel 4.3. Data konversi desimal ke BCD ……...………………………
68 Tabel 4.2. Data konversi biner ke heksadesimal ………………………..
36 Tabel 4.1. Data konversi heksadesimal ke biner ………………………..
27 Tabel 3.3. Kode untuk masimg-masing Mode ………………………….
Halaman Tabel 2.1. Konversi biner dan heksadesimal ………….…….………….
26 Tabel 3.2. Konfigurasi pin LCD dan mikrokontroler ………..…………
21 Tabel 3.1. Kombinasi baris dan kolom matriks keypad ………………...
20 Tabel 2.6. Pemilihan bank memori …………………...………………...
18 Tabel 2.5. Bit-bit penyusum PSW ……………………...………………
16 Tabel 2.4. Fungsi pin Mikrokontroler AT89S52 ………...……………..
7 Tabel 2.3. Pin-pin LCD dan fungsinya ………...……………………….
6 Tabel 2.2. Pengodean desimal ke bentuk BCD ………………...……….
76
Tabel 4.9. Data operasi kuadrat bilangan biner ………………………...88 Tabel 4.20. Data operasi penambahan bilangan heksadesimal …………
98 Tabel 4.28. Data operasi akar kuadrat bilangan heksadesimal ................
96 Tabel 4.27. Data operasi pengurangan sandi BCD ……………………..
95 Tabel 4.26. Data operasi pengurangan bilangan desimal ……………….
94 Tabel 4.25. Data operasi pengurangan bilangan biner ………………….
92 Tabel 4.24. Data operasi pengurangan bilangan heksadesimal ………...
91 Tabel 4.23. Data operasi penambahan sandi BCD ……………………...
90 Tabel 4.22. Data operasi penambahan bilangan desimal ……………….
89 Tabel 4.21. Data operasi penambahan bilangan biner ………………….
87 Tabel 4.19. Data operasi pembagian sandi BCD ……………………….
77 Tabel 4.10. Data operasi kuadrat bilangan desimal …………………….
87 Tabel 4.18. Data operasi pembagian bilangan desimal …………………
86 Tabel 4.17. Data operasi pembagian bilangan biner ……………………
85 Tabel 4.16. Data operasi pembagian bilangan heksadesimal …………...
84 Tabel 4.15. Data operasi perkalian sandi BCD …………………………
82 Tabel 4.14. Data operasi perkalian bilangan desimal …………………..
81 Tabel 4.13. Data operasi perkalian bilangan biner ……………………...
79 Tabel 4.12. Data operasi perkalian bilangan heksadesimal …………….
78 Tabel 4.11.Data operasi kuadrat sandi BCD ……………………………
99 Tabel 4.29. Data operasi akar kuadrat bilangan biner ………………….. 100
Tabel 4.30. Data operasi akar kuadrat bilangan desimal ………………. 101Tabel 4.31. Data operasi akar kuadrat sandi BCD ……………………... 102Tabel 4.32. Data perhitungan berulang kali ……………………………. 103 Tabel 4.33. Data konversi berulang kali ………………………………..BAB I PENDAHULUAN
1.1 Latar Belakang Masalah
Kalkulator adalah alat untuk menghitung dari perhitungan sederhana seperti penjumlahan, pengurangan, perkalian dan pembagian sampai kepada kalkulator sains yang dapat menghitung rumus
. [1] Pada umumnya, kalkulator digunakan untuk perhitungan bilangan desimal.
Namun saat ini ada kalkulator yang dapat digunakan untuk perhitungan bilangan biner dan heksadesimal akan tetapi hanya pada operasi aritmatik perkalian, pembagian, penjumlahan dan pengurangan. Sedangkan untuk bilangan BCD belum ada kalkulator yang dapat digunakan untuk menghitung bilangan tersebut.
Bilangan biner merupakan sistem dasar yang dipakai dalam komputer dimana terdapat 2 angka dasar 0 dan 1 (yang disebut bit) dan setiap bit dikalikan dengan angka dasar 2 dan pangkat sesuai dengan urutannya. Bilangan BCD (Binary-Coded
Decimal ) atau lebih sering disebut kode BCD merupakan penggambaran 4 angka
bilangan biner, dimana setiap angka desimal diwakili oleh 4 bit. Pada bilangan heksadesimal dibutuhkan 16 angka dasar 0 – 9 dan A – F, yang setiap angka
Melihat kenyataan terbatasnya operasi aritmatik bilangan biner, heksadesimal dan BCD pada kalkulator, maka penulis membuat alat Kalkulator Berbasis
Mikrokontroler untuk perhitungan bilangan biner, desimal, heksadesimal dan BCD.
Alat ini dapat membantu pengguna dalam mempermudah dan mempercepat perhitungan bilangan biner, heksadesimal dan BCD.
1.2 Tujuan
Tujuan penelitian ini, peneliti mempunyai beberapa tujuan yang ingin dicapai yaitu:
1. Memaparkan perancangan kalkulator sederhana bebasis mikrokontroler.
2. Memaparkan perancangan algoritma komputasi pada operasi-operasi aritmatik.
3. Membuat perangkat keras berupa kalkulator.
4. Membuat perangkat lunak yang dapat mengimplementasikan perancangan algoritma komputasi.
1.3 Manfaat
Mengacu pada beberapa tujuan yang akan dicapai, diharapkan penelitian ini dapat memberikan beberapa manfaat :
1. Bagi penulis dapat menambah pengetahuan perancangan kalkulator
2. Bagi pembaca dapat menjadi acuan untuk mengembangkan perancangan algoritma arimatik yang lainnya.
3. Mempercepat dan memudahkan perhitungan bilangan biner, desimal,
1.4 Batasan Masalah
Batasan masalah pada alat yang dibuat yaitu:
1. Operasi aritmatik yang digunakan adalah perkalian, pembagian, penjumlahan, pengurangan, kuadrat dan akar kuadrat.
2. Jumlah masukan dan hasil maksimum adalah 15 digit untuk tiap mode.
3. Masukan dan hasil perhitungan adalah bilangan integer.
4. Terdapat empat pilihan mode yaitu, mode biner ,heksadesimal ,desimal dan BCD.
5. Perhitungan berdasarkan urutan operator yang ditekan.
1.5 Perumusan Masalah
Kalkulator ini dibuat dengan menggunakan mikrokontroler. Mikrokontroler akan mengolah data masukan dari keypad dan menampilkannya ke LCD. Agar dapat bekerja, mikrokontroler harus diisi perangkat lunak (software) yang berisikan algoritma-algoritma perhitungan.
Dari uraian tersebut, masalah yang didapat adalah :
1. Bagaimana membuat algoritma untuk perhitungan ?
2. Bagaimana mengimplementasikan algoritma arimatik untuk membuat
software bahasa assembly ?
3. Bagaimana mengolah data masukan dari keypad ?
4. Bagaimana menampilkan hasil perhitungan ke LCD ?
1.6 Metodologi Peneltian
Penelitian dilakukan dengan perancangan perangkat keras dan perangkat lunak, pengujian alat, pengambilan data, analisis data dan kesimpulan.
1.7 Sistematika Penulisan
Sistematika penulisan terdiri dari lima bab yaitu :
BAB I. PENDAHULUAN Membahas tentang latar belakang masalah, tujuan, manfaat, batasan masalah, perumusan masalah dan metodologi penelitian. BAB II. DASAR TEORI Membahas dasar teori yang mendukung penelitian, yaitu tentang bilangan biner, heksadesimal dan BCD, Mikrokontroler AT89S52, matriks keypad dan LCD.
BAB III. PERANCANGAN ALAT Membahas tentang perancangan algoritma perhitungan, implementasi algoritma ke dalam perangkat lunak (software) bahasa assembly, perancangan perangkat keras berupa konfigrasi mikrokontroler dengan matriks keypad dan LCD.
BAB IV. PEMBAHASAN Membahas pengamatan kerja, pengambilan data dan analisis data dari alat yang dibuat. BAB V. KESIMPULAN DAN SARAN
BAB II DASAR TEORI Kalkulator berbasis mikrokontroler dibuat untuk memudahkan dan
mempercepat perhitungan bilangan biner, heksadesimal dan BCD. Untuk membangun sistem tersebut dibutuhkan rangkaian untuk memberikan nilai masukan yang disusun oleh matriks keypad. Data masukan tersebut kemudian diproses oleh mikrokontroler dan hasilnya ditampilkan ke dalam modul LCD.
2.1 Kode Biner
Kode biner biasa disebut BIN merupakan bilangan yang digunakan dalam sitem digital. Pada kode ini mempunyai basis 2 yang hanya menggunakan dua buah bilangan dasar, 0 dan 1 yang disebut bit. Nilai 0 mewakili logika rendah sedangkan nilai 1 mewakili logika tinggi.
Dalam penyandiannya setiap bit dikalikan dengan angka dasar 2 dengan n pangkat sesuai urutannya. Sistem ini dinamakan power of two 2 . Bit yang dikalikan n dengan 2 terbesar dinamakan MSB (Most Significant Bit) dan yang dikalikan n dengan 2 terkecil dinamakan LSB (Least Significant Bit). Sebagai contoh nilai biner 1010 mewakili nilai 10 bilangan desimal dengan perhitungan sebagai berikut. [2]
MSB LSB
3
2
1 1010 = 1 x 2 + 0 x 2 + 1 x 2 + 0 x 2
2.2 Kode Heksadesimal
Kode Heksadesimal biasa disebut HEX menggunakan basis 16 dan ditulis dengan simbol 0 – 9 dan A – F. Sistem penyandiannya sama dengan kode biner hanya saja angka dasar 2 diganti dengan 16. Nilai dapat dilihat pada tabel 2.1.
Tabel 2.1. Konversi biner dan heksadesimal.Biner Heksadesimal
0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7
Biner Heksadesimal
1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F
Kode heksadesimal digunakan untuk merepresentasikan 1 nibble (4 bit), dimana 1 nibble diganti dengan 1 digit. Pada sistem komputer nilai 1 byte (8 bit) diganti dengan 2 digit heksadesimal. [3]
2.3 Kode BCD
Pada sistem digital, angka desimal dikodekan tiap angkanya kedalam bentuk
biner. Pengodean ini dinamakan Binary Coded Decimal (BCD). Setiap angka pada
sistem desimal dikodekan kedalam 4 bit, hal ini dikarenakan pada sistem angka desimal terdapat 10 angka yang harus dikodekan sehingga diperlukan minimal 4 bit untuk setiap angkanya. Pengodean dari sistem desimal ke bentuk BCD dapat dilihat pada tabel 2.2. [4]
Tabel 2.2. Pengodean desimal ke bentuk BCD.Desimal BCD
0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001
2.4 Algoritma Penambahan
Penambahan menggunakan sistem penambahan tiap-tiap bit dengan memperhitungkan bawaan (carry) dari perhitungan sebelumnya. Sebagai contoh. [5] 7 0 1 1 1 6 + 0 1 1 0 + 13 1 1 0 1
2.5 Algoritma Pengurangan
Pengurangan menggunakan sistem pengurangan tiap-tiap bit dengan memperhitungkan bawaan (carry) dari perhitungan sebelumnya. Sebagai contoh. [5] 13 1 1 0 1 6 - 0 1 1 0 - 7 0 1 1 1
2.6 Algoritma Perkalian
Perkalian menggunakan sistem geser kanan dan tambahkan. Misal bilangan H akan dikali dengan pengali P dan hasil perkalian awal S. Langkah-langkah yang harus dilakukan :
1. Set data awal S = 0
2. Lihat bit terakhir bilangan P jika 1, tambahkan S dengan H kemudian geser kanan S dan P satu posisi bit dan jika 0 hanya geser kanan S dan P satu posisi
bit .
3. Lakukan proses no. 2 sebanyak jumlah bit yang dihitung. [5] Sebagai contoh : Ket: 3 0011 (H) Æ = geser kanan 2 x Æ 0010 x (P)
C S P
0 0 0 0 0 0 0 1 Geser kanan 1 kali Æ 0 0 0 0 0 0 0 0 Tambahkan dengan S dengan H
Geser kanan 1 kali
1
0 0 0 1 1 + 0 0 0 1 1 Æ 0 0 0 0 1 1 0 0 Geser kanan 1 kali Æ 0 0 0 0 0 1 1 0 Geser kanan 1 kali Æ 0 0 0 0 0 0 1 1 0
Hasil
2.7 Algoritma Pembagian
Pembagian menggunakan metode pengurangan dan restoring dengan sistem geser kiri dan kurangkan. Operasi ini berlaku untuk bilangan integer sehingga akan muncul sisa bagi dari proses. Misal bilangan H akan dibagi dengan pembagi P dan sisa pembagian S. Langkah-langkah yang harus dilakukan :
1. Set data awal S = 0
2. Geser kiri S dan H satu posisi bit
3. Kurangkan P dari S dan tempatkan kembali hasil ke S
4. Jika tanda (carry) S adalah 1 maka set H ke 0 dan tambahkan P kembali ke S, jika tidak maka set H ke 1.
5. Lakukan proses no. 2 - 4 sebanyak jumlah bit yang dihitung. [5] Sebagai contoh :
2
10 Æ 10 1010
2
2 C S H
Awal 0 0 0 0 0 1 0 1 0 Ket: Subb = kurangkan
Å 0 0 0 0 1 0 1 0 = geser kiri
Å Subb 1 0 - Set H 1 1 1 1 1 1 0 +
0 0 0 0 1 0 1 0 Å 0 0 0 1 0 1 0 Subb 1 0 - Set H 0 0 0 0 0 1 0
1
Å 0 0 0 0 1
1 Subb 1 0 -
Set H 1 1 1 1 1 1 0 +
1
0 0 0 0 1 Å
1
0 0 0 1 0 Subb 1 0 -
1
1
0 0 0 0 0 Sisa Hasil Bagi
2.8 Algoritma Kuadrat
Proses operasi kuadrat sama dengan operasi perkalian. Hanya saja pada operasi kuadrat bilangan pengali P sama dengan bilangan yang akan dikali H.