KALKULATOR SEDERHANA MENGGUNAKAN KEYPAD
Jurusan Teknik Elektro Program Studi Teknik Elektronika
Politeknik Negeri Seamarang
Disusun Oleh:
Amelia Putri Paramitha
Hendy Frizal I.S
Puput Novianti
Rafa Krisna Mughni A.
1.1. Pengertian
Kalkulator adalah alat yang sangat penting dalam kehidupan sehari-hari untuk melakukan perhitungan matematika dengan cepat dan akurat. Dalam dunia teknologi, perangkat seperti kalkulator memberikan dasar untuk memahami interaksi antara perangkat keras dan perangkat lunak. Pembuatan kalkulator berbasis keypad adalah salah satu proyek yang memungkinkan penerapan langsung konsep-konsep tersebut, sekaligus memberikan pemahaman mendalam mengenai pengolahan input dan output.
1.2 Latar Belakang
Perangkat kalkulator sederhana ini menggunakan keypad sebagai alat input data dan layar untuk menampilkan hasil perhitungan. Melalui proyek ini, pengembang dapat memahami cara kerja perangkat keras seperti mikrokontroler, keypad, dan modul layar, serta bagaimana perangkat ini berkomunikasi menggunakan kode program.
Proyek kalkulator berbasis keypad memberikan pengalaman langsung dalam bekerja dengan mikrokontroler, yang merupakan komponen inti dari banyak perangkat embedded. Mikrokontroler seperti Arduino atau Raspberry Pi diprogram untuk membaca input dari keypad, memproses data, dan menampilkan hasil pada layar LCD
1.3 Rumusan Masalah
1. Bagaimana cara merancang sistem kalkulator berbasis keypad yang mampu menerima input angka dan operasi aritmatika secara akurat?2. Bagaimana algoritma yang tepat untuk memproses input dari keypad dan melakukan operasi matematika dasar (penjumlahan, pengurangan, perkalian, dan pembagian)?
3. Bagaimana cara mengintegrasikan komponen perangkat keras seperti keypad, mikrokontroler, dan LCD tampilan untuk membangun kalkulator yang fungsional?- Membuat perangkat kalkulator yang dapat melakukan operasi matematika dasar menggunakan keypad sebagai alat input.
- Memahami cara kerja mikrokontroler dalam mengolah input dan mengontrol output.
- Melatih kemampuan logika pemrograman dan algoritma dalam menangani masukan pengguna dan menghasilkan keluaran yang sesuai.
- Mengembangkan keterampilan teknis dalam merancang dan mengimplementasikan ke perangkat.
1.5 Pengeretian Keypad Numpad Membran
Keypad numpad membran adalah jenis keypad yang menggunakan teknologi membran untuk mendeteksi input, biasanya dirancang menyerupai layout numerik pada keyboard komputer (dengan angka 0-9, tanda operasi matematika, dan tombol tambahan seperti Enter atau Clear). Keypad ini memiliki permukaan fleksibel yang terdiri dari beberapa lapisan untuk mendeteksi tekanan tombol.
1.6 Diagram Alir
; AssemblerApplication2.asm
;
; Created: 10/12/2024 20:18:48
; Author : Axioo Hype 10
.include "m328pdef.inc" ; Menyertakan definisi untuk ATmega328P
; ==========================================================================
; Inisialisasi Port dan Register
; ==========================================================================
ldi r16, 0xFF ; Set semua pin untuk LCD (PORTC) dan keypad (PORTB)
out DDRC, r16 ; Set PORTC sebagai output (LCD)
ldi r16, 0x00 ; Set PORTB sebagai input (keypad)
out DDRB, r16
ldi r17, 0x00 ; Menyimpan key yang ditekan
ldi r18, 0x00 ; Menyimpan operasi (+,-,x,/)
ldi r19, 0x00 ; Menyimpan angka pertama (a)
ldi r20, 0x00 ; Menyimpan angka kedua (b)
ldi r21, 0x00 ; Menyimpan hasil (result)
; ==========================================================================
; Fungsi untuk membaca keypad
; ==========================================================================
key_scan:
in r17, PINB ; Membaca input dari PINB (keypad)
ret
; ==========================================================================
; Fungsi untuk menampilkan hasil di LCD
; ==========================================================================
display_lcd:
; Implementasi untuk menampilkan hasil di LCD
; Misalnya menggunakan fungsi I2C untuk menampilkan karakter
ret
; ==========================================================================
; Fungsi untuk memeriksa operasi dan melakukan kalkulasi
; ==========================================================================
cal_op:
; Keypad input akan diproses sesuai tombol yang ditekan
; Misalnya tombol untuk operasi adalah 0x0D (Tambah), 0x0C (Kurang), 0x0B (Kali), 0x0A (Bagi)
cpi r17, 0x0D ; Tombol tambah (0x0D)
breq add_op
cpi r17, 0x0C ; Tombol kurang (0x0C)
breq sub_op
cpi r17, 0x0B ; Tombol kali (0x0B)
breq mul_op
cpi r17, 0x0A ; Tombol bagi (0x0A)
breq div_op
cpi r17, 0x0E ; Tombol eksekusi (0x0E)
breq exec_op
ret
; ==========================================================================
; Menangani Operasi
; ==========================================================================
add_op:
ldi r18, '+' ; Set operasi tambah
ret
sub_op:
ldi r18, '-' ; Set operasi kurang
ret
mul_op:
ldi r18, 'x' ; Set operasi kali
ret
div_op:
ldi r18, '/' ; Set operasi bagi
ret
; ==========================================================================
; Eksekusi Operasi
; ==========================================================================
exec_op:
; Eksekusi operasi sesuai dengan operasi yang dipilih
cpi r18, '+' ; Jika operasi tambah
breq add_exec
cpi r18, '-' ; Jika operasi kurang
breq sub_exec
cpi r18, 'x' ; Jika operasi kali
breq mul_exec
cpi r18, '/' ; Jika operasi bagi
breq div_exec
ret
; ==========================================================================
; Eksekusi Perhitungan
; ==========================================================================
add_exec:
add r19, r20 ; a + b
mov r21, r19 ; Simpan hasil ke r21
rjmp display_lcd
sub_exec:
sub r19, r20 ; a - b
mov r21, r19 ; Simpan hasil ke r21
rjmp display_lcd
mul_exec:
mul r19, r20 ; a * b
mov r21, r0 ; Ambil hasil dari register r0
rjmp display_lcd
div_exec:
; Pembagian a / b (dengan pembulatan atau cast ke integer jika diperlukan)
; Misalnya, hanya menampilkan hasil bulat
ldi r22, 0 ; Pembagian belum diimplementasi (ini placeholder)
rjmp display_lcd
; ==========================================================================
; Fungsi cal_run (Proses perhitungan)
; ==========================================================================
cal_run:
; Lakukan pengecekan operasi dan perhitungan
; Misalnya, kita perlu menampilkan angka pertama, operasi, angka kedua, dan hasilnya.
; Anda dapat menyesuaikan fungsi display_lcd agar bisa menampilkan hasil sesuai kebutuhan.
rjmp display_lcd ; Panggil fungsi untuk menampilkan hasil
; ==========================================================================
; Program Utama
; ==========================================================================
main:
rjmp key_scan ; Mulai scan tombol
rjmp cal_op ; Panggil fungsi untuk mengecek operasi
rjmp cal_run ; Jalankan kalkulasi dan tampilkan hasil
1.8 Link PPT
https://www.canva.com/design/DAGY53l6FuE/U8vlvq7xU1WsUj3vqR_h7g/edit?utm_content=DAGY53l6FuE&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton

Komentar
Posting Komentar