Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS...

200
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 2007 i

Transcript of Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS...

Page 1: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

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

2007

i

Page 2: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

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

ii

Page 3: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

iii

Page 4: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

iv

Page 5: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

v

Page 6: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP

Kupersembahkan tugas akhir ini kepada kedua orang tuaku dan diriku sendiri

“ plan your work and work your plan ”

vi

Page 7: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

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

vii

Page 8: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

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

viii

Page 9: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

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

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

ix

Page 10: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

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

x

Page 11: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

DAFTAR ISI

Halaman Judul .........................................................................................................

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

i

iii

iv

v

vi

vii

viii

ix

xi

xvi

xix

1

1

2

2

3

3

4

4

5

5

6

7

8

8

8

xi

Page 12: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

2.7 Algoritma Pembagian .......................…………………………………

2.8 Algoritma Kuadrat ................................................................................

2.9 Algoritma Akar Kuadrat ........………………………………………...

2.10 Bilangan 2’S Komplemen ..............…………………………………

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

9

11

11

12

12

13

13

14

15

16

17

17

19

20

20

21

22

23

24

24

27

27

28

28

29

31

32

33

xii

Page 13: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

3.6.3 Subrutin Operator .........................................................................

3.6.4 Subrutin Masukan Data 2 .............................................................

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

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

36

38

41

42

44

45

46

47

48

49

50

51

52

53

55

55

57

59

62

64

67

68

68

69

71

72

73

74

xiii

Page 14: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

4.3.7 Operasi Kuadrat ………………………………………………...

4.3.7.1 Operasi Kuadrat Mode Heksadesimal ……………...…...

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

76

76

77

78

79

81

81

82

83

84

85

86

86

87

88

89

89

90

91

92

93

93

95

96

97

99

99

100

xiv

Page 15: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

4.3.12.3 Operasi Akar Kuadrat Mode Desimal …………………

4.3.12.4 Operasi Akar Kuadrat Mode BCD …………………….

4.3.13 Perhitungan Berulang Kali …………………………………….

4.3.14 Konversi Berulang Kali ……………………………………….

BAB V KESIMPULAN DAN SARAN ………………………………………….

5.1 Kesimpulan …………………………………………………………...

5.2 Saran ………………………………………………………………….

DAFTAR PUSTAKA .............................................................................................

LAMPIRAN ............................................................................................................

101

102

103

104

106

106

106

107

108

xv

Page 16: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

DAFTAR GAMBAR

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

xvi

Page 17: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Gambar 3.10. Flowchart Subrutin Masukan Data 2 ………..................... 38

Gambar 3.10. Flowchart Subrutin Masukan Data 2 (lanjutan) ................ 39

Gambar 3.10. Flowchart Subrutin Masukan Data 2 (lanjutan) ……........ 40

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

xvii

Page 18: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Gambar 4.6. Tampilan hasil perhitungan ………………………………. 59

Gambar 4.7. Tampilan data yang akan dikonversi …………………...… 60

Gambar 4.8. Tampilan MODE …………………………………………. 60

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

xviii

Page 19: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

DAFTAR TABEL

Halaman

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

xix

Page 20: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Tabel 4.9. Data operasi kuadrat bilangan biner ………………………... 77

Tabel 4.10. Data operasi kuadrat bilangan desimal ……………………. 78

Tabel 4.11.Data operasi kuadrat sandi BCD …………………………… 79

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

xx

Page 21: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Tabel 4.30. Data operasi akar kuadrat bilangan desimal ………………. 101

Tabel 4.31. Data operasi akar kuadrat sandi BCD ……………………... 102

Tabel 4.32. Data perhitungan berulang kali ……………………………. 103

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

xxi

Page 22: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

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

1

Page 23: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

2

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,

heksadesimal dan BCD.

Page 24: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

3

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 ?

Page 25: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

4

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

Berisi tentang kesimpulan dan saran dari penulis.

Page 26: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

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 2n. Bit yang dikalikan

dengan 2n terbesar dinamakan MSB (Most Significant Bit) dan yang dikalikan

dengan 2n 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 23 + 0 x 22 + 1 x 21 + 0 x 20 = 8 + 0 + 2 + 0 = 10

5

Page 27: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

6

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]

Page 28: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

7

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

Page 29: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

8

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]

Page 30: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

9

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 H0 ke 0 dan tambahkan P kembali ke S,

jika tidak maka set H0 ke 1.

5. Lakukan proses no. 2 - 4 sebanyak jumlah bit yang dihitung. [5]

Page 31: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

10

Sebagai contoh :

2 10 102 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 H0 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 H0 0 0 0 0 0

1 0 0

0 0 0 0 1 0 10

Subb 1 0 -

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

Sisa Hasil Bagi

Page 32: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

11

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 :

21010 atau 10 (desimal)

Page 33: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

12

Hasil awal 0 0

1 0 Set Kuadratkan 0 1 0 0

0 1 0 0 1 0 1 0Bandingkan < Set 1 1Kuadratkan 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.

Pada operasi perkalian dan pembagian tanda pada kedua bilangan disimpan

terlebih dahulu. Apabila hanya salah satu bilangan saja yang bertanda maka hasil

perhitungan diubah ke dalam bentuk 2’s komplemennya. Jika kedua buah bilangan

bertanda, hasilnya tidak perlu diubah ke dalam bentuk 2’s komplemennya. [5]

Page 34: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

13

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]

1011012 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 1011012 2D16

2.13 Konversi Desimal ke Heksadesimal

Pengubahan desimal ke heksadesimal adalah dengan cara mengalikan tiap

angkan desimal dengan An , nilai n adalah urutan angka. Setelah dikalikan, hasilnya

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

[7]

247910 2.A3 + 4.A2 + 7.A1 + 9.A0

7D0 + 190 + 46 + 9

247910 9AF16

Page 35: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

14

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 = ANODAK = KATODAG = 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.

Untuk membuat keadaan ON thyristor adalah dengan cara memberikan arus

pada kaki GATE sebesar IL (Latching Current). IL merupakan arus minimum yang

dibutuhkan agar thyristor ON. Sedangkan untuk membuat keadaan OFF adalah

dengan cara mengurangi besarnya arus pada kaki GATE sampai sebesar IH (Holding

Current). IH adalah arus minimum yang dibutuhkan agar thyristor OFF. [8]

Page 36: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

15

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.

Pengecekan pada matriks keypad adalah dengan sistem pengecekan secara

berurutan (scanning). Sebagai contoh apabila ingin mengecek angka 1, maka terlebih

dahulu kolom K1 diberi logika ‘1’, lalu dilakukan pengecekan tiap baris. Apabila

baris B1 = ‘1’ artinya tombol 1 sedang ditekan. Pengecekan ini juga berlaku untuk

tombol yang lainnya dengan pengecekan baris dan kolom secara bergantian.

Page 37: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

16

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

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

VCC Catu daya LCD (+5V) GND Ground (0V)

Page 38: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

17

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.

Gambar 2.3. Konfigurasi pin Mikrokontroler AT89S52.

Page 39: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

18

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 = 0INT (interupsi ekternal 0) P3.3 = 1INT (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

XTAL2 Keluaran osilator internal, apabila menggunakan osilator eksternal pin tidak dihubungkan (No Connect)

Page 40: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

19

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

Gambar 2.4. Lokasi RAM Internal

Page 41: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

20

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 P = Paritas genap akumulator, menjaga agar di akumulator selalu genap

Page 42: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

21

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.

Gambar 2.5. Rangkaian osilator mikrokontroler.

Page 43: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

22

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 :

T = R x C (2.1)

Page 44: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

BAB III

PERANCANGAN ALAT

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.

23

Page 45: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

24

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

rangkaian matriks keypad dapat dilihat pada gambar 3.3.

Page 46: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

25

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

yang digunakan dapat dilihat pada tabel 3.1.

Page 47: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

26

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

MODE 0 0 0 1 1 0 0 0 0 0 0 0

Page 48: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

27

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.

Mikrokontroler ini menghubungkan antara keypad dan LCD. Konfigurasinya dapat

dilihat pada gambar 3.4.

Page 49: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

28

VCC

VCC

VCC

U1

AT89C52

91819

20

2930

31

40

12345678

2122232425262728

1011121314151617

3938373635343332

RSTXTAL2XTAL1

GN

D

PSENALE/PROG

EA/VPP

VCC P1.0/T2

P1.1/T2-EXP1.2P1.3P1.4P1.5P1.6P1.7

P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15

P3.0/RXDP3.1/TXD

P3.2/INTOP3.3/INT1

P3.4/TOP3.5/T1

P3.6/WRP3.7/RD

P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7

C310uF

R110K

XTAL

12 MHz

C1

30pF

C2

30pF

RESET12

LCDMODULE

D0

D7

.

.

.

.

RS EVCC

GND

MATRIKS KEYPAD8 x 4

BARIS

KOLOM

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

kapasitor sebesar 10 µF didapat nilai resistor sebesar 10 KΩ.

Page 50: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

29

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

LM78051 3

2

IN OUT

GN

D

OFF

1 2

ON

1 2

R2

R1

MCR100

G

KA Vout = 5V

Gambar 3.5. Rangkaian pengunci ON/OFF.

Besarnya tegangan di kaki GATE (VG) yang diinginkan adalah 4,5V. Dengan

VCC sebesar 9V didapat nilai R1 dan R2

222121

25,0

921

25,4

RRRRR

RRR

R

=++

=

+=

R1 = R2 (2)

Page 51: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

30

Besar arus pengunci IL agar thyristor ON yang dibutuhkan berdasarkan

datasheet adalah 10mA sehingga besar nilai R1 dan R2 adalah

LI

VCCRR =+ 21 ; R1 = R2

Ω=

=

=

450110.10.2

91

12

3

R

R

IVCCR

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 IL harus dikurangi sampai

ke nilai arus IH. Berdasarkan datasheet nilai IH 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 -

5,5V.

Page 52: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

31

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

CEK OPERATOR

CEK MASUKANDATA 2

CEK HASIL

END Gambar 3.6. Flowchart program utama

Page 53: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

32

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

Gambar 3.7. Flowchart subrutin Mode

Page 54: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

33

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.

Gambar 3.8. Flowchart subrutin Masukan Data 1

Page 55: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

34

Gambar 3.8. Flowchart subrutin Masukan Data 1 (lanjutan)

Page 56: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

35

Gambar 3.8. Flowchart subrutin Masukan Data 1 (lanjutan)

Page 57: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

36

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

Akar Kuadrat √ --

Page 58: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

37

Gambar 3.9. Flowchart subrutin Operator

Page 59: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

38

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

Gambar 3.10. Flowchart subrutin Masukan Data 2

Page 60: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

39

Gambar 3.10. Flowchart subrutin Masukan Data 2 (lanjutan)

Page 61: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

40

Gambar 3.10. Flowchart subrutin Masukan Data 2 (lanjutan)

Page 62: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

41

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.

Gambar 3.11. Flowchart subrutin Hasil

Page 63: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

42

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

instruksi, function set, display ON/OFF control dan entry mode set.

Page 64: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

43

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.

Gambar 3.12. Subrutin tampilan LCD

Page 65: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

44

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.

Gambar 3.13. Subrutin penambahan

Page 66: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

45

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.

Gambar 3.14. Subrutin pengurangan

Page 67: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

46

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.

Gambar 3.15. Subrutin perkalian

Page 68: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

47

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.

Gambar 3.16. Subrutin pembagian.

Page 69: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

48

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.

Gambar 3.17. Subrutin kuadrat

Page 70: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

49

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.

Gambar 3.18. Subrutin akar kuadrat

Page 71: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

50

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.

Gambar 3.19. Konversi biner ke heksadesimal

Page 72: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

51

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.

Gambar 3.20. Konversi BCD ke heksadesimal

Page 73: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

52

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.

Gambar 3.21. Konversi desimal ke heksadesimal

Page 74: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

53

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.

3.22. Tampilan bilangan negatif

Page 75: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

54

3.22. Tampilan bilangan negatif (lanjutan)

Page 76: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

55

BAB IV

HASIL DAN PEMBAHASAN

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.

Gambar 4.1. Bentuk fisik kalkulator.

Page 77: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

56

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

baterai yang digunakan adalah batu baterai dengan tegangan 9V.

Page 78: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

57

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.

Gambar 4.4. Tampilan data masukan pertama.

Page 79: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

58

Langkah 3. Pemberian masukan operator yang akan digunakan. Operator

yang tersedia adalah kuadrat (x2), 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.

Gambar 4.5. Tampilan data masukan kedua.

Page 80: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

59

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.

Berikut langkah-langkah pemilihan MODE kalkulator.

Page 81: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

60

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.

Gambar 4.8. Tampilan MODE.

Page 82: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

61

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

Gambar 4.10. Hasil konversi kedalam bentuk desimal.

Page 83: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

62

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

penekanan tombol +/- maka tampilan akan seperti pada gambar 4.13.

Page 84: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

63

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

Gambar 4.14. Tampilan bilangan negatif sandi biner.

Page 85: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

64

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

Kalkulator yang dibuat tidak mendukung untuk operasi bilangan floating

point, maka dalam proses pembagian akan ditampilkan hasil dan sisa pembagiannya.

Pembahasan mengenai tampilan sisa pembagian mengacu pada contoh pembagian

Page 86: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

65

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.

Gambar 4.18. Tampilan simbol operator pembagian.

Page 87: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

66

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

pertama akan tetap ada dengan format “SISA = 0”.

Page 88: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

67

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 data melebihi kemampuan batas maksimum kalkulator.

2. Proses konversi bilangan melebihi kemampuan batas maksimum kalkulator.

3. Nilai bilangan dibagi dengan nol (0).

4. Nilai bilangan negatif diakarkan.

5. Pemberian nilai masukan 1010 sampai 1111 pada sistem sandi BCD.

Gambar 4.21. Tampilan pesan ERROR!.

Mengenai batas-batas kemampuan kalkulator akan dibahas pada pembahasan

selanjutnya. Apabila muncul pesan “ERROR!” maka hanya ada satu tombol yang

dapat ditekan yaitu tombol “C”. Setelah penekanan tombol “C”, kalkulator dapat

digunakan kembali.

Page 89: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

68

4.3 Data Pengamatan

Pengujian terhadap alat yang dibuat dilakukan dengan cara membandingkan

hasil perhitungan alat dengan dengan hasil dari kalkulator pembanding. Kalkulator

pembanding yang digunakan adalah aplikasi kalkulator yang tersedia pada komputer.

4.3.1 Konversi Heksadesimal ke Biner

Pengambilan data konversi heksadesimal ke biner dilakukan dengan cara

memberikan masukan data saat kalkulator berada pada mode heksadesimal (HEX)

kemudian mengubah modenya ke bentuk biner (BIN). Data konversi heksadesimal ke

biner dapat dilihat pada tabel 4.1.

Tabel 4.1. Data konversi heksadesimal ke biner.

No Masukan HEX

Hasil Kalkulator Pembanding

Keluaran Tampilan LCD

1 3 11 112 9 1001 10013 982 1001 1000 0010 1001 1000 00104 1234 1 0010 0011 0100 1 0010 0011 01005 F 1111 11116 FF 1111 1111 1111 11117 FFF 1111 1111 1111 1111 1111 11118 1FFF 1 1111 1111 1111 1 1111 1111 11119 4FFF 100 1111 1111 1111 100 1111 1111 111110 7FFF 111 1111 1111 1111 111 1111 1111 111111 8000 1000 0000 0000 0000 ERROR! 12 8001 1000 0000 0000 0001 ERROR! 13 FFFF 1111 1111 1111 1111 ERROR! 14 10000 1 0000 0000 0000 0000 ERROR!

15 123456789ABCDEF1 0010 0011 0100 0101 0110

0111 1000 1001 1010 1011 1100 1101 1110 1111

ERROR!

Page 90: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

69

Pada tabel 4.1 pengujian dilakukan dengan cara memberi masukan pada mode

HEX kemudian mengubahnya ke mode BIN. Hasil konversi pemberian masukan

sampai 4 angka heksadesimal 7FFFH sesuai dengan hasil kalkulator pembanding dan

dapat ditampilkan hasilnya pada mode BIN karena jumlah angka hasil konversinya

tidak lebih dari 15 angka.

Saat pemberian masukan 4 angka heksadesimal 8000H, hasil pada LCD

menampilkan pesan ERROR!. Hal ini karena hasil konversi 8000H, dapat dilihat

pada hasil kalkulator pembanding adalah 1000 0000 0000 00002 sudah melebihi dari

15 angka. Pemberian masukan lebih dari 7FFFH akan menampilkan pesan ERROR!

karena hasil konversi ke mode binernya sudah lebih dari 15 angka.

Nilai masukan maksimum untuk konversi mode HEX ke mode BIN adalah

7FFFH dengan hasil konversi 111 1111 1111 11112. Pesan ERROR! pada LCD akan

muncul apabila hasil konversi melebihi 15 angka.

4.3.2 Konversi Biner ke Heksadesimal

Pengambilan data konversi biner ke heksadesimal sama dengan proses

pengambilan data sebelumnya. Kondisi awal kalkulator berada pada mode biner

kemudian diberi masukan dan diubah ke mode heksadesimal. Pengambilan data

berhenti sampai nilai 111 1111 1111 11112 karena nilai ini adalah batas maksimum

Page 91: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

70

masukan data untuk mode biner. Data konversi biner ke heksadesimal dapat dilihat

pada tabel 4.2.

Tabel 4.2. Data konversi biner ke heksadesimal.

No Masukan BIN

Hasil Kalkulator Pembanding

Tampilan LCD HEX

1 11 3 32 1001 9 93 1001 1000 0010 982 9824 1 0010 0011 0100 1234 12345 1010 1011 1100 1101 ABCD ABCD6 1111 F F7 1111 1111 FF FF8 1111 1111 1111 FFF FFF9 1 1111 1111 1111 1FFF 1FFF10 10 1111 1111 1111 2FFF 2FFF11 11 1111 1111 1111 3FFF 3FFF12 100 1111 1111 1111 4FFF 4FFF13 101 1111 1111 1111 5FFF 5FFF14 110 1111 1111 1111 6FFF 6FFF15 111 1111 1111 1111 7FFF 7FFF

Dari tabel 4.2 pemberian masukan pada mode biner sampai batas masukan

maksimum masukannya 15 angka yaitu 111 1111 1111 11112 hasil konversi ke mode

heksadesimalnya sesuai dengan kalkukator pembanding dan dapat ditampilkan di

LCD mode heksadesimal yaitu 7FFFH. Hal ini karena hasil konversi tidak melebihi

dari 15 angka.

Pada konversi mode biner ke mode heksadesimal, pemberian masukan

maksimumnya adalah 111 1111 1111 11112 dan hasil konversi ke mode heksadesimal

tidak akan memunculkan pesan ERROR! karena hasil konversi tidak lebih dari 15

angka.

Page 92: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

71

4.3.3 Konversi Heksadesimal ke BCD

Pengambilan data konversi heksadesimal ke BCD sama dengan proses

pengambilan data sebelumnya. Kondisi awal kalkulator berada pada mode

heksadesimal kemudian diberi masukan dan diubah ke mode BCD. Pada

pengambilan data ini kalkulator pembanding diganti dengan perhitungan secara teori

karena kalkulator pembanding yang digunakan tidak mendukung perhitungan

konversi kedalam bentuk sandi BCD. Data konversi heksadesimal ke biner dapat

dilihat pada tabel 4.3.

Tabel 4.3. Data konversi heksadesimal ke BCD.

No Masukan HEX Perhitungan Teori Tampilan LCD

BCD 1 3 11 11 2 9 1001 10013 10 1 0110 1 01104 63 1001 1001 1001 10015 1F3D 111 1001 1001 0111 111 1001 1001 01116 1F3E 111 1001 1001 1000 111 1001 1001 10007 1F3F 111 1001 1001 1001 111 1001 1001 10018 1F40 1000 0000 0000 0000 ERROR! 9 1F41 1000 0000 0000 0001 ERROR! 10 1F42 1000 0000 0000 0010 ERROR!

Pada tabel 4.3 pemberian masukan sampai 4 angka heksadesimal 1F3FH hasil

konversi ke mode BCD sesuai dengan hasil kalkulator pembanding dan dapat

ditampilkan di LCD. Hal ini karena hasil konversi 1F3FH ke mode BCD adalah 111

1001 1001 1001BCD tidak lebih dari 15 angka.

Saat pemberian masukan lebih 1F40H pada LCD muncul pesan ERROR!. Hal

ini karena hasil konversi 1F40H ke mode BCD yaitu 1000 0000 0000 0000BCD sudah

Page 93: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

72

lebih dari 15 angka. Pemberian masukan lebih dari 1F3FH pada konversi mode

heksadesimal ke mode BCD akan muncul pesan ERROR! karena hasil konversinya

sudah lebih dari 15 angka.

Nilai masukan maksimum pada konversi mode heksadesimal ke mode BCD

adalah 1F3FH. Pesan ERROR! akan muncul apabila hasil konversi sudah melebihi 15

angka.

4.3.4 Konversi BCD ke Heksadesimal

Pengambilan data konversi BCD ke heksadesimal sama dengan proses

pengambilan data sebelumnya. Kondisi awal kalkulator berada pada mode BCD

kemudian diberi masukan dan diubah ke bentuk heksadesimal. Pengambilan data

berhenti sampai nilai 111 1001 1001 1001BCD karena nilai ini adalah batas maksimum

masukan mode BCD. Data konversi BCD ke heksadesimal pada tabel 4.4.

Tabel 4.4. Data konversi BCD ke heksadesimal.

No Masukan BCD Perhitungan Teori Tampilan LCD

HEX 1 11 3 32 110 6 63 1001 9 94 111 1001 1001 0111 1F3D 1F3D5 111 1001 1001 1000 1F3E 1F3E6 111 1001 1001 1001 1F3F 1F3F7 1010 -- ERROR! 8 1011 -- ERROR! 9 1100 -- ERROR! 10 1111 -- ERROR!

Page 94: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

73

Pada tabel 4.4 pemberian masukan maksimum 15 angka pada mode BCD

yaitu 111 1001 1001 1001BCD hasil konversi mode BCD ke heksadesimal sesuai

dengan hasi perhitungan teori dan dapat ditampilkan pada LCD. Hal ini karena hasil

konversi 111 1001 1001 1001BCD ke mode heksadesimal adalah 1F3FH tidak lebih

dari 15 angka.

Pesan ERROR! pada LCD akan muncul apabila pemberian masukan 1010,

1011, 1100, 1101, 1110 atau 1111 pada konversi mode BCD ke mode heksadesimal.

Hal ini karena nilai tertinggi sandi BCD adalah 1001.

4.3.5 Konversi Heksadesimal ke Desimal

Pengambilan data konversi heksadesimal ke desimal dilakukan dengan cara

memberikan masukan maksimum kalkulator mode DEC (desimal) kemudian

mengubah modenya ke heksadesimal. Data konversi heksadesimal ke desimal dapat

dilihat pada tabel 4.5.

Tabel 4.5. Data konversi heksadesimal ke desimal.

No Masukan HEX

Hasil Kalkulator Pembanding

Tampilan LCD DEC

1 6 6 62 FF 255 2553 2500 9472 94724 2136E 130646 1306465 38D7EA4C67FFD 999999999999997 9999999999999976 38D7EA4C67FFE 999999999999998 9999999999999987 38D7EA4C67FFF 999999999999999 9999999999999998 38D7EA4C68000 1000000000000000 ERROR! 9 38D7EA4C68001 1000000000000001 ERROR! 10 FFFFFFFFFFFFFFF 1152921504606846975 ERROR!

Page 95: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

74

Pada tabel 4.5 pengujian dilakukan dengan cara memberi masukan mode

heksadesimal kemudian mengubah niali masukan ke mode desimal. Pemberian

masukan mode heksadesimal sampai nilai 38D7EA4C67FFFH hasil konversinya ke

mode desimal sesuai dengan kalkulator pembanding dan dapat ditampilkan di LCD.

Hal ini karena hasil konversi 38D7EA4C67FFFH ke mode desimal yaitu

999999999999999 tidak lebih dari 15 angka.

Saat pemberian masukan 38D7EA4C68000H, pada LCD muncul pesan

ERROR!. Hal ini karena hasil konversi 38D7EA4C68000H ke mode desimal, dapat

dilihat pada hasil kalkulator pembanding adalah 1000000000000000 sudah lebih dari

15 angka. Pemberian masukan lebih dari 38D7EA4C67FFFH akan muncul pesan

ERROR! pada LCD karena hasil konversi ke mode desimalnya sudah lebih dari 15

angka.

Nilai masukan maksimum konversi mode heksadesimal ke mode desimal

adalah 38D7EA4C67FFFH. Pesan ERROR! akan muncul di LCD apabila hasil

konversi lebih dari 15 angka.

4.3.6 Konversi Desimal ke Heksadesimal

Pengambilan data konversi desimal ke heksadesimal dilakukan dengan cara

memberikan masukan data kalkulator mode desimal kemudian mengubah ke mode

heksadesimal. Pengambilan data berhenti pada nilai 999999999999999 karena ini

Page 96: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

75

adalah nilai maksimum masukan data dalam mode DEC. Data konversi heksadesimal

ke biner dapat dilihat pada tabel 4.6.

Tabel 4.6. Data konversi desimal ke heksadesimal.

No. Masukan DEC

Kalkulator Pembanding HEX

Tampilan LCD HEX

1 9 9 92 99 63 633 999 3E7 3E74 9999 270F 270F5 99999 1869F 1869F6 999999 F423F F423F7 9999999 98967F 98967F8 99999999 5F5E0FF 5F5E0FF9 999999999 3B9AC9FF 3B9AC9FF10 9999999999 2540BE3FF 2540BE3FF11 99999999999 174876E7FF 174876E7FF12 999999999999 E8D4A50FFF E8D4A50FFF13 9999999999999 9184E729FFF 9184E729FFF14 99999999999999 5AF3107A3FFF 5AF3107A3FFF15 999999999999999 38D7EA4C67FFF 38D7EA4C67FFF

Dari tabel 4.2 pemberian masukan pada mode desimal sampai batas masukan

maksimum masukannya 15 angka yaitu 999999999999999 hasil konversi ke mode

heksadesimalnya sesuai dengan kalkukator pembanding dan dapat ditampilkan di

LCD mode heksadesimal yaitu 38D7EA4C67FFFH. Hal ini karena hasil konversi

tidak melebihi dari 15 angka.

Pada konversi mode biner ke mode heksadesimal, masukan maksimumnya

adalah 999999999999999 dan hasil konversi ke mode heksadesimal tidak akan

memunculkan pesan ERROR! karena hasil konversi tidak lebih dari 15 angka.

Page 97: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

76

4.3.7 Operasi Kuadrat

Pengujian terhadap operasi kuadrat dilakukan dengan memberi nilai masukan,

kemudian mencari hasil kuadratnya. Pengujian ini dilakukan terhadap keempat mode

yang tersedia yaitu mode HEX, mode BIN, mode DEC dan mode BCD.

4.3.7.1 Operasi Kuadrat Mode Heksadesimal

Pengambilan data operasi kuadrat mode heksadesimal dilakukan dengan cara

memeberi masukan kemudian mengkuadratkannya. Data operasi kuadrat mode

heksadesimal pada tabel 4.8.

Tabel 4.8. Data operasi kuadrat mode heksadesimal.

No Masukan Hasil Kalkulator Pembanding Keluaran Tampilan LCD

1 4 10 102 12 144 1443 -20 400 4004 -33 A29 A295 -4A 1564 15646 15D 1DBC9 1DBC97 238A 4EF0664 4EF06648 789CF 38D3813561 38D38135619 3FFFFFFA FFFFFFD00000024 FFFFFFD0000002410 3FFFFFFB FFFFFFD80000019 FFFFFFD8000001911 3FFFFFFC FFFFFFE00000010 FFFFFFE0000001012 3FFFFFFD FFFFFFE80000009 FFFFFFE8000000913 3FFFFFFE FFFFFFF00000004 FFFFFFF0000000414 3FFFFFFF FFFFFFF80000001 FFFFFFF8000000115 40000000 1000000000000000 ERROR! 16 40000001 1000000080000001 ERROR! 17 40000002 1000000100000004 ERROR! 18 40000003 1000000180000009 ERROR! 19 40000004 1000000200000010 ERROR! 20 FFFFFFFFFFFFFFF E000000000000001 ERROR!

Page 98: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

77

Pada tabel 4.8 pengambilan data dengan tujuan untuk mencari batas masukan

maksimum operasi kuadrat mode HEX. Dari data tersebut dapat diketahui bahwa

batas masukan maksimumnya adalah pada nilai 3FFFFFFFH. Pemberian nilai

masukan lebih dari 3FFFFFFFH akan muncul pesan ERROR! pada LCD karena hasil

kuadratnya sudah lebih dari 15 angka.

4.3.7.2 Operasi Kuadrat Mode Biner

Pengambilan data operasi kuadrat mode biner dilakukan dengan cara

memeberi masukan kemudian mengkuadratkannya. Data operasi kuadrat mode biner

dapat dilihat pada tabel 4.9.

Tabel 4.9. Data operasi kuadrat mode biner.

No Masukan Hasil Kalkulator Pembanding Keluaran Tampilan LCD

1 11 0011 1010 0010 1001 1010 0010 10012 1001 1010 101 1100 1010 0100 101 1100 1010 01003 1010 1010 111 0000 1110 0100 111 0000 1110 01004 -10 100 1005 -100 1000 10006 -1001 101 0001 101 00017 1011 0000 111 1001 0000 0000 111 1001 0000 00008 1011 0001 111 1010 0110 0001 111 1010 0110 00019 1011 0010 111 1011 1100 0100 111 1011 1100 010010 1011 0011 111 1110 1001 0000 111 1110 1001 000011 1011 0100 111 1110 1001 0000 111 1110 1001 000012 1011 0101 111 1111 1111 1001 111 1111 1111 100113 1011 0110 1000 0001 0110 0100 ERROR! 14 1011 0111 1000 0010 1101 0001 ERROR! 15 1 0000 0000 1 0000 0000 0000 0000 ERROR!

Page 99: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

78

Pada tabel 4.9 pemberian masukan sampai 8 angka biner 1011 01012 hasil

kuadratnya sesuai dengan kalkulator pembanding dan dapat ditampilkan di LCD. Hal

ini karena hasil kuadrat 1011 01012 adalah 111 1111 1111 10012 tidak lebih 15 angka.

Saat pemberian masukan 1011 01102 hasil kuadratnya muncul pesan ERROR!

pada LCD. Hal ini karena hasil kuadrat 1011 01102, dapat dilihat pada hasil

kalkulator pembanding adalah 1000 0001 0110 01002 sudah lebih dari 15 angka.

Nilai masukan maksimum operasi kuadrat mode biner adalah 1011 01102.

Pesan ERROR! akan muncul di LCD apabila hasil kuadrat lebih dari 15 angka.

4.3.7.3 Operasi Kuadrat Mode Desimal

Pengambilan data operasi kuadrat mode desimal dilakukan dengan cara

memeberi masukan kemudian mengkuadratkannya. Data operasi kuadrat mode

desimal dapat dilihat pada tabel 4.10.

Tabel 4.10. Data operasi kuadrat mode desimal.

No Masukan Hasil Kalkulator Pembanding Keluaran Tampilan LCD

1 4567 20857489 208574892 99999 9999800001 99998000013 100000 10000000000 100000000004 -2 4 45 -4 16 166 31622775 999999898700625 9999998987006257 31622776 999999961946176 9999999619461768 31622777 1000000025191729 ERROR! 9 31622778 1000000088437284 ERROR! 10 999999999999999 999999999999998000000000000001 ERROR!

Page 100: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

79

Pada tabel 4.10 pemberian masukan sampai 8 angka desimal 31622776 hasil

kuadratnya sesuai dengan kalkulator pembanding dan dapat ditampilkan di LCD. Hal

ini karena hasil kuadrat 31622776 adalah 999999961946176 tidak lebih 15 angka.

Saat pemberian masukan 31622777 hasil kuadratnya muncul pesan ERROR!

pada LCD. Hal ini karena hasil kuadrat 31622777, dapat dilihat pada hasil kalkulator

pembanding adalah 1000000025191729 sudah lebih dari 15 angka.

Nilai masukan maksimum operasi kuadrat mode desimal adalah 31622776,

Hasil kuadrat dengan nilai masukan lebih dari 31622776 akan menyebabkan

munculnya oesan ERROR! pada LCD. Pesan ERROR! akan muncul di LCD apabila

hasil kuadrat lebih dari 15 angka.

4.3.7.4 Operasi Kuadrat Mode BCD

Pengambilan data operasi kuadrat mode desimal dilakukan dengan cara

memeberi masukan kemudian mengkuadratkannya. Hasil kalkulator pembanding

diganti dengan perhitungan sacara teori karena kalkulator pembanding yang

digunakan tidak mendukung operasi mode BCD. Data operasi kuadrat sandi BCD

dapat dilihat pada tabel 4.11.

Tabel 4.11. Data operasi kuadrat sandi BCD.

No Masukan Hasil Perhitungan Teori Keluaran Tampilan LCD

1 1 0000 1 0000 0000 1 0000 00002 10 0101 110 0010 0101 110 0010 01013 111 0000 100 1001 0000 0000 100 1001 0000 00004 -10 100 100

Page 101: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

80

5 -100 1 0110 1 01106 1000 0101 111 0010 0010 0101 111 0010 0010 01017 1000 0110 111 0011 1001 0110 111 0011 1001 0110 8 1000 0111 111 0101 0110 1001 111 0101 0110 10019 1000 1000 111 0111 0100 0100 111 0111 0100 010010 1000 1001 111 1001 0010 0001 111 1001 0010 000111 1001 0000 1000 0001 0000 0000 ERROR! 12 1001 0001 1000 0010 1000 0001 ERROR! 13 1010 -- ERROR! 14 1011 -- ERROR! 15 1100 -- ERROR!

Pada tabel 4.11 pemberian masukan sampai 8 angka BCD 1000 1001BCD hasil

kuadratnya sesuai dengan kalkulator pembanding dan dapat ditampilkan di LCD. Hal

ini karena hasil kuadrat 10001001BCD adalah 111 1001 0010 0001BCD tidak lebih 15

angka.

Saat pemberian masukan 1001 0000BCD hasil kuadratnya muncul pesan

ERROR! pada LCD. Hal ini karena hasil kuadrat 1001 0000BCD, dapat dilihat pada

hasil perhitungan teori adalah 1000 0001 0000 0000BCD sudah lebih dari 15 angka.

Pesan ERROR juga akan muncul apabila pemberian masukan 1010 sampai 1111

karena nilai tertinggi sandi BCD adalah 1001BCD.

Nilai masukan maksimum operasi kuadrat mode BCD adalah 1001 0000BCD,

Hasil kuadrat dengan nilai masukan lebih dari 1001 0000BCD akan menyebabkan

munculnya pesan ERROR! pada LCD. Pesan ERROR! akan muncul di LCD apabila

hasil kuadrat lebih dari 15 angka dan pemberian masukan 1010, 1011, 1100, 1101,

1110 dan 1111.

Page 102: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

81

4.3.8 Operasi Perkalian

Pengujian terhadap operasi perkalian dilakukan dengan memberi dua nilai

masukan, kemudian mengalikannya. Pengujian ini dilakukan terhadap keempat mode

yang tersedia yaitu mode HEX, mode BIN, mode DEC dan mode BCD.

4.3.8.1 Operasi Perkalian Mode Heksadesimal

Pengujian operasi perkalian bertujuan unruk mengetahui keluaran maksimum

dari kalkulator. Data operasi perkalian mode heksadesimal pada tabel 4.12.

Tabel 4.12. Data operasi perkalian mode heksadesimal.

No Masukan Hasil Kalkulator Pembanding

Keluaran Tampilan LCD

1 4 x 2 8 82 3 x 3 9 93 15 x 2 2A 2A4 3C x 12B 4614 46145 123F x FF 122CC1 122CC16 FFFFFFFFFFFFF x 1 FFFFFFFFFFFFF FFFFFFFFFFFFF7 FFFFFFFFFFFFF x 2 1FFFFFFFFFFFFE 1FFFFFFFFFFFFE8 FFFFFFFFFFFFF x 3 2FFFFFFFFFFFFD 2FFFFFFFFFFFFD9 4 x FFFFFFFFFFFFF 3FFFFFFFFFFFFC 3FFFFFFFFFFFFC10 5 x FFFFFFFFFFFFF 4FFFFFFFFFFFFB 4FFFFFFFFFFFFB11 F x FFFFFFFFFFFFF EFFFFFFFFFFFF1 EFFFFFFFFFFFF112 10 x FFFFFFFFFFFFF FFFFFFFFFFFFF0 FFFFFFFFFFFFF013 11 x FFFFFFFFFFFFF 10FFFFFFFFFFFEF ERROR! 14 12 x FFFFFFFFFFFFF 11FFFFFFFFFFFEE ERROR! 15 13 x FFFFFFFFFFFFF 12FFFFFFFFFFFED ERROR! 16 (-4) x 2 FFFFFFFFFFFFFFF8 FFFFFFFFFFFFFFF817 (-3C) x 12B FFFFFFFFFFFFB9EC FFFFFFFFFFFFB9EC18 (-123F) x FF FFFFFFFFFFEDD33F FFFFFFFFFFEDD33F19 4 x (-2) FFFFFFFFFFFFFFF8 FFFFFFFFFFFFFFF820 3C x (-12B) FFFFFFFFFFFFB9EC FFFFFFFFFFFFB9EC

Page 103: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

82

Pada tabel 4.12 data No. 1 sampai No. 12 hasil perkalian sesuai dengan hasil

kalkulator pembanding dan dapat ditampilkan di LCD karena hasil perkaliannya tidak

lebih dari 15 angka. Sedangkan data No. 13 sampai No. 15 muncul pesan ERROR!

pada LCD karena hasil perkaliannya sudah lebih dari 15 angka. Pesan ERROR! akan

mucul apabila hasi perkalian mode heksadesimal lebih dari 15 angka.

Untuk data No. 16 sampai No. 20 jumlah angkanya adalah 16 angka, karena

ini adalah perkalian dengan hasil bilangan negatif. Pada tampilan bilangan negatif

untuk mode heksadesimal angka FH paling kiri adalah penunjuk bilangan negatif

untuk membedakan dengan bilangan positif.

4.3.8.2 Operasi Perkalian Mode Biner

Pengujian operasi perkalian bertujuan unruk mengetahui keluaran maksimum

dari kalkulator. Data operasi perkalian mode heksadesimal pada tabel 4.13.

Tabel 4.13. Data operasi perkalian mode biner.

No Masukan Hasil Kalkulator Pembanding

Keluaran Tampilan LCD

1 100 x 10 1000 10002 111100 x 101110 1010 1100 1000 1010 1100 10003 10000 x 11001110 1100 1110 0000 1100 1110 00004 111111111111111 x 1 111 1111 1111 1111 111 1111 1111 11115 111111111111111 x 10 1111 1111 1111 1110 1111 1111 1111 11106 11111111111111 x 1 11 1111 1111 1111 11 1111 1111 11117 11111111111111 x 10 111 1111 1111 1110 111 1111 1111 11108 11 x 11111111111111 1011 1111 1111 1101 1011 1111 1111 11019 100 x 11111111111111 1111 1111 1111 1100 1111 1111 1111 110010 11111111111111 x 10 111 1111 1111 1110 111 1111 1111 111011 11 x 11111111111111 1011 1111 1111 1101 1011 1111 1111 110112 100 x 11111111111111 1111 1111 1111 1100 1111 1111 1111 1100

Page 104: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

83

13 101 x 11111111111111 1 0011 1111 1111 1011 ERROR! 14 110 x 11111111111111 1 0111 1111 1111 1010 ERROR! 15 111 x 11111111111111 1 1011 1111 1111 1001 ERROR! 16 (-100) x 10 1111 1111 1111 1000 1111 1111 1111 100017 (-111100) x 101110 1111 0101 0011 1000 1111 0101 0011 100018 (-10000) x 11001110 1111 0011 0010 0000 1111 0011 0010 000019 100 x (-10) 1111 1111 1111 1000 1111 1111 1111 100020 111100 x (-101110) 1111 0101 0011 1000 1111 0101 0011 1000

Pada tabel 4.13 data No. 1 sampai No. 12 hasil perkalian sesuai dengan hasil

kalkulator pembanding dan dapat ditampilkan di LCD karena hasil perkaliannya tidak

lebih dari 15 angka. Sedangkan data No. 13 sampai No. 15 muncul pesan ERROR!

pada LCD karena hasil perkaliannya sudah lebih dari 15 angka. Pesan ERROR! akan

mucul apabila hasi perkalian mode biner lebih dari 15 angka.

Untuk data No. 16 sampai No. 20 jumlah angkanya adalah 16 angka, karena

ini adalah perkalian dengan hasil bilangan negatif. Pada tampilan bilangan negatif

untuk mode heksadesimal angka 12 paling kiri adalah penunjuk bilangan negatif

untuk membedakan dengan bilangan positif.

4.3.8.3 Operasi Perkalian Mode Desimal

Pengujian operasi perkalian bertujuan unruk mengetahui keluaran maksimum

dari kalkulator dengan cara memberi dua masukan nilai kemudian mengalikannya.

Data operasi perkalian mode desimal pada tabel 4.14.

Page 105: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

84

Tabel 4.14. Data operasi perkalian mode desimal

No Masukan Hasil Kalkulator Pembanding

Keluaran Tampilan LCD

1 2 x 4 8 82 123 x 45 5535 55353 12 x 9999 119988 1199884 99999999999999 x 5 499999999999995 4999999999999955 6 x 99999999999999 599999999999994 5999999999999946 7 x 99999999999999 699999999999993 6999999999999937 9 x 99999999999999 899999999999991 8999999999999918 10 x 99999999999999 999999999999990 9999999999999909 11 x 99999999999999 1099999999999989 ERROR! 10 12 x 99999999999999 1199999999999988 ERROR!

Pada tabel 4.14 data No. 1 sampai No. 8 hasil perkalian sesuai dengan hasil

kalkulator pembanding dan dapat ditampilkan di LCD karena hasil perkaliannya tidak

lebih dari 15 angka. Sedangkan data No. 9 sampai No. 10 muncul pesan ERROR!

pada LCD karena hasil perkaliannya sudah lebih dari 15 angka. Pesan ERROR! akan

mucul apabila hasil perkalian mode desimal lebih dari 15 angka.

4.3.8.4 Operasi Perkalian Mode BCD

Pengujian operasi perkalian bertujuan unruk mengetahui keluaran maksimum

dari kalkulator. Hasil kalkulator pembading diganti dengan perhitungan teori karena

tidak mendukung operasi dalam mode BCD. Data operasi perkalian mode BCD pada

tabel 4.15.

Page 106: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

85

Tabel 4.15. Data operasi perkalian mode BCD.

No Masukan Hasil Perhitungan Teori

Keluaran Tampilan LCD

1 110 x 10 1 0010 1 00102 10 0101 x 101 1 0010 0101 1 0010 01013 1 0010 0011 x 111 1000 0110 0001 1000 0110 00014 1000100010001 x 100 100 0100 0100 0100 100 0100 0100 01005 1000100010001 x 101 101 0101 0101 0101 101 0101 0101 01016 1000100010001 x 110 110 0110 0110 0110 110 0110 0110 01107 111 x 1000100010001 111 0111 0111 0111 111 0111 0111 01118 1000 x 1000100010001 1000 1000 1000 1000 1000 1000 1000 10009 111100110011001 x 10 1 0101 1001 1001 1000 ERROR! 10 10000 x 1000100010001 1 0001 0001 0001 0000 ERROR!

Pada tabel 4.14 data No. 1 sampai No. 8 hasil perkalian sesuai dengan hasil

perhitungan teori dan dapat ditampilkan di LCD karena hasil perkaliannya tidak lebih

dari 15 angka. Sedangkan data No. 9 sampai No. 10 muncul pesan ERROR! pada

LCD karena hasil perkaliannya sudah lebih dari 15 angka. Pesan ERROR! akan

mucul apabila hasil perkalian mode BCD lebih dari 15 angka.

4.3.9 Operasi Pembagian

Pengambilan data operasi pembagian bertujuan untuk mengetahui kebenaran

hasil perhitungan dari alat yang dibuat. Nilai sisa bagi pada kalkulator pembanding

diperoleh dengan cara mengalikan hasil bagi dengan pembagi kemudian bilangan

yang dibagi dikurangi dengan hasil perkalian tadi. Pengujian dilakukan terhadap

keempat mode yang tersedia.

Page 107: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

86

4.3.9.1 Operasi Pembagian Mode Heksadesimal

Pengambilan data operasi pembagian mode heksadesimal dilakukan untuk

mengetahui kebenaran hasil perhitungan dari alat. Data operasi pembagian mode

heksadesimal dapat dilihat pada tabel 4.16.

Tabel 4.16. Data operasi pembagian mode heksadesimal.

Hasil Kalkulator Pembanding

Keluaran Tampilan LCD No Masukan

Hasil Sisa Hasil Sisa 1 FFFFFF ÷ FF 10101 0 10101 02 4614 ÷ 3C 12B 0 12B 03 987D ÷ 365 2C 321 2C 3214 58AB ÷ CE 6E 27 6E 275 3 ÷ 18 0 3 0 36 (-FFFFFF) ÷ FF FFFFEFEFF 0 FFFFEFEFF 07 (-4614) ÷ 3C FFFFFFED5 0 FFFFFFED5 08 (-122CC1) ÷ (-123F) FF 0 FF 09 (-58AB) ÷ (-CE) 6E 27 6E 2710 (-987D) ÷ (-365) 2C 321 2C 321

Dari tabel 4.16 hasil operasi pembagian mode heksadesimal tidak akan

muncul pesan ERROR! karena hasil pembagiannya tidak pernah lebih dari 15 angka.

4.3.9.2 Operasi Pembagian Mode Biner

Pengambilan data operasi pembagian mode biner dilakukan untuk mengetahui

kebenaran hasil perhitungan dari alat. Sisa pembagian pada mode ini berupa mode

biner. Data operasi pembagian mode biner pada tabel 4.17.

Page 108: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

87

Tabel 4.17. Data operasi pembagian mode biner.

Hasil Kalkulator Pembanding

Keluaran Tampilan LCD No Masukan

Hasil Sisa Hasil Sisa 1 10000 ÷ 100 100 0 100 02 1001 ÷ 11 11 0 11 03 1110100 ÷ 110 10011 10 10011 104 1000 ÷ 11 10 10 10 105 1000 ÷ (-11) 1111111110 10 1111111110 106 (-10000) ÷ (-100) 100 0 100 07 (-1001) ÷ (-11) 11 0 11 08 (-10100010) ÷ (-10) 1010001 0 1010001 09 (-1110100) ÷ (-110) 10011 10 10011 1010 (-1000) ÷ (-11) 10 10 10 10

Dari tabel 4.17 hasil operasi pembagian mode biner tidak akan muncul pesan

ERROR! karena hasil pembagiannya tidak pernah lebih dari 15 angka.

4.3.9.3 Operasi Pembagian Mode Desimal

Pengambilan data operasi pembagian mode desimal dilakukan secara acak

untuk mengetahui kebenaran hasil perhitungan dari alat. Sisa pembagian pada mode

ini berupa mode desimal. Data operasi pembagian mode desimal pada tabel 4.18.

Tabel 4.18. Data operasi pembagian mode desimal.

Hasil Kalkulator Pembanding

Keluaran Tampilan LCD No Masukan

Hasil Sisa Hasil Sisa 1 999999 ÷ 33 30303 0 30303 02 5648 ÷ 2 2824 0 2824 03 37 ÷ 4 9 1 9 14 2007 ÷ 10 200 7 200 75 3 ÷ 29 0 3 0 36 (-999999) ÷ 33 -30303 0 -30303 0

Page 109: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

88

7 (-5648) ÷ 2 -2824 0 -2824 08 (-227148) ÷ 23 -9876 0 -9876 09 (-37) ÷ 4 -9 1 -9 110 (-2007) ÷ 10 -200 7 -200 7

Dari tabel 4.18 hasil operasi pembagian mode desimal tidak akan muncul

pesan ERROR! karena hasil pembagiannya tidak pernah lebih dari 15 angka.

4.3.9.4 Operasi Pembagian Mode BCD

Pengambilan data operasi pembagian mode BCD dilakukan untuk mengetahui

kebenaran hasil perhitungan dari alat. Hasil dari kalkulator pembanding digantikan

dengan perhitungan teori, karena kalkulator pembanding yang digunakan tidak

mendukung perhitungan dalam mode BCD. Data operasi pembagian mode BCD

dapat dilihat pada tabel 4.19.

Tabel. 4.19. Data operasi pembagian mode BCD.

Hasil Perhitungan Teori

Keluaran Tampilan LCD No Masukan

Hasil Sisa Hasil Sisa 1 1110010 ÷ 1001 1000 0 1000 02 10010010 ÷ 10 1000110 0 1000110 03 10000001 ÷ 100 100000 1 100000 14 1000 ÷ 11 10 10 10 105 100 ÷ 100110 0 100 0 1006 (-1110010) ÷ 1001 -1000 0 -1000 07 (-10010010) ÷ 10 -1000110 0 -1000110 08 (-100101) ÷ 101 -101 0 -101 09 (-10000001) ÷ 100 -100000 1 -100000 110 (-1000) ÷ 11 -10 10 -10 10

Page 110: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

89

Dari tabel 4.19 hasil operasi pembagian mode biner tidak akan muncul pesan

ERROR! karena hasil pembagiannya tidak pernah lebih dari 15 angka.

4.3.10 Operasi Penambahan

Pengambilan data operasi penambahan bertujuan untuk mengetahui hasil

penambahan maksimal yang masih bisa ditampilkan oleh alat. Pengujian dilakukan

pada keempat mode yang tersedia.

4.3.10.1 Operasi Penambahan Mode Heksadesimal

Pengambilan data operasi penambahan dilakukan dengan memberi dua buah

masukan kemudian menambahkannya. Data operasi penambahan mode heksadesimal

pada tabel 4.20.

Tabel 4.20. Data operasi penambahan mode heksadesimal.

No Masukan Hasil Kalkulator Pembanding

Keluaran Tampilan LCD

1 78CD + 123 79F0 79F02 55 + 689 6DE 6DE3 12B + 3E 169 1694 FFFFFFFFFFFFFF + 1 100000000000000 1000000000000005 FFFFFFFFFFFFFE + 1 FFFFFFFFFFFFFF FFFFFFFFFFFFFF6 FFFFFFFFFFFFFD + 1 FFFFFFFFFFFFFE FFFFFFFFFFFFFE7 FFFFFFFFFFFFFC + 1 FFFFFFFFFFFFFD FFFFFFFFFFFFFD8 FFFFFFFFFFFFFB + 1 FFFFFFFFFFFFFC FFFFFFFFFFFFFC9 FFFFFFFFFFFFFA + 1 FFFFFFFFFFFFFB FFFFFFFFFFFFFB10 FFFFFFFFFFFFFFF + 1 1000000000000000 ERROR! 11 (-12B) + 3E FFFFFFFFFFFFFF13 FFFFFFFFFFFFFF1312 (-78CD) + 123 FFFFFFFFFFFF8856 FFFFFFFFFFFF885613 (-78CD) + (-123) FFFFFFFFFFFF8610 FFFFFFFFFFFF861014 (-55) + (-689) FFFFFFFFFFFFF922 FFFFFFFFFFFFF92215 (-12B) + (-3E) FFFFFFFFFFFFFE97 FFFFFFFFFFFFFE97

Page 111: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

90

Dari tabel 4.20 data No. 1 sampai No. 9 tidak muncul pesan ERROR! pada

LCD karena hasil penambahannya tidak lebih dari 15 angka. Sedangkan pada data

No. 10 muncul pesan ERROR! pada LCD karena hasil penambahannya sudah lebih

dari 15 angka. Pesan ERROR! akan muncul pada LCD apabila hasil penambahan

mode heksadesimal lebih dari 15 angka.

Pada data No11 sampai data No 15 jumlah angka hasil penambahannya 16

angka karena hasil penambahannya adalah bilangan negatif. Angka FH paling kiri

pada mode heksadsimal adalah penunjuk bilangan negatif.

4.3.10.2 Operasi Penambahan Mode Biner

Pengambilan data operasi penambahan dilakukan dengan memberi dua buah

masukan kemudian menambahkannya. Data operasi penambahan mode biner pada

tabel 4.21.

Tabel 4.21. Data operasi penambahan mode biner.

No Masukan Hasil Kalkulator Pembanding

Keluaran Tampilan LCD

1 10110 + 1010 10 0000 10 00002 1110101 + 1100 1000 0001 1000 00013 11001101 + 111 1101 0100 1101 01004 1110101 + 1100 1000 0001 1000 00015 111111111111110 + 1 111 1111 1111 1111 111 1111 1111 11116 111111111111101 + 1 111 1111 1111 1110 111 1111 1111 11107 111111111111100 + 1 111 1111 1111 1101 111 1111 1111 11018 111111111111011 + 1 111 1111 1111 1100 111 1111 1111 11009 111111111111110 + 10 1000 0000 0000 0000 ERROR! 10 111111111111101 + 11 1000 0000 0000 0000 ERROR! 11 (-1110101) + 1100 1111 1111 1001 0111 1111 1111 1001 011112 (-11001101) + 111 1111 1111 0011 1010 1111 1111 0011 1010

Page 112: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

91

13 (-10110) + (-1010) 1111 1111 1110 0000 1111 1111 1110 000014 (-1110101) + (-1100) 1111 1111 0111 1111 1111 1111 0111 111115 (-11001101) + (-111) 1111 1111 0010 1100 1111 1111 0010 1100

Dari tabel 4.21 data No. 1 sampai No. 8 tidak muncul pesan ERROR! pada

LCD karena hasil penambahannya tidak lebih dari 15 angka. Sedangkan pada data

No. 9 sampai No. 10 muncul pesan ERROR! pada LCD karena hasil penambahannya

sudah lebih dari 15 angka. Pesan ERROR! akan muncul pada LCD apabila hasil

penambahan mode biner lebih dari 15 angka.

Pada data No11 sampai data No 15 jumlah angka hasil penambahannya 16

angka karena hasil penambahannya adalah bilangan negatif. Angka 12 paling kiri

pada mode biner adalah penunjuk bilangan negatif.

4.3.10.3 Operasi Penambahan Mode Desimal

Pengambilan data operasi penambahan dilakukan dengan memberi dua buah

masukan kemudian menambahkannya. Data operasi penambahan mode desimal pada

tabel 4.22.

Tabel 4.22. Data operasi penambahan mode desimal.

No Masukan Hasil Kalkulator Pembanding

Keluaran Tampilan LCD

1 35 + 24 59 592 9865 + 124 9989 99893 69874 + 2007 71881 718814 999999999999996 + 1 999999999999997 9999999999999975 999999999999995 + 1 999999999999996 9999999999999966 999999999999998 + 2 1000000000000000 ERROR! 7 999999999999997 + 3 1000000000000000 ERROR!

Page 113: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

92

8 (-35) + (-24) -59 -599 (-9865) + (-124) -9989 -998910 (-69874) + (-2007) -71881 -71881

Dari tabel 4.22 data No. 1 sampai No. 5 tidak muncul pesan ERROR! pada

LCD karena hasil penambahannya tidak lebih dari 15 angka. Sedangkan pada data

No. 6 sampai No. 7 muncul pesan ERROR! pada LCD karena hasil penambahannya

sudah lebih dari 15 angka. Pesan ERROR! akan muncul pada LCD apabila hasil

penambahan mode desimal lebih dari 15 angka.

Pada data No. 8 sampai data No. 10 jumlah angka hasil penambahannya

adalah bilangan negatif yang ditandai dengan karakter “-“ pada tampilan LCD.

4.3.10.4 Operasi Penambahan Mode BCD

Pengambilan data operasi penambahan dilakukan dengan memberi dua buah

masukan kemudian menambahkannya. Hasil kalkulator pembanding diganti dengan

perhitungan teori karena kalkulator pembanding yang digunakan tidak mendukung

perhitungan mode BCD. Data operasi penambahan mode BCD pada tabel 4.23.

Tabel 4.23. Data operasi penambahan mode BCD.

No Masukan Hasil Perhitungan Teori

Keluaran Tampilan LCD

1 1110110 + 1000 1000 0100 1000 01002 100101 + 10010 11 0111 11 01113 1000 + 10 1 0000 1 00004 111 1001 1001 1000 + 1 111 1001 1001 1001 111 1001 1001 10015 111 1001 1001 0111 + 1 111 1001 1001 1000 111 1001 1001 10006 111 1001 1001 0110 + 1 111 1001 1001 0111 111 1001 1001 01117 111 1001 1001 1001 + 1 1000 0000 0000 0000 ERROR!

Page 114: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

93

8 (-1110110) + 1000 -110 1000 -110 10009 (-100101) + 10010 -1 0011 -1 001110 (-1000) + 10 -110 -110

Dari tabel 4.22 data No. 1 sampai No. 6 tidak muncul pesan ERROR! pada

LCD karena hasil penambahannya tidak lebih dari 15 angka. Sedangkan pada data

No. 7 muncul pesan ERROR! pada LCD karena hasil penambahannya sudah lebih

dari 15 angka. Pesan ERROR! akan muncul pada LCD apabila hasil penambahan

mode BCD lebih dari 15 angka.

Pada data No. 8 sampai data No. 10 jumlah angka hasil penambahannya

adalah bilangan negatif yang ditandai dengan karakter “-“ pada tampilan LCD.

4.3.11 Operasi Pengurangan

Pengambilan data operasi pengurangan bertujuan untuk mengetahui

kebenaran hasil perhitungan dari alat yang dibuat dengan membandingkan dari hasil

perhitungan kalkulator pembanding. Pengujian dilakukan terhadap keempat mode

yang tersedia.

4.3.11.1 Operasi Pengurangan Mode Heksadesimal

Pengambilan data operasi pengurangan mode heksadesimal dilakukan untuk

mengetahui kebenaran hasil perhitungan dari alat. Data operasi pengurangan mode

heksadesimal dapat dilihat pada tabel 4.24.

Page 115: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

94

Tabel 4.24. Data operasi pengurangan mode heksadesimal.

No Masukan Hasil Kalkulator Pembanding

Keluaran Tampilan LCD

1 58FFF – 1235 57DCA 57DCA2 12DB3 – 564 1284F 1284F3 25 – 10 15 154 58FFF – (-1235) 5A234 5A2345 12DB3 – (-564) 13317 133176 25 – (-10) 35 357 89 – (-CA2) D2B D2B8 10 – (-19) 29 299 89 – CA2 FFFFFFFFFFFFF3E7 FFFFFFFFFFFFF3E710 10 – 19 FFFFFFFFFFFFFFF7 FFFFFFFFFFFFFFF711 (-58FFF) – 1235 FFFFFFFFFFA5DCC FFFFFFFFFFA5DCC12 (-12DB3) – 564 FFFFFFFFFFECCE9 FFFFFFFFFFECCE913 (-25) – 10 FFFFFFFFFFFFFCB FFFFFFFFFFFFFCB14 (-89) – CA2 FFFFFFFFFFFF2D5 FFFFFFFFFFFF2D515 (-10) – 19 FFFFFFFFFFFFFD7 FFFFFFFFFFFFFD716 (-58FFF) – (-1235) FFFFFFFFFFFA8236 FFFFFFFFFFFA823617 (-12DB3) – (-564) FFFFFFFFFFFED7B1 FFFFFFFFFFFED7B118 (-25) – (-10) FFFFFFFFFFFFFFEB FFFFFFFFFFFFFFEB19 FFFFFFFFFFFFFFF – (- 1) 1000000000000000 ERROR! 20 FFFFFFFFFFFFFFF – (- 2) 1000000000000001 ERROR!

Pada tabel 4.24 data No. 1 sampai No. 8 hasil pengurangannya sesuai dengan

kalkulator pembanding dan tidak muncul pesan ERROR! pada LCD. Hal ini karena

hasil pengurangannya tidak lebih dari 15 angka.

Data No. 9 sampai No. 18 jumlah angka tampilan LCD adalah 16 angka

karena hasil pengurangannya adalah bilangan negatif. Angka FH paling kiri pada

tampilang heksadesiamal adalah penunjuk bilangan negatif.

Pada data No. 19 dan No. 20 muncul pesan ERROR! pada LCD karena saat

pemberian masukan FFFFFFFFFFFFFFF – (- 1) proses perhitungan yang terjadi

Page 116: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

95

adalah FFFFFFFFFFFFFFF + 1, dengan hasil perhitungan 1000000000000000H.

Hasil perhitungan ini sudah melebihi dari 15 angka positif sehingga muncul pesan

ERROR! pada LCD. Pesan ERROR! pada LCD akan muncul saat hasil perhitungan

positf lebih dari 15 angka.

4.3.11.2 Operasi Pengurangan Mode Biner

Pengambilan data operasi pengurangan mode biner dilakukan untuk

mengetahui kebenaran hasil perhitungan dari alat. Data operasi pengurangan mode

biner dapat dilihat pada tabel 4.25.

Tabel 4.25. Data operasi prngurangan mode biner

No Masukan Hasil Kalkulator Pembanding

Keluaran Tampilan LCD

1 1110101 – 100011 1010010 10100102 1100 – 110 110 1103 1001 – 11 111 1114 1110101 – (-100011) 10011000 100110005 1100 – (-110) 10010 100106 1001 – (-11) 1100 11007 10100 – (-10000) 100100 1001008 101 – (-1010) 1111 11119 100 – 10000 1111111111110100 111111111111010010 101 – 1010 1111111111111011 111111111111101111 (-1110101) – 100011 1111111101101000 111111110110100012 (-1100) – 110 1111111111101110 111111111110111013 (-1001) – 11 1111111111110100 111111111111010014 (-10100) – 10000 1111111111011100 111111111101110015 (-101) – 1010 1111111111110001 111111111111000116 (-1110101) – (-100011) 1111111110101110 111111111010111017 (-1100) – (-110) 1111111111111010 111111111111101018 (-1001) – (-11) 1111111111111001 111111111111100119 111111111111111 - (-1) 1000 0000 0000 0000 ERROR! 20 111111111111111 - (-10) 1000 0000 0000 0001 ERROR!

Page 117: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

96

Pada tabel 4.25 data No. 1 sampai No. 8 hasil pengurangannya sesuai dengan

kalkulator pembanding dan tidak muncul pesan ERROR! pada LCD. Hal ini karena

hasil pengurangannya tidak lebih dari 15 angka.

Data No. 9 sampai No. 18 jumlah angka tampilan LCD adalah 16 angka

karena hasil pengurangannya adalah bilangan negatif. Angka FH paling kiri pada

tampilang heksadesiamal adalah penunjuk bilangan negatif.

Pada data No. 19 dan No. 20 muncul pesan ERROR! pada LCD karena saat

pemberian masukan 111111111111111 - (-1) proses perhitungan yang terjadi adalah

111111111111111 + 1, dengan hasil perhitungan 10000000000000002. Hasil

perhitungan ini sudah melebihi dari 15 angka positif sehingga muncul pesan ERROR!

pada LCD. Pesan ERROR! pada LCD akan muncul saat hasil perhitungan positf lebih

dari 15 angka.

4.3.11.3 Operasi Pengurangan Mode Desimal

Pengambilan data operasi pengurangan mode desimal dilakukan secara acak

untuk mengetahui kebenaran hasil perhitungan dari alat. Data operasi pengurangan

mode desimal dapat dilihat pada tabel 4.26.

Tabel 4.26. Data operasi pengurangan mode desimal.

No Masukan Hasil Kalkulator Pembanding

Keluaran Tampilan LCD

1 95486 – 654 94832 948322 587 – 23 564 5643 25 – 5 20 204 32 – 99 -67 -67

Page 118: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

97

5 3 – 12 -9 -96 (-95486) – 654 -96140 -961407 (-587) – 23 -610 -6108 (-25) – 5 -30 -309 999999999999998 – (-2) 1000000000000000 ERROR! 10 999999999999999 – (-3) 1000000000000002 ERROR!

Pada tabel 4.26 data No. 1 sampai No. 8 hasil pengurangannya sesuai dengan

kalkulator pembanding dan tidak muncul pesan ERROR! pada LCD. Hal ini karena

hasil pengurangannya tidak lebih dari 15 angka. Tampilan bilangan negatif pada

mode desimal ditandai dengan karakter “-“ pada tampilan LCD.

Pada data No. 9 dan No. 10 muncul pesan ERROR! pada LCD karena saat

pemberian masukan 999999999999998 – (-2) proses perhitungan yang terjadi adalah

999999999999998 + 2, dengan hasil perhitungan 1000000000000000. Hasil

perhitungan ini sudah melebihi dari 15 angka positif sehingga muncul pesan ERROR!

pada LCD. Pesan ERROR! pada LCD akan muncul saat hasil perhitungan positf lebih

dari 15 angka.

4.3.11.3 Operasi Pengurangan Mode BCD

Nilai maksimal pada mode BCD mengacu pada pembahasan sebelumnya.

Pengambilan data operasi pengurangan mode BCD dilakukan secara acak untuk

mengetahui kebenaran hasil perhitungan dari alat. Data operasi pengurangan mode

BCD dapat dilihat pada tabel 4.27.

Page 119: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

98

Tabel 4.27. Data operasi pengurangan mode BCD.

No Masukan Hasil Perhitungan Teori

Keluaran Tampilan LCD

1 1111001 – 1000 111 0001 111 00012 100101 – 11 10 0010 10 00103 1001 – 101 100 1004 10010 – 100101 -11 -115 11 – 10000 -111 -1116 (-1111001) – 1000 1000 0111 1000 01117 (-100101) – 11 101 0000 101 00008 (-1001) – 101 1 0100 1 01009 111 1001 1001 1001 – (-1) 1000 0000 0000 0000 ERROR! 10 111 1001 1001 1001 – (-10) 1000 0000 0000 0001 ERROR!

Pada tabel 4.27 data No. 1 sampai No. 8 hasil pengurangannya sesuai dengan

kalkulator pembanding dan tidak muncul pesan ERROR! pada LCD. Hal ini karena

hasil pengurangannya tidak lebih dari 15 angka. Tampilan bilangan negatif pada

mode BCD ditandai dengan karakter “-“ pada tampilan LCD.

Pada data No. 9 dan No. 10 muncul pesan ERROR! pada LCD karena saat

pemberian masukan 111 1001 1001 1001 – (-1) proses perhitungan yang terjadi

adalah 111 1001 1001 1001 + 1, dengan hasil perhitungan 1000000000000000BCD.

Hasil perhitungan ini sudah melebihi dari 15 angka positif sehingga muncul pesan

ERROR! pada LCD. Pesan ERROR! pada LCD akan muncul saat hasil perhitungan

positf lebih dari 15 angka.

Page 120: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

99

4.3.12 Operasi Akar Kuadrat

Pengambilan data pada operasi akar kuadrat bertujuan untuk mengetahui

kebenaran hasil perhitungan dari alat yang dibuat dengan membandingkan hasil

kalkulator pembanding.

4.3.12.1 Operasi Akar Kuadrat Mode Heksadesimal

Untuk menghitung nilai akar kuadrat mode heksadesimal, pada kalkulator

pembanding nilai heksadesimal di konversi terlebih dahulu ke dalam bentuk desimal

kemudian dihitung nilai akarnya. Hal ini dikarenakan kalkulator pembanding yang

digunakan tidak mendukung untuk perhitungan akar kuadrat mode heksadesimal.

Nilai akar yang diambil hanya nilai integer. Data operasi akar kuadrat mode

heksadesimal pada tabel 4.28.

Tabel 4.28. Data operasi akar kuadrat mode heksadesimal

No Masukan Hasil Kalkulator Pembanding Keluaran Tampilan LCD 1 √7 2 22 √9 3 33 √10 4 44 √18 4 45 √48 8 86 √100 10 107 √10000 100 1008 √1000000 1000 10009 √789A AF AF10 √2007 5A 5A11 √FFFF FF FF12 √FFFFF 3FF 3FF13 √FFFFFF FFF FFF14 √(-48) -- ERROR! 15 √(-100) -- ERROR!

Page 121: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

100

Pada tabel 4.28 hasil kuadrat masukan nilai positif sesuai dengan hasil

kalkulator pembanding dan tidak muncul pesan ERROR! karena hasil kuadratnya

tidak pernah lebih dari 15 angka.

Pesan ERROR! akan muncul apabila masukan nilai negatif diakarkan, karena

nilai negatif tidak memiliki hasil akar kuadrat.

4.3.12.2 Operasi Akar Kuadrat Mode Biner

Untuk menghitung nilai akar kuadrat mode biner, pada kalkulator pembanding

nilai biner di konversi terlebih dahulu ke dalam bentuk desimal kemudian dihitung

nilai akarnya. Hal ini dikarenakan kalkulator pembanding yang digunakan tidak

mendukung untuk perhitungan akar kuadrat mode biner. Nilai akar yang diambil

hanya nilai integer. Data operasi akar kuadrat mode biner pada tabel 4.29.

Tabel 4.29. Data operasi akar kuadrat mode biner.

No Masukan Hasil Kalkulator Pembanding

Keluaran Tampilan LCD

1 √111 10 102 √1001 11 113 √10000 100 1004 √11000 100 1005 √1001000 1000 10006 √1100010101 11100 111007 √1100100001 11100 111008 √10000000000 100000 1000009 √10000010000 100000 10000010 √110010101010101 10100001 1010000111 √110011001100110 10100001 1010000112 √111111111111001 10110101 1011010113 √111111111111111 10110101 1011010114 √(-1001000) -- ERROR! 15 √(-1100010101) -- ERROR!

Page 122: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

101

Pada tabel 4.29 hasil kuadrat masukan nilai positif sesuai dengan hasil

kalkulator pembanding dan tidak muncul pesan ERROR! karena hasil kuadratnya

tidak pernah lebih dari 15 angka.

Pesan ERROR! akan muncul apabila masukan nilai negatif diakarkan, karena

nilai negatif tidak memiliki hasil akar kuadrat.

4.3.12.3 Operasi Akar Kuadrat Mode Desimal

Pengujian terhadap kebenaran hasil perhitungan alat dilakukan dengan cara

membandingkannya dengan hasil perhitungan kalkulator pembanding. Data operasi

akar kuadrat mode desimal pada tabel 4.30.

Tabel 4.30. Data operasi akar kuadrat mode desimal.

No Masukan Hasil Kalkulator Pembanding Keluaran Tampilan LCD 1 √4 2 22 √9 3 33 √20 4 44 √36 6 65 √70 8 86 √81 9 97 √987 31 318 √100 10 109 √10000 100 10010 √1999999 1414 141411 √8999999 2999 299912 √9000000 3000 300013 √9999999 3126 312614 √ (-987) 31 3115 √ (-100) 10 10

Page 123: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

102

Pada tabel 4.30 hasil kuadrat masukan nilai positif sesuai dengan hasil

kalkulator pembanding dan tidak muncul pesan ERROR! karena hasil kuadratnya

tidak pernah lebih dari 15 angka.

Pesan ERROR! akan muncul apabila masukan nilai negatif diakarkan, karena

nilai negatif tidak memiliki hasil akar kuadrat.

4.3.12.4 Operasi Akar Kuadrat Mode BCD

Untuk menghitung nilai akar kuadrat mode BCD, pada kalkulator pembanding

nilai BCD di konversi terlebih dahulu ke dalam bentuk desimal kemudian dihitung

nilai akarnya. Hal ini dikarenakan kalkulator pembanding yang digunakan tidak

mendukung untuk perhitungan akar kuadrat mode BCD. Nilai akar yang diambil

hanya nilai integer. Data operasi akar kuadrat mode BCD pada tabel 4.31.

Tabel 4.31. Data operasi akar kuadrat mode BCD.

No Masukan Hasil Kalkulator Pembanding

Keluaran Tampilan LCD

1 √1001 11 112 √100000 100 1003 √110110 110 1104 √1110000 1000 10005 √10000001 1001 10016 √10011001 1001 10017 √100000000 10000 100008 √100010000 10000 100009 √100110000 10001 1000110 √100110011001 110001 11000111 √1000000000000 110001 11000112 √111100101010000 10001001 1000100113 √111100110011001 10001001 1000100114 √(-10011001) 1001 100115 √(-100000000) 10000 10000

Page 124: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

103

Pada tabel 4.31 hasil kuadrat masukan nilai positif sesuai dengan hasil

kalkulator pembanding dan tidak muncul pesan ERROR! karena hasil kuadratnya

tidak pernah lebih dari 15 angka. Pesan ERROR! akan muncul apabila masukan nilai

negatif diakarkan, karena nilai negatif tidak memiliki hasil akar kuadrat.

4.3.13 Perhitungan Berulang Kali

Perhitungan berulang kali adalah pengujian alat dengan diberi masukan yang

menggunakan lebih dari satu jenis operator dan diakhiri dengan tombol sama dengan.

Sebagai contoh 9 x 2 – 7 = 11 desimal. Data perhitungan berulang kali dapat dilihat

pada tabel 4.32.

Tabel 4.32. Data perhitungan berulang kali.

Masukan Hasil Kalkulator Pembanding

Keluaran Tampilan LCD

25 + 30 – A 4B 4B2F x 9 ÷ 2 D3 D3

252 x 20 ÷ 2 + 3 5593 55939 – 1 x 5 ÷ 3 8 DH

EX

30 + 5 x 2 – 7 33 63101 x 100 ÷ 10 1010 1010

1001 + 110 - 1010 101 1011002 x 11 + 101 -10 110011 110011

1010 + 11 x 111 11111 1011011

BIN

1111 – 1011 ÷ 10 1010 1078 + 6 - 25 59 5912 x 2 ÷ 3 8 8

9 x 2 – 7 11 119 + 12 x 5 69 105DE

C

105 – 24 x 3 + 1 34 24410101 + 100 – 111 10010 10010

1001 x 101 ÷ 110 111 1111112 x 10 + 110 – 1 100000011 100000011

110 + 100 x 11 11000 110000

MO

DE

B

CD

1001 - 101 ÷ 1000 1 1

Page 125: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

104

Dari tabel 4.32 pada bagian yang dicetak miring, hasil perhitungan alat

berbeda dengan kalkulator pembanding. Hal ini disebabkan karena perhitungan pada

alat adalah berdasarkan urutan operator yang ditekan. Sebagai contoh jika diberi

masukan 9 + 12 x 5, maka yang dihitung terlebih dahulu adalah 9 + 12 = 21

kemudian perhitungan 21 x 5 = 105.

Sedangkan pada kalkulator pembanding menggunakan prioritas operator

dengan urutan eksekusi kuadrat, akar kuadrat, kali, bagi, tambah dan kurang. Sebagai

contoh dengan masukan 9 + 12 x 5, maka yang dihitung terlebih dahulu adalah nilai

12 x 5 = 60 kemudian 60 + 9 = 69. Inilah yang menyebabkan perbedaan hasil

perhitungan sehingga mucul kesalahan perhitungan pada alat yang dibuat.

Masukan kalkutor maksimum adalah 15 karakter. Saat pemberian masukan

karakter yang ke-16 maka program akan berhenti melakukan proses scanning keypad.

Program scanning keypad dapat dilihat pada lampiran listing program hal 2 bagian

Subrutin scanning keypad 8 x 4.

4.3.14 Konversi Berulang Kali

Konversi berulang kali adalah pengujian alat dengan memberi masukan

kemudian mengubah data masukan ke mode yang berbeda berulang kali secara

berurutan. Sebagai contoh nilai 9H akan diubah ke mode biner menghasilkan 10012

kemudian diubah ke mode desimal menghasilkan nilai 9 dan yang terakhir diubah ke

mode BCD menghasilkan 1001BCD. Data konversi berulang kali pada tabel 4.33.

Page 126: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

4.33. Data konversi berulang kali.

Urutan Mode Konversi No

Masukan Mode HEX

BIN DEC BCD

1 9 1001 9 10012 4F 100 1111 79 111 10013 -9 1111 1111 1111 0111 65527 ERROR! 4 -4F 1111 1111 1011 0001 65457 ERROR!

Urutan Mode Konversi BIN BCD DEC

5 9 1001 1001 96 4F 100 1111 111 1001 797 -9 1111 1111 1111 0111 ERROR! -- 8 -4F 1111 1111 1011 0001 ERROR! --

Urutan Mode Konversi DEC BCD BIN

9 9 9 1001 100110 4F 79 111 1001 100 111111 -9 -9 1001 100112 -4F -79 111 1001 100 1111

Urutan Mode Konversi DEC BIN BCD

13 9 9 1001 100114 4F 79 100 1111 111 100115 -9 -9 1111 1111 1111 0111 ERROR! 16 -4F -79 1111 1111 1011 0001 ERROR!

Urutan Mode Konversi BCD BIN DEC

17 9 1001 1001 918 4F 111 1001 100 1111 7919 -9 -1001 1001 920 -4F -111 1001 100 1111 79

Dari tabel 4.33 proses konversi data ke ketiga mode yang berbeda secara

berurutan untuk bilangan positif tidak ditemukan adanya kesalahan. Sedangkan

untuk bilangan negatif terdapat kesalahan saat proses konversi lebih dari satu kali.

Hal ini disebabkan data pada register penyimpan kode negatif hilang karena

pergeseran stack pointer saat kembali dari subrutin tampilan LCD.

Page 127: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pembahasan dapat ditarik beberapa kesimpulan berikut:

1. Masukan dan keluaran maksimum adalah 15 digit.

2. Pesan ERROR akan muncul di LCD apabila hasil perhitungan lebih dari 15

digit.

3. Masukan maksimum konversi mode heksadesimal ke mode biner adalah

7FFFH, masukan maksimum konversi mode heksadesimal ke mode BCD

adalah 1F3FH dan masukan maksimum konversi mode heksadesimal ke mode

desimal adalah 38D7EA4C67FFFH.

4. Proses perhitungan berdasarkan urutan penekanan operator.

5. Proses konversi bilangan negatif hanya dapat satu kali pengubahan mode

5.2 Saran

1. Proses perhitungan menggunakan prioritas operator kuadrat, akar kuadrat,

perkalian, pembagian, penambahan dan pengurangan.

2. Dalam pembuatan program dilakukan pemindahan alamat stack pointer ke

alamat yang tidak mengganggu eksekusi program.

106

Page 128: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

DAFTAR PUSTAKA

[1] http\\www.wikipedia.com\artikel\kalkulator.html (dibuat pada 29 Desember 2006

dan diakses pada 16 Mei 2007)

[2] Blocher, Richard. Dasar Elektronika. Penerbit Andi. Yogyakarta. 2003

[3] http\\www.wikipedia.com\article\hexadecimal.html (dibuat pada 16 Maret 2007

dan diakses pada 16 Mei 2007)

[4] Brown, Stephen dan Zvonko Vranesic. Fundamental of Digital Logic with Verilog

design. McGrawhill. Singapore. 2004

[5] Hamacher, Carl dan Zvonko Vranesic dan Safwat Zaky. Organisasi Komputer

Edisi 5. Penerbit Andi Yogyakarta. 2004

[6] Malvino, Albert Paul dan Donald P. Leach. Prinsip-prinsip dan Penerapan

Digital. Penerbit Erlangga. Jakarta. 2004

[7] Morris, Robert L dan John R. Miller. Designing with TTL Integrated Circuit.

Texas Instrument Electronics. Texas.1981

[8] Rashid, Muhammad H. Power Electronic Circuit, Devices and Application.

Prentice Hall. Florida. 2004

[9] Malik, M. Ibnu. Belajar Mikrokontroler AT89S8252. Penerbit Gava Media.

Yogyakarta. 2003

[10] Putra, Agfianto Eko. Belajar Mikrokontroler AT89C51/52/55 (Teori dan

Aplikasi). Penerbit Gava Media. Yogyakarta. 2004

107

Page 129: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

L A M P I R A N 1

RANGKAIAN KALKULATOR BERBASIS MIKROKONTROLER

Page 130: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rangkaian Kalkulator Berbasis Mikrokontroler

Page 131: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

L A M P I R A N 2

LISTING PROGRAM

Page 132: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

1

1 0000 ;================================================ 2 0000 ; Program Kalkulator Berbasis Mikrokontroler 3 0000 ;================================================ 5 0000 LCD_RS bit P0.6 6 0000 LCD_E bit P0.7 7 0000 Data_LCD equ P2 8 0000 ; 9 0000 Kolom equ P1 10 0000 Baris equ P3 11 0000 Baris1 bit P3.0 12 0000 Baris2 bit P3.1 13 0000 Baris3 bit P3.2 14 0000 Baris4 bit P3.3 15 0000 Baris5 bit P3.4 16 0000 Baris6 bit P3.5 17 0000 Baris7 bit P3.6 18 0000 Baris8 bit P3.7 19 0000 Kolom1 bit P1.0 20 0000 Kolom2 bit P1.1 21 0000 Kolom3 bit P1.2 22 0000 Kolom4 bit P1.3 23 0000 ; 24 0000 Kode_BIN equ #01H 25 0000 Kode_HEX equ #02H 26 0000 Kode_DEC equ #03H 27 0000 Kode_BCD equ #04H 28 0000 Data_Operator equ 2BH 29 0000 Data_Negatif equ 2FH 30 0000 Terima_atas equ 30H 31 0000 Terima_bawah equ 40H 32 0000 Key_Data equ 20H 33 0000 Data_Hasil equ 21H 35 0000 Data_1_Temp equ 50H 36 0000 Data_2_Temp equ 60H 37 0000 Data_1 equ 70H 38 0000 Data_2 equ 80H 39 0000 Hasil equ 090H 40 0000 Sisa equ 0A0H 41 0000 Jml_Byte equ #8 43 0000 org 00H 45 0000 mov sp,#08H 47 0003 ;================================================ 48 0003 ; Inisilisasi LCD 49 0003 ;================================================ 50 0003 Inist_LCD: 51 0003 lcall LTunda 52 0006 lcall LTunda 53 0009 mov A,#03FH ;Fuction set 8 bit 54 000B lcall Write_inst 55 000E lcall Write_inst 56 0011 lcall LTunda 57 0014 mov A,#03H ;Cursor home 58 0016 lcall Write_inst 59 0019 mov A,#0DH ;Display ON, cursor OFF, bilnk O 60 001B lcall Write_inst 61 001E mov A,#06H ;increment, no display shift 62 0020 lcall Write_inst 63 0023 mov A,#01H ;display clear 64 0025 lcall Write_inst 65 0028 mov A,#80H ;cursor pada posisi awal 66 002A lcall Write_inst 67 002D mov A,#0CH ; cursor OFF, blink OFF 68 002F lcall Write_inst 70 0032 ;================================================ 71 0032 ; MAIN PROGRAM 72 0032 ;================================================ 74 0032 Start: 75 0032 mov R7,#Kode_HEX 76 0034 mov R0,#Terima_atas 77 0036 mov DPTR,#Judul4 ;Tampilan awal = Mode Hex 78 0039 lcall Pindah_RAM 79 003C lcall Baris_atas 80 003F lcall LTunda 81 0042 mov R0,#Terima_bawah 82 0044 mov Data_Negatif,#0 83 0047 acall Tampilan_C

Page 133: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

2

86 0049 Next_Data: 87 0049 mov (Key_Data+2),#Data_2_Temp ;Masukan Data 2 88 004C mov (Key_Data+6),#(Data_2_Temp+15) 89 004F mov (Key_Data+7),#Data_2 90 0052 mov Data_Operator,(Data_Operator+1) 91 0055 lcall Hapus_Karakter 92 0058 sjmp Scan 94 005A ;================================================ 95 005A Hitung: 96 005A acall Cek_Mode_Hitung 98 005C mov R0,#(Data_1_Temp+15) ;Menggabungkan data satuan 99 005E mov R1,#(Data_1_Temp+14) 100 0060 acall Gabung_Data 101 0062 mov R0,#(Data_2_Temp+15) 102 0064 mov R1,#(Data_2_Temp+14) 103 0066 acall Gabung_Data 105 0068 mov R0,#(Data_1_Temp+15) ;Simpan data bentuk satuannya 106 006A mov R1,#Data_1 107 006C acall Simpan_Data 108 006E mov R0,#(Data_2_Temp+15) 109 0070 mov R1,#Data_2 110 0072 acall Simpan_Data 111 0074 ;================================================= 112 0074 acall Cek_Operator 113 0076 acall Cek_Mode_Tampilan 114 0078 mov R0,#Data_1_Temp 115 007A acall Cek_Spasi 116 007C mov R0,#Data_2_Temp 117 007E acall Cek_Spasi 118 0080 mov R0,#Data_1_Temp 119 0082 mov R1,#Terima_bawah 120 0084 acall Copy_Data 121 0086 lcall Baris_bawah 122 0089 mov A,Data_Operator 123 008B cjne A,#02H,Tidak_Sisa 124 008E lcall Tampilan_Sisa 126 0091 Tidak_Sisa: 127 0091 acall Cek_Mode_Akhir 128 0093 acall Copy_D2T_D1T 129 0095 mov A,Data_Hasil ;Cek apakah "=" ditekan ? 130 0097 cjne A,#0FFH,Next_Data 131 009A mov Data_Operator,#00H 132 009D mov (Data_Operator+1),#00H 133 00A0 mov Data_Hasil,#00H 134 00A3 sjmp Next_Data 137 00A5 ;================================================ 138 00A5 ; Subrutin Scanning keypad 8 x 4 139 00A5 ;================================================ 140 00A5 Scan: 141 00A5 mov 29H,#15 ;Maksimum 15 data 142 00A8 Loop_Scan: 143 00A8 ajmp Cek_Mode 144 00AA Loop_Scan_2: 145 00AA mov sp,#08H 146 00AD mov A,Key_Data 147 00AF mov R0,#(Terima_bawah+15) 148 00B1 mov R1,(Key_Data+2) 149 00B3 add A,#30H ;Ubah ke bentuk ASCII 150 00B5 mov @R0,A 151 00B6 acall Pindah_Data_Temp 152 00B8 lcall Baris_bawah 153 00BB acall Pindah_TB 154 00BD djnz 29H,Loop_Scan 155 00C0 ljmp Operator_2 157 00C3 ;================================================ 158 00C3 ; Subrutin Pindah Data ke Data_Temp 159 00C3 ;================================================ 160 00C3 Pindah_Data_Temp: 161 00C3 mov R0,#Terima_bawah 162 00C5 mov R3,#16 163 00C7 Loop_Data_Temp: 164 00C7 clr C 165 00C8 mov A,@R0 ;R0 = Alamat data asal 166 00C9 subb A,#30H 167 00CB jc Tidak_Kurang_30H 168 00CD Cek_Huruf: ;Cek apakah masukan Huruf ?

Page 134: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

3

169 00CD clr C 170 00CE subb A,#0AH 171 00D0 jnc Lebih_Besar_9 172 00D2 add A,#0AH 173 00D4 Loop_Data_Temp_2: 174 00D4 mov @R1,A 175 00D5 inc R0 176 00D6 inc R1 177 00D7 djnz R3,Loop_Data_Temp 178 00D9 ret 180 00DA Tidak_Kurang_30H: 181 00DA clr C 182 00DB add A,#10H 183 00DD sjmp Cek_Huruf 185 00DF Lebih_Besar_9: 186 00DF clr C 187 00E0 add A,#03H 188 00E2 sjmp Loop_Data_Temp_2 190 00E4 ;================================================ 191 00E4 ; Subrutin pindah data ke Terima_bawah 192 00E4 ;================================================ 193 00E4 Pindah_TB: 194 00E4 push 01H 195 00E6 mov R3,#15 196 00E8 mov R0,#(Terima_bawah) 197 00EA mov R1,#(Terima_bawah+1) 198 00EC Loop_Pindah_TB: 199 00EC mov A,@R1 200 00ED mov @R0,A 201 00EE inc R0 202 00EF inc R1 203 00F0 djnz R3,Loop_Pindah_TB 204 00F2 pop 01H 205 00F4 ret 207 00F5 ;================================================ 208 00F5 ; Tunggu tombol dilepas 209 00F5 ;================================================ 210 00F5 Tunggu_tombol_dilepas: 211 00F5 jnb Baris1,$ 212 00F8 jnb Baris2,$ 213 00FB jnb Baris3,$ 214 00FE jnb Baris4,$ 215 0101 jnb Baris5,$ 216 0104 jnb Baris6,$ 217 0107 jnb Baris7,$ 218 010A jnb Baris8,$ 219 010D Reset_Keypad: 220 010D setb Kolom1 221 010F setb Kolom2 222 0111 setb Kolom3 223 0113 setb Kolom4 224 0115 ret 226 0116 ;================================================ 227 0116 ; KEYPAD 8 x 4 228 0116 ;================================================ 230 0116 ;================================================ 231 0116 ; Subrutin MODE 232 0116 ;================================================ 234 0116 Mode: 235 0116 acall Reset_Keypad 236 0118 mov R0,#(Data_2_Temp+15) 237 011A mov R1,#(Data_2_Temp+14) 238 011C acall Gabung_Data 239 011E mov R0,#(Data_2_Temp+15) 240 0120 mov R1,#Data_1 241 0122 acall Simpan_Data 243 0124 BCD: 244 0124 clr Kolom4 245 0126 jb Baris2,BIN 246 0129 acall Tunggu_tombol_dilepas 247 012B mov R7,#Kode_BCD ;Simpan kode BCD 248 012D mov (Data_Negatif-2),Data_Negatif 249 0130 acall Cek_Mode_Tampilan 250 0132 push 30H 251 0134 mov R0,#Terima_atas 252 0136 mov DPTR,#Judul2 ; Tampilkan BCD

Page 135: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

4

253 0139 lcall Pindah_RAM 254 013C pop 30H 255 013E lcall Baris_atas 256 0141 acall Ubah_Mode 257 0143 acall Loop_Tampilan_C 258 0145 acall Cek_Mode_Akhir 259 0147 setb Kolom4 260 0149 ret 261 014A BIN: 262 014A jb Baris3,HEX 263 014D acall Tunggu_tombol_dilepas 264 014F mov R7,#Kode_BIN ;Simpan kode BIN 265 0151 mov (Data_Negatif-2),Data_Negatif 266 0154 acall Cek_Mode_Tampilan 267 0156 mov R0,#Terima_atas 268 0158 mov DPTR,#Judul3 ; Tampilkan BIN 269 015B lcall Pindah_RAM 270 015E lcall Baris_atas 271 0161 acall Ubah_Mode 272 0163 acall Loop_Tampilan_C 273 0165 acall Cek_Mode_Akhir 274 0167 setb Kolom4 275 0169 ret 276 016A HEX: 277 016A jb Baris4,DEC 278 016D acall Tunggu_tombol_dilepas 279 016F mov R7,#Kode_HEX ;Simpan kode HEX 280 0171 mov (Data_Negatif-2),Data_Negatif 281 0174 acall Cek_Mode_Tampilan 282 0176 mov R0,#Terima_atas 283 0178 mov DPTR,#Judul4 ; Tampilkan HEX 284 017B lcall Pindah_RAM 285 017E lcall Baris_atas 286 0181 acall Ubah_Mode 287 0183 acall Cek_Mode_Akhir 288 0185 lcall Hapus_Temp 289 0188 setb Kolom4 290 018A ret 291 018B DEC: 292 018B jb Baris5,BCD 293 018E acall Tunggu_tombol_dilepas 294 0190 mov R7,#Kode_DEC ;Simpan kode DEC 295 0192 mov (Data_Negatif-2),Data_Negatif 296 0195 acall Cek_Mode_Tampilan 297 0197 push 30H 298 0199 mov R0,#Terima_atas 299 019B mov DPTR,#Judul5 ; Tampilkan DEC 300 019E lcall Pindah_RAM 301 01A1 pop 30H 302 01A3 lcall Baris_atas 303 01A6 acall Ubah_Mode 304 01A8 lcall Hapus_Temp 305 01AB setb Kolom4 306 01AD ret 308 01AE Ubah_Mode: 309 01AE mov R0,#Data_1_Temp 310 01B0 acall Cek_Spasi 311 01B2 mov R0,#Data_1_Temp 312 01B4 mov R1,#Terima_bawah 313 01B6 acall Copy_Data 314 01B8 lcall Baris_bawah 315 01BB ret 318 01BC ;================================================ 319 01BC ; Scanning Keypad Mode Hex 320 01BC ;================================================ 321 01BC Hex_Key: 322 01BC Huruf_A: ;Huruf A (41H = 30 +11) 323 01BC acall Reset_Keypad 324 01BE clr Kolom1 325 01C0 jb Baris3,Huruf_D 326 01C3 lcall LTunda 327 01C6 acall Tunggu_tombol_dilepas 328 01C8 acall Cek_Mode_Awal 329 01CA mov Key_Data,#11H 330 01CD setb Kolom1 331 01CF ajmp Loop_Scan_2

Page 136: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

5

332 01D1 Huruf_D: ;Huruf D (44H = 30 + 14) 333 01D1 jb Baris4,Huruf_B 334 01D4 lcall LTunda 335 01D7 acall Tunggu_tombol_dilepas 336 01D9 acall Cek_Mode_Awal 337 01DB mov Key_Data,#14H 338 01DE setb Kolom1 339 01E0 ajmp Loop_Scan_2 340 01E2 Huruf_B: 341 01E2 acall Reset_Keypad 342 01E4 clr Kolom2 ;Huruf B (42H = 30 + 12) 343 01E6 jb Baris3,Huruf_E 344 01E9 lcall LTunda 345 01EC acall Tunggu_tombol_dilepas 346 01EE acall Cek_Mode_Awal 347 01F0 mov Key_Data,#12H 348 01F3 setb Kolom2 349 01F5 ajmp Loop_Scan_2 350 01F7 Huruf_E: ;Huruf E (45H = 30 +15) 351 01F7 jb Baris4,Huruf_C 352 01FA lcall LTunda 353 01FD acall Tunggu_tombol_dilepas 354 01FF acall Cek_Mode_Awal 355 0201 mov Key_Data,#15H 356 0204 setb Kolom2 357 0206 ajmp Loop_Scan_2 358 0208 Huruf_C: ;Huruf_C (43H = 30 + 13) 359 0208 acall Reset_Keypad 360 020A clr Kolom3 361 020C jb Baris3,Huruf_F 362 020F lcall LTunda 363 0212 acall Tunggu_tombol_dilepas 364 0214 acall Cek_Mode_Awal 365 0216 mov Key_Data,#13H 366 0219 setb Kolom3 367 021B ajmp Loop_Scan_2 368 021D Huruf_F: ;Huruf F (46H = 30 + 16) 369 021D jb Baris4,Angka_7 370 0220 lcall LTunda 371 0223 acall Tunggu_tombol_dilepas 372 0225 acall Cek_Mode_Awal 373 0227 mov Key_Data,#16H 374 022A setb Kolom3 375 022C ajmp Loop_Scan_2 376 022E Dec_Key: 377 022E Angka_7: ;Angka 7 (37H = 30 + 7) 378 022E acall Reset_Keypad 379 0230 clr Kolom1 380 0232 jb Baris5,Angka_4 381 0235 lcall LTunda 382 0238 acall Tunggu_tombol_dilepas 383 023A acall Cek_Mode_Awal 384 023C mov Key_Data,#7H 385 023F setb Kolom1 386 0241 ajmp Loop_Scan_2 387 0243 Angka_4: ;Angka_4 (34H = 30 + 4) 388 0243 jb Baris6,Angka_8 389 0246 lcall LTunda 390 0249 acall Tunggu_tombol_dilepas 391 024B acall Cek_Mode_Awal 392 024D mov Key_Data,#4H 393 0250 setb Kolom1 394 0252 ajmp Loop_Scan_2 395 0254 Angka_8: ;Angka_8 (38H = 30 + 8) 396 0254 acall Reset_Keypad 397 0256 clr Kolom2 398 0258 jb Baris5,Angka_5 399 025B lcall LTunda 400 025E acall Tunggu_tombol_dilepas 401 0260 acall Cek_Mode_Awal 402 0262 mov Key_Data,#8H 403 0265 setb Kolom2 404 0267 ajmp Loop_Scan_2 405 0269 Angka_5: ;Angka_5 (35H = 30 + 5) 406 0269 jb Baris6,Angka_2 407 026C lcall LTunda

Page 137: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

6

408 026F acall Tunggu_tombol_dilepas 409 0271 acall Cek_Mode_Awal 410 0273 mov Key_Data,#5H 411 0276 setb Kolom2 412 0278 ajmp Loop_Scan_2 413 027A Angka_2: ;Angka_2 (32H = 30 + 2) 414 027A jb Baris7,Angka_9 415 027D lcall LTunda 416 0280 acall Tunggu_tombol_dilepas 417 0282 acall Cek_Mode_Awal 418 0284 mov Key_Data,#2H 419 0287 setb Kolom2 420 0289 ajmp Loop_Scan_2 421 028B Angka_9: ;Angka_9 (39H = 30 + 9) 422 028B acall Reset_Keypad 423 028D clr Kolom3 424 028F jb Baris5,Angka_6 425 0292 lcall LTunda 426 0295 acall Tunggu_tombol_dilepas 427 0297 acall Cek_Mode_Awal 428 0299 mov Key_Data,#9H 429 029C setb Kolom3 430 029E ajmp Loop_Scan_2 431 02A0 Angka_6: ;Angka_6 (36H = 30 + 6) 432 02A0 jb Baris6,Angka_3 433 02A3 lcall LTunda 434 02A6 acall Tunggu_tombol_dilepas 435 02A8 mov Key_Data,#6H 436 02AB setb Kolom3 437 02AD ajmp Loop_Scan_2 438 02AF Angka_3: ;Angka_3 (33H = 30 + 3) 439 02AF jb Baris7,Angka_1 440 02B2 lcall LTunda 441 02B5 acall Tunggu_tombol_dilepas 442 02B7 acall Cek_Mode_Awal 443 02B9 mov Key_Data,#3H 444 02BC setb Kolom3 445 02BE ajmp Loop_Scan_2 446 02C0 Bin_Key: 447 02C0 Angka_1: ;Angka_1 (31H = 30 + 1) 448 02C0 acall Reset_Keypad 449 02C2 clr Kolom1 450 02C4 jb Baris7,Angka_0 451 02C7 lcall LTunda 452 02CA acall Tunggu_tombol_dilepas 453 02CC acall Cek_Mode_Awal 454 02CE mov Key_Data,#1H 455 02D1 setb Kolom1 456 02D3 ajmp Loop_Scan_2 457 02D5 Angka_0: ;Angka_0 (30H = 30 + 0) 458 02D5 jb Baris8,Operator 459 02D8 lcall LTunda 460 02DB acall Tunggu_tombol_dilepas 461 02DD acall Cek_Mode_Awal 462 02DF mov Key_Data,#0H 463 02E2 setb Kolom1 464 02E4 ajmp Loop_Scan_2 465 02E6 Operator: 466 02E6 Key_Mode: 467 02E6 acall Reset_Keypad 468 02E8 clr Kolom4 469 02EA jb Baris1,Key_Akar 470 02ED acall Tunggu_tombol_dilepas 471 02EF acall Cek_Mode_Awal 472 02F1 mov R0,#Terima_atas 473 02F3 mov DPTR,#Judul1 ; tampilkan MODE 474 02F6 lcall Pindah_RAM 475 02F9 lcall Baris_atas 476 02FC acall Cek_Mode_Hitung 477 02FE acall Mode 478 0300 setb Kolom4 479 0302 ajmp Next_Data 480 0304 Key_Akar: 481 0304 jb Baris2,Key_Kali 482 0307 acall Tunggu_tombol_dilepas 483 0309 mov sp,#08H

Page 138: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

7

484 030C mov A,Data_Negatif 485 030E cjne A,#00H,Gak_Bisa_Akar 486 0311 acall Cek_Mode_Awal 487 0313 mov (Terima_atas+14),#0E8H ;Simbol Akar (E8H) 488 0316 lcall Baris_atas 489 0319 lcall Akar 490 031C cjne R7,#3H,Key_Akar_BD 491 031F mov R0,#Sisa 492 0321 mov R1,#Data_2_Temp 493 0323 lcall Copy_Data 494 0326 Key_Akar_BD: 495 0326 acall Cek_Mode_Akhir 496 0328 setb Kolom4 497 032A ajmp Next_Data 499 032C Gak_Bisa_Akar: 500 032C ljmp Sistem_Error 502 032F Key_Kali: ;Kode Kali = 1 503 032F jb Baris3,Key_Bagi 504 0332 acall Tunggu_tombol_dilepas 505 0334 acall Cek_Mode_Awal 506 0336 mov (Terima_atas+14),#078H ;Simbol Kali (78H) 507 0339 lcall Baris_atas 508 033C mov (Data_Operator+1),#1H ;Simpan Kode Kali 509 033F mov A,Data_Operator 510 0341 cjne A,#00H,Proses 511 0344 acall Copy_D2T_D1T 512 0346 mov (Data_Negatif-1),Data_Negatif 513 0349 mov Data_Negatif,#00H 514 034C setb Kolom4 515 034E ajmp Next_Data 516 0350 Key_Bagi: ;Kode Bagi = 2 517 0350 jb Baris4,Key_Tambah 518 0353 acall Tunggu_tombol_dilepas 519 0355 acall Cek_Mode_Awal 520 0357 mov (Terima_atas+14),#0FDH ;Simbol Bagi (FDH) 521 035A lcall Baris_atas 522 035D mov (Data_Operator+1),#2H ;Simpan Kode Bagi 523 0360 mov A,Data_Operator 524 0362 cjne A,#00H,Proses 525 0365 acall Copy_D2T_D1T 526 0367 mov (Data_Negatif-1),Data_Negatif 527 036A mov Data_Negatif,#00H 528 036D setb Kolom4 529 036F ajmp Next_Data 530 0371 Key_Tambah: ;Kode Tambah = 3 531 0371 jb Baris5,Key_Kurang 532 0374 acall Tunggu_tombol_dilepas 533 0376 acall Cek_Mode_Awal 534 0378 mov (Terima_atas+14),#02BH ;Simbol Tambah (2BH) 535 037B lcall Baris_atas 536 037E mov (Data_Operator+1),#3H ;Simpan Kode Tambah 537 0381 mov A,Data_Operator 538 0383 cjne A,#00H,Proses 539 0386 acall Copy_D2T_D1T 540 0388 mov (Data_Negatif-1),Data_Negatif 541 038B mov Data_Negatif,#00H 542 038E setb Kolom4 543 0390 ajmp Next_Data 544 0392 Key_Kurang: ;Kode Kurang = 4 545 0392 jb Baris6,Key_DEL 546 0395 acall Tunggu_tombol_dilepas 547 0397 acall Cek_Mode_Awal 548 0399 mov (Terima_atas+14),#0B0H ;Simbol Kurang (B0H) 549 039C lcall Baris_atas 550 039F mov (Data_Operator+1),#4H ;Simpan Kode Kurang 551 03A2 mov A,Data_Operator 552 03A4 cjne A,#00H,Proses 553 03A7 acall Copy_D2T_D1T 554 03A9 mov (Data_Negatif-1),Data_Negatif 555 03AC mov Data_Negatif,#00H 556 03AF setb Kolom4 557 03B1 ajmp Next_Data 559 03B3 Proses: 560 03B3 ajmp Hitung 562 03B5 Key_DEL: 563 03B5 jb Baris7,Key_Hasil

Page 139: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

8

564 03B8 lcall LTunda 565 03BB acall Tunggu_tombol_dilepas 566 03BD acall Cek_Mode_Awal 567 03BF acall Tampilan_DEL 568 03C1 setb Kolom4 569 03C3 ajmp Cek_Mode 570 03C5 Key_Hasil: 571 03C5 jb Baris8,Key_C 572 03C8 acall Tunggu_tombol_dilepas 573 03CA acall Cek_Mode_Awal 574 03CC mov (Terima_atas+14),#03DH ;Simbol "=" (3DH) 575 03CF lcall Baris_atas 576 03D2 mov Data_Hasil,#0FFH 577 03D5 setb Kolom4 578 03D7 mov A,Data_Operator 579 03D9 cjne A,#00H,Calculate 580 03DC ajmp Next_Data 581 03DE Key_C: 582 03DE acall Reset_Keypad 583 03E0 clr Kolom1 584 03E2 jb Baris1,Key_CE 585 03E5 lcall LTunda 586 03E8 acall Tunggu_tombol_dilepas 587 03EA acall Tampilan_C 588 03EC setb Kolom1 589 03EE ajmp Next_Data 590 03F0 Key_CE: 591 03F0 jb Baris2,Key_Kuadrat 592 03F3 lcall LTunda 593 03F6 acall Tunggu_tombol_dilepas 594 03F8 acall Tampilan_CE 595 03FA setb Kolom1 596 03FC ajmp Next_Data 597 03FE Key_Kuadrat: 598 03FE acall Reset_Keypad 599 0400 clr Kolom3 600 0402 jb Baris2,Key_Tanda 601 0405 acall Tunggu_tombol_dilepas 602 0407 mov sp,#08H 603 040A acall Cek_Mode_Awal 604 040C lcall Kuadrat 605 040F cjne R7,#3H,Key_Kuadrat_BD 606 0412 mov R0,#Sisa 607 0414 mov R1,#Data_2_Temp 608 0416 lcall Copy_Data 609 0419 Key_Kuadrat_BD: 610 0419 acall Cek_Mode_Akhir 611 041B setb Kolom3 612 041D ajmp Next_Data 613 041F Key_Tanda: 614 041F jb Baris8,Loop_Operator 615 0422 lcall LTunda 616 0425 acall Tunggu_tombol_dilepas 617 0427 mov sp,#08H 618 042A mov A,Data_Negatif 619 042C cpl A 620 042D mov Data_Negatif,A 621 042F acall Cek_Mode_Awal 622 0431 acall Bilangan_Negatif 623 0433 setb Kolom3 624 0435 ajmp Next_Data 626 0437 Loop_Operator: 627 0437 ajmp Cek_Mode 629 0439 Calculate: 630 0439 ajmp Hitung 634 043B ;================================================ 635 043B ; Subrutin Bilangan Negatif 636 043B ;================================================ 637 043B Bilangan_Negatif: 638 043B clr C 639 043C mov A,#02H 640 043E subb A,R7 641 043F jc Bil_Dec ;Cek apakah Mode Dec atau BCD 643 0441 push 2EH 644 0443 mov R0,#Data_1_Temp 645 0445 mov R1,#0B0H

Page 140: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

9

646 0447 acall Copy_Data 647 0449 acall Cek_Mode_Hitung 648 044B mov R0,#(Data_2_Temp+15) ;Menggabungkan data satuan 649 044D mov R1,#(Data_2_Temp+14) 650 044F acall Gabung_Data 651 0451 mov R0,#(Data_2_Temp+15) 652 0453 mov R1,#Data_1 653 0455 acall Simpan_Data 655 0457 mov (Data_Negatif-2),(Data_Negatif) 656 045A acall Cek_Mode_Tampilan 657 045C mov R0,#Data_1_Temp 658 045E acall Cek_Spasi 659 0460 mov R0,#Data_1_Temp 660 0462 mov R1,#Terima_bawah 661 0464 acall Copy_Data 662 0466 lcall Baris_bawah 663 0469 acall Cek_Mode_Akhir 664 046B mov R0,#0B0H 665 046D mov R1,#Data_1_Temp 666 046F acall Copy_Data 667 0471 mov R0,#0B0H 668 0473 acall Hapus_Nilai 669 0475 pop 2EH 670 0477 ret 672 0478 Bil_Dec: 673 0478 mov A,Data_Negatif 674 047A cjne A,#0FFH,Hapus_Tanda ;Cek sudah ada tanda negatif? 675 047D mov Terima_atas,#0B0H 676 0480 lcall Baris_atas 677 0483 ret 679 0484 Hapus_Tanda: 680 0484 mov Terima_atas,#20H 681 0487 lcall Baris_atas 682 048A ret 684 048B ;================================================ 685 048B ; Subrutin Cek Mode Keypad 686 048B ;================================================ 687 048B Cek_Mode: 688 048B cjne R7,#01H,Cek_Mode_Hex 689 048E ajmp Bin_Key 690 0490 Cek_Mode_Hex: 691 0490 cjne R7,#02H,Cek_Mode_Dec 692 0493 ajmp Hex_Key 693 0495 Cek_Mode_Dec: 694 0495 cjne R7,#03H,Cek_Mode_BCD 695 0498 ajmp Dec_Key 696 049A Cek_Mode_BCD: 697 049A cjne R7,#04H,Cek_Mode 698 049D ajmp Bin_Key 700 049F ;================================================ 701 049F ; Subrutin Cek Mode Awal 702 049F ;================================================ 703 049F Cek_Mode_Awal: 704 049F cjne R7,#01H,Cek_Mode_Hex_Awal 705 04A2 mov R0,#Terima_atas 706 04A4 mov DPTR,#Judul3 707 04A7 lcall Pindah_RAM 708 04AA lcall Baris_atas 709 04AD ret 710 04AE Cek_Mode_Hex_Awal: 711 04AE cjne R7,#02H,Cek_Mode_Dec_Awal 712 04B1 mov R0,#Terima_atas 713 04B3 mov DPTR,#Judul4 714 04B6 lcall Pindah_RAM 715 04B9 lcall Baris_atas 716 04BC ret 717 04BD Cek_Mode_Dec_Awal: 718 04BD cjne R7,#03H,Cek_Mode_BCD_Awal 719 04C0 mov R0,#Terima_atas 720 04C2 mov DPTR,#Judul5 721 04C5 lcall Pindah_RAM 722 04C8 lcall Baris_atas 723 04CB ret 724 04CC Cek_Mode_BCD_Awal: 725 04CC cjne R7,#04H,Cek_Mode_Awal 726 04CF mov R0,#Terima_atas

Page 141: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

10

727 04D1 mov DPTR,#Judul2 728 04D4 lcall Pindah_RAM 729 04D7 lcall Baris_atas 730 04DA ret 732 04DB ;================================================ 733 04DB ; Subrutin Cek Mode Akhir 734 04DB ;================================================ 735 04DB Cek_Mode_Akhir: 736 04DB cjne R7,#01H,Cek_Mode_Hex_Akhir 737 04DE mov R0,#(Data_Negatif-2) 738 04E0 cjne @R0,#0FFH,BIN_Akhir 739 04E3 mov R0,#Data_1 740 04E5 acall Negatifkan 742 04E7 mov R0,#(Data_1_Temp) 743 04E9 acall Hapus_Nilai 744 04EB mov R0,#Data_1 745 04ED mov R1,#(Data_1_Temp+15) 746 04EF acall Pisah_Data 747 04F1 mov R0,#(Data_1_Temp+15) 748 04F3 mov R1,#0CFH 749 04F5 lcall Tampilan_Bin 751 04F8 BIN_Akhir: 752 04F8 mov R0,#0C0H 753 04FA mov R1,#Data_2_Temp 754 04FC mov R2,#16 755 04FE Loop_BIN: 756 04FE clr C 757 04FF mov A,@R0 758 0500 subb A,#30H 759 0502 mov @R1,A 760 0503 inc R0 761 0504 inc R1 762 0505 djnz R2,Loop_BIN 763 0507 mov R0,#0C0H 764 0509 acall Hapus_Nilai 765 050B mov R0,#Data_1_Temp 766 050D acall Hapus_Nilai 767 050F lcall Hapus_Temp 768 0512 mov (Data_Negatif),(Data_Negatif-2) 769 0515 mov (Data_Negatif-1),#00H 770 0518 mov (Data_Negatif-2),#00H 771 051B ret 772 051C Cek_Mode_Hex_Akhir: 773 051C cjne R7,#02H,Cek_Mode_Dec_Akhir 774 051F mov R0,#Data_1_Temp 775 0521 acall Hapus_Nilai 776 0523 mov R0,#Data_2_Temp 777 0525 acall Hapus_Nilai 778 0527 mov R0,#(Data_Negatif-2) 779 0529 cjne @R0,#0FFH,Cek_Mode_Hex_Akhir_2 780 052C mov R0,#Data_1 781 052E acall Negatifkan 782 0530 Cek_Mode_Hex_Akhir_2: 783 0530 mov R0,#Data_1 784 0532 mov R1,#(Data_2_Temp+15) 785 0534 acall Pisah_Data 786 0536 lcall Hapus_Temp 787 0539 mov (Data_Negatif),(Data_Negatif-2) 788 053C mov (Data_Negatif-1),#00H 789 053F mov (Data_Negatif-2),#00H 790 0542 ret 791 0543 Cek_Mode_Dec_Akhir: 792 0543 cjne R7,#03H,Cek_Mode_BCD_Akhir 793 0546 mov R0,#Data_1_Temp 794 0548 acall Hapus_Nilai 795 054A lcall Hapus_Temp 796 054D ret 797 054E Cek_Mode_BCD_Akhir: 798 054E cjne R7,#04H,Cek_Mode_Akhir 799 0551 acall BIN_Akhir 800 0553 ret 803 0554 ;================================================ 804 0554 ; Subrutin Cek Mode Hitung 805 0554 ;================================================ 806 0554 Cek_Mode_Hitung: 807 0554 cjne R7,#01H,Cek_Mode_Hex_Hitung

Page 142: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

11

808 0557 mov Key_Data,#(Data_1_Temp+15) 809 055A lcall Konv_Bin_Hex 810 055D mov Key_Data,#(Data_2_Temp+15) 811 0560 lcall Konv_Bin_Hex 812 0563 ret 813 0564 Cek_Mode_Hex_Hitung: 814 0564 cjne R7,#02H,Cek_Mode_Dec_Hitung 815 0567 ret 816 0568 Cek_Mode_Dec_Hitung: 817 0568 cjne R7,#03H,Cek_Mode_BCD_Hitung 818 056B mov R0,#Terima_atas 819 056D acall Hapus_Nilai 820 056F mov Terima_atas,(Data_1_Temp+15) 821 0572 mov (Key_Data+4),#(Data_1_Temp+14) 822 0575 lcall Konv_Dec_Hex 823 0578 mov R0,#Terima_atas 824 057A acall Hapus_Nilai 825 057C mov Terima_atas,(Data_2_Temp+15) 826 057F mov (Key_Data+4),#(Data_2_Temp+14) 827 0582 lcall Konv_Dec_Hex 828 0585 ret 829 0586 Cek_Mode_BCD_Hitung: 830 0586 cjne R7,#04H,Cek_Mode_Hitung 831 0589 mov Key_Data,#(Data_1_Temp+15) 832 058C lcall Konv_BCD_Hex 833 058F mov R0,#Terima_atas 834 0591 acall Hapus_Nilai 835 0593 mov Terima_atas,(Data_1_Temp+15) 836 0596 mov (Key_Data+4),#(Data_1_Temp+14) 837 0599 lcall Konv_Dec_Hex 839 059C mov Key_Data,#(Data_2_Temp+15) 840 059F lcall Konv_BCD_Hex 841 05A2 mov R0,#Terima_atas 842 05A4 acall Hapus_Nilai 843 05A6 mov Terima_atas,(Data_2_Temp+15) 844 05A9 mov (Key_Data+4),#(Data_2_Temp+14) 845 05AC lcall Konv_Dec_Hex 846 05AF ret 848 05B0 ;================================================ 849 05B0 ; Subrutin Cek Mode Tampilan 850 05B0 ;================================================ 851 05B0 Cek_Mode_Tampilan: ;Data diletakkan di Data_1 852 05B0 mov R0,#Data_1_Temp 853 05B2 acall Hapus_Nilai 854 05B4 mov R0,#Data_2_Temp 855 05B6 acall Hapus_Nilai 856 05B8 lcall Hapus_Karakter 858 05BB ljmp Cek_Mode_Max 859 05BE mov R0,#Data_1_Temp 860 05C0 acall Hapus_Nilai 861 05C2 mov R0,#Data_2_Temp 862 05C4 acall Hapus_Nilai 864 05C6 Belum_Max: 865 05C6 cjne R7,#01H,Cek_Mode_Hex_Tampilan 866 05C9 mov R0,#(Data_Negatif-2) 867 05CB cjne @R0,#0FFH,Cek_Mode_Bin_Tampilan_2 868 05CE mov R0,#Data_1 869 05D0 acall Negatifkan 870 05D2 Cek_Mode_Bin_Tampilan_2: 871 05D2 mov R0,#Data_1 872 05D4 mov R1,#(Data_1_Temp+15) 873 05D6 acall Pisah_Data 874 05D8 mov R0,#(Data_1_Temp+15) 875 05DA mov R1,#0CFH 876 05DC lcall Tampilan_Bin 877 05DF mov R0,#0C0H 878 05E1 mov R1,#Data_1_Temp 879 05E3 acall Copy_Data 881 05E5 mov A,Data_Operator 882 05E7 cjne A,#02H,Tmpl_Bin_End 883 05EA mov R0,#Sisa 884 05EC mov R1,#(Data_2_Temp+15) 885 05EE acall Pisah_Data 886 05F0 mov R0,#(Data_2_Temp+15) 887 05F2 mov R1,#0DFH 888 05F4 lcall Tampilan_Bin

Page 143: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

12

889 05F7 mov R0,#0D0H 890 05F9 mov R1,#Data_2_Temp 891 05FB acall Copy_Data 893 05FD Tmpl_Bin_End: 894 05FD ret 896 05FE Cek_Mode_Hex_Tampilan: 897 05FE cjne R7,#02H,Cek_Mode_Dec_Tampilan 898 0601 mov R0,#(Data_Negatif-2) 899 0603 cjne @R0,#0FFH,Cek_Mode_Hex_Tampilan_2 900 0606 mov R0,#Data_1 901 0608 acall Negatifkan 902 060A Cek_Mode_Hex_Tampilan_2: 903 060A acall Tampilan_Hex 904 060C ret 906 060D Cek_Mode_Dec_Tampilan: 907 060D cjne R7,#03H,Cek_Mode_BCD_Tampilan 908 0610 acall Tampilan_Dec 909 0612 mov R0,#(Data_Negatif-2) 910 0614 cjne @R0,#0FFH,Cek_Mode_Dec_Tampilan_2 911 0617 push 3EH 912 0619 push 3FH 913 061B acall Cek_Mode_Dec_Awal 914 061D pop 3FH 915 061F pop 3EH 916 0621 mov Terima_atas,#0B0H 917 0624 lcall Baris_atas 918 0627 mov (Data_Negatif),(Data_Negatif-2) 919 062A mov (Data_Negatif-1),#00H 920 062D mov (Data_Negatif-2),#00H 921 0630 Cek_Mode_Dec_Tampilan_2: 922 0630 ret 924 0631 Cek_Mode_BCD_Tampilan: 925 0631 cjne R7,#04H,Ulang_Cek_Mode_Tampilan 926 0634 lcall Tampilan_BCD 927 0637 mov R0,#0C0H 928 0639 mov R1,#Data_1_Temp 929 063B acall Copy_Data 930 063D mov R0,#(Data_Negatif-2) 931 063F cjne @R0,#0FFH,Cek_Mode_BCD_Tampilan_2 932 0642 push 3EH 933 0644 push 3FH 934 0646 acall Cek_Mode_BCD_Awal 935 0648 pop 3FH 936 064A pop 3EH 937 064C mov Terima_atas,#0B0H 938 064F lcall Baris_atas 939 0652 mov (Data_Negatif),(Data_Negatif-2) 940 0655 mov (Data_Negatif-1),#00H 941 0658 mov (Data_Negatif-2),#00H 942 065B Cek_Mode_BCD_Tampilan_2: 943 065B ret 945 065C Ulang_Cek_Mode_Tampilan: 946 065C ajmp Cek_Mode_Tampilan 948 065E ;================================================ 949 065E ; Subrutin Cek Operator 950 065E ;================================================ 951 065E Cek_Operator: 952 065E mov A,Data_Operator 953 0660 cjne A,#01H,Cek_Operator_Bagi 954 0663 lcall Perkalian 955 0666 acall Copy_Hasil_Data1 956 0668 acall Operasi_Bil_Dec_3 957 066A ret 958 066B Cek_Operator_Bagi: 959 066B cjne A,#02H,Cek_Operator_Tambah 960 066E mov R0,#Data_2 961 0670 mov R2,#Jml_Byte 962 0672 Cek_Operator_Bagi_Nol: 963 0672 cjne @R0,#00H,Bukan_Nol 964 0675 inc R0 965 0676 djnz R2,Cek_Operator_Bagi_Nol 966 0678 ljmp Sistem_Error 967 067B Bukan_Nol: 968 067B lcall Pembagian 969 067E clr C 970 067F mov A,#02H

Page 144: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

13

971 0681 subb A,R7 972 0682 jnc Cek_Operator_Bagi_2 ;Cek apakah Mode Dec atau BCD 973 0684 mov R0,#Sisa 974 0686 mov R1,#(Terima_atas+15) 975 0688 mov R2,#2 976 068A Bagi_Dec: 977 068A mov A,@R0 978 068B mov @R1,A 979 068C inc R0 980 068D dec R1 981 068E djnz R2,Bagi_Dec 982 0690 Cek_Operator_Bagi_2: 983 0690 acall Copy_Hasil_Data1 984 0692 acall Copy_Sisa_Data2 985 0694 acall Operasi_Bil_Dec_3 986 0696 ret 987 0697 Cek_Operator_Tambah: 988 0697 sjmp Operasi_Bil_Dec ;Cek apakah Mode Dec atau BCD 989 0699 Cek_Operator_Tambah_2: 990 0699 mov A,Data_Operator 991 069B mov R0,#Data_1 992 069D mov R1,#Data_2 993 069F cjne A,#03H,Cek_Operator_Kurang 994 06A2 lcall Penambahan 995 06A5 mov R0,#(Data_1+7) 996 06A7 cjne @R0,#0FFH,Cek_Operator_Tambah_3 997 06AA mov R0,#Data_1 998 06AC acall Negatifkan 999 06AE mov (Data_Negatif-2),#0FFH 1000 06B1 Cek_Operator_Tambah_3: 1001 06B1 ret 1002 06B2 Cek_Operator_Kurang: 1003 06B2 mov R0,#Data_1 1004 06B4 mov R1,#Data_2 1005 06B6 cjne A,#04H,Cek_Operator 1006 06B9 lcall Pengurangan 1007 06BC mov R0,#(Data_1+7) 1008 06BE cjne @R0,#0FFH,Cek_Operator_Kurang_2 1009 06C1 mov R0,#Data_1 1010 06C3 acall Negatifkan 1011 06C5 mov (Data_Negatif-2),#0FFH 1012 06C8 Cek_Operator_Kurang_2: 1013 06C8 ret 1015 06C9 Operasi_Bil_Dec: 1016 06C9 mov A,(Data_Negatif-1) 1017 06CB cjne A,#0FFH,Operasi_Bil_Dec_2 1018 06CE mov R0,#Data_1 1019 06D0 acall Negatifkan 1020 06D2 Operasi_Bil_Dec_2: 1021 06D2 mov A,(Data_Negatif) 1022 06D4 cjne A,#0FFH,Cek_Operator_Tambah_2 1023 06D7 mov R0,#Data_2 1024 06D9 acall Negatifkan 1025 06DB sjmp Cek_Operator_Tambah_2 1027 06DD Operasi_Bil_Dec_3: 1028 06DD mov A,Data_Negatif 1029 06DF xrl A,(Data_Negatif-1) 1030 06E1 mov (Data_Negatif-2),A 1031 06E3 ret 1033 06E4 Negatifkan: 1034 06E4 push 00H 1035 06E6 mov R2,#8 1036 06E8 Loop_Negatifkan: 1037 06E8 mov A,@R0 1038 06E9 cpl A 1039 06EA mov @R0,A 1040 06EB inc R0 1041 06EC djnz R2,Loop_Negatifkan 1042 06EE pop 00H 1043 06F0 mov A,#1H 1044 06F2 add A,@R0 1045 06F3 mov @R0,A 1046 06F4 ret 1048 06F5 ;================================================ 1049 06F5 ; Subrutin Cek Karakter Spasi 1050 06F5 ;================================================

Page 145: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

14

1051 06F5 Cek_Spasi: 1052 06F5 mov R2,#15 1053 06F7 Loop_Cek_Spasi: 1054 06F7 cjne @R0,#30H,Bukan_Spasi 1055 06FA mov @R0,#20H 1056 06FC inc R0 1057 06FD djnz R2,Loop_Cek_Spasi 1058 06FF ret 1060 0700 Bukan_Spasi: 1061 0700 ret 1063 0701 ;================================================ 1064 0701 ; Subrutin Gabung Data 1065 0701 ;================================================ 1066 0701 Gabung_Data: 1067 0701 mov R3,#8 1068 0703 Loop_Gabung_Data: 1069 0703 clr A 1070 0704 xch A,@R1 1071 0705 swap A 1072 0706 add A,@R0 1073 0707 mov @R0,A 1074 0708 dec R0 1075 0709 dec R0 1076 070A dec R1 1077 070B dec R1 1078 070C djnz R3,Loop_Gabung_Data 1079 070E ret 1081 070F ;================================================ 1082 070F ; Subrutin Simpan Data 1083 070F ;================================================ 1084 070F Simpan_Data: 1085 070F mov R3,#8 1086 0711 Loop_Simpan_Data: 1087 0711 mov A,@R0 1088 0712 mov @R1,A 1089 0713 dec R0 1090 0714 dec R0 1091 0715 inc R1 1092 0716 djnz R3,Loop_Simpan_Data 1093 0718 ret 1095 0719 ;================================================ 1096 0719 ; Subrutin Hapus nilai 1097 0719 ;================================================ 1098 0719 Hapus_Nilai: 1099 0719 mov R2,#16 ;Ada 16 data 1100 071B Loop_Hapus_Nilai: 1101 071B mov @R0,#0 ;Alamat yang ingin dihapus 1102 071D inc R0 1103 071E djnz R2,Loop_Hapus_Nilai 1104 0720 ret 1106 0721 ;================================================ 1107 0721 ; Subrutin Pisah Data 1108 0721 ;================================================ 1109 0721 Pisah_Data: 1110 0721 mov R2,#8 ;Ada 8 byte 1111 0723 Loop_Pisah_Data: 1112 0723 mov A,@R0 ;R0 = Alamat asal data 1113 0724 xchd A,@R1 ;R1 = Alamat tujuan data 1114 0725 swap A 1115 0726 dec R1 1116 0727 inc R0 1117 0728 mov @R1,A 1118 0729 dec R1 1119 072A djnz R2,Loop_Pisah_Data 1120 072C ret 1122 072D ;================================================ 1123 072D ; Subrutin Copy Hasil Ke Data_1 1124 072D ;================================================ 1125 072D Copy_Hasil_Data1: 1126 072D mov R0,#Hasil 1127 072F mov R1,#Data_1 1128 0731 acall Copy_Data 1129 0733 ret 1131 0734 ;================================================ 1132 0734 ; Subrutin Copy Sisa Ke Data_2 1133 0734 ;================================================

Page 146: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

15

1134 0734 Copy_Sisa_Data2: 1135 0734 mov R0,#Sisa 1136 0736 mov R1,#Data_2 1137 0738 acall Copy_Data 1138 073A ret 1140 073B ;================================================ 1141 073B ; Subrutin Copy Sisa Ke Data_2 1142 073B ;================================================ 1143 073B Copy_D2T_D1T: 1144 073B mov R0,#Data_2_Temp 1145 073D mov R1,#Data_1_Temp 1146 073F acall Copy_Data 1147 0741 ret 1149 0742 ;================================================ 1150 0742 ; Subrutin Copy Data 1151 0742 ;================================================ 1152 0742 Copy_Data: 1153 0742 mov R3,#15 ;Ada 15 data 1154 0744 Loop_Copy_Data: 1155 0744 mov A,@R0 ;R0 = Alamat asal data 1156 0745 mov @R1,A ;R1 = Alamat tujuan data 1157 0746 inc R0 1158 0747 inc R1 1159 0748 djnz R3,Loop_Copy_Data 1160 074A ret 1162 074B ;================================================ 1163 074B ; Subrutin Tampilan Tombol C 1164 074B ;================================================ 1165 074B Tampilan_C: 1166 074B mov R0,#Terima_bawah 1167 074D mov DPTR,#Judul6 1168 0750 lcall Pindah_RAM 1169 0753 lcall Baris_bawah 1170 0756 acall Cek_Mode_Awal 1171 0758 Loop_Tampilan_C: 1172 0758 mov R0,#Data_1_Temp 1173 075A acall Hapus_Nilai 1174 075C mov R0,#Data_2_Temp 1175 075E acall Hapus_Nilai 1176 0760 mov R0,#Data_1 1177 0762 acall Hapus_Nilai 1178 0764 mov R0,#Data_2 1179 0766 acall Hapus_Nilai 1180 0768 mov R0,#Hasil 1181 076A acall Hapus_Nilai 1182 076C mov R0,#Sisa 1183 076E acall Hapus_Nilai 1184 0770 mov Data_Operator,#00H 1185 0773 mov (Data_Operator+1),#00H 1186 0776 mov Data_Negatif,#00H 1187 0779 mov (Data_Negatif-1),#00H 1188 077C mov (Data_Negatif-2),#00H 1189 077F mov Data_Hasil,#00H 1190 0782 mov R0,#0D0H 1191 0784 acall Hapus_Nilai 1192 0786 ret 1194 0787 ;================================================ 1195 0787 ; Subrutin Tampilan Tombol CE 1196 0787 ;================================================ 1197 0787 Tampilan_CE: 1198 0787 mov R0,#Terima_bawah 1199 0789 mov DPTR,#Judul6 ;Tampikan ' 0' 1200 078C lcall Pindah_RAM 1201 078F lcall Baris_bawah 1202 0792 acall Cek_Mode_Awal 1203 0794 Loop_Tampilan_CE: 1204 0794 mov R0,#Data_2_Temp 1205 0796 acall Hapus_Nilai 1206 0798 mov R0,#Data_1 1207 079A acall Hapus_Nilai 1208 079C mov R0,#Data_2 1209 079E acall Hapus_Nilai 1210 07A0 mov R0,#Hasil 1211 07A2 acall Hapus_Nilai 1212 07A4 mov R0,#Sisa 1213 07A6 acall Hapus_Nilai

Page 147: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

16

1214 07A8 clr Data_Negatif 1215 07AA ret 1217 07AB ;================================================ 1218 07AB ; Subrutin Tampilan Tombol DEL 1219 07AB ;================================================ 1220 07AB Tampilan_DEL: 1221 07AB mov R0,#(Terima_bawah+13) 1222 07AD mov R1,#(Terima_bawah+15) 1223 07AF mov R2,#13 1224 07B1 Loop_Tampilan_DEL: 1225 07B1 mov A,@R0 1226 07B2 mov @R1,A 1227 07B3 dec R0 1228 07B4 dec R1 1229 07B5 djnz R2,Loop_Tampilan_DEL 1230 07B7 lcall Baris_bawah 1231 07BA mov R1,(Key_Data+2) 1232 07BC acall Pindah_Data_Temp 1233 07BE acall Pindah_TB 1234 07C0 ret 1236 07C1 ;================================================ 1237 07C1 ; Subrutin Tampilan Hex 1238 07C1 ;================================================ 1239 07C1 Tampilan_Hex: 1240 07C1 mov R0,#Data_1 1241 07C3 mov R1,#(Data_1_Temp+15) 1242 07C5 acall Pisah_Data 1243 07C7 mov R0,#(Data_1_Temp+15) 1244 07C9 mov R2,#16 1245 07CB mov R3,#2 1246 07CD Loop_Tampilan_Hex: 1247 07CD clr C 1248 07CE mov A,@R0 1249 07CF subb A,#0AH 1250 07D1 jnc Nilai_Huruf ;Cek apakah huruf ? 1251 07D3 add A,#03AH 1252 07D5 mov @R0,A 1253 07D6 dec R0 1254 07D7 clr C 1255 07D8 djnz R2,Loop_Tampilan_Hex 1256 07DA djnz R3,Tampilan_Hex_2 1257 07DC ret 1259 07DD Nilai_Huruf: 1260 07DD clr C 1261 07DE add A,#41H 1262 07E0 mov @R0,A 1263 07E1 dec R0 1264 07E2 djnz R2,Loop_Tampilan_Hex 1265 07E4 djnz R3,Tampilan_Hex_2 1266 07E6 ret 1268 07E7 Tampilan_Hex_2: 1269 07E7 mov R0,#Sisa 1270 07E9 mov R1,#(Data_2_Temp+15) 1271 07EB acall Pisah_Data 1272 07ED mov R0,#(Data_2_Temp+15) 1273 07EF mov R2,#16 1274 07F1 sjmp Loop_Tampilan_Hex 1276 07F3 ;================================================ 1277 07F3 ; Subrutin Tampilan Dec 1278 07F3 ;================================================ 1279 07F3 Tampilan_Dec: 1280 07F3 lcall Konv_Hex_Dec 1281 07F6 mov R0,#Data_1_Temp 1282 07F8 mov R1,#Data_2_Temp 1283 07FA lcall Copy_Data 1284 07FD Tampilan_Dec_2: 1285 07FD mov R0,#(Data_1_Temp+15) 1286 07FF mov R3,#16 1287 0801 Loop_Tampilan_Dec: 1288 0801 clr A 1289 0802 mov A,#30H 1290 0804 add A,@R0 1291 0805 mov @R0,A 1292 0806 dec R0 1293 0807 djnz R3,Loop_Tampilan_Dec 1294 0809 ret

Page 148: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

17

1296 080A ;================================================ 1297 080A ; Subrutin Tampilan BCD 1298 080A ;================================================ 1299 080A Tampilan_BCD: 1300 080A lcall Konv_Hex_Dec 1301 080D mov R0,#(Data_1_Temp+15) 1302 080F mov R1,#0CFH 1303 0811 acall Loop_Tampilan_Bin 1304 0813 ret 1306 0814 ;================================================ 1307 0814 ; Subrutin Tampilan Bin 1308 0814 ;================================================ 1309 0814 Tampilan_Bin: 1311 0814 Loop_Tampilan_Bin: 1313 0814 mov R2,#4 1314 0816 Tampilan_Bin0: ;Bin 0 = 0000 1315 0816 cjne @R0,#0,Tampilan_Bin1 1316 0819 mov DPTR,#Bin0 1317 081C lcall LCD_Bin 1318 081F dec R0 1319 0820 djnz R2,Tampilan_Bin0 1320 0822 ret 1321 0823 Tampilan_Bin1: ;Bin 1 = 0001 1322 0823 cjne @R0,#1,Tampilan_Bin2 1323 0826 mov DPTR,#Bin1 1324 0829 lcall LCD_Bin 1325 082C dec R0 1326 082D djnz R2,Tampilan_Bin0 1327 082F ret 1328 0830 Tampilan_Bin2: ;Bin 2 = 0010 1329 0830 cjne @R0,#2,Tampilan_Bin3 1330 0833 mov DPTR,#Bin2 1331 0836 lcall LCD_Bin 1332 0839 dec R0 1333 083A djnz R2,Tampilan_Bin0 1334 083C ret 1335 083D Tampilan_Bin3: ;Bin 3 = 0011 1336 083D cjne @R0,#3,Tampilan_Bin4 1337 0840 mov DPTR,#Bin3 1338 0843 lcall LCD_Bin 1339 0846 dec R0 1340 0847 djnz R2,Tampilan_Bin0 1341 0849 ret 1342 084A Tampilan_Bin4: ;Bin 4 = 0100 1343 084A cjne @R0,#4,Tampilan_Bin5 1344 084D mov DPTR,#Bin4 1345 0850 lcall LCD_Bin 1346 0853 dec R0 1347 0854 djnz R2,Tampilan_Bin0 1348 0856 ret 1349 0857 Tampilan_Bin5: ;Bin 5 = 0101 1350 0857 cjne @R0,#5,Tampilan_Bin6 1351 085A mov DPTR,#Bin5 1352 085D lcall LCD_Bin 1353 0860 dec R0 1354 0861 djnz R2,Tampilan_Bin0 1355 0863 ret 1356 0864 Tampilan_Bin6: ;Bin 6 = 0110 1357 0864 cjne @R0,#6,Tampilan_Bin7 1358 0867 mov DPTR,#Bin6 1359 086A lcall LCD_Bin 1360 086D dec R0 1361 086E djnz R2,Tampilan_Bin0 1362 0870 ret 1363 0871 Tampilan_Bin7: ;Bin 7 = 0111 1364 0871 cjne @R0,#7,Tampilan_Bin8 1365 0874 mov DPTR,#Bin7 1366 0877 lcall LCD_Bin 1367 087A dec R0 1368 087B djnz R2,Tampilan_Bin0 1369 087D ret 1370 087E Tampilan_Bin8: ;Bin 8 = 1000 1371 087E cjne @R0,#8,Tampilan_Bin9 1372 0881 mov DPTR,#Bin8 1373 0884 lcall LCD_Bin 1374 0887 dec R0

Page 149: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

18

1375 0888 djnz R2,Tampilan_Bin0 1376 088A ret 1377 088B Tampilan_Bin9: ;Bin 9 = 1001 1378 088B cjne @R0,#9,Tampilan_BinA 1379 088E mov DPTR,#Bin9 1380 0891 lcall LCD_Bin 1381 0894 dec R0 1382 0895 djnz R2,Ulang_Tampilan_Bin 1383 0897 ret 1384 0898 Tampilan_BinA: ;Bin A = 1010 1385 0898 cjne @R0,#0AH,Tampilan_BinB 1386 089B mov DPTR,#BinA 1387 089E lcall LCD_Bin 1388 08A1 dec R0 1389 08A2 djnz R2,Ulang_Tampilan_Bin 1390 08A4 ret 1391 08A5 Tampilan_BinB: ;Bin B = 1011 1392 08A5 cjne @R0,#0BH,Tampilan_BinC 1393 08A8 mov DPTR,#BinB 1394 08AB lcall LCD_Bin 1395 08AE dec R0 1396 08AF djnz R2,Ulang_Tampilan_Bin 1397 08B1 ret 1398 08B2 Tampilan_BinC: ;Bin C = 1100 1399 08B2 cjne @R0,#0CH,Tampilan_BinD 1400 08B5 mov DPTR,#BinC 1401 08B8 lcall LCD_Bin 1402 08BB dec R0 1403 08BC djnz R2,Ulang_Tampilan_Bin 1404 08BE ret 1405 08BF Tampilan_BinD: ;Bin D = 1101 1406 08BF cjne @R0,#0DH,Tampilan_BinE 1407 08C2 mov DPTR,#BinD 1408 08C5 lcall LCD_Bin 1409 08C8 dec R0 1410 08C9 djnz R2,Ulang_Tampilan_Bin 1411 08CB ret 1412 08CC Tampilan_BinE: ;Bin E = 1110 1413 08CC cjne @R0,#0EH,Tampilan_BinF 1414 08CF mov DPTR,#BinE 1415 08D2 lcall LCD_Bin 1416 08D5 dec R0 1417 08D6 djnz R2,Ulang_Tampilan_Bin 1418 08D8 ret 1419 08D9 Tampilan_BinF: ;Bin F = 1111 1420 08D9 cjne @R0,#0FH,Ulang_Tampilan_Bin 1421 08DC mov DPTR,#BinF 1422 08DF lcall LCD_Bin 1423 08E2 dec R0 1424 08E3 djnz R2,Ulang_Tampilan_Bin 1425 08E5 ret 1427 08E6 Ulang_Tampilan_Bin: 1428 08E6 ljmp Tampilan_Bin0 1430 08E9 LCD_Bin: 1431 08E9 mov R3,#4 1432 08EB Loop_LCD_Bin: 1433 08EB clr A 1434 08EC movc A,@A+DPTR 1435 08ED mov @R1,A 1436 08EE inc DPTR 1437 08EF dec R1 1438 08F0 djnz R3,Loop_LCD_Bin 1439 08F2 ret 1441 08F3 ;================================================ 1442 08F3 ; Subrutin Tampilan Sisa Perhitungan 1443 08F3 ;================================================ 1444 08F3 Tampilan_Sisa: 1445 08F3 clr C 1446 08F4 mov A,#02H 1447 08F6 subb A,R7 1448 08F7 jnc Tampilan_Sisa_2 ;Cek apakah Mode Dec atau BCD 1449 08F9 push 3EH 1450 08FB push 3FH 1451 08FD Tampilan_Sisa_2: 1452 08FD mov R0,#Terima_atas 1453 08FF mov DPTR,#Judul8

Page 150: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

19

1454 0902 lcall Pindah_RAM 1456 0905 clr C 1457 0906 mov A,#02H 1458 0908 subb A,R7 1459 0909 jc Tampilan_Sisa_Dec ;Cek apakah Mode Dec atau BCD 1461 090B mov R0,#(Data_2_Temp+15) 1462 090D mov R1,#(Terima_atas+15) 1463 090F mov R2,#6 1464 0911 Loop_Tampilan_Sisa: 1465 0911 mov A,@R0 1466 0912 mov @R1,A 1467 0913 dec R0 1468 0914 dec R1 1469 0915 djnz R2,Loop_Tampilan_Sisa 1470 0917 sjmp Loop_Tampilan_Sisa_2 1472 0919 Tampilan_Sisa_Dec: 1473 0919 pop 3FH 1474 091B pop 3EH 1475 091D mov A,Data_Negatif 1476 091F cjne A,#0FFH,Tampilan_Sisa_Dec_2 1477 0922 mov Terima_atas,#0B0H 1479 0925 Tampilan_Sisa_Dec_2: 1480 0925 clr A 1481 0926 mov R0,#(Terima_atas+15) 1482 0928 xch A,@R0 1483 0929 xchd A,@R0 1484 092A swap A 1485 092B dec R0 1486 092C mov @R0,A 1487 092D mov R0,#(Terima_atas+15) 1488 092F mov R2,#6 1489 0931 Loop_Tampilan_Sisa_Dec: 1490 0931 mov A,#30H 1491 0933 add A,@R0 1492 0934 mov @R0,A 1493 0935 dec R0 1494 0936 djnz R2,Loop_Tampilan_Sisa_Dec 1495 0938 mov R0,#(Terima_atas+14) 1496 093A cjne @R0,#30H,Loop_Tampilan_Sisa_2 1497 093D mov @R0,#20H 1498 093F Loop_Tampilan_Sisa_2: 1499 093F lcall Baris_atas 1500 0942 ret 1502 0943 ;================================================ 1503 0943 ; Subrutin Konversi Biner ke Hex 1504 0943 ;================================================ 1505 0943 Konv_Bin_Hex: 1506 0943 mov R0,Key_Data 1507 0945 mov R3,#4 ;Ada 4 nibble 1508 0947 Loop_Konv_Bin_Hex: 1509 0947 mov A,@R0 ;Kalikan dengan bobot tiap nibble 8421 1510 0948 mov B,#01H 1511 094B mul AB 1512 094C mov @R0,A 1513 094D dec R0 1515 094E mov A,@R0 1516 094F mov B,#02H 1517 0952 mul AB 1518 0953 mov @R0,A 1519 0954 dec R0 1521 0955 mov A,@R0 1522 0956 mov B,#04H 1523 0959 mul AB 1524 095A mov @R0,A 1525 095B dec R0 1527 095C mov A,@R0 1528 095D mov B,#08H 1529 0960 mul AB 1530 0961 mov @R0,A 1531 0962 dec R0 1532 0963 djnz R3,Loop_Konv_Bin_Hex 1534 0965 mov R0,Key_Data 1535 0967 mov R1,Key_Data 1536 0969 dec R0 1537 096A mov R2,#4 1538 096C mov R3,#3

Page 151: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

20

1539 096E sjmp Loop_Tambahkan 1540 0970 Tambahkan: 1541 0970 clr A 1542 0971 mov R3,#4 1543 0973 Loop_Tambahkan: 1544 0973 clr A 1545 0974 xch A,@R0 1546 0975 add A,@R1 1547 0976 mov @R1,A 1548 0977 dec R0 1549 0978 djnz R3,Loop_Tambahkan 1550 097A dec R1 1551 097B djnz R2,Tambahkan 1552 097D ret 1554 097E ;================================================ 1555 097E ; Subrutin Konversi BCD ke Hex 1556 097E ;================================================ 1557 097E Konv_BCD_Hex: 1558 097E lcall Konv_Bin_Hex 1559 0981 mov R1,Key_Data 1560 0983 mov R2,#4 1561 0985 Loop_Konv_BCD_Hex: 1562 0985 clr A 1563 0986 clr C 1564 0987 mov A,#09H ;Cek apakah melebihi 9 ? 1565 0989 subb A,@R1 1566 098A jnc Loop_Konv_BCD_Hex_2 1567 098C lcall Sistem_Error 1568 098F ret 1570 0990 Loop_Konv_BCD_Hex_2: 1571 0990 dec R1 1572 0991 djnz R2,Loop_Konv_BCD_Hex 1573 0993 ret 1575 0994 ;================================================ 1576 0994 ; Subrutin Menampilkan Pesan ERROR! 1577 0994 ;================================================ 1578 0994 Sistem_Error: 1579 0994 mov R0,#Terima_atas 1580 0996 mov DPTR,#Judul7 ;Tampilkan pesan 'ERROR!' 1581 0999 lcall Pindah_RAM 1582 099C lcall Baris_atas 1583 099F mov R0,#Terima_bawah 1584 09A1 mov DPTR,#Judul6 ;Tampilan awal ' 0' 1585 09A4 lcall Pindah_RAM 1586 09A7 lcall Baris_bawah 1588 09AA Loop_Sistem_Error: 1589 09AA lcall Reset_Keypad 1590 09AD clr Kolom1 1591 09AF jb Baris1,Loop_Sistem_Error 1592 09B2 lcall LTunda 1593 09B5 lcall Tunggu_tombol_dilepas 1594 09B8 lcall Cek_Mode_Awal 1595 09BB lcall Loop_Tampilan_C 1596 09BE setb Kolom1 1597 09C0 ljmp Next_Data 1599 09C3 ;================================================ 1600 09C3 ; Subrutin Konversi Desimal ke Hex 1601 09C3 ;================================================ 1602 09C3 Konv_Dec_Hex: 1603 09C3 mov R0,(Key_Data+4) 1604 09C5 mov R1,#Data_1 1605 09C7 mov R5,#15 1606 09C9 mov (Key_Data+3),#1 1607 09CC Loop_Konv_Dec_Hex: 1608 09CC push 00H 1609 09CE mov R0,#Data_1 1610 09D0 lcall Hapus_Nilai 1611 09D3 pop 00H 1613 09D5 mov A,@R0 1614 09D6 mov @R1,A 1615 09D7 mov R4,(Key_Data+3) 1616 09D9 lcall Kalikan_A 1617 09DC dec R0 1618 09DD inc (Key_Data+3) 1620 09DF push 00H 1621 09E1 push 01H

Page 152: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

21

1622 09E3 mov R0,#Terima_atas 1623 09E5 mov R1,#Hasil 1624 09E7 lcall Penambahan 1625 09EA pop 01H 1626 09EC pop 00H 1628 09EE djnz R5,Loop_Konv_Dec_Hex 1629 09F0 clr C 1630 09F1 mov A,(Key_Data+4) 1631 09F3 subb A,#14 1632 09F5 mov R0,A 1633 09F6 lcall Hapus_Nilai 1634 09F9 mov R0,#Terima_atas 1635 09FB mov R1,(Key_Data+4) 1636 09FD inc R1 1637 09FE lcall Pisah_Data 1638 0A01 ret 1640 0A02 Kalikan_A: 1641 0A02 clr C 1642 0A03 clr A 1643 0A04 push 00H 1644 0A06 push 01H 1645 0A08 Loop_Kalikan_A: 1646 0A08 mov R0,#Hasil 1647 0A0A lcall Hapus_Nilai 1648 0A0D mov R1,#Data_2 1649 0A0F mov @R1,#0AH 1650 0A11 lcall Perkalian 1651 0A14 lcall Copy_Hasil_Data1 1652 0A17 djnz R4,Loop_Kalikan_A 1653 0A19 pop 01H 1654 0A1B pop 00H 1655 0A1D ret 1657 0A1E ;================================================ 1658 0A1E ; Subrutin Konversi Heksadesimal ke Desimal 1659 0A1E ;================================================ 1660 0A1E Konv_Hex_Dec: 1661 0A1E mov R0,#Data_1_Temp 1662 0A20 lcall Hapus_Nilai 1663 0A23 mov R0,#Data_2_Temp 1664 0A25 lcall Hapus_Nilai 1665 0A28 mov R0,#Hasil 1666 0A2A lcall Hapus_Nilai 1667 0A2D mov R0,#Sisa 1668 0A2F lcall Hapus_Nilai 1669 0A32 mov R4,#15 1670 0A34 mov (Key_Data+5),#(Data_1_Temp+15) 1671 0A37 Loop_Konv_Hex_Dec: 1672 0A37 mov R0,#Data_1 1673 0A39 mov R1,#Data_2 1674 0A3B mov @R1,#0AH 1675 0A3D lcall Pembagian 1676 0A40 mov R0,#Sisa 1677 0A42 mov R1,(Key_Data+5) 1678 0A44 mov A,@R0 1679 0A45 mov @R1,A 1680 0A46 dec (Key_Data+5) 1682 0A48 lcall Copy_Hasil_Data1 1683 0A4B mov R0,#Data_1 1684 0A4D mov R1,#Data_2 1685 0A4F mov @R1,#0AH 1686 0A51 lcall Pengurangan 1687 0A54 jnc Konversi_Lagi 1688 0A56 sjmp Konversi_Selesai 1690 0A58 Konversi_Lagi: 1691 0A58 lcall Copy_Hasil_Data1 1692 0A5B mov R0,#Hasil 1693 0A5D lcall Hapus_Nilai 1694 0A60 mov R0,#Sisa 1695 0A62 lcall Hapus_Nilai 1696 0A65 djnz R4,Loop_Konv_Hex_Dec 1697 0A67 ret 1699 0A68 Konversi_Selesai: 1700 0A68 mov R0,#Hasil 1701 0A6A mov R1,(Key_Data+5) 1702 0A6C mov A,@R0 1703 0A6D mov @R1,A

Page 153: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

22

1704 0A6E ret 1708 0A6F ;================================================ 1709 0A6F ; Subrutin Kuadrat 1710 0A6F ;================================================ 1711 0A6F Kuadrat: 1712 0A6F mov Data_Negatif,#00H 1713 0A72 mov (Data_Negatif-1),#00H 1714 0A75 mov (Data_Negatif-2),#00H 1715 0A78 lcall Cek_Mode_Hitung 1717 0A7B mov R0,#(Data_2_Temp+15) ;Menggabungkan data satuan 1718 0A7D mov R1,#(Data_2_Temp+14) 1719 0A7F lcall Gabung_Data 1720 0A82 mov R0,#(Data_2_Temp+15) 1721 0A84 mov R1,#Data_1 1722 0A86 lcall Simpan_Data 1723 0A89 mov R0,#Data_1 1724 0A8B mov R1,#Data_2 1725 0A8D lcall Copy_Data ;Copy data -> Data 1 = Data 2 1727 0A90 lcall Perkalian 1728 0A93 lcall Copy_Hasil_Data1 1729 0A96 ;-------------------------------------------------------------------- 1730 0A96 lcall Cek_Mode_Tampilan 1731 0A99 cjne R7,#3H,Kuadrat_Bukan_Dec 1732 0A9C mov R0,#Data_2_Temp 1733 0A9E mov R1,#Sisa 1734 0AA0 lcall Copy_Data 1735 0AA3 Kuadrat_Bukan_Dec: 1736 0AA3 mov R0,#Data_1_Temp 1737 0AA5 lcall Cek_Spasi 1738 0AA8 mov R0,#Data_2_Temp 1739 0AAA lcall Cek_Spasi 1740 0AAD mov R0,#Data_1_Temp 1741 0AAF mov R1,#Terima_bawah 1742 0AB1 lcall Copy_Data 1743 0AB4 lcall Baris_bawah 1744 0AB7 ;--------------------------------------------------------------------- 1745 0AB7 mov R0,#Data_1_Temp 1746 0AB9 lcall Hapus_Nilai 1747 0ABC mov R0,#Data_2_Temp 1748 0ABE lcall Hapus_Nilai 1749 0AC1 ret 1751 0AC2 ;================================================ 1752 0AC2 ; Subrutin Perkalian 1753 0AC2 ;================================================ 1754 0AC2 Perkalian: 1755 0AC2 mov R3,#Jml_Byte*8 1756 0AC4 Loop_Perkalian: 1757 0AC4 clr C 1758 0AC5 mov R0,#Data_2+Jml_Byte-1 1759 0AC7 mov R2,#Jml_Byte 1760 0AC9 GeserKanan: 1761 0AC9 mov A,@R0 1762 0ACA rrc A 1763 0ACB mov @R0,A 1764 0ACC dec R0 1765 0ACD djnz R2,GeserKanan 1766 0ACF jnc Jangan_Ditambah 1767 0AD1 mov R0,#Hasil 1768 0AD3 mov R1,#Data_1 1769 0AD5 lcall Penambahan 1771 0AD8 Jangan_Ditambah: 1772 0AD8 clr C 1773 0AD9 mov R0,#Data_1 1774 0ADB lcall GeserKiri 1775 0ADE djnz R3,Loop_Perkalian 1776 0AE0 ret 1778 0AE1 ;================================================ 1779 0AE1 ; Subrutin Penambahan 1780 0AE1 ;================================================ 1781 0AE1 Penambahan: 1782 0AE1 clr C 1783 0AE2 mov R2,#Jml_Byte 1784 0AE4 Loop_Penambahan: 1785 0AE4 mov A,@R0 1786 0AE5 addc A,@R1 1787 0AE6 mov @R0,A

Page 154: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

23

1788 0AE7 inc R0 1789 0AE8 inc R1 1790 0AE9 djnz R2,Loop_Penambahan 1791 0AEB ret 1793 0AEC ;================================================ 1794 0AEC ; Subrutin Pembagian 1795 0AEC ;================================================ 1796 0AEC Pembagian: 1797 0AEC mov R3,#Jml_Byte*8 1798 0AEE Loop_Pembagian: 1799 0AEE clr C 1800 0AEF mov R0,#Data_1 1801 0AF1 lcall GeserKiri 1802 0AF4 mov R0,#Sisa 1803 0AF6 lcall GeserKiri 1804 0AF9 mov R0,#Sisa 1805 0AFB mov R1,#Data_2 1806 0AFD lcall Perbandingan 1807 0B00 jc Jangan_Dikurangi 1808 0B02 mov R0,#Sisa 1809 0B04 mov R1,#Data_2 1810 0B06 lcall Pengurangan 1812 0B09 Jangan_Dikurangi: 1813 0B09 cpl C 1814 0B0A mov R0,#Hasil 1815 0B0C lcall GeserKiri 1816 0B0F djnz R3,Loop_Pembagian 1817 0B11 ret 1819 0B12 GeserKiri: 1820 0B12 mov R2,#Jml_Byte 1821 0B14 Loop_GeserKiri: 1822 0B14 mov A,@R0 1823 0B15 rlc A 1824 0B16 mov @R0,A 1825 0B17 inc R0 1826 0B18 djnz R2,Loop_GeserKiri 1827 0B1A ret 1829 0B1B Perbandingan: 1830 0B1B clr C 1831 0B1C mov R2,#Jml_Byte 1832 0B1E Loop_Perbandingan: 1833 0B1E mov A,@R0 1834 0B1F subb A,@R1 1835 0B20 inc R0 1836 0B21 inc R1 1837 0B22 djnz R2,Loop_Perbandingan 1838 0B24 ret 1840 0B25 ;================================================ 1841 0B25 ; Subrutin Pengurangan 1842 0B25 ;================================================ 1843 0B25 Pengurangan: 1844 0B25 clr C 1845 0B26 mov R2,#Jml_Byte 1846 0B28 Loop_Pengurangan: 1847 0B28 mov A,@R0 1848 0B29 subb A,@R1 1849 0B2A mov @R0,A 1850 0B2B inc R0 1851 0B2C inc R1 1852 0B2D djnz R2,Loop_Pengurangan 1853 0B2F ret 1855 0B30 ;================================================ 1856 0B30 ; Subrutin Hapus Karakter 1857 0B30 ;================================================ 1858 0B30 Hapus_Karakter: 1859 0B30 mov R0,#Terima_bawah 1860 0B32 mov R3,#15 ;Ada 15 Karakter 1861 0B34 Loop_Hapus_Karakter: 1862 0B34 mov @R0,#20H 1863 0B36 inc R0 1864 0B37 djnz R3,Loop_Hapus_Karakter 1865 0B39 ret 1867 0B3A ;================================================ 1868 0B3A ; Subrutin pindah data dptr ke RAM 1869 0B3A ;================================================ 1870 0B3A Pindah_RAM:

Page 155: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

24

1871 0B3A mov R3,#16 ;Memindahkan 16 karakter 1872 0B3C Loop_Pindah_RAM: 1873 0B3C clr A 1874 0B3D movc A,@A+DPTR 1875 0B3E mov @R0,A 1876 0B3F inc DPTR 1877 0B40 inc R0 1878 0B41 djnz R3,Loop_Pindah_RAM 1879 0B43 ret 1881 0B44 ;================================================ 1882 0B44 ; Subrutin menuliskan judul di baris atas 1883 0B44 ;================================================ 1884 0B44 Baris_atas: 1885 0B44 mov A,#80H 1886 0B46 acall Write_inst 1887 0B48 mov R0,#Terima_atas 1888 0B4A mov R3,#16 ;ada 16 karakter 1889 0B4C Write_1: 1890 0B4C clr A 1891 0B4D mov A,@R0 1892 0B4E Send: 1893 0B4E lcall Write_data 1894 0B51 inc R0 1895 0B52 djnz R3,Write_1 1896 0B54 ret 1898 0B55 ;================================================ 1899 0B55 ; Subrutin menuliskan judul di baris bawah 1900 0B55 ;================================================ 1901 0B55 Baris_bawah: 1902 0B55 mov A,#0C0H ;pindah ke baris bawah 1903 0B57 acall Write_inst 1904 0B59 acall Write_inst 1905 0B5B lcall LTunda 1906 0B5E mov A,#0CH ;display ON, cursor OFF, blink OFF 1907 0B60 acall Write_inst 1908 0B62 mov R3,#16 ;ada 16 karakter 1909 0B64 mov R0,#Terima_bawah 1910 0B66 acall Write_1 1911 0B68 ret 1913 0B69 ;================================================ 1914 0B69 ; Subrutin Menulis instruksi ke LCD 1915 0B69 ;================================================ 1916 0B69 Write_inst: 1917 0B69 clr LCD_RS 1918 0B6B setb LCD_E 1919 0B6D mov Data_LCD,A 1920 0B6F clr LCD_E 1921 0B71 setb LCD_E 1922 0B73 lcall LTunda 1923 0B76 ret 1925 0B77 ;================================================ 1926 0B77 ; Subrutin menulis data ke LCD 1927 0B77 ;================================================ 1928 0B77 Write_data: 1929 0B77 setb LCD_RS 1930 0B79 setb LCD_E 1931 0B7B mov Data_LCD,A 1932 0B7D clr LCD_E 1933 0B7F setb LCD_E 1934 0B81 lcall LTunda 1935 0B84 ret 1937 0B85 ;================================================ 1938 0B85 ; Tunda 5 ms 1939 0B85 ;================================================ 1940 0B85 LTunda: 1941 0B85 mov R4,#10 1942 0B87 Tunda1: 1943 0B87 mov R5,#250 1944 0B89 djnz R5,$ ;(2 x 250) + 1 ~ 0,5 ms 1945 0B8B djnz R4,Ltunda ;(0,5 x 10) + 5 ~ 5 ms 1946 0B8D ret

Page 156: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

25

1958 0B96 ;================================================ 1959 0B96 ; Subrutin Akar 1960 0B96 ;================================================ 1961 0B96 Akar: 1962 0B96 lcall Cek_Mode_Hitung 1964 0B99 mov R0,#Terima_atas 1965 0B9B lcall Hapus_Nilai 1966 0B9E mov R0,#Terima_bawah 1967 0BA0 lcall Hapus_Nilai 1969 0BA3 mov R0,#(Data_2_Temp+15) ;Menggabungkan data satuan 1970 0BA5 mov R1,#(Data_2_Temp+14) 1971 0BA7 lcall Gabung_Data 1972 0BAA mov R0,#(Data_2_Temp+15) 1973 0BAC mov R1,#Data_1 1974 0BAE lcall Simpan_Data 1975 0BB1 mov R0,#Data_1 1976 0BB3 mov R1,#Terima_atas 1977 0BB5 lcall Copy_Data 1979 0BB8 Tambahkan_Iterasi: 1980 0BB8 lcall Hapus_Temp 1981 0BBB mov R0,#Terima_bawah 1982 0BBD mov R1,#Data_1 1983 0BBF lcall Copy_Data 1984 0BC2 mov R0,#Data_1 1985 0BC4 mov R1,#Data_2 1986 0BC6 mov @R1,#01H 1987 0BC8 Loop_Tambahkan_Iterasi: 1988 0BC8 lcall Penambahan 1990 0BCB mov R0,#Data_1 1991 0BCD mov R1,#Terima_bawah 1992 0BCF lcall Copy_Data 1993 0BD2 mov R0,#Data_1 1994 0BD4 mov R1,#Data_2 1995 0BD6 lcall Copy_Data 1996 0BD9 lcall Perkalian 1998 0BDC mov R0,#Hasil 1999 0BDE mov R1,#Data_2 2000 0BE0 lcall Copy_Data 2001 0BE3 mov R0,#Terima_atas 2002 0BE5 mov R1,#Data_1 2003 0BE7 lcall Copy_Data 2005 0BEA mov R0,#Data_1 2006 0BEC mov R1,#Data_2 2007 0BEE lcall Pengurangan 2008 0BF1 jnc Tambahkan_Iterasi 2009 0BF3 acall Hapus_Temp 2010 0BF5 mov R0,#Terima_bawah 2011 0BF7 mov R1,#Data_1 2012 0BF9 lcall Copy_Data 2013 0BFC mov R0,#Data_1 2014 0BFE mov R1,#Data_2 2015 0C00 mov @R1,#01H 2016 0C02 lcall Pengurangan 2018 0C05 lcall Cek_Mode_Tampilan 2019 0C08 cjne R7,#3H,Akar_Bukan_Dec 2020 0C0B mov R0,#Data_2_Temp 2021 0C0D mov R1,#Sisa 2022 0C0F lcall Copy_Data 2023 0C12 Akar_Bukan_Dec: 2024 0C12 mov R0,#Data_1_Temp 2025 0C14 lcall Cek_Spasi 2026 0C17 mov R0,#Data_2_Temp 2027 0C19 lcall Cek_Spasi 2028 0C1C mov R0,#Data_1_Temp 2029 0C1E mov R1,#Terima_bawah 2030 0C20 lcall Copy_Data 2031 0C23 lcall Baris_bawah 2032 0C26 mov R0,#Data_1_Temp 2033 0C28 lcall Hapus_Nilai 2034 0C2B mov R0,#Data_2_Temp 2035 0C2D lcall Hapus_Nilai 2036 0C30 ret

Page 157: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

26

2038 0C31 Hapus_Temp: 2039 0C31 mov R0,#Data_1 2040 0C33 lcall Hapus_Nilai 2041 0C36 mov R0,#Data_2 2042 0C38 lcall Hapus_Nilai 2043 0C3B mov R0,#Hasil 2044 0C3D lcall Hapus_Nilai 2045 0C40 mov R0,#Sisa 2046 0C42 lcall Hapus_Nilai 2047 0C45 ret 2049 0C46 ;================================================ 2050 0C46 ; Subrutin Operator Apabila data sudah maks 2051 0C46 ;================================================ 2052 0C46 Operator_2: 2053 0C46 Key_Mode_2: 2054 0C46 lcall Reset_Keypad 2055 0C49 clr Kolom4 2056 0C4B jb Baris1,Key_Akar_2 2057 0C4E lcall Tunggu_tombol_dilepas 2058 0C51 lcall Cek_Mode_Awal 2059 0C54 mov R0,#Terima_atas 2060 0C56 mov DPTR,#Judul1 ; tampilkan MODE 2061 0C59 lcall Pindah_RAM 2062 0C5C lcall Baris_atas 2063 0C5F lcall Cek_Mode_Hitung 2064 0C62 lcall Mode 2065 0C65 setb Kolom4 2066 0C67 ljmp Next_Data 2067 0C6A Key_Akar_2: 2068 0C6A jb Baris2,Key_Kali_2 2069 0C6D lcall Tunggu_tombol_dilepas 2070 0C70 mov sp,#08H 2071 0C73 mov A,Data_Negatif 2072 0C75 cjne A,#00H,Gak_Bisa_Akar_2 2073 0C78 lcall Cek_Mode_Awal 2074 0C7B mov (Terima_atas+14),#0E8H ;Simbol Kali (E8H) 2075 0C7E lcall Baris_atas 2076 0C81 lcall Akar 2077 0C84 cjne R7,#3H,Key_Akar_2BD 2078 0C87 mov R0,#Sisa 2079 0C89 mov R1,#Data_2_Temp 2080 0C8B lcall Copy_Data 2081 0C8E Key_Akar_2BD: 2082 0C8E lcall Cek_Mode_Akhir 2083 0C91 setb Kolom4 2084 0C93 ljmp Next_Data 2086 0C96 Gak_Bisa_Akar_2: 2087 0C96 ljmp Sistem_Error 2089 0C99 Key_Kali_2: ;Kode Kali = 1 2090 0C99 jb Baris3,Key_Bagi_2 2091 0C9C lcall Tunggu_tombol_dilepas 2092 0C9F lcall Cek_Mode_Awal 2093 0CA2 mov (Terima_atas+14),#078H ;Simbol Kali (78H) 2094 0CA5 lcall Baris_atas 2095 0CA8 mov (Data_Operator+1),#1H 2096 0CAB mov A,Data_Operator ;Simpan Kode Kali 2097 0CAD cjne A,#00H,Proses_2 2098 0CB0 lcall Copy_D2T_D1T 2099 0CB3 mov (Data_Negatif-1),Data_Negatif 2100 0CB6 mov Data_Negatif,#00H 2101 0CB9 setb Kolom4 2102 0CBB ljmp Next_Data 2103 0CBE Key_Bagi_2: ;Kode Bagi = 2 2104 0CBE jb Baris4,Key_Tambah_2 2105 0CC1 lcall Tunggu_tombol_dilepas 2106 0CC4 lcall Cek_Mode_Awal 2107 0CC7 mov (Terima_atas+14),#0FDH ;Simbol Bagi (FDH) 2108 0CCA lcall Baris_atas 2109 0CCD mov (Data_Operator+1),#2H ;Simpan Kode Bagi 2110 0CD0 mov A,Data_Operator 2111 0CD2 cjne A,#00H,Proses_2 2112 0CD5 lcall Copy_D2T_D1T 2113 0CD8 mov (Data_Negatif-1),Data_Negatif 2114 0CDB mov Data_Negatif,#00H 2115 0CDE setb Kolom4 2116 0CE0 ljmp Next_Data

Page 158: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

27

2117 0CE3 Key_Tambah_2: ;Kode Tambah = 3 2118 0CE3 jb Baris5,Key_Kurang_2 2119 0CE6 lcall Tunggu_tombol_dilepas 2120 0CE9 lcall Cek_Mode_Awal 2121 0CEC mov (Terima_atas+14),#02BH ;Simbol Tambah (2BH) 2122 0CEF lcall Baris_atas 2123 0CF2 mov (Data_Operator+1),#3H ;Simpan Kode Bagi 2124 0CF5 mov A,Data_Operator 2125 0CF7 cjne A,#00H,Proses_2 2126 0CFA lcall Copy_D2T_D1T 2127 0CFD mov (Data_Negatif-1),Data_Negatif 2128 0D00 mov Data_Negatif,#00H 2129 0D03 setb Kolom4 2130 0D05 ljmp Next_Data 2131 0D08 Key_Kurang_2: ;Kode Kurang = 4 2132 0D08 jb Baris6,Key_Hasil_2 2133 0D0B lcall Tunggu_tombol_dilepas 2134 0D0E lcall Cek_Mode_Awal 2135 0D11 mov (Terima_atas+14),#0B0H ;Simbol Kurang (B0H) 2136 0D14 lcall Baris_atas 2137 0D17 mov (Data_Operator+1),#4H ;Simpan Kode Bagi 2138 0D1A mov A,Data_Operator 2139 0D1C cjne A,#00H,Proses_2 2140 0D1F lcall Copy_D2T_D1T 2141 0D22 mov (Data_Negatif-1),Data_Negatif 2142 0D25 mov Data_Negatif,#00H 2143 0D28 setb Kolom4 2144 0D2A ljmp Next_Data 2146 0D2D Proses_2: 2147 0D2D ljmp Hitung 2149 0D30 Key_Hasil_2: 2150 0D30 jb Baris8,Key_C_2 2151 0D33 lcall Tunggu_tombol_dilepas 2152 0D36 lcall Cek_Mode_Awal 2153 0D39 mov (Terima_atas+14),#03DH ;Simbol "=" (3DH) 2154 0D3C lcall Baris_atas 2155 0D3F mov Data_Hasil,#0FFH 2156 0D42 setb Kolom4 2157 0D44 mov A,Data_Operator 2158 0D46 cjne A,#00H,Calculate_2 2159 0D49 ljmp Next_Data 2160 0D4C Key_C_2: 2161 0D4C lcall Reset_Keypad 2162 0D4F clr Kolom1 2163 0D51 jb Baris1,Key_CE_2 2164 0D54 lcall LTunda 2165 0D57 lcall Tunggu_tombol_dilepas 2166 0D5A lcall Tampilan_C 2167 0D5D setb Kolom1 2168 0D5F ljmp Next_Data 2169 0D62 Key_CE_2: 2170 0D62 jb Baris2,Key_Kuadrat_2 2171 0D65 lcall LTunda 2172 0D68 lcall Tunggu_tombol_dilepas 2173 0D6B lcall Tampilan_CE 2174 0D6E setb Kolom2 2175 0D70 ljmp Next_Data 2176 0D73 Key_Kuadrat_2: 2177 0D73 lcall Reset_Keypad 2178 0D76 clr Kolom3 2179 0D78 jb Baris2,Key_Tanda_2 2180 0D7B lcall Tunggu_tombol_dilepas 2181 0D7E mov sp,#08H 2182 0D81 lcall Cek_Mode_Awal 2183 0D84 lcall Kuadrat 2184 0D87 cjne R7,#3H,Key_Kuadrat_2BD 2185 0D8A mov R0,#Sisa 2186 0D8C mov R1,#Data_2_Temp 2187 0D8E lcall Copy_Data 2188 0D91 Key_Kuadrat_2BD: 2189 0D91 lcall Cek_Mode_Akhir 2190 0D94 setb Kolom3 2191 0D96 ljmp Next_Data 2192 0D99 Key_Tanda_2: 2193 0D99 jb Baris8,Loop_Operator_2 2194 0D9C lcall LTunda

Page 159: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

28

2195 0D9F lcall Tunggu_tombol_dilepas 2196 0DA2 mov sp,#08H 2197 0DA5 mov A,Data_Negatif 2198 0DA7 cpl A 2199 0DA8 mov Data_Negatif,A 2200 0DAA lcall Cek_Mode_Awal 2201 0DAD lcall Bilangan_Negatif 2202 0DB0 setb Kolom3 2203 0DB2 ljmp Next_Data 2205 0DB5 Loop_Operator_2: 2206 0DB5 ajmp Operator_2 2208 0DB7 Calculate_2: 2209 0DB7 ljmp Hitung 2211 0DBA ;================================================ 2212 0DBA ; Subrutin Pengecekan kemampuan masimal 2213 0DBA ;================================================ 2214 0DBA Cek_Mode_Max: 2215 0DBA mov R0,#Data_1 2216 0DBC mov R1,#Data_2_Temp 2217 0DBE lcall Copy_Data 2218 0DC1 cjne R7,#01H,Cek_Mode_Hex_Max 2224 0DCC mov R0,#Data_2 ;Cek apakah melebihi 2225 0DCE mov @R0,#00H ;kemampuan Biner max 2226 0DD0 inc R0 ;Bin max = 7FFFH 2227 0DD1 mov @R0,#80H 2228 0DD3 acall Cek_Max_2 2229 0DD5 ljmp Belum_Max 2231 0DD8 Cek_Mode_Hex_Max: 2232 0DD8 cjne R7,#02H,Cek_Mode_Dec_Max ;Cek apakah melebihi 2233 0DDB mov R0,#Data_2 ;kemampuan Hex max 2234 0DDD lcall Hapus_Nilai ;Hex max = FFFFFFFFFFFFFFFH 2235 0DE0 mov R0,#(Data_2+7) 2236 0DE2 mov @R0,#10H 2237 0DE4 acall Cek_Max_2 2238 0DE6 ljmp Belum_Max 2240 0DE9 Cek_Mode_Dec_Max: 2241 0DE9 cjne R7,#03H,Cek_Mode_BCD_Max ;Cek apakah melebihi 2242 0DEC mov R0,#Data_2 ;kemampuan Dec max 2243 0DEE mov @R0,#00H ;Dec max = 99999999999999 2244 0DF0 inc R0 ; = 38D7EA4C67FFFH 2245 0DF1 mov @R0,#80H 2246 0DF3 inc R0 2247 0DF4 mov @R0,#0C6H 2248 0DF6 inc R0 2249 0DF7 mov @R0,#0A4H 2250 0DF9 inc R0 2251 0DFA mov @R0,#7EH 2252 0DFC inc R0 2253 0DFD mov @R0,#8DH 2254 0DFF inc R0 2255 0E00 mov @R0,#03H 2256 0E02 inc R0 2257 0E03 acall Cek_Max_2 2258 0E05 ljmp Belum_Max 2260 0E08 Cek_Mode_BCD_Max: 2261 0E08 cjne R7,#04H,Cek_Mode_Max 2262 0E0B mov R0,#Data_2 ;Cek apakah melebihi 2263 0E0D mov @R0,#40H ;kemampuan BCD max 2264 0E0F inc R0 ;BCD max = 1F3F = 7999 2265 0E10 mov @R0,#01FH 2266 0E12 acall Cek_Max_2 2267 0E14 ljmp Belum_Max 2269 0E17 Cek_Max_2: 2270 0E17 mov R0,#Data_1 2271 0E19 mov R1,#Data_2 2272 0E1B lcall Pengurangan 2273 0E1E jnc Over_Load_2 2274 0E20 mov R0,#Data_2_Temp 2275 0E22 mov R1,#Data_1 2276 0E24 lcall Copy_Data 2277 0E27 mov R0,#Data_2_Temp

Page 160: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

29

2278 0E29 call Hapus_Nilai 2279 0E2C mov R0,#Data_2 2280 0E2E call Hapus_Nilai 2281 0E31 ret 2283 0E32 Over_Load_2: 2284 0E32 ljmp Sistem_Error 2286 0E35 Tdk_Over_Load: 2287 0E35 ljmp Belum_Max 2289 0E38 ;================================================ 2290 0E38 ; Data Tampilan LCD 2291 0E38 ;================================================ 2292 0E38 Judul: DB ' KALKULATOR ' 2293 0E48 Judul1: DB ' MODE ' 2294 0E58 Judul2: DB ' BCD ' 2295 0E68 Judul3: DB ' BIN ' 2296 0E79 Judul4: DB ' HEX ' 2297 0E89 Judul5: DB ' DEC ' 2298 0E99 Judul6: DB ' 0' 2299 0EA9 Judul7: DB ' ERROR! ' 2300 0EB9 Judul8: DB ' SISA = ' 2301 0EC9 Bin0: DB '0000' 2302 0ECD Bin1: DB '1000' 2303 0ED1 Bin2: DB '0100' 2304 0ED5 Bin3: DB '1100' 2305 0ED9 Bin4: DB '0010' 2306 0EDD Bin5: DB '1010' 2307 0EE1 Bin6: DB '0110' 2308 0EE5 Bin7: DB '1110' 2309 0EE9 Bin8: DB '0001' 2310 0EED Bin9: DB '1001' 2311 0EF1 BinA: DB '0101' 2312 0EF5 BinB: DB '1101' 2313 0EF9 BinC: DB '0011' 2314 0EFD BinD: DB '1011' 2315 0F01 BinE: DB '0111' 2316 0F05 BinF: DB '1111'

Page 161: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

L A M P I R A N 3

DATASHEET

Page 162: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program
Page 163: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program
Page 164: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program
Page 165: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program
Page 166: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program
Page 167: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program
Page 168: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program
Page 169: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program
Page 170: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program
Page 171: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program
Page 172: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program
Page 173: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Semiconductor Components Industries, LLC, 2005

January, 2005 − Rev. 61 Publication Order Number:

MCR100/D

MCR100 SeriesPreferred Device

Sensitive Gate

Silicon Controlled Rectifiers

Reverse Blocking Thyristors

PNPN devices designed for high volume, line-powered consumerapplications such as relay and lamp drivers, small motor controls, gatedrivers for larger thyristors, and sensing and detection circuits.Supplied in an inexpensive plastic TO-226AA package which isreadily adaptable for use in automatic insertion equipment.

Features

• Sensitive Gate Allows Triggering by Microcontrollers and OtherLogic Circuits

• Blocking Voltage to 600 V• On−State Current Rating of 0.8 Amperes RMS at 80°C• High Surge Current Capability − 10 A• Minimum and Maximum Values of IGT, VGT and IH Specified

for Ease of Design• Immunity to dV/dt − 20 V/sec Minimum at 110°C• Glass-Passivated Surface for Reliability and Uniformity• Pb−Free Packages are Available*

*For additional information on our Pb−Free strategy and soldering details, pleasedownload the ON Semiconductor Soldering and Mounting TechniquesReference Manual, SOLDERRM/D.

SCRs0.8 A RMS

100 thru 600 V

Preferred devices are recommended choices for future useand best overall value.

TO−92 (TO−226)CASE 029STYLE 10

32

1

PIN ASSIGNMENT

1

2

3

Gate

Anode

Cathode

K

G

A

See detailed ordering and shipping information in the packagedimensions section on page 2 of this data sheet.

ORDERING INFORMATION

http://onsemi.com

x = Specific Device CodeA = Assembly LocationY = YearWW = Work Week

MARKINGDIAGRAM

MCR100−xAYWW

Page 174: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

MCR100 Series

http://onsemi.com2

ORDERING INFORMATION

Device Package Code Shipping †

MCR100−003

MCR100−0045000 Units / Bulk

MCR100−0065000 Units / Bulk

MCR100−008

MCR100−3RLTO 92 (TO 226)

MCR100−6RLTO−92 (TO−226)

2000 Units / Tape & Reel

MCR100−6RLRA

MCR100−6RLRM2000 Units / Tape & Ammunition Box

MCR100−6ZL12000 Units / Tape & Ammunition Box

MCR100−8RL 2000 Units / Tape & Reel

MCR100−003G

MCR100−006G 5000 Units / Bulk

MCR100−008G

MCR100−3RLGTO 92 (TO 226) 2000 Units / Tubes

MCR100−6RLGTO−92 (TO−226)

(Pb−Free)

2000 Units / Tubes

MCR100−6RLRAG(Pb−Free)

2000 Units / Tape & Reel

MCR100−6RLRMG2000 Units / Tape & Ammunition Box

MCR100−6ZL1G2000 Units / Tape & Ammunition Box

MCR100−8RLG 2000 Units / Tape & Reel

†For information on tape and reel specifications, including part orientation and tape sizes, please refer to our Tape and Reel PackagingSpecifications Brochure, BRD8011/D.

MAXIMUM RATINGS (TJ = 25°C unless otherwise noted)

Rating Symbol Value Unit

Peak Repetitive Off−State Voltage (Note 1)(TJ = 40 to 110°C, Sine Wave, 50 to 60 Hz; Gate Open)

MCR100−3MCR100−4MCR100−6MCR100−8

VDRM,VRRM

100200400600

V

On-State RMS Current, (TC = 80°C) 180° Conduction Angles IT(RMS) 0.8 A

Peak Non-Repetitive Surge Current, (1/2 Cycle, Sine Wave, 60 Hz, TJ = 25°C) ITSM 10 A

Circuit Fusing Consideration, (t = 8.3 ms) I2t 0.415 A2s

Forward Peak Gate Power, (TA = 25°C, Pulse Width 1.0 s) PGM 0.1 W

Forward Average Gate Power, (TA = 25°C, t = 8.3 ms) PG(AV) 0.10 W

Forward Peak Gate Current, (TA = 25°C, Pulse Width 1.0 s) IGM 1.0 A

Reverse Peak Gate Voltage, (TA = 25°C, Pulse Width 1.0 s) VGRM 5.0 V

Operating Junction Temperature Range @ Rate VRRM and VDRM TJ −40 to 110 °C

Storage Temperature Range Tstg −40 to 150 °C

Maximum ratings are those values beyond which device damage can occur. Maximum ratings applied to the device are individual stress limitvalues (not normal operating conditions) and are not valid simultaneously. If these limits are exceeded, device functional operation is not implied,damage may occur and reliability may be affected.1. VDRM and VRRM for all types can be applied on a continuous basis. Ratings apply for zero or negative gate voltage; however, positive gate

voltage shall not be applied concurrent with negative potential on the anode. Blocking voltages shall not be tested with a constant currentsource such that the voltage ratings of the devices are exceeded.

Page 175: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

MCR100 Series

http://onsemi.com3

THERMAL CHARACTERISTICS

Characteristic Symbol Max Unit

Thermal Resistance,Junction−to−CaseJunction−to−Ambient

RJCRJA

75200

°C/W

Lead Solder Temperature(1/16″ from case, 10 secs max)

TL 260 °C

ELECTRICAL CHARACTERISTICS (TC = 25°C unless otherwise noted)

Characteristic Symbol Min Typ Max Unit

OFF CHARACTERISTICS

Peak Repetitive Forward or Reverse Blocking Current (Note 2)TC = 25°C

(VD = Rated VDRM and VRRM; RGK = 1 k) TC = 110°C

IDRM, IRRM−−

−−

10100

A

ON CHARACTERISTICS

Peak Forward On−State Voltage*

(ITM = 1.0 A Peak @ TA = 25°C)VTM − − 1.7 V

Gate Trigger Current (Continuous dc) (Note 3) TC = 25°C(VAK = 7.0 Vdc, RL = 100 )

IGT − 40 200 A

Holding Current(2) TC = 25°C(VAK = 7.0 Vdc, Initiating Current = 20 mA) TC = −40°C

IH −−

0.5−

5.010

mA

Latch Current TC = 25°C(VAK = 7.0 V, Ig = 200 A) TC = −40°C

IL −−

0.6−

1015

mA

Gate Trigger Voltage (Continuous dc) (Note 3) TC = 25°C(VAK = 7.0 Vdc, RL = 100 ) TC = −40°C

VGT −−

0.62−

0.81.2

V

DYNAMIC CHARACTERISTICS

Critical Rate of Rise of Off−State Voltage(VD = Rated VDRM, Exponential Waveform, RGK = 1000 ,TJ = 110°C)

dV/dt 20 35 − V/s

Critical Rate of Rise of On−State Current(IPK = 20 A; Pw = 10 sec; diG/dt = 1 A/sec, Igt = 20 mA)

di/dt − − 50 A/s

*Indicates Pulse Test: Pulse Width ≤ 1.0 ms, Duty Cycle ≤ 1%.2. RGK = 1000 included in measurement.3. Does not include RGK in measurement.

+ Current

+ Voltage

VTM

IDRM at VDRM

IH

Symbol ParameterVDRM Peak Repetitive Off State Forward Voltage

IDRM Peak Forward Blocking Current

VRRM Peak Repetitive Off State Reverse Voltage

IRRM Peak Reverse Blocking Current

VTM Peak on State Voltage

IH Holding Current

Voltage Current Characteristic of SCR

Anode +

on state

Reverse Blocking Region(off state)

Reverse Avalanche Region

Anode −

Forward Blocking Region

IRRM at VRRM

(off state)

Page 176: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

MCR100 Series

http://onsemi.com4

Figure 1. Typical Gate Trigger Current versusJunction Temperature

TJ, JUNCTION TEMPERATURE (°C)

100

90

80

70

60

50

40

30

1105035205−10−25−40

GA

TE

TR

IGG

ER

CU

RR

EN

T (

A)

Figure 2. Typical Gate Trigger Voltage versusJunction Temperature

TJ, JUNCTION TEMPERATURE (°C)

110655035205−10−25−40

0.8

0.7

0.6

0.5

0.4

0.3GA

TE

TR

IGG

ER

VO

LTA

GE

(V

OLT

S)

0.2

20

10

0.9

1.0

958065

9580

DC

Figure 3. Typical Holding Current versusJunction Temperature

TJ, JUNCTION TEMPERATURE (°C)

1000

100

110655035205−10−25−40

HO

LDIN

G C

UR

RE

NT

( A

)

Figure 4. Typical Latching Current versusJunction Temperature

10

Figure 5. Typical RMS Current Derating

IT(RMS), RMS ON-STATE CURRENT (AMPS)

120

110

100

90

80

70

60

50

0.50.40.30.20.10

TC

, MA

XIM

UM

ALL

OW

AB

LE C

AS

E T

EM

PE

RA

TU

RE

(C

Figure 6. Typical On−State Characteristics

VT, INSTANTANEOUS ON-STATE VOLTAGE (VOLTS)

3.53.22.32.01.71.41.10.80.5

1

I T, I

NS

TAN

TAN

EO

US

ON

−STA

TE

CU

RR

EN

T (A

MP

S)

0.140

10

9580

TJ, JUNCTION TEMPERATURE (°C)

1000

100

110655035205−10−25−40

LAT

CH

ING

CU

RR

EN

T (

A)

109580

30° 60° 90° 120°

180°

2.92.6

MAXIMUM @ TJ = 110°C

MAXIMUM @ TJ = 25°C

Page 177: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

MCR100 Series

http://onsemi.com5

TO−92 EIA RADIAL TAPE IN FAN FOLD BOX OR ON REEL

H2A H2A

H

F1F2

P2 P2

P1P

D

WW1

L1

W2

H2B H2B

T1

T

T2

H4 H5

H1

L

Figure 7. Device Positioning on Tape

Specification

Inches Millimeter

Symbol Item Min Max Min Max

D Tape Feedhole Diameter 0.1496 0.1653 3.8 4.2

D2 Component Lead Thickness Dimension 0.015 0.020 0.38 0.51

F1, F2 Component Lead Pitch 0.0945 0.110 2.4 2.8

H Bottom of Component to Seating Plane .059 .156 1.5 4.0

H1 Feedhole Location 0.3346 0.3741 8.5 9.5

H2A Deflection Left or Right 0 0.039 0 1.0

H2B Deflection Front or Rear 0 0.051 0 1.0

H4 Feedhole to Bottom of Component 0.7086 0.768 18 19.5

H5 Feedhole to Seating Plane 0.610 0.649 15.5 16.5

L Defective Unit Clipped Dimension 0.3346 0.433 8.5 11

L1 Lead Wire Enclosure 0.09842 — 2.5 —

P Feedhole Pitch 0.4921 0.5079 12.5 12.9

P1 Feedhole Center to Center Lead 0.2342 0.2658 5.95 6.75

P2 First Lead Spacing Dimension 0.1397 0.1556 3.55 3.95

T Adhesive Tape Thickness 0.06 0.08 0.15 0.20

T1 Overall Taped Package Thickness — 0.0567 — 1.44

T2 Carrier Strip Thickness 0.014 0.027 0.35 0.65

W Carrier Strip Width 0.6889 0.7481 17.5 19

W1 Adhesive Tape Width 0.2165 0.2841 5.5 6.3

W2 Adhesive Tape Position .0059 0.01968 .15 0.5

NOTES:1. Maximum alignment deviation between leads not to be greater than 0.2 mm.2. Defective components shall be clipped from the carrier tape such that the remaining protrusion (L) does not exceed a maximum of 11 mm.3. Component lead to tape adhesion must meet the pull test requirements.4. Maximum non−cumulative variation between tape feed holes shall not exceed 1 mm in 20 pitches.5. Holddown tape not to extend beyond the edge(s) of carrier tape and there shall be no exposure of adhesive.6. No more than 1 consecutive missing component is permitted.7. A tape trailer and leader, having at least three feed holes is required before the first and after the last component.8. Splices will not interfere with the sprocket feed holes.

Page 178: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

MCR100 Series

http://onsemi.com6

PACKAGE DIMENSIONS

STYLE 10:PIN 1. CATHODE

2. GATE3. ANODE

TO−92 (TO−226)CASE 029−11

ISSUE AL

NOTES:1. DIMENSIONING AND TOLERANCING PER ANSI

Y14.5M, 1982.2. CONTROLLING DIMENSION: INCH.3. CONTOUR OF PACKAGE BEYOND DIMENSION R

IS UNCONTROLLED.4. LEAD DIMENSION IS UNCONTROLLED IN P AND

BEYOND DIMENSION K MINIMUM.R

A

P

J

L

B

K

GH

SECTION X−X

CV

D

N

N

X X

SEATING

PLANE

DIM MIN MAX MIN MAX

MILLIMETERSINCHES

A 0.175 0.205 4.45 5.20

B 0.170 0.210 4.32 5.33

C 0.125 0.165 3.18 4.19

D 0.016 0.021 0.407 0.533

G 0.045 0.055 1.15 1.39

H 0.095 0.105 2.42 2.66

J 0.015 0.020 0.39 0.50

K 0.500 −−− 12.70 −−−

L 0.250 −−− 6.35 −−−

N 0.080 0.105 2.04 2.66

P −−− 0.100 −−− 2.54

R 0.115 −−− 2.93 −−−

V 0.135 −−− 3.43 −−−1

ON Semiconductor and are registered trademarks of Semiconductor Components Industries, LLC (SCILLC). SCILLC reserves the right to make changes without further noticeto any products herein. SCILLC makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does SCILLC assume any liabilityarising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation special, consequential or incidental damages.“Typical” parameters which may be provided in SCILLC data sheets and/or specifications can and do vary in different applications and actual performance may vary over time. Alloperating parameters, including “Typicals” must be validated for each customer application by customer’s technical experts. SCILLC does not convey any license under its patent rightsnor the rights of others. SCILLC products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the body, or other applicationsintended to support or sustain life, or for any other application in which the failure of the SCILLC product could create a situation where personal injury or death may occur. ShouldBuyer purchase or use SCILLC products for any such unintended or unauthorized application, Buyer shall indemnify and hold SCILLC and its officers, employees, subsidiaries, affiliates,and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney fees arising out of, directly or indirectly, any claim of personal injury or deathassociated with such unintended or unauthorized use, even if such claim alleges that SCILLC was negligent regarding the design or manufacture of the part. SCILLC is an EqualOpportunity/Affirmative Action Employer. This literature is subject to all applicable copyright laws and is not for resale in any manner.

PUBLICATION ORDERING INFORMATIONN. American Technical Support : 800−282−9855 Toll FreeUSA/Canada

Japan : ON Semiconductor, Japan Customer Focus Center2−9−1 Kamimeguro, Meguro−ku, Tokyo, Japan 153−0051Phone : 81−3−5773−3850

MCR100/D

LITERATURE FULFILLMENT :Literature Distribution Center for ON SemiconductorP.O. Box 61312, Phoenix, Arizona 85082−1312 USAPhone : 480−829−7710 or 800−344−3860 Toll Free USA/CanadaFax: 480−829−7709 or 800−344−3867 Toll Free USA/CanadaEmail : [email protected]

ON Semiconductor Website : http://onsemi.com

Order Literature : http://www.onsemi.com/litorder

For additional information, please contact yourlocal Sales Representative.

Page 179: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

This datasheet has been download from:

www.datasheetcatalog.com

Datasheets for electronics components.

Page 180: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Ver: C Page: 1 / 21

DATA IMAGE CORPORATION

LCD Module Specification

ITEM NO.: GM24644SR-01

Table of Contents

1. COVER & CONTENTS 1

2. RECORD OF REVISION 2

3. GENERAL SPECIFICATIONS 3

4. ABSOLUTE MAXIMUM RATINGS 4

5. ELECTRICAL CHARACTERISTICS 5

6. ELECTRO-OPTICAL CHARACTERISTIC 5

7. TIMING CHARACTERISTICS 7

8. PIN CONNECTIONS 8

9. POWER SUPPLY 8

10. BLOCK DIAGRAM 9

11. QUALITY ASSURANCE 15

12. LOT NUMBERING SYSTEM 19

13. LCM NUMBERING SYSTEM 19

14. PRECAUTIONS IN USE LCM 20

15 OUTLINE DRAWING 21

Approved by

Checked by

QC. Div

Checked by

Pro. Div

Checked by

R&D. Div.

Drawn by

Final Revision:

C

Sheet Code: Issued Date:

2000/1/26

Total Page: 21

Page 181: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Ver: C Page: 2 / 21

2. RECORD OF REVISION

Rev Date Item Page Comment

B JAN/11/00 10 9 Change PCB REV:B for Add RT13.3K Thermistor.

11.2.2 16Change “Definition of applicableZones”, A=Display Area and, B=Non-Display area

C JAN/26/00

11.2.3 17

Change the measurement of“Inspection Parameters”1. Black or white spots2. Scratch, Substances3. Air Bubbles (Between glass and

polarizer)

Page 182: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Ver: C Page: 3 / 21

3. GENERAL SPECIFICATION

Display Format : 240 (W) × 64 (H) dots

Dots Size : 0.41 (W) × 0.41 (H) mm

View Area : 112 (W) × 32 (H) mm

General Dimensions : 149 (W) × 56 (H) × 9.5 (T) mm Max.

Weight : 90 g max.

VLCD Type : STN Gray STN Yellow FSTN

VPolarizer mode : Reflective Transflective

Transmissive Negative

VView Angle : 6 O’ clock 12 O’ clock Others

Backlight : LED EL CCFL

Backlight Color : Yellow green Amber Blue Green

White Others

Controller / Driver : T6963C

V Normal Wide TemperatureOperating 0 to 50°C Operating -20 to 70°C

Temperature Range :

Storage -10 to 60°C Storage -30 to 80°C

Page 183: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Ver: C Page: 4 / 21

4. ABSOLUTE MAXIMUM RATINGS

4.1 ELECTRICAL ABSOLUTE MAXIMUM RATINGS

VSS= 0V, Ta = 25°CItem Symbol Min. Max. Unit

Supply Voltage(Logic) VDD-VSS 0 7 V

Supply Voltage(LCD Driver) VDD-VEE 0 25 V

Input Voltage VI VSS VDD V

Operating Temperature TOP 0 50 °C

Storage Temperature TSTG -10 60 °C

4.2 ENVIRONMENTAL ABSOLUTE MAXIMUM RATINGS

Operating StorageItem

(Min.) Max.) (Min.) (Max.)Comment

Ambient Temp 0 50 -10 60 Note (1)

Humidity Note (2) Note(2) Without Condensation

Vibration -- 4.9M/S2 -- 19.6M/S2 XYZ Direction

Shock -- 29.4M/S2 -- 490M/S2 XYZ Direction

Note(1) Ta = 0°C : 50Hr Max. Note(2) Ta ≤ 40°C : 90% RH Max. Ta ≥ 40°C : Absolute humidity must be lower than the humidity of 90% RH at 40°C.

Page 184: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Ver: C Page: 5 / 21

5. ELECTRICAL CHARACTERISTICS

Item Symbol Condition Min. Typ. Max. Unit

Supply Voltage(Logic) VDD-VSS 4.5 5.0 5.5 V

0°C 12.5 13 13.5

25°C 11.3 12.0 12.6Supply Voltage(LCD) VDD-VO

50°C 10.5 11.0 11.5

V

VIH VSS-2.2 -- VDDInput Voltage

VIL--

0 -- 0.8V

IDD -- 9.8 -- mALogic SupplyCurrent IEE

VDD-VSS=5V-- 0.06 -- mA

6. ELECTRO-OPTICAL CHARACTERISTICS

ITEM Symbol Condition Min. Typ. Max. Unit Ref.

0°C 470 650 800Rise Time Tr

25°C 187 198 206ms

0°C 450 500 750Fall Time Tf

25°C 142 146 154ms

Note (1)

Contrast CR 25°C -- 2.5 -- Note (3)

-- 30 --View Angle

θ1~θ2∅1, ∅2

25°C &CR≥3 -- 30 --

Note (2)

Frame Frequency Ff 25°C -- 70 -- Hz

Note (1) & (2) : See next page Note (3) : Contrast ratio is defined under the following condition: CR= Brightness of non-selected condition Brightness of selected condition

( a ). Temperature ---------- 25°C ( b ). Frame frequency ---- 70Hz ( c ). Viewing angle -------- θ= 0°, ∅ = 0° ( d ). Operating voltage --- 12.0V

Page 185: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Ver: C Page: 6 / 21

Note (1) Response time is measured as the shortest period of time possiblebetween the change in state of an LCD segment as demonstrated below:

+Vop

1/f F

0

-Vop

90% 100% 10%

tr tf

Condition:( a ) . Temperature ---------------25°C

( b ) . Frame frequency --------- 70Hz( c ) . View Angle ----------------- θ = 0°, ∅=0°( d ) . Operating voltage -------- 12.0V

Note (2) Definition of View Angle

Top – Bottom direction Right -- Left direction

Top ∅2 ∅1 θ1

θ2

Bottom Left Right

Page 186: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 7 /21

7. TIMING CHARACTERISTICS

£ »Switching Characteristics (2) Bus Timing

C / D

tCDS tCDH

CE

tCE,tRD,tWR

RD, WR

tDS

D0toD7(WRITE)

tDH

D0toD7(READ)

tACC tOH

TEST CONDITIONS (Unless otherwise noted. VDD = 5.0V±10%, VSS = 0V, Ta = -20 to75¢ J)

ITEM SYMBOL TEST CONDITIONS MIN MAX UNIT

C / D Set-up Time tCDS -- 100 -- ns

C / D Hold Time tCDH -- 10 -- ns

CE, RD, WR Pulse Width tCE, tRD, tWR -- 80 -- ns

Data Set-up Time tDS -- 80 -- ns

Data Hold Time tDH -- 40 -- ns

Access Time tACC -- -- 150 ns

Output Hold Time tOH -- 10 50 ns

Page 187: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 8 /21

8. PIN CONNECTIONS

Pin Symbol Function1 VSS Ground ( 0 V )2 FGND Frame Ground (Connect to Bezel)3 NC No Connection4 VDD Power Supply (+5V)5 /RD Data Read6 /WR Data Write7 C/D Command / Data8 /CE Chip Enable9 /RESET IC Reset

10 PWM Pulse Width Modulation for LCD Contrast Control.11 DB112 DB013 DB314 DB215 DB516 DB417 DB718 DB6

Data Bus Line

19 NC No Connection20 FS Font size Select, L = 8 × 8, H = 8 × 6

9. POWER SUPPLY

VDD

+5V LCM VSS PWM LCD Contrast Control

Page 188: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 9 /21

10. BLOCK DIAGRAM

DB0 64 Com

DB7Common Driver

X 1LCD PANEL240X64 DOTS

/RD/CE

CONNTROLLERLSI

T6963C240 Seg

C/D/RESETFS

Segment DriverX 3

/WR

8K SRAM

VDD, VSS Thermistor RT1:3.3K

VLCDSCI7661DC to DC

PWM

Page 189: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 10 /21

• Flowchart of communications with MPU(1) Status Read

A status check must be performed before data is read or written. Status check The Status of T6963C can be read from the data lines.

RD LWR HCE LC / D HD0 to D7 Status word

The T6963C status word format is as follows:

MSB LSBSTA7

D7STA6

D6STA5

D5STA4

D4STA3

D3STA2

D2STA1

D1STA0

D0

STA0 Check command execution capability 0 : Disable 1 : EnableSTA1 Check data read / write capability 0 : Disable 1 : EnableSTA2 Check Auto mode data read capability 0 : Disable 1 : EnableSTA3 Check Auto mode data write capability 0 : Disable 1 : EnableSTA4 Not usedSTA5 Check controller operation capability 0 : Disable 1 : Enable

STA6Error flag. Used for Screen Peek and Screen copycommands.

0 : No error 1 : Error

STA7 Check the blink condition 0 : Display off 1 : Normal display

(Note 1) It is necessary to check STA0 and STA1 at the same time.There is a possibility of erroneous operation due to a hardware interrupt.

(Note 2) For most modes STA0 / STA1 are used as a status check.(Note 3) STA2 and STA3 are valid in Auto mode; STA0 and STA1 are invalid.

Status checking flow a) STATUS

STA0=1 STA1=1 NO

YES RETURN

b) AUTO MODE STATUS

(*1) (*1) STAT2=1 (Read) NO or STAT3=1 (Write) YES

RETURN

(Note 4) When using the MSB = 0 command, a Status Read must be performed.If a status check is not carried out, the T6963C cannot operate normally, even after a delay time.The hardware interrupt occurs during the address calculation period (at the end of each line).If a MSB = 0 command is sent to the T6963C during this period, the T6963C enters Wait status.If a status check is not carried out in this state before the next command is sent, there is thePossibility that the command or data will not be received.

Page 190: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 11 /21

Status check

Send Command

Status check

(2) Setting data

When using the T6963C, first set the data, then set the command.

Procedure for sending a command a) The case of 1 data b) The case of 2 data

STA0, 1

(Note) When sending more than two data, the last datum (or last two data) is valid.

Send Command

Data write

Status check

Command write

END

Data write

Status check

Data write

Status check

Command write

END

STA0, 1

Page 191: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 12 /21

COMMAND DEFINITIONS

COMMAND CODE D1 D2 FUNCTION

REGISTERS SETTING001000010010001000100100

X addressData

Low address

Y address00H

High address

Set Cursor PointerSet Offset RegisterSet Address Pointer

SET CONTROL WORD

01000000010000010100001001000011

Low addressColumns

Low addressColumns

High address00H

High address00H

Set Text Home AddressSet Text AreaSet Graphic Home AddressSet Graphic Area

MODE SET

1000X0001000X0011000X0111000X10010000XXX10001XXX

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

OR modeEXOR modeAND modeText Attribute modeInternal CG ROM modeExternal CG RAM mode

DISPLAY MODE

100100001001XX101001 XX11100101 XX100110 XX100111 XX

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

Display offCursor on, blink offCursor on, blink onText on, graphic offText off, graphic onText on, graphic on

CURSOR PATTERNSELECT

1010000010100001101000101010001110100100101001011010011010100111

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

1- line cursor2- line cursor3- line cursor4- line cursor5- line cursor6- line cursor7- line cursor8- line cursor

DATA AUTO READ /WRITE

101100001011000110110010

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

Set Data Auto WriteSet Data Auto ReadAuto Reset

DATA READ / WRITE

110000001100000111000010110000111100010011000101

Data¡ X

Data¡ X

Data¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

Data Write and Increment ADPData Read and Increment ADPData Write and Decrement ADPData Read and Decrement ADPData Write and Nonvariable ADPData Read and Nonvariable ADP

SCREEN PEEK 11100000 ¡ X ¡ X Screen Peek

SCREEN COPY 11101000 Screen Copy

BIT SET / RESET

11110XXX11111XXX1111X0001111X0011111X0101111X0111111X1001111X1011111X1101111X111

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

¡ X

Bit ResetBit SetBit 0 (LSB)Bit 1Bit 2Bit 3Bit 4Bit 5Bit 6Bit 7 (MSB)

X : invalid

Page 192: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 13 /21

£ »Setting registers

CODE HEX. FUNCTION D1 D2

00100001 21H SET CURSOR POINTER X ADRS Y ADRS

00100010 22H SET OFFSET REGISTER DATA 00H

00100100 24H SET ADDRESS POINTER LOW ADRS HIGH ADRS

(1) Set Cursor Pointer

The position of the cursor is specified by X ADRS and Y ADRS. The cursor position can only bemoved by this command. Data read / write from the MPU never changes the cursor pointer.X ADRS and Y ADRS are specified as follows.

X ADRS 00H to 4FH (lower 7 bits are valid)

Y ADRS 00H to 1FH (lower 5 bits are valid)

a) Single – ScanX ADRS 00 to 4FH

b) Dual – Scan X ADRS 00 to 4FH

(2) Set Offset Register

The offset register is used to determine the external character generator RAM area.The T6963C has a 16-bit address bus as follows:

MSB LSBad15 ad14 ad13 ad12 ad11 ad10 ad9 ad8 ad7 ad6 ad5 ad4 ad3 ad2 ad1 ad0

Offset Register Data Character Code Line Scan

Y ADRS 00H to 0FHY ADRS 00H to 0FH

Upper screen

Y ADRS 00H to 1FHLower screen

Page 193: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 14 /21

CHARACTER CODE MAPROM code 0101

Page 194: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 15 /21

11. QUALITY ASSURANCE

11.1 Test Condition

11.1.1 Temperature and Humidity(Ambient Temperature) Temperature : 20 ± 5°C Humidity : 65 ± 5%

11.1.2 OperationUnless specified otherwise, test will be conducted with LCM in operation.

11.1.3 ContainerUnless specified otherwise, vibration test will be conducted on module only.

11.1.4 Test Frequency

Single cycle.

11.1.5 Test Method

No. Parameter Conditions Regulations1 High Temperature Operating 50 ± 2 °C Note 32 Low Temperature Operating 0 ± 2 °C Note 33 High Temperature Storage 60 ± 2 °C Note 34 Low Temperature Storage -10 ± 2 °C Note 3

5

Vibration Test(Non-operation state)

Total fixed amplitude : 1.5mmVibration Frequency : 10 ~ 55HzOne cycle 60 seconds to 3 directionsof X.Y.Z. for each 15 minutes

Note 3

6 Damp Proof Test(Non-operation state)

40°C ± 2°C, 90~95%RH, 96h Note 1,2

7Shock Test(Non-operation state)

To be measured after dropping from60cm high once concrete surface inpacking state

Note 3

Note 1: Returned under normal temperature and humidity for 4 hrs. Note 2: No dew condensation to be observed. Note 3: No change on display and in operation under the test condition

Page 195: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 16/21

11.2 Inspection condition

11.2.1 Inspection conditions

The LCD shall be inspected under 40W white fluorescent light.

45°

11.2.2 Definition of applicable Zones

B LCD A BEZEL PCB

A : Display Area B : Non-Display Area

Page 196: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 17 /21

11.2.3 Inspection Parameters

No. Parameter Criteria 1 Black or White spots

Acceptablenumber

Zone

Dimension A B

ClassOf

Defects

AQLLevel

D < 0.15 ∗ ∗0.15≤ D ≤ 0.2 4 40.2 ≤ D ≤ 0.25 2 2

D ≤ 0.3 0 1

Minor 2.5

D = (Long + Short) / 2 * : Disregard

2 Scratch, Substances

Acceptablenumber

X (mm)

Zone

Y(mm) A B

ClassOf

Defects

AQLLevel

∗ 0.04 ≥ W ∗ ∗3.0 ≥ L 0.06 ≥ W 4 42.0 ≥ L 0.08 ≥ W 2 3

0.1 < W 0 1

Minor 2.5

X : Length Y : Width ∗ : Disregard

Total defects should not exceed 4/module 3 Air Bubbles (between glass & polarizer)

Acceptablenumber

Zone

Dimension A B

Classof

Defects

AQLLevel

D ≤ 0.15 ∗ ∗

0.15 < D ≤ 0.25 2 ∗

0.25 < D 0 1

Minor 2.5

∗ : Disregard Total defects shall not excess 3/module.

Page 197: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 18 /21

4 Uniformity of Pixel

(1) Pixel shape (with Dent) 0.152

(2) Pixel shape ( with Projection)

Should not be connected to next pixel

0.152

(3) Pin hole X

Y ( X + Y )/2 ≤ 0.02mm

(Less than 0.1 mm is no counted)

(4) Deformation

X ( X + Y ) / 2 ≤ 0.3mm

Y Total acceptable number : 1/pixel, 5/cell

Page 198: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 19 /21

12. LOT NUMBERING SYSTEM

9 7 4 2

Production week number

Production year

13. LCM NUMBERING SYSTEM

GM 24644 S R 01

VERSION :01 MODE M – transmissive R – Reflective Nil – transflective N - Negative LCD type S – STN Gray S1– STN Yellow N – TN

Series code 24644– Dot number =240 x 64 dots, 4th Type Model type CM – Character Module GM – Graphic Module CXM – Custom Character Module GXM – Custom Graphic Module

Page 199: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 20 /21

14. PRECAUTION FOR USING LCM

1. LIQUID CRYSTAL DISPLAY (LCD)LCD is made up of glass, organic sealant, organic fluid, andpolymer based polarizers. The following precautions shouldbe taken when handing,(1). Keep the temperature within range of use and storage.Excessive temperature and humidity could causepolarization degredation, polarizer peel off or bubble.(2). Do not contact the exposed polarizers with anythingharder than an HB pencil lead. To clean dust off thedisplay surface, wipe gently with cotton, chamois or othersoft material soaked in petroleum benzin.(3). Wipe off saliva or water drops immediately. Contactwith water over a long period of time may cause polarizerdeformation or color fading, while an active LCD withwater condensation on its surface will cause corrosion ofITO electrodes.(4). Glass can be easily chipped or cracked from roughhandling, especially at corners and edges.(5). Do not drive LCD with DC voltage.

2. Liquid Crystal Display Modules2.1 Mechanical ConsiderationsLCM are assembled and adjusted with a high degree ofprecision. Avoid excessive shocks and do not make anyalterations or modifications. The following should be noted.(1). Do not tamper in any way with the tabs on the metalframe.(2). Do not modify the PCB by drilling extra holes,changing its outline, moving its components or modifyingits pattern.(3). Do not touch the elastomer connector, especiallyinsert an backlight panel (for example, EL).(4). When mounting a LCM make sure that the PCB is notunder any stress such as bending or twisting . Elastomercontacts are very delicate and missing pixels could resultfrom slight dislocation of any of the elements.(5). Avoid pressing on the metal bezel, otherwise theelastomer connector could be deformed and lose contact,resulting in missing pixels.

2.2. Static ElectricityLCM contains CMOS LSI’s and the same precaution forsuch devices should apply, namely(1). The operator should be grounded whenever he/shecomes into contact with the module. Never touch any of theconductive parts such as the LSI pads, the copper leads onthe PCB and the interface terminals with any parts of thehuman body.(2). The modules should be kept in antistatic bags or othercontainers resistant to static for storage.(3). Only properly grounded soldering irons should beused.(4). If an electric screwdriver is used, it should be wellgrounded and shielded from commutator sparks.

(5) The normal static prevention measures should beobserved for work clothes and working benches; for thelatter conductive (rubber) mat is recommended.(6). Since dry air is inductive to static, a relativehumidity of 50-60% is recommended.

2.3 Soldering(1). Solder only to the I/O terminals.(2). Use only soldering irons with proper groundingand no leakage.(3). Soldering temperature : 280°C ± 10°C(4). Soldering time: 3 to 4 sec.(5). Use eutectic solder with resin flux fill.(6). If flux is used, the LCD surface should be coveredto avoid flux spatters. Flux residue should be removedafter wards.

2.4 Operation(1). The viewing angle can be adjusted by varying theLCD driving voltage V0.(2). Driving voltage should be kept within specifiedrange; excess voltage shortens display life.(3). Response time increases with decrease intemperature.(4). Display may turn black or dark blue attemperatures above its operational range; this is(however not pressing on the viewing area) may causethe segments to appear “fractured”.(5). Mechanical disturbance during operation (such aspressing on the viewing area) may cause the segments toappear “fractured”.

2.5 StorageIf any fluid leaks out of a damaged glass cell, wash offany human part that comes into contact with soap andwater. Never swallow the fluid. The toxicity is extremelylow but caution should be exercised at all the time. 2.6 Limited WarrantyUnless otherwise agreed between DATA IMAGE andcustomer, DATA IMAGE will replace or repair any of itsLCD and LCM which is found to be defectiveelectrically and visually when inspected in accordancewith DATA IMAGE acceptance standards, for a periodon one year from date of shipment. Confirmation of suchdate shall be based on freight documents. Thewarranty liability of DATA IMAGE is limited to repairand/or replacement on the terms set forth above. DATAIMAGE will not responsible for any subsequent orconsequential events.

Page 200: Kalkulator Berbasis Mikrokontroler · 2018. 6. 25. · Kalkulator Berbasis Mikrokontroler TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program

Rev:C Page: 21 /21

15 OUTLINE DRAWING