• Tidak ada hasil yang ditemukan

TUGAS AKHIR - Kalkulator berbasis mikrokontroler - USD Repository

N/A
N/A
Protected

Academic year: 2019

Membagikan "TUGAS AKHIR - Kalkulator berbasis mikrokontroler - USD Repository"

Copied!
200
0
0

Teks penuh

(1)

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

2007

(2)

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

(3)
(4)
(5)
(6)

Kupersembahkan tugas akhir ini

kepada kedua orang tuaku

dan diriku sendiri

“ plan your work and work your plan ”

(7)

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

(8)

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

(9)

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

Sofian, S.T. Makasih ya atas saran dan “paksaan” untuk cepat-cepat lulus.

(10)

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

(11)

Lembar Pengesahan oleh Pembimbing ...

Lembar Pengesahan oleh Penguji ... ...

Lembar Pernyataan Keaslian Karya ...

Halaman Persembahan dan Motto Hidup ...

INTISARI ...

ABSTRACT ...

Kata Pengantar ...

Daftar Isi ...

Daftar Gambar...

Daftar Tabel ...

BAB I PENDAHULUAN ...

1.1 Latar Belakang Masalah ...

1.2 Tujuan ...

1.3 Manfaat ...

1.4 Batasan Masalah ...

1.5 Perumusan Masalah ...

1.6 Metodologi Penelitian ...………....

1.7 Sistematika Penulisan ...

BAB II DASAR TEORI ...

2.1

Kode Biner ...

2.2

Kode Heksadesimal …...………...

2.3

Kode BCD ...………

2.4

Algoritma Penambahan ...………..

2.5

Algoritma Pengurangan ...………..

2.6

Algoritma Perkalian ……….

(12)

2.11

Algoritma Bilangan Bertanda ...

2.12

Konversi Biner dan BCD ke Heksadesimal...

2.13

Konversi Desimal ke Heksadesimal ...

2.14

Thyristor ...

2.15

Matriks Keypad ...

2.16

LCD ...

2.17

Mikrokontroler AT89S52 ...

2.17.1

Konfigurasi Pin Mikrokontroler AT89S52...

2.17.2

RAM Internal ...

2.17.3

Flash PEROM ...

2.17.4

PSW (Program Status Word) ...

2.17.5

Rangkaian Osilator Mikrokontroler ...

2.17.6

Rangkaian Reset Mikrokontroler ...

BAB III PERANCANGAN ALAT ...

3.1

Bentuk Fisik Kalkulator ...……….

3.2

Rangkaian Matriks Keypad ...

3.3

Rangkaian LCD ...………..

3.4

Rangkaian Mikrokontroler AT89S52 ...

3.4.1

Rangkaian Osilator Mikrokontroler AT89S52 ...

3.4.2

Rangkaian Reset Mikrokontroler AT89S52 ...

3.5

Rangkaian Pengunci ON/OFF ...

3.6

Pemograman Mikrokontroler ...

3.6.1

Subrutin Mode ...

3.6.2

Subrutin Masukan Data 1 ...

(13)

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

3.6.16

Algoritma Tampilan Bilangan Negatif ...

BAB IV HASIL DAN PEMBAHASAN …………...………

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 ………

(14)

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.2 Operasi Pembagian Mode Biner ………..

4.3.9.3 Operasi Pembagian Mode Desimal ………..

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

4.3.12.2 Operasi Akar Kuadrat Mode Biner ………...

(15)

BAB V KESIMPULAN DAN SARAN ……….

5.1 Kesimpulan ………...

5.2 Saran ……….

DAFTAR PUSTAKA ...

LAMPIRAN ...

106

106

106

107

108

(16)

Halaman

Gambar 2.1. Simbol Thyristor ………. ………

14

Gambar 2.2. Rangkaian Matriks Keypad ………...….……….

15

Gambar 2.3. Konfigurasi Pin Mikrokontroler AT89S52 ...………..

17

Gambar 2.4. Lokasi RAM Internal ………...……..………….

19

Gambar 2.5. Rangkaian Osilator Mikrokontroler ….………...

21

Gambar 2.6. Rangkaian Reset Mikrokontroler ……...……….

22

Gambar 3.1. Diagram Blok Kalkulator Berbasis Mikrokontroler ...……

23

Gambar 3.2. Perancangan Bentuk Fisik Kalkulator …...………..

24

Gambar 3.3. Konfigurasi Matriks Keypad ………..……….

25

Gambar 3.4. Konfigurasi Mikrokontroler, Keypad dan LCD …...……...

28

Gambar 3.5. Rangkaian Pengunci ON/OFF ………...

29

Gambar 3.6. Flowchart Program Utama ………...

31

Gambar 3.7. Flowchart Subrutin Mode ………...

32

Gambar 3.8. Flowchart Subrutin Masukan Data 1 ……….

33

Gambar 3.8. Flowchart Subrutin Masukan Data 1 (lanjutan) .………….

34

Gambar 3.8. Flowchart Subrutin Masukan Data 1 (lanjutan) …...……...

35

Gambar 3.9. Flowchart Subrutin Operator ……...

37

(17)

Gambar 3.11. Flowchart Subrutin Hasil ……….………….

41

Gambar 3.11. Flowchart Subrutin Hasil (lanjutan) ………..

42

Gambar 3.12. Subrutin Tampilan LCD ………...……….

43

Gambar 3.13. Subrutin Penambahan ……...……….

44

Gambar 3.14. Subrutin Pengurangan ……… ...

45

Gambar 3.15. Subrutin Perkalian ……….

46

Gambar 3.16. Subrutin Pembagian ……….……….

47

Gambar 3.17. Subrutin Kuadrat ……….………..

48

Gambar 3.18. Subrutin Akar Kuadrat ………...

49

Gambar 3.19. Konversi Biner ke Heksadesimal ……...………...

50

Gambar 3.20. Konversi BCD ke Heksadesimal ………..…….

51

Gambar 3.21. Konversi Desimal ke Heksadesimal ...…...………

52

Gambar 3.22. Tampilan Bilangan Negatif ………...

53

Gambar 4.1. Bentuk fisik kalkulator ……...……….

55

Gambar 4.2. Bagian dalam kalkulator ……….

56

Gambar 4.3. Tampilan awal setelah penekanan tombol ON ………

57

Gambar 4.4. Tampilan data masukan data pertama ……….

58

Gambar 4.5. Tampilan data masukan kedua ………

58

(18)

Gambar 4.9. Hasil konversi ke dalam sandi biner ………...

61

Gambar 4.10. Hasil konversi ke dalam bentuk desimal ………...

61

Gambar 4.11. Hasil konversi ke dalam bentuk BCD ...………

62

Gambar 4.12. Data positif yang akan diubah kedalam bentuk negatif …

63

Gambar 4.13. Tampilan negatif sandi heksedesimal ………...

63

Gambar 4.14 Tampilan negatif sandi biner ………..

63

Gambar 4.15 Tampilan negatif sandi desimal ……….

64

Gambar 4.16 Tampilan negatif sandi BCD ………. ………

64

Gambar 4.17 Data masukan pertama yang akan dibagi ………...

65

Gambar 4.18 Tampilan simbol operator pembagian ………

65

Gambar 4.19 Tampilan data pembagi ………..

66

Gambar 4.20 Tampilan hasil dan sisa pembagian ………

66

Gambar 4.21 Tampilan pesan ERROR! ………...

67

(19)

Tabel 2.1. Konversi biner dan heksadesimal ………….…….………….

6

Tabel 2.2. Pengodean desimal ke bentuk BCD ………...……….

7

Tabel 2.3. Pin-pin LCD dan fungsinya ………...……….

16

Tabel 2.4. Fungsi pin Mikrokontroler AT89S52 ………...………..

18

Tabel 2.5. Bit-bit penyusum PSW ………...………

20

Tabel 2.6. Pemilihan bank memori ………...………...

21

Tabel 3.1. Kombinasi baris dan kolom matriks keypad ………...

26

Tabel 3.2. Konfigurasi pin LCD dan mikrokontroler ………..…………

27

Tabel 3.3. Kode untuk masimg-masing Mode ……….

32

Tabel 3.4. Kode untuk masing-masing Operator ………...………..

36

Tabel 4.1. Data konversi heksadesimal ke biner ………..

68

Tabel 4.2. Data konversi biner ke heksadesimal ………..

70

Tabel 4.3. Data konversi desimal ke BCD ……...………

71

Tabel 4.4. Data konversi BCD ke desimal ………..…………

72

Tabel 4.5. Data konversi heksadesimal ke desimal …………...………..

73

Tabel 4.6. Data konversi desimal ke heksadesimal …………...………..

75

Tabel 4.8. Data operasi kuadrat bilangan heksadesimal ………..

76

(20)

Tabel 4.12. Data operasi perkalian bilangan heksadesimal ……….

81

Tabel 4.13. Data operasi perkalian bilangan biner ………...

82

Tabel 4.14. Data operasi perkalian bilangan desimal ………..

84

Tabel 4.15. Data operasi perkalian sandi BCD ………

85

Tabel 4.16. Data operasi pembagian bilangan heksadesimal …………...

86

Tabel 4.17. Data operasi pembagian bilangan biner ………

87

Tabel 4.18. Data operasi pembagian bilangan desimal ………

87

Tabel 4.19. Data operasi pembagian sandi BCD ……….

88

Tabel 4.20. Data operasi penambahan bilangan heksadesimal …………

89

Tabel 4.21. Data operasi penambahan bilangan biner ……….

90

Tabel 4.22. Data operasi penambahan bilangan desimal ……….

91

Tabel 4.23. Data operasi penambahan sandi BCD ………...

92

Tabel 4.24. Data operasi pengurangan bilangan heksadesimal ………...

94

Tabel 4.25. Data operasi pengurangan bilangan biner ……….

95

Tabel 4.26. Data operasi pengurangan bilangan desimal ……….

96

Tabel 4.27. Data operasi pengurangan sandi BCD ………..

98

Tabel 4.28. Data operasi akar kuadrat bilangan heksadesimal ...

99

Tabel 4.29. Data operasi akar kuadrat bilangan biner ………..

100

(21)

Tabel 4.33. Data konversi berulang kali ………..

(22)

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 matematika tertentu. Pada perkembangannya sekarang

ini, kalkulator sering dimasukkan sebagai fungsi tambahan daripada komputer,

handphone, bahkan sampai jam tangan. [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

dikalikan dengan angka dasar 16 dengan pangkat sesuai urutannya. [2]

(23)

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.

(24)

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 ?

(25)

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

(26)

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

pangkat sesuai urutannya. Sistem ini dinamakan power of two 2

n

. Bit yang dikalikan

dengan 2

n

terbesar dinamakan MSB (Most Significant Bit) dan yang dikalikan

dengan 2

n

terkecil dinamakan LSB (Least Significant Bit). Sebagai contoh nilai biner

1010 mewakili nilai 10 bilangan desimal dengan perhitungan sebagai berikut. [2]

MSB

LSB

1010 = 1 x 2

3

+ 0 x 2

2

+ 1 x 2

1

+ 0 x 2

0

= 8 + 0 + 2 + 0

= 10

(27)

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

(28)

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

(29)

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.

(30)

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

0

ke 0 dan tambahkan P kembali ke S,

jika tidak maka set H

0

ke 1.

(31)

Sebagai contoh :

2

10

Æ

10

2

2

1010

C S

H

Ket:

Subb = kurangkan

Awal

0 0 0 0 0

1 0 1 0

Å

0 0 0 0 1

0 1 0

1

Å

= geser kiri

Subb

1 0 -

Set H

0

1 1 1 1 1

1 0 +

0 0 0 0 1

0 1 0

Å

0 0 0 1 0

1 0

0

0

Subb

1 0 -

Set H

0

0 0 0 0 0

1 0

0

Å

0 0 0 0 1

0

0

1

Subb

1 0 -

Set H

0

1 1 1 1 1

1 0 +

0 0 0 0 1

0

0

1

0

0

1

0

Å

0 0 0 1 0

Subb

1 0 -

0 0 0 0 0

0

1

0

1

(32)

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.

Sebelum proses perkalian dimulai, terlebih dahulu bilangan H disalin ke bilangan P

kemudian kedua bilangan tersebut dikalikan.

2.9 Algoritma Akar Kuadrat

Operasi akar kuadrat menggunakan metode SAR (Succsessive Approximation

Register).

Metode ini berlaku pada bentuk biner atau heksadesimal, sehingga

bilangan yang akan dicari nilai akar kuadratnya harus diubah terlebih dahulu dalam

bentuk heksadesimal. Langkah-langkah yang harus dilakukan :

1.

Hitung jumlah bit yang akan dicari nilai akar kuadratnya (n)

2.

Set nilai awal hasil akar kuadrat (P) = 0

3.

Set MSB P = 1

4.

Kemudian kuadratkan P

5.

Bandingkan P dengan bilangan yang akan dicari akar kuadratnya (Q)

6.

Jika P < Q simpan nilai P, jika P > Q clear bit P

7.

Set bit berikutnya, kembali ke langkah 5 sampai P > Q

Sebagai contoh :

2

(33)

Hasil awal

0

0

1

0

Set

Kuadratkan

0 1 0 0

0 1 0 0

1

0

1

0

Bandingkan <

Set

1

1

Kuadratkan

1

0 0 1

Hasil akar kuadrat

2.10 Bilangan 2’s Komplemen

Bilangan 2’s komplemen merupakan representasi dari bilangan bertanda

bentuk biner. Sebagai contoh [6]

5

Æ

0101

1010 1’s komplemen

1 +

-5

Æ

1011 2’s komplemen

2.11 Algoritma Bilangan Bertanda

Untuk proses penambahan dan pengurangan bilangan bertanda menggunakan

fasilitas 2’s komplemen. Sebelum dilakukan operasi penambahan dan pengurangan

bilangan yang bertanda diubah ke dalam bentuk 2’s komplemennya.

(34)

2.12 Konversi Biner dan BCD ke Heksadesimal

Pengubahan

biner

dan BCD

ke heksadesimal pada dasarnya sama, karena

BCD juga merupakan sandi biner

yang digunakan untuk bilangan desimal.

Pengubahannya adalah dengan cara pengubahan tiap satu nibble. Bilangan

biner dan

BCD terlebih dahulu dipisahkan tiap nibble mulai dari LSB. Setelah dipisahkan tiap

bit dalan satu nibble dikalikan dengan bobot 8421 sesuai dengan urutannya kemudian

dijumlahkan. Sebagai contoh dapat dilihat pada proses pengubahan dibawah. [6]

101101

2

Æ

0 0 1 0 1 1 0 1

1 nibble 1 nibble

Æ

0.8 + 0.4 + 1.2 + 0.1 || 1.8 + 1.4 + 0.2 +1.1

2

D

101101

2

Æ

2D

16

2.13 Konversi Desimal ke Heksadesimal

Pengubahan desimal ke heksadesimal adalah dengan cara mengalikan tiap

angkan desimal dengan A

n

, nilai n adalah urutan angka. Setelah dikalikan, hasilnya

ditambahkan semua. Sebagai contoh dapat dilihat pada proses pengubahan dibawah.

[7]

(35)

2.14 Thyristor

Thyristor adalah komponen semikonduktor yang biasa dioperasikan pada dua

keadaan. Pengoperasiannya berada pada kondisi dari tidak menghantarkan arus listrik

(nonconducting/OFF)

dan kondisi menghantarkan arus listrik (conducting/ON).

Simbol thyristor dapat dilihat pada gambar 2.1.

A

K

G

A = ANODA

K = KATODA

G = GATE

Gambar 2.1. Simbol thyristor.

Kaki GATE pada thyristor di desain untuk dapat mengendalikan keadaan ON

dan OFF. Apabila kaki GATE diberi tegangan, maka thyristor akan ON sampai kaki

GATE dimatikan. Agar dapat menghantarkan arus listrik, maka pada keadaan ON

besarnya beda potensial kaki ANODA harus lebih besar dari beda potensial kaki

KATODA.

(36)

2.15 Matriks Keypad

Kofigurasi matriks keypad terdiri dari tombol-tombol yang tersusun atas baris

dan kolom. Rangkaian matriks keypad sederhana dapat dilihat pada gambar 2.2.

2

3

4

5

6

7

1

8

9

*

0

#

B2

B3

B4

K1 K2 K3

B1

Gambar 2.2. Rangkaian matriks keypad

Penggunaan matriks keypad

bertujuan untuk menghemat jumlah port

yang

digunakan pada mikrokontroler. Pada gambar 2.2 adalah matriks keypad

4 x 3 yang

artinya terdiri dari 4 baris dan 3 kolom. Matriks keypad ini tersusun dari 12 tombol,

apabila tidak menggunakan konfigurasi matriks keypad

maka dibutuhkan 12 port

sedangkan dengan matriks keypad hanya menggunakan 7 port.

(37)

2.16 LCD

LCD

(Liquid Crystal Display) adalah suatu tampilan dari bahan cairan kristal

yang dioperasikan dengan menggunakan sisitem dot matriks. LCD dalam berbagai

aplikasi elektronik sering digunakan sebagai tampilan seperti jam digital, kalkulator,

telepon dan sebagainya.

Dimensi LCD yang akan digunakan dalam perancangan memiliki ukuran

2 x 16. Ukuran tersebut menandakan bahwa LCD memiliki layar tampilan yang

terdiri dari 2 baris dan 16 kolom. Total jumlah karakter yang dapat ditampilkan

adalah sebanyak 32 karakter dengan 16 karakter pada tiap baris dan masing-masing

karakter tersusun dari titik-titik (dot) yang memiliki ukuran 8 x 5 titik.

Pada penggunaan LCD ada beberapa pin yang penting. Pin-pin tersebut dapat

dilihat pada tabel 2.3.

Tabel 2.3. Pin-pin pada LCD dan fungsinya.

Pin Fungsi

D0….D7 I/O

data

E

Untuk mengaktifkan LCD, maka E diberi logika tinggi.

E = ‘1’

Æ

LCD aktif

W

R

/

Pemilihan instruksi baca dan tulis LCD

‘0’ = Tulis ke LCD

‘1’ = Baca dari LCD

RS Pemilih

register

‘0’ = register instruksi (write) dan address counter (read) aktif.

‘1’ = data register (write dan read) aktif.

(38)

2.17 Mikrokontroler AT89S52

Mikrokontroler AT89S52 adalah mikrokontroler buatan ATMEL.

Mikrokontroler 8 bit

ini sudah dilengkapi FPEROM (Flash Programmable and

Erasable Read Only Memory). FPEROM adalah ROM (Read Only Memory) yang

dapat dihapus dan ditulis kembali.

Fasilitas-fasilitas standar yang dimiliki Mikrokontroler AT89S52 adalah 8 KB

FPEROM, 256 byte

RAM

(Random Accsess Memory), 32 jalur I/O (input/output),

watchdog timer, dua data pointer, tiga 16-bit timer/counter, jalur komunikasi serial

full duplex dan osilator internal.

2.17.1 Konfigurasi Pin Mikrokontroler AT89S52

Mikrokontroler AT89S52 memiliki 40 pin dan ada beberapa pin yang

memiliki fungsi ganda. Konfigurasi pin Mikrokontroler AT89S52 dapat dilihat pada

gambar 2.3 dan fungsi pin dapat dilihat pada tabel 2.4.

(39)

Tabel 2.4. Fungsi pin Mikrokontroler AT89S52.

Pin Fungsi

VCC

Catu daya 4V – 5,5V

GND Ground

Port 0

8 bit jalur I/O dua arah

Port 1

8 bit jalur I/O dua arah

Fungsi alternatif :

P1.0 = T2 (Masukan untuk timer 2)

P1.1 = T2EX (Trigger timer 2)

P1.5 = MOSI (digunakan untuk ISP)

P1.6 = MISO (digunakan untuk ISP)

P1.7 = SCK (digunakan untuk ISP)

Port 2

8 bit jalur I/O dua arah

Port 3

8 bit jalur I/O dua arah

Fungsi alternatif :

P3.0 = RXD (masukan komunikasi serial)

P3.1 = TXD (keluaran komunikasi serial)

P3.2 =

INT

0

(interupsi ekternal 0)

P3.3 =

INT

1

(interupsi eksternal 1)

P3.4 = T0 (masukan timer 0)

P3.5 = T1 (masukan timer 1)

P3.6 = WR

P3.7 =

RD

RST

Mereset mikrokontroler apabila diberi logika ‘1’

selama 2 siklus mesin

EA

/VPP Harus diberi VCC apabila ingin menjalankan

program internal

XTAL1

Masukan osilator internal

(40)

2.17.2 RAM Internal

RAM Internal pada Mikrokontroler AT89S52 terdiri atas :

a.

Register Bank. Mikrokontroler memiliki 8 buah register yang terdiri atas R0

sampai dengan R7. Register ini dapat diubah dari bank 0 (default) ke bank 1,

bank 2 dan bank 3 dengan cara mengubah nilai RS0 dan RS1 pada register

PSW.

b.

Bit addressable RAM. RAM yang dapat diakses secara pengalamatan bit

terletak pada alamat 20H sampai 2FH.

c.

RAM serbaguna. RAM ini dapat diakses secara pengalamatan langsung dan

tak langsung terletak pada alamat 30H sampai 7FH. Lokasi RAM Internal

dapat dilihat pada gambar 2.4.

0 1 2 3 4 5 6 7 8 9 A

B C D E F

00

BANK 0 (default)

BANK 1

10

BANK 2

BANK 3

20

Bit Addressable RAM

30

:

:

:

:

F0

RAM Serbaguna

(41)

2.17.3 Flash PEROM

Mikrokontroler AT89S52 mempunyai 8 KB Flash PEROM yang dapat ditulis

dan dihapus. Flash PEROM berisikan instruksi-instruksi. Instruksi-instruksi ini akan

dieksekusi jika sistem di-reset. Bila pin EA/VPP berlogika ‘1’ maka mikrokontroler

aktif berdasarkan program yang ada di Flash

PEROM. Bila pin EA/VPP berlogika

‘0’ maka mikrokontroler aktif berdasarkan program yang ada di memori eksternal.

2.17.4 PSW (Program Status Word)

PSW (Program Status Word) berisikan bit-bit

status yang berkaitan dengan

kondisi CPU. PSW bersifat bit-adressable

artinya tiap-tipa bit

dapat dialamati

satu-persatu tanpa harus merubah satu kesatuan byte. Bit-bit penyusun PSW dapat dilihat

pada tabel 2.5.

Tabel 2.5. Bit-bit penyusun PSW

Posisi

PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0

Bit

CY AC F0 RS1 RS0 OV - P

Keterangan :

CY =

Menerima

carry out dari bit 1 operasi aritmatik

AC =

Menerima

carry out dari bit 1 operasi penjumlahan

F0

= Status multiguna

RS1 =

Bit 1 pemilih bank register

RS0 =

Bit 0 pemilih bank register

OV

= Limpahan operasi aritmatik

PSW.1 = Didefinisikan pengguna

(42)

PSW dapat digunakan untuk memilih bank memory (Bank 0 – Bank 3).

Pemilihan dilakukan dengan mengatur bit RS0 dan bit RS1 menurut tabel 2.6.

Tabel 2.6. Pemilihan bank memory

Bit

RS0

Bit

RS1

Bank

Terpilih Alamat

0 0

Bank 0

00H – 07H

0 1

Bank 1

08H – 0FH

1 0

Bank 2

10H – 17H

1 1

Bank 3

18H – 1FH

2.17.5 Rangkaian Osilator Mikrokontroler

Pada

datasheet

dikatakan bahwa jika menggunakan osilator kristal, maka

kapasitor yang digunakan adalah 30 pF. Rangkaian osilator dapat dilihat pada

gambar 2.5.

(43)

2.17.6 Rangkaian Reset Mikrokotroler

Rangkaian reset digunakan untuk mereset program yang terdapat pada

mikrokontroler. Rangkain reset dapat dilihat pada gambar 2.6.

VCC

C

R

9

(RESET)

MIKROKONTROLER

Gambar 2.6. Rangkaian reset mikrokontroler

Pada gambar 2.6 apabila saklar tidak ditekan, pin reset pada mikrokontroler

akan mendapatkan logika rendah ‘0’. Sedangkan saat saklar ditekan pin akan

mendapatkan logiga tinggi ‘1’ dan akan mereset mikrokontoler. Lamanya waktu yang

dibutuhkan untuk mereset adalah dua siklus mesin dan memenuhi persamaan :

(44)

Perancangan sistem kalkulator berbasis mikrokontroler terdiri atas

perancangan perangkat keras dan perancangan perangkat lunak. Perancangan

perangkat keras memiliki tiga bagian utama yaitu unit masukan, unit pemroses data

dan unit keluaran. Unit masukan tersusun dari rangkaian matriks

keypad

, unit

pemroses adalah mikrokontroler, sedangkan unit keluaran adalah penampil LCD.

Perancangan perangkat lunak berupa

flowchart

program yang akan diisikan ke dalam

mikrokontroler. Secara umum diagram blok sistem dapat dilihat pada gambar 3.1.

KEYPAD

MIKROKONTROLER

LCD

Gambar 3.1. Diagram blok kalkulator berbasis mikrokontroler.

Pada bagian ini akan dijelaskan tentang perancangan bentuk fisik kakulator,

rangkaian matriks

keypad,

penggunaan pin-pin LCD, konfigurasi antara

mikrokontroler, matriks

keypad,

dan pin-pin LCD serta perancangan program

mikrokontroler berupa

flowchart-flowchart

program.

(45)

3.1 Bentuk Fisik Kalkulator

or adalah perancangan posisi

keypad

dan

LCD. P

Perancangan bentuk fisik kalkulat

erancangan bentuk fisik kalkulator dapat dilihat pada gambar 3.2.

Gambar 3.2 Perancangan bentuk fisik kalkulator

.2 Rangkaian Matriks Keypad

atriks

keypad

8 x 4 yang artinya

tersusu

3

Matriks

keypad

yang digunakan adalah m

n atas 8 baris dan 4 kolom.

Keypad

ini dihubungkan dengan

port

1 dan

port

3

mikrokontroler AT89S52, untuk barisnya terhubung dengan jalur P3.0 sampai P3.7.

Sedangkan kolomnya terhubung dengan jalur P1.0 sampai P1.3. Konfigurasi

(46)

Gambar 3.3. Konfigurasi matriks

keypad

Cara kerja dari matriks

keypad

adalah dengan sistem

scanning

tombol satu per

satu. Kolom 1 sampai dengan kolom 5 (P1.0 - P1.3) berfungsi sebagai keluaran

mikrokontroler. Sedangkan baris 1 sampai dengan baris 8 (P3.0 – P3.7) sebagai

masukan mikrokontroler. Keluaran mikrokontroler akan memberikan kondisi ‘1’ pada

setiap kolom

secara bergantian, sehingga apabila ada tombol yang ditekan maka baris

tersebut akan memiliki kondisi ‘1’ pula. Sebagai contoh apabila tombol ‘DEL’

ditekan maka baris 8 (P3.7) dan kolom 4 (P1.3) akan berkondisi ‘1’, demikian pula

untuk penekanan tombol-tombol lainnya. Kombinasi baris dan kolom matriks

keypad

(47)

Tabel 3.1. Kombinasi baris dan kolom matriks

keypad

P1.0 P1.1 P1.2 P1.3

P3.0

P3.1

P3.2

P3.3

P3.4 P3.5 P3.6

P3.7

0 1

0 0 0 0 0 0 0 0 0 0

1

1 1

0 0 0 0 0 0 0 0 0

1

0

4 1

0 0 0 0 0 0 0 0

1

0 0

7 1

0 0 0 0 0 0 0

1

0 0 0

D 1

0 0 0 0 0 0

1

0 0 0 0

A 1

0 0 0 0 0

1

0 0 0 0 0

1

0 0 0 0

1

0 0 0 0 0 0

1

0 0 0

1

0 0 0 0 0 0 0

0

1

0 0 0 0 0 0 0 0 0

1

2

0

1

0 0 0 0 0 0 0 0

1

0

5

0

1

0 0 0 0 0 0 0

1

0 0

8

0

1

0 0 0 0 0 0

1

0 0 0

E

0

1

0 0 0 0 0

1

0 0 0 0

B

0

1

0 0 0 0

1

0 0 0 0 0

CE

0

1

0 0 0

1

0 0 0 0 0 0

Å

0

1

0 0

1

0 0 0 0 0 0 0

+/-

0 0

1

0 0 0 0 0 0 0 0

1

3

0 0

1

0 0 0 0 0 0 0

1

0

6

0 0

1

0 0 0 0 0 0

1

0 0

9

0 0

1

0 0 0 0 0

1

0 0 0

F

0 0

1

0 0 0 0

1

0 0 0 0

C

0 0

1

0 0 0

1

0 0 0 0 0

x

2

0 0

1

0 0

1

0 0 0 0 0 0

Æ

0 0

1

0

1

0 0 0 0 0 0 0

=

0 0 0

1

0 0 0 0 0 0 0

1

DEL

0 0 0

1

0 0 0 0 0 0

1

0

-

0 0 0

1

0 0 0 0 0

1

0 0

+

0 0 0

1

0 0 0 0

1

0 0 0

÷

0 0 0

1

0 0 0

1

0 0 0 0

x

0 0 0

1

0 0

1

0 0 0 0 0

0 0 0

1

0

1

0 0 0 0 0 0

(48)

3.3 Rangkaian LCD

LCD yang digunakan harus dihubungkan dengan mikrokontroler, karena

pemberian instruksi LCD dilakukan oleh mikrokontroler. Pin-pin yang perlu

diperhatikan pada LCD adalah RS

(Register Select),

E

(Enable),

dan jalur I/O

(Input/Outpur)

data. Hubungan pin-pin LCD dan mikrokontroler dapat dilihat pada

tabel 3.2.

Tabel 3.2. Konfigurasi pin LCD dan mikrokontroler

Pin LCD

PORT Mikrokontroler

RS P0.6

E P0.7

D0 P2.0

D1 P2.1

D2 P2.2

D3 P2.3

D4 P2.4

D5 P2.5

D6 P2.6

D7 P2.7

3.4 Rangkaian Mikrokontroler AT89S52

Mikrokontroler digunakan sebagai pengolah data masukan dari

keypad

. Pada

perancangan akan digunakan Mikrokontroler AT89S52 keluaran dari ATMEL.

(49)

VCC VCC VCC U1 AT89C52 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/T2 P1.1/T2-EX 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 C3 10uF R1 10K XTAL 12 MHz C1 30pF C2 30pF RESET 1 2 LCD MODULE D0 D7 . . . . RS E VCC GND MATRIKS KEYPAD 8 x 4

BAR

IS

KO

LOM

Gambar 3.4. Konfigurasi mikrokontroler,

keypad

dan LCD

3.4.1 Rangkaian Osilator Mikrokontroler AT89S52

Osilator yang digunakan pada rangkaian mikrokontroler AT89S52 ini adalah

kristal 12 MHz. Hal ini untuk mendapatkan siklus mesin (

duty cycle)

sebesar 1 µs.

Berdasarkan

datasheet

disebutkan jika menggunakan kristal sebagai osilatornya,

maka kapasitor yang digunakan adalah sebesar 30 pF.

3.4.2 Rangkaian RESET Mikrokontroler AT89S52

Untuk dapat mereset mikrokontroler maka pin RESET harus diberi masukan

logika “1” selama dua siklus mesin saat osilator bekerja. Pada perancangan

digunakan siklus mesin sebesar 1 µs, sehingga waktu yang dibutuhkan untuk mereset

mikrokontroler adalah sebesar 2 µs. Berdasarkan persamaan 2.1 jika ditentukan nilai

(50)

3.5 Rangkaian Pengunci ON/OFF

Rangkaian pengunci ON/OFF berfungsi untuk menghubungkan dan memutus

catu daya ke rangkaian mikrokontroler. Pada perancangan ini, komponen pengunci

yang digunakan adalah thyristor MCR100. Rangkaian pengunci dapat dlihat pada

gambar 3.5.

VCC = 9V

LM7805 1 3 2 IN OUT GN D OFF 1 2 ON 1 2 R2 R1 MCR100 G K

A

Vout = 5V

Gambar 3.5. Rangkaian pengunci ON/OFF.

Besarnya tegangan di kaki GATE (V

G

) yang diinginkan adalah 4,5V. Dengan

VCC sebesar 9V didapat nilai R1 dan R2

2

2

2

1

2

1

2

5

,

0

9

2

1

2

5

,

4

R

R

R

R

R

R

R

R

R

=

+

+

=

+

=

(51)

Besar arus pengunci I

L

agar thyristor ON yang dibutuhkan berdasarkan

datasheet

adalah 10mA sehingga besar nilai R1 dan R2 adalah

L

I

VCC

R

R

1

+

2

=

;

R1

=

R2

Ω

=

=

=

450

1

10

.

10

.

2

9

1

1

2

3

R

R

I

VCC

R

L

R1 = R2 = 450

(3)

Untuk menyesuaikan dengan nilai resistor yang ada di pasaran digunakan nilai R1

dan R2 sebesar 470

.

Untuk membuat thyristor ke keadaan OFF nilai arus I

L

harus dikurangi sampai

ke nilai arus I

H

. Berdasarkan

datasheet

nilai I

H

yang dibutuhkan adalah lebih kecil

dari 5mA. Untuk mencapai kondisi ini arus pada kaki ANODA dan KATODA harus

dikurangi dengan cara menghubung singkat kedua kaki ini.

Penggunaan IC LM7805 adalah sebagai pembatas tegangan sebesar 5V. Hal

ini dikarenakan tegangan yang dibutuhkan oleh mikrokontroler adalah sebesar 4V

(52)

3.6 Pemograman Mikrokontroler

Program pada mikrokontroler digunakan untuk mengolah data masukan dari

matriks

keypad

kemudian menampilkannya pada LCD.

Pada perancangan ini, program dikelompokkan kedalam beberapa bagian

utama yang didalamnya terdiri dari subrutin-subrutin yang digunakan. Bagian-bagian

tersebut adalah Mode, Masukan Data 1, Operator, Masukan Data 2, Hasil dan

Tampilan LCD.

Flowchart

program utama dapat dilihat pada gambar 3.6.

START

CEK MODE

CEK MASUKAN DATA 1

CEK OPERATOR

CEK MASUKAN DATA 2

CEK HASIL

END

(53)

3.6.1 Subrutin Mode

Mode terdiri dari tiga jenis, BIN untuk biner, HEX untuk heksadesimal, DEC

untuk desimal dan BCD untuk BCD. Ketiga jenis tersebut diberi kode untuk

membedakan satu sama lain. Kode tersebut dapat dilihat pada tabel 3.3.

Flowchart

subrutin MODE dapat dilihat pada gambar 3.7.

Tabel 3.3. Kode untuk masing-masing Mode

MODE KODE

BIN 01H

HEX 02H

DEC 03H

BCD 04H

(54)

3.6.2 Subrutin Masukan Data 1

Data 1 merupakan data pertama yang disimpan untuk kemudian dihitung

dengan Data 2. Data 1 akan disimpan di RAM Internal, proses penyimpanannya

adalah dengan cara menyimpan data yang dimasukan pertama kali kemudian

menggeser alamat RAM yang ditempati. Setelah alamat RAM digeser, data masukan

berikutnya disimpan di alamat baru tersebut. Proses ini akan berlangsung terus

sampai jumlah data yang dibolehkan.

Flowchart

subrutin Masukan Data 1 dapat

dilihat pada gambar 3.8.

(55)
(56)
(57)

3.6.3 Subrutin Operator

Operator menunjukkan jenis operasi artimatik yang digunakan. Ada enam

macam operasi aritmatik yang dapat dipilih, perkalian, pembagian, penjumlahan,

pengurangan, kuadrat dan akar kuadrat.

Keenam operasi ini diberi kode untuk membedakan satu sama lain. Tujuan

pemberian kode-kode ini untuk memudahkan pengolahan data. Kode-kode ini akan

disimpan untuk kemudian dicek saat proses perhitungan data dimulai. Kode-kode

yang digunakan dapat dilihat pada tabel 3.4.

Flowchart

subrutin Operator dapat

dilihat pada gambar 3.9.

Tabel 3.4. Kode untuk masing-masing Operator

OPERATOR SIMBOL

KODE

Perkalian x

01H

Pembagian ÷

02H

Penjumlahan +

03H

Pengurangan -

04H

Kuadrat x

2

--

(58)
(59)

3.6.4 Subrutin Masukan Data 2

Data 2 merupakan data yang dimasukan setelah operator. Proses penyimpanan

Data 2 sama halnya dengan penyimpanan Data 1 hanya saja alamat RAM Internal

yang digunakan berbeda.

Flowchart

subrutin Masukan Data 2 dapat dilihat pada

gambar 3.10

(60)
(61)
(62)

3.6.5 Subrutin Hasil

Pada subrutin Hasil, Data 1 dan Data 2 akan dihitung sesuai Operator yang

digunakan kemudian hasilnya ditampilkan ke LCD. Sebelum proses penghitungan

dimulai terlebih dahulu akan dicek mode yang digunakan. Apabila mode yang

digunakan biner dan BCD maka Data 1 dan Data 2 dikonversi ke dalam bentuk

heksadesimal. Hal ini diperlukan karena operasi aritmatik pada mikrokontroler

menggunakan bilangan heksadesimal.

Setelah konversi dikerjakan kemudian dilakukan pengecekan terhadap

operator yang digunakan baru kemudian dihitung dan hasilnya ditampilkan ke LCD.

Flowchart

subrutin Hasil dapat dilihat pada gambar 3.11.

(63)

Gambar 3.11.

Flowchart

subrutin HASIL (lanjutan)

3.6.6 Subrutin Menampilkan Karakter ke LCD

Penggunaan LCD adalah sebagai penampil. Untuk dapat menampilkan data,

LCD terlebih dahulu harus diberi insialisasi. Waktu inisialisasi dilakukan sekitar 15

mS setelah LCD diberikan tegangan VCC. Proses inisialisasi LCD terdiri dari tiga

(64)

Awal proses inisialisasi adalah dengan memberikan logika rendah pada

port

RS

(Register Select)

dan R/W

(Read/Write)

kemudian memberikan intruksi tentang

panjang data yang akan digunakan. Instruksi ini disebut

function set

yang bertujuan

agar LCD mengetahui batas instruksi yang dikirimkan berikutnya. Pada perancangan

ini digunakan panjang data sebesar 8 bit dengan cara memberikan data 3FH pada

LCD.

Kemudian LCD diberi instruksi

display ON/OFF control

yang berfungsi

mengaktifkan

display

dan

cursor

dengan memberikan data 0DH pada LCD

.

Instruksi

berikutnya adalah

entry mode set

yang berfungsi untuk pergerakan

cursor,

data 04H

untuk

geser kiri dan 06H untuk geser kanan

.

Setelah inisialisasi dilakukan yang berikutnya adalah menampilkan karakter

ke LCD. Untuk menampilkan karakter terlebih dahulu RS diberi logika tinggi (RS =

“1”) dan R/W diberi logika rendah (R/W = “0”). Pengiriman intruksi yang terakhir

adalah nilai data karakter yang akan ditampilkan.

Flowchart

tampilan LCD dapat

dilihat pada gambar 3.12.

(65)

3.6.7 Subrutin Penambahan

Subrutin penambahan merupakan

flowchart

implementasi algoritma yang

sudah dijelaskan di dalam dasar teori.

Flowchart

subrutin penambahan dapat dilihat

pada gambar 3.13.

(66)

3.6.8 Subrutin Pengurangan

Subrutin pengurangan merupakan

flowchart

implementasi algoritma yang

sudah dijelaskan di dalam dasar teori.

Flowchart

subrutin pengurangan dapat dilihat

pada gambar 3.14.

(67)

3.6.9 Subrutin Perkalian

Subrutin perkalian merupakan

flowchart

implementasi algoritma yang sudah

dijelaskan di dalam dasar teori.

Flowchart

subrutin perkalian dapat dilihat pada

gambar 3.15.

(68)

3.6.10 Subrutin Pembagian

Subrutin pembagian merupakan

flowchart

implementasi algoritma yang sudah

dijelaskan di dalam dasar teori. Untuk hasil pembagian akan ditampilkan pada baris

pertama LCD dan sisa pembagian pada baris kedua LCD.

Flowchart

subrutin

pembagian dapat dilihat pada gambar 3.16.

(69)

3.6.11 Subrutin Kuadrat

Subrutin kuadrat merupakan

flowchart

implementasi algoritma yang sudah

dijelaskan di dalam dasar teori.

Flowchart

subrutin kuadrat dapat dilihat pada gambar

3.17.

(70)

3.6.12 Subrutin Akar Kuadrat

Subrutin akar kuadrat merupakan

flowchart

implementasi algoritma yang

sudah dijelaskan di dalam dasar teori.

Flowchart

subrutin akar kuadrat dapat dilihat

pada gambar 3.18.

(71)

3.6.13 Konversi Biner ke Heksadesimal

Konversi biner ke heksadesimal merupakan

flowchart

implementasi algoritma

yang sudah dijelaskan di dalam dasar teori.

Flowchart

konversi biner ke

heksadesimal dapat dilihat pada gambar 3.19.

(72)

3.6.14 Konversi BCD ke Heksadesimal

Konversi BCD ke heksadesimal merupakan

flowchart

implementasi algoritma

yang sudah dijelaskan di dalam dasar teori.

Flowchart

konversi BCD ke

heksadesimal dapat dilihat pada gambar 3.20.

(73)

3.6.15 Konversi Desimal ke Heksadesimal

Konversi desimal ke heksadesimal merupakan

flowchart

implementasi

algoritma yang sudah dijelaskan di dalam dasar teori.

Flowchart

konversi desimal ke

heksadesimal dapat dilihat pada gambar 3.21.

(74)

3.6.16 Algoritma Tampilan Bilangan Negatif

Penampilan bilangan negatif berbeda dengan bilangan positif. Untuk bilangan

desimal dan BCD penampilan bilangan negaitfnya diberi tanda negatif (‘-‘) pada

LCD di baris satu sebelah kiri. Sedangkan untuk bilangan biner dan heksadesimal

penampilan bilangan negaitfnya diubah kedalam bentuk 2’s komplemennya.

.

Flowchart

tampilan bilangan negatif dapat dilihat pada gambar 3.22.

(75)
(76)

55

4.1 Bentuk Fisik Kalkulator

Bentuk fisik dari kalkulator yang dirancang ditunjukkan pada gambar 4.1.

Kalkulator yang dibuat terdiri dari

keypad

sebagai masukan dan LCD sebagai

keluaran. LCD berada pada posisi paling atas dan

keypad

dibawahnya. Pada

keypad

terdapat label angka-angka dan operator yang dapat dipilih sebagai masukan. Tombol

ON dan tombol OFF berada di sebelah kanan diantara LCD dan

keypad.

(77)

Bagian dalam kalkulator terdiri dari rangkaian mikrokontroler, rangkaian

pengunci ON/OFF dan batu baterai sebagai catu daya. Bagian dalam kalkulator dapat

dilihat pada gambar 4.2.

Gambar 4.2. Bagian dalam kalkulator.

Rangkaian mikrokontroler terdiri dari mikrokontroler AT89S52 sebagai unit

pemroses data, kristal sebagai osilator mikrokontroler, tombol reset dan pin-pin sisir

sebagai penghubung mikrokontroler ke LCD dan

keypad.

Sedangkan rangkaian

pegunci ON/OFF terdiri dari thyristor, IC Regulator LM7805 sebagai pembatas

tegangan 5V dan pin sisir penghubung rangkian dengan tombol ON/OFF. Batu

(78)

4.2 Penggunaan Alat

Penggunaan alat sandi heksadesimal dengan contoh penambahan F dengan 9

yang akan menghasilkan 18 dalam sandi heksadesimal sebagai berikut.

Langkah 1.

Pertama-tama yang harus dilakukan pengguna adalah menekan

tombol ON. Setelah tombol ON ditekan kondisi

default

adalah pada sandi

heksadesimal dengan tampilan seperti pada gambar 4.3.

Gambar 4.3. Tampilan awal setelah penekanan tombol ON.

Langkah 2.

Pengguna dapat memberi data masukan. Data masukan pertama

adalah F. Tampilan data masukan berada di sebelah kanan baris kedua dari LCD.

Tampilan seperti pada gambar 4.4.

(79)

Langkah 3.

Pemberian masukan operator yang akan digunakan. Operator

yang tersedia adalah kuadrat (x

2

), akar kuadrat (

), perkalian (x), pembagian (÷),

penambahan (+), pengurangan (-) dan bilangan negatif (+/-). Pada pembahasan ini

operator yang digunakan adalah penambahan. Setelah penekanan tombol operator,

akan muncul simbol operator yang dipilih di sebelah kanan baris pertama LCD.

Tampilan operator seperti pada gambar 4.4 pada bagian yang diberi lingkaran.

Gambar 4.4. Tampilan simbol operator.

Langkah 4.

Memberikan masukan data kedua. Pada pembahasan, data

masukan kedua adalah 9. Setelah penekanan tombol 9, maka tampilan LCD seperti

pada gambar 4.5.

(80)

Langkah 5.

Untuk mengetahui hasil perhitungan adalah dengan menekan

tombol sama dengan (=). Setelah penekanan tombol sama dengan, simbolnya akan

muncul di sebelah kanan baris pertama LCD seperti pada gambar 4.6 yang diberi

tanda lingkaran garis putus-putus. Hasil perhitungan terletak di baris kedua LCD

seperti pada gambar 4.6 yang diberi tanda elips garis penuh.

Gambar 4.6. Tampilan hasil perhitungan.

4.2.1 Pemilihan MODE Kalkulator

Mode kalkulator adalah basis/sandi bilangan yang digunakan. Ada empat

basis bilangan yang dapat dipilih yaitu heksadesimal, biner, desimal dan BCD.

Informasi mengenai sandi yang digunakan terletak di bagian tengah baris pertama

LCD dengan tulisan simbol HEX untuk heksadesimal, BIN untuk biner, DEC untuk

desimal dan BCD untuk sandi BCD. Pembahasan mode kalkulator mengacu pada

proses konversi nilai 18 heksadesimal kedalam bentuk sandi biner, desimal dan BCD.

(81)

Langkah 1.

Beri masukan data awal. Sebagai contoh data awal yang akan

dikonversi adalah 18 heksadesimal (untuk selanjutnya nilai heksadesimal diberi tanda

H seperti 18H). Tampilan datanya seperti pada gambar 4.7.

Gambar 4.7. Tampilan data yang akan dikonversi.

Langkah 2.

Menekan tombol MODE. Setelah penekanan tombol MODE,

maka akan mucul tulisan MODE pada bagian tengah baris pertama LCD seperti pada

gambar 4.8.

(82)

Langkah 3.

Memilih MODE yang diinginkan. Pada pembahasan, konversi

yang pertama adalah ke dalam bentuk biner. Nilai 18H dalam bentuk binernya adalah

11000 biner (untuk selanjutnya sandi biner mengikuti format 11000

2

). Tampilan data

hasil konversi seperti pada gambar 4.9.

Gambar 4.9. Hasil konversi ke dalam sandi biner.

Konversi berikutnya adalah kedalam bentuk desimal. Nilai 18H dalam bentuk

desimalnya adalah 24. Setelah melakukan langkah-langkah seperti diatas, maka

tampilan pada LCD seperti pada gambar 4.10.

(83)

Bentuk konversi yang terakhir adalah kedalam bentuk sandi BCD. Sandi BCD

adalah representasi sandi desimal kedalam bentuk biner. Nilai 24 desimal diubah

kedalam sandi BCD adalah 100100

BCD.

Tampilan hasil konversi dapat dilihat pada

gambar 4.11.

4.11. Hasil konversi kedalam bentuk BCD.

4.2.2 Tampilan Bilangan Negatif

Representasi bilangan negatif untuk sandi heksadesimal adalah diubah

kedalam bentuk komplemen 16. Untuk sandi biner, bilangan negatifnya diubah

kedalam bentuk komplemen 2. Sedangkan untuk bilangan desimal dan sandi BCD,

representasi bilangan negatifnya adalah dengan diberi tanda negatif (-). Pembahasan

tampilan bilangan negatif mengacu pada pengubahan bilangan positif 9H.

Kondisi awal kalkulator berada pada sistem sandi heksadesimal dengan nilai

postif 9H seperti pada gambar 4.12. Untuk mengetahui nilai negatifnya, pengguna

harus menekan tombol +/-. Nilai negatif 9H adalah FFFFFFFFFFFFFFF7H. Setelah

(84)

Gambar 4.12. Data positif yang akan diubah kedalam bentuk negatifnya.

Gambar 4.13. Tampilan bilangan negatif sandi heksadesimal.

Nilai negatif 9H dalam bentuk biner adalah 1111111111110111

2.

Untuk

mengubah kedalam sandi biner, terlebih dahulu harus dilakukan pengubahan mode

seperti yang dijelaskan sebelumnya. Tampilan negatif sandi biner dapat dilihat pada

gambar 4.14.

(85)

Sedangkan untuk bilangan desimal dan sandi BCD nilai negatifnya ditandai

dengan simbol “-“ di sebelah kiri baris pertama LCD. Tampilan bilangan negatif

desimal dapat dilihat pada gambar 4.15 dan tampilan bilangan negatif sandi BCD

pada gambar 4.16 simbol negatifnya adalah bagian yang diberi tanda lingkaran.

Gambar 4.15. Tampilan bilangan negatif sandi desimal.

Gambar 4.16. Tampilan bilangan negatif sandi BCD.

4.2.3 Tampilan Sisa Pembagian

(86)

antara 9H dengan 2H yang akan menghasilkan hasil pembagian 4H dengan sisa

pembagian 1H. Berikut adalah langkah-langkahnya.

Langkah 1.

Kondisi awal kalkulator berada pada sistem sandi heksadesimal

dengan nilai data masukan pertama adalah 9H seperti pada gambar 4.17.

Gambar 4.17. Data masukan pertama yang akan dibagi

Langkah 2.

Menekan tombol operator pembagian bagi (÷) dan pada tampilan

akan muncul simbol “÷” di sebelah kanan baris pertama LCD seperti pada gambar

4.18.

(87)

Langkah 3.

Memberikan data masukan kedua sebagai pembagi yaitu 2H.

Tampilannya seperti pada gambar 4.19.

Gambar 4.19. Tampilan data pembagi.

Langkah 4.

Untuk melihat hasil pembagian adalah dengan menekan tombol

sama dengan (“=”). Setelah penekanan tombol “=” maka akan muncul hasil

pembagiannya di LCD. Hasil pembagian terletak pada baris kedua LCD. Sedangkan

sisa pembagian terletak pada baris pertama LCD dengan ditandai tulisan “SISA = “

tampilan hasilnya terlihat pada gambar 4.20.

Gambar 4.20. Tampilan hasil dan sisa pembagian.

Apabila sisa pembagian adalah nol (0), tulisan “SISA = “ pada LCD baris

(88)

4.2.4 Tampilan Pesan ERROR!

Pada kalkulator ini jika proses perhitungan melebihi batas kemampuan

maksimum yang sudah ditetapkan atau pengguna salah memberi masukan maka akan

muncul tulisan “ERROR!” pada baris pertama LCD terlihat pada gambar 4.21. Ada

beberapa hal yang menyebabkan munculnya tulisan “ERROR!” yaitu

1.

Proses perhitungan da

Gambar

Tabel 2.1. Konversi biner dan heksadesimal.
gambar 2.3 dan fungsi pin dapat dilihat pada tabel 2.4.
Tabel 2.4. Fungsi pin Mikrokontroler AT89S52.
Gambar 2.4. Lokasi RAM Internal
+7

Referensi

Dokumen terkait

 Jilid kawat ini umumnya dipergunakan untuk menjilid buku, majalah, tabloid, brosur yang jumlah halamanya tidak lebih dari 100 halaman.  Bisa dikerjakan dengan jalan manual

Bagi masyarakat umum, lebih khususnya masyarakat di Kecamatan Bandar Masilam Kabupaten Simalungun dalam penelitian ini diharapkan menjadi bahan pengetahuan tentang

Based on two political anec- dotes collected during fieldwork among Darhads in Northern Mongolia as well as on recent studies of social memory in Mongolia and Buryatia by

Saya yang bertanda tangan di bawah ini menyatakan dengan sesungguhnya bahwa skripsi saya yang berjudul “Pengaruh Proses Penyusunan Anggaran dan Partisipasi Anggaran Terhadap

Hasil perhitungan LQ Kabupaten Madiun Tahun 2012-2016 tersebut menunjukkan bahwa sektor-sektor yang mempunyai keunggulan kompetitif dan spesialisasi adalah Sektor

Ketepatwaktuan atas informasi yang terdapat dalam laporan keuangan yang akan dipublikasikan dapat dipengaruhi oleh lamanya rentang waktu antara tanggal laporan

Apabila ditinjau dari sudut pandang pengguna jasa akuntansi, akuntansi dapat didefinisikan sebagai suatu disipin ilmu dan aktifitas jasa yang menyediakan informasi yang diperlukan